zurück zur Übersicht

Public Key Pinning für HTTPS – Sicherheitsfeature wird zum Bumerang

bigstock-Many-old-keys-on-a-well-used-o-56296241_bearbeitet_2Das HTTP Public Key Pinning (HPKP), das im Standard RCF-7469 beschrieben wird, war als Lösung des inhärenten Vertrauensproblems der Transportverschlüsselung TLS gedacht (ein Standard, der übrigens vor einem deutlichen Entwicklungssprung steht, siehe hier). Vor HPKP war es so, dass eine unüberschaubare Zahl von Zertifizierungsstellen (CA) beliebig Zertifikate ausstellen konnte. Damit konnte sich eine Webseite gegenüber jedem Browser automatisch verifizieren. Stellt nun so eine CA, wie z.B. die der chinesischen Regierung oder eine unsauber arbeitende kommerzielle CA ein Zertifikat für eine Seite aus, vertrauen die Browser durch die Zertifikatskette diesem Zertifikat trotzdem.

Da also trotz Zertifikat nicht sichergestellt ist, dass man mit dem Orginalserver der Orginalwebseite kommuniziert, kann eine sichere Verbindung nicht garantiert werden. Durch den gezielten Einsatz dubioser Zertifikate funktionieren entsprechend Man-in-the-Middle Angriffe bzw. die meisten SSL-Decryption-Lösungen.

Die Idee hinter HPKP

Mittels HPKP kann ein Server dem Browser beim Besuch einer verschlüsselten Web-Seite mitteilen: „Wenn du beim nächsten Mal auf dieser Domain vorbeikommst, wird eines der folgenden Zertifikate zum Einsatz kommen. Merk dir das.“ Chrome und Firefox werden dann beim nächsten Besuch Zertifikate von dubioser Herkunft ablehnen – auch wenn sie formal gültig wären.

 HTTP Public Key Pinning (HPKP) soll vor Man-in-the-middle-Attacken schützen
HTTP Public Key Pinning (HPKP) soll vor Man-in-the-middle-Attacken schützen

Eine Schwachstelle ist hierbei allerdings der erste Besuch der Seite, bei dem der Server das korrekte Zertifikat bzw. den richtigen HPKP-Header schicken muss. Hierbei handelt es sich um sogenanntes Trust On First Use (TOFU). Obwohl das System in Einzelfällen anfällig ist, verhindert es doch die meisten unbemerkten Angriffe auf TLS-Verbindungen.

Die Sicherheit für die Benutzer wird dadurch merklich erhöht, aber gleichzeitig wird ein neues Geschäftsmodell für Kriminelle lukrativ: Erpressung von Seiten-Betreibern.

Das Missbrauchspotential von HPKP

Das funktioniert folgendermaßen: Zuerst wird der Webserver des Betreibers gehackt, ein neues vom Angreifer stammendes Zertifikat installiert und der Server auf HPKP umgestellt. Ab diesem Zeitpunkt liefert der Server einen modifizierten HPKP-Pin aus. Dann muss der Angreifer nur noch warten, bis eine nennenswerte Zahl von Browsern sich dieses manipulierte Zertifikat gemerkt hat.

Der Hacker hat dadurch eine neue Art der Kontrolle über den Server: Löscht er beispielsweise sein Zertifikat, kann kein Anwender, der schon einmal auf der Seite war, diese wieder aufrufen. Durch den Pin auf das „falsche“ Zertifikat bekommen die Besucher eine Fehlermeldung präsentiert. Sie können diese auch nicht, wie bei herkömmlichen Warnungen zu falschen oder veralteten Zertifikaten, übergehen.

Solange der HPKP-Eintrag im Browser aktiv ist, kann der Betreiber von Serverseite nichts dagegen tun. Die Korrektur des Zertifikats auf das Orginal wirkt sich nur auf neue Seitenbesucher aus. Einzig ein manuelles Löschen der Seiteninformationen aus dem Browser Cache auf Userseite würde helfen.

Warten auf das Timeout, oder bezahlen

Dieser Cache hat bei Chrome beispielsweise eine Time-To-Live von max. 60 Tagen, was etwa für einen Onlineshop-Betreiber bedeuten kann, dass er 2 Monate keinen oder nur stark verringerten Umsatz machen kann. Ähnlich wie bei Ransomware ohne Backup, erscheint die Zahlung des geforderten Lösegelds als einzige Lösung, um das mit HPKP festgenagelte Zertifikat vom Erpresser zu bekommen.

Schutz und Gegenmaßnahmen

Bis jetzt wurden die HPKP-Erpressungen kaum in der Öffentlichkeit beobachtet. Es ist allerdings sehr wahrscheinlich, dass dieses „Geschäftsmodell“ demnächst häufiger auftritt. Einen hundertprozentigen Schutz dagegen gibt es nicht. Auch die Nicht-Benutzung des Certificate Pinning bietet keinen Schutz, da dieses durch einen Hacker mit ausreichenden Rechten auf dem Server einfach aktiviert werden kann, zumal es per se die Sicherheit erhöhen kann, wenn es richtig angewendet wird.

Ein Monitoring-System kann hier sowohl Zugriff auf das System, als auch Veränderungen an der Pinning-Konfiguration (plötzliche Aktivierung, Veränderung am Zertifikat) überwachen und bei Bedarf alarmieren. Wird dann schnell reagiert, z.B. durch Einspielen eines Backups oder durch Außerbetriebnahme des betroffenen Servers, können die Auswirkungen eines solchen Angriffs minimiert werden, bevor signifikanter wirtschaftlicher Schaden entsteht. Denn der Haken des Angriffs ist schließlich, dass er einige Zeit laufen muss, um wirklich effektiv zu sein. Nur dann lassen sich signifikante Zahlen von Usern aussperren.

Ziel sollte es jedoch immer sein, durch präventive Schutzmaßnahmen das Eindringen des Angreifers in das System zu verhindern (beispielsweise durch Server-Abhärtung) oder zumindest frühzeitig zu erkennen. Dann kann man den Angriff stoppen, bevor das zuvor geschilderte Angriffsszenario in die Tat umgesetzt werden kann.

Schreibe einen Kommentar