概要

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 ウォレットには認証情報が表示されません。

次の状態図は、考えられるステータス フローを示しています。

このリソースをデータベース テーブルとしてモデル化すると、次のようになります。

認証情報リソースのデータベース テーブルの例。