【问题标题】:How does service salt work? [closed]服务盐如何工作? [关闭]
【发布时间】:2012-07-27 18:28:23
【问题描述】:

我想知道服务盐的工作原理。我知道如何加密密码并给每个用户一个唯一的盐。但我听说你还可以通过食用盐添加另一层。我只是好奇它是如何工作的。这与为用户生成的唯一盐有什么区别?

这里是我看到服务盐这个词的地方:Web Application - Storing a Password

【问题讨论】:

  • bcrypt 过程的任何部分,或任何类型的密码散列,都不会被传输回并存储在“客户端”。
  • 问:您从哪里听说过“服务盐”这个词?这可能有助于我们为您提供更好的答案。提前谢谢你.. PS:Kerreck SB 是正确的。
  • @paulsm4,我在这里看到了:stackoverflow.com/questions/6464662/…

标签: php passwords salt bcrypt


【解决方案1】:

“服务盐”(在the question you cite 中描述为“站点范围的静态盐”,在加密文献中有时也称为"pepper")只是一个秘密字符串,它与密码一起被提供给密码散列算法以及每个用户唯一的盐。

拥有这样的“服务盐”的意义在于,与每个用户的盐值不同,服务盐不存储在数据库中,而是存储在其他地方(通常在配置文件中,或硬编码到应用程序中)。因此,它可以保护密码免受仅破坏数据库但不允许攻击者访问应用配置的攻击。对于现代 Web 应用程序,这样的攻击场景并不像看起来那么不可能;例如,简单的SQL injection 攻击通常适合这种情况。

要记住的一个细节是,与每个用户的 salt 不同,它只需要是唯一的并且不太容易预测,“pepper”实际上必须包含大量的entropy(例如,128位),并且必须保密才能有任何用途。

在任何情况下,在密码哈希计算中包含这样一个秘密常量非常容易,所以几乎没有理由不这样做:即使您的密码哈希算法没有明确支持它,你可以说,在每个密码后面加上“pepper”。

【讨论】:

    【解决方案2】:

    "使用加盐密码的好处是进行查找 针对存储值的表辅助字典攻击 不切实际,只要盐足够大。也就是说,攻击者 将无法创建预先计算的查找表(即彩虹 哈希值(密码+盐)的表),因为它也需要 很大的空间。一个简单的字典攻击还是很有可能的, 虽然速度要慢得多,因为它无法预先计算。”

    来源:http://en.wikipedia.org/wiki/Salt_(cryptography)

    【讨论】:

    【解决方案3】:

    盐可以防止对彩虹表进行反向检查,这些彩虹表旨在轻松破解密码。 “盐”将容易破解的东西转换成黑客更难解密的东西。

    我强烈建议你玩弄这个 api; http://www.openwall.com/phpass/

    无需成为安全专家,它就可以为您生成所有细节的密码。此外,它还内置了回退功能,可与较旧/较弱的系统一起使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 2023-03-30
      • 2021-12-14
      • 2013-02-05
      • 2010-11-24
      • 2021-02-09
      相关资源
      最近更新 更多