¿Por qué la autenticación HTTP básica codifica el nombre de usuario y la contraseña con base64?

38

RFC 2617 requiere que en autenticación básica HTTP , el nombre de usuario y la contraseña deben estar codificados con base64.

  

Para recibir la autorización, el cliente envía el ID de usuario y la contraseña,   separados por un solo carácter de dos puntos (":"), dentro de una base64   cadena codificada en las credenciales.

  basic-credentials = base64-user-pass
  base64-user-pass  = <base64 encoding of user-pass,
                   except not limited to 76 char/line>
  user-pass   = userid ":" password
  userid      = *<TEXT excluding ":">
  password    = *TEXT
     

Los usuarios pueden ser sensibles a las mayúsculas y minúsculas.

     

Si el agente de usuario desea enviar el ID de usuario "Aladdin" y la contraseña   "abrir sésamo", usaría el siguiente campo de encabezado:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Dado que la codificación base64 ofrece una seguridad cero de las credenciales, ¿por qué se hace esto?

    
pregunta josh3736 30.01.2013 - 04:31
fuente

2 respuestas

48

No se realiza en absoluto por razones de seguridad, y más como un medio para escapar de caracteres especiales

enlace

TLS sería empleado para la seguridad.

    
respondido por el Brian Adkins 30.01.2013 - 05:43
fuente
2

Es bastante simple en realidad. Es solo (como toda seguridad deficiente) un intercambio entre el tiempo / esfuerzo requerido para implementarlo y la seguridad del producto. En este caso, es simple de implementar pero muy inseguro como has demostrado.

Para citar wikipedia

  

La implementación de la autenticación HTTP básica es una de las formas más fáciles de   páginas web seguras porque no requiere cookies, manejo de sesiones,   o el desarrollo de páginas de inicio de sesión. Más bien, la autenticación básica HTTP   utiliza encabezados estáticos, lo que significa que no hay que hacer apretones de manos en   anticipación. Los programadores y administradores de sistemas a veces usan   autenticación de acceso básica, en un entorno de red confiable, para   Probar manualmente los servidores web utilizando Telnet u otra red de texto sin formato   herramientas. Este es un proceso engorroso, pero el tráfico de red es   legible por humanos para fines de diagnóstico. Otra ventaja de la básica.   La autenticación es que evita el problema de autenticación de doble salto.   eso puede causar problemas para protocolos como NTLM.

Para ayudar a asegurar el inicio de sesión, también se recomendaría el uso de TLS / SSL.

Espero que ayude!

    
respondido por el NULLZ 30.01.2013 - 05:13
fuente

Lea otras preguntas en las etiquetas