Pinning von Zertifikaten und öffentlichen Schlüsseln


Inhaltsverzeichnis

"Pinning von Zertifikaten und öffentlichen Schlüsseln"

Was ist HTTP Public Key Pinning?

Das Public Key Pinning erlaubt es Ihnen, Ihr Public-Key-Set für eine künftige SSL/TLS-Verbindung zu Ihrem Host festzulegen. Diese Erweiterung basiert auf dem HTTP Übertragungsprotokoll. Das Besondere daran: Der zugreifende Client erfährt erst im Moment der Kontaktaufnahme, welcher öffentliche Schlüssel für den Verbindungsaufbau zum Host vertrauenswürdig ist. Aus diesem Grund wird das HTTP Public Key Pinning auch "Trust on First Use"-Verfahren genannt. Durch die verifizierte Verschlüsselung - Pin genannt - erhält der Mechanismus seinen eigentlichen Namen. Wichtig bei diesem Vorgehen ist, dass die erstellten Pins für einen angegebenen Zeitraum vom Client im HTTP-Header gespeichert sind. Versucht der Client erneut, sich zu verbinden, wird die Zertifizierungskette erneut überprüft. Dieser Überprüfungsprozess, auch als Pin-Validierung bezeichnet, ist ein zentraler Aspekt des Pinning und als eine digitale Signatur zu betrachten.

Wie funktioniert Pinning?

Das Public Key Pinning ist eine Möglichkeit, Ihre SSL Verbindung über SSL-Zertifikate deutlich sicherer zu gestalten. Sein Zweck ist es stets festzustellen, zu welchem Zeitpunkt sich der öffentliche Schlüssel von einem Zertifikat eines Hosts ändert. Das kann beispielsweise dann passieren, wenn ein Angreifer die Certification Authority beeinträchtigt. Sobald eine SSL Verbindung hergestellt ist, prüft der Browser mittels HTTP Private Key Pinning den gespeicherten Pin des Hostnamens. Auf diese Weise kann er prüfen, ob die sogenannten SPKI-Fingerprints innerhalb der Zertifikatskette korrekt sind. Falls die Verifizierung scheitert, wird die Verbindung sofort abgebrochen. Wenn Sie auf das HTTP Private Key Pinning verzichten, kommt die Verbindung dennoch zustande.

Diese Schritte durchläuft das Pinning

Der Ablauf ist wie folgt:

  • Generieren eines privaten Schlüssels - sowohl eines primären als auch eines Back-up Schlüssels.
  • Erstellen der CSRs für beide private Keys.
  • Generieren der SPKI Fingerprints für die beiden öffentlichen Schlüssel.
  • Die Konfiguration des virtual Hosts wird angepasst.
  • Im letzten Schritt erfolgt das Pinning der öffentlichen Schlüssel.

Grundsätzlich sind die richtige Verschlüsselung sowie eine digitale Signatur enorm wichtig, wenn es um die Arbeit mit digitalen Daten geht. Das gilt vor allem dann, wenn Sie auf Datenpakete von unterwegs zugreifen oder diese per Remote verschicken. In solchen Fällen ist es essenziell, dass der gesamte Weg der Übertragung gesichert bleibt.

Pinning sicher einsetzen

Das Pinning Verfahren gilt als sichere Option, um explizit zu definieren, welche Zertifikate eine Website für die verschlüsselte Verbindung zulässt. Wird der TOFU-Umstand außer Acht gelassen, kann dieses Vorgehen das Vertrauensproblem der Infrastruktur der Public Keys auflösen. Denn der Browser weiß, wer die Domain aufgerufen hat und welche Zertifikate für ihn akzeptabel sind. Das Ergebnis: Sollte der Server ein nicht bekanntes Sicherheitszertifikat senden, wird die Verbindung direkt abgelehnt.

Auf Tücken im Detail achten

Wichtig zu wissen: Dieses Vorgehen kann auch seine Tücken haben. Das wäre beispielsweise dann der Fall, wenn Ihre Website die Zertifikate der kommunizierten Pins nicht länger verwenden kann. In einer solchen Situation würde der Browser Ihre Verbindungsversuche ablehnen. Für Sie bedeutet dies, dass Sie die Website nicht mehr verwenden können, bis die Pin-Informationen abgelaufen sind. Deshalb ist es wichtig, dass Sie die Vorteile von HTTP Public Key Pinning wie auch die Risiken abwägen. Wenn Sie Ihre eigenen Zertifikate pinnen, müssen Sie den ausgelieferten Header ständig überprüfen. Neben der sicheren Anwendung und Ablage Ihrer Pins benötigen Sie einen rollierenden Erneuerungsprozess. Dieser Prozess testet Ihre Pins zunächst und überprüft sie regelmäßig. Dafür eignet sich ein vorgefertigter Mechanismus, der einen Public-Key-Pins-Report-Only-Header anbietet. Das bedeutet, dass das System die Policy zwar nicht zwingend durchsetzt, Sie jedoch Informationen über mögliche Verstöße erhalten.

