是否已经可以购买与 WebAuthN 兼容的 USB 闪存盘式身份验证密钥?
如果是,它应该支持什么技术标准/规范?
根据新闻稿,例如这,这已经成为可能,但我想知道这是 Yubico 试图抢占市场先机并发布可能不兼容的产品,还是新闻稿中提到的密钥由于实现了 FIDO2 标准而兼容。
答案1
据我所知,基于Adam Langley 的博客文章,有两个不同的层:
网站通过浏览器访问令牌所使用的协议(API)。目前网站使用“FIDO U2F JavaScript API”,而且是这个API被 WebAuthn 所取代。
浏览器(和其他本地软件)用于与令牌本身通信的协议。目前,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 联盟主办。