AddTrust: Probleme durch abgelaufenes Root-Zertifkat

Ein planmäßig abgelaufenes Root-Zertifikat verursacht seit dem 30. Mai Ärger, weil es einige Clients per Zertifikatskette weiterhin erreichen.

In Pocket speichern vorlesen Druckansicht 54 Kommentare lesen
Missing Link, Kette
Lesezeit: 3 Min.

Das TLS-Root-Zertifikat "AddTrust External Root CA" der Firma Sectigo (ehemals Comodo) ist am vergangenen Samstag, dem 30. Mai, abgelaufen. Das war geplant, aber durch eine fehlerhafte Implementierung versuchen einige Clients weiterhin eine Zertifikatskette zu dem abgelaufenen Root-Zertifikat aufzubauen, scheitern dabei und melden dann ein fehlerhaftes Zertifikat.

Eigentlich sollte das Ablaufen des Zertifikats kein Problem darstellen, Sectigo besitzt und nutzt neuere Root-Zertifikate, die weiterhin gültig sind. Moderne Clients vertrauen diesen Root-Zertifikaten und nutzen automatisch Zertifikatsketten, die eben diese neueren Root-Zertifikate nutzen. Alle verbreiteten Browser verhalten sich so und sind daher nicht von dem Problem betroffen.

Das Problem ergibt sich aus einem Zwischenzertifikat (Intermediate Certificate), das Server speziell für ältere Clients mit versenden: Sehr alte Clients, die mangels Updates den neueren Root-Zertifikaten von Sectigo nicht vertrauten, konnten über das Zwischenzertifikat eine Zertifikatskette zu dem betroffenen Root-Zertifikat "AddTrust External Root CA" aufbauen. "AddTrust External Root CA" stammt aus dem Jahr 2000 und so konnten auch sehr alte Clients Verbindungen verifizieren.

Das Zwischenzertifikat ist ebenso wie das betroffene Root-Zertifikat nun abgelaufen, was nur die beschriebenen sehr alten Clients betreffen sollte. Modernere Clients – die den neueren Root-Zertifikaten vertrauen – sollten dagegen feststellen, dass sie auch ohne dieses Zwischenzertifikat eine gültige Zertifikatskette konstruieren können – eben indem sie die neueren Root-Zertifikate nutzen.

Einige Clients tun gerade dies aber nicht. Betroffen sind offenbar ältere Versionen der Bibliotheken OpenSSL und LibreSSL, sowie sogar die aktuelle Version von GnuTLS. Programme, die diese Bibliotheken nutzen, versuchen auch dann eine Kette über das abgelaufene Zwischenzertifikat aufzubauen, wenn das eigentlich gar nicht nötig ist, weil sie den neueren Roots von Sectigo vertrauen. Aber weil das Zwischenzertifikat nun abgelaufen ist, scheitern diese Clients und melden einen Zertifikatsfehler, aus dem schlimmstenfalls nicht einmal hervorgeht, welches Zertifikat abgelaufen ist.

Nutzer, die von dem Problem betroffen sind, können versuchen "AddTrust External Root CA" aus dem Pool von Root-Zertifikaten zu entfernen, denen ihr System vertraut. Zumindest manche Systeme können mit einem unbekannten Zertifikat nämlich besser umgehen als mit einem abgelaufenen und schwenken dann auf Zertifikatsketten zu den neueren Root-Zertifikaten um. Durch entsprechende Updates des Clients sollte "AddTrust External Root CA" früher oder später auch automatisch von Systemen verschwinden.

Betreiber betroffener Server sollten verhindern, dass ihr Server das abgelaufene Zwischenzertifikat ausliefert. Es ist jetzt ohnehin nutzlos und verbraucht auch noch etwas Bandbreite. Vor allem aber werden betroffene Clients so gezwungen, die neueren Root-Zertifikate zu nutzen. Ob der eigene Server betroffen ist, kann man beispielsweise mit dem Tool "What's My Chain Cert?" herausfinden. Falls man betroffen ist, warnt es deutlich: "<Domain> has a trusted chain containing an expired certificate. This chain will work with modern web browsers (they will use a chain to a different trusted root) but may fail with older client …"

Auch allgemeine Tools zur Inspektion der genutzten Zertifikate lassen sich nutzen, etwa der relativ bekannte SSL Server Test. Sie warnen zwar nicht explizit vor dem Problem, zeigen jedoch generell an, wenn abgelaufene Zwischenzertifikate vom Server übermittelt werden.

(emw)