【问题标题】:Any value in salting an already "strong" password?加盐已经“强”的密码有什么价值吗?
【发布时间】:2009-12-21 04:55:10
【问题描述】:

将密码加盐以获得强、唯一(用户不用于其他应用程序)密码有什么好处吗?

加盐(据我所知)可以防止使用字典或通用密码生成的彩虹表。它还可以防止攻击者注意到另一个应用程序中具有相同哈希的用户。

鉴于强密码不会(可能)出现在生成的彩虹表上,并且聪明的用户会为他想要保护的每个应用程序使用唯一的密码,加盐是否可以保护已经“聪明”的用户?


这是理论上的。我不想停止腌制。


本质上,盐不只是成为密码的一部分吗?它恰好是由网守而不是用户提供的。

【问题讨论】:

  • “聪明的用户会使用唯一的密码” - 不像你想象的那么可能,到最后也没关系。当他们需要在使用相同密码的少数其他网站上更改密码时,所有那些不像您想象的“聪明”的人都会报告您的网站被黑客入侵和指责。
  • 没有理由不把东西加倍咸(相信我,你不必品尝它,:D)

标签: security hash salt


【解决方案1】:

如果您可以保证所有用户永远不会重复使用密码,并且他们的密码永远不会是预先计算冲突哈希值的计算形式,那么盐确实没有什么额外的好处。

但是,盐的额外成本也很少;而这些前提确实很难保证,而且错误的成本很高。保留盐。

【讨论】:

    【解决方案2】:

    除了彩虹表之外,还有用于解析哈希的暴力破解工具。这不会阻止解析未加盐的哈希。密码越强,它只需要更长的时间。加盐当然还是有意义的。

    【讨论】:

    • 我对你的答案到底是什么感到困惑。您是说盐只是因为它增加了长度而有所帮助,因此对于蛮力破解的处理时间?但是强密码已经足够长,可以确保几乎完全安全,免受暴力攻击
    • 不,没有已知的盐,无论密码的强度如何,您都无法解析实际密码。
    • 但本质上,盐不只是成为密码的一部分吗?
    • 盐的存在意味着我不能重用我在暴力破解一台服务器以暴力破解另一台服务器时生成的结果 - 我必须从头开始为每个目标重新开始。此外,我需要知道盐才能找到明文冲突,尽管通常如果我可以使用散列加盐密码,盐也是。
    • 我在操作中提到跨系统安全在这个理论讨论中是无关紧要的
    【解决方案3】:

    这感觉就像您想要做出假设,然后将您的安全性建立在该假设之上。当您的假设变得糟糕时,无论出于何种原因,您的安全性都会变得糟糕。

    那么您的假设(强密码不需要加盐)如何变得无效?

    1) 随着时间的推移,会生成更大、更全面的彩虹表。如果由您的用户选择强密码,我会担心这一点。他们可能认为他们做得很好,您和您的安全检查可能也认为他们做得很好,但后来发现他们创建密码的思维过程很容易通过将几个单词和数字串在一起来复制。

    2) 如果用户无法选择他们的密码,那么您的强密码生成过程可能会由于错误或其他原因而变得不如您想要的那么强。

    3) 您的用户可能懒得想出一个站点唯一/强密码!这无疑是最重要的问题。你真的想生成一个只有密码专家才能使用的系统吗? :)

    【讨论】:

      【解决方案4】:

      Rainbow 表绝对不限于字典密码等。大多数人倾向于包含最大长度的每个字符组合 - 毕竟,这是生成的一次性成本。您的用户是否都使用超过 12 个字符的密码?不太可能。

      【讨论】:

        猜你喜欢
        • 2012-01-08
        • 2011-05-13
        • 2014-01-05
        • 2010-09-19
        • 2010-12-17
        • 1970-01-01
        • 1970-01-01
        • 2016-09-17
        • 2016-05-04
        相关资源
        最近更新 更多