Zertifikatstransparenz - Schutz gegen gefälschtes Zertifikat
05.02.2015 | Jindřich Zechmeister
Certificate transparency ist eine Funktion zur Erhöhung der Vertrauenswürdigkeit von Zertifikaten, über die wir bereits im November berichtet haben. Die theoretischen Grundlagen finden Sie im Artikel Certificate Transparency a Public Key Pinning. Heute betrachten wir Certificate Transparency genauer – insbesondere die praktischen Aspekte und das Verhalten im Webbrowser Google Chrome.

Was ist Certificate Transparency und warum wurde es eingeführt?
Grundsätzlich kann Certificate Transparency als Logging der von Google ausgestellten Zertifikate beschrieben werden, das nicht nur registriert, sondern auch überwacht und geprüft wird. Certificate Transparency funktioniert nur in Chrome, andere Browser unterstützen CT nicht.
Die neue CT-Funktion wurde mit dem Ziel eingeführt, den Schutz vor gefälschten Zertifikaten, die technisch gesehen als MITM (Man-in-the-Middle) Angriffe bezeichnet werden, zu erhöhen. Dadurch soll der Nutzer besser vor dem Versuch geschützt werden, ein gefälschtes Zertifikat zu verwenden (dieses Risiko ist jedoch in Wirklichkeit minimal).
Certificate Transparency ist derzeit die Domäne von EV-Zertifikaten mit erweiterter Validierung, doch das Ziel von Google ist es, den Service auf andere Zertifikatsarten auszuweiten.
Wichtig ist, dass ab Februar 2015 Chrome keine grüne Leiste bei einem EV-Zertifikat anzeigen wird, das nach dem 1. Januar 2015 ausgestellt wurde, wenn das Zertifikat nicht im CT-Log ist! Bestehende EV-Zertifikate von Symantec, GeoTrust und Thawte wurden im Dezember 2014 in das Log aufgenommen und neue werden automatisch hinzugefügt. Unsere Kunden müssen sich daher keine Sorgen machen.
Chrome überprüft öffentliche Aufzeichnungen des Zertifikats
Google Chrome hat begonnen, seltsame und unverständliche Meldungen bezüglich der Veröffentlichung von Daten anzuzeigen. Im Folgenden finden Sie eine Übersicht über vier mögliche Varianten (Übersetzung basiert auf der tschechischen Version von Chrome, bei einigen Varianten ist die offizielle Übersetzung noch nicht bekannt).
Die Identität dieser Website (Organisation XY) wurde von [Name Ihrer CA] überprüft, ...
- und ist öffentlich prüfbar (Die Identität dieser Website wurde verifiziert von HERAUSGEBER und ist öffentlich prüfbar.) - alles ist in Ordnung und CT funktioniert (gültiger Zeitstempel).
- aber es existieren keine öffentlichen Aufzeichnungen dieser Organisation - wahrscheinlich das Fehlen eines CT-Eintrags, siehe unten
- aber es existieren keine öffentlichen Aufzeichnungen der Seite (Die Identität dieser Website wurde verifiziert von HERAUSGEBER, hat aber keine öffentlichen Prüfungsaufzeichnungen) - CT funktioniert nicht (im Zertifikat fehlt ein unterzeichneter Zeitstempel).
- behauptet, öffentlich zugängliche Aufzeichnungen zu haben, aber diese können nicht überprüft werden (eigene Übersetzung) - der Zeitstempel ist signiert, aber nicht im bekannten Log und kann nicht geprüft werden.
- aber die öffentlichen Prüfdaten konnten nicht verifiziert werden (eigene Übersetzung) - der Zeitstempel ist im bekannten Log aufgeführt, kann aber nicht verifiziert werden.
Fehler der Certificate Transparency in Google Chrome. Die Sicherheitsmeldung bezieht sich nicht mehr auf CT.
Am Anfang kam mir auch nicht in den Sinn, dass diese Meldung mit Certificate Transparency zusammenhängt, aber dem ist so. Die Bedenken hinsichtlich öffentlicher Aufzeichnungen (Audit Records) beziehen sich auf Certificate Transparency. Ich wundere mich jedoch darüber, dass es bei dieser Meldung keine weitere Erklärung gibt. Ein Link zur CT-Aufzeichnung erscheint nur bei einem positiv geprüften Eintrag, aber nicht bei einem Fehler.
Was tun aus Sicht eines Website-Betreibers?
Es ist wichtig, eine verantwortungsbewusste Zertifizierungsstelle auszuwählen, die sich um die Veröffentlichung der ausgestellten EV-Zertifikate im CT-Log kümmert. Zum Beispiel Symantec, Thawte oder GeoTrust. Der Rest „erledigt“ sich dann von selbst, und das Ergebnis wird positiv sein.
Der Vorteil für Website-Besitzer besteht darin, die ausgegebenen Zertifikate aus Sicht des Domaininhabers kontrollieren und einsehen zu können. Sie werden informiert, wenn eine größere Zertifizierungsstelle ein Zertifikat für Ihre Domain ausgestellt hat; wenn dies ohne Ihr Wissen geschah, können Sie einen Missbrauch rechtzeitig verhindern.
Was passiert, wenn Certificate Transparency nicht funktioniert?
Bei einer Fehlfunktion von CT sollte Chrome keinen grünen Streifen des EV-Zertifikats anzeigen. Bei Google lässt sich jedoch schwer vorhersagen, wie letztendlich im Chrome eine Warnung integriert wird. Ich erwarte eher, dass der Browser eine Warnung zur Nichtvertrauenswürdigkeit anzeigt. Aktuell scheint CT auch die Anzeige des HTTPS-Symbols bei niedrigeren Zertifikatsarten zu beeinflussen. Google schafft im Chrome und der Warnung damit völliges Chaos.
Nicht alles ist perfekt, was von Google stammt
Certificate Transparency wurde mit der wohltätigen Absicht geschaffen, den Schutz der Benutzer vor gefälschten Zertifikaten zu erhöhen. Es gibt jedoch einige Mängel, die ich ansprechen muss.
Der erste ist die Unterstützung nur in Chrome; andere Browser nutzen CT bisher nicht. Der zweite ist Google selbst, das in Sicherheitsfragen sehr aggressiv ist, und neue Funktionen im Chrome zu schnell implementiert (man denke nur an SHA-1). Chrome befindet sich jetzt in einem Zustand, in dem es oft unsinnige Warnungen bei Zertifikaten anzeigt, und das sogar unterschiedlich auf Plattformen (auf Linux sieht man oft Warnungen, die man auf Windows nicht sieht, was auf ein unterschiedliches Arbeitstempo der Programmierer bei der Linux-Version von Chrome zurückzuführen sein könnte).
Das Prinzip von Certificate Transparency ist nicht perfekt, aber ich werde hier nicht alle Einwände erörtern, sondern den Leser auf die erste Quelle am Ende des Artikels verweisen. Der Autor des Artikels kritisiert hauptsächlich die Tatsache, dass CT nicht so sehr dazu dient, MITM-Angriffe zu verhindern, sondern sie nachträglich festzustellen.
Der Betreiber des Hauptlogs, d. h. Google, verhält sich im Grunde so, als wäre CT ihn nicht betroffen. Die Kontrolle überlässt er der Öffentlichkeit, und jeder Domaininhaber sollte seine Logs selbst kontrollieren (!), um zu überprüfen, ob für seine Domain ein betrügerisches Zertifikat ausgestellt wurde (!). Die Logs können auch von „Monitoren“ der Logs überprüft werden, aber es ist unklar, was im Verdachtsfall getan werden soll. Ebenso ist unklar, was Browser mit einem positiven Fund im CT-Log machen sollen (am Ende wird es so sein, dass jeder etwas anderes melden wird).
CT in seiner derzeitigen Form löst nicht die Situation, in der gefälschte Zertifikate direkt von der CA stammen würden (was bei einem Hack der CA vorkommen kann, was glücklicherweise praktisch nie vorkommt, oder bei Zusammenarbeit der CA mit Geheimdiensten). Natürlich würde die Behörde beim Ausstellen des Zertifikats dessen Eintrag auch im CT veröffentlichen.
Ein weiterer Nachteil ist die Tatsache, dass CT automatisch funktioniert und es keinen sogenannten Opt-out-Weg gibt, also keine Möglichkeit, die Veröffentlichung von Zertifikaten zu stoppen. Der Zertifikatinhaber hat keine Kontrolle darüber, wenn ihm CT nicht gefällt, hat er keine Wahl.
Weitere Informationsquellen:
- Die Probleme mit der Zertifikat-Transparenz. Kritik an den Mängeln der Zertifikat-Transparenz und Einwände.
- Certificate Transparency. Offizielle Google-Website zur Zertifikat-Transparenz.
- Ein Vergleich der HTTPS-Reformen. Überlegungen zu den „Verbesserungen“ des SSL/TLS-Protokolls und den Vergleich dieser neuen Funktionen.
Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
Certifikovaný Symantec Sales Expert Plus
e-mail: jindrich.zechmeister(at)zoner.cz
