是否可以在离线攻击中暴力破解所有 8 个字符的密码?

信息安全 密码 蛮力
2021-08-27 05:11:45

这篇文章指出:

暴力破解技术尝试了字母、数字和特殊字符的所有可能组合,也成功破解了所有 8 个或更少字符的密码。

使用可以在我的键盘上键入的 94 个数字、字母和符号,可以生成 6.63 万亿个可能的 8 个字符密码。我怀疑实际上可以测试许多密码组合。在这个时代,真的有可能在不到一年的时间里测试出这么多的可能性吗?

4个回答

根据此链接,以 1,000,000,000 个密码/秒的速度,破解由 96 个字符组成的 8 个字符的密码需要 83.5 天。在挪威 Password^12 上发表的研究表明,8 个字符的 NTLM 密码不再安全。它们可以在 2012 年花费约 8000 美元的机器上在 6 小时内破解。

要考虑的一件重要事情是使用哪种算法来创建这些哈希(假设您正在谈论哈希密码)。如果使用某种计算密集型算法,那么密码破解率可以显着降低。在上面的链接中,作者强调“新集群即使速度提高了四倍,也只能对 Bcrypt 进行 71,000 次猜测,对 SHA512crypt 进行 364,000 次猜测。”

我看到这没有更新到2018年。

Hashcat在单个 1080 Nvidia GPU 上在 26 天内破解了 8 个字符的全覆盖 (a-zA-Z0-9!-=) 密码。

在此处输入图像描述

这是一张带有 GPU 的采矿设备的图片,也可以设置为哈希破解:

比特币钻机

可能的?是的,但是尽可能接受什么蛮力恢复持续时间?如果从 94 个字符集中随机选择,则为 8 个字符 PW 的一些数字:

  • Windows PW (NTLM:1),使用上面提到的 25 GPU 恢复怪物:平均 2.2 小时
  • WiFi (PBKDF2/SHA1:4096) 使用 8 GPU 恢复系统:平均 98 年
  • 7ZIP (PBKDF2/SHA256:262144) 使用 8 GPU 恢复系统:26 个世纪

因此,对于我们而言,某些情况下是“可能的”,对于某些机构而言,可能在上述所有情况下都是“可能的”。

假设您的一组“获得”哈希包含 500 万个密码哈希,那么即使对于 98 年的 WiFi 案例,在第 1 天(平均)也会找到 145 个密钥。如果您的密码在其中,那么您会体验到,对于 WiFi 案例来说,这确实是可能的!....如果我的计算是正确的

我知道一个适度的演示(2012 年 2 月,链接)声称有能力在 25 个 GPU 系统上每秒进行 4000 亿次猜测。在这种情况下,一个 8 位密码将在不到 6 小时内被破解;更快取决于蛮力方法。但这假设攻击者可以访问存储加密密码的文件。坦率地说,如果您可以访问计算机本身,这很容易做到。即使您无法访问 HDD,攻击者也会简单地用一台发送“击键”的计算机替换键盘,该计算机发送“击键”的速度比您键入的速度要快得多。由于 USB 连接的速度,它可能需要更长的时间,但在这件事上,人类的打字速度并不是一个很好的参考。

作为旁注......

关于密码中使用的字符问题,这并不像大多数人所说的那么简单。最重要的是攻击者希望尝试的内容,而不是您选择的角色。换句话说,最重要的是系统中每个人都使用什么字符,而不仅仅是你。例如,“X”、“Y”和“Z”的随机序列与字母表中所有字母的随机序列一样难以猜测……只要攻击者不知道你更喜欢 X, Y 和 Z。但是,如果尽管有 100 位可用,但攻击者知道每个人都只使用 X、Y 和 Z,那么攻击者可以缩小暴力攻击范围并否定 100 位的好处保安系统。其原理与字典攻击的原理相同。这就是为什么系统管理员可能会强制每个人使用不同的字符类型;以确保潜在的入侵者必须尝试所有排列。

这并不是说密码中使用的特定字符不会影响破解速度。也就是说,当有人说“8 位密码需要 10 年破解”时,10 年是所需的最大时间。更准确的说法是,“测试所有 8 位密码的组合需要 10 年时间”。但事实是,根据字符选择和攻击方法,某些密码会被猜得更快。例如,如果您的密码是 100 个字符的字母数字系统(例如 0-9......AZ),并且暴力攻击使用顺序猜测,那么以“0”开头的密码将被破坏至少 100 倍比以该序列中的最后一个字符开头的密码(我们称之为“Z”)更快。但这很难处理,因为您永远无法知道攻击者可能使用什么命令。例如,攻击者是否将 A 或 0 视为第一位?最后一个数字是 Z 还是 9?或者如果攻击者知道每个人都使用以字母表末尾字符开头的密码,那么他/她可能会尝试逆序暴力破解,以“0”开头的密码会更安全。

不幸的是,密码被破解的速度与人类行为的可预测性一样重要。