密码破解者/蛮力攻击是否对“图片密码”有更高的优先级?

信息安全 蛮力 密码破解
2021-08-22 14:25:19

前段时间,我在reddit上看到一个帖子,关于一个看似非常随机的用户名“78523965412369874123”的人: 卍

如果您在通常的键盘小键盘上追踪这些数字,它会拼出一个带有方框的卐字符。

我从 Android 模式锁屏中知道,3x3 矩阵存在389112 个锁屏组合

编辑:您应该记住,图案锁屏有一些限制,例如图案需要连续移动,因此不允许跳跃。在 swastika 示例中,用户确实可以跳跃、开始新的等等,因此可能的组合应该更高。

计算:

Moves = 4, combinations = 1624
Moves = 5, combinations = 7152
Moves = 6, combinations = 26016
Moves = 7, combinations = 72912
Moves = 8, combinations = 140704
Moves = 9, combinations = 140704

Total possibilities: 1624 + 7152 + 26016 + 72912 + 140704 + 140704 = 389112

事实证明,用户往往更喜欢视觉上吸引人的密码,这些密码易于浏览,也易于根据污点猜测,因为它们为您提供了可能的起点/终点,从而大大减少了搜索空间。

回到万字符:由于人们倾向于使用视觉上吸引人的密码,密码破解者或暴力破解者会优先考虑键盘或数字键盘上的那些“视觉密码”吗?

有没有清单?

我是否应该建议我公司的人不要使用代表某些东西的可视密码?因为大多数密码指南都侧重于不使用字典单词或广泛使用的术语。

编辑2:

我的问题不仅限于小键盘。应该考虑您可以输入的每个设备。

视觉密码可能比您在字典中找到的普通密码长得多。由于您“绘制”它们并且只需要记住视觉形式,因此我认为可能存在 20 位或更多位的密码。

暴力破解者通常不会检查那些长密码,但如果有一个“可键入的视觉形式”列表,突然暴力破解者可能能够检查非常长的单词,因为只有这么多的视觉形式,你在键盘上键入。

请参见此处的示例: 可视密码

此示例拼写出“Cool!”,如果键入如下所示:

EWAZXTRDCVGYGBNJUIK,.P;/- 24 个符号。

PS:我不是以英语为母语的人,我对“图片密码”、“视觉密码”等术语不太满意,但尽管事先进行了研究,但我没有找到更合适的名称来表达我的意思。有更好的吗?我应该更改帖子的标题吗?

4个回答

他们很可能。

其实这取决于破解者字典的内容。处理破解的人(你可能知道)从一个真实单词和已知密码的字典开始,然后一旦字典用尽,黑客将在进行真正的暴力攻击之前开始使用掩码。

所以既然你把这篇文章放在这里,更多的黑客会在他们的字典中添加这样的“已知密码”。如果我是一个,我会 - 现在:)

现在这取决于破解哈希的人:他们没有相同的字典。

因此,如果我可以重申您的要求,您想知道您将在蛮力顺序或随机密码猜测之前放置的事物的优先顺序。此外,您想知道是否有人对基于模式的密码进行了此操作,并在密码搜索工具的优先级中为他们找到了最佳位置。

答案是双重的。是的,人们早就创建了密码值的优先顺序来首先猜测。20年前,“crack”支持从多种列表中抽取,方便高效猜测;为了我记得:

  1. 以前破解的密码字典
  2. 修改以前破解的密码
  3. 常用密码字典
  4. 修改常用密码
  5. 所有英语单词词典
  6. 对字典单词的修改
  7. 蛮力顺序搜索

先前破解的密码是从先前运行该工具中恢复的任何密码,基于证据表明系统上的人们通常只是使用简单的规则更改相同的密码,例如增加最后一位数字等。常见密码是已发布的列表从黑客攻击和调查中恢复的密码。

密码修改包括诸如替换规​​则之类的内容,例如“在单词末尾添加一个 0-9 的数字”、“在单词末尾添加一个符号”、“用 @ 替换 a”、“用 0 替换 o” "等。可以为每个字典定制修改;这个想法是以前的密码列表非常短,因此与随机字典单词的变体相比,这些密码的许多组合和排列可能会花费更多的 CPU 时间。(当时,CPU 的限制远比现在要大。)

