Grâce à l‘approche « Trust on First Use », HPKP prend effet dès le premier contact avec le client. Cependant, la première visite au cours de laquelle le serveur transmet les clefs épinglées n’est pas protégée par la procédure elle-même. Mais, ce petit écart n’entraine des problèmes que dans de rares cas isolés, alors qu’un nombre plus important d’attaques non détectées sur les connexions SSL/TLS de votre projet Internet est presque impossible. La principale critique contre le Public Key Pinning concerne le scénario d’attaque suivant, qui ne devient possible que grâce à l’utilisation de la technique de Pinning :
- Un hacker accède à votre serveur
- Il installe un nouveau certificat SSL/TLS et créé sa propre paire de clefs.
- Pour la clef publique, il génère aussi la valeur de hachage appropriée et la saisit dans la zone correspondante de l’en-tête Certificate Pinning au lieu de vos Pins.
- Les utilisateurs ou clients qui appellent votre projet Web pour la première fois recevront maintenant le mauvais Pin et ne seront pas en mesure d’établir une connexion sécurisée à votre serveur.
- Si l’attaquant supprime le certificat de votre serveur, ces utilisateurs se verront alors refuser l’accès à votre site jusqu’à la date d’expiration du mauvais code Pin.
- En plus de vous infliger des dommages par la perte de trafic, le hacker a aussi théoriquement la possibilité de vous facturer pour la libération du mauvais certificat et de vous faire ainsi du chantage.
Bien que ce scénario soit théoriquement possible, il est loin d’être un argument contre l’utilisation du HTTP Public Key Pinning. C’est parce que le hacker pourrait aussi bien mettre en place l’extension du protocole HTTP lui-même dès qu’il a accès au serveur. Le problème prouve à quel point il est important de protéger votre projet contre les attaques des pirates informatiques. Si vous utilisez des Pins, vous devez aussi sensibiliser votre logiciel de surveillance afin d’être immédiatement informé des changements dans les en-têtes HPKP pour que vous puissiez agir à temps. Une solution possible du côté client serait des mécanismes de réinitialisation des Pins qui suppriment régulièrement les Pins « malveillants » connus.
D’autres point négatifs qui sont critiqués sont généralement la faible distribution et la complexité associée à la configuration du Public Key Pinnings . La raison principale est probablement que la norme est souvent mal connue ou pas du tout connue.