Gracias al enfoque “Trust On First Use”, el HPKP se involucra desde el primer contacto con el cliente. Sin embargo, la primera visita en la que el servidor transmite las claves fijadas no está protegida por el método mismo. No obstante, esta pequeña brecha solo conduce a problemas en casos aislados, mientras que un gran número de ataques inadvertidos a las conexiones SSL/TLS de tu proyecto web es casi imposible. La principal crítica al Public Key Pinning tiene lugar en el siguiente escenario de ataque, que solo es posible una vez se ha implementado la tecnología pinning:
- Un atacante obtiene acceso a tu servidor.
- Este instala un nuevo certificado SSL/TLS y crea su propio par de claves.
- Para la clave pública, este genera el valor hash apropiado y lo coloca en el lugar correspondiente dentro del encabezado del Certificate Pinning.
- Los usuarios o clientes que acceden por primera vez a tu proyecto web reciben el pin incorrecto y no pueden establecer una conexión segura con tu servidor.
- Si el atacante elimina el certificado del servidor, a dichos usuarios se les deniega el acceso a su web hasta que el periodo de validez del pin incorrecto haya caducado.
- Además de los daños resultantes por la pérdida de tráfico, el atacante también tiene la posibilidad de exigir dinero y chantajearte para liberar el certificado falso.
Incluso si este escenario es teóricamente posible, no es en ningún momento un argumento contra el uso de HTTP Public Key Pinning. Esto se debe a que el atacante siempre podría configurar la extensión del protocolo HTTP si logra acceder al servidor. El problema demuestra la importancia de la protección contra ataques de hackers. Si utilizas pins, deberás asegurarte de que tu software de monitoreo esté en situación de informarte con prontitud cuando se realicen cambios en los encabezados HPKP para, así, poder intervenir a tiempo. Un posible enfoque para solucionar este problema desde el lado del cliente serían los mecanismos pin reset, que se encargan de eliminar los pines “maliciosos” regularmente.
Otras críticas negativas son principalmente el bajo nivel de distribución y la complejidad asociada con la configuración del Public Key Pinning. Las razones para esto son probablemente el hecho de que el estándar es, a menudo, poco conocido o totalmente desconocido.