¿La seguridad de transporte estricta de HTTP (HSTS) tiene algún sentido en la comunicación de servidor a servidor?

8

Ocasionalmente obtenemos resultados por no tener HSTS habilitado en nuestras interfaces HTTPS, pero como estas interfaces son de servidor a servidor, ¿permitiría a HSTS hacer una diferencia de seguridad?

    
pregunta zaphod 19.04.2016 - 09:17
fuente

3 respuestas

11

¿Por qué HSTS?

La debilidad de HSTS está diseñada para proteger a los clientes que primero se conectan a un servidor al realizar una solicitud a través de HTTP, y se espera que sean redirigidos a la versión HTTPS (o una versión 404). Un atacante puede mitigar esa solicitud y, en lugar de enviar la redirección, enviar el sitio (posiblemente modificado) a través de HTTP.

Las conexiones a través de HTTP se pueden abrir por muchas razones:

  • Ataques como SSL-strip.
  • Personas que ingresan la dirección HTTP en la barra de URL
  • Enlaces codificados a HTTP.

¿Alguno de estos afecta un servidor? La tercera podría, pero depende de si tienes control total de todo el software que se conecta a tu servidor o no.

Si tienes el control total

Solo asegúrate de que todas las URL que se usen alguna vez sean para HTTPS. Si se leen desde un archivo de configuración, compruebe explícitamente que no son HTTP. Esto elimina la necesidad de HSTS. Mientras esté en ello, debe asegurarse de que solo acepta conjuntos de cifrado seguros y quizás piense en implementar certificado o clave pública pinchar .

Si no tienes el control total

Digamos que otras personas escriben software que se conecta a su servidor. No sabes si estas personas saben lo que están haciendo. Pueden hacer accidentalmente una solicitud HTTP en algún lugar.

Si las bibliotecas que usan realmente interpretan y aplican los encabezados de HSTS (es el cliente el responsable de aplicar HSTS), estas personas serían más seguras con HSTS activado. Pero sigue siendo una especie de caso de ventaja: si da 404 respuestas y no redirige las solicitudes HTTP, es difícil imaginar por qué alguien escribiría el software que las hace. También sospecho que la mayoría de las bibliotecas ignoran los encabezados HSTS. ¡Pero quién sabe!

    
respondido por el Anders 19.04.2016 - 09:34
fuente
8

HSTS probablemente no hará una diferencia en su caso, si nadie usa la interfaz usando un navegador.

Si controla el cliente (que es el otro servidor en su caso), simplemente puede solicitar las URL de HTTPS y nunca solicitar las solicitudes de HTTP. También es cuestionable si el cliente es compatible con HSTS. Se implementa en muchos navegadores, pero no en muchas bibliotecas HTTP.

Una forma en que puede marcar la diferencia es si el servidor redirige de HTTPS a HTTP. Con HSTS habilitado, los clientes de soporte no seguirán la redirección.

Ya que parece que solo deseas HTTPS, es posible que desees deshabilitar el servicio HTTP.

    
respondido por el Sjoerd 19.04.2016 - 09:28
fuente
6

En una situación en la que las aplicaciones de servidor y cliente se desarrollaron y controlaron de manera personalizada, no hay modelo de amenaza que HSTS mitigaría.

Ambos lados de la transmisión deben configurarse con los certificados adecuados y deben evitar la degradación del protocolo sin depender de HSTS.

HSTS se introdujo como una protección contra la omisión de SSL al deshabilitarlo completamente, o degradando el protocolo a una versión más baja (insegura), en un escenario donde los usuarios acceden a servidores remotos de los que tienen información o habilidades técnicas para evaluar el nivel de protección .

Finalmente, si una aplicación cliente no es compatible con HSTS, activarla no tiene ningún efecto.

    
respondido por el techraf 19.04.2016 - 09:33
fuente

Lea otras preguntas en las etiquetas