【问题标题】:Why is it considered secure to store a random salt in a database with the user's password digest?为什么将随机盐与用户密码摘要一起存储在数据库中被认为是安全的?
【发布时间】:2012-06-11 00:58:48
【问题描述】:

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

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

【问题讨论】:

    标签: security hash passwords salt


    【解决方案1】:

    为每个用户存储随机盐可以击败Rainbow table 攻击。

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

    【讨论】:

    • 那么拥有应用范围的盐和随机盐有什么价值吗?这将需要访问文件系统上的应用程序配置,并使摘要更难以从字典/常用密码以及存储的盐中确定。
    • @rybosome 我能看到的唯一问题是,如果不使所有当前用户失效,您将来无法更改它。
    猜你喜欢
    • 2018-10-31
    • 2015-11-11
    • 2013-03-22
    • 2011-04-29
    • 1970-01-01
    • 2017-02-25
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多