FIDO2 (WebAuthn + CTAP) 无密码认证标准
标准编号:WebAuthn (W3C Recommendation), CTAP (FIDO Alliance)
发布组织:FIDO 联盟 (Fast IDentity Online) 与 W3C
首次发布:2018年 (WebAuthn Level 1) / 2019年 (CTAP 2.0)
摘要:FIDO2 是一套现代身份认证标准,允许用户使用生物识别(指纹、人脸)、PIN 码或外部安全密钥(如 USB Key、智能卡、手机)登录在线服务,完全替代密码。它基于公钥加密技术,服务端只存储公钥,私钥永不离开用户设备,从而从根本上防止钓鱼、中间人攻击和数据库泄漏。FIDO2 包括两个核心组件:W3C 的 WebAuthn(浏览器与网站的 JavaScript API)和 FIDO 联盟的 CTAP(客户端到认证器的协议,如 USB、NFC、BLE)。
工作流程:
- 注册阶段:用户设备生成公私钥对,公钥发送给网站,私钥安全存储在设备中;同时生成一个唯一的凭证 ID。
- 登录阶段:网站发送挑战(随机数)和凭证 ID,用户设备用私钥签名挑战,网站用存储的公钥验证签名。
- 生物识别或 PIN 用于解锁私钥(用户验证)。
核心组件:
- WebAuthn (Web Authentication API):浏览器端的 JavaScript API,使网站能够与用户设备上的认证器交互。
- CTAP (Client to Authenticator Protocol):设备与外部认证器(如 YubiKey、Titan Key、Windows Hello 内置传感器)之间的通信协议,支持 USB、NFC、BLE。
- 认证器 (Authenticator):可能是平台内置(Windows Hello、Touch ID)或外部漫游硬件设备。
安全优势:
- 无共享秘密(服务器无密码,私钥不离开设备)→ 杜绝凭据窃取。
- 钓鱼和重放攻击无效,因为挑战基于每个会话的域名绑定。
- 降低用户管理密码的负担,提升登录体验。
官方资源: FIDO2 规范主页 | W3C WebAuthn | CTAP 规范
关联工具: 非对称加密工具 (ECDSA) | 哈希摘要工具