HTTP Strict Transport Security (HSTS)
¿Qué es HTTP Strict Transport Security (HSTS)?
HTTP Strict Transport Security (HSTS)Política de seguridad web enviada en una cabecera HTTP que indica al navegador acceder a un dominio solo por HTTPS durante el periodo declarado.
HSTS, definido en el RFC 6797, se señaliza con la cabecera de respuesta Strict-Transport-Security. Cuando un navegador compatible la recibe por HTTPS, recuerda la política durante el max-age declarado y eleva automáticamente cualquier petición futura a ese host (y opcionalmente a sus subdominios) a HTTPS, negándose a conectar si fallan el handshake TLS o la validación del certificado. Esto neutraliza los ataques de SSL stripping (el sslstrip de Moxie Marlinspike de 2009) y la inyección de cookies en texto plano.
HSTS tiene una debilidad estructural: la confianza en el primer uso (trust-on-first-use). Antes de que el navegador haya visto la cabecera por primera vez, esa primera petición aún puede interceptarse y degradarse. La lista preload —un conjunto codificado dentro de Chromium, Firefox, Safari y Edge— cierra esa brecha al distribuir la política con el navegador, forzando HTTPS incluso en la primera visita. El envío requiere un max-age de al menos 31536000 (un año), includeSubDomains y la directiva preload, mediante hstspreload.org. Google Registry incluyó gTLD completos como .dev y .app, por lo que todo dominio bajo ellos es solo-HTTPS por defecto. Advertencia: la eliminación de la lista preload se propaga lentamente, así que use preload solo si puede comprometerse con HTTPS en todo momento.
flowchart TD
A[Navegador: primera visita] -->|sin politica aun| B{En lista preload?}
B -->|si| C[Forzar HTTPS de inmediato]
B -->|no| D[Peticion en texto plano posible - riesgo TOFU]
D --> E[Servidor envia cabecera Strict-Transport-Security]
E --> F[Navegador cachea la politica por max-age]
F --> G[Todas las peticiones futuras se elevan a HTTPS]
G -->|certificado invalido| H[Fallo total, sin excepcion]● Ejemplos
- 01
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
- 02
Un banco que envía su dominio principal a la lista HSTS preload de Chromium.
● Preguntas frecuentes
¿Qué es HTTP Strict Transport Security (HSTS)?
Política de seguridad web enviada en una cabecera HTTP que indica al navegador acceder a un dominio solo por HTTPS durante el periodo declarado. Pertenece a la categoría de Seguridad de red en ciberseguridad.
¿Qué significa HTTP Strict Transport Security (HSTS)?
Política de seguridad web enviada en una cabecera HTTP que indica al navegador acceder a un dominio solo por HTTPS durante el periodo declarado.
¿Cómo defenderse de HTTP Strict Transport Security (HSTS)?
Las defensas contra HTTP Strict Transport Security (HSTS) combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para HTTP Strict Transport Security (HSTS)?
Nombres alternativos comunes: Strict-Transport-Security, Cabecera HSTS.