Fijación de clave pública HTTP (HPKP) es un estándar que permite que un sitio web HTTPS especifique en qué certificados confía, y indique al navegador que no permita ninguna conexión a ese sitio que esté protegido por cualquier otro certificado.
¿Se puede usar esto para facilitar un ataque persistente de denegación de servicio en un sitio web? Supongamos que un atacante compromete un sitio web como cnn.com (por ejemplo). Parece que el adversario podría configurar el servidor web para habilitar HSTS y HPKP, con una política de anclaje que especifica un certificado controlado por agresor. El ataque puede ser descubierto y los administradores legítimos recuperan el control, pero todos los que visitan cnn.com mientras tanto recibirán una política de HSTS y HPKP y su navegador la almacenará en caché. Como resultado, su navegador no permitirá ninguna conexión HTTP a cnn.com (debido a la política de HSTS) y solo permitirá conexiones HTTPS si el servidor utiliza el certificado anclado y la clave pública. Pero dado que el atacante especificó el certificado anclado, podría estar usando una clave privada controlada por el atacante y que cnn.com no conoce. En consecuencia, después de que el atacante es expulsado, cnn.com no tiene forma de terminar una sesión SSL utilizando la clave privada elegida por el atacante. Por lo tanto, todas las conexiones futuras de esos navegadores a cnn.com fallarán.
El estándar HPKP sugiere que los navegadores deben establecer una edad máxima para estas políticas, pero también suggests que establece la edad máxima en 60 días. Entonces, si estoy entendiendo esto correctamente, significa que si un atacante compromete temporalmente un sitio web, entonces el atacante puede asegurarse de que el sitio web será absolutamente inaccesible durante los próximos 60 días para todos los usuarios que visiten el sitio web durante el breve período en que El sitio web está comprometido. Básicamente, cualquier usuario que visite el sitio web en un momento en que esté controlado por el atacante está "envenenado" durante los próximos 60 días, y el sitio web parece simplemente inalcanzable.
Como las infracciones del sitio web no son desconocidas, parece que sería un resultado bastante grave. Este es un tipo de ataque de denegación de servicio bastante inusual: permite el vandalismo irreversible de un sitio del que los administradores del sitio web no pueden hacer nada, excepto esperar. También parece que este ataque podría ser explotado contra el sitio web cualquier , incluso uno que no esté utilizando actualmente HPKP, HSTS o incluso HTTPS.
¿He entendido esto correctamente? ¿Hay alguna mitigación que pueda tomar un sitio web para evitar que se haga de esta manera? ¿Existe un argumento de que HPKP no presenta ningún nuevo riesgo de DoS que sea más grave que el que ya existía antes de HPKP? ¿Se ha observado este tipo de ataque DoS persistente en la naturaleza?
He leído RFC 7469, el estándar que describe HPKP, y parece que no tiene ninguna mitigación. Parece que el ataque que describí calificaría como una instancia de 'pining hostil' , pero el estándar no lo hace ' Parece que menciona alguna mitigación útil para la fijación hostil (aparte de la edad máxima).