我检查了几个密码策略,这些策略确定密码中不允许出现 2 个或更多重复字符,例如:“xxxxx5”。但是该策略对我来说没有意义,因为密码空间减少了,(我知道 xxxxx5 是一个极端不安全的密码,但是确实有很好的密码使用重复字符并增加密码熵),我认为这种的密码更容易使用暴力攻击破解(需要检查的密码更少)。
我错过了什么吗?
我不是安全专家,所以...
有人可以解释一下这个政策是对还是错吗?
谢谢
为了便于计算,我们假设我们只允许使用字母数字密码。所以我们有 26 + 26 + 10 个字符可供选择。
如果我们还假设密码的最大长度为 8 个字符,我们的密码空间为 62 ^ 8。
此外,每个密码只能使用一个由 5 个重复字符组成的字符串,这意味着我们将密码空间减少了 62 个,从而使我们有 (62 ^ 8) - 62 个密码可能性。与防止某人输入极弱密码所增加的安全性相比,减少的空间量完全是微不足道的。
我同意这个政策除了作为“避免字典单词和其他琐碎密码”的一部分之外没有太大意义(但这是一个有效的政策)。
虽然排除这些确实会减少密码空间的大小,但黑客确实会使用单词列表,并且首先尝试该列表中的单词,因此传统上,您会想要禁止这些单词。但是,我不确定这仍然有多重要。对我来说,使您的密码尽可能长似乎更重要,并且输入额外的重复字符应该比相同但更短的密码更可取,并且删除了此填充。
无论您怎么看,同时“简单”和简短的密码显然都是不好的。所以排除“xxxxx5”是一个好策略,但“hys99h23sblahblahblahblahblahblahblah”可能是一个好密码。
禁止使用恰好包含重复字符(如)的良好jjjbtieooygn
密码确实会略微降低安全性,因为它会略微减少搜索空间(假设攻击者知道规则)。
但这种限制的重点是禁止使用非常糟糕的密码,例如jjjkkklllmmm
.
一个理想的解决方案是拒绝容易破解的密码——但判断密码是否容易破解是一个非常困难的问题。如果可以信任用户使用好的密码,那将不是问题,但根据本文,三个最流行的密码是password
、123456
和12345678
。
与碰巧从高质量随机数生成器获得的人相比,拒绝xxxxx5
更有可能抓住试图使用非常糟糕的密码的人。xxxxx5