2017-06-06 99 views
0

当用户想要注册自己的设备,依赖方提供一些参数,它们分别是:U2F FIDO - 应用与挑战参数

  • 一个挑战,
  • 的appid,协议
  • 版本

用户通过触摸设备上的按钮发送这些信息,然后执行“用户存在测试”:

dictionary RegisterResponse { DOMString registrationData; DOMString clientData; };

依赖方做他要做的与这些信息和过程完成!

但我不明白以下部分。基于U2F协议的规范:

注册请求消息 - U2F_REGISTER 此消息用于启动U2F令牌注册。 FIDO客户端首先与依赖方联系以获得询问,然后构造注册请求消息。注册请求消息由两部分组成: challenge参数是客户端数据的SHA-256哈希,是FIDO客户端准备的字符串化的JSON数据结构。除此之外,客户数据包含来自依赖方的挑战(因此参数的名称)。 应用程序参数[32字节]。应用程序参数是请求注册的应用程序的应用程序标识的SHA-256散列。 (参见[FIDOAppIDAndFacets]在参考书目的详细信息。)

https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-raw-message-formats.html

在该步骤该部分运行?

预先感谢您!

回答

1

您正在讨论注册,以便将密钥链接到帐户。注册密钥:

  1. 用户键入名称/密码并发布到服务器。
  2. 服务器回复RegisterRequestData(使用服务器端u2f库创建)。
  3. 客户端使用库函数u2f.register,它向U2F设备发出请求并获取一个RegisterResponse(具有设备注册信息的json)。这被发送回服务器。
  4. 服务器向服务器端u2f库提供答复并保存DeviceRegistration。

认证/登录类似,但是服务器向使用u2f.sign的客户端发送DeviceRegistration +质询并返回DeviceResponse。

,使一个模式说清楚,我想: https://developers.yubico.com/U2F/Libraries/Using_a_library.html