密码的起源 - 从古罗马口令到生物识别认证
本文约需 13 分钟阅读
密码并非现代发明。从罗马士兵在黑暗中低语口令,到 MIT 研究人员创建第一个计算机登录系统,"用秘密证明身份"的概念已有 3000 多年历史。本文追溯密码令人惊叹的有趣历史,从古代战场到可能最终让密码退出历史舞台的通行密钥革命。
结论 - 密码在经历 3000 年历史后即将消失
从古罗马口令开始的密码历史,随着计算机的出现而爆发式增长,如今正通过通行密钥和生物识别认证走向终结。但 3000 年来有一个本质从未改变:需要证明你就是你所声称的那个人。方式从口头暗语演变为哈希密码再到生物特征,但认证这个概念本身一直与人类文明同行。
古罗马军队的"口令" - 密码的起源
密码的历史可以追溯到公元前的罗马军队。根据历史学家波利比乌斯的记载,罗马士兵使用"口令"(watchword) 在夜间值守时区分敌友。口令写在木板上,在日落前分发给各部队。夜间接近营地的人会被要求说出口令 - 答不上来就会被视为敌人。
有趣的是,这个系统已经面临着与现代安全相同的挑战。如果口令泄露给敌人怎么办?罗马人通过每天更换口令来应对 - 这是现代"定期更换密码"策略的原型。不过,现代安全研究表明,强密码比频繁更换更重要。
"芝麻开门" - 文学史上最古老的密码
"阿里巴巴与四十大盗"中的"芝麻开门"(Open Sesame) 可能是文学作品中最著名的密码。盗贼们用它打开洞穴大门,阿里巴巴偷听到后获得了宝藏。这个故事收录在约 8 世纪的《一千零一夜》中,表明密码概念至少在 1200 多年前就已成为故事的主题。
从安全角度来看,"芝麻开门"的故事精彩地揭示了密码的根本弱点。由于认证仅凭"知道"密码就能通过,被偷听就意味着结束。这与现代键盘记录器和钓鱼攻击窃取密码的情况完全相同。
禁酒令时代的地下酒吧 - 暗语文化
在 1920 年代美国禁酒令时期,非法提供酒水的"地下酒吧"(speakeasy) 需要暗语才能进入。你必须对着门上小窗后面的保镖说出正确的暗语才能进去。暗语经常更换,只在常客之间口口相传。
用现代安全术语来说,这是通过"共享密钥"(shared secret) 进行的认证。只有知道暗语的人才能进入,但口口相传导致泄露风险高的弱点与现代相同。顺便说一下,"speakeasy" 这个名字本身来源于 "speak easy"(轻声说),提醒人们不要大声说出暗语。
1961 年 MIT 的 CTSS - 世界上第一个计算机密码
计算机密码的历史始于 1961 年 MIT(麻省理工学院)的兼容分时系统 (CTSS)。CTSS 允许多个用户共享一台计算机,为了防止用户看到彼此的文件而引入了密码。开发者 Fernando Corbató 后来回忆说"密码是一个原始的解决方案"。
令人惊讶的是,世界上第一次密码泄露事件就发生在 CTSS 的第二年,1962 年。一位研究人员发现了一个可以打印密码文件的命令,所有用户的密码以明文形式被打印出来。密码发明仅一年后,第一起安全事件就发生了。这一事件首次向世界证明了以明文存储密码的危险性。
1970 年代 Unix 的 crypt() - 密码哈希的诞生
CTSS 事件清楚地表明,以明文存储密码是危险的。1970 年代,Unix 开发者 Robert Morris Sr. 引入了 crypt() 函数,在存储密码前对其进行哈希处理。系统不再保存密码本身,而是保存其数学变换结果。用户登录时,输入的密码被哈希后与存储的哈希值比较。即使攻击者获得了密码文件,也无法直接读取密码。Morris 还引入了盐值的概念 - 在哈希前为每个密码添加随机数据,防止相同的密码产生相同的哈希值。这两项创新 - 哈希和加盐 - 至今仍是密码安全的基础。关于现代系统如何保护密码,请参阅加密基础知识。
2000 年代 - 多因素认证的普及
随着互联网的普及,密码泄露事件急剧增加,"仅靠密码不够"的认识逐渐深入人心。进入 2000 年代,多因素认证(MFA) 开始普及。通过将密码(知识因素)与短信验证码(持有因素)或指纹(生物因素)相结合,安全性得到了大幅提升。
Google 在 2011 年推出两步验证,Apple 在 2013 年将 Touch ID 搭载到 iPhone 上,使多因素认证走进了普通用户的生活。详情请参阅两步验证详解。
2020 年代的通行密钥革命 - 密码消失的未来
2020 年代正在见证认证历史上最戏剧性的转变:通行密钥 (passkey)。由 FIDO 联盟开发,得到 Apple、Google 和 Microsoft 的支持,通行密钥使用公钥密码学完全消除密码。你不需要输入密码,而是用设备的生物识别(指纹或面部识别)进行认证,密码学密钥对处理其余部分。通行密钥无法被钓鱼、无法跨站重用、也不会在数据库泄露中暴露。要深入了解这一转变,请参阅通行密钥指南和生物识别认证的风险。
想更深入了解认证历史的读者,密码学历史相关书籍 (Amazon)也是不错的参考。
常见问题
- 世界上第一个计算机密码是什么时候创建的?
- 1961 年,在 MIT 的兼容分时系统 (CTSS) 中引入。它是为了在多个用户共享一台计算机时保护各用户的文件而创建的。世界上第一次密码泄露事件在第二年 1962 年就发生了。
- 什么是通行密钥?它与密码有什么不同?
- 通行密钥是 FIDO 联盟开发的下一代认证方式,使用公钥密码学。与密码不同,你不需要记住或输入任何东西 - 通过设备的生物识别(指纹或面部)进行认证。它们能抵抗钓鱼攻击,消除重复使用问题,也不会在数据库泄露中暴露。
- 什么是密码哈希?
- 哈希是通过数学函数将密码转换为不可逆的字符串(哈希值)的技术。它在 1970 年代通过 Unix 的 crypt() 函数首次实用化。服务器存储的是哈希值而非密码本身,因此即使数据库泄露,密码也无法被直接读取。