字典攻击
2023-6-16 09:45:54 Author: mp.weixin.qq.com(查看原文) 阅读量:6 收藏

本文由小茆同学编译,由陈裕铭、Roe校对,转载请注明。

字典攻击是最有效的攻击之一,因为它们依靠的是人类的记忆天性。人更倾向于选择那些容易记忆的密码,比如他们的宠物名字、出生日期、足球队等。BBC统计了英语字典中的171,146个单词,而一个以英语为母语的人(任何语言)知道15,000到20,000个词族(词组,或词根和转折词)。无论攻击速度如何,检查所有的英语单词都不会花费太多的时间。

“字典”和“词表”之间是有区别的。即使是简单的密码也不一定是字典中的“单词”,也可能是常见的组合(如 "qwerty")和缩略语(如 "ROFL&SMC")。那么普通的词表和优化的字典之间有什么区别吗?

字典的优化

优化字典可以提高在攻击开始时找到密码的概率。优化字典的一种方法是使用特定的词条顺序。例如,可以把最常用的词放在列表的顶部,而不太常用的词则可以放在列表的下方。

例如将自然语言字典和许多专业字典按词条的长度排序,最短的词条被放在列表的顶部,而最长的词条则在字典的底部。另一方面,泄露的密码字典总是按流行程度排序。

如果您正在编写自己的词典,您可能需要针对密码恢复任务对其进行优化。我们建议对由泄露的密码组成的字典使用频率排序(例如 "前100名"、"前10000名 "等等)。如果使用自然语言的字典,我们建议在不使用突变的情况下进行频率排序。如果考虑“突变”(密码变化),按长度排序会更有效率。

字典类型

字典可以分为以下几类:

普通密码

这些字典包含在某些社区或语言组中常见的密码。"Top-100"、"Top-10000"、各种泄露的密码列表和类似的字典都属于这一类。我们建议在所有的攻击中使用这些字典。

特定的字典

各类方言和俚语字典(如 "黑客俚语"),常见的名字和地标的字典都属于这一组。我们只建议使用这些字典,如果你知道用户可能正在设置属于该特定组别的密码(例如,在分析了他们现有的密码之后)。

自然语言的字典

这些可以是常见的英语单词或属于用户母语的单词。各种非拉丁字母的音译字典也属于这一组。这些字典可用于所有类型的攻击。

重复提取没那么容易

当设备引导到已安装的操作系统时,它不可避免地对用户分区进行多次修改。即使设备与所有无线网络隔离,即使重启后未解锁,iOS也会在日志文件中添加记录并更改多个时间戳。如我们所知,替换数据集中的单个位导致计算出非常不同的哈希值,这两个镜像将不再匹配。

为什么一开始就允许设备启动到iOS?通常,这是一种意外。将iOS设备放入DFU是一个需要精确计时的棘手过程。长按或短按按钮,设备可能会启动到系统中。由于重复提取可能由不同的专家处理,因此更可能出现这种结果。

我们试图通过提供一个选项来改变iOS设备的引导行为,从而使提取更安全。

突变的使用

要不要启用突变这取决于所使用的字典。例如,当使用属于"特定"或"自然语言"组的字典时,突变确实很方便,因为它们说明了常见的密码变化(例如,在密码末尾添加一个或多个数字或改变字母大小写)。另一方面,普通密码的字典并不能从启用突变中获益,因为它们已经包含了字典中的最终修改(当然,如果密码是基于某本字典的话)。

有两种主要的突变类型:通用和特殊。

我们建议对所有类型的攻击都使用通用突变,因为这些突变在组成密码时常用。例如,最常见的突变是将字典中的"password"变成类似"Password1"的东西,将第一个字母大写,并在最后加上一个数字。通用的突变对于冷攻击来说特别方便。

另一方面,专门的突变,一般来说很少使用。这种突变的一个很好的例子是"l00p"突变,它将普通的字典中的单词转化为"黑客的俚语"。我们只建议在你有理由相信用户可能以这种特殊方式组成密码时,才使用这些特殊的突变算法。

免费字典

可以使用从互联网上获得的文本字典或单词表来设置密码恢复攻击,但是必须确保字典被转换为支持的格式(见下文)。如果你要使用突变,我们建议把所有字母都变成小写;这不适用于常用密码的字典。你可以通过优化特定密码恢复工具的字典来进一步提高性能。以下设置适用于Elcomsoft Distributed Password Recovery。

对于常见的和专用字典:

  • 将字典保存为一个".udic "文本文件。该文件必须使用Unicode LE(little-endian)编码。

  • 重复数据消除;

  • 将所有条目设为小写;

  • 按长度对词条进行排序。最短的词应放在列表的顶部,而较长的词应放在底部。 

如果你使用的是由现有密码组成的密码,请使用不同的工作流程。

  • 将字典保存为一个".udic "文本文件。该文件必须使用Unicode LE (little-endian) 编码。

  • 不要更改条目的大小写;

  • 按流行程度对词条进行排序。出现频率较高的条目应放在列表的顶部,不太受欢迎的条目放在底部。

  • 请执行重复数据消除;

自定义字典

你可以根据你的情况创建自定义字典。例如,自定义字典可以包含电话号码、日期、文件号码、特定用户的家庭成员或宠物的名字,以及任何其他可能被用作密码的个人信息。

我们建议根据你是否打算使用突变来处理这种密码。在没有突变的情况下,条目的顺序并不影响恢复的速度;你可能想把更常见的密码放在更靠近列表的顶部。

但是,如果你是根据自然词来制作密码,你可能需要使用突变来产生现实的密码。在这种情况下,我们建议进行小写字母转换和排序。

如果可能的话,尽量将字典的大小控制在一定范围内。大约10,000个词条就是一个好的字典,它可以和最常见的突变一起用于大多数数据格式。如果你使用的不是最基本的突变,一个太大的字典可能会阻碍攻击。

最后,Elcomsoft Distributed Password Recovery支持将两个字典的条目结合起来的攻击。这两本字典可以是不同的,也可以是同一本字典;在后一种情况下,密码将作为该字典的两个字的组合产生。请注意,如果你使用两个字典,要尝试的密码数量将是两个字典的倍数。

规格

Elcomsoft Distributed Password Recovery支持符合以下规格的字典。

  • 格式:文本文件,每行有一个条目。

  • 编码:Unicode LE (little-endian)。不要使用ANSI或UTF-8字典,因为它们不被支持。

  • 大小写:如果你打算使用突变,就使用小写条目;如果不使用,就使用原始大小写。

 结论

基于人类的记忆天性,字典攻击是破解密码的最有效方法之一。大多数用户倾向于使用容易记忆的密码,这些密码是基于可以在字典中找到的单词,这使得这些攻击更快、更容易成功。

有不同类型的字典,选择合适的字典并正确优化,可以缩短攻击的时间,同时提高成功率。突变也可以用来进一步增加找到密码的机会,同时增加运行攻击的时间。虽然可以使用互联网上的免费字典,但它们必须被转换为支持的格式,并为正在使用的特定密码恢复工具进行优化。通过了解各种类型的字典和变异,人们可以更好地计划和开展成功的密码恢复攻击。

参考链接:

https://blog.elcomsoft.com/2023/03/a-word-about-dictionaries/


文章来源: https://mp.weixin.qq.com/s?__biz=MzIyNzU0NjIyMg==&mid=2247487659&idx=1&sn=2ce8a1e7a872574a786a9439b6761007&chksm=e85ed5aadf295cbcea2ba667a0cff6ef57db98f7da48778ba9f6309cf2fa67af0c63024ccab6&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh