Поставщик HTTPS-сертификатов сообщил об обнаружении выпущенных ненадлежащим образом электронных документов. Ошибка произошла из-за исправлений в программном обеспечении.
Масштаб проблемы
Инженер Let's Encrypt по надежности сайта Джиллиан Тесса сообщила, что 26 января третья сторона уведомила компанию о двух нарушениях в коде, который реализует метод проверки TLS с использованием ALPN в программе Boulder. Это ПО используется для автоматизации среды управления сертификатами (ACME).
По этой причине организация отзывает все активные электронные документы, выпущенные и проверенные при помощи запроса TLS-ALPN-01 до 00:48 UTC 26 января 2022 года. Отзыв начался 28 января, всего у компании есть пять дней на эту процедуру. Неправильно выпущенными считаются примерно 2 млн сертификатов, что составляет 1% от всех активных, число которых равно 221 млн.
Все владельцы электронных документов, которых затронула проблема безопасности, получили соответствующее уведомление по email. Им необходимо продлить используемые сертификаты. Также Let's Encrypt подготовила файл со списком всех некорректно выпущенных документов.
Причины отзыва
Представитель Let’s Encrypt пояснил, что проблема связана не с устранением уязвимости. Обновление типа запроса TLS-ALPN-01 было сделано в соответствии с базовыми требованиями, которые требуют использования TLS 1.2 или выше. При получении сертификата Let’s Encrypt серверы организации пытаются подтвердить, что владелец контролирует соответствующие ресурсы в соответствии со стандартом ACME. Для решения этой задачи могут использоваться HTTP, DNS или TLS.
Запрос TLS-ALPN-01 хорошо подходит тем, кто по разным причинам не хочет задействовать порт 80 для HTTP-01. В Let’s Encrypt отмечают, что такой подход наиболее приемлем для авторов обратных прокси-серверов с завершением TLS, которые хотят выполнять проверку на основе хоста полностью на уровне TLS.
По словам разработчика организации Аарона Гейбла, проверочный код затронули два изменения в клиентском приложении, которые намеренно применяют TLS-ALPN-01. Одно нововведение ограничивает подключение через протоколы ниже версии TLS 1.2, которые считаются небезопасными. Также отключена поддержка устаревшего OID (идентификатора объекта) 1.3.6.1.5.5.7.1.30.1. Он использоваться для идентификации расширения «acmeIdentifier» в ранних версиях RFC 8737. ПО Let's Encrypt теперь принимает только стандартизированный OID. 1.3.6.1.5.5.7.1.31.
Из-за изменений в программном обеспечении попытки проверки сертификата с использованием TLS 1.1 или неподдерживаемым OID приведут к ошибке, именно поэтому необходим повторный перевыпуск электронных документов.