Autenticación básica a través de HTTP redirigida a HTTPS - ¿se filtra?

1

Estoy creando una API de Flask y no estoy familiarizado con las superficies de ataque que existen al redirigir de HTTP a HTTPS, o al solicitar HTTP cuando el encabezado HSTS se ha enviado anteriormente.

Digamos que un usuario solicita la ruta user@pass:<url>/ping sobre HTTP. Pueden ser:

  • Redirigido a HTTPS, sin darse cuenta de que sus solicitudes HTTP siempre se redirigen, lo que significa que pueden seguir haciéndolo.
  • Bloqueado. Todos los intentos de HTTP se sirven con una respuesta "prohibida" de algún tipo. Se darán cuenta, ya que no pueden acceder al punto final, pero supongo que los datos enviados aún se revelan.

Si un usuario envía una solicitud con el encabezado de Autenticación básica a través de HTTP, y se redirige a HTTPS, ya sea como reescritura o con HSTS en su lugar, ¿no se ha revelado la información?

Si es así, me imagino que bloquear HTTP sería una forma más efectiva de decirle al usuario que deje de solicitar la ruta HTTP. La redirección nunca puede hacer que dejen de usar HTTP para la solicitud inicial.

Tengo la sensación de que podría malinterpretar alguna característica de la redirección que aún preserva la seguridad de los datos que se envían ...

    
pregunta TragedyStruck 25.06.2018 - 13:41
fuente

2 respuestas

2
  

Si un usuario envía una solicitud con el encabezado de Autenticación básica a través de HTTP, y se redirige a HTTPS, ya sea como reescritura o con HSTS en su lugar, ¿no se ha revelado la información?

Si la solicitud se redirige a HTTPS (utilizando una respuesta 30x y un encabezado de ubicación), la información de autenticación ya se ha enviado en texto sin formato a través del cable.

Si HSTS está habilitado, la conexión HTTP no se realizará y las credenciales de autenticación se enviarán a través de HTTPS inmediatamente. Esto se debe a que Strict Transport Security le dice al navegador que se conecte directamente a través de HTTPS.

Tenga en cuenta que HSTS es de confianza en el primer uso y puede caducar, por lo que no es una protección absolutamente impermeable.

    
respondido por el Sjoerd 25.06.2018 - 15:17
fuente
1

Si la URL / destino a la que se envían los datos primero es HTTP, se está exponiendo en forma de base64 (qué autenticación básica utiliza). La redirección va a HTTP en el matraz y luego a HTTPS, por lo que es clara antes de la redirección.

Ahora, si tu aplicación de frasco estaba usando ssl y tienes la redirección antes de requerir la autenticación básica, estarías bien.

    
respondido por el Joe M 25.06.2018 - 14:37
fuente

Lea otras preguntas en las etiquetas