我想知道服务盐是如何工作的。我知道如何密码密码并给每个用户一个独特的盐。但我听说还有另一层你可以通过服务盐来添加。我很好奇这是如何工作的。它与为用户生成的唯一盐有什么区别?
这里是我看到服务盐这个术语的地方:Web Application - Storing a Password
答案 0 :(得分:1)
“使用salted密码提供的好处是进行查找 表辅助字典攻击存储的值 如果盐足够大,则不切实际。也就是说,攻击者 将无法创建预先计算的查找表(即彩虹 表)哈希值(密码+盐),因为它也需要 很多空间。简单的字典攻击仍然很有可能, 虽然速度慢得多,因为它无法预先计算。“
答案 1 :(得分:1)
“服务盐”(在the question you cite中描述为“全站点静态盐”,在加密文献中有时也称为"pepper")只是一个秘密字符串,它被输入密码哈希算法以及密码和每用户独特的盐。
拥有像这样的“服务盐”的意思是,与每用户盐值不同,服务盐不存储在数据库中,而是存储在其他地方(通常在配置文件中) ,或硬编码到应用程序中)。因此,它可以保护密码免受仅危害数据库但不允许攻击者访问应用程序配置的攻击。使用现代网络应用程序,这样的攻击场景并不像看起来那样不可能;例如,一个简单的SQL injection攻击通常适合这种情况。
要记住的一个细节是,与每用户盐不同,它只需要独特且不易预测,“辣椒”实际上必须包含大量的entropy(比如说,128位)并且必须保密以使其有用。
在任何情况下,在密码哈希计算中包含这样的秘密常量都非常简单,因此不这样做的原因很少:即使您的密码哈希算法没有明确支持它你可以把每个密码附加“胡椒”。
答案 2 :(得分:0)
salt可防止对彩虹表进行反向检查,以便轻松破解密码。 "盐"将易于破解的东西转换成黑客难以解密的东西。
我强烈建议你玩这个api; http://www.openwall.com/phpass/
无需您成为安全专家,它可以为您完成所有非常坚固的密码生成。此外,它内置了后备功能,可以与较旧/较弱的系统配合使用。