1、简介
FIDO(在线快速身份认证)联盟名义上是 2012 年 7 月成立的,联盟是 501(c)6 非营利性组织,该组织旨在解决强身份认证设备之间缺乏可互操作性的问题,以及用户面临的设立、记忆多组用户名和密码的难题。FIDO 联盟通过制定开放的、可扩展的、可互操作的协议,正在从本质上改变着身份认证,从而取代依赖密码在在线服务中对用户进行安全地身份认证。这一适用于安全设备和浏览器插件的新标准允许任何网站或云端应用程序与现有的和即将完成FIDO认证的设备进行交互,从而使用户可享用更安全的网络体验。
2、关于FIDO联盟
FIDO 联盟的使命是重新定义在线身份认证:
- 通过制定一套开放的、可扩展的、可互操作的技术规范,从而减少对通过密码认证用户身份的依赖。
- 施行行业计划,确保全球范围内规范的成功部署。
- 向公认的标准组织提交成熟的技术规范,以实现正式标准化。
制定并部署 FIDO 身份认证解决方案为 IT 供应商、企业、服务提供商和整个大行业带来了无数裨益,其中包括:
- 更强的帐户/交易安全性 – 这会降低成本、并减少问题的产生,同时还能提高了客户的忠诚度并减少了客户的流失。改良后的身份认证还能降低风险,并能开发新的经营模式和收入来源。
- 改善用户体验 – FIDO 解决方案可以为企业消费者和员工提供更多便利。用户无需再记忆复杂的密码,因此简化了用户开通工作并大幅削减了远程密码重置的相关费用。
- 提高身份认证的投资回报 – 与当前单个设备类型与单个应用程序相关联的专项方法相比,显著减少了部署和支持新解决方案的相关费用。系统管理功能将由 FIDO 基础架构提供,各应用程序无需再分别进行搭建。所需进行的测试较少,因为所有设备都只需插入 FIDO 接口即可,因此引入新技术的时间也将会大幅缩减。
- 降低受骗风险 – 所有启用 FIDO 的网站和云端/移动应用程序的用户遭遇身份欺骗的风险将会更低,同时还能享受较少依赖密码带来的便利。始终如一的用户体验和更高的安全性,将进一步促进人们对在线系统的信赖。
3、FIDO如何工作
FIDO协议使用标准公钥加密技术来提供更强的认证。在向在线服务注册期间,用户的客户端设备创建新的密钥对。它保留私钥并向在线服务注册公钥。认证由客户端设备通过签署质询来完成,以证明拥有服务的私钥。客户端的私钥只有在由用户在设备上本地解锁后才能使用。本地解锁通过用户友好且安全的动作来完成,例如滑动手指、输入PIN、对着麦克风说话、插入双因素设备或按下按钮。
FIDO协议的设计初衷是为了保护用户隐私。协议不提供可由不同在线服务使用以跨服务协作和跟踪用户的信息。生物识别信息(如果使用的话)永远不会离开用户的设备。
3.1 FIDO 注册
注册如上图所示:
- 用户BOB选择与在线服务的接受策略匹配的可用FIDO验证器。
- 用户BOB使用指纹读取器、双因素设备上的按钮、安全输入的PIN或其他方法解锁FIDO认证器。
- 用户BOB的设备创建对于本地设备、在线服务和用户的帐户唯一的新的公钥/私钥对
- 用户BOB公钥被发送到在线服务并与用户的账户相关联。而私钥和一些私密信息则会存储在本地设备中.
3.2 FIDO登录
登录过程如上图所示:
- 在线服务向用户询问,要求用户使用与服务的接受策略匹配的先前注册的设备登录。
- 用户使用与注册时相同的方法解锁FIDO验证器。
- 设备使用由服务提供的用户的账户标识符来选择正确的密钥并对服务的质询进行签名。
- 客户端设备将签名的质询发送回服务,服务使用存储的公钥对其进行验证并登录用户。
从加密方式来说,这就是属于非对称加密方式。
在注册的时候,用户创建了密钥对,用公钥进行加密,然后发送到在线服务端,在线服务器存储了对应用户以及公钥信息,会出现一个锁住的图标。
在登录的时候,用户需要拿私钥进行签名,在线服务端需要拿到用户的私钥和已存在的公钥进行比对,比对通过,才能让用户登录,出现解锁的图表。公钥就相当于一个闭合的锁,而私钥就是唯一的钥匙,只有唯一的钥匙才能打开这把锁。
4、FIDO2
FIDO联盟发布了三套规范,以实现更简单、更强大的用户身份验证:FIDO通用双因素(FIDO U2 F)、FIDO通用认证框架(FIDO UAF)和客户端到认证器协议(CTAP)。CTAP是对W3C的Web身份验证(WebAuthn)规范的补充
;它们一起被称为FIDO 2。
FIDO2规范是万维网联盟(W3C)的Web认证(WebAuthn)规范和FIDO联盟的对应客户端到认证器协议(CTAP)。
FIDO2支持无密码、双因素和多因素用户体验,包括嵌入式(或绑定)身份验证器(如生物识别或PIN)或外部(或漫游)身份验证器(如FIDO安全密钥、移动的设备、可穿戴设备等)。
4.1 W3C WebAuthn
WebAuthn定义了一个标准的Web API,该API被内置到浏览器和平台中,以支持FIDO身份验证。
4.2 CTAP2
CTAP2允许使用外部身份验证器(FIDO安全密钥、移动的设备),通过USB、NFC或BLE在支持FIDO2的浏览器和操作系统上进行身份验证,以实现无密码、双因素或多因素身份验证体验。
4.3 CTAP1
FIDO U2F的新名称CTAP1允许使用现有的FIDO U2F设备(如FIDO安全密钥)通过USB、NFC或BLE在支持FIDO2的浏览器和操作系统上进行身份验证, 以获得双因素体验。
4.4 FIDO UAF
FIDO UAF支持无密码体验。使用FIDO UAF,用户携带安装有FIDO UAF堆栈的设备。然后,他们可以通过选择本地认证机制(诸如滑动手指、看着相机、对着麦克风说话、输入PIN等)来将他们的设备注册到在线服务。FIDO UAF协议允许服务选择向用户呈现哪些机制。
一旦注册,用户只要在需要向服务进行身份验证时就简单地重复本地身份验证操作。用户在从该设备进行身份验证时不再需要输入密码。FIDO UAF还允许联合收割机多种身份验证机制(如指纹+ PIN)的体验。
4.5 FIDO U2F
FIDO U2F支持双因素体验。FIDO U2F允许在线服务通过向用户登录添加强大的双因素来增强其现有密码基础设施的安全性。用户像以前一样使用用户名和密码登录。该服务还可以提示用户在其选择的任何时间呈现双因素设备(诸如FIDO安全密钥)。强双因素允许服务简化其密码(例如,4位数的PIN),而不会影响安全性。
在注册和认证期间,用户通过简单地按下USB设备上的按钮或通过NFC或BLE轻敲来呈现第二因素。用户可以在支持协议的所有在线服务中使用他们的FIDO U2F设备,利用Web浏览器中的内置支持。
随着FIDO2的发布,U2F被重新标记为CTAP1。
5、FIDO身份验证的优势
5.1 安全
FIDO2密码登录凭证在每个网站上都是唯一的,永远不会离开用户的设备,也不会存储在服务器上。此安全模型消除了网络钓鱼、所有形式的密码窃取和重放攻击的风险。
5.2 便利性
用户可以通过简单的内置方法(如设备上的指纹读取器或摄像头)或利用易于使用的FIDO安全密钥来解锁加密登录凭据。消费者可以选择最适合他们需求的设备。
5.3 隐私政策
因为FIDO加密密钥对于每个互联网站点是唯一的,所以它们不能用于跨站点跟踪用户。此外,生物识别数据在使用时永远不会离开用户的设备。
5.4 可扩展性
网站可以通过一个简单的JavaScript API调用启用FIDO2,该调用在消费者每天使用的数十亿设备上的领先浏览器和平台上得到支持。