Устаревание корневого сертификата IdenTrust приведёт к потере доверия к Let’s Encrypt на старых устройствах

30 сентября в 17:01 по московскому времени истекает время жизни корневого сертификата компании IdenTrust (DST Root CA X3), который использовался для кросс-подписи корневого сертификата удостоверяющего центра Let’s Encrypt (ISRG Root X1), контролируемого сообществом и предоставляющий сертификаты безвозмездно всем желающим. Перекрёстная подпись обеспечивала доверие к сертификатам Let’s Encrypt на широком спектре устройств, операционных систем и браузеров в период интеграции собственного корневого сертификата Let’s Encrypt в хранилища корневых сертификатов.

Изначально планировалось, что после устаревания DST Root CA X3 проект Let’s Encrypt перейдёт на формирование подписей с использованием только своего корневого сертификата, но такой шаг привёл бы к потере совместимости с большим числом старых систем, не добавивших в своих хранилища корневой сертификат Let’s Encrypt. В частности, примерно 30% находящихся в обиходе Android-устройств не имеют данных о корневом сертификате Let’s Encrypt, поддержка которого появилась только начиная с платформы Android 7.1.1, выпущенной в конце 2016 года.

Let’s Encrypt не планировал заключать новое соглашение о кросс-подписи, так как это накладывает дополнительную ответственность на участников соглашения, лишает самостоятельности и связывает руки в плане соблюдения всех процедур и правил другого удостоверяющего центра. Но из-за возникновения потенциальных проблем на большом числе Android-устройств план был пересмотрен. С удостоверяющим центром IdenTrust было заключено новое соглашение, в рамках которого создан альтернативный кросс-подписанный промежуточный сертификат Let’s Encrypt. Кросс-подпись будет действовать три года и позволит сохранить поддержку устройств Android, начиная с версии 2.3.6.

Тем не менее, новый промежуточный сертификат не охватывает многие другие устаревшие системы. Например, после устаревания сертификата DST Root CA X3 30 сентября сертификаты Let’s Encrypt перестанут восприниматься в уже не поддерживаемых прошивках и операционных системах, в которых для обеспечения доверия к сертификатам Let’s Encrypt потребуется ручное добавление сертификата ISRG Root X1 в хранилище корневых сертификатов. Проблемы будут проявляться в:

  • OpenSSL до ветки 1.0.2 включительно (сопровождение ветки 1.0.2 было прекращено в декабре 2019 года);
  • NSS Java 8 Windows macOS iOS Android Mozilla Firefox Ubuntu Debian

    В случае OpenSSL 1.0.2, проблема вызвана ошибкой, которая не позволяет корректно обработать перекрёстно-подписанные сертификаты, в случае устаревания одного из корневых сертификатов, задействованных при подписи, даже если сохраняются другие действующие цепочки доверия. Проблема впервые всплыла в прошлом году после устаревания сертификата AddTrust, применяемого для перекрёстной подписи в сертификатах удостоверяющего центра Sectigo (Comodo). Суть проблемы в том, что OpenSSL разбирал сертификат как линейную цепочку, в то время как в соответствии с RFC 4158 сертификат может представлять ориентированный распределённый циклический граф с несколькими якорями доверия, которые нужно учитывать.

    Пользователям старых дистрибутивов, завязанных на OpenSSL 1.0.2, предлагается три обходных варианта решения проблемы:

    • Вручную удались корневой сертификат IdenTrust DST Root CA X3 и установить обособленный (не кросс-подписанный) корневой сертификат ISRG Root X1.
    • При запуске команд openssl verify и s_client можно указать опцию “–trusted_first”.
    • Использовать на сервере сертификат, заверенный обособленным корневым сертификатом SRG Root X1, не имеющим кросс-подписи. Указанный способ приведёт к потере совместимости со старыми Android-клиентами.

    Дополнительно можно отметить преодоление проектом Let’s Encrypt рубежа в два миллиарда сгенерированных сертификатов. Рубеж в один миллиард был достигнут в феврале прошлого года. Ежедневно генерируется 2.2-2.4 миллионов новых сертификатов. Число активных сертификатов составляет 192 млн (сертификат действует три месяца) и охватывает около 260 млн доменов (год назад было охвачено 195 млн доменов, два года назад – 150 млн, три года назад – 60 млн). По статистике сервиса Firefox Telemetry общемировая доля запросов страниц по HTTPS составляет 82% (год назад – 81%, два года назад – 77%, три года назад – 69%, четыре года назад – 58%).

Release. Ссылка here.