WebAuthn
WebAuthn 是 W3C 定义的公钥凭证认证标准与浏览器 API,用于让网站和应用基于公私钥凭证完成注册和登录。
#type / concept
#status / growing
#tech / security
#resource / webauthn
[!info] related notes
- 所属 MOC: 安全 MOC
- 前置概念: 非对称密码学(Asymmetric-Encryption), 数字签名
- 并列概念: 单点登录(SSO)
- 易混淆概念: Passkey(通行密钥)
- 关系笔记: 虚拟 MFA、短信 MFA、Push MFA 与 WebAuthn / Passkey 的安全边界
WebAuthn
一句话定义
WebAuthn 是 W3C 定义的公钥凭证认证标准与浏览器 API,用来让网站和应用通过设备上的私钥完成注册和登录,而不必依赖共享密码。
核心机制 / 工作原理
WebAuthn 的核心是“网站或应用请求创建 / 使用一份公钥凭证”,浏览器或操作系统负责和认证器协作:
- 注册时创建一对密钥,公钥交给服务端保存
- 登录时服务端发 challenge,认证器用私钥签名
- 浏览器或操作系统会检查请求来源是否匹配已绑定的网站域名或应用身份
可以抽象成:
register:
server challenge
-> authenticator creates key pair
-> public key returned to server
authenticate:
server challenge
-> authenticator signs challenge with private key
-> server verifies signature with stored public key
WebAuthn 定义的是能力接口和验证模型,不强制私钥必须保存在什么具体产品里。实际承载者可以是:
- 手机或电脑的系统认证器
- 密码管理器
- 硬件安全密钥
最小例子 / 最小场景
一个网站启用 WebAuthn 登录时,典型流程是:
用户点击“创建 passkey”
-> 网站调用 WebAuthn API 请求创建凭证
-> 系统要求用户用指纹 / Face ID / PIN 确认
-> 认证器生成密钥对并返回公钥信息
-> 网站保存公钥
-> 以后登录时网站再次调用 WebAuthn API 完成签名验证
边界与易混淆点
- WebAuthn 更像标准和接口层;Passkey(通行密钥) 更像用户可感知的产品体验和凭证形态。
- 不是所有 WebAuthn 凭证都一定是“可同步 passkey”;也可以是设备绑定凭证或硬件安全密钥凭证。
- 它的关键安全收益不是“更方便的二次验证码”,而是把凭证和服务身份绑定,从而显著降低钓鱼和凭证转发风险。
- WebAuthn 只解决认证链路的一部分,账号恢复、会话保护和设备安全仍然是系统边界的一部分。