На 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%).
Източник: opennet.ru
