密码在多长时不再有意义?

信息安全 密码
2021-08-25 07:44:27

我将建议我们的用户开始使用密码管理器并开始创建强随机密码。

虽然我不知道要推荐多大的密码。密码是否可能如此强大以至于它不再有意义?

我希望他们能有是坚强的,随机的密码和足够长的时间,这样即使散列密码表被盗,没有暴力或攻击彩虹会永远*能够猜到它。

在任何地方*都是合理的。当然,只要有足够的时间和资源,任何密码都可以被暴力破解。但在密码强度的某个时候,我认为它必须停止有意义。我不想听起来像我会矫枉过正并保护他们的密码免受第 4 维存在或其他东西的影响。

哦,我正在考虑推荐一个 64 个字符的网络安全字母表。

4个回答

知道 128 位的搜索空间在可预见的未来已经绰绰有余;192 位高得离谱;并且256 位是难以想象的无法循环的东西,并且假设您的字符集是字母数字大写和小写英文,随机生成,那么我们可以说:

  1. 在可预见的未来,22 个字符的密码已经绰绰有余。

  2. 33 个字符的密码太长了。

  3. 一个46个字符的密码只是……我不知道该说什么。

因此,简而言之:使用字母数字的大写/小写字符集,在 22 个字符之后开始变得不那么有意义。什么时候不再有意义?介于这和 33 个字符之间,很早。

所需的密码长度取决于其组成的字符集。全小写密码需要比字母数字密码长。因此,相反,我们查看以位为单位的密码的“密钥空间”(如果您从攻击者的角度来看,则为“搜索空间”)。

在不久的将来,70 到 90 位范围内的密码可能就足够了。在可预见的未来,大约 130 位的东西可能会让你到达那里。对于科幻的未来,256 可能永远不会被任何遇到的东西破解。

至于给定密码中有多少位,只需取字母的大小(a-z例如有 26 个可能的字母,而a-zplus A-Zplus0-9有 26+26+10=62 个可能的字母),计算对数基数 2该数字(4.7026 个字母和5.9562 个字母),然后将该结果乘以密码中的字符数。

由于数学很难,这里有一个预先计算好的表格。

Length    a-z       a-z,A-Z,0-9
12       56.4        71.5
14       65.8        83.4
16       75.2        95.3
18       84.6       107.2
20       94.0       119.1
22      103.4       131.0
24      112.8       142.9

[披露:我为 1Password 的制造商 AgileBits 工作]

我实际上已经为我们的用户写过这个如果他们使用我们的密码生成器,甚至仅将其限制为混合大小写字母,那么 23 个字符会给他们带来超过 128 位的熵。$$log_2(52^{23}) \约 131$$。128 位对于任何密码都绰绰有余。

当然,如果密码不是从均匀随机分布中选择的,那么这个问题就更难回答了。

我会说,当用户需要很长时间进行身份验证以显着影响性能时,x 长度的密码不再有意义。凭借今天的技术,我认为 64 位甚至 100 个字符的大/小+数字+符号密码绝对没有问题。无论散列算法如何,纯暴力破解(不使用任何其他颠覆性技术)都是不可行的。

示例:使用 ~426(四舍五入到最接近的 1)位熵的密码。在每秒 70 亿次哈希 (MD5) 和 2^n-1 的攻击成本下,这将需要 3.9 * 10^110 年(假设每天 24 小时和每年 365 天)。我对此很满意。

为了争论,我对相同长度和随机性的密码做了同样的事情,但只使用小写英文字母。最终得到大约 353 位熵(四舍五入到最接近的 1)。这需要 4.2 * 10^88 年(假设一天 24 小时,一年 365 天)。

有关密码强度和熵的更多详细信息,请参阅此处的附录A。