水流是这样的。
我还是不明白。客户端在第三步到底发送了什么?密码?如果是,它使用什么编码?用户名应该以纯文本发送,但我没有看到。以下是HTTP头:
在第三步,我剪掉了一部分文字,因为它太长了。
发布于 2018-02-08 19:01:15
您忽略了一些附加步骤,并且您将用户名作为纯文本传递的假设并不完全正确。整个身份验证都是通过包含二进制消息的headers作为Base64完成的。
您在步骤3中看到的是协商消息,包括主机和NT域的文档格式。
接下来,服务器将响应一条包含“质询”的消息,这是一个随机的8字节数。客户机将自己的8字节随机添加到flummox流氓服务器。
要进行身份验证,客户端必须发送加密的挑战,即响应。加密使用56位DES完成,其密钥为MD4哈希密码.
服务器将加密的挑战与他以相同方式创建的挑战与已知的密码进行比较,或者将其传递给域控制器进行验证。
所以密码本身就不会被传输。
更详细的描述请参见HTTP的NTLM认证方案或MSDNMSDN。
https://crypto.stackexchange.com/questions/55486
复制相似问题