FIDO(Fast IDentity Online联盟)是一个基于标准、可互操作的身份认证生态系统。
U2F(Universal 2nd Factor)是FIDO联盟提出的使用标准公钥密码学技术提供更强有力的身份认证协议。
U2F在常用的用户名/密码的认证基础上又增加了一层第二因子(2nd Factor)的保护,这重保护是通过物理硬件来支持的。
FIDO的官方网站用两张图介绍了U2F的应用原理,它把应用过程分解为两个阶段:
注册阶段,如图1所示:
图1中的流程如下:
U2F协议支持两个操作:注册(registration)与鉴权(authentication),这两个操作可分解为三个阶段,如图3所示。
在图3中,Relying Party(简称RP)就是第2节描述的在线服务网站。FIDO Client为客户端,三个阶段的流程如下:
注册请求消息如图4所示:
消息中各字段含义如下:
注册回应消息如图5所示:
消息中字段含义如下:
鉴权请求消息如图6所示:
消息中字段含义如下:
鉴权回应消息如图7所示:
消息中各字段含义如下:
前面的请求/回应消息中对challenge parameter的构建使用到clientdata,clientdata为一个JSON对象字符串,其对象结构ClientData定义如下:
dictionary ClientData {
DOMString typ;
DOMString challenge;
DOMString origin;
(DOMString or JwkKey) cid_pubkey;
};
ClientData结构中各属性含义如下:
1.https://fidoalliance.org/how-fido-works/
2.https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/FIDO-U2F-COMPLETE-v1.2-ps-20170411.pdf
3.http://www.ietf.org/rfc/rfc4648.txt
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。