字典攻击可以破解 Diceware 密码吗?

信息安全 密码 密码
2021-09-05 21:17:12

每个人都知道Diceware密码中使用的单词(所有 6^5 = 7776 个单词都已公开)——它们都是常用单词。每个人似乎都知道我们不应该使用字典单词作为密码,因为“字典攻击”可以快速猜出单个字典单词。因此,似乎有理由得出这样的结论,即字典攻击也可以很快猜出 Diceware 密码。

现在安装的字典攻击(2012 年)能否在 2033 年之前破解 Diceware 密码?

特别是,Diceware 页面上的声明是“一个七字密码短语被认为在 2033 年之前对您的密码短语进行攻击是不可行的。” 准确的?

即使攻击者知道我总是使用 Diceware 密码,并且知道我使用哪种语言,这仍然是真的吗?

五字 Diceware 密码短语与 9 个“完全随机的乱码”字符的常见推荐相比如何?

(我在 Diceware 页面上问了一个关于建议的非常具体的问题,因为相关的问题 密码短语 - 小写和字典单词XKCD #936: Short complex password, or long dictionary passphrase? 似乎被转移到了一些不是真的问题上Diceware 密码)。

4个回答

5 个 Diceware 单词 = 7776 5 = 28430288029929701376 个可能的等概率密码短语。

9 个随机字符 = 94 9 = 572994802228616704 个可能的等概率密码。

5 个 Diceware 单词比 9 个随机字符好 49.617 倍。另一方面,10 个随机字符几乎是 5 个 Diceware 单词的两倍(但 Diceware 单词可能更容易记住)。(我假设您的“乱码”是 ASCII 可打印字符,不包括空格。)

七个字,可能的和等概率的密码短语的数量比 2 90多一点,这确实是相当高的;即使所采用的密码散列方案非常拙劣(无盐,简单的散列),这仍然超出了当今技术所能达到的范围。

重要的词是等概率的。这就是使上述分析成为可能和准确的原因。这假设您的 Diceware 单词和 9 个“看起来随机的乱码字符”都是通过真正随机的统一过程(例如骰子)选择的。而且根本不是一个人在他的大脑隐私中,想象他可以从纯粹的思想中做出随机选择(或者,更糟糕的是,机智的非随机选择)。人类只是随机的可怕。

我认为让自己相信 Diceware 安全性的最简单方法是不要沉迷于字典,而是专注于掷骰子从这个角度来看,Diceware 的想法如下:

  • 如果您有一个算法可以破解一个n字 Diceware 密码,那么同样的算法可以很容易地用于猜测用户在相同时间内连续n × 5次掷骰子的结果。为什么?因为 Diceware 密码实际上只是那些骰子掷骰结果的助记符。如果您成功猜出他们的密码,公共字典允许您推断他们滚动的内容。
  • 反之亦然:掷骰子猜测算法同样适用于破解 Diceware 密码短语。如果你能猜出用户的掷骰子,公共字典意味着你也可以推断出他们的密码。

所以我们不需要考虑字典攻击或任何类似的事情,因为我们可以看出破解一个n字 Diceware 密码短语与猜测n × 5次连续掷骰子的结果一样困难这是假设一个已经知道很多的攻击者:

  1. 密码是用 Diceware 生成的;
  2. 使用的确切字典;
  3. 密码中的确切字数。

那么猜骰子有多难呢?好吧,没有聪明的方法来预测掷骰子的顺序,因为它们是一致随机的——所有可能的结果都是同样可能的。所以你所能做的就是尝试所有的组合。并且玩弄猜测的顺序——这在猜测人工选择的密码时很有效——不会增加你早期成功掷骰子的机会。

或者换句话说,字典攻击对人为选择的密码起作用,因为它将更有可能的密码放在不太可能的密码之前,这会减少你猜对的平均时间。但是,如果所有密码的可能性相同——正如 Diceware 所保证的那样——字典攻击根本没有帮助。

将 Diceware 列表视为 7776 个字符的列表。您更愿意从 7776 个字符还是 94 个字符的列表中进行选择?(94 大约是典型键盘上的字符数。)

当您以一长串字符和 Diceware 单词提供的长度来考虑 Diceware 列表时,这是一个难以击败的系统。随着计算机变得越来越强大,速度越来越快,只需添加一两个词。

根据这篇文章,即使我们有一个仅针对随机密码短语优化的密码破解机制,也就是“密码短语令牌攻击”,它仍然比其他替代方案更安全。