¿Cómo ver cuándo un dominio HSTS está a punto de caducar?

5

Tenemos un cliente que afirma que su sitio (que alojamos) está bajo HSTS, pero no podemos confirmarlo. Le dije que abriera esa página de cromo chrome://net-internals/#hsts y que buscara su dominio, y de hecho obtiene un registro con un dynamic_sts_observed de 1466233582 que es 2016-06-18 07:06:22 UTC. En este momento, en realidad, el cliente se mudó a nosotros y es probable que haya tenido HSTS antes.

Supongo que no hay ninguna razón real para aclarar que "para la web", pero al menos, ¿hay una manera de ver cuándo se supone que el HSTS caducará?

Solo puedo esperar que no sea en el año 2021 ...

    
pregunta Adrian Föder 23.06.2016 - 15:25
fuente

3 respuestas

6

HSTS se guarda en cada navegador web.

Cuando se realiza una solicitud a un dominio que implementa HSTS, los encabezados de respuesta contendrán un encabezado Strict-Transport-Security que indica la antigüedad máxima del registro y, opcionalmente, algunos otros valores relacionados con HSTS.

Esta edad máxima da un tiempo de vida efectivo desde el momento en que se recibe la respuesta.

Esto se ilustra, aunque no se explica explícitamente, en RFC 6797 sección 11.2 (no normativo ), que establece:

  

El enfoque del "valor constante en el futuro" se puede lograr mediante   enviando constantemente el mismo valor de edad máxima a los UA.

y

  

El enfoque de "punto fijo en el tiempo" se puede lograr enviando   Valores máximos de edad que representan el tiempo restante hasta el deseado.   tiempo de expiración. Esto requeriría que el Anfitrión HSTS envíe un nuevo   valor de edad máxima calculada en cada respuesta HTTP.

Entonces, si un dominio ha utilizado HSTS en el pasado, entonces, en una situación en la que no se haya cambiado previamente la duración máxima de HSTS, la hora más temprana en la que no se puede esperar que ningún cliente confíe en datos HSTS antiguos es la hora de última solicitud que devolvió datos HSTS, más el tiempo que se indicó en esos datos HSTS en ese momento. Si el HSTS max-age se ha reducido, estos períodos de tiempo forman ventanas deslizantes; lo que termina en último lugar es el momento más temprano en el que no se puede esperar que ningún cliente se base en datos HSTS antiguos. Esto es una consecuencia de uno de los requisitos en sección 8.1.1 (normativo):

  

Un host HSTS conocido está "caducado" si su entrada de caché tiene una fecha de caducidad   en el pasado. La UA DEBE expulsar a todos los Hosts HSTS conocidos caducados de su   caché si, en cualquier momento, existe un Host HSTS conocido vencido en el   caché.

En cualquier solicitud, si la respuesta se recibe a través de un transporte seguro e incluye datos HSTS, entonces, como se indica en la sección 8.1, el cliente UA debe actualizar su lista de hosts HSTS conocidos (normativo):

  

Si /.../ la UA DEBE [bien]: /.../

     
  • Actualice la información en caché de la UA para el host HSTS conocido si   cualquiera o ambos del campo de encabezado max-age e includeSubDomains   tokens de valor están transmitiendo información diferente a la que ya está   Mantenido por la UA.

         

    El valor de la edad máxima es esencialmente un valor relativo del "tiempo de vida"   a la hora de recepción del campo de encabezado STS.

  •   

Como consecuencia, activar HSTS es efectivamente una promesa de seguir ofreciendo HTTPS válidos por no menos que la duración del parámetro HSTS de edad máxima, contando desde el momento de la respuesta.

Como consecuencia adicional, no hay una fecha y hora de "caducidad" fijas para los datos HSTS a menos que el servidor utilice el enfoque de "punto fijo en el tiempo" descrito non-normatively en el RFC.

    
respondido por el a CVn 23.06.2016 - 18:50
fuente
2

HSTS se establece mediante el uso de un HEADER, es decir, Strict-Transport-Security: max-age=31536000 , donde la edad máxima define durante cuánto tiempo. El navegador recordará la configuración de HSTS, desde la última vez que vio este HEADER. (Al menos así es como lo entiendo). Cuando Max-Age esté activo, el navegador rehará el HSTS solo si el encabezado está nuevamente allí en la solicitud.

La práctica común es poner la edad máxima en 1 año (en segundos). Se considera una buena práctica que cualquier página web de TLS incluya este encabezado con una duración máxima de Max, por lo que los clientes saben que se supone que el sitio es TLS e incluso lo recordarán, por lo que los ataques MitM tienen menos vectores de ataque abiertos.

Editar:  Dado que la lista de sitios web de HTST es una característica específica del navegador, donde se establece, cuándo se establece y cómo saber la caducidad es específico del navegador. y está sin más detalles fuera del alcance debido a la información faltante (p. ej. what broser). Enumerarlos todos sería un poco largo y una versión sepcífica en muchos casos.

    
respondido por el LvB 23.06.2016 - 15:51
fuente
0

Si está buscando la fecha / hora de vencimiento de HSTS o HPKP para un sitio web en una instancia específica de Chrome, tuve la misma necesidad hace unos meses y encontré el Pin Patrol extensión para ser útil para esto. ( El código fuente está aquí ; es LGPL-2.1.)

(En el interés de la divulgación completa, no tengo ninguna afiliación con los autores de Pin Patrol.)

    
respondido por el biolizard89 05.09.2017 - 05:47
fuente

Lea otras preguntas en las etiquetas