我应该允许2个字符的密码吗?

时间:2009-10-21 18:57:53

标签: php security passwords

这可能听起来像一个无聊的问题,但安全领域的人会得到它。我应该让用户输入任意数量的字符,只要它大于0个字符。我的逻辑是:

  1. 无论如何密码都将被加密和腌制,
  2. 对于做彩虹表的人来说,没有任何长度/其他指导方针更有趣,但是
  3. 我关心的是蛮力字典攻击。
  4. 我是否正确地走上正轨?

    由于我问的是下限问题,我不妨问一下上限?再次,它将被哈希和盐渍,因此数据库大小不是问题。那么在这种情况下我能想到的唯一问题是缓冲区比什么都重要,对吗?

    更新对于那些迟到的问题

    因此,普遍的共识似乎证实了我最初的想法,即蛮力增加的风险。然而,由于他们没有关于尺寸的线索这一事实,RT破解者的工作不会那么困难。实际上它可能更容易,因为无论如何它们都从较低的字符表开始。正确? (更不用说现在出现的非技术性问题,而不是考虑更长的密码等问题。)

    所以结论是:即使您对密码进行哈希/加密,短密码仍然存在风险

    但是对于长密码,我不确定我是否有确凿的答案?我应该担心缓冲区溢出,它毕竟仍然是一个常规输入字段。

10 个答案:

答案 0 :(得分:6)

它将使攻击者只有1296个选项来猜测特定的用户密码。

答案 1 :(得分:5)

没有。那太傻了。

如果你的密码是properly hashed and salted,彩虹表就不是问题了。

答案 2 :(得分:2)

即使将进行哈希处理,用户也会输入密码,并且2个字符很容易中断。

我认为对于一个高端,为什么有限制,但对于低端,6个字符似乎是合理的,我宁愿7是安全的最小值。

答案 3 :(得分:2)

安全要求应根据受保护的价值以及受到损害时可能发生的损害(或损害造成的责任)创建。

有时这些是由组织,客户或协议强制执行的,并且转向此类指导来源最终可以省去麻烦,并且在更安全的情况下,可能包括诸如使用RSA密钥卡,安全卡或手指之类的东西 - 打印读者。

当个人网站需要一些非常复杂的密码时,我个人非常恼火。我认为6个字符,包括一个符号/数字,对于诸如stackoverflow之类的站点是公平的要求。在我的银行账户上?我们只是说密码有点复杂。

但还有其他基本的安全问题:

  • 如果可以[非常]快速地应用测试,暴力和字典攻击实际上只能起作用。这就是现代UNIX系统使用影子密码文件的原因 - 它最大限度地减少了为暴力攻击收集密码的机会。虽然“锁定”可能很烦人,但它们实际上也可以防止简单的蛮力。
  • 社会工程:“我可以扮演你的角色吗?”你女朋友叫什么名字?您是否在输入时写下密码或公开密码? (有人看吗?)您使用的密码是否适用于不同的网站/目的?
  • 其他“功能”是否环绕安全?可以重置密码还是通过电子邮件发送当前密码?重置有什么限制?
  • 是否通过其他方式(HTTP与HTTPS或telnet与SSH,可访问的[纯文本]存储等)来破坏安全性。
  • 最大的烦恼:标准的安全问题。谷歌为“莎拉佩林电子邮件被黑客攻击”。请不要在没有仔细考虑的情况下走这条路。

答案 4 :(得分:1)

没有。理想情况下,包含数字和字符的8个字符的密码是好的。 14个或更多字符会更好。

答案 5 :(得分:1)

#3是关键:2-3个字符密码太容易受到字典攻击(组合太少,因此能够在攻击组合中包含宇宙)。

上限是无关紧要的,但是超过20个字符意味着用户可能会复制/粘贴最多,这是不应鼓励的不良做法。

答案 6 :(得分:1)

制作彩虹表的人可能会从所有1个字符长度的密码开始,然后很快找到短密码。

关于最大长度,你应该没有。

答案 7 :(得分:1)

让你的用户非常容易被陌生人瞥见他们的肩膀,不是吗?

然后,你是否将表单中的密码字符变黑并不重要 - 如果有人看到他们的密码中只有两个字符,那么他们很容易尝试组合直到他们认为它出来了。

答案 8 :(得分:1)

双字母密码的问题是社交工程。有人可能会观察用户只键入两个键,然后蛮力攻击变得现实(即使没有编写程序)。

如果你可以排除这种情况(因为没有人会注意到有人输入密码),我认为即使在字典攻击的情况下,两个字母的密码也没问题。执行此类攻击的人仍然需要尝试所有真实的组合,如果您不阻止将常规单词用作密码,则禁止使用双字母组合。

答案 9 :(得分:1)

让用户选择他们想要的任何密码。设置密码强度计,但不限制密码。这不是你的密码,而是他们的密码。