30. maj udløb den 20-årige gyldighed af rodcertifikatet , som 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.
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 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 af mange infrastrukturer, der bruger krypterede kommunikationskanaler til interaktion mellem komponenter.
For eksempel opstod der 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, streamingplatformen Roku blev forstyrret, behandlere kunne ikke længere kaldet og , der begyndte i Heroku-applikationer, 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 Epiphany, hvor blokering af reklamer ikke længere blev indlæst.
Programmer skrevet i Go er ikke påvirket af problemet, da Go tilbyder TLS.
, at problemet påvirker ældre versioner af distributioner (herunder Debian 9, Ubuntu 16.04, ) hvor problematiske versioner af OpenSSL anvendes, men problemet 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 . I OpenSSL blev problemet løst i version 1.1.1, mens der i forbliver .
. 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 og 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 for GnuTLS (for eksempel fortsætter fejlmeddelelsen om certifikatverifikation ved kørsel af wget værktøjet).
På serversiden kan man 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 . Firmaet Sectigo har også et alternativt krydsunderskrevet mellemledscertifikat ««, som vil være gyldigt indtil 2028 og tillade fortsat kompatibilitet med ældre versioner af OS.
Tillæg: Problemet eksisterer også i LibreSSL.
Kilde: opennet.ru
