据我了解,摘要式身份验证(这是一种单向操作)会对密码进行散列并将散列数据传输到服务器。然后,服务器将使用存储的密码,对其进行散列并与接收的散列密码进行相等性比较。被认为是安全的中间人攻击。
我不明白的是,如果我是中间人黑客,我不需要原始密码。好吧,只需使用哈希密码,因为这是服务器将与之比较的密码。
那么Digest身份验证机制的用途是什么? 似乎没有这个概述。
答案 0 :(得分:13)
摘要式身份验证与您描述的方式不同。
Digest auth是一种挑战 - 响应协议。要启动该过程,客户端会请求受保护的URL,服务器将使用领域和nonce进行响应。客户端使用领域和随机数来计算:
md5(md5(username:realm:password):nonce:md5(httpMethod:uri))
nonce导致每个身份验证生成不同的哈希值,这样做可以防止重放攻击。此外,它确实提供了一些(弱)保护,防止攻击者收听您的通信,因为明文密码不会通过线路传递,尽管这并不能阻止攻击者在获得哈希后破解哈希值。