了解暴力破解算法

信息安全 蛮力 密码破解 算法
2021-09-09 04:05:59

我一直在阅读暴力破解技术和可能的预防方法,但有一个问题我无法找到明确的答案。

我理解的方式是,对具有 4 个数字的密码的“简单”暴力攻击将从 0000 开始,然后是 0001、0002 等。

那么,理论上,您是否可以假设如果 0000 需要 1 秒(为了简单起见),而 0001 需要 2 秒;那么 9999 需要 9999 秒?

基于此,似乎——例如——如果你将 PIN 码设置为 9999,破解时间会比 1111 长 9 倍?

当然,这是一个过于简单的例子,但是如果我们用符号来讨论字母数字密码,理论上最安全的密码不应该是符号的最高数字、最高字母和最高 ASCII 值的组合吗?

我希望这个问题是可以理解的,有人可以为我阐明这个问题。

1个回答

任何实用的蛮力算法都会考虑生成密码的方法。

  • 如果密码是随机生成的。您应该假设蛮力算法也是真正随机的。你不知道它是什么,你不能声称一个密码比另一个更快找到,你只能说通过检查可用池的一半来发现平均密码。

  • 如果已知密码是使用具有漏洞的随机数生成器生成的(一些数字更有可能,一些不可能),攻击者将相应地修改暴力算法。

  • 如果已知密码是人工选择的(生成算法中的一种弱点),攻击者将使用适用于此类弱点的方法,包括:常用词、替换、重复、倾向、顺序反转、已知方法、提示、技巧, 填充等

    这是一场人类思维与人类思维的较量。顺序检查在统计上是最不有效的,并且基于对手将使用最不有效方法的假设得出关于给定密码强度的结论是一种谬误。

    要攻击人为密码的漏洞,可以使用社会学(在各自的人群中,一些密码方法似乎比另一种更酷)。另一个攻击者可能会使用统计数据(获取数百万个泄露的密码、分析、应用)。还有一个可能会考虑机制(首先测试在特定设备上更容易键入的键和组合键)。

在一个 4 位数字的示例中,我会从 开始猜测,在测试之前1999一直到- 我肯定会在很久以前(在 PC 键盘上打字真的很不方便)和(众所周知的“爱”)在两者之前检查。被告知的人可能会使用更有效的方法(是的,这是一个例子——问题中使用的那个——请用它来得出一般性结论,不要质疑这个例子)。190020002016997868535683