WebAuthn 与 Passkey 101
全面了解 WebAuthn,包括其概念、流程、受欢迎的原因以及相关挑战。
在 NIST AAL 标准中,WebAuthn 排在最安全的验证器之列。自 2013 年推出以来,它已成为企业现在身份验证的首选。然而,其采用尚不广泛,导致许多人对 WebAuthn 和登录密钥产生疑问。让我们深入了解你需要知道的内容。
概念:WebAuthn、Passkey 和 FIDO 之间有什么关系?
FIDO 联盟 | FIDO 联盟是一个提供开源和安全无密码身份验证标准的组织,包括 UAF、U2F 和 FIDO2。 |
FIDO2 | FIDO2 是一套由 FIDO 联盟开发的安全在线验证标准。FIDO2 包括两个主要组件:用于无密码登录的 WebAuthn 和用于安全设备通信的 CTAP。 |
Passkey | Passkey 是一种基于 FIDO 的、防钓鱼的凭证,用于替代密码。
|
WebAuthn | WebAuthn 是由 W3C 和 FIDO 联盟开发的JavaScript API,通过 FIDO2 标准增强网页应用程序身份验证。Passkey 是 WebAuthn 支持的验证方法之一。 |
流程:WebAuthn 如何工作?
WebAuthn 的 4 个主要实体
基本上,你可能知道 WebAuthn 流程中涉及的 4 个主要实体。
-
用户: 使用 WebAuthn 登记或验证到网页应用程序的人。
-
用户代理: 处理 WebAuthn API 调用的网页浏览器,并管理所有不同依赖方与验证器之间的身份验证过程。
-
依赖方: 用户尝试访问的网页服务或应用程序。用户通过用户代理与依赖方交互。
-
验证器: 用户持有的用于验证身份的硬件组件。它可以根据平台或浏览器能力采用各种形式,例如安全密钥(如 Yubikey)、手机或平板(通过蓝牙、NFC 或 USB 连接)、基于设备的生物识别或 PIN 等。
WebAuthn 的工作流程
非对称公钥密码技术是核心过程。
- **密钥对生成:**用户代理生成公私钥对。公钥与依赖方共享,而私钥安全地存储在用户的验证器中。
- **身份验证挑战:**当用户尝试登录时,依赖方向用户代理发送身份验证挑战。
- **用户验证:**用户代理将挑战发送给验证器,验证器与用户交互进行验证(例如,生物识别或按键)。
- **加密签名:**验证器使用其私钥签署挑战,生成加密签名。
- **验证和访问:**用户代理使用公钥验证签名,并通知依赖方身份验证成功。访问已授权。
详细说明可以分为注册和身份验证阶段。
WebAuthn 注册流程:
WebAuthn 身份验证流程:
优势:为什么 WebAuthn 成为一种趋势?
多种验证器
你可以选择多种验证器以增加灵活性。这些验证器可用于本地和云,你可以为你的服务启用一个或同时启用两者。