代码之家  ›  专栏  ›  技术社区  ›  user1187135

服务盐是如何工作的?[已关闭]

  •  0
  • user1187135  · 技术社区  · 14 年前

    我想知道食盐是如何工作的。我知道如何对密码进行bcrypt,并为每个用户提供一个唯一的salt。但我听说还有另一层可以通过食用盐来添加。我只是好奇这是怎么回事。这和为用户生成的唯一盐有什么区别?

    我在这里看到了“服务盐”一词: Web Application - Storing a Password

    3 回复  |  直到 9 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    中的“服务盐”(被描述为“站点范围内的静态盐” the question you cite ,有时也称为 "pepper" 在加密文献中)只是一个秘密字符串,它与密码和每个用户唯一的salt一起被馈送到密码哈希算法。

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

    需要记住的一个细节是,与每个用户的盐不同,“胡椒”实际上必须含有大量的 entropy (例如128位)并且必须保密以使其具有任何用途。

    无论如何,在密码哈希计算中包含这样一个秘密常数是非常容易的,所以没有什么理由 要做到这一点:即使你的密码哈希算法没有明确支持它,你也可以在每个密码后面加上“胡椒粉”。

        2
  •  1
  •   Brendon McBain    14 年前

    “使用固定密码的好处是进行查找 针对存储值的表辅助字典攻击 不切实际,只要盐足够大。也就是说,攻击者 将无法创建预先计算的查找表(即彩虹 表)的哈希值(密码+盐),因为这也需要 空间很大。简单的字典攻击仍然是非常可能的, 尽管由于其不能被预先计算而慢得多。”

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

        3
  •  0
  •   Raiden    14 年前

    salt可以防止对彩虹表进行反向检查,而彩虹表旨在轻松破解密码。“salt”将容易被黑客破解的东西转化为黑客更难解密的东西。

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

    它可以为您生成所有的密码,而无需您成为安全专家。此外,它还内置了用于处理较旧/较弱系统的回退功能。

    推荐文章