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

时间:2013-09-01 12:58:59

标签: security

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

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

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

1 个答案:

答案 0 :(得分:13)

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

  1. 服务器不存储未散列的密码。服务器存储用户名:realm:password。
  2. 的哈希值
  3. 客户端不会为每次身份验证发送相同的哈希值。
  4. Digest auth是一种挑战 - 响应协议。要启动该过程,客户端会请求受保护的URL,服务器将使用领域和nonce进行响应。客户端使用领域和随机数来计算:

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

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