Verdadero o Falso: HSTS es absolutamente inútil contra los ataques MITM
Falso, HSTS protege contra ciertas categorías de ataques MITM pero no contra otras.
HKP (Sé que no preguntaste sobre esto, pero creo que no tiene sentido mirar uno sin mirar al otro) también protege contra ciertas categorías de ataques MITM pero no contra otros.
La combinación de HSTS y HKP protege contra un escenario de ataque que ninguno de los dos puede proteger.
Hay algunos tipos de ataques MITM que no se pueden proteger con la combinación de HSTS y HKP.
Veamos algunos escenarios. En todos los escenarios asumiré que example.com no está en ninguna lista de prelodios del navegador. También asumiré que enlace se redirige a enlace
Escenario 1:
El cliente visita enlace y no había visitado example.com antes de que MITM se hiciera público.
En este escenario, el MITM tendrá éxito. Simplemente puede interceptar la conexión inicial y evitar la redirección a https.
Escenario 2:
El cliente visita enlace . El atacante no posee un certificado que pase la validación de certificado normal de los navegadores.
En este escenario, la conexión https fallará la validación del certificado y el MITM fallará. HSTS y HKP no son necesarios.
Escenario 3:
El cliente visita enlace y había visitado example.com antes de que MITM se estableciera. El atacante no posee un certificado que pase la validación de certificado normal de los navegadores.
En este escenario sin HSTS, el MITM tendrá éxito. Simplemente puede interceptar la conexión inicial y evitar la redirección a https.
Con HSTS, el navegador nunca intentará establecer una conexión http simple, sino que se moverá directamente a https. La conexión https fallará en la validación del certificado y el MITM fallará.
Escenario 4:
El cliente visita enlace y no había visitado example.com antes de que MITM se estableciera. El atacante ha obtenido un certificado que cubre example.com de una CA en la lista de raíces confiables predeterminadas de los navegadores (por engaño, soborno, intimidación o lo que sea)
En este escenario, el atacante tiene éxito.
Escenario 5:
El cliente visita enlace y había visitado example.com antes de que MITM se estableciera. El atacante ha obtenido un certificado que cubre example.com de una CA en la lista de raíces confiables predeterminadas de los navegadores.
En este escenario sin HKP, el atacante tiene éxito. Con HKP, la validación del certificado falla.
Escenario 6:
El cliente visita enlace y había visitado example.com antes de que MITM se estableciera. El atacante ha obtenido un certificado que cubre example.com de una CA en la lista de raíces confiables predeterminadas de los navegadores.
En este escenario sin HSTS, el MITM tendrá éxito. Simplemente puede interceptar la conexión inicial y evitar la redirección a https.
En este escenario sin HKP, el MITM tendrá éxito. Puede MITM exitosamente la conexión https.
Con HSTS y HKP, el navegador nunca intentará establecer una conexión http simple, sino que se moverá directamente a https. La conexión https fallará en la validación del certificado gracias a HKP y el MITM fallará.
Escenario 7:
El MITM ha obtenido la clave privada para (uno de) los certificados legítimos del sitio
El MITM tendrá éxito
Escenario 8:
El MITM ha obtenido un certificado para exampe.com de una CA que se agregó manualmente a la lista de raíces de confianza.
Se omite HKP y el MITM se ejecutará correctamente. (Esto permite que los firewalls corporativos que inspeccionan https continúen funcionando, sea o no bueno, es discutible).