Zastarjelost root certifikata AddTrust uzrokuje padove na OpenSSL i GnuTLS sistemima

30. maja istekao je period važenja root sertifikata od 20 godina AddTrust, što je primijenjeno generirati unakrsno potpisane certifikate jednog od najvećih certifikacijskih tijela Sectigo (Comodo). Unakrsno potpisivanje je omogućilo kompatibilnost sa naslijeđenim uređajima koji nisu imali novi USERTRust korijenski certifikat dodan u njihovo root spremište certifikata.

Zastarjelost root certifikata AddTrust uzrokuje padove na OpenSSL i GnuTLS sistemima

Teoretski, prekid AddTrust root certifikata bi trebao dovesti samo do kršenja kompatibilnosti sa naslijeđenim sistemima (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9, itd.), budući da ostaje drugi korijenski certifikat koji se koristi u unakrsnom potpisu važeći i moderni pretraživači to uzimaju u obzir prilikom provjere lanca povjerenja. Na praksi pojavio se Problemi sa verifikacijom unakrsnog potpisa u TLS klijentima koji nisu pretraživači, uključujući one zasnovane na OpenSSL 1.0.x i GnuTLS. Sigurna veza više nije uspostavljena s greškom koja ukazuje da je certifikat zastario ako poslužitelj koristi Sectigo certifikat povezan lancem povjerenja s korijenskim certifikatom AddTrust.

Ako korisnici modernih pretraživača nisu primijetili zastarjelost AddTrust root certifikata prilikom obrade unakrsno potpisanih Sectigo certifikata, tada su se počeli pojavljivati ​​problemi u raznim aplikacijama trećih strana i rukovaocima na strani servera, što je dovelo do razbijanje работы mnoge infrastrukture koje koriste šifrirane komunikacijske kanale za interakciju između komponenti.

Na primjer, bilo ih je problema s pristupom nekim spremištima paketa u Debianu i Ubuntuu (apt je počeo generirati grešku u verifikaciji certifikata), zahtjevi iz skripti koji koriste uslužne programe "curl" i "wget" počeli su neuspjeh, greške su uočene prilikom korištenja Gita, prekršena Roku streaming platforma radi, rukovaoci se više ne pozivaju pruga и DataDog, počeo dolazi do padova u Heroku aplikacijama, su prestali OpenLDAP klijenti se povezuju, otkriveni su problemi sa slanjem pošte na SMTPS i SMTP servere sa STARTTLS. Pored toga, problemi su uočeni u raznim Ruby, PHP i Python skriptama koje koriste modul sa http klijentom. Problem sa pretraživačem utiče Epiphany, koji je prestao učitavati liste za blokiranje oglasa.

Go programi nisu pogođeni ovim problemom jer Go nudi vlastitu implementaciju TLS.

Pretpostavljalo seda problem utječe na starija izdanja distribucije (uključujući Debian 9, Ubuntu 16.04, RHEL 6/7) koji koriste problematične OpenSSL grane, ali problem manifestovala se također kada je APT upravitelj paketa pokrenut u trenutnim izdanjima Debiana 10 i Ubuntu 18.04/20.04, budući da APT koristi GnuTLS biblioteku. Suština problema je u tome što mnoge TLS/SSL biblioteke analiziraju certifikat kao linearni lanac, dok prema RFC 4158, certifikat može predstavljati usmjereni distribuirani kružni graf s višestrukim sidrima povjerenja koje treba uzeti u obzir. O ovoj mani u OpenSSL-u i GnuTLS-u bio je poznato dugi niz godina. U OpenSSL-u problem je riješen u grani 1.1.1 i u gnuTLS ostaje neispravljeno.

Kao zaobilazno rešenje, predlaže se uklanjanje sertifikata „AddTrust External CA Root“ iz sistemske prodavnice (na primer, uklonite iz /etc/ca-certificates.conf i /etc/ssl/certs, a zatim pokrenite „update-ca -certificates -f -v"), nakon čega OpenSSL počinje normalno obraditi unakrsno potpisane certifikate uz njegovo učešće. Kada koristite upravitelj paketa APT, možete onemogućiti verifikaciju certifikata za pojedinačne zahtjeve na vlastitu odgovornost (na primjer, “apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false”) .

Da blokirate problem u fedora и RHEL Predlaže se dodavanje AddTrust certifikata na crnu listu:

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 ekstrakt

Ali ova metoda ne radi za GnuTLS (na primjer, greška u verifikaciji certifikata i dalje se pojavljuje prilikom pokretanja uslužnog programa wget).

Na strani servera možete promjena naruči navođenje sertifikata u lancu poverenja koje server šalje klijentu (ako se sertifikat povezan sa „AddTrust External CA Root“ ukloni sa liste, tada će verifikacija klijenta biti uspešna). Da biste provjerili i generirali novi lanac povjerenja, možete koristiti uslugu whatsmychaincert.com. Sectigo takođe obezbeđeno alternativni unakrsno potpisani srednji certifikat "Usluge AAA certifikata“, koji će važiti do 2028. godine i održat će kompatibilnost sa starijim verzijama OS-a.

Dodatak: Problem takođe manifestovani u LibreSSL.

izvor: opennet.ru

Dodajte komentar