简体中文
  • webauthn
  • passkey
  • authentication
  • MFA

WebAuthn 与 Passkey 101

全面了解 WebAuthn,包括其概念、流程、受欢迎的原因以及相关挑战。

Ran
Ran
Product & Design

在 NIST AAL 标准中,WebAuthn 排在最安全的验证器之列。自 2013 年推出以来,它已成为企业现在身份验证的首选。然而,其采用尚不广泛,导致许多人对 WebAuthn 和登录密钥产生疑问。让我们深入了解你需要知道的内容。

概念:WebAuthn、Passkey 和 FIDO 之间有什么关系?

FIDO 联盟

FIDO 联盟是一个提供开源和安全无密码身份验证标准的组织,包括 UAF、U2F 和 FIDO2。

FIDO2

FIDO2 是一套由 FIDO 联盟开发的安全在线验证标准。FIDO2 包括两个主要组件:用于无密码登录的 WebAuthn 和用于安全设备通信的 CTAP。

Passkey

Passkey 是一种基于 FIDO 的、防钓鱼的凭证,用于替代密码。

  1. 它可以是硬件令牌或安全密钥,如 USB 或蓝牙设备。
  2. 它利用非对称公钥密码技术来增强安全性。
  3. 它具有灵活性,可以与平台、安全密钥链接,或在设备间同步。
WebAuthn

WebAuthn 是由 W3C 和 FIDO 联盟开发的JavaScript API,通过 FIDO2 标准增强网页应用程序身份验证。Passkey 是 WebAuthn 支持的验证方法之一。

流程:WebAuthn 如何工作?

WebAuthn 的 4 个主要实体

基本上,你可能知道 WebAuthn 流程中涉及的 4 个主要实体。

  1. 用户: 使用 WebAuthn 登记或验证到网页应用程序的人。

  2. 用户代理: 处理 WebAuthn API 调用的网页浏览器,并管理所有不同依赖方与验证器之间的身份验证过程。

  3. 依赖方: 用户尝试访问的网页服务或应用程序。用户通过用户代理与依赖方交互。

  4. 验证器: 用户持有的用于验证身份的硬件组件。它可以根据平台或浏览器能力采用各种形式,例如安全密钥(如 Yubikey)、手机或平板(通过蓝牙、NFC 或 USB 连接)、基于设备的生物识别或 PIN 等。

主要实体

WebAuthn 的工作流程

非对称公钥密码技术是核心过程。

  1. **密钥对生成:**用户代理生成公私钥对。公钥与依赖方共享,而私钥安全地存储在用户的验证器中。
  2. **身份验证挑战:**当用户尝试登录时,依赖方向用户代理发送身份验证挑战。
  3. **用户验证:**用户代理将挑战发送给验证器,验证器与用户交互进行验证(例如,生物识别或按键)。
  4. **加密签名:**验证器使用其私钥签署挑战,生成加密签名。
  5. **验证和访问:**用户代理使用公钥验证签名,并通知依赖方身份验证成功。访问已授权。

详细说明可以分为注册和身份验证阶段。

WebAuthn 注册流程: 注册流程

WebAuthn 身份验证流程: 身份验证流程

优势:为什么 WebAuthn 成为一种趋势?

多种验证器

你可以选择多种验证器以增加灵活性。这些验证器可用于本地和云,你可以为你的服务启用一个或同时启用两者。

平台验证器(内部验证器)

平台验证器与单一特定设备操作系统绑定,例如用户登录的计算机、笔记本电脑、手机或平板。它仅在设备上工作,使用生物识别或设备密码等方式进行授权。它是一种快速验证的方法,尤其是通过生物识别,可以替代手动输入密码。然而,如果用户丢失设备,可能成为访问的障碍。 例如:

  • MacOS 和 iOS:通过 Touch ID、Face ID 或设备密码验证的 iCloud 钥匙串。
  • Windows:通过面部识别、指纹或 PIN 验证的 Windows Hello。
  • Android:Google 密码管理器也支持面部识别或指纹自动填写密码以授权设备。

