27.10.2021

Устаревание корневого сертификата 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 < 3.26;
  • Java 8 < 8u141, Java 7 < 7u151;
  • Windows < XP SP3;
  • macOS < 10.12.1;
  • iOS < 10 (iPhone < 5);
  • Android < 2.3.6;
  • Mozilla Firefox < 50;
  • Ubuntu < 16.04;
  • Debian < 8.

В случае 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%).

Источник.