跳到正文
>_ITDITDWeb 安全平台

术语表

什么是 passkey(通行密钥)— 不用密码、偷不走的登录方式

passkey(通行密钥)是一种不持有「共享秘密(密码)」的登录方式。它用设备内的私钥加生物识别进行签名,服务器只保存公钥,因此即使泄露也无法被滥用,在假域名上也无法成立=天生抗钓鱼。本文从防御视角讲解其原理、与密码及短信验证的区别、以及如何迁移,并刻意不写攻击手法。

发布于 2026-06-28 更新于 2026-06-28 1 分钟阅读

「不再使用那种偷得走的密码」——实现这一点的正是 passkey。本文讲解其原理,以及它与密码、短信验证的区别(不会写出攻击手法)。

原理:秘密「不会离开设备」

passkey 基于公钥密码学(FIDO2 / WebAuthn 这一标准)运行。注册时设备会生成一对密钥只把公钥交给服务器。登录时,只需用设备内的私钥对服务器发来的「题目(challenge)」进行签名并返回。私钥不会离开设备的安全区域。

密码

你 和 服务器 共享同一个秘密。服务器泄露/在假网站输入就会被偷走

passkey

私钥只在设备内。服务器只有公钥=泄露也无法被滥用

密码是『共享的秘密=偷得走』。passkey 是『秘密不离开设备=偷不走』。

「服务器上只有公钥」这一点很关键。公钥顾名思义就是可以公开的值,因此即使数据库泄露,单凭它本身也无法用来登录(这与密码的保存前提正好相反→ 什么是哈希化)。

与密码+短信到底有何不同

密码+短信验证码

  • 共享秘密(密码)会泄露/因重复使用而连锁失守
  • 在假网站输入时,连验证码一起被中间人转发
  • 容易以「我自己能识破」的过度自信为前提

passkey

  • 没有共享秘密=不存在可被偷走的字符串
  • 签名绑定到域名=在假网站上无法成立
  • 即使用户没察觉,机制上也会挡住假网站

中间人型钓鱼(AiTM)即使你小心翼翼地输入了正确的验证码,也会连那个验证码一起转发(→ 什么是钓鱼)。passkey 因为签名被绑定在域名上,从原理上堵住了这条路径。

本站的观点:不必一下子全部替换

passkey 很强大,但你并不需要「从今天起把所有账户都改成无密码」。本站的立场是从重要账户开始分阶段。先给邮箱、云、密码管理器的保险库这类相当于「钥匙之母」的账户添加 passkey,并备好恢复手段(在多台设备上注册、做好备份)。仍保留密码的服务,则一边用密码管理器抗钓鱼 MFA守护,一边按支持情况依次向 passkey 迁移,才是现实的做法。

接下来阅读

FAQ

Qpasskey 和密码有什么区别?
A

密码是「你和服务器共享的一串秘密字符」,所以一旦泄露任何人都能使用。passkey 则不持有共享的秘密。它用设备内的私钥进行签名,服务器上只保存与之配对的公钥。不存在可被偷走的字符串,即使服务器发生泄露,仅凭公钥也无法被滥用——这是根本性的区别。

Q为什么 passkey 抗钓鱼能力强?
A

passkey 的签名绑定在「面向哪个网站(域名)」上。即使被诱导到假网站登录,由于域名不一致,签名本身就无法成立。也就是说,即使用户没有察觉自己进了假网站,从机制上假网站也通不过。这与密码+短信验证码在中间人攻击中被原样整体转发形成鲜明对比。

Q丢了设备就无法登录了吗?
A

passkey 在多数情况下会通过操作系统或密码管理器的云同步进行备份,在其他设备上也能使用(同步 passkey)。此外,在多台设备或多把密钥上注册 passkey、并准备好恢复手段会更安全。应避免只绑定到一台设备且没有任何恢复手段。