vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Тут некоторое время назад [personal profile] jno писал мне в комментариях что локальный CA внутри закрытой от внешнего мира локальной сети должен бы обновлять сертификаты по протколоу ACME.

Тогда я с этим не соглалсился.

Потому что считаю надежное хранение пассфразы от приватного ключа CA (что предполагает невозможность автоматизированного выпуска сертификатов без участия человека) куда более полезным для безопасности сети в целом, чем сокращение срока жизни сертификатов.

А вот сегодня читаю очередной выпуск Feisty Duck и там пишут что Apple Google и прочие киты индустрии строят коварные планы сократить максимальный срок жизни сертификата до полутора месяцев. Если так дело пойдет и браузеры просто не будут признавать сертификаты, выпущенные более полутора месяцев назад, то действительно админам интранетов придется так или иначе автоматизировать выпуск сертификатов для локальных сайтов. Что, безусловно, снизит в общем случае безопасность локальных сетей.

Хотя, конечно можно будет сделать выпуск сертификтаов для всех сайтов локальной сети ручной операцией, выполняемой раз в полтора месяца с автоматическим распихиванием новых ключей и сертификатов по сайтам с помощью какого-нибудь инструмента удаленного администрирования. (на самом деле просто ssh с scp достаточно).

Тогда можно будет хранить пассфразу (а то и сам приватный ключ) локального CA безопасно.

Впрочем там еще crl-и по расписанию выпускать надо. И на том же мастер-ключе подписывать.

Date: 2025-04-30 07:58 pm (UTC)
tanriol: (Default)
From: [personal profile] tanriol

Лучше не раз в полтора месяца, а раз в три-четыре недели, чтобы оставить запас на непредвиденные случаи всё-таки.

Что касается CRL - те же Let's Encrypt в своих недавних постах про короткоживущие сертификаты утверждают, что ревокация в реальных условиях работает плохо и отозванные сертификаты по факту могут работать до окончания срока действия. Собственно, насколько я понимаю, по умолчанию ни Firefox, ни Chrome не проверяют CRL-и уже достаточно давно. Собственно, переход на короткоживущие сертификаты в значительной мере мотивирован как раз тем, что средства отзыва ненадёжны и по факту короткий срок действия сертификатов (в новой итерации 6 дней) будет работать в качестве защиты лучше.

Что касается вопроса того, повышает ли безопасность интранета использование внутреннего ACME-сервера... вопрос интересный. С одной стороны, приватный ключ CA - это определённо более серьёзная добыча, чем приватный ключ случайного сервера. С другой стороны, у него и защита должна быть лучше - если противник может получить доступ к одному из самых защищённых узлов сети, следует ли считать другие узлы сети находящимися в безопасности?

И да, в теории что мешает скомпенсировать дополнительные угрозы корню CA за счёт использования промежуточного сертификата? В порядке доведения до абсурда можно свести модель к существующей, выпустив по долгоживущему промежуточному сертификату на каждый сервер (со сферой применения, ограниченной его доменным именем), храня его приватный ключ на этом самом сервере и выпуская новые сертификаты локальным крон-джобом, не выходя за пределы сервера, хоть каждый час.

Edited Date: 2025-04-30 08:00 pm (UTC)

Date: 2025-04-30 09:59 pm (UTC)
allter: (Default)
From: [personal profile] allter
Использование промежуточных сертификатов для митигации угроз корню CA имеет смысл только при развитой сегментации сети и пространств (в идеале - что бы хост с CA был офлайновым и постоянно находился в отдельном сейфе). Что бы промежуточный CA получал связность с корневым только в определённые, заранее неизвестные моменты времени.

С другой стороны, зачем вообще как-то по особому защищать CA? Если злоумышленник может получить доступ к хранилищам корневых сертификатов на конечном устройстве, то никакого доступа к CA ему не понадобится.
Если он получит доступ к секретным ключам (или даже просто возможность конфигурации, с возможностью указания своего серта и ключа) серверного ПО, а в клиентском будет те сотни корневых CA, которые там лежат изначально, то опять же толку в такой защите мало.

Date: 2025-05-01 09:03 am (UTC)
tanriol: (Default)
From: [personal profile] tanriol

Следует отметить, что в протоколе ACME не написано про реалтаймовый ответ - про фазу между получением CSR и выдачей сертификата там написано "The certificate is being issued. Send a POST-as-GET request after the time given in the Retry-After header field of the response, if any." То есть в теории я не вижу причины, по которой сервер не мог бы проверять запросы клиентов и собирать их CSR-ы до того момента, когда приходит человек и использует токен. Другое дело, что многие клиенты могут быть не готовы к задержкам в пару недель (привет, новогодние праздники).

