1

摘要式身份验证看起来像是一种挑战-响应机制:客户端和服务器都将随机字符串与密码(MD5 或其他东西)混合在一起,并且只有这种混合的结果通过网络发送。

通常挑战(“nonce”)由服务器选择并发送给客户端。关于摘要身份验证的维基百科文章列出了一个示例“会话” - 挑战(“nonce”)由那里的服务器选择。我在我的机器上用 IIS 进行了同样的测试——同样,挑战是由 IIS 产生的。

但是在像这样的一些帖子中,挑战是由客户端生成的——客户端只是生成一个随机字符串并发送一个请求,其中包含挑战以及密码和挑战的乘积。

后者是否被允许并被广泛接受?客户是否可以选择挑战(“nonce”)?

4

2 回答 2

2

在 HTTP 摘要认证中,服务器总是生成随机数。

但是,HTTP 身份验证是可扩展的,并且应用程序可以实现其他身份验证方法(除了基本和摘要)。在您链接到的示例中,客户端正在使用WSSE进行身份验证,这是一种用于(主要基于 SOAP)Web 服务的身份验证形式。在 WSSE 中,客户端生成随机数。

于 2011-02-09T09:03:31.223 回答
1

摘要式访问身份验证方案只是一种单向身份验证,客户端向服务器验证自己,反之则不然。只有服务器发出质询,客户端需要正确响应才能进行身份验证。所以只有服务器知道客户端是否真实,但客户端不知道服务器是否真实。

现在链接代码的作用完全相反:客户端向服务器发出质询以对其进行身份验证。所以客户端知道服务器是否真实。

最好的办法是使用相互身份验证

于 2011-02-09T09:07:32.670 回答