數位憑證是可透過加密編譯驗證的文件,可用於驗證、授權或以其他方式提供使用者資訊。這些項目通常是行動駕照、數位護照、登機證等。這些項目位於稱為數位錢包的虛擬容器中,並屬於 W3C 標準的一部分,可指定如何存取及擷取這些項目。這個標準適用於使用 W3C 憑證管理 API 的網頁用途,以及使用憑證管理工具的 DigitalCredential API 的 Android 裝置。
瞭解數位憑證
在現實世界中,使用者可能會將身分證件放在錢包中,並在被要求時出示給要求方:
在這種情況下,使用者通常只有一個錢包,並從錢包中擷取所需的憑證,以便提供給要求者。錢包大多可互通使用,且通常可儲存相同的內容。
數位憑證有幾個主要差異:
- 使用者應擁有多個錢包,其中可包含各種不同的憑證。錢包會決定可在其中儲存哪些憑證。
- 要求者現在是應用程式,而非真人,因此稱為驗證者。
- 憑證呈現作業會在軟體中執行,也就是說,API 途徑會擷取並呈現憑證 - 在 Android 中,這就是憑證管理工具。
因此,憑證管理工具會接手先前由使用者處理的幾個角色:
- 在 Android 上,錢包必須向 Credential Manager 註冊憑證中繼資料,才能列在 Credential Manager UI 中。
- Credential Manager 會根據要求比對錢包中的憑證,並提供清單供使用者選取。
- 當使用者在清單中選取憑證時,憑證管理工具就會叫用錢包,後者會處理剩餘的交易 (顯示 UI 等),並將憑證傳回應用程式。
這裡顯示這個流程:
使用者體驗
如 Android 流程中所示,使用者只需與憑證管理工具 UI 互動一次,即可選取適當的憑證。以下是選取器的範例:

標準
數位憑證要求會使用 OpenID4VP 標準建立。您可以在數位憑證示範網站中查看要求範例。
數位憑證回應通常會以標準憑證格式傳回。這些標準是由不同的標準機構維護,包括 W3C 可驗證憑證、sd-jwt 和 mdoc。
您也可以使用自訂通訊協定,但建議您在應用程式中使用其中一種標準通訊協定。
實際演練
您可以使用 Android 錢包和網頁式驗證器,測試跨平台的數位憑證流程:
- 在 Android 手機上安裝 CMWallet 公開範例。您可以從存放區提取並直接從 Android Studio 安裝,或是前往 https://github.com/digitalcredentialsdev/CMWallet/actions 並選取最新版本,存取最新的
app-debug.apk
檔案。 - 開啟 CMWallet,將中繼資料註冊至憑證管理工具。請確認藍牙已開啟,以便裝置彼此連線。
- 前往 https://digital-credentials.dev/ 並選取
Request Credentials (OpenID4VP)
。 - 接受警告提示,然後使用手機掃描 QR code,接著選取「使用密碼金鑰」,然後輕觸確認畫面,即可顯示可用的憑證。
- 選取 CMWallet 中的憑證,即可返回瀏覽器。瀏覽器應會顯示傳回的憑證。