Am 30. Mai lief die 20-jährige Gültigkeit des Wurzelzertifikats ab. , der für die Erstellung einer Cross-Signatur in den Zertifikaten eines der größten Zertifizierungsstellen, Sectigo (Comodo). Die Cross-Signatur ermöglichte die Kompatibilität mit veralteten Geräten, in deren Wurzelzertifikatsspeicher das neue Wurzelzertifikat USERTrust nicht hinzugefügt wurde.
Theoretisch hätte das Ablaufen des Wurzelzertifikats AddTrust nur zu Kompatibilitätsproblemen mit veralteten Systemen (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9 usw.) führen sollen, da das zweite in der Cross-Signatur verwendete Wurzelzertifikat weiterhin gültig ist und moderne Browser es bei der Überprüfung der Vertrauenskette berücksichtigen. In der Praxis Probleme bei der Überprüfung der Cross-Signatur in TLS-Clients festgestellt, die keine Browser verwenden, darunter solche, die auf OpenSSL 1.0.x und GnuTLS basieren. Eine sichere Verbindung konnte nicht mehr hergestellt werden, und es trat ein Fehler bezüglich des Ablaufs des Zertifikats auf, wenn auf dem Server ein Zertifikat von Sectigo verwendet wurde, das über die Vertrauenskette mit dem Wurzelzertifikat AddTrust verbunden war.
Obwohl Benutzer moderner Browser den Ablauf des Wurzelzertifikats AddTrust bei der Verarbeitung von Cross-signierten Zertifikaten von Sectigo möglicherweise nicht bemerkt haben, traten in verschiedenen Drittanwendungen und Serververarbeitern Probleme auf, die zu vieler Infrastrukturen führten, die verschlüsselte Kommunikationskanäle zur Interaktion zwischen Komponenten verwenden.
Zum Beispiel gab es Zugriffsprobleme auf einige Paket-Repositories in Debian und Ubuntu (apt gab einen Zertifikatsprüfungsfehler aus), Skripte, die mithilfe der Tools „curl“ und „wget“ aufgerufen wurden, endeten mit einem Fehler, und es traten Probleme bei der Verwendung von Git auf. Funktionalität der Streaming-Plattform Roku war gestört, und die Handler von und sind ausgefallen, in Heroku-Anwendungen auf, war Epiphany betroffen, in dem die Blocklisten für Werbung nicht mehr geladen werden konnten. Epiphanie, bei der die Werbeblockierungslisten nicht mehr geladen werden.
Programme in der Programmiersprache Go sind nicht von diesem Problem betroffen, da Go eine von TLS anbietet.
, dass das Problem ältere Versionen von Distributionen betrifft (einschließlich Debian 9, Ubuntu 16.04, ), in denen problematische OpenSSL-Versionen verwendet werden, aber das Problem auch beim Arbeiten mit dem Paketmanager APT in den aktuellen Versionen von Debian 10 und Ubuntu 18.04/20.04 auf, da APT die GnuTLS-Bibliothek verwendet. Das Kernproblem besteht darin, dass viele TLS/SSL-Bibliotheken das Zertifikat als lineare Kette interpretieren, während gemäß RFC 4158 das Zertifikat einen gerichteten, verteilten, zyklischen Graphen mit mehreren Vertrauensanker darstellen kann, die zu berücksichtigen sind. Über diese Unzulänglichkeit in OpenSSL und GnuTLS berichtet. In OpenSSL wurde das Problem in der Version 1.1.1 behoben, während es in unbehandelt bleibt. .
Zur Eindämmung des Problems wird empfohlen, das Zertifikat AddTrust auf die schwarze Liste zu setzen:
trust dump —filter „pkcs11:id=$CB;type=cert“ \ und > /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
trust dump —filter «pkcs11:id=;type=cert» \
Dieser Ansatz
führt jedoch bei GnuTLS weiterhin zu Problemen (zum Beispiel wird beim Start der wget-Anwendung weiterhin ein Zertifikat-Überprüfungsfehler angezeigt).
Auf der Serverseite kann man die Reihenfolge
der auf der Vertrauenskette gesendeten Zertifikate an den Client ändern (wenn das mit „AddTrust External CA Root“ verbundene Zertifikat aus der Liste entfernt wird, wird die Überprüfung durch den Client erfolgreich sein). Um die neue Vertrauenskette zu prüfen und zu erstellen, kann der Dienst zertifiziert, dass es ein AAA Certificate Services Zusatz: Das Problem tritt auch«, die bis 2028 gültig sein wird und die Kompatibilität mit älteren Betriebssystemversionen gewährleistet.
Ergänzung: Das Problem ist ebenfalls in LibreSSL.
Quelle: opennet.ru
