有时允许使用较短的密码会更安全吗?

信息安全 密码 蛮力 密码策略 密码破解
2021-08-09 13:40:50

要求某些密码标准的行为是否使它们更容易被暴力破解?

在我看来,当网站限制使用“不安全”密码时,可能会更容易暴力破解密码,因为它消除了攻击者检查任何这些密码的需要。这些要求中最基本的(可能也是最常见的)是需要 8 个字符或更长的密码。它已在其他一些主题中进行了讨论:

对此的普遍共识是,要求更长/更硬的密码并不一定会使它们更容易破解,因为它不允许的大多数密码无​​论如何都不是可能的密码(因为绝大多数人不会使用随机字符串个字符)。

我仍然觉得大多数人可能使用的密码是所需长度或仅超过限制的 1 或 2 个字符。假设仅使用字母数字字符,则需要 8 个以上的字符会消除大约 3.5 万亿个密码可能性(其中大部分只是随机乱码)。这留下了大约 13 万亿个 8-9 个字符的密码。我的主要问题是:对于网站来说,有时只需要密码是否会对安全性产生微不足道的影响?

示例:创建密码的 1/100 次尝试可能不需要满足特定标准,这将要求攻击者测试所有密码,因为密码可能少于 8 个字符

4个回答

您在列表中遗漏的一个相关问题是:

对密码长度保密有多重要?

那里接受的答案(免责声明:我的)表明,如果您有一个允许所有 95 个可打印 ascii 字符的密码方案,那么每次您将密码长度增加 1 时,密钥空间都会迅速增加。您可以检查所有密码在大约 1% 的时间内达到长度 N,您只需要检查长度为 N+1 的密码。通过拒绝任何短于某个截止长度的密码,您放弃的密钥空间不到1%。

所以,我强烈反对@Iszi 说

强制增加长度所获得的好处远远超过可能丢失的密码数量。


下一点:让我们摆脱 8 个字符对于密码来说太长的想法。它不是。你说“~13 万亿个密码”,好像这是一个很大的数字。它不是。根据这篇文章(顺便说一句,这是一篇很棒的文章),他的密码破解装置每秒可以进行 3500 亿次猜测,因此您的大约 13 万亿个密码中的每一个都可以在大约 10 小时内一个一个地破解。那是在 2013 年的硬件上,从那时起 GPU 已经发挥了很大的作用。


我的观点是,网站可以争论谁有更好的密码要求,但他们都太弱了我们破解密码的能力比我们记住更长密码的能力增长得更快。这是因为安全性与可用性发生冲突。尝试告诉任何不是技术书呆子的人,他们需要记住一个不包含任何英文单词的 32 个字符的密码,并且为他们拥有的每个帐户设置一个不同的密码!你会被嘲笑然后被忽视。试图执行比可悲密码策略更好的任何东西的网站必须应对大量愤怒的客户。

解决方案是完全取消密码并转向强大的 2-Factor 类型身份验证,在这种情况下,离线破解是不可行的。不幸的是,公司在不到十年的时间里才认真考虑密码的替代品,而且这些产品还远未完善(它们受到阻碍大规模采用的便利性和可用性问题的困扰),所以与此同时,我们可以继续拥有这些无用的将一种几乎无用的密码方案与另一种进行比较的辩论。结束意见

答案就在你的问题中。

假设仅使用字母数字字符,则需要 8 个以上的字符会消除大约 3.5 万亿个密码可能性(其中大部分只是随机乱码)。这留下了大约 13 万亿个 8-9 个字符的密码。

为密码建立一个最小长度,甚至是一个确切的长度,会迫使用户选择一个位于搜索空间中的密码,该密码比此类要求无效的较弱密码的数量大几个数量级。

为了更好地说明这一点,让我们在这里简化并实际写出整数。假设全小写字母密码,有:

8031810176长度为 7 或更短的可能密码。
200795254400长度正好为8 的可能密码。

增加可能的字符数,与强制执行的复杂性相比,丢失的密码数量变得更加微不足道。

强制增加长度所获得的好处远远超过可能丢失的密码数量。并且当有这样一个简单有效的对策时,被消除的密码构成的风险太高了,无法被允许。

不统一应用密码策略会引入不必要的安全风险,绝对不会提高安全性。

允许存在弱密码只会提高攻击者使用常用密码列表破解哈希的可能性。随着用户数量的增加,这个问题变得更糟。如果 1/100 帐户的密码不符合密码策略并且存在 100,000 个帐户,那么 1000 个帐户将具有弱密码。

此外,与为所有用户强制执行策略相比,仅选择性地为一部分用户强制执行策略实际上需要更多的工作,因为应用程序需要特定的逻辑才能在某些情况下不强制执行策略。要求强密码策略并将其统一应用于所有帐户会更容易。

这不是一个好主意。

我还想引用这个问题:

我仍然觉得大多数人可能使用的密码是所需长度或仅超过限制的 1 或 2 个字符。

同意好吧,如果您将最小长度设置为 0,我实际上并不认为人们会创建一两个字符的密码,但是大多数不受限制的用户不会创建长密码。因此,攻击者现在只需要首先尝试使用最常见的短密码(例如“qwerty”和“dragon”)来利用这些人,并且比您完全执行限制更成功,因为当您说8个字符以下的密码比上面少几个数量级。

或者,可以继续攻击您仍然施加最小长度限制并逃跑的用户部分 - 在您的示例中 - 99%的“战利品”(参见@Dennis Jaheruddin的评论)。在密码安全方面,它都是数量级的,所以这并没有太大帮助——它被破解速度增加 1.01% (1/99) 所抵消。有趣的事实:摩尔说这在 8 天内完成。)