7

据我了解,摘要式身份验证(这是一种单向操作)对密码进行哈希处理并将哈希处理后的数据传输到服务器。然后服务器将使用存储的密码,对其进行哈希处理,并与接收到的哈希密码进行比较。应该是安全的免受中间人攻击。

我不明白的是,如果我是中间人黑客,我不需要原始密码。好吧,只需使用哈希密码,因为这是服务器将与之比较的密码。

那么这个 Digest 认证机制有什么用呢?从这个总体概述来看似乎不起作用。

4

1 回答 1

16

摘要式身份验证与您描述的方式不太一样。

  1. 服务器不存储未散列的密码。服务器存储用户名:领域:密码的哈希值。
  2. 客户端不会为每个身份验证发送相同的哈希。

Digest auth 是一种质询-响应协议。为了启动这个过程,客户端请求一个受保护的 URL,服务器用域和一个nonce响应。客户端使用领域和随机数来计算:

md5(md5(username:realm:password):nonce:md5(httpMethod:uri))

随机数会导致每个身份验证产生不同的哈希值,从而防止重放攻击。此外,它确实提供了一些(较弱的)保护来防止攻击者监听您的通信,因为明文密码不会通过网络传递,尽管这并不能阻止攻击者在获得哈希值后破解它。

于 2013-09-01T14:00:21.123 回答