FIDO U2F定义了JavaScript API供开发者开发支持U2F设备的在线服务网站。U2F JS API分为两类:底层基于消息端口的API和上层应用API。在FIDO的规格文档中介绍底层API用于与U2F设备进行消息通讯(使用MessagePort Object),发送和接收消息。本文重点关注屏蔽了通讯细节的上层API接口。 使用WebIDL定义的u2f接口定义如下: register方法中各参数描述如下: register方法成功返回的数据(callback的参数)使用RegisterResponse结构。 其中各属性含义如下: sign方法中各参数描述如下: sign方法成功返回的数据(callback的参数)使用SignResponse结构。 其中各属性含义如下: register和sign方法失败时返回的错误码定义如下: 使用WebIDL定义的RegisterRequest结构如下:属性含义如下: 使用WebIDL定义的RegisteredKey结构如下:各属性含义如下: 让我们来到yubico的U2F设备测试网站(https://demo.yubico.com/u2f), 使用yubico的安全key,看看register方法和sign方法如何使用。
从淘宝上购买的两个U2F Key,如图1所示,其中一个飞天品牌的带蓝牙功能。
首先测试注册过程,如图2所示。
通过跟踪网站客户端与服务端的交互消息,我们发现开始注册过程后,客户端向服务端的提交了两次请求,对应《FIDO U2F设备应用与开发(一)-原理与协议》第3节描述的3个阶段中的第1和第3阶段。
客户端第一次向服务端提交请求后,参数包含用户名和口令,如图3所示。
在客户端JS脚本对服务端返回的注册请求进行register函数调用后,将register的注册数据提交给服务端,提交的表单数据如图4所示。
由图4提交的数据可以看到register返回成功,提交的表单数据为: 注册成功后,可执行鉴权(login)过程,如图5所示。
通过跟踪网站客户端与服务端的交互消息,第一次客户端请求时携带了用户名和密码,如图6所示。
在客户端JS脚本对服务端返回的签名请求进行sign函数调用后, U2F设备产生签名后,客户端将签名数据提交到服务端,如图7所示。
提交的表单数据为: 服务端 验证签名后,返回验证成功信息。 实验过程中,如果在交互时不按U2F设备的按钮和不插入设备,register和sign函数都会返回错误码。错误码的定义可参看2.4节。 u2f-api.js是yubico提供的U2F js api,封装了第2节接口规范中描述的接口。可从地址: https://demo.yubico.com/js/u2f-api.js 处获取。u2f-api.js中的主要定义如下: 请注意在这个脚本中将register和sign操作的超时时间定义为3免费云主机域名0秒: 在执行3.1节的注册过程时,通过跟踪浏览器消息,可以看到第一次向服务器请求后返回的页面中包含如下JS代码: 这段代码中,使用U2F的上层函数register进行了注册,读者可以与2.2节的函数参数做一下比对,在这段代码中registeredKeys参数使用是空数组“[]”。
仔细阅读u2f-api.js,会发现脚本使用了EXTENSION_ID为“kmendfapggjehodndflmmgagdbamhnfd”的chrome内置扩展完成与U2F设备的通讯。
在执行3.2节的鉴权过程时,通过跟踪浏览器消息,可以看到第一次向服务器请求后返回的页面中包含如下JS代码: 这段代码中,使用U2F的上层函数sign进行了注册。 使用购买的U2F设备在PC上对chrome、firefox、IE浏览器进行了测试。其中chrome版本为69,firefox版本为firefox quantum 62, 这两种浏览器目前都支持U2F设备。
在firefox中使用U2F需要打开一个开关(默认没有打开),如图8所示。
这里有个有趣的问题,测试时使用的网站仍然是https://demo.yubico.com/u2f ,JS脚本仍然使用的是u2f-api.js,前面提到这个脚本是针对chrome内置扩展应用与USB口通信的,在firefox中怎么也能正常使用呢?
原因就是firefox实现了自己的u2f对象,而且这个u2f对象的所有属性都是只读的,u2f-api.js没有改写这个对象,从控制台如下输出可以看到: IE浏览器使用的版本为11,不支持U2F设备。
在安卓手机上安装了chrome app,使用U2F设备的BLE模式(蓝牙功能)测试了U2F的支持,没有成功,在chrome调用register函数时,U2F设备没有闪烁。
这篇文章主要介绍win7关闭证书服务器的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Win7系统中很多的小程序服务其实大家在平时都用不上,这些服务和进程不仅占用了很大部分的资源,而且还会影响系统的运行速度和安全。一、如何关闭证书服…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。