Digital Credentials Provisioning API は、主に次の 3 つのリソースモデルで構成されています。
| リソース | 説明 |
|---|---|
| デバイス | 物理デバイスと ID キーの一意のインスタンス。 |
| 検証 | 認証情報を発行する前にユーザーの ID を証明するプロセス。 |
| Credential | DC 自体。 |
発行元は、DC のライフサイクル全体を通じてこれらのリソースを作成し、管理する責任があります。
前提条件
この API の主な前提条件は、ISO/IEC 18013-5 によって定義される、DC を格納するためのデバイスによる Android Identity Credential APIの使用です。
リソースモデル
デバイス
Digital Credentials Provisioning API のモデルにおいて、デバイスとは、単にユーザーが Google ウォレット アプリを使用して DC を管理する Android 搭載デバイスを意味するものではありません。デバイスとは、以下の組み合わせを意味します。
- Android 搭載の物理デバイス。
- 公開鍵/秘密鍵のペア(「ID キー」と呼びます)
- 公開鍵は、発行元がデバイスの ID を確認するために使われます。
- 秘密鍵は、デバイスの安全なストレージに保存されます。
API 呼び出しを行う際、デバイスと認証情報の組み合わせはデバイス参照 ID(deviceReferenceId プロパティ)で識別されます。
デバイスが初めて発行元と通信すると、デバイスに一意のノンスが割り当てられます(リプレイ攻撃を防ぎ、鮮度が確保されます)。ノンスは、デバイスの ID キーで署名され、ID キーを含む証明書に埋め込まれます。今後は、この証明書を使用して、発行元によるデバイスの確認を行えます。
証明書の詳細については、Android IdentityCredential のドキュメントをご覧ください。
このリソースをデータベース テーブルとしてモデル化すると、次のようになります。identityKey プロパティは公開鍵の値です。
校正
検証とは、以下の組み合わせを意味します。
- 身元を証明するためにユーザーが提供した証拠
- 提供された証拠に基づいた発行元による判断
検証は、ユーザーがリクエストしている認証情報の種類に固有のものです。DC をプロビジョニングするときに、ユーザーは物理身分証明書の写真と、プロファイルの動画を提出します。Google は動画を使用して、その人物が本人である可能性を判断します。Google が発行元に提供する結果は「生体スコア」と呼ばれます。新しい認証情報タイプのサポートに伴い、新たな検証方法が追加されます。
次の表に、検証のステータスを示します。
| ステータス | 説明 | 最終状態 |
|---|---|---|
| 保留 | 発行元は、まだ決定を行っていません。 | いいえ |
| 承認済み | 発行元は、この証拠は満足のいくものであると判断しました。 | いいえ |
| 不承認 | 発行元は、この証拠は不十分であると判断しました。 | ○* |
| 挑戦 | 発行元が判断するには、さらに詳しい情報が必要です。 | いいえ |
| キャンセル済み | ユーザーが検証をキャンセルしました。 | ○ |
| 取り消し済み | 発行元が検証を取り消しました。 | ○* |
| 期限切れ | ユーザーは期限内にチャレンジを完了しませんでした。 | ○ |
アスタリスク(*)が付いたステータスは最終状態でないことがあります(人間による審査に誤りがあり、ステータスが手動で更新された場合)。
次の状態図は、考えられるステータス フローを示しています。
発行元が最初の証拠に基づいて決定を下せないこともあります。決定を行うために、ユーザーは追加の情報や証拠を発行元に提供するよう促されます。チャレンジの例としては、メールへの返信、発行元のウェブサイトへのアクセス、追加の証拠の提出などがあります。
このリソースをデータベース テーブルとしてモデル化すると、次のようになります。
認証情報
認証情報は、特定のデバイスの物理認証情報の仮想バージョンを表します。仮想認証情報が物理デバイスにプロビジョニングされるたびに、認証情報 ID が割り当てられます。同じ物理認証情報が複数のデバイスにプロビジョニングされると、毎回異なる認証情報 ID が使用されます。同様に、デバイスにプロビジョニングされた認証情報が削除されてから、同じデバイスに再びプロビジョニングされた場合は、別の認証情報 ID が使用されます。
ユーザーの認証情報の詳細が変更された場合(身分証明書の住所変更など)、関連するすべての仮想認証情報の詳細を更新する必要があります。1 つの認証情報に、そのような変更に対応するさまざまなバージョンを設定できます。現在のバージョンは、認証情報のバージョン ID を使用して追跡されます。
証明書利用者に認証情報を提示するには、デバイスでまず発行元からモバイル セキュリティ オブジェクト(MSO)を取得する必要があります。MSO には、発行元によって署名された認証情報のダイジェストが含まれます。MSO は、デバイスの ID キーによって生成され、署名された公開鍵である認証キーから作成されます。認証キーは、MSO をデバイスに効果的にバインドします。MSO と認証情報を組み合わせて、認証情報が発行元から発行されたものであることを証明します。
デバイスに認証情報がプロビジョニングされたら、デバイスから ProofOfProvisioning オブジェクトを発行元に返す必要があります。これにより、認証情報がデバイスに正常にプロビジョニングされ、デバイスの安全なストレージに保存されていることが発行元に通知されます。
認証情報のステータスには次のものがあります。
| ステータス | 説明 |
| ProvisionPending |
認証情報は Google ウォレットにリリースされていますが、プロビジョニングの証明は発行元に返されていません。認証情報バージョン ID が変更されると、認証情報がこのステータスになります。 この認証情報用に MSO はリリースされません。 |
| 有効 |
認証情報が Google ウォレットにリリースされ、プロビジョニングの証明が発行元に返されました。 MSO は、認証情報で利用可能です。
|
| 取り消し済み |
発行元が認証情報を完全に取り消しました。 この認証情報用に MSO はリリースされません。 この状態では、Google ウォレットには認証情報が表示されません。 |
| 削除済み |
ユーザーまたは Google ウォレットが、デバイスから認証情報を完全に削除しました。 この認証情報用に MSO はリリースされません。 この状態では、Google ウォレットには認証情報が表示されません。 |
次の状態図は、考えられるステータス フローを示しています。
このリソースをデータベース テーブルとしてモデル化すると、次のようになります。