深色模式
FIDO2 与 WebAuthn
FIDO2 是当前最先进的在线身份认证标准。它让你用一个小小的硬件设备代替密码,安全地登录网站和应用。本文将帮助你理解 FIDO2 的工作原理,以及 YuerKey 如何支持它。
什么是 FIDO2
FIDO2 是由 FIDO 联盟(Fast IDentity Online Alliance) 制定的开放标准。FIDO 联盟是一个行业组织,成员包括 Google、Apple、Microsoft、Amazon 等科技巨头,致力于推动更安全、更便捷的在线身份认证。
FIDO2 由两个部分组成:
简单来说:
- WebAuthn(Web Authentication API):是浏览器提供的接口,让网站可以调用安全密钥进行认证。由 W3C(万维网联盟)制定。
- CTAP2(Client to Authenticator Protocol 2):是浏览器和安全密钥之间的通信协议。定义了"浏览器怎么跟你的 YuerKey 对话"。
你不需要理解这两个组件的技术细节。只要知道:当你在浏览器中使用安全密钥登录时,WebAuthn 和 CTAP2 在幕后协同工作,确保整个过程安全顺畅。
注册流程:把安全密钥绑定到账户
以在 Google 账户上注册安全密钥为例,整个过程只需几秒钟:
第 1 步:发起注册
你登录 Google 账户,进入"安全性"设置,点击"添加安全密钥"。此时 Google 服务器会生成一段随机数据(称为"质询"),通过浏览器发送给你的设备。
第 2 步:浏览器请求安全密钥
浏览器收到 Google 的请求后,通过 WebAuthn API 调用你的 YuerKey。浏览器会显示一个对话框,提示你"请插入并触摸你的安全密钥"。
第 3 步:你在设备上确认
YuerKey 的屏幕亮起,显示确认提示——"是否注册 google.com?"。你按下设备上的确认键,授权这次操作。
第 4 步:设备生成密钥对
得到你的授权后,YuerKey 在设备内部生成一对新的密钥:
- 私钥:安全存储在设备中,永远不会离开
- 公钥:发送给 Google 服务器保存
同时,设备会记录下这个公钥对应的网站域名(google.com),将它们绑定在一起。
第 5 步:注册完成
Google 服务器收到公钥并保存。从此,这把安全密钥就与你的 Google 账户绑定了。
认证流程:用安全密钥登录
注册之后,每次登录时的认证过程同样简单:
第 1 步:发起登录
你在 Google 登录页面输入用户名(如果是两步验证模式,还需要输入密码)。Google 服务器生成一段新的随机质询数据。
第 2 步:浏览器请求安全密钥
浏览器提示你插入安全密钥。
第 3 步:设备验证域名
YuerKey 收到请求后,首先检查发起请求的网站域名(google.com)是否与之前注册时绑定的域名匹配。如果域名不匹配(比如你被骗到了钓鱼网站 g00gle.com),设备会直接拒绝——这就是防钓鱼的核心机制。
第 4 步:你在设备上确认
域名验证通过后,YuerKey 屏幕显示"是否登录 google.com?",你按下确认键。
第 5 步:设备签名并返回
YuerKey 使用存储在设备中的私钥对质询数据进行数字签名,并将签名结果发回给 Google 服务器。
第 6 步:服务器验证签名
Google 服务器用之前保存的公钥验证签名。签名正确——证明你确实持有对应的私钥——登录成功。
整个过程私钥从未离开设备。 即使有人监听了通信过程,拿到的也只是一次性的签名数据,无法用于其他场景。
Passkey 无密码登录
什么是 Passkey
Passkey(通行密钥)是基于 FIDO2 技术的无密码登录方案。传统的安全密钥使用方式是"密码 + 安全密钥"(两步验证),而 Passkey 直接跳过密码这一步——你只需要安全密钥(或手机、电脑上的生物识别)就能完成登录。
| 对比项 | 传统两步验证 (2FA) | Passkey 无密码登录 |
|---|---|---|
| 需要密码? | 需要先输入密码 | 不需要密码 |
| 需要安全密钥? | 需要 | 需要 |
| 防钓鱼? | 是 | 是 |
| 用户体验 | 密码 + 插入设备 + 确认 | 插入设备 + 确认 |
| 密码泄露风险 | 密码仍可能泄露 | 没有密码,无从泄露 |
哪些服务已支持 Passkey
截至目前,以下主流服务已支持 Passkey 无密码登录:
- Google:个人账户和 Workspace
- Apple:Apple ID 和 iCloud
- Microsoft:个人账户和 Azure AD
- GitHub:代码仓库登录
- Amazon:购物账户
- PayPal:支付账户
- 1Password / Dashlane:密码管理器
- Cloudflare:开发者服务
更多服务正在不断加入。你可以在 passkeys.directory 查看完整的支持列表。
U2F 兼容
U2F(Universal 2nd Factor,通用第二因素)是 FIDO 联盟在 FIDO2 之前制定的第一代安全密钥标准。许多早期支持安全密钥的服务(如 Dropbox、Facebook 等)最初只支持 U2F。
YuerKey 完全兼容 U2F 协议。这意味着:
- 那些只支持 U2F 的旧服务,YuerKey 可以正常使用
- 对于同时支持 FIDO2 和 U2F 的服务,YuerKey 会自动使用更先进的 FIDO2 协议
你不需要关心一个服务用的是 U2F 还是 FIDO2——YuerKey 会自动处理兼容性。
YuerKey 的 FIDO2 能力
YuerKey 实现了完整的 FIDO2 协议栈,支持 CTAP2.1 规范中的高级特性:
支持的签名算法
| 算法 | 说明 | 用途 |
|---|---|---|
| ES256 (ECDSA P-256) | 最广泛支持的算法 | 几乎所有 FIDO2 服务都支持 |
| Ed25519 | 高性能椭圆曲线签名 | 新一代推荐算法 |
| RS256 (RSA PKCS#1 v1.5) | 传统 RSA 算法 | 兼容旧系统 |
CTAP2.1 高级特性
- 凭据管理(Credential Management):直接在设备上查看和管理已注册的所有凭据,不需要逐个登录网站去检查
- Large Blobs:在设备上存储较大的数据(如证书),某些高级场景需要用到
- HMAC-Secret 扩展:支持派生对称密钥,可用于本地磁盘加密等场景
- 企业认证(Enterprise Attestation):满足企业环境中对设备来源认证的需求
- 最小 PIN 长度策略:企业可以强制要求用户设置足够长的 PIN
这些高级特性在日常使用中不一定都会用到,但它们确保 YuerKey 在企业部署和高级安全场景中同样胜任。