Passkey(通行密钥)

Passkey 是基于公私钥凭证和本机解锁确认的登录机制,用设备持有的私钥替代可被泄露或转发的共享密码与验证码。

#type / concept #status / evergreen #tech / security #resource / passkey

[!info] related notes

Passkey(通行密钥)

一句话定义

Passkey 不是“新型密码”,而是把登录从“你知道一个秘密”改成“你持有一把私钥,并且当前设备已经确认是你本人在用它”。

核心机制 / 工作原理

Passkey 的底层是公钥凭证认证:

  • 服务端保存公钥
  • 用户设备、密码管理器或安全密钥保存私钥
  • 指纹、Face ID、PIN 或设备密码只用于解锁本机对私钥的使用权限

登录时,服务端不会再要求用户提交一个静态秘密,而是给客户端发一个一次性挑战:

服务端生成随机 challenge
-> 客户端请求使用对应 passkey
-> 用户用指纹 / Face ID / PIN / 设备密码确认
-> 私钥在本机对 challenge 签名
-> 服务端用公钥验签
-> 验签成功后通过登录

这意味着:

  • 私钥不会发送给服务端
  • 指纹和人脸不会发送给服务端
  • 用户也不需要手动输入可被转发的验证码

Passkey 常见有两种保存形态:

  • 同步型 passkey:保存在 iCloud Keychain、Google Password Manager、1Password、Bitwarden 一类同步系统里,换机更方便
  • 设备绑定 passkey:只存在某台手机、电脑或硬件安全密钥里,迁移更麻烦,但边界更硬

最小例子 / 最小场景

以 Telegram 一类已支持 passkey 的应用为例:

用户先用旧方式登录一次
-> 在账号安全设置里创建 passkey
-> 设备为该账号生成一对新密钥
-> 公钥绑定到账号,私钥留在设备或密码管理器
-> 以后在新设备登录时,用户只需调用 passkey 并完成本机解锁确认

这个流程里,passkey 解决的是“如何证明你控制着之前绑定过的设备密钥”,而不是“如何把短信发到你的手机号上”。

边界与易混淆点

  • Passkey 不是密码的花哨包装,它的安全模型从共享秘密变成了公私钥签名。
  • Passkey 不是单纯的“验证码替代品”,它的关键优势是私钥不出设备,而且凭证与站点或应用身份绑定。
  • Passkey 往往能替代短信登录码或一次性登录码,但不一定自动绕过账号自己的二步验证密码。
  • 生物识别不是发给网站的认证数据,而是设备本地的解锁动作。
  • 它比短信验证码更稳定,也比密码和 TOTP 更抗钓鱼,但仍然受恢复链路、云账号安全和设备被控风险影响。
  • 新设备上是否会自动弹出 passkey,取决于应用是否主动调用相关登录流程,以及设备是否能访问保存 passkey 的密码管理器。
创建于 2026/5/19 更新于 2026/5/27