HSTS es un encabezado de respuesta de seguridad web. El nombre es un acrónimo de "HTTP Strict Transport Security". La función del encabezado HSTS es obligar a los navegadores a conectarse a sitios web mediante HTTPS.
Sugerencia: HTTPS utiliza encriptación para proteger su conexión web de los piratas informáticos que intentan modificarla o monitorearla. HTTP no tiene estas protecciones, por lo que un pirata informático en el lugar correcto podría monitorear y modificar su tráfico HTTP.
Un encabezado de respuesta web es una pieza de metadatos que envía el servidor cuando responde a solicitudes web. Un subconjunto de estos encabezados a menudo se conoce como encabezados de seguridad, ya que su propósito es aumentar la seguridad del sitio web y del usuario.
El encabezado HSTS tiene dos partes obligatorias y dos opcionales. El nombre del encabezado "Strict-Transport-Security" y luego el operador "max-age" y el valor son obligatorios. A veces también se utilizan otro par de operadores, "includeSubDomains" y "preload".
Cuando el navegador recibe una respuesta HTTPS con el encabezado HSTS, se le indica que se conecte a este sitio web y todos los recursos en él, utilizando exclusivamente HTTPS durante la duración del temporizador "max-age". "Max-age" es una variable que describe durante cuánto tiempo el navegador debe recordar una configuración. El valor de "max-age" se muestra en segundos, el valor recomendado es "31536000", que es un año.
La idea es que dentro de la duración de este temporizador, que se restablece con cada carga de página subsiguiente, el navegador requerirá una conexión HTTPS y rechazará cualquier recurso HTTP. Esto protege contra ataques de persona en el medio, donde un hacker entre usted y el servidor web puede manipular las respuestas que recibe.
El punto principal en el que esto te protege es la primera conexión. Por lo general, cuando se conecta a un sitio web, puede solicitar el sitio web HTTP y luego ser reenviado al sitio web HTTPS. Desafortunadamente, un pirata informático en una posición intermedia podría evitar esta actualización a HTTPS y luego podría robar o monitorear su actividad en el sitio web. Sin embargo, una vez que el navegador ha visto el encabezado HSTS, su navegador hará incluso la primera conexión a través de HTTPS, protegiéndolo de los piratas informáticos.
HSTS también evita que se carguen recursos inseguros que también podrían ser modificados maliciosamente por un atacante si se entregaran a través de HTTP.
El operador "includeSubDomains" se utiliza para indicar que el encabezado también debe aplicarse a todos los subdominios del sitio web.
La lista de precarga de HSTS
Puede notar que HSTS aún no lo protege la primera vez que se conecta a un sitio web. Aquí es donde entra el operador de "precarga". Los sitios web pueden enviarse ellos mismos para ser incluidos en la lista de precarga de HSTS, el operador de "precarga" es un indicador obligatorio si este es el caso. La lista de precarga de HSTS se actualiza y almacena con regularidad en el navegador; si se incluye un sitio, el navegador le aplicará las protecciones de HSTS. Esto sucede incluso en la primera conexión antes de que el navegador pudiera haber visto el encabezado de respuesta HSTS.
Sugerencia: Se requiere una "edad máxima" de un año o más para agregarla a la lista de precarga de HSTS.
Problemas con HSTS
Uno de los puntos principales de HSTS es que presenta un mensaje de error si hay algún problema con la conexión HTTPS. Como precaución de seguridad adicional, se supone que los usuarios no pueden eludir los mensajes de error HSTS, como podrían hacerlo con los errores HTTPS normales.
Desafortunadamente, esto puede causar problemas si una empresa implementa HSTS antes de que todo el sitio web, y todos los recursos utilizados en él, sean compatibles con HTTPS. En este caso, los usuarios comenzarán a ver mensajes de error de seguridad HSTS que no pueden eludir, esencialmente rompiendo por completo el sitio web. La peor parte es que simplemente eliminar el encabezado HSTS no soluciona el problema para esos usuarios, ya que su navegador continuará aplicando HSTS para la "edad máxima" potencialmente de meses de duración.
Como tal, es de vital importancia que se utilice una "edad máxima" corta al implementar el encabezado por primera vez. Si hay algún problema, solo persiste por un corto tiempo una vez que se descubre. Solo una vez que esté seguro de que su sitio web es completamente compatible con HSTS, debe configurar un temporizador HSTS largo.
Sugerencia: También es posible establecer una "edad máxima" de 0, esto esencialmente elimina la entrada HSTS guardada de cualquiera que la vea. Esto puede ayudar si hay un problema, pero solo afectará a los usuarios cuando decidan volver a intentarlo.