跳转到主要内容

密码的文化史 - 从古代口令到生物识别,认证 3000 年的进化

本文约需 12 分钟阅读

密码并非现代发明。使用秘密词语验证身份的做法可以追溯到 3000 多年前,从罗马军事口令到中世纪城门,从 1961 年 MIT 诞生的世界首个计算机密码到今天的通行密钥生物识别认证。了解这段历史会发现一个反复出现的规律:每种认证方式最终都会被攻破,从而推动下一代认证技术的诞生。本文追溯三千年来认证技术的文化与技术演变,并探讨我们是否终于接近无密码的未来。

古代认证 - 军事密码与口令

罗马军队的 tessera 与夜间巡逻

最早的认证记录出现在公元前 2 世纪希腊历史学家波利比乌斯的著作中。波利比乌斯在《历史》第 6 卷中详细描述了罗马军队夜间巡逻中口令 (tessera) 的运作方式。正如我们在密码的起源与历史一文中也提到的,每天傍晚,军团长在木板 (tessera) 上刻下口令,通过各百夫长传达给所有部队。夜间巡逻时,巡逻兵在每个哨所要求口令,无法正确回答者被视为敌人。

这个系统具有与现代密码管理相通的重要特征。第一,口令每晚更换,这是现代密码轮换的原型。第二,口令通过物理令牌(木板)分发,将"你知道的"和"你拥有的"结合起来,是原始的多因素认证。第三,口令的传递路径被严格管理。从百夫长到士兵的单向传递,预见了现代密钥分发问题。

中世纪欧洲的城门与秘密结社

从"芝麻开门"到共济会

"一千零一夜"中的"芝麻开门"可能是世界上最著名的密码。阿里巴巴用口令打开盗贼洞穴的故事起源于约 8 世纪的阿拉伯语手稿。有趣的是,这个故事揭示了密码的根本脆弱性。阿里巴巴的哥哥卡西姆忘记了口令,被困在洞穴中丧命。一个 1000 多年前的故事已经展示了仅依赖"你知道的东西"进行认证的危险。

在中世纪欧洲,城门口令是军事和政治安全的核心。夜间通过城门需要向守门人说出正确的口令。但仅靠口令有时不够,行会和秘密结社发展出更复杂的认证方式。共济会使用多层认证,将秘密词语与特定握手、身体姿势和固定的问答模式相结合。这是中世纪版的多因素认证,将"你知道的"(口令)与"你能做的"(正确的握手)结合起来。

计算机黎明期 - 世界首个计算机密码

1961 年 MIT CTSS 与 Fernando Corbató

世界首个计算机密码于 1961 年在 MIT 的兼容分时系统 (CTSS) 上引入。开发者 Fernando Corbató 设计密码作为在多用户共享一台计算机的环境中保护各用户文件的手段。当时的计算机是价值数百万美元的巨型设备,研究人员按时间段共享使用。密码为每个用户分配 4 小时的使用时段,防止访问他人的文件。

然而,世界首个密码系统在引入仅一年后就经历了第一次安全事件。1962 年,CTSS 的软件漏洞导致密码文件内容作为欢迎消息显示给所有用户。这是有记录以来的第一次密码泄露事件。此外,研究员 Allan Scherr 向系统提交了打印密码文件的请求,获取了其他用户的密码来增加自己的使用时间。密码的历史几乎从诞生之初就是一部"被破解的历史"。

密码存储方法也在不断进化。早期系统以明文(原始文本)存储密码,但 1976 年 Robert Morris 和 Ken Thompson 为 UNIX 开发了 crypt() 函数,开启了基于哈希的密码存储。crypt() 是基于 DES 加密的单向函数,从密码生成固定长度的字符串,但无法从该字符串恢复原始密码。这种"不可逆转换"的概念成为现代密码存储的基础。UNIX 的 /etc/passwd 文件成为存储哈希密码的第一个标准机制。

密码大规模泄露时代

从 RockYou 到 Collection #1

