"必须包含大写、小写、数字和符号"背后的真相

每次创建新账号时都会被告知:"密码必须至少 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 文件,但作者本人承认它们是"错误的"。长密码短语比短而复杂的密码更强且更容易记忆。结合密码管理器和双因素认证,安全性会更上一层楼。

本文相关术语

双因素认证 不仅依赖密码的认证方式。密码泄露时的最后防线。 加密 密码在服务器上使用哈希(单向加密)存储。 钓鱼 无论密码多强,在钓鱼网站上输入就意味着被盗。