为什么允许密码中的重复字符不安全?

时间:2012-11-07 01:09:09

标签: passwords character policy

我检查了几个密码策略,确定密码中不允许使用2个或更多重复字符,例如:“xxxxx5”。但是这个策略对我来说没有意义,因为密码空间减少了(xxxxx5是一个我知道的极端不安全的密码,但是有很好的密码使用重复的字符并增加密码熵)我认为这种使用暴力攻击更容易破解密码(需要检查的密码更少)。

我错过了什么吗?

我不是安全专家所以......

如果这项政策是对还是错,有人可以解释一下吗?

由于

3 个答案:

答案 0 :(得分:1)

为了便于计算,我们假设我们只允许使用字母数字密码。所以我们有26 + 26 + 10个字符可供选择。

如果我们还假设密码的最大长度为8个字符,则密码空间为62 ^ 8。

每个密码也只能使用一个包含5个重复字符的字符串,这意味着我们将密码空间减少了62,这使得我们可以使用(62 ^ 8) - 62个密码。与防止某人输入极弱密码的额外安全性相比,减少的空间量是微不足道的。

答案 1 :(得分:1)

我同意这个政策在“避免字典词和其他琐碎的密码”之后没有多大意义(但这是一个有效的政策)。

虽然排除那些确实减少了密码空间的大小,黑客确实使用单词列表,并且首先尝试该列表上的单词,所以传统上,你想要禁止那些。但是,我不确定这仍然有多重要。对我来说,尽可能长时间地设置密码对我来说更重要,并且抛出额外的重复字符应该优于相同的,但是删除此填充的密码更短。

无论你怎么看它,“简单”和同时短的密码显然都很糟糕。所以排除“xxxxx5”是一个很好的政策,但“hys99h23sblahblahblahblahblahblahblah”可能是一个很好的密码。

答案 2 :(得分:1)

禁用碰巧有重复字符的好的密码,例如jjjbtieooygn,会略微降低安全性,因为它会略微缩小搜索空间(假设攻击者知道规则)。< / p>

但是这种限制的关键是禁止使用jjjkkklllmmm等非常差的密码。

理想的解决方案是拒绝容易破损的密码 - 但判断密码是否容易被破坏是一个非常难的问题。如果可以信任用户使用正确的密码,则不会出现问题,但根据this article,三个最常用的密码是password123456和{{1} }。

拒绝12345678 更有可能抓住某人试图使用非常糟糕的密码,而不是给碰巧从高质量随机数中获取xxxxx5的人带来不便发生器。