За последние десять лет инфраструктура открытых ключей (Public Key Infrastructure - PKI) в интернете сильно изменилась. Еще более десяти лет назад такой эксперт, как Адам Лэнгли, критиковал системы отзыва сертификатов в веб PKI за их неэффективность. Сегодня его выводы воспринимают как призыв срочно создавать новые методы отзыва сертификатов. Однако реальность такова, что традиционные методы отзыва сертификатов больше не считаются жизнеспособным решением, и современные эксперты утверждают: нам просто нужно использовать короткосрочные сертификаты. Давайте разберемся, почему классические механизмы отзыва, такие как OCSP (Online Certificate Status Protocol) и CRL (Certificate Revocation Lists), оказались далеко не идеальными в веб-среде.
Основная проблема заключается в архитектуре и особенностях соединений между клиентами, серверами и центрами сертификации (ЦС). OCSP предназначен для того, чтобы клиент мог проверить статус сертификата в реальном времени, спрашивая у ЦС, действителен ли сертификат. На практике OCSP слишком медленный и ненадежный, чтобы использовать его в режиме блокировки соединения браузера. Кроме того, каждая такая проверка OCSP раскрывает информацию о действиях пользователя, создавая проблемы с приватностью. Чтобы обойти это, часто применяют проксирование, но и оно не позволяет устранить все риски и недостатки.
CRL-файлы, в которых перечислены отозванные сертификаты, слишком объемны для повседневного скачивания большинством клиентов. Постоянное обновление этих списков и их актуальность - сложная задача, которая не решается простым увеличением ресурсов. Основной технической причиной всех этих проблем являются ограничения сетевых подключений в интернете. Веб-браузеры, выступающие в роли доверяющей стороны, не могут гарантировать постоянную связь с центром сертификации. Подумайте масштаб: миллиарды пользователей одновременно обмениваются сотнями миллионов сертификатов.
ЦС попросту не готовы выдержать такую нагрузку, если каждый запрос будет требовать подтверждения статуса сертификата в реальном времени. Для серверов ситуация сложнее: они имеют хотя бы косвенную связь с ЦС и могут получать новые сертификаты по мере необходимости. Серверы способны поддерживать определенную связь с ЦС, чтобы по мере истечения срока действия сертификата получать новый. Но даже в этом случае доступ в реальном времени невозможен и не нужен для проверки статуса в процессе каждого отдельного соединения. Попытка оградить пользователей от риска, вводя требования, например, OCSP Must-Staple (флаг, требующий прикладывать актуальный ответ OCSP к сертификату), наталкивается на проблемы с доступностью сервера OCSP и невозможностью сервера всегда обеспечивать свежий ответ от ЦС.
Если ЦС окажется недоступен, сертификат, даже если он утвержден, станет недействительным для пользователя. В итоге становится очевидным, что проверка статуса сертификата должна опираться на информацию, имеющуюся непосредственно у сервера в момент соединения, или на периодически обновляемые базы данных у браузерного производителя. Поскольку у серверов гарантирована связь с ЦС только при выдаче сертификата, лучшее, что можно сделать - это опираться на срок действия сертификата. Какой же выход из этой ситуации? Два основных варианта: Переход на системы, при которых производители браузеров получают и распространяют обновленные сведения об отозванных сертификатах. Например, Mozilla Firefox применяет схему CRLite, позволяющую компактно передавать информацию об отозванных сертификатах, а Google Chrome передает дифференциальные обновления с обозначением причин отзыва, чтобы минимизировать объём данных.
Однако такой подход не масштабируется без ограничений: если количество отзывов резко возрастёт, обновления станут слишком большими, а задержки в доставке информации - опасными. Использование короткоживущих (short-lived) сертификатов с очень небольшим сроком действия - каждую неделю, два дня или даже сутки. Такой подход минимизирует окно риска компрометации сертификата. Если срок годности сертификата всего несколько дней, то даже при отсутствии эффективных систем отзыва срок действия устаревшего сертификата будет минимален. Сегодня мы наблюдаем развитие в сторону строго уменьшенных сроков действия сертификатов.
Если десять лет назад максимально разрешённый срок жизни сертификата был около трех лет, то в 2020 году его сократили чуть более чем до года. Уже сейчас планируется сокращение срока существующих сертификатов до 47 дней к 2029 году. Появилось и широкое распространение автоматизации в выдаче сертификатов по протоколу ACME, что упрощает создание и обновление таких коротких сертификатов без больших затрат. Современные браузерные движки поддерживают прозрачность сертификатов (certificate transparency), что снижает риск подделок и улучшает общий уровень безопасности. Отказ от обязательного требования OCSP-серверов у ЦС и введение обязательных CRL создаёт дополнительный фундамент для систем браузерного мониторинга отозванных сертификатов.
Таким образом, ключевой тренд в обеспечении безопасности SSL/TLS-соединений - это не попытка устранить необходимость отзыва, а постепенное сворачивание этой проблемы путём сокращения сроков действия сертификатов и усиления контроля со стороны браузеров. Производители браузеров формируют собственные базы данных с актуальной информацией об отзыве, при этом серверы не зависят от доступности ЦС в момент каждой сессии. Конечно, есть определённые риски: любой компромисс безопасности будет действовать не дольше максимального срока действия сертификата, а в случае гладкого перехода на очень короткие сроки, этот риск сведён к минимуму. Для многих организаций сокращение сроков геометрически увеличивает число операций по обновлению сертификатов, но современный уровень автоматизации позволяет это делать почти незаметно. В заключение стоит сказать, что попытки улучшить традиционные механизмы отзыва сертификатов, например, путём сжатия CRL или незначительных улучшений OCSP, не дадут заметного результата, пока не изменится сам принцип сетевого взаимодействия и гарантий связи в интернете.
Изменить эту архитектуру сложно без введения новых централизованных доверенных сторон, что идёт вразрез с современной философией распределённой безопасности. Резюмируя, можно утверждать, что в современной веб-среде ситуация с отзывом сертификатов перестала быть острой проблемой именно благодаря эволюции методик использования короткоживущих сертификатов и поддержке браузеров, которые активно управляют актуальной информацией об отозванных сертификатах. На сегодняшний день лучшие практики безопасности в веб PKI - это постепенное сокращение времени жизни сертификатов и эффективный контроль их статуса со стороны браузеров. Этот путь уже доказал свою эффективность и обещает сделать интернет безопаснее без ненужных осложнений и задержек, свойственных традиционным системам отзыва. .