在我们的留言板上,我们使用密码匹配来帮助检测具有多个注册的成员,并针对恶意傀儡帐户执行我们的规则。当我们有 SHA256 哈希和每个站点的盐时,它运行良好。但是我们最近遇到了一个令人震惊的安全漏洞,其中一些密码哈希值落入了字典攻击。所以我们强制更改密码,并切换到 bcrypt + per-user salts。
当然,现在密码匹配不再起作用了。我没有接受过密码学或计算机科学方面的正规教育,所以我想问一下是否有一种安全的方法来克服这个问题。与我一起工作的人建议使用松散散列算法的第二个密码字段,该算法故意有很多冲突,但在我看来,这要么会导致大量误报,要么会过多地减少搜索空间以确保安全。我的想法是坚持使用 bcrypt,但存储第二个密码哈希,它使用每个站点的盐和极高的迭代次数(比如在现代硬件上生成 10 多秒)。这样,具有相同密码的用户将具有相同的哈希值,但不能通过字典攻击轻易推断出来。
我只是想知道这是否有明显的问题,或者比我更有知识的人有什么建议可以更好地处理事情?在我看来它会起作用,但我了解到在安全方面可能存在很多隐藏的问题。:P 谢谢!