行业里"无密码"的讨论越来越多了。苹果、Google、微软都在推 Passkey,FIDO2/WebAuthn 标准也在逐步铺开。一个很自然的问题:既然 Passkey 更安全、更方便,TOTP 是不是快过时了。
答案没那么简单。至少在未来几年,TOTP 和 Passkey 会是互补关系,不是替代关系。
Passkey 比 TOTP 好在哪
Passkey 基于公私钥体系。注册时设备生成一对公私钥,私钥永远不出设备,公钥给网站。登录时网站发一个 challenge,设备用私钥签名发回去。全程没有共享密钥,天然防钓鱼------就算你被导向了一个假网站,challenge 的域名不匹配,签名失败。
TOTP 的问题在于:密钥是共享的。你跟平台各持一份相同的密钥。如果你扫码的时候被中间人截了屏,或者你把 setup key 存在了不安全的笔记本里------密钥就泄露了,验证码就废了。虽然 TOTP 密钥泄露的概率很低,但理论上存在。
但 Passkey 推了这么多年,为什么 TOTP 还是主流
兼容面不够。 Passkey 需要操作系统 + 浏览器 + 网站三方支持。现在主流的 OS 和浏览器基本都支持了,但大量网站------尤其是企业内部系统、小众平台、老旧后台------根本没上线 FIDO2。
迁移体验仍然是痛点。 Passkey 的跨设备同步依赖平台生态(iCloud 钥匙串、Google 密码管理器、微软账户)。你换了生态------iOS 换安卓------Passkey 的迁移就很麻烦。而 TOTP 只要你能导出种子密钥(或用了云备份方案),跨平台迁移无障碍。
物理备份的需求。 很多人希望账号恢复不依赖任何一个厂商。TOTP 的种子密钥可以打印在纸上、存在加密 U 盘里、抄在本子上。Passkey 的私钥存在安全芯片里,你没法把它"抄一份"出来。
成本。 TOTP 零成本,一个 App 甚至一个微信小程序就搞定。Passkey 的成本不在用户端(免费),但网站端需要更新认证流程,这对中小平台来说是个门槛。
未来几年的格局
面向消费者的主流平台(Google、Apple、微软、GitHub 等):Passkey 会越来越普及,TOTP 降级为备用方案。
企业内网、小众平台、老旧系统:TOTP 仍将长期存在。这些平台的改造成本决定了它们会继续依赖标准 TOTP。
高安全场景:硬件安全密钥(FIDO2 U2F)+ TOTP 并行。硬件密钥做主力验证,TOTP 做恢复备用。
对你来说该怎么做
现在没必要"抛 TOTP 换 Passkey"。正确姿势是:能用 Passkey 的地方用 Passkey(体验更好),还没支持的地方继续用 TOTP。两者绑在同一个账号上,互为备份。
TOTP 作为最通用、零成本的二次验证方案,还远远没到退役的时候。