總覽

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 錢包不會在這個狀態下出示憑證。

下圖說明可能的狀態流程:

如果將這項資源當做資料庫表格建立模型,看起來會類似下圖。

憑證資源的資料庫表範例。