HSTS (HTTP Strict Transport Security) es un mecanismo de seguridad diseñado para asegurar las conexiones HTTPS contra ataques man in the middle y secuestros de sesión (Session Hijacking). La extensión HTTPS permite a los operadores web señalar, con información adicional en la cabecera de HTTP, que, por un periodo determinado de tiempo, una página web solo será accesible por SSL/TSL. En el lado del servidor se utilizará el campo de cabecera Strict Transport Security. Esto incluye la directriz obligatoria max age y puede extenderse a las directrices includeSubDomain y preload:
Strict-Transport-Security: max-age=31536000
La directriz max-age (edad máxima) especifica cuánto tiempo debe estar disponible una web cifrada. El período se define en segundos. Una max-age de 31536000 segundos corresponde a un periodo de un año. Así, cuando un usuario visita por primera vez una página web asegurada con HSTS, el navegador recibe las siguientes instrucciones en el campo de cabecera Strict-Transport-Security:
- Todos los enlaces no cifrados deben ser reescritos en enlaces cifrados (http:// se convertirá en https://).
- Si no se puede establecer la seguridad de la conexión (por ejemplo, debido a un certificado no válido), esta se debe cancelar y el usuario recibe un mensaje de error.
Opcionalmente, existe la opción de ampliar la información HSTS de los subdominios. En este caso, se utiliza el campo de cabecera Strict-Transport-Security en combinación con la directriz includeSubDomains. Esta le indica al navegador que el encabezado HSTS no solo es válido para el host actual (p. ej., www.example.com) sino también para todos los subdominios del dicho dominio (p. ej., blog.example.com o adserver.example.com).
Strict-Transport-Security: max-age=31536000; includeSubDomains
La directriz preload permite marcar páginas web para la llamada preloading para lidiar con el “first-visit-problem”.
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Sin el parámetro preload, HSTS solo se aplicará a futuras visitas en la página web: una vez el navegador conoce la información del encabezado HSTS de una web, los accesos posteriores se ejecutarán de la misma forma. Este mecanismo de seguridad no toma acciones en la primera visita a la página web.
Como consecuencia, algunos proveedores de navegadores como Google y Mozilla ofrecen la posibilidad de inscribir páginas web en las llamadas listas de precarga (preload lists). Así, las webs que hayan sido registradas para precargarse, estarán disponibles exclusivamente a través de HTTPS. Las listas de precarga se ejecutan centralmente y son enviadas al navegador del usuario cuando se realizan actualizaciones.