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)。

工作流程:

核心组件:

安全优势:

官方资源: FIDO2 规范主页 | W3C WebAuthn | CTAP 规范

关联工具: 非对称加密工具 (ECDSA) | 哈希摘要工具

FIDO2 与 WebAuthn 规范

FIDO2 是 FIDO 联盟和 W3C 联合发布的无密码认证标准,由两部分组成:W3C WebAuthn 规范定义浏览器 API,CTAP(Client to Authenticator Protocol)定义浏览器与认证器之间的通信协议。FIDO2 的目标是替代密码,利用设备的内置生物识别或安全密钥实现强认证。

认证器类型

平台认证器绑定在设备上,如 Windows Hello、Touch ID、Android 指纹;漫游认证器可跨设备使用的独立硬件,如 YubiKey、Google Titan 安全密钥。

注册与认证流程

注册阶段(MakeCredential):网站生成挑战值和用户信息,浏览器通过 WebAuthn API 将请求传给认证器,认证器验证用户在场(生物识别或按键确认)后生成新的非对称密钥对,公钥连同认证信息返回给网站存储。认证阶段(GetAssertion):网站生成新的挑战值,认证器验证用户在场后用私钥对挑战值签名,网站用存储的公钥验签。

智能卡与 FIDO2

许多智能卡芯片支持 FIDO2 认证器应用。例如 YubiKey 5 系列同时支持 FIDO2、PIV(PKI 智能卡)和 OTP。Java Card 平台上也可以开发 FIDO2 Applet。认证器的私钥存储在安全区域,永不导出,与 TPM 2.0 的设计理念一致。FIDO2 的 CTAP2 协议使用 CBOR 编码,支持 USB、NFC 和 BLE 传输。

← 返回规范索引