La necesidad de incluirSubDomains en HSTS RFC

2

Estoy tratando de entender la directiva includeSubDomains en el estándar de seguridad estricta de transporte HTTP. En particular, sección 14.4 de RFC 6797 me confunde.

El punto 2 dice

  

La solicitud HTTP enviada a uxdhbpahpdsf.example.com incluirá          la cookie de dominio con marca segura.

Esto parece implicar que si una cookie de dominio se ha establecido como segura, de hecho, puede transmitirse a un servidor antes de que el certificado de ese servidor haya sido validado. Eso anularía completamente el propósito de configurar la cookie para que sea segura en primer lugar. Si ese no es el caso, entonces, ¿qué estoy entendiendo mal en ese párrafo?

El punto 3. dice

  

y el usuario "hace clic" en cualquier advertencia de que          podría ser presentado

Esto parece implicar que el escenario de amenaza solo se aplicaría en caso de que el usuario ignore las advertencias de seguridad o una entidad de certificación firmara un certificado falsificado. Pero si cualquiera de ellos fuera el caso, el ataque podría haber sido dirigido al dominio example.com.

¿Cuál es la conexión entre includeSubDomains y ese párrafo? El punto 3 solo trata con un escenario, donde la comunicación se pasa a través de HTTPS de todos modos, lo que significa que HSTS no haría ninguna diferencia.

    
pregunta kasperd 21.01.2015 - 13:04
fuente

2 respuestas

2

Creo que la forma de leer esos tres puntos es como tres partes de una vulnerabilidad, y es mejor leerlas en un orden diferente. HSTS hace hace una diferencia en las conexiones HTTPS, y de hecho es muy importante: HSTS no permite a los usuarios hacer clic en una advertencia desde el navegador. Todos los errores de validación de certificados con HSTS son fatales; el navegador no permitirá que el usuario agregue una excepción, que es el mayor problema con solo confiar en las advertencias de los certificados para evitar las MitM. Entonces, si el atacante registra ese subdominio, el problema es (en un orden diferente al del RFC):

  1. El sitio del atacante sirve un certificado TLS. Si el navegador lo considera un certificado válido, entonces HSTS no ayuda (porque HSTS no incluye la fijación), pero es probable que sea un certificado no válido.
  2. El navegador web advierte sobre un problema de certificado. Debido a que el subdominio no tiene establecido HSTS, el usuario puede agregar una excepción o anular la advertencia de certificado para ir al sitio.
  3. La cookie del dominio se envía al servidor del atacante a través de la conexión TLS.

Con includeSubDomains , sucede lo siguiente:

  1. El sitio del atacante sirve un certificado TLS; una vez más, si es válido, el usuario está en espera.
  2. El navegador advierte sobre un problema de certificado. Debido a que HSTS está configurado, este es un error fatal. La conexión se termina antes de que se envíe una solicitud HTTP.
  3. No hay 3. La conexión se terminó en el paso 2.

(Como nota al margen: la validación del certificado siempre se produce durante el establecimiento de la conexión TLS; no se envían solicitudes HTTP hasta que se después se establezca TEM. Por lo tanto, nunca se envían cookies a través de HTTPS antes de verificar los certificados).

    
respondido por el cpast 21.01.2015 - 18:15
fuente
0

Podría estar equivocado aquí, pero creo que tiene que ver con el certificado de identificación en la UA. "Cargan un conjunto específico de hashes de clave pública en la configuración de HSTS, lo que limita los certificados válidos a solo aquellos que indican la clave pública especificada".

Supongo que en este escenario de ataque, HSTS bloquearía el subdominio porque no presenta un certificado válido para example.com. Donde sin la directiva includeSubDomains, el certificado de example.com nunca se considera, se acepta el certificado TLS y se roba la cookie del dominio.

    
respondido por el Alex Urcioli 21.01.2015 - 17:43
fuente

Lea otras preguntas en las etiquetas