Risiken von Pinning

Das HTTP Public Key Pinning ist nicht ohne Risiko. Bevor Sie auf diesen Mechanismus vertrauen, sollten Sie abwägen, ob das Pinning sich in Ihrem Fall hinreichend realisieren lässt. Folgende Risiken können in Zusammenhang mit diesem Vorgehen auftreten:

  • Ändert sich der Schlüssel am Server, kann die App Ihr Backend nicht mehr erreichen. Bei einem regelmäßig rotierenden Schlüssel oder Zertifikat kann daraus schnell ein ernsthaftes Problem entstehen.
  • Wenn Sie eine Option wie NS Pinned Leaf Identities nutzen, legen Sie einen direkten Server-Schlüssel fest. Das vereinfacht Ihnen Ihr weiteres Vorgehen setzt aber voraus, dass Ihre Schlüsselverwaltung extrem sicher ist.
  • Bei gemanagten Cloud-Lösungen sollten Sie ebenfalls vorsichtig sein. Handelt es sich um gebrauchsfertige API-Gateways, haben Sie die Schlüssel nur selten selbst in der Hand. Ein klassisches Beispiel dafür sind die Root CA Zertifikate von Microsoft.
  • Fehlerhafte Konfigurationen bergen die Gefahr, dass Sie sich als Webseitenbetreiber unwiderruflich aussperren. Deshalb ist es wichtig, hier besondere Vorsicht walten zu lassen und das Pinning in die Hände Ihrer Experten zu geben.

Trotzdem ist das Pinning von Vorteil

Allerdings hat das Pinning nicht nur im Bereich der Websites seine Vorteile: Es gewinnt auch unter den Apps immer mehr an Bedeutung. Schließlich hilft es an dieser Stelle, die Risiken, die von Apps ausgehen, gering zu halten. Dabei profitieren Sie mit Hinblick auf Apps von zwei Vorteilen: Einerseits kontrollieren App-Anbieter häufig beide Endpunkte, andererseits existiert ein unabhängiger Recovery-Kanal.

Fazit - Key Pinning schützt vor bösartigen Zertifizierungsstellen

Das HTTP Public Key Pinning - auch HPKP - bietet Ihnen eine Technologie, mit der Sie zahlreiche Probleme mit den Zertifizierungsstellen lösen. Dieses gewährleistet Ihnen, dass die Nutzer Ihrer Webseite mit der richtigen Domain verbunden sind. Eine Fälschung ist damit auszuschließen. Von den CAs oder der Zertifizierungsstelle erhalten Sie hingegen kryptografische Zertifikate. Dass das Zertifizierungssystem in Verruf geraten ist, liegt vor allem daran, dass zahlreiche gefälschte Zertifikate im Umlauf waren. Dieses Vorgehen war bei mehreren Zertifizierungsstellen zu beobachten. Dies führte dazu, dass das Vertrauen in dieses Modell mittlerweile nur noch bedingt vorhanden ist. Das Grundproblem liegt jedoch in den gängigen Browsern: Sie vertrauen automatisch darauf, dass mehrere Hundert Zertifizierungsstellen legale Zertifikate ausstellen. Dasselbe gilt für die Unterzertifizierungsstellen der Zertifizierungsstellen. Das HTTP Public Key Pinning setzt genau an dieser Stelle an und schafft Abhilfe. Die Erweiterung für das Pinning wurde größtenteils von Mitarbeitern des Google-Konzerns geschaffen. Sie nutzten einen vergleichsweise einfachen Mechanismus dazu, die Sicherheit ihrer HTTPS-Zertifikate zu verbessern: Ein Pin, den der HTTP-Header einer Website mitschickt. Diese kryptografischen Schlüssel werden als Hashes ausgegeben und verfügen über einen Zeitwert. Dadurch lässt sich sichergestellten, dass Browser nur noch Verbindungen akzeptieren, bei denen das Zertifikat ein solches Pinning verwendet. Ebenfalls interessant ist eine weitere Funktion des Pinnings: Sie können eine URL hinterlegen, an die eine Meldung geht, wenn der Zugriff über ein fehlerhaftes Zertifikat erfolgt. Erhält der Browser eine HTTPS-Verbindung, die keinen Pin hat, sowie kein übereinstimmendes Zertifikat integriert, erhalten Sie einen JSON-codierten Fehlerbericht.

Neugierig? Überzeugt? Interessiert?

Vereinbaren Sie ein unverbindliches Erstgespräch mit einem unserer Vertriebsmitarbeiter. Nutzen Sie den folgenden Link, um einen Termin auszuwählen:



Loading...