Массовый отзыв сертификатов Let's Encrypt

Некоммерческий удостоверяющий центр Let’s Encrypt, контролируемый сообществом и предоставляющий сертификаты безвозмездно всем желающим, предупредил о предстоящем отзыве многих ранее выданных TLS/SSL сертификатов. Из 116 млн ныне действующих сертификатов Let’s Encrypt будет отозвано чуть больше 3 млн (2.6%), из которых примерно 1 млн являются дубликатами, привязанными к одному домену (ошибка в основном затронула очень часто обновляемые сертификаты, поэтому так много дубликатов). Отзыв запланирован на 4 марта (точное время пока не определено, но отзыв будет произведён не раньше 3 ночи MSK).

Необходимость отзыва обусловлена выявленной 29 февраля ошибкой. Проблема проявляется с 25 июля 2019 года и затрагивает систему проверки CAA-записей в DNS. Запись CAA (RFC-6844, Certificate Authority Authorization) позволяет владельцу домена явно определить удостоверяющий центр, через который можно генерировать сертификаты для указанного домена. Если удостоверяющий центр не перечислен в записях CAA, то он обязан блокировать выдачу сертификатов для данного домена и информировать владельца домена о попытках компрометации. В большинстве случаев сертификат запрашивается сразу после прохождения проверки CAA, но результат проверки считается действительным ещё 30 дней. Правила также предписывают выполнять повторную проверку не позднее, чем за 8 часов до выдачи нового сертификата (т.е. если при запросе нового сертификата с момента прошлой проверки прошло 8 часов, требуется повторная проверка).

Ошибка проявляется, если запрос сертификата охватывает сразу несколько доменных имён, для каждого из которых требуется проверка записи CAA. Суть ошибки в том, что в момент повторной проверки вместо валидации всех доменов, осуществлялась повторная проверка только одного домена из списка (если в запросе было N доменов, вместо N разных проверок, один домен проверялся N раз). Для остальных доменов повторная проверка не выполнялась и при принятии решения использовались данные первой проверки (т.е. использовались данные, давностью до 30 дней). Как следствие, в течение 30 дней после первой проверки Let’s Encrypt мог выдать сертификат, даже если значение CAA-записи было изменено и Let’s Encrypt был убран из списка допустимых удостоверяющих центров.

Подверженным проблеме пользователям отправлено уведомление по email, если при получении сертификата были заполнены контактные данные. Проверить свои сертификаты можно загрузив список серийных номеров отозванных сертификатов или воспользовавшись online-сервисом (размещён на IP-адресе, заблокированном в РФ Роскомнадзором). Узнать серийный номер сертификата для интересующего домена можно при помощи команды:

openssl s_client -connect example.com:443 -showcerts </dev/null 2>/dev/null \
| openssl x509 -text -noout | grep -A 1 Serial\ Number | tr -d :

Источник: opennet.ru

Добавить комментарий