Wie funktioniert Zertifikatstransparenz?
Um auch nach dem Ausstellen eines TLS/SSL-Zertifikats zu beweisen, dass eine Körperschaft die Ausstellungsbefugnis besaß, bieten Zertifizierungsstellen (Certificate Authorities, CAs) die Möglichkeit der Zertifikatstransparenz (Certificate Transparency, CT).
Nachfolgend ist der Vorgang der Zertifikatsausstellung aufgeführt – die Schritte in Blau sind neu und beziehen sich auf CT.
- Serverbetreiber erwirbt Zertifikat bei CA.
- CA überprüft Serverbetreiber.
- CA erzeugt Vorzertifikat.
- CA hinterlegt Vorzertifikat im Log-Server, der daraufhin einen Zeitstempel für das signierte Zertifikat (Signed Certificate Timestamp, SCT) ausgibt.
- CA stellt TLS/SSL-Zertifikat aus.
- TLS/SSL-Zertifikat kann SCT enthalten.
- Browser prüft TLS/SSL-Zertifikat beim TLS/SSL-Handshake.
- Browser prüft beim TLS/SSL-Handshake vorgelegten SCT, der entweder durch OCSP-Stapling, eine TLS/SSL-Erweiterung oder Einbettung ins Zertifikat bereitgestellt wird.
- Browser stellt Verbindung zum Server her.
- TLS/SSL-Zertifikat verschlüsselt alle Daten, die Browser und Server austauschen.
Hier werden alle drei Methoden für die SCT-Bereitstellung beim TLS/SSL-Handshake erläutert. Eine dieser Methoden ist im nachstehenden Diagramm dargestellt.
Komponenten der Zertifikatstransparenz
Zertifikatstransparenz (Certificate Transparency, CT) besteht aus vier Komponenten: Zertifizierungsstelle (Certificate Authority, CA), Zertifikat-Log, Zertifikatsüberwachung (Monitor) und Zertifikatsprüfung (Auditor) Eine mögliche Zusammenstellung dieser Komponenten ist hier dargestellt. Danach folgt die Erläuterung der einzelnen Komponenten.
Zertifizierungsstelle
Zertifikatstransparenz lässt sich in bestehenden öffentlich vertrauenswürdigen Zertifizierungsstellen (Certificate Authorities, CAs) erreichen. Hierzu erhalten CAs einen Nachweis der Zertifikatsausstellung aus einem öffentlichen Log und fügen ihn dem jeweiligen Zertifikat bei. Browser halten während des Handshake nach diesem sogenannten SCT Ausschau. Durch das Protokollieren von Zertifikaten beweisen CAs, dass sie ordnungsgemäß agieren und geben einen Einblick in ihren Betrieb.
Zertifikat-Log
Idealerweise führen Zertifikat-Logs den Nachweis über alle ausgestellten TLS/SSL-Zertifikate. Die Anwendung ist jedoch zunächst auf EV-Zertifikate beschränkt. Aus diversen Gründen muss es mehrere unabhängige Logs geben: 1) Redundanz – sind mehrere Logs vorhanden, dienen sie gegenseitig als Ausfallsicherung. 2) Betriebssicherheit – wurde eines von mehreren voneinander unabhängigen Logs bzw. dessen Betreiber kompromittiert, können Zertifikate trotzdem validiert werden. 3) Aufzeichnungssicherheit – bei mehreren voneinander unabhängigen Logs betrifft eine einzelne behördliche Anordnung nicht die Ausstellungsnachweise der restlichen Logs. 4) Nachvollziehbarkeit – bei mehreren voneinander unabhängigen Logs gelingt es Zertifizierungsstellen und Log-Betreibern nicht, gemeinsam peinliche Ausstellungsfehler zu vertuschen.
Alle Logs sind:
- schreibgeschützt – Zertifikate können nur zum Log hinzugefügt, nicht aber daraus entfernt, verändert oder nachträglich eingefügt werden.
- kryptografisch abgesichert – mit einer kryptografischen Datenstruktur namens Hash-Baum (auch Merkle Tree genannt) werden Manipulationen am Log verhindert.
- öffentlich nachprüfbar – auf der Suche nach fälschlich ausgestellten oder nicht konformen Zertifikaten kann jeder das Log abfragen. Alle Zertifikat-Logs müssen ihre URL und den öffentlichen Schlüssel veröffentlichen.
Zertifikatsüberwachung
Inhaber namhafter Marken, Zertifizierungsstellen und jeder andere, der in Zertifikat-Logs nach verdächtigen Aktivitäten sucht, betreibt Zertifikatsüberwachung.
Dabei lassen sich Log-Informationen mit einem „HTTP GET“-Befehl abrufen. Jeder Kunde kann die Überwachung selbst übernehmen oder jemand anderen damit beauftragen. DigiCert plant, seinen Kunden Log-Überwachungsdienste anzubieten.
Zertifikatsprüfung
Bei einer Zertifikatsprüfung wird geschaut, ob ein Log mit anderen Logs übereinstimmt, neue Einträge hinzugefügt wurden und es manipuliert wurde, indem jemand nachträglich Zertifikate eingefügt, entfernt oder verändert hat.
Solche Prüfungen werden aller Voraussicht nach in Browsern automatisch im Hintergrund ablaufen. Allerdings könnte die Prüfung auch als eigenständiger Service oder als Zweitfunktion eines Überwachungsservice angeboten werden.