Definition Certificate Pinning Was ist Certificate Pinning?

Von Dipl.-Ing. (FH) Stefan Luber 4 min Lesedauer

Certificate Pinning ist eine Sicherheitsmaßnahme bei der Authentifizierung von Client-Server-Verbindungen. Sie senkt das Risiko von Man-in-the-Middle-Angriffen. Auch Probleme mit bösartigen oder kompromittierten Zertifizierungsstellen lassen sich durch das Anheften von Zertifikaten vermeiden.

Certificate Pinning ist eine Sicherheitsmaßnahme bei der Authentifizierung von Client-Server-Verbindungen.(Bild:  gemeinfrei /  Pixabay)
Certificate Pinning ist eine Sicherheitsmaßnahme bei der Authentifizierung von Client-Server-Verbindungen.
(Bild: gemeinfrei / Pixabay)

Der englische Begriff "Certificate Pinning" lasst sich mit "Anheften von Zertifikaten" ins Deutsche übersetzen. Es handelt sich um eine Sicherheitsmaßnahme und eine Technologie, die beispielsweise zur Absicherung der Kommunikation eines Webbrowsers oder einer App per HTTPS (Hypertext Transfer Protocol Secure) mit einem Server zum Einsatz kommen kann. Mithilfe des Anheftens von Zertifikaten lässt sich die Authentifizierung des Servers absichern. Es wird ein einzelnes oder eine Liste vertrauenswürdiger Zertifikate angepinnt, mit der sich die Identität des Servers überprüfen lässt. Nur den Servern, die ein solches angepinntes Zertifikat vorweisen können, wird vertraut. Certificate Pinning reduziert das Risiko, Opfer von Man-in-the-Middle-Angriffen (MITM) zu werden, indem es sicherstellt, dass der Client mit einer vertrauenswürdigen Gegenstelle kommuniziert. Darüber hinaus schützt das Zertifikat-Pinning vor gefälschten Zertifikaten und vor bösartigen oder kompromittierten Zertifizierungsstellen.

Prinzipielle Funktionsweise des Certificate Pinning und Ablauf der Authentifizierung

Das TLS-Protokoll (Transport Layer Security) definiert, wie eine sichere, verschlüsselte Kommunikation zwischen einem Client und einem Server über HTTPS ablaufen soll. Mithilfe eines digitalen Zertifikats kann der Client prüfen, ob er tatsächlich mit dem erwarteten Server kommuniziert. Die Echtheit eines Zertifikats lässt sich prüfen, indem der Client verifiziert, ob das Zertifikat von einer anerkannten Zertifizierungsstelle signiert ist. Webbrowser und Betriebssysteme führen zu diesem Zweck Listen mit den Stammzertifikaten von anerkannten, vertrauenswürdigen Zertifizierungsstellen.

Certificate Pinning sorgt für eine höhere Sicherheitsstufe der Vertrauensprüfung, indem der Client eine vorkonfigurierte Liste von Zertifikaten führt, denen er ausdrücklich vertraut. Die Zertifikate oder ihre öffentlichen Schlüssel sind quasi fest auf dem Client oder in einer App codiert. Der Server muss ein vordefiniertes Zertifikat vorlegen, damit der Client oder die Client-App ihm vertraut.

Beim Certificate Pinning kann grundsätzlich zwischen dem statischem und dem dynamischem Pinning unterschieden werden.

Beim statischen Pinning sind die Zertifikatsinformationen fest im Quellcode einer Anwendung, beispielsweise einer mobilen App, auf dem Client kodiert. Ohne Weiteres lassen sich diese Zertifikatsinformationen nicht mehr ändern. Um das Zertifikat zu aktualisieren oder zu verändern, ist eine neue Version oder eine neue Kompilierung der App mit den neuen Zertifikatsinformationen notwendig. Da sich die Zertifikatsinformationen zur Laufzeit nicht verändern lassen, ist statisches Pinning sehr sicher, weist aber Schwächen in der Verwaltung sich ändernder oder ablaufender Zertifikate auf.

Dynamisches Pinning lässt das Aktualisieren oder Verändern von angepinnten Zertifikaten zur Laufzeit zu, ohne dass eine Überarbeitung oder die Neukompilierung der Anwendung notwendig ist. Beim dynamischen Zertifikat-Pinning werden die Zertifikatsinformationen während der Laufzeit abgerufen und in der Anwendung hinterlegt. Dynamisches Certificate Pinning ist flexibler als statisches Pinning und vereinfacht die Verwaltung aktualisierter oder veränderter Zertifikate, erreicht aber nicht ganz das Sicherheitsniveau der statischen Methode. Welche der beiden Methoden gewählt wird, hängt von den Sicherheits- und Flexibilitätsanforderungen der jeweiligen Anwendung ab.

