「我不喜欢 passkey」:对企业是解药,对个人是退步
过去几年,科技行业一直将通行密钥推崇为登录的终极解决方案。许多大型科技公司每次在你登录时都会“贴心”地提醒你,通行密钥有多么简单省事。唯一能……
中文
复制
过去几年,科技行业一直把 passkey 当作登录问题的终极方案来推。每次登录,各大科技公司都会“贴心”地提醒你 passkey 有多方便、多省事。想让它们闭嘴,要么妥协设置一个 passkey,要么钻进设置里找到关闭开关。

Google 甚至把这个设置项命名为“尽可能跳过密码”(在新标签页中打开),Microsoft 也在宣传让你的账户不再使用密码(在新标签页中打开)。passkey 是一项出色的技术。由于它绑定在创建它的站点上,黑客的伪造登录页无法对它进行钓鱼。如果某个站点发生数据泄露,passkey 是非对称的,无法从服务端信息中还原。这让 passkey 非常适合企业环境,却不太适合个人安全。对个人来说,最大的风险反而是账户被永久锁定、被自动化封禁,以及设备丢失。使用 passkey,你换来了对中间人攻击更强的防护,却要面对更高的账户失访概率。passkey 消除了标准登录流程中的钓鱼,但也制造了一种虚假的安全感。账户的安全性仍然取决于最薄弱的找回方式:短信、邮件链接、安全问题等等。如果这些找回方式没有启用,用户被永久锁定的风险依然存在。
硬件密钥
按照设计,硬件密钥上的 passkey 无法备份:passkey 只能添加或删除,永远不能迁移。你只能买 2-3 个硬件密钥,再把每个密钥逐个注册到每个站点。这笔开销很快就会变得可观,而且随着账户数量增长,这种方式很难扩展。硬件密钥支持可发现凭据,网站可以主动查询你的用户名,而不必由你手动输入。这类凭据在网站开发者中越来越流行,但每个硬件密钥有25-100 个账户(在新标签页中打开)的上限,顶配密钥最多也只能到 300 个。一旦超出上限,你要么删掉一些账户,要么再买一套硬件密钥。
同步的 passkey
Apple 和 Google 都想把你的身份牢牢绑定在它们的操作系统上。在它们的设备上,最省事的做法就是使用与你的 Apple 或 Google 账号绑定的同步 passkey 管理功能。一旦它们的自动化系统某天决定封禁你的账号(在新标签页中打开),你所有第三方账号上使用的 passkey 也会一并永久失去访问权限。FIDO 联盟一直在努力改善互操作性、让 passkey 更容易导出,但各家提供商之间的体验依然割裂且不一致。未来几年情况会好转,但目前还太不成熟,不足以依赖。相比之下,密码不过是一个字符串,必要时手工导出就行。
第三方同步的 passkey
把 passkey 存进 Bitwarden(在新标签页中打开)或 KeePassXC(在新标签页中打开)这类密码管理器时,你就是在跟平台对着干。虽然操作系统最近推出了供第三方工具接入的 API(比如 Android 的 Credential Manager(在新标签页中打开)),但体验依然割裂,也缺少密码自动填充那样经过数十年打磨的 UX。浏览器之外、原生应用内部的自动填充尤其不稳定。我认为第三方 passkey 是未来的方向,但现在还没到那一步。
passkey 用不了的时候
在自己拥有的设备上登录账号,是 passkey 最理想的场景。一旦要处理同事的电脑,就麻烦得多。你可以插硬件密钥,但不是总有可用的接口。你也可以登录并使用同步的 passkey,但这意味着你要信任这台电脑不会泄露你其他的所有 passkey。最后一个选择是用“混合传输”(在新标签页中打开),扫描二维码并同时通过蓝牙连接电脑。这个方案在理论上是安全的,也能用,但现实中充斥着各种边缘情况:连接失败,或者干脆不支持蓝牙。
Passkey 尚未成熟
我认为企业用户有充分理由使用 passkey,但对个人用户而言,整个生态还不够成熟。TOTP 验证码确实存在已知的网络钓鱼漏洞,但对大多数人来说,passkey 在恢复和锁定上的风险,比 AiTM 代理(在新标签页中打开) 带来的日常风险更大。把随机生成的密码存进第三方密码管理器,再配一个独立的 TOTP 应用,用户既能掌控一切,又不必放弃明文带来的灵活性。对于过去在所有网站上重复使用同一个密码的用户,passkey 是巨大的进步;对其他所有人来说,它目前是退步。