2017-06-06 33 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