El problema de transmitir de forma segura un nombre de usuario y una contraseña es un problema resuelto, HTTPS es elegante y funciona bien.
En términos de esta propuesta, es significativamente menos segura que HTTPS, porque este sistema propuesto es vulnerable a un ataque de repetición. ¿A quién le importa lo que realmente son el nombre de usuario y la contraseña? Si solo inicia sesión con hash(user+password)
, este es el único valor que el atacante necesita saber.
Las respuestas de desafío seguras basadas en hash usualmente innovan una causa donde el servidor proporciona un nonce al cliente, y luego se usa el hash(nonce+hash(password))
. El nonce nunca puede ser reutilizado, el NTML de Microsoft ha solucionado este problema más de una vez.
Después de iniciar sesión con el nombre de usuario y la contraseña, aún necesita proteger el ID de sesión, que es el token de autenticación que el navegador utiliza para mantener el estado autenticado, por lo que HTTPS también es una buena solución para esto.