Skip to main content
Todos los Términos Glossary

HSTS (Seguridad de transporte estricta)

Definition

HTTP Strict Transport Security es un mecanismo de política de seguridad que ayuda a proteger los sitios web contra los ataques de degradación de protocolo y el secuestro de cookies. Permite a los servidores web declarar que los navegadores deben interactuar con ellos únicamente a través de conexiones HTTPS seguras. Una vez establecido, HSTS impide que los usuarios omitan las advertencias de los certificados y garantiza las conexiones cifradas.

Cómo funciona HSTS

HTTP Strict Transport Security es una cabecera de respuesta que un servidor envía por HTTPS, por ejemplo Strict-Transport-Security: max-age=31536000; includeSubDomains; preload. Una vez que el navegador la ve, recuerda durante el max-age indicado que este host solo debe alcanzarse por HTTPS. Durante ese periodo, el navegador reescribe a https:// cualquier enlace http:// al sitio antes de que la petición salga de la máquina, y convierte las advertencias recuperables de certificado TLS en errores duros e imposibles de saltar. La opción includeSubDomains extiende la regla a cada subdominio, y preload permite que la política se incruste en los navegadores para que se aplique incluso en la primera visita.

Por qué importa HSTS

Una redirección simple de HTTP a HTTPS todavía expone una petición insegura, y esa primera petición es precisamente donde opera un atacante de SSL stripping: se sitúa en la red, mantiene su propia conexión con la víctima en HTTP plano y hace de proxy silencioso hacia el sitio real por HTTPS, cosechando cookies y credenciales. HSTS elimina esa ventana al negarse a hacer la petición insegura por completo. También impide que los usuarios ignoren las advertencias de certificado, lo que frustra los ataques man-in-the-middle que dependen de un certificado falsificado o inválido. En resumen, HSTS convierte HTTPS de una preferencia de la que se puede engañar al usuario en una garantía impuesta.

Desplegar HSTS de forma segura

Confirma primero que cada nombre de host y cada subrecurso funcionan realmente por HTTPS, porque una vez que el navegador cachea la política no hay escapatoria fácil hasta que expire el max-age. Despliega con un max-age corto, verifica que nada se rompe y luego súbelo a un año o más. Añade includeSubDomains solo cuando tengas la certeza de que ningún subdominio necesita HTTP, y envíalo a la lista de preload solo cuando todo el árbol de dominios esté listo para HTTPS. HSTS es una de varias cabeceras de seguridad; protege el transporte, pero no el contenido que viaja sobre él. Monitorizar lo que los scripts de terceros hacen realmente, como hace cside mediante el análisis de la carga útil, sigue siendo una capa aparte y complementaria.

Definición

¿Qué ocurre en la primera visita, antes de que HSTS esté cacheado?

Sin preloading, el navegador nunca ha visto la cabecera, así que la primera petición todavía puede ir por HTTP y es vulnerable al SSL stripping. La lista de preload de HSTS resuelve esto incluyendo la política dentro del propio navegador, de modo que la aplicación rige desde la primerísima conexión al dominio.

Definición

¿Puedo desactivar HSTS rápidamente si algo se rompe?

No para los usuarios que ya cachearon la política. Enviar max-age=0 les indica a los navegadores que la olviden, pero solo surte efecto la próxima vez que cada navegador alcanza el sitio por HTTPS. Los dominios en la lista de preload son aún más lentos de retirar. Por eso pruebas a fondo la cobertura de HTTPS antes de comprometerte con un max-age largo.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Reservar una demo