Il modello Trust on First Use, come detto sopra, prevede che l'HPKP entri in effetto subito dopo il primo contatto del client. Questo significa che la prima visita, nel corso della quale il server trasmette le chiavi, non gode della protezione di questa procedura. Sebbene questo piccolo gap possa causare degli inconvenienti in casi isolati, di fatto non correte un gran rischio di subire un attacco alle connessioni SSL/TLS del vostro sito. La critica principale che viene mossa nei confronti del public key pinning riguarda uno scenario in particolare, reso possibile proprio dall'impiego della tecnica del pinninged esemplificato come segue:
- Un aggressore vuole attaccare il vostro sito e ottiene l'accesso al server.
- L'aggressore installa un nuovo certificato SSL/TLS e crea il proprio paio di chiavi.
- L'aggressore genera il valore hash appropriato per la chiave pubblica e lo inserisce al posto del vostro pin nell'area corrispondente dell'header del certificato pinnato.
- Gli utenti e i client che entrano in contatto con il vostro sito per la prima volta ottengono in questo modo il pin sbagliato e non sono più in grado di stabilire una connessione sicura con il vostro server.
- Se l'aggressore cancella di nuovo il certificato dal vostro server, a questi utenti continuerà a essere impedito l'accesso per tutto il periodo di validità del pin sbagliato.
- Oltre ai danni inflitti dalla perdita di traffico, l'aggressore in teoria ha anche la possibilità di ricattarvi chiedendovi del denaro per lo sblocco del certificato falso.
Anche se questo scenario è in teoria possibile, non è certamente un valido argomento contro l'HTTP Public Key Pinning: infatti l'aggressore potrebbe comunque impostare da solo l'estensione del protocollo HTTP, non appena ottenuto l'accesso al server. Il punto fondamentale resta l'importanza di proteggere il vostro sito dagli attacchi degli hacker. Se utilizzate i pin, dovreste anche fare in modo che il software di monitoraggio vi informi immediatamente delle modifiche alle intestazioni HPKP in modo da poter agire in tempo utile. Un'eventuale soluzione lato client potrebbe essere il meccanismo di reset dei pin che elimini regolarmente quelli maligni.
Altri punti critici riconosciuti sono la scarsa diffusione e la complessità di configurazione del public key pinning, dovute probabilmente al fatto che questo standard è poco conosciuto o non lo è affatto.