05月18, 2016

【译】FIDO联盟规范简介

原文:http://www.zcfy.cc/article/189

FIDO(Fast IDentity Online)联盟成立于2012年7月,致力于解决当前网络环境下强认证设备间缺乏互操作性,以及用户需要创建并记住多套用户名和密码的问题。FIDO联盟将开发出开放、可扩展、具有互操作性的规范,取代依赖密码认证的传统方式。这个针对安全设备和Web浏览器的规范,将允许任何网站和云应用与支持FIDO的设备通信,实现更便捷、更安全的在线用户认证。

FIDO联盟有两套规范:U2F和UAF。联盟为部署该技术者提供维护新的fido-dev@fidoalliance.org公共邮件讨论列表的支持。

最新修订版可以访问规范下载页面

用户使用方式

FIDO支持两种用户使用方式,面向各种使用和部署场景。FIDO协议基于公钥加密,对钓鱼具有强搞抗力。

graphic_TheUserExperience

无密码方式(UAF)

  • 用户的客户端设备安装了UAF协议实现
  • 用户出示本地生物特征或PIN
  • 网站可选择是否记住密码

无口令FIDO方式通过UAF(Universal Authentication Framework)协议支持。这种方式下,用户需要向在线服务注册自己的设备,并选择一种本地认证机制,比如指纹识别、虹膜识别、语音识别,或者输入PIN码。UAF协议允许服务选择向用户展示哪种认证机制。

注册后,再次认证服务只需重复之前的本地认证操作即可,而无需通过设备再次输入密码。UAF同样支持组合使用多种认证机制,比如指纹+PIN。

第二因子方式(U2F)

  • 用户携带Web浏览器内置支持的U2F设备
  • 用户出示U2F设备
  • 网站可以使用简单的密码(比如4位PIN)

第二因子FIDO方式通过U2F(Universal Second Factor)协议支持。这种方式下,在线服务可以增强原有的密码认证机制,即再使用第二因子验证用户。用户还像以前一样使用用户名和密码登录,但服务可以提示用户出示第二因子设备。有了第二因子设备,服务可以简化代码(如只有4位的PIN),但并不牺牲安全。

注册和认证过程中,用户需要出示第二因子设备,比如在某个USB设备上按一下按钮,或者通过NFC刷一下。只要在线服务利用Web浏览器对该协议的内置支持实现了相应的认证机制,用户就可以在使用该在线服务时使用FIDO U2F设备。

FIDO原理

FIDO协议使用标准的公共密钥加密技术实现强认证。在向某在线服务注册过程中,用户的客户端设备会生成新的密钥对。然后,设备保存私钥,而将公钥注册到在线服务。完成认证需要客户端设备表明自身拥有服务对应的私钥,为此设备要签署一条口令。只有在用户本地解锁的情况下才可以使用客户端的私钥。本地解锁需要用户通过一种友好的方式完成,比如按指纹、输PIN码、对麦克风讲话、插入第二因子设备,或者按下某个按钮。

FIDO协议从设计之初就考虑了保护用户隐私。该协议不会向在线服务提供可供它们之间协作或者跨设备跟踪用户的任何信息。如果采集了用户的生物特征,则该特征不会离开用户设备。

FIDO注册

graphic_Registration

注册:

  • 用户收到提示,可选择与在线服务接受策略匹配的一项可用FIDO认证装置
  • 用户通过指纹识别器、第二因子设备上的按钮或安全地输入PIN码或其他方法解锁FIDO认证装置
  • 用户的设备生成一对特定于本地设备、在线服务和用户账号的公钥/私钥
  • 设备将公钥发送给在线服务并与用户账号关联。私钥以及与本地认证方法有关的任何信息(比如生物特征或采样)永远不会离开本地设备。

FIDO登录

graphic_Login

登录:

  • 在线服务检测到与其接受策略匹配的且之前注册过的设备后,要求用户签署口令(sign a challenge);
  • 用户使用注册时使用的方法解锁FIDO认证装置;
  • 设备使用服务提供的用户账号标识选择正确的密钥并签署服务的口令。
  • 客户端设备将签署的口令发回服务,服务验证口令与自己存储的公钥,然后让用户登录。

FIDO特色

FIDO的核心思想是(1)易用、(2)隐私和安全,以及(3)标准化。对于实现超越密码(乃至OTP,即一次性密码)的认证而言,过去,任何公司都要面临一大堆专有客户端和协议。

FIDO通过将客户端和协议标准化解决这个问题,由此也会催生生物特征、PIN码及第二因子等客户端认证方法的繁荣局面。

FIDO标准化

graphic_StandardizationAll

在线加密协议标准化

FIDO标准化了客户端与在线服务之间使用的认证协议。这个协议以标准的公钥加密为基础,即客户端首先使用公钥向在线服务注册,然后在认证过程中,服务再通过请用户签署口令来验证客户端所拥有的私钥。协议的设计充分考虑了在如今的互联网上保护用户隐私和保证用户安全。

graphic_StandardizationCrypto

针对本地认证的客户端标准化

FIDO标准为用户可能使用的本地认证方法定义了客户端公共接口。客户端可以随着操作系统或Web浏览器预先安装到位。而安全PIN、生物特征(面部、语音、虹膜、指纹等)和第二因子设备等认证方法,可以通过这个标准的接口“插入”到客户端。

graphic_StandardizationPluggableLocalAuth

英文原文:https://fidoalliance.org/specifications/overview/

本文链接:http://lisongfeng.cn/post/fido-alliance-specifications-overview.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。