FIDO U2F NFC协议

来源:互联网 发布:达内c语言视频 编辑:程序博客网 时间:2024/06/09 20:36

原文链接:http://blog.sina.com.cn/s/blog_625033800102vzf1.html


本来计划写U2F RawMessage的内容的,但是发现FIDO联盟在2015年5月份发布的最新的U2F规范中,增加了NFC协议,所以先写下NFC的协议吧。

FIDO U2F NFC的协议其实非常简单,就是定义了一下FIDO U2F的AID和APDU的规范。

1.协议简介

FIDO客户端和认证设备之间通过NFC进行通讯,过程如下:

(1)客户端发送选择applet指令

(2)认证设备返回成功

(3)客户端发送操作指令(注册、认证)

(5)认证设备返回响应数据或者错误


2.封包的问题

U2F NFC协议不需要对消息做任何额外的封包操作(比如USB HID协议,需要对消息进行封包一样)。消息只需要按照文档U2F RawMessage中的定义直接发送到认证设备即可。


3.APDU的长度

部分响应数据可能比较长,一条短APDU不能传完,所以U2F 认证设备必须按下面的规则应答:

 

  • 如果请求指令是扩展长度,认证设备的应答必须使用扩展APDU格式
  • 如果请求指令不是扩展长度,认证设备的应答必须使用ISO7816-4 APDU链,比如:
[FIDO]U2F <wbr>NFC协议

5.Applet选择

FIDO客户端通过NFC与认证设备进行认证/注册操作,每次都需要从选择applet指令开始。选择之后的指令就参考U2F RawMessage中的定义即可。

FIDI U2F的AID由RID+AC+AX组成

 

域值RID0xA000000647AC0x2FAX0x0001所以通过FIDOU2F AID来选择applet的指令是:

 

00 A4 04 00 08A0000006472F0001

FIDO认证设备对选择applet的命令成功的响应为版本信息“U2F_V2”,选择applet成功的响应为:

0x5532465F56329000


完成选择applet,剩下的就参考U2F应用层的指令进行即可,下一篇真的写U2F Raw Message了。

原创粉丝点击