0

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

这是我看到术语服务盐的地方:Web 应用程序 - 存储密码

4

3 回答 3

1

“如果盐足够大,使用加盐密码的好处是使查找表辅助字典攻击对存储的值不切实际。也就是说,攻击者将无法创建预先计算的查找表(即彩虹表) ) 的散列值(密码 + 盐),因为它会占用太多空间。一个简单的字典攻击仍然很有可能,尽管速度慢得多,因为它不能被预先计算。

来源:http ://en.wikipedia.org/wiki/Salt_(密码学)

于 2012-07-30T05:05:17.977 回答
1

“服务盐”(在您引用的问题中被描述为“站点范围的静态盐”,在加密文献中有时也称为“胡椒”)只是一个秘密字符串,它与密码和密码一起提供给密码哈希算法每个用户唯一的盐。

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

要记住的一个细节是,与每个用户的盐不同,它只需要是唯一的并且不太容易预测,“胡椒”实际上必须包含大量的(例如,128 位)并且必须是保密,以备不时之需。

在任何情况下,在密码哈希计算中包含这样一个秘密常量非常容易,所以没有理由这样做:即使您的密码哈希算法没有明确支持它,您也可以说,附加 "辣椒”到每个密码。

于 2012-07-30T10:47:48.723 回答
0

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

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

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

于 2012-07-30T04:54:00.777 回答