Seguridad adicional de HSTS a través de HTTPS

27

Es HSTS bueno incluso si mis servidores están configurados para usar HTTPS (cuando se usa HTTP, las reglas de reescritura en Apache lo convierte en HTTPS)?

¿También debería usarse HSTS incluso en recursos como CSS e imágenes, o solo cuando el tipo de contenido es texto / html?

    
pregunta Novice User 16.07.2012 - 17:51
fuente

2 respuestas

16

Sí, si está utilizando SSL en todo el sitio, definitivamente recomiendo habilitar HSTS .

HSTS es una medida de seguridad importante para vencer los ataques de intermediarios que cambian al usuario a http y luego lo atacan. Por ejemplo, sslstrip es una herramienta bien conocida para montar dicho ataque. Para más detalles sobre este tipo de ataque, vea las siguientes preguntas: ¿Cómo frustrar el ataque sslstrip? , ¿Opciones al defenderse contra SSLstrip? , y esta respuesta .

HSTS le dice al navegador: nunca use HTTP con este sitio. Solo accede a través de HTTPS. Por lo tanto, para habilitar HSTS, debe asegurarse de que su sitio funcione con HTTPS, y solo con HTTPS. Esto incluye todo: HTML, CSS, Javascript, todo. Asegúrese de que todo el CSS y Javascript en su sitio esté disponible a través de HTTPS. Además, le sugiero que convierta sus páginas para hacer referencia a todo a través de HTTPS (le recomiendo que evite cargar cualquier otro recurso de Javascript o CSS a través de HTTP, ya que eso puede causar advertencias o problemas de seguridad en algunos navegadores).

Por ejemplo, digamos que su sitio es www.example.com y usted tiene una página https://www.example.com/buy.html que incluye un poco de Javascript de su sitio. Debe asegurarse de que su archivo Javascript esté disponible en una URL HTTPS (por ejemplo, https://www.example.com/library.js ). Le recomiendo que lo cargue a través de una URL HTTPS (por ejemplo, <SCRIPT SRC="https://www.example.com/library.js"> ).

P.S. También recomiendo que establezca la marca secure en todas las cookies que use.

    
respondido por el D.W. 16.07.2012 - 20:17
fuente
23

Sí , la seguridad de transporte estricta proporciona un beneficio real.

HSTS le dice al navegador que solo se comunique con el servidor a través de HTTPS. La primera vez que el navegador ve el encabezado HSTS desde el servidor, lo recuerda. Cuando el usuario visita el sitio de nuevo, el navegador impone que todas las comunicaciones se realicen a través de HTTPS. Esto funcionará siempre y cuando el atacante no quite el encabezado en la primera visita al sitio.

Esto evita ataques de supresión de SSL, una forma de ataque de hombre en medio que presenta al usuario un recurso de texto simple en lugar de uno de SSL. Normalmente, el usuario no recibe una alerta y la mayoría de los usuarios "promedio" no ven que el candado SSL o el resaltado verde / azul no se muestran en la barra de URL. En el caso de HSTS, el navegador advertirá inmediatamente al usuario que el navegador está intentando violar su propia política de seguridad.

  1. El cliente crea una conexión de texto simple al servidor.
  2. El servidor responde con una redirección a la dirección HTTPS, con el encabezado HSTS establecido.
  3. El cliente y el servidor se comunican a través de SSL.
  4. La sesión termina.
  5. El cliente vuelve más tarde, el navegador ha almacenado la marca HSTS para este dominio.
  6. El atacante intenta realizar un ataque de tira de SSL y entrega texto sin cifrar al cliente.
  7. El cliente reconoce que la política de HSTS no lo permite y alerta al usuario.

Para mayor seguridad, algunos proponen que se implemente HSTS como una opción en DNSSEC, de modo que el encabezado HSTS se establezca como parte de la búsqueda de DNS. Dado que DNSSEC proporciona una seguridad sólida a través de certificados de autoridad pre-distribuidos, esto haría que sea muy difícil para un atacante anular el mecanismo de HSTS, incluso si intentan realizar una tira SSL en la primera visita al sitio.

    
respondido por el Polynomial 16.07.2012 - 17:59
fuente

Lea otras preguntas en las etiquetas