【问题标题】:Why allow repetitive characters in a password is unsafe? [closed]为什么在密码中允许重复字符是不安全的? [关闭]
【发布时间】:2012-10-27 01:06:00
【问题描述】:

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

我错过了什么吗?

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

谁能解释一下这个政策是对还是错?

谢谢

【问题讨论】:

  • 必填链接:correct horse battery staple - 密码应该没有这种历史过时的废话
  • 感谢分享此链接,如您所见,虽然 correct.horse.battery.staple 是一个很好的密码,但所描述的策略不允许它作为有效密码! (因为 tt 和 rr)
  • re:user166390,我认为“correcthorsebatterystaple”不会成为一个好的密码,易于字典攻击?

标签: passwords character policy


【解决方案1】:

禁止使用恰好有重复字符的密码,例如jjjbtieooygn,确实会略微降低安全性,因为它会略微减少搜索空间(假设攻击者知道规则)。

但此类限制的重点是禁止使用非常糟糕的密码,例如 jjjkkklllmmm

一个理想的解决方案是拒绝容易破解的密码——但判断密码是否容易破解是一个非常困难的问题。如果可以信任用户使用好的密码,这不是问题,但根据this article,三个最流行的密码是password12345612345678

拒绝xxxxx5更有可能发现有人试图使用非常糟糕的密码,而不是给碰巧从高质量随机数生成器获得xxxxx5 的人带来不便。 p>

【讨论】:

  • 好的,所以基本上这种策略是尽量防止用户选择wordlist密码,以减少密码空间为代价,虽然这不是最好的解决方案,但它是一个“实用”的解决方案,因为使用单词表(不使用单词表)确定密码是否可破解是一个难题,不是吗?谢谢您的回复。
【解决方案2】:

我同意这个政策除了作为“避免字典单词和其他琐碎密码”的一部分之外没有太大意义(但这是一个有效的政策)。

虽然排除这些确实会减少密码空间的大小,但黑客确实会使用单词列表,并且首先尝试该列表中的单词,因此传统上,您会想要禁止这些单词。但是,我不确定这仍然有多重要。对我来说,使您的密码尽可能长似乎更重要,并且输入 extra 重复字符应该比相同但更短的密码更可取,并且删除了此填充。

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

【讨论】:

  • “抛出额外的重复字符”看起来是个好主意,如果在抛出后计算结果字符串是否具有最小长度
  • 您应该在没有填充字符的情况下达到最小长度。 “xxxxx5”不好。
【解决方案3】:

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

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

每个密码也只能使用一个由 5 个重复字符组成的字符串,这意味着我们将密码空间减少了 62 个,剩下 (62 ^ 8) - 62 个密码可能性。与防止某人输入极弱密码所增加的安全性相比,减少的空间量完全是微不足道的。

【讨论】:

  • 一个更有害的策略可能是最大长度为 8 个字符。使密码更长应该有助于抵御暴力攻击。一个简单的方法是用简单的模式(例如重复)填充您的 8 个字符的密码。一个合适的 30 个字母的随机密码会更好,但由于这些很难管理,用一些简单的模式将一个好的 8 个字母的密码炸成 30 个字母是一个很大的改进。
  • @Thilo - 同意。我只是在挑选数字作为演示。
  • 我没有挑剔你。我很高兴你提出了最大长度,因为这在许多系统中都被强制执行,而且它会适得其反,可能会撤销其他密码策略提供的任何好的。也无法理解其中的原因,因为如果您存储散列,则长度对于服务器端存储根本无关紧要。悲伤但真实的故事:我的银行最近更新了他们的网上银行系统,并强迫我将密码更改为较短的密码。
  • 感谢您的回复,但我之前描述的策略是关于任何连续重复字符(2 个或更多)而不仅仅是 5 个,在这种情况下密码空间会减少更多。我知道 "xxxxx5" 示例是一个极端不安全的密码,但例如 this.. "jj4ooo" 是一个很好的密码,该策略不允许
猜你喜欢
  • 2014-03-26
  • 2013-03-15
  • 1970-01-01
  • 2012-02-16
  • 2021-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多