Certificate Pinning
Was ist Certificate Pinning?
Certificate PinningEin Verfahren, bei dem eine Anwendung ein erwartetes Zertifikat oder einen öffentlichen Schlüssel fest hinterlegt und TLS-Verbindungen ablehnt, die nicht übereinstimmen, um gefälschte oder kompromittierte CAs abzuwehren.
Certificate Pinning bindet einen bestimmten TLS-Server an eine oder mehrere kryptografische Identitäten — ein vollständiges Leaf-Zertifikat, ein Zwischenzertifikat oder einen SubjectPublicKeyInfo-Hash (SPKI) —, denen der Client implizit vertraut. Während des Handshakes vergleicht der Client die Zertifikatskette des Servers mit den gepinnten Werten und bricht bei einer Abweichung ab, selbst wenn die Kette von einer öffentlich vertrauenswürdigen CA signiert ist. Damit wird ein Angreifer abgewehrt, der ein gefälschtes, aber gültiges Zertifikat besitzt, etwa eines, das von einer kompromittierten oder erzwungenen CA ausgestellt wurde (die DigiNotar- und Comodo-Vorfälle von 2011, die zu gefälschten Google-Zertifikaten führten, sind die klassische Motivation).
Browser-HPKP vs. App-Pinning
Das Web versuchte Pinning über HTTP Public Key Pinning (HPKP, RFC 7469, 2015), einen Public-Key-Pins-Antwortheader. In der Praxis scheiterte es: ein verlorener Schlüssel, eine routinemäßige Rotation ohne Aktualisierung der Pins oder eine feindselige "RansomPKP"-Injektion konnten Nutzer für die gesamte max-age-Dauer aussperren. Chrome hat HPKP 2017 abgekündigt und in Chrome 72 (2018) entfernt, wobei die Rolle an Certificate-Transparency-Logs abgegeben wurde. Pinning überlebt hauptsächlich in mobilen Apps, die mit einem festen Backend kommunizieren (Android Network Security Config, iOS NSPinnedDomains, OkHttp CertificatePinner).
flowchart TD
A[Client opens TLS to api.example.com] --> B[Server presents certificate chain]
B --> C{Chain validates against system CAs?}
C -->|No| E[Abort: standard TLS failure]
C -->|Yes| D{SPKI hash matches a pinned key?}
D -->|Yes| F[Connection allowed]
D -->|No| G[Abort: pin mismatch, block MITM/rogue CA]Schwächen und Schutzmaßnahmen
Pinning ist nur so gut wie seine Backup-Pins — pinnen Sie immer einen Rollover-Schlüssel. Auf gerooteten/jailbroken Geräten hooken Werkzeuge wie Frida und objection die Validierungsroutine, um Pins zu entfernen; Pinning erhöht daher die Hürde für MITM-Abhören, ist aber kein Ersatz für Device Attestation. Moderne Empfehlungen (OWASP MASVS) favorisieren SPKI-Pinning mit kurzlebigen Zertifikaten und einem getesteten Rotationsplan.
● Beispiele
- 01
Eine Banking-App, die den SHA-256-Hash des öffentlichen Schlüssels ihres Servers pinnt und jedes andere Zertifikat ablehnt.
- 02
Ein mobiler API-Client, der sowohl den Produktions- als auch den Rollover-Schlüssel als Backup pinnt.
● Häufige Fragen
Was ist Certificate Pinning?
Ein Verfahren, bei dem eine Anwendung ein erwartetes Zertifikat oder einen öffentlichen Schlüssel fest hinterlegt und TLS-Verbindungen ablehnt, die nicht übereinstimmen, um gefälschte oder kompromittierte CAs abzuwehren. Es gehört zur Kategorie Netzwerksicherheit der Cybersicherheit.
Was bedeutet Certificate Pinning?
Ein Verfahren, bei dem eine Anwendung ein erwartetes Zertifikat oder einen öffentlichen Schlüssel fest hinterlegt und TLS-Verbindungen ablehnt, die nicht übereinstimmen, um gefälschte oder kompromittierte CAs abzuwehren.
Wie schützt man sich gegen Certificate Pinning?
Schutzmaßnahmen gegen Certificate Pinning kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Certificate Pinning?
Übliche alternative Bezeichnungen: TLS pinning, Public-key pinning.