如何在表格中存储网站用户密码的问题已经多次在SO上提出,一般建议是存储密码的哈希值,最终是HMAC哈希值。这对于基本身份验证或基于表单的身份验证(实际上是相同的)非常有效。我的问题是,我还必须提供面向连接到我的服务的自动化工具的摘要身份验证。我一直在研究这个问题,我认为,我唯一可以存储的哈希是Digest的HA1部分:即
但我的问题是,我不认为这样做有任何好处。现在,的确,如果攻击者获得了我的密码表(因为他只有哈希值,需要发送明文密码),他就不能使用基本或基于表单的身份验证,但没有任何防止他使用摘要身份验证并对我的服务挑战给出有效响应的措施:他只需从表格中预先计算的HA1开始,并从那里继续制作响应(即后端用户验证所做的相同操作)。
username:realm:password
的哈希值。这样我就可以验证基本/表单和摘要两种身份验证方式。但我的问题是,我不认为这样做有任何好处。现在,的确,如果攻击者获得了我的密码表(因为他只有哈希值,需要发送明文密码),他就不能使用基本或基于表单的身份验证,但没有任何防止他使用摘要身份验证并对我的服务挑战给出有效响应的措施:他只需从表格中预先计算的HA1开始,并从那里继续制作响应(即后端用户验证所做的相同操作)。
我有点不明白,添加摘要需求是否基本上使得存储哈希密码从安全角度来说成为了无操作,最多只是混淆?