2017年8月,美国国家标准与技术研究院(NIST)发布了一份修订版的数字身份指南。在密密麻麻的技术规范中,有一行不起眼的文字:“验证者不应要求记忆型密码被随意更改(例如定期更改)。”
这条规定的背后,是安全社区持续十年的反思与修正。而更令人深思的是,这份指南的核心贡献者之一——Bill Burr——在受访时坦言:“我现在对我做的很多事情感到后悔。”
一个曾被视为金科玉律的安全实践,如何被证明是一场持续多年的误解?答案藏在计算机科学、人类行为学和密码学的交叉地带。
一切从一个"合理假设"开始
密码过期政策的逻辑起点看起来无懈可击。如果攻击者获取了你的密码,他能够访问你的账户的时间窗口就是密码的有效期。每90天更换一次密码,意味着攻击者最多只能访问三个月——这个逻辑在纸面上完美自洽。
这个想法可以追溯到大型机时代。1985年4月,美国国防部发布了CSC-STD-002-85《密码管理指南》(俗称"绿皮书"),将定期更换密码列为推荐做法。当时的安全社区普遍认为:在早期计算环境中,密码破解需要数月时间,定期更换密码确实能限制攻击窗口。
这个假设有一个关键前提:用户在每次更换密码时,都会创造一个全新的、与之前完全无关的密码。
2003年,时任NIST工程师的Bill Burr将这些最佳实践整理成NIST Special Publication 800-63。这份文档成为全球企业和政府机构制定密码政策的蓝本。“每90天更换密码”、“包含大小写字母、数字和特殊符号"等规则,从此深入人心。
问题在于,Burr编写这份指南时,几乎没有实证数据支撑。“我当时没有什么过硬的资料,“他在2017年接受《华尔街日报》采访时承认,“我只是把人们告诉我的东西写下来。”
UNC研究团队的数据炸弹
2010年,北卡罗来纳大学教堂山分校的三位研究人员做了一件从未有人做过的事:他们拿到了一个真实世界的密码数据集,量化测量密码过期政策的实际效果。
Yinqian Zhang、Fabian Monrose和Michael K. Reiter获得了超过7700个已注销账户的密码历史数据——每个账户包含4到15个按时间顺序排列的密码哈希。这些账户来自该大学的单点登录系统ONYEN,密码政策要求每三个月更换一次,且不能在过去一年内重复使用。
研究团队面临的核心问题是:如果攻击者知道某个账户的旧密码,他有多大概率猜出新密码?
答案是令人震惊的。
Transform算法:从旧密码到新密码
研究团队开发了一种"变换”(transform)算法框架。该算法基于一个简单观察:用户更换密码时,往往只对旧密码进行微小修改。
他们将变换分为几大类:
- 大小写变换:将某个字母大写或小写,如"password”→“passWord”
- 数字递增:将数字加一,如"dance#7”→“dance#8”
- 数字添加:在末尾添加序列,如"dance#7"→“dance#789”
- 特殊字符替换:将一个特殊字符换成另一个,如"tar!heel1"→“tar@heel1”
- 字符移动:移动某一部分的位置,如"$steve27"→"27$steve"
这套算法的攻击效率远超预期。对于离线攻击(攻击者获得密码哈希后可以无限次尝试),研究团队能够在平均不到3秒的时间内,破解约41%的新密码。
更关键的是在线攻击场景。在大多数系统中,连续输错密码几次后账户会被锁定。研究团队发现,仅使用5次在线猜测,就能破解约17%的账户。
历史行为的预测力
研究还发现了一个更深层的规律:用户过去如何变换密码,强烈预示着未来会如何变换。
在那些曾经使用过变换策略的账户中,研究团队的攻击成功率飙升至63%。这意味着,攻击者不需要盲目猜测——只要观察用户的历史密码变更模式,就能大幅提高破解概率。
这一发现彻底颠覆了密码过期政策的理论基础。政策假设每次密码更换都是"重新洗牌",但现实中,用户的密码变更更像是在同一副牌上做记号。
人性的困境:为什么我们无法创造"真正的新密码"
UNC的研究揭示了技术层面的问题,但更深层的原因在于人类记忆的本质局限性。
记忆的路径依赖
卡内基梅隆大学的Lorrie Faith Cranor是密码可用性研究的先驱。2018年,她的团队对密码过期政策进行了大规模用户调查。研究发现了用户应对密码过期的主要策略:
| 策略 | 比例 |
|---|---|
| 修改上一个密码(大写字母、递增数字等) | 67% |
| 创建全新密码 | 24% |
| 重用其他账户密码 | 10% |
值得注意的是,仅有24%的用户会创建一个全新的密码。而在这24%中,还有相当一部分选择了与旧密码存在某种关联的新密码。
Cranor将这种行为模式称为"变换规则"(transformation rules)。最常见的是数字递增——用户从"Summer2023"改成"Fall2023",或者从"P@ssword1"改成"P@ssword2"。
认知负荷与安全行为的权衡
研究显示,现代互联网用户平均需要管理超过100个密码。面对如此沉重的认知负担,用户自然会选择阻力最小的路径。
当系统要求每90天更换密码时,用户面临一个选择:要么创造一个全新且复杂的密码(然后可能忘记),要么对现有密码做最小改动(虽然不够安全,但至少能记住)。
大多数人的选择是可以预见的。更糟糕的是,频繁的密码更换还会导致其他不安全行为:将密码写在便利贴上、在多个账户间重复使用密码、选择过于简单的密码。
现代计算能力:另一个被忽视的变量
密码过期政策的另一个历史假设是:攻击者破解密码需要很长时间,定期更换可以跑赢破解速度。
这个假设在1970年代或许成立。但随着GPU计算能力的指数级增长,破解时间已经从"月"压缩到"秒"。
Hive Systems的密码破解时间表
网络安全公司Hive Systems每年发布一份密码破解时间表,展示现代硬件对密码的破解能力。2025年的数据显示:
使用12块RTX 5090显卡,针对bcrypt哈希(这是一种相对安全的密码存储方式):
- 8位纯数字密码:即时破解
- 8位大小写字母混合密码:约12分钟
- 8位包含数字和特殊字符的密码:约4小时
- 12位大小写字母混合密码:约700年
- 16位随机字符密码:数百万年以上
这些数据揭示了一个关键事实:密码强度取决于长度和随机性,而不是更换频率。一个强密码即使使用一年,也比一个每季度更换的弱密码更安全。
更重要的是,如果用户采用递增数字等可预测模式更换密码,攻击者根本不需要从零开始破解——他们只需要运行变换算法,几秒钟内就能找到新密码。
Bill Burr的反思与NIST的政策转向
2017年,Bill Burr在接受BBC采访时表达了对自己2003年工作的遗憾。
“我当时确实是在错误的方向上努力,“他说。他承认,那些看似合理的建议——要求用户定期更换密码、使用复杂的字符组合——在实践中产生了意料之外的负面效果。
“你越是要求人们频繁更换密码,他们选择的密码就越弱,“Burr坦言。
同年,NIST发布了SP 800-63B的修订版。这份文件明确指出:
“验证者不应要求记忆型密码被随意更改(例如定期更改)。然而,如果有证据表明密码已被泄露,验证者应强制更改。”
这标志着官方安全指南的重大转向:从"定期更换"到"按需更换”。
英国NCSC的立场
英国国家网络安全中心(NCSC)在2016年就发布了类似的指导原则。他们明确建议组织废除定期密码过期政策,理由包括:
- 用户倾向于选择旧密码的微小变体
- 被盗密码通常会被立即利用,而非长期潜伏
- 强制重置密码无法判断是否发生过泄露
- 如果攻击者已经获得账户访问权限,他很可能也能收到密码重置通知
- 如果密码是通过不安全存储泄露的,攻击者同样能找到新密码
NCSC建议采用替代措施:监控异常登录行为、实施多因素认证、在检测到可疑活动时要求更改密码。
为什么旧政策依然存在
尽管权威机构已经改变立场,定期密码过期政策在许多组织中仍然存在。这种滞后背后有几个原因。
合规惯性与标准冲突
许多行业标准和合规框架尚未更新。支付卡行业数据安全标准(PCI DSS)直到2025年版本仍要求"至少每90天更换密码”。这意味着,处理信用卡数据的企业如果取消定期更换,可能面临合规风险。
这种标准之间的矛盾造成了实际操作的困境:遵循最新安全研究可能违反合规要求;满足合规要求则可能牺牲实际安全性。
安全文化的滞后性
人们对安全的理解往往滞后于技术发展。许多IT管理者在职业生涯早期就被灌输"定期更换密码=安全"的观念,改变这种根深蒂固的认知需要时间。
此外,取消定期更换政策需要一个前提:组织必须有其他安全机制来检测和响应账户入侵。对于那些安全能力有限的组织,保留定期更换政策可能被视为"聊胜于无"的最后防线。
真正有效的替代方案
NIST和NCSC的指导原则并非简单地"不换密码”,而是转向更系统的安全策略:
多因素认证(MFA)
这是最有效的补充措施。即使密码被泄露,攻击者没有第二因素(手机、硬件密钥等)也无法登录。数据显示,MFA可以阻止99.9%的自动化账户攻击。
泄露密码检测
检查新密码是否出现在已知的泄露密码数据库中。NIST要求验证者将用户密码与包含数亿泄露密码的黑名单进行比对。
异常行为监控
监控登录时间、地点、设备等特征,在检测到异常时触发额外的验证或强制密码重置。
账户锁定机制
限制失败登录尝试次数,防止暴力破解。
安全的密码存储
使用强哈希算法(如bcrypt、Argon2)并设置足够高的工作因子,增加破解成本。
密码政策的未来
密码过期政策的兴衰,折射出安全领域一个更广泛的教训:任何安全措施都必须考虑人的因素。
理论上完美的机制,一旦投入真实世界,就会被用户的应对策略所削弱。密码过期政策的初衷是限制攻击窗口,但用户为了应对频繁更换的认知负担,选择了可预测的变换策略——这反而降低了整体安全性。
从更宏观的角度看,密码作为一种认证方式本身就存在根本局限。它依赖用户记忆,而人类记忆是有限的、不精确的、容易被模式化的。这就是为什么安全社区越来越倾向于推动无密码认证——生物特征、硬件密钥、设备绑定认证等方案。
但在密码退出历史舞台之前,理解它的正确使用方式仍然重要。一个强密码,配合多因素认证,只有在怀疑泄露时才需要更换——这比每季度强制更换十个弱密码要安全得多。
Bill Burr的反思值得每一位安全从业者铭记:好的安全建议必须建立在实证数据之上,而非想当然的假设。当现实与理论不符时,应该改变的是理论,而不是指责用户"不遵守规则”。
参考资料
-
Grassi, P. A., et al. (2017). NIST Special Publication 800-63B: Digital Identity Guidelines - Authentication and Lifecycle Management. National Institute of Standards and Technology.
-
Zhang, Y., Monrose, F., & Reiter, M. K. (2010). The Security of Modern Password Expiration: An Algorithmic Framework and Empirical Analysis. CCS ‘10: Proceedings of the 17th ACM Conference on Computer and Communications Security.
-
Habib, H., et al. (2018). User Behaviors and Attitudes Under Password Expiration Policies. Fourteenth Symposium on Usable Privacy and Security (SOUPS 2018).
-
Cranor, L. F. (2016). Time to rethink mandatory password changes. Federal Trade Commission.
-
National Cyber Security Centre. (2016). Password administration for system owners. UK Government.
-
Hive Systems. (2025). The 2025 Hive Systems Password Table.
-
BBC News. (2017). Password guru regrets past advice.
-
Chiasson, S., & van Oorschot, P. C. (2015). Quantifying the Security Advantage of Password Expiration Policies. Designs, Codes and Cryptography, 77(2-3), 401-408.
-
PCI Security Standards Council. (2022). PCI DSS v4.0.
-
Department of Defense. (1985). DoD Password Management Guideline. CSC-STD-002-85.