検証可能な資格情報のしくみについて説明する
分散化識別子は、検証可能な資格情報の発行、提示、検証に使用されるプロセスの重要なコンポーネントであり、その提示と共有をいつどのように行うかをユーザーが管理できるのは、これがあるからです。 つまり、検証可能な資格情報は DID によって実現されます。
検証可能な資格情報エコシステムに関与するエンティティ
まず、重要なこととして、検証可能な資格情報データ モデル v1.1 に関する W3C 勧告に定義されているように、検証可能な資格情報エコシステムに関与する関係者の一部について説明します。
- 発行者 – 発行者は検証可能な資格情報を作成します。 発行者の例としては、企業、政府機関、業界団体などがあります。 発行者は、資格情報のサブジェクトとしてのユーザーに関するクレームをアサートします。
- サブジェクト – サブジェクトは、資格情報で求められているクレームの対象のエンティティです。 検証可能な資格情報のサブジェクトは、一般的には人ですが、物や動物である可能性もあります。 サブジェクトが物になる例として、車両が都道府県に登録されていることをアサートする検証可能な資格情報があります。 同様に、動物がサブジェクトになるのは、ペットの登録と狂犬病ワクチン接種が済んでいることをアサートする資格情報のような場合です。 このシナリオでは、サブジェクトが人であると想定します。シナリオの中で、そのサブジェクトのことをユーザーと言い表す場合があります。
- 保有者 – 保有者は、1 つ以上の検証可能な資格情報を保持しているエンティティです。 保有者の例としては、学生、従業員、顧客などがあります。保有者はサブジェクトと異なる場合があります。たとえば、ペットの飼い主が、ペット (サブジェクト) の登録とワクチン接種が済んでいることをアサートする資格情報を保持しているような場合です。 この例では、わかりやすくするために保有者をサブジェクトと同じにして、シナリオ内でユーザーまたは保有者と言い表します。
- 検証者 – 検証者は、検証可能な資格情報を処理のために受け取るエンティティです。 検証者としての働きを提供できるエンティティの例としては、雇用主、セキュリティ担当者、Web サイト、大学などがあります。
- 検証可能なデータ レジストリ – 検証可能なデータ レジストリは、検証可能な資格情報で使用される DID や公開キーなどのデータの作成と記録に関与するシステムです。 これらのシステムは通常、分散型台帳、ブロックチェーン、分散ファイル システム、またはその他の信頼されたデータ ストレージなどの分散ネットワークです。 使用されるレジストリの種類は DID メソッドによって異なります。 検証可能な資格情報エコシステム内には、多数のレジストリが存在する可能性があります。 これらのレジストリのコレクションは、信頼システムを表す、基になるネットワークと考えることができます。
検証可能な資格情報のトランザクションに関与するすべての関係者 (発行者、ユーザー、検証者) に、関連付けられた DID ドキュメントに解決できる固有の一意な DID があります。
デジタル ウォレット
検証可能な資格情報エコシステムのもう 1 つの重要なコンポーネントは、デジタル ウォレットです。 簡単に言うと、デジタル ウォレットは物理的な財布をソフトウェア アプリケーションとして表現したものです。 物理的な財布と同様に、資格情報 (たとえば、搭乗券、図書館カード、お金、許可証、その他多くの種類の資格情報) や個人データを保持するために使用します。
実際には、デジタル ウォレットはそれだけのものではありません。 デジタル ウォレットには 2 つの部分があります。ウォレット自体とデジタル エージェントです。 ウォレットは、すべての資格情報、許可証、個人データなど、そこに格納するあらゆるもののコンテナーとして機能します。デジタル エージェントは、ウォレットの操作を管理するソフトウェアです。 エージェントは、資格情報を物理的な財布の中に入れておき、ID の確認を求める相手に提示するときにそれを取り出すユーザーに少し似ています。 検証可能な資格情報エコシステムのコンテキストでは、エージェントはもっと多くのことを行います。 エージェントは、エンド ユーザー (デジタル ウォレットの保有者) に代わって、公開と秘密のキー ペアと DID の生成、資格情報の要求と提示 (通常は QR コードを使用)、資格情報の発行者および検証者との通信へのデジタル署名などを行います。 これらの一部、たとえば暗号化キー、DID、デジタル署名などの作成は、ユーザーに対して透過的ですが、検証可能な資格情報を発行して検証するプロセスで使用される重要なコンポーネントです。
エージェントは一般的にウォレットに組み込まれているため、エンドユーザーの観点から見ると、デジタル エージェントの機能はウォレット自体と区別できません。 このドキュメントでは、ウォレットとデジタル エージェントを 1 つのものとして扱い、それをデジタル ウォレットと言い表します。
シナリオと検証可能な資格情報フロー
Alice (ユーザー) は、Woodgrove, Inc. (発行者) の従業員であり、関連組織である Proseware (検証者) に従業員割引を求めようとしています。
- 前述のように、すべての関係者は公開キーと DID を持ち、それらは分散型台帳などの検証可能なデータ レジストリに記録されます。 煩雑さを最小限にするため、示されている図は、レジストリ内のこの情報の記録を Woodgrove のみについて表しています。
- Alice は Woodgrove の従業員ポータルにログインし、雇用証明の資格情報を要求します。 この時点で、Woodgrove は従業員ポータル サイトに QR コードを表示できます。 Alice が自分のモバイル デバイス上のデジタル ウォレット アプリケーション (Microsoft Authenticator アプリなど) で QR コードをスキャンすると、Alice が実際に従業員であることを検証する Woodgrove の構成証明モデルが開始されます。 構成証明にはさまざまな形式があります。 たとえば、Woodgrove は自社のディレクトリに対する認証を Alice に要求できます。Woodgrove は、ID の検証と証明を行うサード パーティが関与する ID 証明の体験を Alice に要求することや、PIN の入力を Alice に要求することもできます。 このシナリオでは、Alice がモバイル デバイス上のデジタル ウォレットを使用して、PIN を入力するだけで済むものとします。
- Alice が従業員であることが Woodgrove によって検証されたら、Woodgrove から資格情報の応答があります。 Woodgrove が資格情報を発行するとき、それには次のものが含まれます。
- Woodgrove の DID (発行者の DID)
- サブジェクトの DID (Alice がサブジェクト)。
- Woodgrove が証明しようとしているクレーム。 この場合、Woodgrove は、Alice が 2011 年からプログラム マネージャーの役職を保持していることを証明しています。
- Woodgrove の署名 (発行者の署名)。 Woodgrove は、秘密キーを使用して資格情報に署名します。
- その資格情報を Alice が受け入れると、デジタル ウォレットに追加されます。 これで Alice は資格情報を取得したので、コンピューターを購入するために Proseware の Web サイトにアクセスします。
- 割引を受ける前に、Proseware は Alice に雇用の証明を提示することを要求します。
- ここで Alice はデジタル ウォレットを操作して、自分に代わってその資格情報を Proseware に提示することをウォレットに許可できます。 提示内容には次のものが含まれます。
- Woodgrove によって発行された資格情報
- Woodgrove の DID (発行者の DID)
- Alice の DID (サブジェクトの DID)。
- Woodgrove が証明しようとしているクレーム。 この場合、Woodgrove は、Alice が 2011 年からプログラム マネージャーの役職を保持していることを証明しています。
- Woodgrove の署名 (発行者の署名)。 Woodgrove は、秘密キーを使用して資格情報に署名します。
- Alice の署名 (サブジェクトの署名)。 Alice は秘密キーを使用して資格情報に署名します。
- Woodgrove によって発行された資格情報
- Proseware は雇用証明を受け取り、資格情報が Woodgrove によって発行されたこと、資格情報のサブジェクトが Alice であることを確認するために、いくつかの検索を行います。
- サブジェクトを確認する:
- 資格情報には Alice の DID が含まれているため、Proseware は DID を解決して、公開キーを含む DID ドキュメントを取得できます。
- 資格情報は Alice によって署名されているため、Proseware は公開キーを使用して、資格情報の署名が、サブジェクトとしての Alice によって実際に行われたものかどうかを確認できます。
- 発行者を確認する:
- 資格情報には Woodgrove の DID が含まれているため、Proseware は DID を解決して、公開キーを含む Woodgrove の DID ドキュメントを取得できます。
- 資格情報には Woodgrove の署名も含まれているため、Proseware は公開キーを使用して、資格情報の署名が実際に発行者としての Woodgrove によるものであることを確認できます。
- 発行者を確認する過程で、Proseware が Woodgrove に直接接続する必要はまったくありませんでした。 Proseware は、分散データ レジストリに接続するだけで済みます
- これで Proseware が Alice の資格情報を受け取って検証したので、Proseware のビジネス ロジックが開始され、Alice が割引価格でコンピューターを購入できるようになります。
- サブジェクトを確認する:
発行、提示、トランザクション検証のトランザクションでは、検証可能な資格情報の価値を強調するのに役立つ、注目に値する点がいくつかあります。
- 資格情報を発行するとき、提示されるクレームは、目的を満たすために必要な最小セットのクレームです。 この場合、資格情報に含める必要があるのは、従業員の役職と雇用が開始された年のクレームのみです。 これにより、共有される個人情報の量が制限されます。
- 資格情報を管理するのはユーザーであり、資格情報を誰と共有するかもユーザーが決定します。 さらに、ユーザーのウォレットには、資格情報の共有相手であるエンティティのログやその他の情報が保持されます。
- 検証者が資格情報を検証するとき、発行者に接続する必要はありません。 検証者は、発行者の DID を解決して公開キーを取得し、公開キーを使用して、資格情報に表示される発行者の署名を検証できます。
資格情報の一般的なシナリオとして、資格情報の有効期限が切れる場合や、発行者がその資格情報を取り消すことが必要になる場合があります。 検証可能な資格情報データ モデル v1.1 に関する W3C 勧告では、これらのシナリオを考慮したプロパティ フィールドが資格情報に含まれています。
Alice のデジタル ウォレットでは、資格情報は、物理的なウォレットに入れる種類の資格情報のようなカードとして示されています。 ただし、実際には、検証可能な資格情報は、一連のキーと値のペアで構成されたコンピューターで読み取り可能な JSON データ構造であり、発行者の DID、資格情報でアサートされているクレーム、デジタル署名などが含まれています。
オンボーディングの検証可能な資格情報シナリオの詳細なデモについては、https://aka.ms/vcdemoにアクセスしてください。