裝置註冊

裝置註冊階段會將身分識別金鑰註冊到發行者系統,為裝置儲存 DC 做準備。

要求流程

流程說明

步驟 來源 說明
1 Android 裝置 系統已在使用者裝置上建立新的 DC 要求。發行者必須建立新的身分識別金鑰。使用者的裝置會呼叫 getDeviceRegistrationNonce,啟動這項程序。
2 Google 伺服器 Google 會將 getDeviceRegistrationNonce 要求轉送給發卡機構。
3 簽發者伺服器 發卡機構會產生隨機值,並將其與 deviceReferenceId 一併儲存,然後將隨機值傳回給 Google。
4 Google 伺服器 Google 會將隨機碼轉送至使用者的裝置。
5 Android 裝置 使用者的裝置會簽署隨機數,並將其嵌入 x509 憑證。 這項資訊會包含在 registerDevice 呼叫中,用於驗證裝置。
6 Google 伺服器 Google 會將 registerDevice 呼叫轉送給發卡機構。
7 簽發者伺服器 發卡機構會執行裝置完整性檢查,並儲存與裝置相關聯的身分識別金鑰。

如何驗證裝置完整性

裝置驗證是一項安全功能,發卡機構可在註冊裝置前驗證裝置完整性。這有助於防止註冊遭竄改或執行未經授權軟體的裝置。

如要驗證裝置完整性,核發者應採取下列行動:

  1. 驗證 /registerDevice 要求中傳送的憑證鏈結。 鏈結中的根憑證必須與 Google 提供的憑證一致。
  2. 確認根憑證不在憑證撤銷清單中。
  3. 剖析葉子憑證、讀取擴充功能,並驗證下列項目:
    • attestationChallenge 值與 /getDeviceRegistrationNonce 作業期間傳送的 nonce 相符。
    • teeEnforced.rootOfTrust 具有下列屬性:
      • deviceLocked=TRUE
      • verifiedBootState=VERIFIED
    • softwareEnforced.attestationApplicationId 中的套件名稱與 com.google.android.gmscom.google.android.gsf 相符。

說明裝置認證程序的各個部分

  • 憑證鏈結:憑證鏈結是一連串的憑證,用於驗證裝置的身分。鏈結中的根憑證是最受信任的憑證,鏈結中的每個後續憑證都會由上方的憑證簽署。
  • 憑證撤銷清單:憑證撤銷清單 (CRL) 會列出因故遭到撤銷的憑證。如果裝置認證憑證鏈結中的根憑證位於 CRL,則該憑證無效,且裝置認證不應受到信任。
  • 分葉憑證:分葉憑證是裝置專屬的憑證。當中包含裝置資訊,例如硬體 ID 和軟體版本。
  • 擴充功能:擴充功能是憑證中包含的額外資訊。裝置認證憑證包含多項擴充功能,可用於驗證裝置完整性。詳情請參閱憑證擴充資料結構定義