La autenticación básica fue una de las primeras formas de autenticación en la web. Fue definida en el RFC 2617, y tienen un diverso número de problemas. El primero y principal son transmitidos sobre la red utilizando codificación en Base64, lo cual es trivial de revertir. Por pereza o ingenio, muchas herramientas y sitos revierten la codificación con un clic.
A continuación se delinea el proceso de autenticación HTTP Básica:
El cliente solicita una página
El servidor devuelve un código estado 401, lo cual indica el cliente necesita autenticarse.
El cliente envía la petición nuevamente para la página, pero estas vez incluye la información de autenticación ingresada por el usuario. El nombre de usuario y contraseña están codificados utilizando Base64 (No encriptados).
Entre las perspectivas del atacante para la autenticación HTTP Básica:
- La autenticación básica no tiene concepto para el bloqueo de cuentas ni número máximo para intentos de login
- La autenticación se realiza en texto plano, fácilmente factible de ser interceptado y factible de ser interpretado si no se pasa mediante HTTPS
- Puede ser fácilmente retransmitida
- Suplantar el sitio web para engañar a los navegadores a proporcionar credenciales de autenticación
- No se puede hacer logout sin cerrar el navegador
Fuentes: