Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

HSTS y la redirección a HTTPS

5 tareas · 40 min · Principiante

Tener HTTPS no basta si el navegador sigue empezando por HTTP. La redirección del puerto 80 al 443 lleva a la gente al sitio cifrado, y la cabecera Strict-Transport-Security (HSTS) le pide al navegador que no vuelva a intentar HTTP durante un tiempo. Mal puesta, protege poco; puesta de golpe y con descuido, rompe subdominios que solo sirven HTTP. En esta sala se leen cuatro respuestas guardadas y un inventario de subdominios de Panadería Quebradillo y se decide cómo subir la protección sin romper nada. No se pide nada a ningún servidor.

0 de 5 · 0%

Objetivo de la sala

Tener HTTPS no basta si el navegador sigue empezando por HTTP. La redirección del puerto 80 al 443 lleva a la gente al sitio cifrado, y la cabecera Strict-Transport-Security (HSTS) le pide al navegador que no vuelva a intentar HTTP durante un tiempo. Mal puesta, protege poco; puesta de golpe y con descuido, rompe subdominios que solo sirven HTTP. En esta sala se leen cuatro respuestas guardadas y un inventario de subdominios de Panadería Quebradillo y se decide cómo subir la protección sin romper nada. No se pide nada a ningún servidor.

La redirección de HTTP a HTTPS es lo mínimo, pero tiene un hueco: la primera petición de una visita sale por HTTP y viaja sin cifrar, y en una red hostil alguien en medio puede responderla antes de que llegue la redirección. HSTS cierra ese hueco para las visitas siguientes: el servidor, por HTTPS, envía una cabecera con un max-age en segundos, y durante ese tiempo el navegador reescribe a HTTPS él mismo cualquier intento de ir por HTTP a ese host.

La regla que sostiene todo (RFC 6797): el navegador ignora la cabecera si le llega por HTTP sin cifrar. Solo cuenta la que se recibe por una conexión HTTPS correcta. Por eso la redirección y HSTS no se sustituyen: cada una cubre un tramo.

Responde para continuar

La respuesta del puerto 80 de la tienda redirige a HTTPS y no lleva cabecera HSTS. ¿Es un fallo?

Ver pista de ayuda

Piensa por qué conexión debe llegar la cabecera para que el navegador la obedezca.

El valor max-age es la memoria del navegador, en segundos. Uno muy corto casi no protege: apenas pasan unos minutos y el navegador vuelve a empezar por HTTP. Para tener una protección útil se piden valores de meses o de un año.

Abre respuesta-https-tienda.txt y lee la cabecera tal como la envía la tienda.

Responde para continuar

¿Qué valor de Strict-Transport-Security envía la tienda en su respuesta HTTPS? Escríbelo tal como figura.

Ver pista de ayuda

Es la única cabecera de seguridad de ese archivo. Copia la directiva completa, con su valor.

El max-age se da en segundos y las personas piensan en días. Un año son 31536000 segundos (365 días), que es además el mínimo que pide la lista de precarga de los navegadores. Convertir es parte del trabajo del auditor: el número crudo no dice si es poco o mucho hasta que se traduce.

Abre respuesta-https-api.txt y convierte el max-age de la API a días, sabiendo que un día tiene 86400 segundos.

Responde para continuar

¿A cuántos días equivale el max-age que envía la API? Escribe solo el número.

Ver pista de ayuda

Divide el valor en segundos entre 86400.

La directiva includeSubDomains extiende la política a todos los subdominios del dominio. Es lo que se quiere al final, pero es peligrosa si algún subdominio solo sirve HTTP: en cuanto un navegador la reciba, rehusará abrirlo, porque ya no admite HTTP en ninguno. Antes de activarla se inventarían los subdominios, y cada uno debe servir HTTPS válido.

Abre subdominios.txt y busca el que no cumple, el que se quedaría inaccesible.

Responde para continuar

¿Qué subdominio de quebradillo.example dejaría de abrir si se activa includeSubDomains? Escribe su nombre completo.

Ver pista de ayuda

Mira la columna «sirve»: hay un host sin HTTPS.

HSTS se despliega por etapas, porque deshacerlo es lento: el navegador recuerda la política durante todo el max-age. Se empieza con un valor corto, se comprueba que nada se rompe, se sube a semanas y luego a un año. La directiva includeSubDomains se añade cuando todos los subdominios sirven HTTPS. Y la precarga (preload), que mete el dominio en una lista incluida en los propios navegadores, va al final, porque salir de esa lista es lento.

Los requisitos de la lista de precarga son públicos: certificado válido, redirección de HTTP a HTTPS en el mismo host, todos los subdominios por HTTPS y una cabecera con un año de max-age, includeSubDomains y preload.

Responde para continuar

La panadería quiere HSTS con precarga para todo el dominio. ¿Cuál es el orden sensato?

Ver pista de ayuda

Lo que se hace al final es lo que más cuesta deshacer.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad