【发布时间】:2009-01-19 12:45:48
【问题描述】:
我曾多次被要求为我正在开发的软件实施密码选择规则。典型的建议包括:
- 密码长度必须至少为 N 个字符;
- 密码必须包含小写、大写和数字;
- 不得重复使用最后 M 天的密码(或在 P 天内使用的密码)。
等等。
尽管对密码设置任何限制总是让我感到困扰 - 通过限制可用密码,您可以减少所有允许密码的空间大小。这不是让密码更容易猜到吗?
同样,通过让用户创建复杂且频繁更改的密码,写下密码的欲望增加,同时也降低了安全性。
是否有量化证据表明密码限制规则使系统更安全?
如果有,可以使用哪些“最安全”的密码限制策略?
编辑 Ólafur Waage 友好地指出了一个 Coding Horror article on dictionary attacks,其中包含很多有用的分析,但令我震惊的是,字典攻击可以通过简单地添加(正如 Jeff 建议的那样)大大减少身份验证尝试失败后的延迟。
考虑到这一点,有什么证据表明强制复杂密码更安全?
【问题讨论】: