Das AddTrust-Stammzertifikat von Sectigo lief am 30. Mai 2020 ab, was zu Problemen bei OpenSSL 1.0.x- und GnuTLS-Clients führte



Die Sectigo Certificate Authority (Comodo) warnte Benutzer im Voraus vor dem Ablauf des AddTrust-Stammzertifikats , das für das Cross-Signing verwendet wurde, um die Kompatibilität mit älteren Geräten sicherzustellen, die kein neues USERTrust-Stammzertifikat in ihrem Geschäft haben.

AddTrust ist am 20. Mai 2020 um 10:48:38 UTC abgelaufen. Leider traten Probleme nicht nur in veralteten Browsern auf, sondern auch in Nicht-Browser-Clients, die auf OpenSSL 1.0.x, LibreSSL und GnuTLS basieren . Zum Beispiel in Roku-Set-Top-Boxen (siehe die Antwort im technischen Support vom 30.05.2020), Heroku in Fortinet, Chargify-Anwendungen, auf der .NET Core 2.0-Plattform unter Linux und vielen anderen.

Es wurde angenommen, dass das Problem nur ältere Systeme (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9 usw.) betrifft, da moderne Browser das zweite USERTRust-Stammzertifikat verwenden können, wie in der Abbildung dargestellt.


Zertifikatskette

Am 30. Mai 2020 kam es jedoch tatsächlich zu Abstürzen in Hunderten von Webdiensten, die die kostenlosen Bibliotheken OpenSSL 1.0.x und GnuTLS verwendeten. Eine sichere Verbindung mit einem Zertifikat-Veralterungsfehler wurde nicht mehr hergestellt.

Das entsprechende Ticket im OpenSSL-Bug-Tracker (Benutzername und Passwort: Gast) wurde am 25. Februar 2020 nur für die Version OpenSSL 1.1.0 geschlossen.

Warum ein Fehler auftritt


Wenn ein Client eine Verbindung herstellt, sendet ihm der TLS-Server sein Zertifikat. Der Client muss eine Kette von Zertifikaten vom Serverzertifikat bis zum Stammzertifikat erstellen, dem der Client vertraut. Um dem Client beim Aufbau dieser Kette zu helfen, sendet der Server ein oder mehrere zusätzliche Zwischenzertifikate zusammen mit seinen eigenen.



Eine Website sendet beispielsweise die folgenden zwei Zertifikate:

1.
Betreff = * .habr.com
Publisher = Sectigo ECC Domain Validation Secure Server-Zertifizierungsstelle
Aktionsbeginn = Samstag, 30. Mai 2020 3:00:00
Ablaufdatum = Freitag, 3. Dezember 2021 2:59:59

2.
Betreff = Sectigo ECC Domain Validation Secure Server-Zertifizierungsstelle
Herausgeber = USERTrust ECC Certification Authority
Aktionsbeginn = Freitag, 2. November 2018 3:00:00
Ende der Aktion = Mittwoch, 1. Januar 2031 2:59:59

Das erste Zertifikat gehört dem Server und wird von der Sectigo-Zertifizierungsstelle ausgestellt. Das zweite wird von der USERTrust ECC-Zertifizierungsstelle ausgestellt und ist das Stammzertifikat. Diese beiden Zertifikate bilden eine vollständige Kette zu einem vertrauenswürdigen Stamm.

Die USERTrust-Zertifizierungsstelle ist jedoch eine relativ neue Wurzel. Es wurde 2010 gegründet und es dauerte viele Jahre, bis alle Kunden ihm vertrauten. Im vergangenen Jahr gab es Berichte, dass einzelne Kunden dieser Wurzel nicht vertrauen. Daher senden einige Server ein zusätzliches Zwischenzertifikat der USERTrust ECC Certification Authority, das von AddTrust External CA Root ausgestellt wurde, an den Client. Dieses Zertifikat wurde im Jahr 2000 erstellt und war sein Zertifikat, das am 30. Mai 2020 abgelaufen ist.

Für kompetente Zertifikatsprüfer, einschließlich moderner Browser, verursachte dies keine Probleme, da sie selbst vor USERTrust eine Vertrauenskette aufbauen können. Bei Clients, die OpenSSL 1.0.x oder GnuTLS verwenden, gab es jedoch ein Problem. Selbst wenn diese Clients der USERTrust-Stammzertifizierungsstelle vertrauen und eine Kette zu dieser erstellen möchten, erhalten sie dennoch eine Kette zu AddTrust External CA Root, wodurch die Zertifikatüberprüfung fehlschlägt.

Sectigo hat ein alternatives Cross-Signed Intermediate Certificate AAA Certificate Services bereitgestellt , das bis 2028 gültig sein wird.

Überprüfen Sie Ihre Dienste


Server-Handler und Client-Anwendungsbetreiber werden aufgefordert, ihre Zertifikatkette auf ein veraltetes AddTrust-Stammzertifikat zu überprüfen.

Im Wesentlichen müssen Sie nur AddTrust External CA Root aus der Vertrauenskette entfernen.

Für Serverbetreiber gibt es einen Dienst What's My Chain Cert? , der diese Prüfung durchführt und dabei hilft, eine neue Vertrauenskette mit allen erforderlichen Zwischenzertifikaten zu generieren. Es ist nicht erforderlich, ein Stammzertifikat in diese Kette aufzunehmen, da alle Clients es bereits im Geschäft haben. Darüber hinaus ist die Aufnahme in die Kette aufgrund der Vergrößerung des SSL-Handshakes einfach ineffizient.

Betreibern von Clientanwendungen wird empfohlen, ein Upgrade auf die neueste TLS-Bibliothek durchzuführen. Wenn dies nicht möglich ist, müssen Sie das externe CA-Stammzertifikat AddTrust aus Ihrem Speicher entfernen. Wenn es sich nicht im Repository befindet, wird die richtige Vertrauenskette für das neue Stammzertifikat USERTrust RSA Certification Authority erstellt, sodass die TLS-Prüfung korrekt bestanden wird.

Um AddTrust External CA Root zu entfernen, müssen Sie folgende Schritte ausführen :

  1. Bearbeiten /etc/ca-certificates.confund kommentierenmozilla/AddTrust_External_Root.crt
  2. Lauf update-ca-certificates

Um das Problem zu beheben, schlagen Fedora und RHEL vor , 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 extract

Diese Methode funktioniert jedoch nicht für GnuTLS.

Siehe auch:
Das Problem mit Sectigo-Zertifikaten nach dem 30. Mai 2020 und die Lösungsmethode “ im Habr-Unternehmensblog





PKI-Lösungen für Ihr Unternehmen. Kontaktieren Sie uns unter +7 (499) 678 2210, sales-ru@globalsign.com.

All Articles