Certificate Transparency und Public Key Pinning

11.11.2014 | Jindřich Zechmeister

Im heutigen Artikel erläutere ich zwei relativ neue und wenig bekannte Konzepte Certificate Transparency und Public Key Pinning, die mit der Sicherheit bei der Verwendung von SSL-Zertifikaten zusammenhängen. Beide zielen darauf ab, das Risiko der Ausstellung und Verwendung eines gefälschten Zertifikats für Ihre Website zu verringern.

Zertifikattransparenz (CT)

Zertifikattransparenz (CT) ist eine Funktion, die von Google entwickelt wurde. Kurz gesagt geht es darum, alle von der Autorität ausgestellten Zertifikate in einem sogenannten "Logbuch" zu veröffentlichen, um überprüfen zu können, ob sie tatsächlich von der betreffenden Autorität ausgestellt wurden.

Zertifikattransparenz (CT) hat drei Hauptziele:

  1. Es unmöglich machen (oder es sehr erschweren), dass eine Zertifizierungsstelle ein SSL-Zertifikat für eine Domain ohne das Wissen des Domainbesitzers ausstellt.
  2. Ein offenes Audit- und Überwachungssystem bereitstellen, das es jedem Domainbesitzer ermöglicht zu überprüfen, ob eine Zertifizierungsstelle ein Zertifikat für seine Domain ausgestellt hat (sei es korrekt oder gefälscht).
  3. Die Benutzer (so weit wie möglich) vor Schäden zu schützen, die durch fehlerhaft ausgestellte Zertifikate oder missbräuchlich ausgestellte Zertifikate verursacht werden.

Das Prinzip der gegenseitigen Überprüfung bei CT

Der Browser wird den Status eines Zertifikats im öffentlichen Logbuch überprüfen, bevor er ihm vertraut. Wenn das Zertifikat nicht in der Liste aufgeführt ist, wird der grüne EV-Streifen in Google Chrome nicht angezeigt. Das öffentlich zugängliche Logbuch wird überwacht und verdächtige Zertifikate werden beobachtet.

Die erste größere Verwendung dieser Funktion plant Google im Februar 2015 für die bereits erwähnten EV-Zertifikate; später plant Google, die Zertifikattransparenz auch auf andere Zertifikate auszudehnen.

Weitere Informationen zur Zertifikattransparenz finden Sie im Artikel von Google Wie Zertifikattransparenz funktioniert oder direkt auf der thematischen Website certificate-transparency.org.

Public Key Pinning

Public Key Pinning löst die größte Schwäche von PKI und des aktuellen Ökosystems, nämlich die Tatsache, dass eine Autorität ein Zertifikat für jede beliebige Domain ohne Zustimmung des Eigentümers ausstellen kann.

Mit "Pinning" kann der Website-Besitzer eine oder mehrere Autoritäten auswählen, denen er vertraut und die ein Zertifikat für seine Domain ausstellen dürfen. Dadurch wird das Risiko einer missbräuchlichen Verwendung der Domain durch ein gefälschtes Zertifikat einer weniger vertrauenswürdigen Autorität, die missbraucht werden könnte, eingeschränkt. Pinning dient somit der Abwehr von MITM (Man in the Middle)-Angriffen und dem Schutz vor der Bestätigung des Zertifikats.

Derzeit ist Pinning im Chrome-Browser verfügbar (etwa 500 Einträge), aber ein offener Standard für das Pinning mit dem HTTP-Protokoll wird ebenfalls entwickelt. Zum Beispiel sagt die Public Key Pinning Extension für das HTTP-Protokoll dem Browser, welches Zertifikat einer bestimmten Domain zugeordnet werden soll. Ein leicht anderer Ansatz für das Public Key Pinning ist das DANE-Protokoll, das signierte Informationen zu Zertifikaten in DNS ablegt und so das Prinzip von SSL-Zertifikaten und DNSSEC kombiniert.

Weitere technische Details und Anwendungsbeispiele für Key Pinning finden Sie beispielsweise im technischen Artikel Certificate and Public Key Pinning.

In den nächsten Artikeln werden wir weitere moderne Sicherheitsbegriffe behandeln, die Ihnen vielleicht noch nicht bekannt sind.


Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
Certifikovaný Symantec Sales Expert Plus 
e-mail: jindrich.zechmeister(at)zoner.cz