3

鉴于LinkedIn 密码泄露事件,我一直在考虑密码安全问题。我过去使用的 Web 开发框架通常将主应用程序级 salt 存储为应用程序常量,然后使用该值对所有用户密码进行加盐(基于每个应用程序随机生成)。例如在伪代码中:password = hash(App::salt + userPassword).

我读过很多建议,建议为每个用户生成一个随机盐,然后将其与每个用户的密码一起存储在数据库中。我的问题是,这如何提高安全性?如果攻击者从数据库中获取密码摘要列表,他们很可能也能够获得盐,对吧?或者是否有一些我不知道的攻击向量会在无法访问表的其余部分的情况下获得密码摘要?

4

1 回答 1

5

为每个用户存储随机盐可以击败彩虹表攻击。

在“主盐”的情况下,仍然可以预先计算这样的表并在攻击中使用它。对于每个用户的盐,这变得不切实际。

于 2012-06-06T23:55:09.590 回答