Az AddTrust gyökértanúsítvány elavultsága összeomlást okoz az OpenSSL és GnuTLS rendszereken

Május 30-án lejárt a gyökértanúsítvány 20 éves érvényességi ideje AddTrusthogy alkalmazott az egyik legnagyobb tanúsító hatóság, a Sectigo (Comodo) kereszt-aláírt tanúsítványainak generálására. A keresztaláírás lehetővé tette az olyan régi eszközökkel való kompatibilitást, amelyek nem tartalmazták az új USERTRust gyökértanúsítványt a gyökértanúsítvány-tárolójukhoz.

Az AddTrust gyökértanúsítvány elavultsága összeomlást okoz az OpenSSL és GnuTLS rendszereken

Elméletileg az AddTrust gyökértanúsítvány megszüntetése csak a régi rendszerekkel (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9 stb.) való kompatibilitás megsértéséhez vezethet, mivel a keresztaláírásban használt második gyökértanúsítvány megmarad. érvényes és modern böngészők figyelembe veszik a bizalmi lánc ellenőrzésekor. A gyakorlatról felbukkant Problémák a keresztaláírások ellenőrzésével a nem böngésző TLS-kliensekben, beleértve az OpenSSL 1.0.x-en és a GnuTLS-en alapulókat is. A biztonságos kapcsolat már nem jön létre, és hiba jelzi, hogy a tanúsítvány elavult, ha a kiszolgáló egy bizalmi lánc által az AddTrust gyökértanúsítvánnyal összekapcsolt Sectigo-tanúsítványt használ.

Ha a modern böngészők felhasználói nem vették észre az AddTrust gyökértanúsítvány elavulását a kereszt-aláírt Sectigo-tanúsítványok feldolgozása során, akkor problémák kezdtek felbukkanni a különböző harmadik féltől származó alkalmazásokban és szerveroldali kezelőkben, ami megsértése munka számos olyan infrastruktúra, amely titkosított kommunikációs csatornákat használ az összetevők közötti interakcióhoz.

Például voltak problémák a Debian és az Ubuntu egyes csomagtárolóihoz való hozzáféréssel (az apt tanúsítvány-ellenőrzési hibát generált), a „curl” és a „wget” segédprogramokat használó szkriptek kérései meghiúsultak, hibákat észleltek a Git használata során, megsértették A Roku streaming platform működik, a kezelőket már nem hívják Stripe Index и DataDog, elindult ütközések fordulnak elő a Heroku alkalmazásokban, megszűntek Az OpenLDAP kliensek csatlakoznak, problémákat észleltek az SMTPS-re és a STARTTLS-szel rendelkező SMTP-kiszolgálókra történő levélküldéssel kapcsolatban. Ezenkívül problémák figyelhetők meg a különböző Ruby, PHP és Python szkriptekben, amelyek egy http-kliens modult használnak. Böngésző probléma érinti Epiphany, amely leállította a hirdetésblokkoló listák betöltését.

A Go programokat ez a probléma nem érinti, mert a Go kínál saját megvalósítás TLS.

Úgy volthogy a probléma a régebbi terjesztési kiadásokat érinti (beleértve a Debian 9, Ubuntu 16.04, RHEL 6/7), amelyek problémás OpenSSL ágakat használnak, de a probléma nyilvánult meg akkor is, ha az APT csomagkezelő fut a Debian 10 és az Ubuntu 18.04/20.04 aktuális kiadásaiban, mivel az APT a GnuTLS könyvtárat használja. A probléma lényege, hogy sok TLS/SSL-könyvtár lineáris láncként elemzi a tanúsítványt, míg az RFC 4158 szerint egy tanúsítvány egy irányított elosztott körkörös gráfot képviselhet több megbízhatósági horgonyval, amelyeket figyelembe kell venni. Az OpenSSL és a GnuTLS hibájáról ez volt ismert sok éven. Az OpenSSL-ben a problémát az 1.1.1-es ágban és azokban javították gnuTLS maradványok kijavítatlan.

Megkerülő megoldásként azt javasoljuk, hogy távolítsa el az „AddTrust External CA Root” tanúsítványt a rendszertárolóból (például távolítsa el az /etc/ca-certificates.conf és /etc/ssl/certs fájlokból, majd futtassa az „update-ca -tanúsítványok -f -v"), amely után az OpenSSL megkezdi a kereszt-aláírt tanúsítványok normál feldolgozását a részvételével. Az APT csomagkezelő használatakor saját felelősségére letilthatja az egyes kérések tanúsítványellenőrzését (például „apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false”) .

A probléma blokkolásához Fedora и RHEL Javasoljuk az AddTrust tanúsítvány felvételét a feketelistára:

trust dump —filter «pkcs11:id=%AD%BD%98%7A%34%B4%26%F7%FA%C4%26%54%EF%03%BD%E0%24%CB%54%1A;type=cert» \
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
update-ca-trust kivonat

De ez a módszer nem működik GnuTLS esetén (például a wget segédprogram futtatásakor továbbra is tanúsítvány-ellenőrzési hiba jelenik meg).

A szerver oldalon megteheti módosítására megbízás a kiszolgáló által a kliensnek küldött megbízhatósági láncban található tanúsítványok felsorolása (ha az „AddTrust External CA Root”-hoz társított tanúsítványt eltávolítják a listáról, akkor az ügyfél ellenőrzése sikeres lesz). Új bizalmi lánc ellenőrzéséhez és létrehozásához használhatja a szolgáltatást whatsmychaincert.com. Sectigo is biztosítani alternatív kereszt aláírt köztes tanúsítvány "AAA tanúsítványszolgáltatások“, amely 2028-ig lesz érvényes, és megőrzi a kompatibilitást az operációs rendszer régebbi verzióival.

Kiegészítés: Probléma is Megjelenik a LibreSSL-ben.

Forrás: opennet.ru

Hozzászólás