Estoy trabajando en mi libro de texto y encontré esta pregunta:
A continuación se muestra el formato del mensaje para que una respuesta del navegador acceda a una página web protegida por contraseña mediante la autenticación de resumen HTTP.
GET URI HTTP/1.1
Host: URL
...
Authorization: Digest username="UserName", realm="Realm", nonce="Nonce",
uri="URI", algorithm=MD5, response="Response", qop=QoP, nc=NonceCount,
cnonce="ClientNonce"
¿Cómo validará el servidor esta respuesta?
Se me ocurrió este esquema:
1. Use UserName and Realm to retrieve D1 =
md5sum(Username:Realm:Password) from the password file.
2. Compute D2 = md5sum(GET:URI).
3. Compute r = md5sum(D1 : Nonce:NonceCount:ClientNonce:QoP:D2).
4. If r == Response, authentication succeeds and return the content of
URI; otherwise authentication fails and return an error code.
¿Es correcto o hay algún defecto en mi método?
Lo único en lo que puedo pensar es que un atacante de Man in the Middle podría decirle a los clientes que usen la autenticación de acceso básico porque la autenticación resumida no proporciona ningún mecanismo para que los clientes verifiquen la identidad del servidor. También puede ser vulnerable a los ataques de reproducción, es decir, si el cliente puede reproducir el resumen del mensaje creado por el cifrado, el servidor permitirá el acceso al cliente.