Dank dem „Trust on First Use“-Ansatz greift HPKP bereits im Anschluss an die erste Kontaktaufnahme durch den Client. Der erste Besuch, bei dem der Server die gepinnten Keys übermittelt, ist jedoch durch das Verfahren selbst nicht geschützt. Diese kleine Lücke führt aber nur in Einzelfällen zu Problemen, während eine größere Zahl unbemerkter Angriffe auf die SSL/TLS-Verbindungen Ihres Webprojekts nahezu ausgeschlossen ist. Der Hauptkritikpunkt, der gegen das Public Key Pinning hervorgebracht wird, betrifft folgendes Angriffsszenario, das erst durch denEinsatz der Pinning-Technikmöglich wird:
- Ein Angreifer verschafft sich Zugriff zu Ihrem Server.
- Er installiert ein neues SSL/TLS-Zertifikat und erstellt im Anschluss ein eigenes Schlüsselpaar.
- Für den Public Key generiert er nun außerdem den passenden Hash-Wert und trägt diesen anstelle Ihrer Pins in den entsprechenden Bereich im Certificate-Pinning-Header ein.
- Anwender bzw. Clients, die Ihr Webprojekt zum ersten Mal aufrufen, erhalten nun den falschen Pin und können in der Folge keine gesicherte Verbindung zu Ihrem Server aufbauen.
- Löscht der Angreifer das Zertifikat nun wieder von Ihrem Server, bleibt diesen Nutzern der Zutritt zu Ihrer Seite verwehrt, bis die Gültigkeitsdauer des falschen Pins abgelaufen ist.
- Außer Ihnen auf diese Weise bloßen Schaden durch den entstehenden Traffic-Verlust zuzufügen, hat der Angreifer in der Theorie auch die Möglichkeit, Geld für die Freigabe des falschen Zertifikats zu verlangen und Sie auf diesem Weg zu erpressen.
Auch wenn dieses Szenario theoretisch möglich ist, ist es noch lange kein Argument gegen den Einsatz von HTTP Public Key Pinning. Denn der Angreifer könnte die Erweiterung des HTTP-Protokolls ebenso gut selbst einrichten, sobald er sich Zugriff zum Server verschafft hat. Das Problem stellt letztlich nur unter Beweis, wie wichtig es ist, das Sie Ihr Projekt gegen Hackerangriffe schützen. Wenn Sie Pins einsetzen, sollten Sie darüber hinaus auch Ihre Monitoring-Software dahingehend sensibilisieren, dass Sie bei Veränderungen in den HPKP-Headern umgehend informiert werden, um rechtzeitig einschreiten zu können. Ein denkbarer Lösungsansatz auf Seiten der Clients wären Pin-Reset-Mechanismen, die bekannte „bösartige“ Pins regelmäßig löschen.
Andere negative Kritikpunkte sind zumeist die geringe Verbreitung und die Komplexität, die mit der Konfiguration des Public Key Pinnings verbunden ist. Die Ursachen hierfür liegen vermutlich vor allem darin, dass der Standard häufig nur schlecht bzw. gar nicht bekannt ist.