Digital Credentials Provisioning API 依據三種主要資源模型分類:
| 資源 | 說明 |
|---|---|
| 裝置 | 實體裝置和身分識別金鑰的專屬執行個體。 |
| 校對 | 在核發憑證前,證明使用者身分的程序。 |
| 憑證 | DC 本身。 |
身為發行者,您有責任在 DC 的整個生命週期中建立及管理這些資源。
假設
這項 API 的主要假設是裝置使用 Android Identity Credential API 儲存 ISO/IEC 18013-5 定義的 DC。
資源模型
裝置
在 Digital Credentials Provisioning API 模型中,裝置不只是指使用者透過 Google 錢包應用程式管理數位憑證的 Android 裝置,而是以下項目的組合:
- 搭載 Android 的實體裝置。
- 公開/私密金鑰組 (稱為「身分識別金鑰」)。
- 發行者會使用公開金鑰驗證裝置身分。
- 私密金鑰會儲存在裝置的安全儲存空間中。
進行 API 呼叫時,裝置和憑證組合會由裝置參照 ID (deviceReferenceId 屬性) 識別。
裝置首次與發卡機構通訊時,系統會提供不重複的隨機數 (防止重送攻擊並確保新鮮度)。隨機數會由裝置的身分識別金鑰簽署,並嵌入含有身分識別金鑰的憑證中。日後,憑證可用於向簽發者驗證裝置。
如要進一步瞭解憑證,請參閱 Android IdentityCredential 說明文件。
如果將這項資源建構為資料庫表格,看起來會類似下圖。請注意,identityKey 屬性會是公開金鑰值。
校樣
校對是下列項目的組合:
- 使用者提供的身分證明
- 發卡機構根據所提供的證據做出的決定
驗證程序會因使用者要求的憑證類型而異。佈建數位憑證時,使用者會提供實體身分證件的照片和個人資料影片。Google 會使用這部影片計算影片中的人是真人的可能性。Google 提供給發卡機構的結果稱為「活體偵測分數」。隨著支援新的憑證類型,系統會新增其他驗證方法。
下表列出校對的可能狀態。
| 狀態 | 說明 | 最終狀態 |
|---|---|---|
| 待處理 | 發卡機構尚未做出決定。 | 否 |
| 已接受 | 發卡機構認為證據充分。 | 否 |
| 已遭拒 | 發卡機構認為證據不足。 | 是* |
| 受影響 | 發卡機構需要更多資訊才能做出決定。 | 否 |
| 已取消 | 使用者已取消校對。 | 是 |
| 已撤銷 | 發卡機構已撤銷驗證。 | 是* |
| 已過期 | 使用者未及時完成挑戰。 | 是 |
如果人工審查員出錯並手動更新狀態,標有星號 (*) 的狀態可能不是最終狀態。
下圖說明可能的狀態流程:
在某些情況下,發行者可能無法根據初步證據做出決定。為協助做出決定,系統可能會要求使用者向發卡機構提供額外資訊或證據。例如回覆郵件、造訪發卡機構網站,或提交額外證據。
如果將這項資源當做資料庫表格建立模型,看起來會類似下圖。
憑證
憑證代表特定裝置的實體憑證虛擬版本。每次在實體裝置上佈建虛擬憑證時,系統都會指派憑證 ID。如果將相同的實體憑證佈建到不同裝置,每次都會有不同的憑證 ID。同樣地,如果憑證已佈建至裝置,但遭到刪除,然後再次佈建至同一部裝置,憑證 ID 就會不同。
如果使用者憑證的詳細資料有變更 (例如身分證件的地址變更),就必須更新所有相關聯的虛擬憑證。單一憑證可以有對應這些變更的不同版本。目前版本是使用憑證版本 ID 追蹤。
如要向信賴方出示憑證,裝置必須先從簽發者擷取行動安全物件 (MSO)。MSO 包含由核發者簽署的憑證摘要。MSO 是由驗證金鑰建立,也就是由裝置的身分識別金鑰產生並簽署的公開金鑰。驗證金鑰可有效將 MSO 繫結至裝置。MSO 和憑證的組合可向信賴方證明憑證來自發行者。
憑證佈建到裝置後,裝置必須將 ProofOfProvisioning 物件傳回給發行者。這會通知發行者憑證已成功佈建至裝置,並儲存在裝置的安全儲存空間中。
憑證可能處於以下狀態:
| 狀態 | 說明 |
| ProvisionPending |
憑證已發布至 Google 錢包,但佈建證明尚未退還給發行者。憑證版本 ID 變更時,憑證會移至這個狀態。 系統不會為這項憑證發布 MSO。 |
| 有效 |
憑證已發布至 Google 錢包,且佈建證明已傳回給發行者。 MSO 可用於憑證。
|
| 已撤銷 |
發行機構已永久撤銷憑證。 系統不會為這項憑證發布 MSO。 Google 錢包不會在這個狀態下出示憑證。 |
| 已刪除 |
使用者或 Google 錢包已從裝置永久刪除憑證。 系統不會為這項憑證發布 MSO。 Google 錢包不會在這個狀態下出示憑證。 |
下圖說明可能的狀態流程:
如果將這項資源當做資料庫表格建立模型,看起來會類似下圖。