Der Ablauf einer Authentifizierung über dynamisches Certificate Pinning lässt sich etwas vereinfacht folgendermaßen beschreiben:

  • 1. Die Client-Anwendung baut eine Verbindung zum Server auf und führt eine initiale Prüfung des vom Server präsentierten Zertifikats durch. Ist das Zertifikat gültig, wird es lokal in der Client-Anwendung gespeichert (angeheftet). Neben einer Kopie des Zertifikats, ist es auch möglich, den öffentlichen Schlüssel oder einen Hash des Zertifikats beim Client zu pinnen.
  • 2. Bei allen nachfolgenden Verbindungen prüft der Client das vom Server präsentierte Zertifikat gegenüber dem angepinnten Zertifikat. Stimmen beide Zertifikate überein, wird dem Server vertraut und ein sicherer Kommunikationskanal kann aufgebaut werden. Nicht übereinstimmende Zertifikatsinformationen führen zur Ablehnung der Verbindung.

Vor- und Nachteile von Certificate Pinning

Certificate Pinning bietet eine ganze Reihe von Vorteilen. Das statische oder dynamische Anheften von Zertifikaten verhindert das Zertifikat-Spoofing und senkt das Risiko, Opfer von Man-in-the-Middle-Angriffen zu werden. Die Anwendung oder das System sind widerstandsfähiger gegen Cyberbedrohungen, indem eine zusätzliche Sicherheitsebene implementiert wird, die nur bestimmten Zertifikaten vertraut. Zertifikat-Pinning schützt auch vor gefälschten Zertifikaten und vor bösartigen oder kompromittierten Zertifizierungsstellen.

Das Anheften von Zertifikaten ist aber auch mit einigen Nachteilen verbunden. Als Nachteile lassen sich aufführen:

  • das Kodieren und Verwalten von angehefteten Zertifikaten erhöht die Komplexität der Anwendung und führt zu einem höheren Verwaltungsaufwand
  • das Risiko von Fehlkonfigurationen steigt aufgrund des erhöhten Zertifikatsverwaltungsaufwands
  • die Flexibilität der Anwendung in dynamischen Umgebungen ist eingeschränkt
  • die Skalierung und der Umgang mit mehreren Zertifikaten sind erschwert
  • das Ablaufen von Zertifikaten erfordert unter Umständen eine Aktualisierung der Client-Anwendung
  • die Anwendungen sind in dynamischen Zertifikatsumgebungen fehleranfälliger

Weitere Ansätze zur Verbesserung des Sicherheitsniveaus von Client-Server-Verbindungen

Um das Sicherheitsniveau von Client-Server-Verbindungen zu erhöhen, gibt es neben dem Certificate Pinning zahlreiche alternative Ansätze. Ein alternativer Ansatz ist die sogenannte Zertifikatstransparenz (Certificate Transparency - CT). Es handelt sich um ein Verfahren, das die Ausstellung von Zertifikaten öffentlich protokolliert. Diese öffentliche Einsehbarkeit sorgt für zusätzliche Transparenz und senkt das Risiko von gefälschten oder betrügerischen Zertifikaten. Weitere alternative Ansätze zur Verbesserung der Sicherheit von SSL/TLS-Verbindungen sind das Online Certificate Status Protocol (OCSP) oder mutual TLS (mTLS).

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Mobile Apps - ein typischer Einsatzbereich für das Certificate Pinning

Ein typischer Einsatzbereich für Certificate Pinning sind mobile Apps. Das Certificate Pinning bietet sich für Apps mit hohen Sicherheitsanforderungen an. So wird das Anheften von Zertifikaten beispielsweise von Apps im Finanzbereich wie Banking-Apps, von e-Health-Apps, Messengern oder E-Mail-Apps genutzt. Mithilfe des Anheftens von Zertifikaten lässt sich sicherstellen, dass die jeweilige App nur mit dem vorgesehenen Endpunkt kommuniziert. Die App vertraut aufgrund des angehefteten Zertifikats nur dem gewünschten Server.

(ID:50065880)