Вопрос или проблема
Мой разум взорвался от того, что я узнал за последние несколько дней… оказывается, обработка CRL и проверка OCSP браузерами имеют так много вариаций. Я экспериментирую с собственным корневым ЦС, промежуточным ЦС и серверными сертификатами (как многие другие делали в прошлом).
Сегодня меня беспокоит отсутствие вывода из этой дискуссии о отзывных промежуточных ЦС:
Что происходит, когда промежуточный ЦС аннулирован?
С точки зрения логики (и криптографии) все ясно. Цепочки могут быть проверены от конечной точки до корня. Это все очень понятно.
На практике, похоже, что можно отозвать сертификат промежуточного ЦС, и поскольку проверка OCSP на клиенте, похоже, только проверяет серверный сертификат (если вообще проверяет) и не выглядит на ответ OCSP сертификата промежуточного ЦС. В результате серверный сертификат будет действителен, и браузер продолжит выполнять свои функции. Я проверил это через множество вариантов сертификатных пакетов и конфигурации Apache (пока не с nginx), и мой корневой OCSP-сервер ни разу не запрашивался о действительности промежуточного ЦС.
С текущей конфигурацией браузера, как конечный пользователь может узнать, что промежуточный ЦС был отозван? Поскольку браузеры используют списки “мастер-CRL”, такие как (OneCRL, CRLite и т. д.) опубликованные доверенные корни и их промежуточные сертификаты в конечном итоге окажутся в CRL, создаваемых поставщиками браузеров. Однако проверки OCSP не предоставят никаких указаний, что серверный сертификат теперь имеет разорванную цепочку.
Короткий ответ: Средний пользователь браузера не знает о том, что сертификат промежуточного ЦС был отозван, пока эта информация не попадет в специфичные для браузера CRL.
Существует значительные проблемы при реализации проверок на отзыв в браузерах. Каждый существующий подход является компромиссом, который пытается сбалансировать безопасность, надежность, производительность и конфиденциальность. В теории очевидно, что каждый сертификат в цепочке должен быть проверен, но на практике даже проверка только конечного сертификата не является тривиальной.
Возможные варианты:
- Использование OCSP Stapling; это реализовано как в Firefox, так и в Chromium, но прикрепление информации OCSP как для конечного, так и для промежуточных сертификатов является дополнительной функцией. Не каждый веб-сервер обязательно поддерживает это, и не каждый администратор знает и использует эту функцию. Так что это не универсальное решение.
- Создание запросов OCSP; это в настоящее время реализовано только в Firefox в качестве резервного варианта, когда OCSP Stapling недоступен. Проблема с запросами OCSP заключается в том, что они ненадежны (ответчики OCSP могут давать сбои) и вводят задержки. Требование проверки для каждого сертификата в цепочке усугубило бы обе проблемы.
- Скачивание списков CRL, выпущенных ЦС; ни Firefox, ни Chromium не реализуют это из-за проблем с производительностью.
Таким образом, в действительности не так уж много альтернатив интегрированным CRL браузера, таким как OneCRL, если решение должно работать всегда и не ухудшать производительность.
Каждый отдельный пользователь, конечно, может реализовать свои собственные проверки, например, с помощью внешнего инструмента.
Ответ или решение
Проблема, связанная с отзывом сертификатов промежуточных центров сертификации (CA), действительно является важной и сложной темой в области безопасности. Давайте разберем этот вопрос более подробно.
Практическое применение отзывов промежуточных CA и их влияние на пользователей
Когда мы говорим о криптографической цепочке доверия, отзыва промежуточного CA может создать серьезные проблемы с восприятием безопасности конечного пользователя. На практике, отзыв сертификата промежуточного CA часто не ведет к немедленному оповещению пользователя о нарушении безопасности, поскольку текущие браузеры в основном проверяют действительность лишь конечного (leaf) сертификата.
-
Проверка CRL и OCSP:
Как вы правильно отметили, современные браузеры по умолчанию используют такие механизмы, как CRL (списки отзыва) и OCSP (протокол проверки состояния сертификата). Однако, как это реализовано на практике, вызывает много вопросов. Как правило, большинство браузеров не запрашивают OCSP для сертификатов промежуточных CA. Следовательно, даже если промежуточный сертификат отозван, браузер может не уведомить пользователя, пока информация о отзыве не будет добавлена в «основной» список CRL, такой как OneCRL. -
Проблемы с реализацией:
- OCSP Stapling: Хотя OCSP Stapling позволяет веб-серверам прикреплять ответ OCSP к SSL-соединению, это требует поддержки со стороны сервера и администратора. Не все серверы настроены на использование этой функции, что делает её не универсальным решением.
- Опрос OCSP: Firefox может выполнять запросы OCSP в качестве резервного варианта, но это ненадежно и может вызвать задержки из-за возможных сбоев в ответчиках OCSP.
- Загрузка CRL от CA: В настоящее время ни один из популярных браузеров не реализует этот подход из-за возможных проблем с производительностью и увеличенной нагрузкой на сеть.
Как пользователи могут быть информированы об отзыве промежуточного CA?
Для обычного пользователя, который не погружен в технические детали работы с сертификатами, существует ограниченное количество вариантов узнать об отзыве промежуточного CA:
- Инструменты и плагины: Пользователи могут рассмотреть возможность использования дополнительных инструментов или плагинов для браузеров, которые могут выполнять более широкий мониторинг и проверку состояния сертификатов, хотя они и не являются стандартом по умолчанию.
- Образовательные ресурсы: Важно также уделять внимание просвещению пользователей в области безопасности и значимости проверки сертификатов.
Заключение
В итоге, отзыв промежуточных CA представляет собой сложную проблему, с которой сталкиваются как разработчики, так и обычные пользователи. Современные подходы к проверке могут быть недостаточными, чтобы обеспечить достаточный уровень доверия и безопасности. Необходимы улучшения в области реализации механик, связанных с отзывами сертификатов, чтобы пользователи могли более активно проверять целостность цепочки доверия.
Возможно, с прогрессом в области криптографии и механизмов проверки, появятся новые решения, которые смогут эффективно справляться с этой критической проблемой безопасности.