WebAuthN 兼容性需要什么安全密钥规范?

WebAuthN 兼容性需要什么安全密钥规范?

是否已经可以购买与 WebAuthN 兼容的 USB 闪存盘式身份验证密钥?

如果是,它应该支持什么技术标准/规范?

根据新闻稿,例如,这已经成为可能,但我想知道这是 Yubico 试图抢占市场先机并发布可能不兼容的产品,还是新闻稿中提到的密钥由于实现了 FIDO2 标准而兼容。

答案1

据我所知,基于Adam Langley 的博客文章,有两个不同的层:

  1. 网站通过浏览器访问令牌所使用的协议(API)。目前网站使用“FIDO U2F JavaScript API”,而且是这个API被 WebAuthn 所取代。

  2. 浏览器(和其他本地软件)用于与令牌本身通信的协议。目前,FIDO U2F 密钥使用 CTAPv1 协议(“客户端到身份验证器协议”),但新设备将使用 CTAPv2。当 Yubico 提到“FIDO2”时,他们指的是此协议。

尽管升级彼此相关(CTAPv2 添加了 WebAuthn 将使用的新功能),但各层仍然大多独立,且协议大多向后兼容。即:

  • 与 CTAPv1 相比,CTAPv2 的主要升级是设备将拥有更多存储空间,使其可用作主要的身份验证因素(以及可能的其他功能)。

    但是,现有的 U2F 部分似乎与 CTAPv1 中的部分保持相同(或多或少,令牌只需要进行数字签名)。

  • 与FIDO U2F API相比,WebAuthn最重要的变化在于它如何为“依赖方”,即网站生成标识符(“AppID”)。

    但是,令牌并不关心标识符的内部结构(它只需要匹配),WebAuthn 甚至有规定允许使用现有的 FIDO U2F 注册。(通过 WebAuthn 完成的新注册惯于但可以与 FIDO U2F 配合使用。)

因此,如果您需要的是第二因素(U2F),那么似乎所有现有的令牌模型仍然可以与 WebAuthn 一起使用。

答案2

FIDO2 是一个开放身份验证标准,包括W3C Web 身份验证规范(WebAuthn),以及客户端到身份验证协议(CTAP)。CTAP 是一种应用层协议,用于客户端(浏览器)或平台(操作系统)与外部身份验证器(Yubico 安全密钥)。WebAuthn 是一种 API,允许客户端或平台创建并使用基于公钥的凭证与依赖方进行交互。Yubico 是 CTAP 协议的核心贡献者,规格由 FIDO 联盟主办。

相关内容