30. mai lõppes 20-aastane AddTrusti juuresertifikaadi kehtivusaeg , mis ühe suurima sertifitseerimiskeskuse Sectigo (Comodo) sertifikaatidesse ristallkiri (cross-signed) genereerimiseks. Ristallkiri tagas ühilduvuse aegunud seadmetega, milles ei olnud uut USERTrusti juuresertifikaati lisatud.
Teoreetiliselt pidi AddTrusti juuresertifikaadi kehtivuse lõpp tooma kaasa vaid ühilduvuse katkemise aegunud süsteemidega (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9 jne), sest teine juuresertifikaat, mida ristallkirjas kasutatakse, jääb kehtima ja kaasaegsed brauserid arvestavad sellega usaldusketi kontrollimisel. Practikas probleeme ristallkirjade kontrollimisel TLS-klientides, sealhulgas OpenSSL 1.0.x ja GnuTLS põhistes. Turvaline ühendus ei hakanud enam töötama, kui serveris kasutati AddTrusti juuresertifikaadiga seotud Sectigo sertifikaati, mis tõi esile vea sertifikaadi aegumise kohta.
Kui kaasaegsete brauserite kasutajad ei märganud AddTrust'i juuresertifikaadi aegumist ristallkirjastatud Sectigo sertifikaate töödeldes, siis erinevates kolmandate osapoolte rakendustes ja serverite töötlejatest hakkasid ilmuma probleemid, mis tõid kaasa infrastruktuuride töö katkemise, mis kasutavad krüpteeritud sidekanaleid komponentide vahelise suhtlemise jaoks.
Näiteks esines probleeme juurdepääsuga teatud paketirepositoridele Debianis ja Ubuntu (apt hakkas andma sertifikaadi kontrollimise vea), skriptide väljakutsed läbi utiliitide 'curl' ja 'wget' kukkusid läbi, ilmnesid vead Gitiga töötamisel, Roku striimimise platvormi töö, töötlejad lakkasid tööst ja , hakkasid Heroku rakendustes, ühenduma OpenLDAP kliendid, ilmnesid probleemid SMTPS ja SMTP serveritele posti saatmisel STARTTLS-iga. Lisaks ilmnesid probleemid erinevates Ruby-, PHP- ja Python-skriptides, mis kasutasid http-klientide moodulit. Brauserites Epiphany, kus reklaamiblokeerimise nimekirjad ei hakanud enam laadima.
Go keeles kirjutatud programmid ei ole selle probleemi all, kuna Go pakub TLS.
, et probleem mõjutab vanade distributsioonide väljaandeid (sealhulgas Debian 9, Ubuntu 16.04, ) milles kasutatakse probleemseid OpenSSL harusid, kuid probleem ka APT paketihalduri töös, käesolevate Debian 10 ja Ubuntu 18.04/20.04 väljaannetes, kuna APT kasutab GnuTLS'i teeki. Probleemi olemus seisneb selles, et paljud TLS/SSL teegid tõlgendavad sertifikaati kui lineaarselt ahelat, samas kui vastavalt RFC 4158-le võib sertifikaat esindada suunatud jaotatud tsüklit ja mitmeid usaldusväärsuse tugipunkte, mida tuleb arvestada. Sellest probleemist OpenSSL-is ja GnuTLS-is OpenSSL-is oli probleem lahendatud harus 1.1.1, kuid jäänud .
lahendusena probleemide kõrvaldamiseks soovitatakse eemaldada süsteemi sertifikaadihoidlast sertifikaat 'AddTrust External CA Root' (nt eemaldada failidest /etc/ca-certificates.conf ja /etc/ssl/certs, seejärel käivitada 'update-ca-certificates -f -v'), pärast mida OpenSSL hakkab normaalselt töötlema ristallkirjastatud sertifikaate. Kasutades APT paketihaldurit on oma riskil võimalik teatud päringute puhul sertifikaatide kontrollimine keelata (nt 'apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false').
Probleemi blokeerimiseks ja soositakse lisada AddTrust sertifikaat musta nimekirja:
usaldusdump —filter «pkcs11:id=;type=cert»
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
update-ca-trust extract
Kuid see meetod GnuTLS'i puhul ei lahenda probleemi (nt 'wget' rakenduse käivitamisel jätkuvalt esitatakse sertifikaadi kontrollimise viga).
Serveripoolt sertifikaatide esitlemise järjekorda usaldusketis, mida server saadab kliendile (kui 'AddTrust External CA Root' sertifikaat eemaldatakse loendist, läbib klient kontrolli edukalt). Uue usaldusketi kontrollimiseks ja genereerimiseks võib kasutada teenust . Sectigo samuti alternatiivse ristallkirjastatud vahe-sertifikaadi ''', mis kehtib kuni 2028. aastani ja aitab säilitada ühilduvuse vanemate operatsioonisüsteemide versioonidega.
Lisa: Probleem puudutab ka LibreSSL. LibreSSL-is.
Allikas: opennet.ru
