【问题标题】:PKCS#5 Salt privacy?PKCS#5 盐隐私?
【发布时间】:2011-05-30 13:22:42
【问题描述】:

在PKCS5 V2.0标准的官方文档中,我们可以读到“盐可以看作是从密码派生的一大组密钥的索引,不需要保密。”

“不必保密”的部分很有趣。

既然 salt 用于添加大量密码可能性(或者如果两个用户的密码相同,则创建两个不同的密钥),让 salt 不安全的目的是什么?

我了解通常情况下,攻击者无法访问盐,因此查找正确密码会使他的工作复杂化。但如果攻击者知道盐,那么“魔法”在哪里?知道盐就像执行传统的字典攻击(如果我们排除迭代计数)!

有什么我不明白的吗?我知道知道盐不会破坏安全性,但是说它“不需要保密”对我来说听起来很奇怪。

【问题讨论】:

  • 由于这不是特定于语言的,我建议您将问题提交给security.stackexchange.com
  • 好的。我不知道这项服务。谢谢。

标签: iteration salt privacy pkcs#5


【解决方案1】:

段落的其余部分(在标准中)似乎解释了它:

...虽然有可能 对手构建一张桌子 可能的密码(所谓的 “字典攻击”),构造一个 可能的键表将是 很难,因为会有很多 每个密码的可能密钥。一个 对手将因此被限制在 分别搜索密码 每种盐。

关键是您不能只获取一个密码列表(比如说 7700 万个密码)并在同一个表中运行它们。您需要为每个密码 + salt 建立一个单独的表。

【讨论】:

  • 是的,我知道。但是如果我拥有盐,我“只需要”用已知的盐尝试所有密码。所以我们回到最初的暴力攻击,因为我们可以将已知的盐附加到每个密码可能性。
  • 我认为关键是“尝试所有密码”不是一种常见的攻击:看看第 4.2 节,每个密码至少需要 1000 次迭代,因此限制了搜索空间 - 如果它尝试每个密码需要一秒钟,您不能只尝试一百万个可能的密码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
  • 2019-01-27
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多