裝置註冊階段會先在核發者系統中註冊身分金鑰,為裝置做好儲存 VDC 的準備。
要求流程
流程說明
| 步驟 | 來源 | 說明 |
|---|---|---|
| 1 | Android 裝置 |
使用者的裝置上已建立新的 VDC 要求。發卡機構必須建立新的身分金鑰。使用者的裝置會呼叫 getDeviceRegistrationNonce,啟動這項程序。 |
| 2 | Google 伺服器 |
Google 會將 getDeviceRegistrationNonce 要求轉送給發卡機構。 |
| 3 | 發卡機構伺服器 |
發卡機構會產生 Nonce,並將其與 deviceReferenceId 一併儲存,然後將 Nonce 傳回 Google。
|
| 4 | Google 伺服器 | Google 將 Nonce 轉送至使用者裝置。 |
| 5 | Android 裝置 |
使用者的裝置會簽署 Nonce,並將其嵌入 x509 憑證。
這項資訊會納入 registerDevice 呼叫,用於驗證裝置。
|
| 6 | Google 伺服器 | Google 會將 registerDevice 呼叫轉送給發卡機構。 |
| 7 | 發卡機構伺服器 | 發行者會執行裝置完整性檢查,並儲存與裝置相關聯的身分識別金鑰。 |
如何驗證裝置完整性
裝置驗證是一項安全防護功能,發卡機構可在註冊裝置前驗證裝置完整性。這有助於防止註冊遭竄改或執行未經授權軟體的裝置。
為驗證裝置完整性,發卡機構應:
- 驗證
/registerDevice要求中傳送的憑證鏈結。鏈結中的根憑證必須與 Google 提供的憑證一致。 - 確認根憑證不在憑證撤銷清單中。
- 剖析分葉憑證、讀取擴充功能,並驗證下列項目:
attestationChallenge值與/getDeviceRegistrationNonce作業期間傳送的nonce相符。teeEnforced.rootOfTrust具有下列屬性:deviceLocked=TRUEverifiedBootState=VERIFIED
softwareEnforced.attestationApplicationId中的套件名稱與com.google.android.gms或com.google.android.gsf相符。
裝置認證程序各部分的說明
- 憑證鏈結:憑證鏈結是一連串的憑證,用於驗證裝置的身分。鏈結中的根憑證是最受信任的憑證,鏈結中的每個後續憑證都由其上方的憑證簽署。
- 憑證撤銷清單:憑證撤銷清單 (CRL) 會列出因故撤銷的憑證。如果裝置認證憑證鏈結中的根憑證位於 CRL,則憑證無效,且不應信任裝置認證。
- 分葉憑證:分葉憑證是裝置專屬的憑證。當中包含裝置資訊,例如硬體 ID 和軟體版本。
- 擴充欄位:擴充欄位是憑證中包含的額外資訊。裝置認證憑證包含多個擴充功能,可用於驗證裝置完整性。詳情請參閱憑證擴充資料結構定義。