"必须包含大写、小写、数字和符号"背后的真相
每次创建新账号时都会被告知:"密码必须至少 8 个字符,包含大写字母、小写字母、数字和符号。"很烦人对吧?但这条规则有着令人惊讶的历史,以及一个令人震惊的事实:它实际上并不太有效。
一切的起源 - 2003 年的 NIST 文件
密码复杂性规则的起源可以追溯到美国国家标准与技术研究院 (NIST) 于 2003 年发布的"NIST Special Publication 800-63"。该文件建议"密码应混合使用大写字母、小写字母、数字和符号",全球的 Web 服务纷纷采用了这条规则。
然而在 2017 年,该文件的作者 Bill Burr 在《华尔街日报》的采访中坦言"那些建议大部分是错误的"。复杂性规则只是导致用户创建像"P@ssw0rd!"这样可预测的模式,对实际安全性的提升贡献甚微。
为什么复杂密码没有想象中那么有效
人类对复杂性规则的反应出奇地可预测。
- 需要大写字母?只把第一个字母大写(Password)
- 需要数字?在末尾加 1 或 123(Password1)
- 需要符号?在末尾加 !(Password1!)
- 把"a"替换成"@","o"替换成"0"(P@ssw0rd)
攻击者非常清楚这些模式,并将它们包含在字典攻击列表中。换句话说,即使密码看起来很复杂,如果模式可预测,也很容易被破解。
什么才是真正强大的密码
2017 年修订的 NIST 指南将重点从复杂性规则转向了"长度"优先。
- 长密码(密码短语):由 4-5 个随机单词组合而成的密码短语,如"correct horse battery staple",比短而复杂的密码更强且更容易记忆
- 密码管理器:为每个服务生成和管理唯一随机密码的工具。最安全的方式
- 双因素认证 (2FA):在密码之外使用认证器应用或安全密钥。即使密码泄露也能防止未授权登录
一个 8 字符的随机密码(包含大写、小写、数字和符号)大约有 6 千万亿种可能的组合。而由 4 个常见英语单词组成的密码短语大约有 1.8 千万亿种组合。长度比复杂性更有效。
全球最常用的密码
根据安全公司 NordPass 的研究,最常用密码的前 5 名年年几乎不变。
- 第 1 名:123456
- 第 2 名:password
- 第 3 名:123456789
- 第 4 名:12345
- 第 5 名:12345678
这些密码可以在不到一秒内被破解。即使密码以哈希形式存储,如此简单的密码也会使保护形同虚设。
总结
密码复杂性规则源自 2003 年的 NIST 文件,但作者本人承认它们是"错误的"。长密码短语比短而复杂的密码更强且更容易记忆。结合密码管理器和双因素认证,安全性会更上一层楼。