摘要式身份验证看起来像是挑战-响应机制的一种形式:客户端和服务器都将随机字符串与密码(MD5 或其他)混合在一起,并且只有这种混合的结果才会通过网络发送。
通常挑战(“随机数”)由服务器选择并发送给客户端。 Wikipedia article在摘要式身份验证中列出了一个样本“ session ”——挑战(“随机数”)由那里的服务器选择。我在我的机器上使用 IIS 进行了相同的测试 - 同样,挑战是由 IIS 生成的。
但在一些帖子中like this one质询由客户端生成 - 客户端只是生成一个随机字符串并发送一个请求,其中包含质询以及密码和质询的乘积。
后者是否被允许并被广泛接受?是否允许客户选择挑战(“nonce”)?
最佳答案
在 HTTP 摘要认证中,服务器总是生成随机数。
但是,HTTP 身份验证是可扩展的,应用程序可以实现其他身份验证方法(除了基本和摘要)。在您链接到的示例中,客户端使用 WSSE 进行身份验证,一种用于(主要是基于 SOAP 的)Web 服务的身份验证形式。在 WSSE 中,客户端生成随机数。
关于security - 是否允许客户端在 Digest HTTP 身份验证中选择质询 (nonce)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4942814/