什么是字典攻击

2025年4月9日 | 阅读 7 分钟

引言

在其最基本的形式中,字典攻击是一种暴力破解攻击,网络罪犯试图通过快速遍历常用的单词、短语和数学组合列表来破解用户在线账户的密码。一旦使用字典攻击成功破解密码,黑客就可以利用它来访问受密码保护的数据、银行账户和社交媒体资料。此时,它就可以真正开始影响攻击者的受害者了。

什么是字典攻击?

通过字典攻击,可以访问受密码保护的计算机、网络或其他 IT 资源,方法是故意尝试字典中的每个单词作为密码。 同样,用于解密加密通信或文件的密钥也可能通过字典攻击来实现。

字典攻击之所以有效,是因为许多公司和计算机用户要求密码由常用词组成。现代字典攻击从词列表开始,尝试单词组合和置换,例如将“e”替换为“3”。如果密码足够简单,这些系统甚至可以生成唯一的密码。

暴力破解攻击(尝试所有可能的字符和空格组合,直到达到预设的最大长度)有时在具有严格密码限制的系统中也能成功。然而,暴力破解攻击的后果可能不会很快显现。

最安全的密码是那些强大且随机生成的密码,由随机字母和符号组合而成。它们不易被预测,也不可能在预设的密码库中找到。由于其猜测尝试仅限于预选集,因此字典攻击无法有效地破解不可预测的密码。

字典攻击如何工作?

字典攻击通过使用预选的单词和短语集合来猜测可能的密码。它的工作原理是假设用户经常从标准密码列表中选择,例如“password”、“123abc”和“123456”。

这些列表包含重复的模式,具体取决于地点。例如,旨在对位于纽约的目标进行字典攻击的黑客将尝试测试诸如“knicksfan2020”或“newyorkknicks1234”之类的词。在构建攻击字典时,攻击者会包含与体育队、地标、城市、地址和其他本地特有对象相关的词。泄露的密码越来越多地成为字典攻击词列表的常见补充,反映了用户实际使用的真实密码。

这个单词列表可以变得相当庞大,但它们不像基于字符的暴力破解攻击那样庞大。手动处理和逐个测试这些密码是不切实际的。因此,通常需要更多技术来加快此过程。攻击者使用辅助软件,包括密码字典或额外的暴力破解攻击工具。使用图形处理单元,现代系统每秒可以尝试数百万个凭据。

攻击者是登录本地还是在线帐户、网络或设备,决定了字典攻击的执行方式。在线攻击中的攻击者必须知道他们可以在正确密码上进行多少次猜测。可能会有密码尝试限制,或者站点管理员、帐户管理器、客户或入侵检测系统可能会在特定次数的尝试后识别出攻击。如果发生任何这些情况,攻击者可能会被锁定在系统之外。

如果使用一个较小、已优先排序的可能密码列表,字典攻击可能会更有效。技能高超的黑客也可能能够关闭检测机制和密码尝试限制。

在进行离线攻击时,黑客在尝试密码数量和花费时间方面没有限制。但是,要执行离线攻击,必须能够访问系统上存储密码哈希的文件。只有在那时才能发起离线字典攻击。基于文件的加密,例如受密码保护的 PDF、zip 文件或离线电子邮件缓存,容易受到离线攻击。

暴力破解攻击与字典攻击

然而,暴力破解攻击通常采用一种有条理的方式来尝试所有可能的密码。字典攻击和暴力破解攻击主要在尝试的密码变化数量以及是否使用单词列表方面有所不同。

1. 暴力破解攻击

使用暴力破解攻击,会尝试每一种字符组合。这可能需要很长时间才能完成。例如,它可能从密码“a”开始,然后逐个字母更改,直到达到“zzzzzzzz”。

一个著名的例子是五位数的组合锁。攻击者会使用暴力破解技术尝试五位数的锁的所有组合。一个从零到九的数字范围内的五位数锁共有 100,000 种不同的组合方式。字典攻击可能会尝试输入所有者的生日、家庭号码或简单模式,例如 12345 或 11111。

2. 字典攻击

字典攻击利用一系列可能的密码来针对攻击系统。与暴力破解攻击相比,这些攻击更具针对性。使用字典攻击过程的攻击者将尝试其预定义库中的每个条目,而不是尝试输入每个可能的组合。

静态密码,例如“00000”,和顺序密码,例如“12345”,将被尝试。如果一个五位数组合非常独特,字典攻击不太可能猜中。

如何防御字典攻击?

密码应该又长又独特。仅由随机选择的字符组成的密码应至少有 10 个字符,但 14 个字符是更好的选择。使用由四个到六个随机短语组成的密码短语可以获得类似的保护,这对于普通用户来说更容易记住。

为了理解为什么密码短语可能比密码更安全,可以考虑任何特定密码的总体熵(随机性)。一个基本密码中的八个小写字母有 26^8 种选择,即大约 2*10^11。考虑到普通英式键盘上打印的 ASCII 字符集中的 95 个潜在字符,由大写字母、小写字母、数字和符号组成的八个字符等于 95^8 种组合,即 6*10^15。

系统管理员可以通过限制在一定时间内允许的尝试次数,并进行智能的密码或密钥选择,几乎可以消除暴力破解攻击和解密关键攻击的风险。一种方法要使系统几乎不受暴力破解攻击的影响并能抵抗字典攻击,必须满足以下三个要求:

  • 将密码尝试次数限制为三次。
  • 在 15 分钟延迟后才允许进行接下来的三次尝试。
  • 密钥或密码是由长串的随机字符、数字和特殊符号组成的。

根据美国国家标准与技术研究院的身份验证要求,在 100 次不成功的密码尝试后应关闭帐户。

为了防御字典攻击和暴力破解攻击,通行密钥是一种旨在取代密码的最新身份验证技术。通过交换公钥/私钥 RSA 密钥对,客户端和服务器可以从服务器中删除存储的密码。通行密钥通过解锁手势安全地存储在用户的智能手机上。如果通行密钥受密码保护,并且攻击者成功控制了用户的设备,他们可能会尝试进行字典攻击来检索通行密钥。与标准密码保护的服务相比,攻击者执行这种有针对性的攻击要困难得多。

字典攻击是电子邮件垃圾邮件发送者常用的技术。使用由单词或姓名后跟“@”符号以及特定域名的电子邮件地址来发送消息。通常使用长串的给定名称,如“Frank”、“George”、“Judith”或“Donna”,或者后跟姓氏的单个字母,如“csmith”、“jwilson”或“pthomas”,与域名结合使用,是有效的。

字典攻击有多有效?

字典攻击的有效性取决于攻击者试图访问的用户的密码强度。由于用户经常重复使用密码,并且弱密码仍然被广泛使用,因此攻击者仍然在他们的尝试中蓬勃发展。然而,弱密码安全性的影响不仅限于个人用户。

在重大的 SolarWinds 数据泄露事件中,就使用了字典攻击。在成功猜出管理员密码“solarwinds123”后,俄罗斯支持的黑客能够访问 SolarWinds 的更新服务器并植入一个后门,当 SolarWinds 的客户更新他们的软件时,该后门就会被触发。

结论

只要密码简单且可预测,字典攻击就会继续成功。对于 2020 年,NordPass 编制了 200 个最常见密码的列表。排名第一的密码是“123456”,有 2,543,285 个实例。排名前 10 的密码包括“picture1”和“password”。字典攻击者利用这些已发布或泄露的列表。然后,这些列表被整合到他们的密码库中。