Date: 2025-05-01 10:11 am (UTC)
tanriol: (Default)
From: [personal profile] tanriol

"находятся под общим административным контролем" не эквивалентно "написаны местным сисадмином". Подозреваю, что в наши дни вполне может оказаться, что клиент ACME сидит где-то в дереве контейнеров, отвечающих за нужное ПО, и его замена на другой - операция нетривиальная и требующая повторения при обновлении ПО.

Date: 2025-05-03 05:46 am (UTC)
From: [personal profile] vikarti_anantra
Это уже - реальность.
У тех же Synology в их DSM штатный клиент Let's Encrypt(именно Let's Encrypt с жесткой завязкой, свой CA нельзя выбрать) то есть но он кривой и не умеет в DNS-проверки. Нужно внешний костыль использовать, у которого свои проблемы. При этом там не контейнеры даже.
Один из вариантов хоть как то нормально решить проблему - свой CA + внешний доступ через Cloudflare(!)(Cloudflare можно сказать что у origin server - будет сертификат от вот этого конкретного CA, он будет перешифровать трафик). Другое дело что Cloudflare...отдельный набор проблем

Date: 2025-05-01 09:45 am (UTC)
allter: (Default)
From: [personal profile] allter
Если бы даже пароли были защищены (я не так давно снова подходил к аутентификации в HTTP и был удивлен, что до сих пор не стандартизовали/не документировали ни один протокол, где нельзя утянуть секрет, пусть он даже и выходил бы за stateless природу HTTP), то https защищает от скрейпинга самих данных.

И да, большинство современных усилий по защите направлено на защиту в т.ч. от инсайдера (злоумышленника или жертву злоумышленника).

И тут, КМК, нужно не останавливаться и стремиться организовать такую среду, где даже root не может получить доступ к конфиденциальным данным. В systemd-creds пошли по половинчатому пути и защищают только хранение, а в расшифрованном виде данные просто лежат в ram-диске. Тогда как правильнее было бы передавать данные через stdin.

Date: 2025-05-01 11:48 am (UTC)
allter: (Default)
From: [personal profile] allter

Скрывать от админа данные это все равно что скрывать существенно важную информацию от врача или юриста.

Но при этом совершенно необязательно любому врачу рассказывать о состоянии своего счёта, а любому юристу (банку и т.п.) - о состоянии своего здоровья.

Моё мнение таково, что root в production системе может читать и менять любой файл в файловой системе (во всяком случае, в системной - не пользовательской - области) - ему это нужно для прямых обязанностей - системного администрирования. Но ему совершенно необязательно иметь возможность посмотреть любой байт в оперативке или получить иным способом прямой доступ к секретам, уже обрабатывающимся в системе.

Если хочет поменять, например, серверный ключ sshd - пусть меняет контейнер этого секрета (а тот уже может быть защищен чем-то ещё, кроме одиночного пароля админа).

А какие системы мандатного доступа могут такое реализовать со стандартными инструментами (с тем же systemd)? LLM пишет, что можно скрестить инструменты типа systemd-creds с selinux или apparmor. Но для каждого защищаемого сервиса придётся отдельно "приседать".

Date: 2025-05-01 10:06 am (UTC)
allter: (Default)
From: [personal profile] allter
... И всё идёт к тому, что бы через людей не надо было передавать непосредственно секреты (максимум, безопасные контейнеры секретов. В этом смысле стандартизация протоколов вроде ACME это прогресс. С другой стороны, это дополнительная точка взлома (вспомним выпуск MITM серта для jabber.ru имеющими доступ к инфраструктуре). Если браузерописатели хотят безопасности, им следует сначала стандартизировать этот момент. Ну и дать возможность пользователям (корповым админам) ограничивать домены определенными корневыми CA.

Date: 2025-05-01 09:52 am (UTC)
From: [personal profile] z3vv5yqifqx6
Уж если Вы а) считаете себя играющим против неудачных к вонкретном контексте решений браузеров, б) не скованы аудитными требованиями для публичных CA, в) морально готовы раскладывать ключи по SSH, то можно, наверное, выписать и сертификаты на недалёкое будущее тоже?
(screened comment)

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

July 2025

S M T W T F S
  12345
6789 1011 12
13141516 17 1819
20212223 242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 27th, 2025 10:49 am
Powered by Dreamwidth Studios