HTTP Public Key Pinning

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

HTTP Public Key Pinning (HPKP) ist ein Mechanismus zum Absichern des HTTPS-Protokolls gegen Man-in-the-Middle-Angriffe mit gefälschten, jedoch von einer anerkannten Zertifizierungsstelle (certificate authority) signierten Zertifikaten. HPKP ermöglicht die Einschränkungen der für eine Domain akzeptierten Zertifikate auf Basis des trust on first use-Prinzips. Eine Liste gültiger Zertifikate wird mittels des HTTP Header Public-Key-Pins vom Server mit einer beschränkten Gültigkeit definiert und vom Webbrowser des Nutzers gespeichert, um diese bei einem zukünftigen Zugriff zur Überprüfung des Zertifikates zu nutzen.

Die Liste gültiger Zertifikate kann dabei jedes Zertifikat der Schlüsselhierarchie enthalten. Es ist somit möglich, sowohl End-Zertifikate für die spezifische Domains als auch Zertifikate von Zertifizierungsstellen als gültig zu definieren. Durch letzteres wird jedes von dieser Zertifizierungsstelle signierte Zertifikat akzeptiert.[1] Dabei muss die Liste gültiger Zertifikate sowohl mindestens ein Zertifikat enthalten, das aktuell genutzt wird, als auch mindestens ein Zertifikat, das aktuell nicht in Nutzung ist. Letzteres dient als Backup-Zertifikat, um die Gefahr eines vollständigen Verlustes aller als gültig definierten Zertifikate zu reduzieren.[2]

Geschichte[Bearbeiten | Quelltext bearbeiten]

HTTP Public Key Pinning wurde von Google im November 2011 vorgeschlagen und ist als RFC 7469 standardisiert.

Chrome unterstützt HPKP seit Oktober 2015 (Version 46)[3], Firefox seit Januar 2015 (Version 35). Safari und Edge unterstützten HPKP im Gegensatz zu Opera nicht.[4]

Im Oktober 2017 regte Chris Palmer, Mitautor des HPKP Standards und Mitarbeiter bei Google Chrome, an, die Unterstützung des Standards im Chrome Browser ab Version 67, die für Mai 2018 erwartet wird, als veraltet zu markieren und vollständig zu entfernen, sobald Certificate Transparency im Chrome Browser für alle Zertifikat verpflichtend wird. Die Nutzung des Standards sei gering geblieben. Einen Grund hierfür sieht Palmer in der schwierigen Auswahl einer Liste gültiger Zertifikate, da der Webseitenbetreiber nicht über alle damit zusammenhängende Aspekte die Kontrolle habe, sondern diese auch von den Herstellern der Betriebssysteme und Browser, sowie den Zertifizierungsstellen abhängig sei. Insbesondere besteht die Gefahr, durch HPKP eine Seite unbenutzbar zu machen - auch für Seiten, die dieses selbst gar nicht einsetzen.[5]

HPKP-Nachteile[Bearbeiten | Quelltext bearbeiten]

  • Die Komplexität von HPKP überforderte viele Webseitenbetreiber – und verhinderte daher eine schnelle und fehlerfreie Einführung.
  • Webseitenbesitzer machen ihre Seite unbrauchbar, wenn sie alle Schlüssel verlieren. Nutzer können entscheiden, nur Schlüssel von End-Zertifikaten zu pinnen. Verliert jemand bei einem Hardware-Defekt zugleich den Schlüssel für das aktuelle Zertifikat und den Ersatzschlüssel, erhält er, solange der PIN gilt, für die Webseite kein gültiges Zertifikat.
  • Wenn Nutzer nur die Schlüssel der Zertifizierungsstellen pinnen, erwarten sie, dass diese weiterhin Zertifikate ausstellen. Als Mitte 2016 auffiel, dass Wosign Regeln für Zertifizierungsstellen verletzte – und Startcom erwarb, wurden beide Zertifizierungsstellen aus vielen Browsern gelöscht. Wer für seine Webseite das Root-Zertifikat von Startcom und als Ersatz jenes von Wosign pinnte, bekam von beiden kein Zertifikat.
  • RansomPKP als Key-Pinning-Schutzgeld-Erpressung: Ein Angreifer, der einen Webserver hackt, kann eine Webseite mit einem vom Angreifer ausgestellten Zertifikat und Key pinnen und den Schlüssel löschen. Er fordert vom Webseiten-Betreiber Lösegeld für die Rückgabe des privaten Schlüssels.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. RFC 7469. Abschnitt 2.6. Validating Pinned Connections.
  2. RFC 7469. Abschnitte 2.5. Noting Pins und 4.3. Backup Pins.
  3. Emily Stark: Rolling out Public Key Pinning with HPKP Reporting. Abgerufen am 30.10.2017.
  4. HTTP Public Key Pinning (HPKP). Mozilla Developer Network (MDN). Abgerufen am 30.10.2017.
  5. Chris Palmer: Intent To Deprecate And Remove: Public Key Pinning. In: groups.google.com, 27. Oktober 2017. Vergleiche auch: Hanno Böck: Chrome will HTTP Public Key Pinning wieder aufgeben. In: Golem.de, 29. Oktober 2017.