分享发现 CTAP、FIDO2、WebAuthn?FIDO 相关术语一览

admin · April 01, 2022 · 538 hits

FIDO 联盟自 2013 年成立以来,在身份认证与安全领域做出了杰出的贡献,公开发布了多项标准协议(如下图所示),FIDO 工作组的数量已从原先的两个扩展到了数十个。但是,相信很多人都会有同样的疑惑,FIDO 联盟制定的这些标准具体有何区别,应该如何正确认识?本文将带大家对下图中的概念作逐一分析,帮助读者更好地理解。

  • FIDO:即 Fast IDentity Online(线上快速身份验证)的缩写,或称 FIDO 联盟。该联盟主要致力于构建安全、开放、防网络钓鱼的无密码身份验证标准。FIDO 系列协议是由 FIDO 联盟制定的一套协议,包括通用认证框架 UAF(Universal Authentication Framework)、通用第二因素认证标准 U2F(Universal 2nd Factor)以及 FIDO2。当说到使用“FIDO”时,通常是指使用这三种协议中的任何一种,因为从概念的角度来看,这三者基本一致,只是结构有所区别(UAF——TLV,U2F——RAW,FIDO2——CBOR)。
  • CTAP:即客户端到认证器协议(Client to Authenticator Protocols),对 HID、NFC 以及 BLE 等传输协议进行一系列定义,描述了启用 CTAP 的设备如何使用这些协议与客户端通信。U2F 和 FIDO2 认证器均具备这些特性,对应的名称为 CTAP1 和 CTAP2.
  • U2F:即通用认证框架,连同 UAF 一起,是互联网领域第一个预防网络钓鱼攻击的身份验证协议。U2F 标准于 2014 年首次公布,该标准以 web 为中心,支持 USB、NFC 以及 BLE 传输,并对低级传输、信息格式以及 JS API 等内容进行了具体说明。
  • CTAP1:CTAP1 是 U2F 协议的正式名称,U2F 使用 RawMessage 格式。
  • U2F JS API:即 2014 年在 Google Chrome 浏览器中推出的一个仅支持 U2F 的传统 API。由于该 API 只支持 U2F 且只有极少数浏览器支持,目前已被淘汰。相比之下,现在的 WebAuthn 能够支持 U2F 和 FIDO2 标准,更具现代意义。
  • FIDO2:即满足现代化、简便性、安全性、防网络钓鱼、无密码身份验证的一个新协议。其核心规范包括 WebAuthn(客户端 API)以及 CTAP(认证器 API)。
  • CTAP2:FIDO2 协议底层部分的正式名称。FIDO2 使用 CBOR 编码响应结构,可以理解为 JSON,但与 TLV 有些类似。CTAP2 规范定义了 FIDO2 请求如何转换为 CTAP1/U2F 请求,以及 CTAP1/U2F 响应如何转换为 CBOR/FIDO2 响应。不过,值得注意的是,U2F 并不时 FIDO2 协议的一部分。
  • WebAuthn:即描述用于创建和管理公钥凭证接口的浏览器 JS API。WebAuthn 标准由 W3C 组织牵头制定,符合现代互联网要求。WebAuthn 能够与 CTAP2/FIDO2 和 CTAP1/U2F 认证器对话。此外,还会接受所需标准的编码请求,并基于协议对响应进行解码或重新编码。因此,尽管 CTAP2 规范中也定义了 CTAP1/U2F 转换,但都是在 WebAuthn 中实现。
  • 认证器:FIDO 认证器是指向服务器进行用户认证的实体,可以是软件(如移动应用程序),也可以是硬件(如安全密钥)。
  • 安全密钥:指支持 FIDO 的硬件认证器,例如 Yubikey、Feitian 以及 TrustKey 等硬件产品。

常见问题解答

1、U2F 是 FIDO2 的一部分吗?
-不是。U2F 是用于预防网络钓鱼第二因素认证的一个单独标准。FIDO2 能够向后兼容目前的 U2F 认证器。

2、FIDO2 就是 WebAuthn 吗?
-不是。WebAuthn 只是 FIDO2 协议的一部分。所以,正确的说法是“我的服务器支持 FIDO2 身份验证”。由于 WebAuthn 是 FIDO2 项目中最广为人知的规范,所以人们常常存在“FIDO2 就是 WebAuthn”的错误认知。

3、所有的安全密钥都可以叫作 Yubikey 吗?
不是。Yubikey 是 Yubico 的安全密钥产品,只是市面上众多密钥产品中的一种,其他安全密钥还包括 TrustKey、Feitian Bio Pass、Open Source Solokey 以及 Google Titan Key 等等。所以,只有在特指 Yubico 的产品时,你可以说 Yubikey,否则都应该称为“安全密钥”。

No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.