更具体地说,在您的实例中,我不知道任何可以插入工具链的基于模式的密码生成器,但这并不意味着它们不存在。

但是,如果基于模式的密码如您所推测的那样普遍,那么这些数字或字母模式应该会出现在最近几起违规事件中揭示的密码中;因为它们将被视为与数据库中的任何其他密码相同。如果它们真的很常见,那么它们的密码数量会增加,最常见的会浮在列表的顶部。

我们早就看到一些模式确实出现在常见的列表中:123456、qwerty 等。所以一个论点是我们可能不需要做任何特别的事情来支持更高级的模式,因为我们有证据表明它们会自然地浮动到将在下一次重大突破中显示的顶部。

但这并不意味着你的想法是无效的。如果您开始着手这方面的工作,我建议您针对泄露密码的公共数据库测试您的代码。根据您找到的数量,它可能是非常有价值的资源,或者您可能会发现这种做法没有您想象的那么普遍。

不是密码破解器将优先级放在“视觉密码”上,而是使用的彩虹表。

彩虹桌定义

攻击的重点基于两件事,您的制动(例如MD5SHA1 . SHA2)以及您试图打破的攻击模式(例如 Alphabetic、Numeric、Alpha-Numeric、Alpha-Numeric /w Symbols )。这通常根据可用于创建密码的可用符号的数量以熵表示。

密码生理学定义

这基本上就是我们为什么选择坏密码的研究,你可以找到很多围绕这个主题的研究。模式在大多数人所做的许多事情中都很常见。

一个简单的例子是:

qwerty

如果你看一下你的键盘,那是很明显的。与这种行为相关的模式有很多,例如

1qa2ws3ed
123qweasd
/.,mnbvcc
-[0p9o8i7

密码系统太多,这些都是中等密码,但如果你在键盘上输入它们,你会看到它们背后的简单逻辑。

密码列表

由于我不打算向您展示如何购买和/或获取这些列表(并不是说 Google 无法让您盯着看),我认为任何渗透测试人员都会同意,您从基础开始(例如彩虹表1200 个最常见的密码)并根据目标进行更改。

概括

像 JTR 这样的 OOTB 破解者使用一般攻击列表,或暴力猜测密码。许多饼干可以用用户定义的列表来补充,这将强调您选择的模式。您的模式理论实际上是生成了多少密码列表,因为人们实际研究人们如何创建密码。我们很少看到像您的 swastika 示例这样的东西,因为概率不支持其他更常见的攻击模式。

回到万字符:由于人们倾向于使用视觉上吸引人的密码,密码破解者或暴力破解者会优先考虑键盘或数字键盘上的那些“视觉密码”吗?

有没有清单?

它们可以通过一些统计数据以编程方式生成。但有什么意义呢?为什么要将分析限制在这种特定的攻击上?

常用密码列表将已经包括所有常见的“模式”密码,并且在给定小键盘/键盘布局的情况下很容易计算它们的不同旋转。

这将是一种组合的字典/蛮力攻击,您可以在其中获取字典并计算其元素的不同变化。

当人们谈论字典攻击时,攻击者并没有真正使用字典。最好使用以前已知的常用密码列表这些列表通常是根据以前的违规行为构建的,例如今年登上头版的linkedin违规行为

另外,请查看剑桥大学的这篇论文。虽然专注于 4 位数的引脚,但相同的原理也可以应用于更大的数字。

请记住,纯数字密码通常是 PIN,其中有额外的保护措施来补偿这种输入固有的低熵:

  • 每次失败尝试之间的延迟增加
  • 被锁定前的最大尝试次数
  • 风险分析和其他启发式

我是否应该建议我公司的人不要使用代表某些东西的可视密码?因为大多数密码指南都侧重于不使用字典单词或广泛使用的术语。

正确的答案取决于您的威胁模型,但同样,您最好通过简单地禁止常见密码来获得更好的服务,如果它们足够常见,这些密码已经包含“模式”密码。

既然我们这样做了,请注意您的密码政策。在可用性和安全性之间找到一个很好的平衡点,否则当您的用户开始在键盘下方的便利贴上写下他们的密码时,您最终会失去安全性。