在cookie中保存哈希密码真的很危险吗?

Goo*_*bot 5 security authentication passwords cookies logging

关于在cookie中保存哈希密码的安全风险有很多讨论,因为在访问用户的计算机时,黑客可以使用保存的密码登录.如果黑客可以访问用户的计算机,他可以捕获密码,因为浏览器也在本地保存密码(当然是加密的).密码设置在cookie中与浏览器保存的密码有什么区别?

出于显而易见的原因,应该发送临时GUID而不是密码.在任何情况下,我认为限制对已记录IP的访问可以关闭攻击者使用本地保存的GUID的大门.当然,它会限制记录期的长度,因为IP通常是动态的并且经常变化; 但我认为值得注意的是它的安全性.任何的想法?

sst*_*dal 3

我想您想要在 cookie 中存储散列密码的原因是创建一个“记住我”cookie。因此,您需要为 cookie 提供一个秘密值,以便其他人无法轻易猜到它。任何有权访问该值的人都可以作为该用户登录,因此它实际上是一个“额外密码”。

这里涉及两个风险:

最重要的是暴露密码的风险。这不仅会使您的网站面临风险,也可能使其他网站面临风险。大多数用户在所有事情上都会重复使用他们的密码,并且该密码可能会让入侵者访问用户的电子邮件帐户和网上银行。有权访问哈希值的人可能会使用暴力破解或彩虹表来发现原始密码(彩虹表是预先计算的哈希值的长列表)。彩虹表可轻松用于最多超过 8 个字符甚至更长的密码。您可以通过对密码加盐来避免这种情况,以便在创建哈希之前将其长度设置为超过 20 个字符(请记住将盐也存储在 cookie 中)。使用安全散列算法计算出的适当加盐的密码散列应该非常安全。

另一个风险与用户必须更改其原始密码以使散列密码字符串无效有关。该功能一旦开启,用户就不可能真正将其关闭。当他取消选中“记住我”按钮时,您可以删除 cookie,但如果 cookie 已被泄露,则不会产生任何影响。如果他的电脑被偷了怎么办?如果用户在一台计算机上选中了此按钮,则他必须有权访问该计算机才能禁用此功能。