2009 年的 RockYou 事件成为密码安全的转折点。社交应用公司 RockYou 被黑客攻击,3200 万个密码以明文形式泄露 - 甚至没有进行哈希处理。泄露数据分析显示,最常用的密码是"123456",暴露了用户密码选择的脆弱性。仅前 10 个密码就占所有密码的 4.7%。

2012 年 LinkedIn 遭到攻击,1.17 亿个密码泄露。LinkedIn 使用 SHA-1 对密码进行了哈希处理,但没有使用盐值(随机附加数据),导致彩虹表攻击在短时间内破解了大量密码。这一事件向业界证明,仅靠简单哈希是不够的,盐值和迭代处理(bcrypt、Argon2 等)是必不可少的。

2019 年发现的 Collection #1 是历史上最大规模的密码泄露数据库。安全研究员 Troy Hunt 发现的这个数据集包含 7.73 亿个电子邮件地址和 2100 万个唯一密码。Collection #1 不是单一事件,而是过去数年多次泄露事件的汇总数据。这一发现让世界直面一个现实:一旦泄露的密码会在暗网上永久流通。这些事件的详情也在我们的著名密码泄露事件史中有详细介绍。经历这些事件后,密码重复使用的致命性和密码管理器的必要性得到了广泛认识。

通行密钥与生物识别认证的未来

无密码世界能否实现?

基于 FIDO Alliance 制定的 FIDO2/WebAuthn 标准的通行密钥正在作为密码的替代方案迅速普及。正如我们在通行密钥与无密码认证一文中详细介绍的,通行密钥使用公钥加密:私钥存储在用户设备上,服务器只保存公钥。这意味着即使服务器被入侵,私钥也不会泄露。2023 年 Apple、Google 和 Microsoft 三家公司全面支持通行密钥,到 2024 年底,95% 以上的主流浏览器支持 WebAuthn。根据 FIDO Alliance 2024 年报告,采用通行密钥的企业钓鱼攻击减少了 99.9%。

然而,无密码世界的实现仍面临挑战。生物识别认证虽然方便,但指纹和虹膜存在根本问题:一旦泄露就无法更改。2015 年美国人事管理局 (OPM) 被黑客攻击时,560 万人的指纹数据被盗。密码可以更改,但指纹终生无法更改。此外,通行密钥与设备绑定,设备丢失或故障时的恢复是个难题。归根结底,最稳健的认证是将"你知道的"(密码)、"你拥有的"(设备)和"你本身"(生物信息)三要素通过多因素认证结合起来。3000 年的历史告诉我们的是,依赖单一认证方式的危险性。

现在就能做的事

  1. 立即在支持通行密钥的服务(Google、Apple、Microsoft、GitHub 等)上设置通行密钥
  2. 对于不支持通行密钥的服务,使用 Passtsuku.com 生成的强密码配合密码管理器
  3. 在所有重要账户上启用多因素认证,构建"你知道的"和"你拥有的"双层防御
  4. 在 Have I Been Pwned (haveibeenpwned.com) 上检查您的电子邮件地址是否包含在过去的泄露中

对密码学和认证历史感兴趣的读者,密码与安全历史书籍 (Amazon)提供了关于人类数千年来如何应对身份验证挑战的精彩见解。

常见问题

世界首个计算机密码是何时何地诞生的?
1961 年由 Fernando Corbató 在 MIT 的兼容分时系统 (CTSS) 上引入。它是为了在多用户共享一台计算机的环境中保护各用户文件而设计的。次年 1962 年就因软件漏洞发生了第一次密码泄露事件。
有了通行密钥,密码就完全不需要了吗?
目前完全替代还很困难。许多服务仍不支持通行密钥,设备丢失时的恢复需要密码或恢复代码。目前现实的做法是在支持的服务上使用通行密钥,在不支持的服务上用密码管理器管理强密码。
生物识别认证安全吗?指纹泄露了怎么办?
生物识别认证虽然非常方便,但存在泄露后无法更改的根本风险。2015 年美国 OPM 黑客事件导致 560 万人的指纹数据被盗。生物识别不应单独使用,而应作为多因素认证的一个要素,与密码或设备认证结合使用。

这篇文章对您有帮助吗?

相关术语

XHatena