在PKCS5 V2.0标准的官方文档中,我们可以这样理解:“盐可以看作是对从密码派生的大量密钥集的索引,不需要保密。”
“不必保密”这一部分很有趣。
既然salt用于添加大量的密码可能性(或者如果两个用户具有相同的密码,则用于创建两个不同的密钥),那么让salt不安全的目的是什么?
我知道通常情况下,攻击者无法访问salt,因此要找到正确的密码会使他的工作变得复杂。但是,如果攻击者知道盐,那么“魔法”在哪里?知道salt就像执行传统的字典攻击一样(如果我们排除了迭代次数)!
有什么我不明白的地方吗?我知道知道盐不会破坏安全,但是,说它“不需要保密”对我来说听起来很奇怪。
发布于 2011-05-30 21:34:27
段落的其余部分(在标准中)似乎解释了这一点:
...尽管对手可能构造可能的口令的表(所谓的“字典攻击”),但是构造可能的密钥表将是困难的,因为每个口令将有许多可能的密钥。因此,对手将被限制为分别搜索每种盐的密码。
关键是,您不能只获取一个密码列表(假设有7700万个密码),然后在相同的表中运行它们。您将需要为每个密码+盐构建一个单独的表。
https://stackoverflow.com/questions/6176848
复制相似问题