平台验证器

流动验证器(外部验证器,跨平台验证器)

流动验证器是一种独立的便携设备或软件应用程序,例如硬件安全密钥或智能手机。它应该使用 USB 连接设备或保持 NFC 或蓝牙开启。流动验证器不限于单一设备或浏览器,提供更大的灵活性。例如:

  • 安全密钥:也称为硬件令牌,如 Yubikey。
  • 移动智能手机:如在 Android 上使用基于云的 Google 账户,或 iPhone 上的 iCloud 账户。重要的是,跨设备身份验证还需要与蓝牙、NFC 或 USB 连接,以确保用户的验证器在附近。移动验证器通常需要扫描二维码将其与桌面设备链接。(尤其是 Android 手机,可使用持久链接无缝连接 Chrome 浏览器,实现一键授权,无需扫描二维码。)

流动验证器

高保证安全性

高保证安全性对保护商业资源至关重要。通过以下措施实现:

  1. **隐私密钥保护:**隐私密钥从不与第三方网站(依赖方)共享,这有助于防止密码泄露和钓鱼攻击。
  2. **设备接近需求:**设备需要“单设备平台验证”或“限制为 USB、蓝牙或 NFC 的流动验证器”靠近用户,以防止远程攻击。
  3. **域绑定:**WebAuthn 紧密绑定于用户注册网站的特定域,防止来自未授权网站的钓鱼攻击。

用户无缝 MFA & 1FA 体验

WebAuthn 提升安全性的同时提升用户无密码验证体验:

  • **本地体验和生物识别效率:**WebAuthn 采用特定于不同平台和设备的身份验证方法,与用户习惯一致。生物识别验证无需手动输入,显著加快验证过程。
  • **直接跳过 1FA 的 MFA:**WebAuthn 通常用于 MFA(多因素认证)。由于其强大的安全性,如果依赖方已经在浏览器中记录了 WebAuthn 的使用,用户可以跳过 1FA(单因素认证)步骤,通过密钥验证直接登录。
  • **Passkey 替代密码:**Passkey 也可以作为传统密码的替代品用于 1FA。用户可以在输入账户之前或之后提供其 Passkey,当 Passkey 验证不可用时才需密码验证。

挑战:为什么用户没有广泛采用 WebAuthn?

浏览器或平台限制

一些浏览器或平台要么完全不支持 WebAuthn,要么缺乏对流动验证器的支持。虽然 Caniuse 的当前统计数据显示不错支持,97.37% 的桌面和 96.3% 的移动平台覆盖,然而不同浏览器版本和操作系统仍有差异。例如,桌面版 Linux 缺乏对平台验证器的支持,Android 仅在 Chrome 上完全支持 WebAuthn,MacOS 上的 Internet Explorer 不支持 WebAuthn。这需要管理员要求成员强制选择特定的浏览器或操作系统,或者配置其他替代的 MFA 方法。

浏览器支持

设备丢失风险

尤其对于依赖“此设备”平台验证器的用户,丢失设备可能导致失去对其账户的访问。账户恢复可能是繁琐的过程。为降低此风险,建议用户在设置 WebAuthn 时同时绑定其他备份身份验证方法。

网站和应用程序支持有限

许多服务和应用程序尚未提供对 Passkey 的支持。用户往往对不同的身份验证方法不熟悉,可能无法完全理解平台验证器和流动验证器之间的区别和限制。然而,主要系统、浏览器和 SaaS 服务正越来越多地采用 WebAuthn,使其成为企业和用户都开始接受的趋势。

结论

Logto 正准备在 11 月推出 MFA(多因素认证)。初期阶段将支持三种验证方法:验证器应用 TOTP、WebAuthn(Passkey)和备份代码,提供全面的登录和注册解决方案。我们将继续开发与 WebAuthn 相关的高级功能。我们期待你的体验,并邀请你关注 即将推出的 MFA 产品发布。