摘要式身份验证的概念 - 它真的有用吗?

yap*_*m01 6 security

据我所知,摘要式身份验证(这是一种单向操作)散列密码并将散列数据传输到服务器.然后,服务器将使用存储的密码,对其进行散列并与接收的散列密码进行相等性比较.应该是安全的中间人攻击.

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

那么Digest身份验证机制的用途是什么?似乎没有这个概述.

Syo*_*yon 14

摘要式身份验证与您描述的方式不同.

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

Digest auth是一种挑战 - 响应协议.要启动该过程,客户端请求受保护的URL,服务器使用领域和随机数进行响应.客户端使用领域和随机数来计算:

md5(md5(username:realm:password):nonce:md5(httpMethod:uri))
Run Code Online (Sandbox Code Playgroud)

nonce导致每个身份验证生成不同的哈希值,这样做可以防止重放攻击.此外,它确实提供了一些(弱)保护,防止攻击者收听您的通信,因为明文密码不会通过网络传递,尽管这并不能阻止攻击者在获得哈希后破解哈希.