Certificate Transparency – Transparenz im Zertifikatsdschungel
Certificate Transparency (kurz CT) ist ein System zur Prüfung und Überwachung digitaler Zertifikate. Es wurde von den Google-Mitarbeitern Ben Laurie und Adam Langley entwickelt und als IETF-Standard vorgeschlagen. Google selbst treibt das Projekt stark voran: ab Oktober 2017 wird der Google-Browser Chrome Zertifikate, die nicht im CT-Log registriert sind, als nicht vertrauenswürdig einstufen. Damit werden Zertifizierungsstellen gezwungen an Certificate Transparency teilzunehmen. Certificate Transparency verhindert keine unzulässig ausgestellten Zertifikate, wird aber zu einer raschen Entdeckung von solchen führen, indem folgenden Ziele angestrebt werden:
- Für eine Zertifizierungsstelle soll es quasi unmöglich sein ein Zertifikat für eine Domain auszustellen, ohne dass dieser Vorgang vom Inhaber der Domain bemerkt wird.
- Domain-Besitzer und Zertifizierungsstellen sollen überprüfen können, ob Zertifikate irrtümlich oder böswillig ausgestellt wurden.
- Nutzer sollen möglichst gut vor irrtümlich oder böswillig ausgestellten Zertifikaten geschützt werden.
Logs, Monitore und Auditoren
Certificate Transparency fügt drei neue Komponenten zum bestehenden Zertifikatssystem hinzu: Logs, Monitore und Auditoren. Benötigte ein Domaininhaber bisher ein neues Zertifikat, beantragte er dies bei seiner Zertifizierungsstelle, die nach einer Prüfung das Zertifikat ausstellen konnte. Mit Certificate Transparency kommen nun weitere Schritte hinzu, die im Folgenden blau-kursiv hervorgehoben und in Abbildung 1 in einer Übersicht dargestellt sind:
- Der Domaininhaber von example.com erwirbt ein neues Zertifikat bei seiner Zertifizierungsstelle.
- Die Zertifizierungsstelle überprüft die Authentizität des Domaininhabers, also ob dieser berechtigt ist das Zertifikat zu beantragen.
- Die Zertifizierungsstelle erzeugt ein Vorabzertifikat.
- Die Zertifizierungsstelle sendet das Vorabzertifikat an ein CT-Log, das mit einem signierten Zeitstempel (englisch signed certificate timestamp, kurz SCT) antwortet.
- Die Zertifizierungsstelle übergibt das Zertifikat mit der SCT an den Domaininhaber, der damit seine Systeme konfiguriert.
- Bei einem Verbindungsaufbau mit example.com validiert der Browser das Zertifikat und die Signatur der SCT.
- Sind Zertifikat und SCT in Ordnung, wird eine verschlüsselte Verbindung mit dem Server hergestellt und darüber kommuniziert.
Anmerkung: Dieser Ablauf und Abbildung 1 beschreiben die Ausstellung von Zertifikaten mit SCT als x.509-Erweiterung. Andere Möglichkeiten werden im Abschnitt Logs beschrieben.
Logs
Das zentrale Element von Certificate Transparency sind demnach Logs. In diese werden neue Zertifikate zu einem stetig wachsenden Hash-Baum angehängt. Der Hash-Baum (englisch Merkle Tree) schützt zudem vor nachträglicher Manipulation des Logs, das von jedermann auf irrtümlich oder böswillig ausgestellte Zertifikate hin überprüft werden kann.
Wird ein Zertifikat an ein Log geschickt, antwortet dieses mit einer SCT, was einem Versprechen gleichkommt das Zertifikat spätestens bis zu diesem Zeitpunkt in das Log einzutragen. Beim späteren Verbindungsaufbau zwischen Client und Server wird auch die SCT überprüft. Sie kann über drei Wege an den Client kommuniziert werden:
- als x.509-Parameter des Zertifikats: die Zertifizierungsstelle fügt die SCT kurz vor dem Signiervorgang zum Zertifikat hinzu. Der Domaininhaber bzw. Webseitenbetreiber muss keine Änderungen an seiner Konfiguration vornehmen.
- als TLS-Parameter beim Verbindungsaufbau: der Webseitenbetreiber muss den Verbindungsaufbau so konfigurieren, dass die SCT an den Client kommuniziert wird. Die Zertifizierungsstelle muss hingegen keine Änderungen bei der Ausstellung von Zertifikaten vornehmen.
- per OCSP Stapling: neben Informationen zur Revokation von Zertifikaten können auch SCTs übermittelt werden. Auch hier muss der Webseitenbetreiber Änderungen vornehmen und OCSP-Handling implementieren.
Welcher dieser drei Möglichkeiten sich schließlich durchsetzen wird, ist noch unklar. Es gibt gute Gründe für den 1. Weg die SCT als x.509-Erweiterung zu übertragen. Dadurch müssen Webseitenbetreiber keine Änderungen vornehmen. Dafür sind Zertifizierungsstellen in der Pflicht ihren Ausstellungsprozess zu überarbeiten. Sie müssen Vorabzertifikate an Logs senden und auf die SCT-Antwort warten. Dass es bei diesem synchronen Prozess gelegentlich zu Verzögerungen kommen kann, ist zu erwarten: Abbildung 2 zeigt den Verlauf der Anzahl von ausgestellten Let's Encrypt-Zertifikaten pro Tag. Wenn an Spitzentagen mehr als 1,3 Millionen Zertifikate nur für Let's Encrypt in Logs eingetragen werden müssen (der RFC-Standard empfiehlt ein Zertifikat gleichzeitig in mehrere Logs einzutragen), müssen für schnelle Antwortzeiten umfangreiche Ressourcen vorgehalten werden.
Monitore
Neben Logs existieren Monitore (deutsch Wächter), die über verdächtige Vorgänge in Logs wachen. Monitore können beispielsweise von größeren Dienstanbietern im Internet (Facebook, etc.) oder Zertifizierungsstellen (COMODO und andere) betrieben werden. Es steht aber grundsätzlich jedem frei seinen eigenen Monitoring-Dienst zu betreiben oder das Dienstangebot eines Dritten zu nutzen. Sslmate bietet einen solchen Dienst für bis zu fünf Domains kostenlos an.
Da zukünftig alle ausgestellten Zertifikate an Logs gemeldet werden müssen und jeder einen Monitoring-Dienst betreiben kann, werden unter Umständen auch "geheime" Domains und Subdomains öffentlich bekannt, auch wenn der Betreiber dies gerne verheimlichen würde.
Auditoren
Auditoren überprüfen, ob Logs untereinander konsistent sind. Außerdem sollen sie sicherstellen, dass alle Zertifikate zu mindestens einem Log hinzugefügt wurden. Schließlich wird durch Log Proofs auditiert, ob ein Log manipuliert wurde, beispielsweise durch nachträgliches Hinzufügen, Bearbeiten oder Löschen von Zertifikatsinformationen.
Browser werden zukünftig eine Softwarekomponente enthalten, die als Auditor fungiert: sollen verschlüsselte Verbindungen hergestellt werden, überprüfen diese Module die SCT und fragen Logs nach dem Zertifikat ab. Ebenso kann ein Auditors ein eigenständiger Dienst oder ein sekundäre Funktion eines Monitors sein.
Certificate Transparency: Ein Schritt in die richtige Richtung
Certificate Transparency wird in Zukunft nicht verhindern, dass Zertifikate irrtümlich oder böswillig ausgestellt werden. Allerdings ist es durch CT möglich solch einen Verstoß schnell zu bemerken und Gegenmaßnahmen zu ergreifen. Eine Gegenmaßnahme, in der Regel die Revokation von Zertifikaten, ist ein weiteres, komplexes Themenfeld, das bisher nur unzureichend gelöst ist. Dennoch ist Certificate Transparency ein Schritt in die richtige Richtung, der Dienstbetreibern mehr Kontrolle über ihre Domain gibt.
Am 17.04.2017 in der Kategorie Kommunikationssicherheit veröffentlicht.