Die veraltete Funktion des AddTrust-Stammzertifikats führt zu Abstürzen auf OpenSSL- und GnuTLS-Systemen

Am 30. Mai ist die 20-jährige Gültigkeitsdauer des Stammzertifikats abgelaufen Vertrauen hinzufügenDie angewandt um ein gegensigniertes Zertifikat einer der größten Zertifizierungsstellen Sectigo (Comodo) zu generieren. Cross-Signing ermöglichte die Kompatibilität mit älteren Geräten, denen das neue USERTRust-Stammzertifikat nicht zum Stammzertifikatspeicher hinzugefügt wurde.

Die veraltete Funktion des AddTrust-Stammzertifikats führt zu Abstürzen auf OpenSSL- und GnuTLS-Systemen

Theoretisch dürfte die Kündigung des AddTrust-Root-Zertifikats nur zu einer Verletzung der Kompatibilität mit Legacy-Systemen (Android 2.3, Windows XP, Mac OS Gültige und moderne Browser berücksichtigen dies bei der Überprüfung der Vertrauenskette. Zur Praxis aufgetaucht Probleme mit der Cross-Signatur-Verifizierung in Nicht-Browser-TLS-Clients, einschließlich denen, die auf OpenSSL 1.0.x und GnuTLS basieren. Es wird keine sichere Verbindung mehr hergestellt und es wird ein Fehler angezeigt, der darauf hinweist, dass das Zertifikat veraltet ist, wenn der Server ein Sectigo-Zertifikat verwendet, das über eine Vertrauenskette mit dem AddTrust-Stammzertifikat verknüpft ist.

Wenn Benutzer moderner Browser die Veralterung des AddTrust-Stammzertifikats bei der Verarbeitung von kreuzsignierten Sectigo-Zertifikaten nicht bemerkten, traten in verschiedenen Anwendungen von Drittanbietern und serverseitigen Handlern Probleme auf, die dazu führten Verstoß arbeiten viele Infrastrukturen, die verschlüsselte Kommunikationskanäle für die Interaktion zwischen Komponenten nutzen.

Es gab zum Beispiel Probleme Beim Zugriff auf einige Paket-Repositorys in Debian und Ubuntu (apt begann einen Fehler bei der Zertifikatsüberprüfung zu generieren), schlugen Anfragen von Skripten mit den Dienstprogrammen „curl“ und „wget“ fehl, bei der Verwendung von Git wurden Fehler beobachtet. verletzt Die Roku-Streaming-Plattform funktioniert, Handler werden nicht mehr aufgerufen Stripe и DataDog, gestartet es kommt zu Abstürzen in Heroku-Apps, gestoppt OpenLDAP-Clients stellen eine Verbindung her, es werden Probleme beim Senden von E-Mails an SMTPS- und SMTP-Server mit STARTTLS erkannt. Darüber hinaus werden Probleme in verschiedenen Ruby-, PHP- und Python-Skripten beobachtet, die ein Modul mit einem http-Client verwenden. Browserproblem wirkt Epiphany, das das Laden von Werbeblockerlisten gestoppt hat.

Go-Programme sind von diesem Problem nicht betroffen, da Go dies bietet Eigene Umsetzung TLS.

Es wurde vermutetdass das Problem ältere Distributionsversionen betrifft (einschließlich Debian 9, Ubuntu 16.04, RHEL 6/7), die problematische OpenSSL-Zweige verwenden, aber das Problem manifestierte sich auch wenn der APT-Paketmanager in aktuellen Versionen von Debian 10 und Ubuntu 18.04/20.04 läuft, da APT die GnuTLS-Bibliothek verwendet. Der Kern des Problems besteht darin, dass viele TLS/SSL-Bibliotheken ein Zertifikat als lineare Kette analysieren, während ein Zertifikat gemäß RFC 4158 einen gerichteten verteilten kreisförmigen Graphen mit mehreren Vertrauensankern darstellen kann, die berücksichtigt werden müssen. Über diesen Fehler in OpenSSL und GnuTLS war bekannt für viele Jahre. In OpenSSL wurde das Problem in Zweig 1.1.1 und in behoben GnuTLS bleibt unkorrigiert.

Als Workaround wird empfohlen, das „AddTrust External CA Root“-Zertifikat aus dem Systemspeicher zu entfernen (z. B. aus /etc/ca-certificates.conf und /etc/ssl/certs zu entfernen und dann „update-ca -certificates -f -v"), woraufhin OpenSSL mit seiner Teilnahme beginnt, kreuzsignierte Zertifikate normal zu verarbeiten. Bei Verwendung des APT-Paketmanagers können Sie die Zertifikatsüberprüfung für einzelne Anfragen auf eigenes Risiko deaktivieren (z. B. „apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false“). .

Um das Problem zu blockieren Fedora и RHEL Es wird vorgeschlagen, das AddTrust-Zertifikat zur Blacklist hinzuzufügen:

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-Extrakt

Aber diese Methode nicht funktioniert für GnuTLS (z. B. wird beim Ausführen des Dienstprogramms wget weiterhin ein Fehler bei der Zertifikatüberprüfung angezeigt).

Auf der Serverseite ist das möglich ändern порядок Auflistung der Zertifikate in der Vertrauenskette, die vom Server an den Client gesendet werden (wenn das mit „AddTrust External CA Root“ verknüpfte Zertifikat aus der Liste entfernt wird, ist die Überprüfung des Clients erfolgreich). Zur Überprüfung und Generierung einer neuen Vertrauenskette können Sie den Dienst nutzen whatsmychaincert.com. Sectigo auch предоставила alternatives kreuzsigniertes Zwischenzertifikat "AAA-Zertifikatsdienste„, das bis 2028 gültig ist und die Kompatibilität mit älteren Versionen des Betriebssystems gewährleistet.

Ergänzung: Problem auch ist manifestiert in LibreSSL.

Source: opennet.ru

Kommentar hinzufügen