
我遵循了多年的密码建议,后来发现制定这些规则的人自己后悔了
Diebug你可能一直遵循着一套”有问题”的密码规则
你是否曾经被逼着把密码从 Password!7 改成 Password!8,然后大家都假装这是一个有效的安全改进?
如果是这样,你并不孤单。事实上,你可能一直遵循着一套实际上适得其反的密码规则。
密码正统主义的起源
Bill Burr和NIST 800-63
大多数密码规则的根源可以追溯到2000年代初NIST(美国国家标准与技术研究院)开始开发的一份指南。Bill Burr,当时在NIST担任经理,帮助制定了一份附录,这份附录最终影响了全球的密码政策。
关键时间线:
- 2003年:Burr开始撰写指南
- 2004年6月:NIST正式发布Special Publication 800-63
- 文件总页数:87页,其中附录D专门讨论密码指南(8页)
原始建议的内容
2004年的NIST指南建议:
- 密码长度至少8个字符
- 必须包含大写字母
- 必须包含数字
- 必须包含特殊字符
- 密码必须定期更换(每90天)
- 密码不能包含用户名
- 密码不能是常见的密码
这些建议听起来合理,对吧?但它们基于的假设现在已经过时了。
为什么这些规则出了问题?
Burr自己的后悔声明
多年后,Bill Burr承认这些建议并没有像预期那样发挥作用。他在一次演讲中坦承:
“我对密码轮换的建议后悔了。我们没有数据支持这种做法,而且我们有证据表明它实际上会使密码更弱。”
人类行为的现实
NIST的原始文档其实已经注意到了一些会导致规则失效的人类行为模式,但这些洞察没有被充分重视:
观察到的问题:
- 用户倾向于在密码末尾添加数字或特殊字符
- 定期更换密码时,用户只是简单地在旧密码上加1
- 复杂的规则导致用户在便签上写密码
- 多重复杂度要求导致用户创建更易猜测的模式
实际结果:
Password1→Password2→Password3…Summer2023!→Summer2024!→Summer2025!- 密码变得可预测而不是更安全
现代密码安全研究的发现
密码长度比复杂度更重要
现代研究一致表明,密码长度是安全性的主要决定因素,而不是复杂度。
计算安全性:
- 8位纯小写字母密码:约208亿种组合
- 12位纯小写字母密码:约8.9万亿种组合
- 8位混合复杂密码:约3.5万亿种组合
关键洞察:
一个12位的纯小写字母密码比一个8位的混合复杂密码更安全,而且更容易记忆。
密码轮换的害处
定期强制更换密码已被证明有害:
- 用户创建更容易猜测的变体
- 用户在多个系统上使用相同的基础密码
- 增加支持成本(密码重置请求)
- 没有显著的安全收益
常见密码的巨大问题
根据Have I Been Pwned等数据库的数据:
- 前10个最常见密码被使用超过1000万次
- 前100个最常见密码被使用超过5000万次
- 定期更换密码的用户仍然倾向于使用常见模式
NIST的新指南(2017年及以后)
认识到这些问题后,NIST在2017年发布了SP 800-63B,大幅简化了密码建议:
新的核心建议
应该做的:
- 允许长密码(至少8位,推荐12位以上)
- 允许所有字符,包括空格
- 检查密码是否出现在已知泄露的密码列表中
- 允许用户复制粘贴密码
- 提供密码强度指示器
不应该做的:
- 强制复杂度要求(大写、数字、特殊字符)
- 强制定期更换密码
- 禁止曾经使用过的密码(除非在黑名单中)
- 要求特殊的字符规则
- 限制密码长度
为什么这些改变很重要?
新的指南基于实际数据和用户行为研究,而不是理论假设。它们承认:
- 用户是密码安全系统中最薄弱的环节
- 可用性比理论安全性更重要
- 简单但长的密码比复杂但短的密码更安全
practical_password_security(实用密码安全指南)
基于最新的研究和NIST的指南,以下是你应该采取的实际行动:
个人密码管理
创建强密码:
- 使用至少12-16个字符
- 使用 passphrase(短语密码):
Correct-Horse-Battery-Staple - 避免个人信息(生日、名字、宠物名)
- 不要使用常见单词的简单变体
密码管理器:
- 使用密码管理器(如Bitwarden、1Password、KeePass)
- 为每个账户生成唯一的随机密码
- 只需记住一个主密码
- 定期备份密码库
避免的错误:
- 不要在多个网站使用相同密码
- 不要在生产环境和个人账户之间共享密码
- 不要在便签或明文文件中存储密码
- 不要通过电子邮件发送密码
企业安全策略
密码策略建议:
- 最小长度8位,推荐12位以上
- 检查新密码是否在泄露列表中
- 不强制定期更换密码
- 提供密码强度反馈
- 支持多因素认证
额外安全措施:
- 实施多因素认证(MFA)
- 监控异常登录活动
- 教育员工密码安全知识
- 定期审计密码策略效果
多因素认证:超越密码
即使有了好的密码策略,单靠密码仍然不够安全。多因素认证提供了额外的保护层:
MFA的类型
你知道什么:
- 密码、PIN码
- 安全问题答案
你拥有什么:
- 手机(短信验证码、认证器应用)
- 硬件密钥(YubiKey)
- 智能卡
你是什么:
- 指纹、面部识别
- 声音识别
- 虹膜扫描
推荐的MFA组合
最佳实践:
- 密码 + 认证器应用(如Authy、Google Authenticator)
- 密码 + 硬件密钥(如YubiKey)
- 密码 + 生物识别
避免的做法:
- 仅使用短信验证码(可以被SIM卡切换攻击)
- 安全问题作为第二因素(答案往往是公开信息)
- 仅依赖密码(单一因素不够安全)
常见密码安全误解
误解一:”复杂密码更安全”
真相:长度比复杂度更重要。一个16位的纯小写字母密码比一个8位的混合复杂密码更安全。
误解二:”定期更换密码更安全”
真相:除非有证据表明密码已泄露,否则定期更换密码可能导致用户创建更弱的密码变体。
误解三:”所有字符都必须使用”
真相:强制使用所有字符类型可能导致用户创建可预测的模式(如首字母大写+末尾数字)。
误解四:”密码越短越安全”
真相:密码越长,暴力破解所需时间越长。12位密码的破解时间是8位密码的数千万倍。
未来趋势
无密码认证
越来越多的服务提供商正在转向无密码认证:
- FIDO2/WebAuthn标准
- Passkey(通行证密钥)
- 生物识别认证
- 基于设备的认证
密码学的进步
- 后量子密码学准备
- 更好的哈希算法(Argon2、bcrypt)
- 抗GPU破解的参数调整
用户行为的改变
- 密码管理器的普及
- MFA的广泛采用
- 对密码安全的更高意识
总结
Bill Burr的后悔故事告诉我们:即使是权威机构制定的最佳实践,也可能随着时间推移和新证据的出现而需要修正。
关键教训:
- 遵循基于证据的建议,而不是教条
- 优先使用长密码而不是复杂密码
- 使用密码管理器管理你的密码
- 实施多因素认证作为额外保护层
- 定期检查你的密码是否出现在已知泄露列表中
下次当你被逼着把 Password!7 改成 Password!8 时,记得这其实是制定这些规则的人也会后悔的做法。真正的安全来自于长度、唯一性和多因素认证,而不是机械地遵循过时的复杂度要求。
来源:MakeUseOf
