Udløb af rodcertifikatet AddTrust har ført til fejl i systemer med OpenSSL og GnuTLS

30. maj udløb den 20-årige gyldighed af rodcertifikatet AddTrust, som brugt til at danne en kryds-signatur i certifikaterne fra en af de største certificeringsmyndigheder Sectigo (Comodo). Kryds-signaturen gjorde det muligt at sikre kompatibilitet med ældre enheder, hvor det nye rodcertifikat USERTrust ikke var blevet tilføjet i rodcertifikatlagringen.

Udløb af rodcertifikatet AddTrust har ført til fejl i systemer med OpenSSL og GnuTLS

Teoretisk set skulle udløbet af rodcertifikatet AddTrust kun føre til tab af kompatibilitet med ældre systemer (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9 osv.), da det andet rodcertifikat, der anvendes i kryds-signaturen, forbliver aktuelt, og moderne browsere tager det i betragtning ved kontrol af tillidskæden. I praksis opstod der problemer med verificeringen af kryds-signaturen i TLS-klienter, der ikke bruger browsere, herunder dem baseret på OpenSSL 1.0.x og GnuTLS. Sikker forbindelse kunne ikke længere etableres med en fejlmeddelelse om, at certifikatet var forældet, hvis serveren anvendte et certifikat fra Sectigo, der var kædet sammen med rodcertifikatet AddTrust.

Hvis brugerne af moderne browsere ikke bemærkede udløbet af rodcertifikatet AddTrust ved behandling af kryds-signeret certifikater fra Sectigo, begyndte der at opstå problemer i forskellige tredjepartsapplikationer og serverbehandlere, hvilket førte til overtrædelse driften af mange infrastrukturer, der bruger krypterede kommunikationskanaler til interaktion mellem komponenter.

For eksempel opstod der problemer problemer med adgangen til visse pakke-repositorier i Debian og Ubuntu (apt begyndte at returnere en fejl ved certifikatverifikation), skripter der brugte værktøjerne 'curl' og 'wget' begyndte at fejle, der blev observeret fejl ved brug af Git, driften af streamingplatformen Roku blev forstyrret, behandlere kunne ikke længere kaldet Stripe og DataDog, der begyndte at opstå nedbrud i Heroku-applikationer, sluttede OpenLDAP-klienter kunne ikke længere forbinde, der blev registreret problemer med at sende e-mails til SMTPS- og SMTP-servere med STARTTLS. Derudover blev der observeret problemer i forskellige Ruby-, PHP- og Python-scripts, der brugte HTTP-klientmodulet. Fra browsere var problemet affects Epiphany, hvor blokering af reklamer ikke længere blev indlæst.

Programmer skrevet i Go er ikke påvirket af problemet, da Go tilbyder egen implementering TLS.

Det var forudset, at problemet påvirker ældre versioner af distributioner (herunder Debian 9, Ubuntu 16.04, RHEL 6/7) hvor problematiske versioner af OpenSSL anvendes, men problemet opstod også ved brug af APT-pakkestyren i de aktuelle versioner Debian 10 og Ubuntu 18.04/20.04, da APT bruger biblioteket GnuTLS. Problemet er, at mange TLS/SSL-biblioteker fortolker certifikatet som en lineær kæde, mens det i overensstemmelse med RFC 4158 kan repræsentere en rettet distribueret cirkulær graf med flere tillidsanker punkter, som skal tages i betragtning. Denne manglende funktionalitet i OpenSSL og GnuTLS har , at den fortsat vil bruge 48-volts strømforsyninger. har eksisteret i mange år. I OpenSSL blev problemet løst i version 1.1.1, mens der i GnuTLS forbliver ikke er nogen løsning.

. Som en midlertidig løsning til at undgå nedbrud, anbefales det at fjerne certifikatet «AddTrust External CA Root» fra systemets certifikatlager (for eksempel ved at fjerne det fra /etc/ca-certificates.conf og /etc/ssl/certs, og derefter køre «update-ca-certificates -f -v»), hvorefter OpenSSL begynder at håndtere krydsunderskrevne certifikater korrekt. Ved brug af APT-pakkestyren kan man på egen risiko deaktivere certifikatverifikationen for specifikke anmodninger (for eksempel «apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false»).

For at blokere problemet i Fedora og RHEL foreslås det at sætte AddTrust-certifikatet på sorte lister:

trust dump —filter «pkcs11:id=;type=cert»
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
update-ca-trust extract

Men denne metode virker ikke for GnuTLS (for eksempel fortsætter fejlmeddelelsen om certifikatverifikation ved kørsel af wget værktøjet).

På serversiden kan man ændre rækkefølgen af certifikater i tillidskæden, der sendes fra serveren til klienten (hvis certifikatet relateret til «AddTrust External CA Root» fjernes fra listen, vil tjekket fra klienten gå igennem). For at kontrollere og generere en ny tillidskæde kan man bruge tjenesten whatsmychaincert.com. Firmaet Sectigo har også tilvejebragt et alternativt krydsunderskrevet mellemledscertifikat «AAA Certificate Services«, som vil være gyldigt indtil 2028 og tillade fortsat kompatibilitet med ældre versioner af OS.

Tillæg: Problemet eksisterer også optræder i LibreSSL.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster