На 30 май изтече 20-годишният срок на действие на коренния сертификат , който служи за създаване на кръстосано подписване (cross-signed) в сертификатите на един от най-големите удостоверяващи центрове Sectigo (Comodo). Кръстосаното подписване позволяваше осигуряване на съвместимост с остарели устройства, в хранилището на коренни сертификати на които не е добавен новият коренен сертификат USERTrust.
Теоретичното прекратяване на действието на коренния сертификат AddTrust трябваше да доведе само до нарушаване на съвместимостта с остарели системи (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9 и т.н.), тъй като вторият коренен сертификат, използван в кръстосаното подписване, остава актуален и съвременните браузъри го вземат под внимание при проверка на веригата на доверие. На практика проблеми с проверката на кръстосаното подписване в TLS-клиенти, които не използват браузъри, включително базирани на OpenSSL 1.0.x и GnuTLS. Безопасната свързаност спря да се установява с изходна грешка за изтичане на сертификата, ако на сървера се използва сертификат Sectigo, свързан с веригата на доверие с коренния сертификат AddTrust.
Ако потребителите на съвременни браузъри не забелязаха изтичането на коренния сертификат AddTrust при обработката на кръстосано подписани сертификати Sectigo, то в различни странични приложения и сървърни обработващи модули започнаха да се появяват проблеми, което доведе до много инфраструктури, използващи криптирани комуникационни канали за взаимодействие между компонентите.
Например, възникнаха проблеми с достъпа до определени пакети в репозиториите на Debian и Ubuntu (apt започна да издава грешка при проверка на сертификата), започнаха да възникват грешки при обаждания от скриптове с помощта на инструментите "curl" и "wget", наблюдават се грешки при използването на Git, работата на платформа за стрийминг Roku, спряха да се извикват обработчици и , започнаха в приложенията Heroku, да се свързват клиентите OpenLDAP, фиксират се проблеми с изпращането на електронна поща към сървъри SMTPS и SMTP с STARTTLS. Освен това се наблюдават проблеми в различни Ruby-, PHP- и Python-скриптове, използващи модул с http-клиент. От браузърите, проблемът Epiphany, в който спряха да се зареждат списъците с блокиращи реклами.
Програмите на Go не са подложени на проблема, тъй като Go предлага на TLS.
, че проблемът засяга стари версии на дистрибуциите (включително Debian 9, Ubuntu 16.04, ) в които се използват проблемни клонове на OpenSSL, но проблемът също така при работа на пакетния мениджър APT в актуалните версии на Debian 10 и Ubuntu 18.04/20.04, тъй като APT използва библиотеката GnuTLS. Същността на проблема е, че много TLS/SSL библиотеки интерпретират сертификата като линейна верига, докато съгласно RFC 4158 сертификатът може да представлява насочен разпределен цикличен граф с множество доверителни корена, които трябва да бъдат взети предвид. За този недостатък в OpenSSL и GnuTLS . В OpenSSL проблемът беше отстранен в клон 1.1.1, а в остава .
Като заобиколно решение на проблема се предлага да се премахне от системното хранилище сертификатът "AddTrust External CA Root" (например, да се премахне от /etc/ca-certificates.conf и /etc/ssl/certs и след това да се стартира "update-ca-certificates -f -v"), след което OpenSSL започва да обработва нормално взаимно подписаните сертификати, в които участва. При използване на пакетния мениджър APT на собствен риск може да се деактивира проверката на сертификатите за отделни заявки (например, "apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false").
За блокиране на проблема в и се предлага да се добави сертификатът AddTrust в черния списък:
доверителен дъмп —филтър «pkcs11:id=;type=cert» \
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
update-ca-trust extract
Но този метод за GnuTLS (например, продължава да се издава грешка при проверка на сертификата при стартиране на инструмента wget).
На страната на сървъра може на изброяване на сертификатите в веригата на доверие, изпращани от сървъра към клиента (ако свързаният с сертификата "AddTrust External CA Root" бъде премахнат от списъка, проверката от страна на клиента ще приключи успешно). За проверка и генериране на нова верига на доверие може да се използва услугата . Компанията Sectigo също алтернативен взаимно подписан междинен сертификат "", който ще действа до 2028 година и ще запази съвместимостта със старите версии на ОС.
Допълнение: Проблемът също в LibreSSL.
Източник: opennet.ru
