IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ティービーシーエーソフト,インコーポレイッテッドの特許一覧

<>
  • 特許-資格証明書検証用検証要件文書 図1
  • 特許-資格証明書検証用検証要件文書 図2
  • 特許-資格証明書検証用検証要件文書 図3
  • 特許-資格証明書検証用検証要件文書 図4
  • 特許-資格証明書検証用検証要件文書 図5
  • 特許-資格証明書検証用検証要件文書 図6
  • 特許-資格証明書検証用検証要件文書 図7
  • 特許-資格証明書検証用検証要件文書 図8
  • 特許-資格証明書検証用検証要件文書 図9
  • 特許-資格証明書検証用検証要件文書 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-27
(45)【発行日】2025-03-07
(54)【発明の名称】資格証明書検証用検証要件文書
(51)【国際特許分類】
   G06F 21/33 20130101AFI20250228BHJP
【FI】
G06F21/33
【請求項の数】 27
(21)【出願番号】P 2022523228
(86)(22)【出願日】2020-10-19
(65)【公表番号】
(43)【公表日】2022-12-15
(86)【国際出願番号】 US2020056388
(87)【国際公開番号】W WO2021077118
(87)【国際公開日】2021-04-22
【審査請求日】2023-10-11
(31)【優先権主張番号】62/923,471
(32)【優先日】2019-10-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519016413
【氏名又は名称】ティービーシーエーソフト,インコーポレイテッド
(74)【代理人】
【識別番号】100082418
【弁理士】
【氏名又は名称】山口 朔生
(74)【代理人】
【識別番号】100167601
【弁理士】
【氏名又は名称】大島 信之
(74)【代理人】
【識別番号】100201329
【弁理士】
【氏名又は名称】山口 真二郎
(74)【代理人】
【識別番号】100220917
【弁理士】
【氏名又は名称】松本 忠大
(72)【発明者】
【氏名】リ、チャーシン
(72)【発明者】
【氏名】タリー、アンドリュー
【審査官】▲柳▼谷 侑
(56)【参考文献】
【文献】特開2008-228089(JP,A)
【文献】米国特許出願公開第2018/0268151(US,A1)
【文献】特開2002-163395(JP,A)
【文献】Martin Schanzenbach et al.,ZKlaims:Privacy-preserving Attribute-based Credentials using Non-interactive Zero-knowledge Techniques,ZKlaims:Privacy-preserving Attribute-based Credentials using Non-interactive Zero-knowledge Technique,GE,2019年07月22日,pp.325-332,https://arxiv.org/pdf/1907.09579,DOI:10.5220/0007772903250322
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/14
G06F 21/00 - 21/10
G06F 21/30 - 21/46
G06F 21/60 - 21/88
G09C 1/00 - 5/00
H04K 1/00 - 3/00
H04L 9/00 - 9/40
(57)【特許請求の範囲】
【請求項1】
第1の資格証明書管理システムが分散検証要件文書(verification requirement document、VRD)取引合意ネットワーク上に記憶されたVRDを使用して資格証明書所有者の資格証明書検証を要求するための方法であって、
(a)検証者機器から前記VRDのVRD IDおよび資格証明書所有者識別子を受信するとき、前記第1の資格証明書管理システムは、前記分散VRD取引合意ネットワークに前記VRD IDを送信して前記VRDを取り出し、第2の資格証明書管理システムに前記VRDおよび前記資格証明書所有者識別子を送信するステップを備える方法において、
前記VRDは、前記VRDで指定された少なくとも1つの属性の各々および少なくとも1つの述語の各々を検証するために、前記少なくとも1つの属性、前記少なくとも1つの述語、または前記少なくとも1つの属性と前記少なくとも1つの述語の両方を、少なくとも1つのタイプの資格証明書を規定する要件と共に含むことを特徴とする、
方法。
【請求項2】
(b)前記第1の資格証明書管理システムは、前記第2の資格証明書管理システムから証明を受信し、前記証明が、前記VRDで指定された前記少なくとも1つの属性および前記少なくとも1つの述語の各々に関連する要件を満足させるかどうかを確認するステップと、(c)各前記要件を満足させたとき、前記第1の資格証明書管理システムは、検証のために分散資格証明書管理取引合意ネットワークに前記証明、ならびに前記VRDで指定された前記少なくとも1つの属性および前記少なくとも1つの述語のうち少なくとも一方を送信するステップと、(d)前記分散資格証明書管理取引合意ネットワークから検証応答を受信すると、前記第1の資格証明書管理システムは、前記検証者機器に資格証明書検証結果を送信するステップと、をさらに備える、請求項1に記載の方法。
【請求項3】
前記第2の資格証明書管理システムは、前記VRDで指定された前記少なくとも1つの属性および前記少なくとも1つの述語の各々の前記要件を満足させる、前記資格証明書所有者の少なくとも1つの資格証明書を選択し、前記VRDで指定された前記少なくとも1つの属性および前記少なくとも1つの述語の各々、ならびに前記少なくとも1つの選択された資格証明書の各々の資格証明書識別子を前記分散資格証明書管理取引合意ネットワークに送信し、前記分散資格証明書管理取引合意ネットワークから受信した前記証明を前記第1の資格証明書管理システムに送信するステップをさらに備える、請求項2に記載の方法。
【請求項4】
前記資格証明書所有者識別子は、資格証明書所有者ID、および前記資格証明書所有者に関連する前記第2の資格証明書管理システムの識別子を備えることを特徴とする、請求項1に記載の方法。
【請求項5】
前記VRDは、前記VRD ID、VRD名、前記少なくとも1つの属性および前記少なくとも1つの述語のうち少なくとも一方、ならびにVRD発行者のDIDからなるフィールドを有することを特徴とする、請求項2に記載の方法。
【請求項6】
前記少なくとも1つの属性の各々は、対応する要件、属性名、および公開オプションを含み、前記対応する要件は、前記資格証明書所有者の少なくとも1つのタイプの資格証明書を規定し、少なくとも1つの検索条件を含むことを特徴とする、請求項5に記載の方法。
【請求項7】
前記少なくとも1つの検索条件は、ORブール演算子により結合される多重検索条件を備えることを特徴とする、請求項6に記載の方法。
【請求項8】
前記VRDで指定された前記少なくとも1つの述語の各々は、対応する要件、述語名、述語文字、述語属性、述語値、および述語タイプを含み、前記対応する要件は、前記資格証明書所有者の前記少なくとも1つのタイプの資格証明書を規定し、少なくとも1つの検索条件を含むことを特徴とする、請求項2に記載の方法。
【請求項9】
前記少なくとも1つの検索条件は、ORブール演算子により結合される多重検索条件を備えることを特徴とする、請求項8に記載の方法。
【請求項10】
前記証明は、選択された前記資格証明書が妥当であり、かつ取り消されていないことを検証するために、前記VRDで指定された前記少なくとも1つの属性および前記少なくとも1つの述語の各々に対応するゼロ知識証明を含むことを特徴とする、請求項2に記載の方法。
【請求項11】
前記VRDで指定された前記少なくとも1つの属性のうちのいずれか1つの前記公開オプションは、前記指定された属性を明らかにすることを許可するとき、前記証明は、前記指定された属性の値または内容を含むことを特徴とする、請求項6に記載の方法。
【請求項12】
前記VRDで指定された前記少なくとも1つの属性のうちのいずれか1つの前記公開オプションが、前記指定された属性を明らかにすることを許可するとき、前記資格証明書検証結果は、前記指定された属性の値または内容を含むことを特徴とする、請求項6に記載の方法。
【請求項13】
前記分散VRD取引合意ネットワークおよび前記分散資格証明書管理取引合意ネットワークは、ブロックチェーンであることを特徴とする、請求項に記載の方法。
【請求項14】
前記分散VRD取引合意ネットワークおよび前記分散資格証明書管理取引合意ネットワークは、分離したネットワークであることを特徴とする、請求項に記載の方法。
【請求項15】
前記分散VRD取引合意ネットワークは、前記分散資格証明書管理取引合意ネットワークの中に一体化されることを特徴とする、請求項に記載の方法。
【請求項16】
分散検証要件文書(VRD)台帳を維持する分散VRD取引合意ネットワークであって、
VRD管理者により提供されるVRD管理システムと、
第1のVRD運用者により提供される第1のVRD管理ノードと、
第2のVRD運用者により提供される第2のVRD管理ノードと、 を備える分散VRD取引合意ネットワークにおいて、
前記VRD管理システム、前記第1のVRD管理ノード、および第2のVRD管理ノードは、通信可能に接続され、
前記分散VRD取引合意ネットワークの所定の合意によりVRD取引の妥当性が確認された後、前記VRD取引は、前記分散VRD台帳に公表され、
前記VRD取引は、VRD運用者登録取引、VRD運用者取消取引、VRD発行者登録取引、VRD発行者取消取引、VRD登録取引、VRD取消取引、およびVRD取出取引の中の1つであり、
前記分散VRD台帳は、多数のVRDを記録し、
各VRDは、VRD ID、VRD名、少なくとも1つの属性および少なくとも1つの述語のうち少なくとも一方、ならびにVRD発行者のDIDからなるフィールドを有することを特徴とする、
分散VRD取引合意ネットワーク。
【請求項17】
前記VRD運用者登録取引は、VRD運用者の公開鍵およびDID、ならびにVRD運用者を公表するVRD管理者のDIDおよび署名を備えることを特徴とする、請求項16に記載のネットワーク。
【請求項18】
前記VRD運用者取消取引は、VRD運用者のDID、ならびに前記VRD運用者を登録し、前記VRD運用者を取り消すVRD管理者のDIDおよび署名を備えることを特徴とする、請求項16に記載のネットワーク。
【請求項19】
前記VRD発行者登録取引は、VRD発行者の公開鍵およびDID,ならびに前記VRD発行者を公表するVRD運用者のDIDおよび署名を備えることを特徴とする、請求項16に記載のネットワーク。
【請求項20】
前記VRD発行者取消取引は、VRD発行者のDID,ならびに前記VRD発行者を登録し、前記VRD発行者を取り消すVRD運用者のDIDおよび署名を含むことを特徴とする、請求項16に記載のネットワーク。
【請求項21】
前記VRD登録取引は、VRD ID、VRD名、少なくとも1つの属性および少なくとも1つの述語のうち少なくとも一方、ならびにVRD発行者のDIDおよび署名からなるフィールドを有することを特徴とする、請求項16に記載のネットワーク。
【請求項22】
前記VRD取消取引は、VRDを登録したVRD発行者の署名およびDID、ならびに登録した前記VRDのIDからなるフィールドを有することを特徴とする、請求項16に記載のネットワーク。
【請求項23】
前記VRD登録取引で指定された前記少なくとも1つの属性の各々は、対応する要件、属性名、および公開オプションを含み、前記対応する要件は、資格証明書所有者の少なくとも1つのタイプの資格証明書を規定し、少なくとも1つの検索条件を含むことを特徴とする、請求項21に記載のネットワーク。
【請求項24】
前記少なくとも1つの検索条件は、ORブール演算子により結合される多重検索条件を備えることを特徴とする、請求項23に記載のネットワーク。
【請求項25】
前記VRD登録取引で指定された前記少なくとも1つの述語の各々は、対応する要件、述語名、述語文字、述語属性、述語値、および述語タイプを含み、前記対応する要件は、資格証明書所有者の少なくとも1つのタイプの資格証明書を規定し、少なくとも1つの検索条件を含むことを特徴とする、請求項21に記載のネットワーク。
【請求項26】
前記少なくとも1つの検索条件は、ORブール演算子により結合される多重検索条件を備えることを特徴とする、請求項25に記載のネットワーク。
【請求項27】
前記分散VRD取引合意ネットワークはブロックチェーンであることを特徴とする、請求項16に記載のネットワーク。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、資格証明書検証方法およびシステムに関し、より詳細には分散検証要件文書(verification requirement document、VRD)取引合意ネットワークを管理するための方法およびシステム、ならびに分散VRD取引合意ネットワーク上に記憶されたVRDを使用して資格証明書所有者の資格証明書検証を要求する方法およびシステムに関する。
【背景技術】
【0002】
ブロックチェーン技術の普及に起因して、資格証明書の検証が必要とされるとき、場合によってはたいていの状況で、従来の資格証明書の代わりに、遅かれ速かれデジタル資格証明書が圧倒的な傾向になるように思われる。デジタル資格証明書に関して、従来のブロックチェーン技術は、デジタル資格証明書の検証用のブロックチェーンまたは他の分散システム上で経路設定される分散化デジタル識別をサポートするツール、ライブラリ、および再利用可能なコンポーネントを提供する。
【0003】
デジタル資格証明書の検証用に構築された従来の資格証明書管理ブロックチェーンを利用できるが、そのようなブロックチェーンは、検証者のためによりカスタマイズされた検証要件に応じて、十分に柔軟性があるわけではない。電気通信事業者および世界的に認識された通信事業者サービスが至る所に存在するという観点から、通信事業者レベルの当事者を伴う、理想的には信頼できる資格証明書検証を提供するように選ばれたVRD資格証明書検証エコシステムが、電気通信事業者を通してデジタル資格証明書のためのサービスを提供する。しかしながら、そのようなVRD資格証明書検証エコシステムはその上、デジタル資格証明書管理サービス用の従来のブロックチェーンで利用できないという特徴がある。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明は、検証要件文書(VRD)を使用する資格証明書検証用の方法および関連装置、ならびにコンピュータ可読媒体を対象とする。VRD資格証明書検証エコシステムは、VRD管理システム、第1の資格証明書管理システム、第2の資格証明書管理システム、VRD発行機器、検証者機器、分散VRD取引合意ネットワーク、およびこれらの間で必要な通信を伴う分散資格証明書管理取引合意ネットワークを含んでよいがそれらに限定されない。分散VRD取引合意ネットワークは、VRDを記録する分散VRD台帳を維持する。分散VRD台帳に公表されるVRD取引は、VRD運用者登録取引、VRD運用者取消取引、VRD発行者登録取引、VRD発行者取消取引、VRD登録取引、VRD取消取引、およびVRD取出取引を含む。
【0005】
VRDを使用する資格証明書検証は、検証者に関連する第1の資格証明書管理システム、および資格証明書所有者に関連する第2の資格証明書管理システムにより主として遂行される。第1の資格証明書管理システムは、分散VRD取引合意システムからVRDを取り出し、第2の資格証明書管理システムにVRDを送信する。第2の資格証明書管理システムは、分散資格証明書管理取引合意ネットワークを通して証明を生成して、VRDで指定された要件を検証する。
【0006】
本開示の目的は、検証者が資格証明書検証のために既存のVRDを選ぶことができるように、VRDを作成し分散VRD台帳にVRDを記録する。前述の目的を達成するために、第1の資格証明書管理システムは、分散VRD取引合意ネットワーク上に記憶された検証要件文書(VRD)を使用して、資格証明書所有者の資格証明書検証を要求する。方法は、検証者機器からVRDのVRD IDおよび資格証明書所所有者識別子を受信したとき、第1の資格証明書管理システムは、分散VRD取引合意ネットワークにVRD IDを送信してVRDを得て、VRDおよび資格証明書所有者識別子を第2の資格証明書管理システムに送信するステップを含み、VRDは、少なくとも1つの属性、少なくとも1つの述語、または少なくとも1つの属性と少なくとも1つの述語の両方を、VRDで指定された少なくとも1つの属性の各々および少なくとも1つの述語の各々を検証するための少なくとも1つのタイプの資格証明書を規定する要件と共に含む。
【0007】
一実施形態では、方法は、第1の資格証明書管理システムは、第2の資格証明書管理システムから証明を受信し、VRDで指定された少なくとも1つの属性および少なくとも1つの述語の各々に関連する要件を証明書が満たすかどうかを確認するステップと、各要件を満足させたとき、第1の資格証明書管理システムは、妥当性確認のために分散資格証明書管理取引合意ネットワークに証明、ならびにVRDで指定された少なくとも1つの属性および少なくとも1つの述語を送信するステップと、分散資格証明書管理取引合意ネットワークから検証応答を受信すると、第1の資格証明書管理システムは、検証者機器に資格証明書検証結果を送信するステップと、をさらに含む。
【0008】
添付の図面と併せて解釈することで、本発明の他の目的、利点、および新規な特徴が、以下の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【0009】
図1】本発明によるVRD動作と関係したシステムアーキテクチャを示す概略図である。
図2】本発明による分散VRD取引合意ネットワークに関するさまざまなVRD取引を示すテーブルである。
図3】VRD運用者登録取引に関連するデータ構造を示すテーブルである。
図4】VRD運用者取消取引に関連するデータ構造を示すテーブルである。
図5】VRD発行者登録取引に関連するデータ構造を示すテーブルである。
図6】VRD発行者取消取引に関連するデータ構造を示すテーブルである。
図7】VRD登録取引に関連するデータ構造を示すテーブルである。
図8図7のVRD登録取引で指定された各属性および各述語に関連するデータ構造を示すテーブルである。
図9】VRD取消取引に関連するデータ構造を示すテーブルである。
図10】本発明による、第1の資格証明書管理システムが分散VRD取引合意ネットワーク上に記憶されたVRDを使用して資格証明書所有者の資格証明書検証を要求するための方法を示す流れ図である。
【発明を実施するための形態】
【0010】
以下で提示する記述で使用する専門用語は、技術上ある種の特有の実施形態についての詳細な記述に関連して使用されるとしても、その用語の最も広い合理的な手法で解釈されることが意図される。ある種の用語は、以下で強調される場合があるが、しかしながら、任意の制限された手法で解釈されることを意図されるどんな専門用語も、この「発明を実施するための形態」の節でそのようなものとして具体的に規定される。
【0011】
以下で紹介する実施形態は、ソフトウェアおよび/もしくはファームウェアによりプログラムされた、または構成されたプログラム可能回路により、または完全に専用回路により、またはそのような形態の組合せで実装できる。そのような専用回路は(もしあれば)、たとえば1つまたは複数の特定用途向け集積回路(application-specific integrated circuit、ASIC)、プログラム可能論理デバイス(programmable logic device、PLD)、フィールド・プログラマブル・ゲート・アレイ(field programmable gate array、FPGA)などの形態をとることができる。
【0012】
記述する実施形態は、検証要件文書(VRD)発行者により発行されたVRD、資格証明書のタイプおよび要件を記録するデータ構造を使用することにより、資格証明書所有者の資格証明書を検証するための1つまたは複数の方法、システム、装置、およびプロセッサ実行可能処理ステップを記憶するコンピュータ可読媒体に関する。VRDは、分散VRD取引合意ネットワークにより維持される分散VRD台帳に記憶される。分散VRD台帳は、VRD運用者登録取引、VRD運用者取消取引、VRD発行者登録取引、VRD発行者取消取引、VRD登録取引、VRD取消取引、およびVRD取出取引という取引きのうち1つまたは複数を記録してよい。それに加えて、分散資格証明書管理取引合意ネットワークは、資格証明書リクエストの証明を提供し証明を検証する分散資格証明書管理台帳を維持する。
【0013】
前述の処理ステップは、VRD管理者システムと、第1の資格証明書管理システムと、第2の資格証明書管理システムと、検証者機器と、VRD発行機器とを含むVRD資格証明書検証エコシステムにより遂行され、これらのシステムおよび機器は、互いに、かつ分散VRD取引合意ネットワークおよび分散資格証明書管理取引合意ネットワークに通信可能に接続されて、資格証明書検証ネットワークを形成する。
【0014】
VRD運用者を作成するために、VRD管理者は、分散VRD台帳にVRD運用者登録取引を公表して、分散VRD取引合意ネットワーク内でVRD運用者を登録する。VRD管理者によりVRD運用者を取り消して、分散VRD台帳にVRD運用者取消取引を公表して分散VRD取引合意ネットワークからVRD運用者を取り除いてよい。VRD発行者を作成するために、VRD運用者は、分散VRD台帳にVRD発行者登録取引を公表して、分散VRD取引合意ネットワーク内でVRD発行者を登録する。VRD運用者によりVRD発行者を取り消して、分散VRD台帳にVRD発行者取消取引を公表して、分散VRD取引合意ネットワークからVRD発行者を取り除いてよい。
VRDを作成するために、VRD発行者は、分散VRD台帳にVRD登録取引を公表する。VRDの各々は、VRD ID、および少なくとも1つの属性、少なくとも1つの述語、または少なくとも1つの属性と少なくとも1つの述語の両方を含む。VRDで指定された少なくとも1つの属性または少なくとも1つの述語の各々は、検証のために少なくとも1つの資格証明書を探す要件を指定する。
【0015】
検証の要点は、検証者機器により与えられたVRD IDを用いてVRDを取得し、第1の資格証明書管理システムから第2の資格証明書管理システムにVRDおよびユーザ識別子を移送し、VRDで指定された各要件を満足させる1組の資格証明書を識別し、ユーザ識別子に対応するウォレットへのハンドル、ならびにVRDで指定された少なくとも1つの属性および少なくとも1つからなる述語のリストを分散資格証明書管理取引合意ネットワークに送信し、分散資格証明書管理取引合意ネットワークから受信した証明を取得し、第1の資格証明書管理システムに証明を送信してVRDに対して確認し、確認後、分散資格証明書管理取引合意ネットワークに証明および証明リクエストを送信して、分散資格証明書管理取引合意ネットワークから検証応答を取得し、検証者機器に検証結果を送信することにある。
【0016】
VRDを使用して、従来の資格証明書管理ブロックチェーンにより提供される、柔軟性がない資格証明書検証サービスを解決する。この取り組み手法は、柔軟性がないという欠点に取り組むVRD資格証明書検証エコシステムに起源をもつVRD方式を必要とする。ハッキングから保護するために、VRD方式は、VRDに関係がある取引、およびVRD動作に従事するすべての当事者間の対話を取り扱う動作およびデータ構造専用の分散VRD取引合意ネットワークを使用してよい。
分散VRD取引合意ネットワークは、Hyperledger Indy Blockchainなどの既存の分散資格証明書管理取引合意ネットワークの一部として組み入れられてよい。一実施形態では、分散VRD取引合意ネットワークは、真正性のレベルを保証するために、信頼できる情報源に遡ることが可能な、TBCASoftなどの組織により管理されるブロックチェーンであってよい。
【0017】
分散VRD取引合意ネットワーク上で作動しているVRD動作をサポートするために、VRD資格証明書検証エコシステムは、互いに通信可能に接続されたVRD管理者システム、多数の資格証明書管理システム、多数のVRD発行機器、および多数の検証者機器を含む。VRD管理者システムは、TBCASoftなどのVRD管理者により提供される。
多数の資格証明書管理システムの各々は、VRD管理者により登録された対応するVRD運用者である可能性がある、または電気通信事業者、検証者、および資格証明書所有者である資格証明書管理者により提供される。多数のVRD発行機器の各々は、対応するVRD発行者により提供される。多数の検証者機器の各々は、対応する資格証明書管理者に関連する対応する検証者により提供される。上記で指定する協同リンクは、VRD資格証明書検証エコシステムに関与する当事者すべての2者間または多者間の関係の限定しない例である。
【0018】
VRD資格証明書検証エコシステム内の当事者すべての役割について言えば、VRD管理者は、VRD運用者を登録および取り消す資格を与えられ、VRD運用者は、自身に関連するVRD発行者を登録および取り消す資格を与えられ、VRD発行者は、VRDを登録および取り消す資格を与えられ、検証者は、自身に関連する資格証明書管理者を通してVRDを使用して資格証明書所有者の資格証明書検証を要求する資格を与えられ、資格証明書所有者に関連する資格証明書管理者は、証明者の役割を果たしてよい。
上記で示すように、VRD資格証明書検証エコシステム上のVRD運用者は本質的に、検証者に権限の源を提供するために、関係があるVRD発行者とVRD管理者の間の信頼リンクを確立する役割を果たす。VRD発行者は、検証者と協調して、VRD内で属性/述語を規定する要件を伴う属性/述語を構成してVRDが分散VRD取引合意ネットワークに登録されるのを容易にする仕事に着手する。VRDを登録した同じVRD発行者だけは、分散VRD取引合意ネットワークにVRDのその後のバージョンを登録できるようになる。VRD発行者も検証者も、分散VRD取引合意ネットワークに登録されるVRDの所望の属性/述語および要件を構成する仕事に関与することが意図される。
【0019】
図1に示すように、VRD資格証明書検証エコシステムは、VRD管理システム10、第1の資格証明書管理システム20、第2の資格証明書管理システム30、VRD発行機器40、検証者機器50、分散VRD取引合意ネットワーク60、および以下で具体的に述べる、これらのシステムおよび機器の間で必要な通信を伴う分散資格証明書管理取引合意ネットワーク70を含んでよいがそれらに限定されない。
VRD監理者システム10は、分散VRD取引合意ネットワークの動作を管理するためにVRD管理者により提供される。第1の資格証明書管理システム20は、検証者に関連する第1の資格証明書管理者により提供される。第1の資格証明書管理者は電気通信運用者、金融機関、政府機関などであってよい。本実施形態では、第1の資格証明書管理システム20は、通信可能に接続された第1のVRD管理ノード21、第1の分散資格証明書取引ノード22、および第1のローカル資格証明書管理ノード23を含む。第1のVRD管理ノード21は、分散VRD取引合意ネットワーク60に関連する動作すべての責任を負う。第1の分散資格証明書取引ノード22は、分散資格証明書管理取引合意ネットワーク70に関連する動作を扱う。第1のローカル資格証明書管理ノード23は、第1の資格証明書管理システム20のローカルの資格証明書管理、および第2の資格証明書管理システム30との通信を取り扱う。第2の資格証明書管理システム30は、資格証明書所有者(証明者)に関連する第2の資格証明書管理者により提供される。別の実施形態では、第1の資格証明書管理システム20は、第1のVRD管理ノード21の機能すべてを遂行してよい1つまたは2つのノード、第1の分散資格証明書取引ノード22、および第1のローカル資格証明書管理ノード23を含む。
【0020】
第2の資格証明書管理システム30は、通信可能に接続された第2のVRD管理ノード31、第2の分散資格証明書取引ノード32、および第2のローカル資格証明書管理ノード33を含む。第2のVRD管理ノード31は、分散VRD取引合意ネットワーク60に関連する動作すべての責任を負う。第2の分散資格証明書取引ノード32は、分散資格証明書管理取引合意ネットワーク70に関連する動作を扱う。第2のローカル資格証明書管理ノード33は、第2の資格証明書管理システム30のローカルの資格証明書管理、およびたとえば安全なTLS(Transport Layer Security、トランスポート層セキュリティ)リンクを通して第1の資格証明書管理システム20との通信を取り扱う。別の実施形態では、第2の資格証明書管理システム30は、第2のVRD管理ノード31の機能すべてを遂行してよい1つまたは2つのノード、第2の分散資格証明書取引ノード32、および第2のローカル資格証明書管理ノード33を含んでよい。
【0021】
一実施形態では、第1のVRD管理ノード21および第2のVRD管理ノード31は、分散VRD取引合意ネットワーク60のノードであってよい。別の実施形態では、第1の資格証明書管理分散合意取引ノード22および第2の資格証明書管理分散合意取引ノード32は、分散資格証明書管理取引合意ネットワーク70のノードであってよい。検証者機器50は、第1の資格証明書管理者に関連する検証者により提供される。資格証明書所有者機器は、第2の資格証明書管理者に関連する資格証明書所有者により提供される。VRD発行機器40は、VRD発行者により提供される。
【0022】
一実施形態では、第1のVRD管理ノード31は、第1の資格証明書管理者から分離された第1のVRD運用者により提供されてよい。その状況では、第1のローカル資格証明書管理ノード23は、分散VRD取引合意ネットワークと通信してVRDを取り出してよい。同様に、第2のVRD管理ノード31は、第2の資格証明書管理者から分離された第2のVRD運用者により提供されてよい。
その状況では、第2のローカル資格証明書管理ノード33は、分散VRD取引合意ネットワークと通信してVRDを取り出してよい。他のVRD運用者は、追加のVRD管理ノードを提供してよい。VRD管理者により分散VRD台帳にVRD運用者が公表された後、VRD運用者は、分散VRD台帳にVRD発行者を公表してよい。その後、VRD発行者は、分散VRD台帳にVRDを公表してよい。
【0023】
図1は、分散VRD取引合意ネットワークの運用に関係する取引およびデータ、ならびにVRDを使用する資格証明書検証を伴うVRD資格証明書検証エコシステムを例示する。記号a1、a2、b1、b2、c1、およびc2は、それぞれVRD運用者、VRD発行者、およびVRDの登録および取消しに関する動作を意味する。記号d1、d2、d3,e1、e2、e3、f1、f2、g1、およびg2は、それぞれVRDを使用する資格証明書検証中に提供されるさまざまなデータ/情報を意味する。これらの記号の意味を以下に記述する。
a1:VRD運用者登録取引
a2:VRD運用者取消取引
b1:VRD発行者登録取引
b2:VRD発行者取消取引
c1:VRD登録取引
c2:VRD取消取引
d1:VRD ID
d2:資格証明書所有者識別子
d3:VRD
e1およびe2:属性および述語のリスト、ならびに少なくとも1つの選択された資格証明書の各々の資格証明書識別子
e3:ウォレットへのハンドル
f1:証明
f2:失敗の指示
g1:検証応答
g2:検証結果
【0024】
図1および図2を参照する。分散検証要件文書(VRD)台帳を維持する分散VRD取引合意ネットワークは、VRD管理者により提供されるVRD管理システム、第1のVRD運用者により提供される第1のVRD管理ノード、第2のVRD運用者により提供される第2のVRD管理ノードを含む。VRD管理システム、第1のVRD管理ノード、および第2のVRD管理は、通信可能に接続される。
分散取引合意ネットワークのように、分散VRD取引合意ネットワークの所定の合意によりVRD取引の妥当性が確認された後、VRD取引は、分散VRD台帳に公表される。一実施形態では、VRD取引には、VRD運用者登録取引、VRD運用者取消取引、VRD発行者登録取引、VRD発行者取消取引、VRD登録取引、VRD取消取引、およびVRD取出取引という7つのタイプがある。分散VRD台帳は、VRD ID、VRD名、ならびに少なくとも1つの属性および少なくとも1つの述語のうち少なくとも一方をそれぞれ含む多数のVRDを記録する。
【0025】
分散VRD取引合意ネットワークは、ネットワークにVRD管理者を公表する開始取引から始まる。VRD管理者のDIDは、分散VRD取引合意ネットワーク上でVRD運用者のDIDにより識別されるVRD運用者を登録できるVRD管理者を識別する大域固有識別子である。たとえば、VRD管理者のDIDは、「vrd-管理者-01」であってよい。
【0026】
図2に示すように、第1のタイプのVRD取引は、VRD運用者登録取引である。図3を参照する。VRD運用者登録取引のデータ構造は、1などの値を伴う取引タイプ、登録されるVRD運用者の公開鍵およびDID(Decentralized ID、分散型ID)、ならびにVRD管理者の署名およびDIDからなるフィールドを含む。
図1で「a1」により示すように、VRD管理者により作成されたVRD運用者登録取引は、VRD監理者システムから分散VRD取引合意ネットワークに提出される。VRD管理者の署名は、次いで分散VRD取引合意ネットワークに記憶されたVRD管理者の公開鍵により検証できる。所定の合意がある場合、VRD運用者登録取引は、分散VRD台帳に公表される。その結果、VRD運用者は、VRD発行者を登録できる。それに加えて、VRD運用者の公開鍵は、VRD運用者の署名を検証するために分散VRD取引合意ネットワークに記憶される。VRD運用者のDIDは、「文字列」データタイプであり、分散VRD取引合意ネットワーク内でVRD運用者を識別する大域固有識別子である。たとえば、VRD発行者のDIDは、「vrd-運用者-01」あってよい。VRD管理者の署名は、VRD管理者の秘密鍵を用いてVRD運用者登録取引の他のフィールドすべてをハッシュするハッシュ値を暗号化することにより生成される。
【0027】
図2に示すように、第2のタイプのVRD取引は、VRD運用者取消取引である。図4を参照する。VRD運用者取消取引のデータ構造は、2などの値を伴う取引タイプ、登録されたVRD運用者のDID、ならびにVRD管理者のDIDおよび署名からなるフィールドを含む。VRD管理者の署名は、VRD管理者の秘密鍵を用いてVRD運用者取消取引の他のフィールドすべてをハッシュするハッシュ値を暗号化することにより生成される。
図1で「a2」により示すように、VRD運用者取消取引は、VRD管理者により作成され、VRD管理システムから分散VRD取引合意ネットワークに提出され、VRD管理者の署名は、分散VRD取引合意ネットワークに記憶されたVRD管理者の公開鍵により検証できる。所定の合意がある場合、VRD運用者取消取引は、分散VRD台帳に公表される。VRD運用者のDIDにより識別される、すでに登録されたVRD運用者は、次いでVRD運用者を登録したVRD管理者のDIDにより識別されるVRD管理者により取り消される。その結果、VRD運用者は、VRD発行者をもはや登録できない。
【0028】
図2に示すように、第3のタイプのVRD取引は、VRD発行者登録取引である。図5を参照する。VRD発行者登録取引のデータ構造は、3などの値を伴う取引タイプ、登録されるVRD発行者の公開鍵およびDIDは、ならびにVRD発行者を登録するVRD運用者の署名およびDIDからなるフィールドを含む。
図1で「b1」により示すように、VRD発行者登録取引は、VRD運用者により作成され、次いで分散VRD取引合意ネットワークに提出される。一実施形態では、VRD運用者は、VRD管理ノード21を提供する第1の資格証明書管理者とすることができる。VRD運用者の署名は、次いで分散VRD取引合意ネットワークに記憶されたVRD運用者の公開鍵により検証できる。所定の合意がある場合、VRD発行者登録取引は、分散VRD台帳に公表される。その結果、VRD発行者は、VRDを登録できる。それに加えて、VRD発行者に関する公開鍵は、VRD発行者の署名を検証するために分散VRD取引合意ネットワークに記憶される。VRD発行者のDIDは、「文字列」データタイプであり、VRD発行者を識別する大域固有識別子である。たとえば、VRD発行者のDIDは、「vrd-発行者-01」あってよい。VRD発行者を登録するVRD運用者の署名は、VRD運用者の秘密鍵を用いてVRD発行者登録取引の他のフィールドすべてをハッシュするハッシュ値を暗号化することにより生成される。本実施形態では、VRD発行者を登録するVRD運用者は、図1に示すように第1の資格証明書管理システム20を提供する第1の資格証明書管理者である。VRD発行者の真正性に影響されやすい当事者は、分散VRD取引合意ネットワーク60を使用してVRD発行者のDIDを探索して、VRD発行者が実際に妥当なVRD運用者により登録された妥当なVRD発行者であることを確認できる。
【0029】
図2に示すように、第4のタイプのVRD取引は、VRD発行者取消取引である。図6を参照する。VRD発行者取消取引のデータ構造は、4などの値を伴う取引タイプ、登録されたVRD発行者のDID、ならびにVRD発行者を登録したVRD運用者のDIDおよび署名からなるフィールドを含む。VRD発行者を登録したVRD運用者の署名は、VRD発行者を登録したVRD運用者の秘密鍵を用いてVRD発行者取消取引の他のフィールドすべてをハッシュするハッシュ値を暗号化することにより生成される。本実施形態では、VRD発行者を登録したVRD運用者は、第1の資格証明書管理者である。
図1で「b2」により示すように、VRD発行者取消取引は、第1の資格証明書管理システムにより作成され、分散VRD取引合意ネットワークに提出される。VRD運用者の署名は、次いで分散VRD取引合意ネットワークに記憶された第1の資格証明書管理者の公開鍵により妥当性を確認できる。所定の合意がある場合、VRD発行者取消取引は、分散VRD台帳に公表される。VRD発行者のDIDにより識別された、すでに登録されたVRD発行者は、次いでVRD発行者を登録したVRD運用者により取り消される。その結果、VRD発行者は、VRDをもはや登録できない。
【0030】
第5のタイプのVRD取引は、VRD登録取引である。図7を参照する。少なくとも1つのVRD登録取引の各々のデータ構造は、5などの値を伴う取引タイプ、VRD ID、VRD名、ならびに作成されるVRDのバージョン、少なくとも1つの属性および少なくとも1つの述語のうち少なくとも一方、分散VRD取引合意ネットワークにVRD発行者を登録しているVRD運用者のID、ならびにVRD発行者のDIDおよび署名からなるフィールドを含む。
VRD IDは、「文字列」データタイプであり、固有識別子、たとえば「vrd-sprint-0000001」である。VRD名は、「文字列」データタイプであり、検証するために意味のあるように、たとえば「飲酒年齢」となるように作成される。VRDのバージョンは、「実数」データタイプであり、VRDのバージョン、たとえばバージョン1.0について1.0を表す。VRD運用者のIDは、「文字列」データタイプからなる。たとえば、VRD運用者のIDは、一実施形態ではVRD運用者として機能する電気通信運用者の名称である「Sprint」とすることができる。一実施形態では、VRD運用者のIDを使用して、VRD発行者を登録した特有のVRD運用者にリクエストを経路設定する。この状況では、VRD発行者のウォレットは、VRD運用者のサイトに記憶される。その結果、そのVRD運用者だけは、取引に署名するためにVRD発行者のウォレット鍵にアクセスできる。
【0031】
VRD登録取引でのVRD発行者の署名は、VRD発行者の秘密鍵を用いてVRD登録取引の他のフィールドすべてをハッシュするハッシュ値を暗号化することにより生成される。図1で「c1」により示すように、VRD登録取引は、VRD発行者により作成され、次いでVRD発行機器から分散VRD取引合意ネットワークに提出される。VRD発行者の署名は、次いで分散VRD取引合意ネットワークに記憶されたVRD発行者の公開鍵により検証できる。所定の合意がある場合、VRD登録取引は、分散VRD台帳に公表される。その結果、VRDは、検証者により取り出すことが可能である。
【0032】
自己主権型識別をサポートするために、一実施形態では、VRD発行者の秘密鍵は、多数の共有鍵に分割できる。多数の共有鍵は、VRD運用者により提供されるVRD運用機器(この実施形態では、第1の資格証明書管理者により提供される第1の資格証明書管理システム)およびVRD発行者により提供されるVRD発行機器にそれぞれ記憶できる。VRD発行者の秘密鍵は、秘密分散方式に従ってVRD発行者および第1の資格証明書管理者により保持される共有鍵を組み合わせることにより再構築できる。この状況では、VRD発行者の共有鍵をVRD運用者の共有鍵と組み合わせて、VRD発行取引の作成前にVRD発行者の秘密鍵を再構築しなければならない。VRD発行者の署名は、第1の資格証明書管理者の所で再構築された秘密鍵を用いて生成できる。一実施形態では、秘密分散方式は、シャミア(Shamir)の秘密分散方式である。VRD登録取引を分散VRD取引合意ネットワーク60に提出した後、VRD発行者の署名は、分散VRD取引合意ネットワーク60内でVRD発行者の公開鍵により検証できる。VRD IDにより示される登録されたVRDは、次いでVRD発行者により分散VRD台帳に公表される。分散VRD取引合意ネットワーク60に記憶される各VRDとそのVRDのVRD登録取引の間の差は、VRD自体がVRD発行者の署名のフィールドを有しないことである。
【0033】
以下の記述は、単に例証するために提供される属性、述語、ならびに属性および述語に関連する要件に関する例を伴うことがある。各VRD登録取引または各VRDは、少なくとも1つの属性だけ、少なくとも1つの述語だけ、または同時に少なくとも1つの属性と少なくとも1つの述語の両方を有するように構成される。
図8を参照する。少なくとも1つの属性の各々は、資格証明書所有者の、少なくとも1つの識別された資格証明書の1つの属性を指定し、要件、属性名、および公開オプションからなるサブフィールドを含む。
【0034】
属性の要件は、属性を包含する少なくとも1つの資格証明書を識別する、少なくとも1つの検索条件について記述する。一実施形態では、属性の要件の少なくとも多重条件は、少なくとも1つのブール演算子と結合されてよい。要件の各検索条件は、{スキーマ_id=1}など、特有のタイプのスキーマID、または{資格証明書_定義_id=7}などの特有のタイプの資格証明書ID、または{発行者id=5}などの特有の資格証明書発行者により発行された資格証明書により資格証明書のタイプを指定することを意図する。VRDが、1つの検索条件を、たとえば州とは無関係に米国運転免許証を指定する{スキーマid=1}を有する属性、たとえば「ファーストネーム」を有するとき、VRDは、資格証明書所有者の米国運転免許証(特有のスキーマidを伴う資格証明書)のファーストネーム(属性)の検証を必要とする。属性の要件が1つの検索条件だけを有するとき、ブール演算子は必要ない。しかしながら、属性の要件、たとえば「生年月日」が多重検索条件、たとえば{資格証明書_定義_id=1}、{資格証明書_定義_id=2}、および{発行者_id=3}を有するとき、VRDは、3つの検索条件すべてを満たす資格証明書の生年月日(属性)の検証を必要とする。
多重検索条件は、検証の必要性に従って「AND」および「OR」など、1つまたは複数のブール演算子と結合されてよい。ブール演算子と結合された多重検索条件の例として、{資格証明書_定義_id=1 OR [資格証明書_定義_id=2 AND 発行者_id=3]}は、検証のために、資格証明書_定義_idがカリフォルニア州運転免許証である1に等しい資格証明書の生年月日、または資格証明書_定義_idが2に等しく、かつ発行者_idがニューヨーク州DMV(自動車局)により発行されたニューヨーク州運転免許証である3に等しい資格証明書の生年月日を必要とすると解釈される。すなわち、VRDは、資格証明書所有者のカリフォルニア州運転免許証またはニューヨーク州DMVにより発行されたニューヨーク州運転免許証から生年月日の検証を必要とする。本例では、これら2つの資格証明書のいずれか一方は、2つのブール演算子により結合された3つの検索条件を満たし、いずれかの資格証明書から得られる生年月日は、検証のために使用できる。
【0035】
「文字列」データタイプを伴う属性名は名前、生年月日、社会保障番号、パスポート番号、雇用主などのような特有のタイプの属性を指定する。属性名に関連する公開オプションは、属性の値または内容を明らかにすることを許可または拒絶するように構成されたブール値であるTRUE(真)またはFALSE(偽)である。一実施形態では、公開オプションのデフォルト値は、FALSEである。たとえば、属性名が「生年月日」であり、かつ公開オプションがTRUEである場合、識別された資格証明書の生年月日の内容は、証明で明らかになる。
【0036】
VRD内の各述語は、識別された資格証明書の属性から導出される、またはそれに関連する述語文字が検証条件を満たすかどうかという検証を必要とする。検証条件は、所定の値に対する比較関係の性質である。たとえば、述語(年齢≧21)は、運転免許証(識別された資格証明書)の生年月日(述語属性)から導出される年齢(述語文字)の検証が21以上(検証条件)であることを要求すべきである。検証条件は、より大きい「>」、等しい「=」、より小さい「<」、以上「≧」、および以下「≦」などの比較関係(述語値)の性質、ならびに所定の数値(述語値)である述語値をさらに含む。他の述語は、「<65」が検証条件である「年齢<65」、および「教育程度≧3」を含み、「≧3」は、3により示される最小修士号の検証を必要とする検証条件である。
【0037】
図8をさらに参照する。少なくとも1つの述語の各々は要件、述語名、述語文字、述語値、および述語タイプからなるサブフィールドを含む。一実施形態では、各述語は、述語文字の値が導出される述語属性のサブフィールドをさらに含む。述語での要件は、属性での要件に類似する。したがって、ここで繰り返さない。属性名は、「文字列」データタイプであり、述語の意味を、たとえば「年齢検証」を伝えるために作成される。述語内の述語文字は、「文字列」データタイプであり、要件により識別された少なくとも1つの資格証明書の属性から導出される、またはそれに関連する文字を指定する。たとえば、述語「年齢<65」での述語文字「年齢」は、述語属性「生年月日」から導出できる。述語値は、「整数」データタイプであり、上記の述語での65など、属性から導出される述語文字の値により比較されるべき値を指定する。述語タイプは、上記の述語でのより小さい「<」など、識別された資格証明書の属性から導出された述語文字の値と述語値の間の比較関係の性質を指定する「文字列」データタイプである。
【0038】
述語の要件は、属性の要件と実質的に同じに機能する。述語の要件が、述語文字の値を導出するために使用する属性を包含する少なくとも1つの資格証明書を識別する1つの検索条件を有するとき。たとえば、述語「年齢<65」の要件は、州とは無関係な米国運転免許証である1つの検索条件「スキーマ_id=1」を有する。資格証明書所有者の米国運転免許証の生年月日を使用して、65と比較した年齢の値を導出する。VRDでのそのような述語は、資格証明書の所有者の米国運転免許証から導出された資格証明書所有者の検証が65未満であることを必要とする。述語の要件が{資格証明書_定義_id=1 OR [資格証明書_定義_id=2 AND 発行者_id=3]}など、多重検索条件を有するとき、VRDは、3つの検索条件すべてを満たす資格証明書の生年月日(属性)から導出される年齢(述語文字)の検証を必要とする。
多重検索条件は、検証の必要性に従って「AND」および「OR」など、1つまたは複数のブール演算子と結合されてよい。ブール演算子と結合された多重検索条件の例として、{資格証明書_定義_id=1 OR [資格証明書_定義_id=2 AND 発行者_id=3]}は、年齢検証のために、資格証明書_定義_idがカリフォルニア州運転免許証である1に等しい資格証明書の生年月日、または資格証明書_定義_idが2に等しく、かつ発行者_idがニューヨーク州DMVにより発行されたニューヨーク州運転免許証である3に等しい資格証明書の生年月日を必要とすると解釈される。すなわち、VRDは、年齢述語の検証のために、資格証明書所有者のカリフォルニア州運転免許証またはニューヨーク州DMVにより発行されたニューヨーク州運転免許証から得られる生年月日を使用する必要がある。
【0039】
ANDとORのブール演算子を両方使用して多重検索条件を結合できるので、本発明の1つの有利な点は、資格証明書検証のために属性または述語に関連する要件を設定するためのより柔軟で効率的な取り組み方法を提供することである。
【0040】
第6のタイプのVRD取引は、VRD取消取引である。図9を参照する。各VRD取消取引のデータ構造は、6などの値を伴う取引タイプ、VRD発行者のDIDおよび署名、ならびに取り消されるVRDのIDからなるフィールドを含む。VRD取消取引でのVRD発行者の署名は、VRD発行者の秘密鍵を用いてVRD取消取引の他のフィールドすべてをハッシュするハッシュ値を暗号化することにより生成される。
図1で「c2」により示すように、VRD取消取引は、VRD発行者により作成され、VRD発行機器から分散VRD取引合意ネットワーク60に提出される。VRD発行者の署名は、次いで分散VRD取引合意ネットワーク60内でVRD発行者の公開鍵により検証できる。所定の合意がある場合、VRD取消取引は、分散VRD台帳に公表される。取り消されるVRDのIDにより識別されたVRDは、次いでVRD発行者のDIDにより識別されたVRD発行者により分散VRD取引合意ネットワーク60から取り除かれる。その結果、取り消されたVRDは、検証者によりもはや使用できない。
【0041】
第7のタイプのVRD取引は、VRD取出取引である。各VRD取出取引のデータ構造は、7などの値を伴う取引タイプ、およびVRD IDからなるフィールドを含む。図1で「d1」により示すように、VRD取出取引は、検証者に関連する第1の資格証明書管理者により提供される第1の資格証明書管理システム20から分散VRD取引合意ネットワークに提出される。その結果、図1に示す「d2」により、VRDは、分散VRD取引合意ネットワーク60から第1の資格証明書管理システム20に戻される。
【0042】
分散VRD取引合意ネットワークが形成され、その中にVRDが記録された後、VRDを使用して資格証明書を検証する方法について、以下で詳細に論じる。検証者に関連する第1の資格証明書管理システムは、分散VRD取引合意ネットワークおよび分散資格証明書管理取引合意ネットワークと通信して、資格証明書所有者(証明者)に関連する第2の資格証明書管理システムと対話して、資格証明書所有者の資格証明書を検証する。
図1および図10を参照する。第1の資格証明書管理システムが分散VRD取引合意ネットワーク上に記憶されたVRDを使用して資格証明書所有者の資格証明書検証を要求するための方法が提供され、以下のステップを含む。
【0043】
ステップS310:検証者機器50から、図1に示すようにd1およびd2によりそれぞれ印をつけたVRD IDおよび資格証明書所有者識別子を受信したとき、第1の資格証明書管理システム20は、図1に示すように、VRD取出取引に含まれるVRD IDを分散VRD取引合意ネットワーク60に送信して、d3として示すVRDを得て、次いでVRDおよび資格証明書管理者識別子を第2の資格証明書管理システム30に送信する。VRDは、少なくとも1つの属性、少なくとも1つの述語、または少なくとも1つの属性と少なくとも1つの述語の両方を含む。各属性および各述語は、VRDで指定されたそのような属性および述語を検証するために少なくとも1つのタイプの資格証明書を規定する各属性および各述語自体の要件を有する。
【0044】
具体的には、資格証明書所有者が、検証者機器50を伴う検証者に接近するとき、検証者機器50は、資格証明書所有者から資格証明書所有者識別子を受信し、第1の資格証明書管理システム20にVRD IDおよび資格証明書所有者識別子を提供する。各検証者機器50は、資格証明書所有者用に専用VRD IDを使用してよく、または資格証明書所有者からなる異なる多数のグループ用に、および/または異なる検証目的用に、それぞれ多数のVRD IDを使用してよい。専用VRD IDを使用する場合、検証者機器50は、同一VRD IDを常に送信する。多数のVRD IDを使用する場合、検証者機器50は、資格証明書所有者のグループおよび/または検証目的に基づき、対応するVRD IDを第1の資格証明書管理システム20に提供する。一実施形態では、検証者機器50は、VRDのバージョンをさらに提供する。
図1に示すように、第1の資格証明書管理システム20は、次いで分散VRD取引合意ネットワーク60にVRD IDを送信して、VRD IDを用いて分散VRD取引合意ネットワーク60からVRD(d3)を取り出し、第2の資格証明書管理システム30にVRD(d3)および資格証明書所有者識別子(d2)を送信する。資格証明書所有者識別子は、資格証明書所有者ID、および資格証明書所有者に関連する第2の資格証明書管理システム30の識別子を含む。その結果、第1の資格証明書管理システム20は、資格証明書所有者識別子に基づき第2の資格証明書管理システム30を識別でき、次いで第2の資格証明書管理システム30にVRDおよび資格証明書所有者識別子を送信する。一実施形態では、第1の資格証明書管理システム20は、VRDで規定された属性および述語に基づき第2の資格証明書管理システム30に証明リクエストをさらに送信する。証明リクエストは、証明の中にどの属性を含まなければならないかを指定して、指定された属性をそれぞれ包含する資格証明書の存在を実証する。しかしながら、証明リクエストは、証明リクエストで使用できる資格証明書にいかなる要件も提起しない。
【0045】
すでに示したように、各VRDは少なくとも1つの属性、少なくとも1つの述語、または少なくとも1つの属性と少なくとも1つの述語の両方を含むように構成できる。少なくとも1つの属性の各々は、属性名と、属性を包含する、資格証明書所有者の少なくとも1つの述語を識別する要件とを含む。VRD内の少なくとも1つの述語の各々は、述語属性(述語文字を導出できる属性)と、述語の検証条件が満たされたかどうかを判断するための述語属性を包含する、資格証明書所有者の少なくとも1つの資格証明書を識別する要件とを含む。
【0046】
ステップS320:第1の資格証明書管理システム20は、第2の資格証明書管理システム30から証明を受信し、次いで証明がVRDで指定された少なくとも1つの属性および少なくとも1つの述語の各々に関連する要件を満足させるかどうかを確認する。
【0047】
具体的には、第1の資格証明書管理システム20からVRD IDを受信後、第2の資格証明書管理システム30は、VRDで指定された少なくとも1つの属性の各々の属性名、および少なくとも1つの述語の各々の述語属性を含む属性および述語のリストを生成する。第2の資格証明書管理システム30は、資格証明書所有者IDを含む資格証明書所有者識別子から資格証明書所有者を決定し、次いで各属性および各述語に対応する要件を満たす資格証明書を求めて資格証明書所有者のウォレットを検索する。資格証明書所有者の資格証明書は、暗号化され、ウォレットとして公知の概念でローカルデータベースに記憶される。別の実施形態では、資格証明書所有者のウォレットは、第三者により、または資格証明書所有者自身により管理できる。第2の資格証明書所有者管理システムは、ローカルデータベースにアクセスすることにより資格証明書所有者のウォレットをくまなく検索して、VRDで指定された要件を満足させる少なくとも1つの資格証明書の場所を特定する。
【0048】
第2の資格証明書管理システム30は、次いで証明リクエスト、および分散資格証明書管理取引合意ネットワーク70を通して選択されたこれらの資格証明書に基づき、証明を作成する。図1に示すように、第2の資格証明書管理システム30は、証明リクエスト、属性および述語リスト(e1???)、少なくとも1つの選択された資格証明書の各々の資格証明書識別子(e2???)、および資格証明書所有者のウォレットへのハンドルを分散資格証明書管理取引合意ネットワーク70に送信する。資格証明書所有者のウォレットへのハンドルを使用して、資格証明書所有者の資格証明書にアクセスできる。資格証明書は、属性および値と共に、資格証明書所有者、発行者、ならびにスキーマおよび資格証明書定義に関して分散資格証明書管理台帳上に記憶された資格証明所有者および資格証明書発行者の公開鍵から導出される数学的値である「リンクシークレット(link secret)」を含む。第2の資格証明書管理システム30は、次いで分散資格証明書管理取引合意ネットワーク70から戻された証明(f1)を受信する。
【0049】
一実施形態では、Hyperledger Indy SDKを使用して、ローカル資格証明書に記憶されたリンクシークレットと、分散資格証明書管理台帳で見つかった資格証明書所有者および資格証明書発行者の公開鍵の両方を使用してゼロ知識証明を構築する証明を構築する。
【0050】
一実施形態では、ゼロ知識証明(zero knowledge proof、ZKP)は、VRDで指定された、要求された属性および述語ごとに作成される。これらのZKPは、分散資格証明書管理台帳で見つかった資格証明書所有者および資格証明書発行者の公開鍵を調べることにより検証できる。各ZKPは、資格証明書所有者の資格証明書が妥当であり、かつ取り消されていないことを証明する。ゼロ知識証明に加えて、証明は平文、および/またはVRDで公開オプションにより明らかにするように要求された各属性の値を含む。たとえば、「名前」(属性)を明らかにするように要求された場合、「John Doe」(属性の平文)が証明に含まれる。平文、および/または各属性の値は、資格証明書から直接に得られる。
【0051】
少なくとも1つのゼロ知識証明の他に、証明は、選択された資格証明書それぞれの資格証明書識別子をさらに含む。VRDで指定された少なくとも1つの属性および少なくとも1つの述語の各々の要件を満足させる、資格証明書所有者の資格証明書がなにも識別できないとき、第2の資格証明書管理システム30は、証明に関連する処理をなにも遂行せずに第1の資格証明書管理システム20に失敗の指示(f2)を単に送信する。それ以外の場合、第2の資格証明書管理システム30は、第1の資格証明書管理システム20に証明を送信する。
【0052】
第1の資格証明書管理システム20は、第2の資格証明書管理システム30から証明を受信する。証明は、VRDで指定された属性または述語属性を包含する少なくとも1つの選択された資格証明書を識別する少なくとも1つの資格証明書識別子を含む。第1の資格証明書管理システム20は、証明内の少なくとも1つの資格証明書識別子により示される少なくとも1つの資格証明書が、VRDで指定された少なくとも1つの属性および少なくとも1つの述語の各々の要件を満足させるかどうかを確認するために調べる。そのような確認は、第1の資格証明書管理システム20だけで行われる。しかしながら、第1の資格証明書管理システム20は、資格証明書所有者が、妥当であり、かつ取り消されていない少なくとも1つの選択された資格証明書を実際に所有しているかどうかを確認しない。
【0053】
ステップS330:各要件を満足させたとき、第1の資格証明書管理システム20は、妥当性確認のために分散資格証明書管理取引合意ネットワークに証明、ならびにVRDで指定された少なくとも1つの属性および少なくとも1つの述語のうち少なくとも一方を送信する。
【0054】
具体的には、各要件を満足させたとき、第1の資格証明書管理システム20は、妥当性確認のために、証明(f1)、ならびに少なくとも1つの属性の各々の属性名、ならびに第2の資格証明書管理システム30で生成された属性および述語のリスト(e1)と同一である、VRDで指定された少なくとも1つの述語の各々の述語属性を分散資格証明書管理取引合意ネットワーク70に送信する。
【0055】
失敗の指示を受信したとき、第1の資格証明書管理システム20は、資格証明書所有者が、VRDで指定された少なくとも1つの属性および少なくとも1つの述語の要件を満足させる資格証明書をなにも有していないことを示す失敗という検証結果を検証者機器50に送信し、方法の残りのステップを終結する。
【0056】
ステップS340:分散資格証明書管理取引合意ネットワークから検証応答を受信すると、第1の資格証明書管理システム20は、検証機器50に資格証明書検証結果を送信する。
【0057】
具体的には、分散資格証明書管理取引合意ネットワーク70から検証応答(g1)を受信すると、第1の資格証明書管理システム20は、検証機器50に検証結果(g2)を送信する。数学的値であるので、証明内の対応する属性名および対応する述語属性に関する少なくとも1つのゼロ知識証明の各々は、証明内の少なくとも1つの資格証明書に関連する資格証明書所有者、資格証明書発行者、ならびにスキーマおよび証明書の規定に関して、分散資格証明書管理取引合意ネットワーク70上に記憶された資格証明書所有者および資格証明書発行者の公開鍵に対して妥当性を確認できる。各ゼロ知識証明の妥当性確認により、ブール値であるTRUEまたはFALSEが生成され、対応する属性の属性または対応する述語の属性を包含する少なくとも1つの資格証明書が妥当であり、かつ取り消されていないことを示す。
検証応答は、各ゼロ知識証明の妥当性確認結果を示すブール値を含む。たとえば、VRDが属性の属性名、たとえば「ファーストネーム」、および属性の要件により識別された資格証明書、たとえば米国運転免許証である{スキーマ_id=1}を含む場合、対応するゼロ知識証明妥当性確認のTRUE値は、資格証明書所有者が、妥当であり、かつ取り消されていないファーストネームを包含する米国運転免許証資格証明書を所有することを意味する。その上、述語が「年齢<65」、および述語の要件により識別された資格証明書、たとえば米国運転免許証である{スキーマ_id=1}である場合、対応するゼロ知識証明妥当性確認のFALSE値は、米国運転免許証資格証明書は妥当ではない、または取り消されていることを意味する。検証応答に基づき、検証結果は、次いで第1の資格証明書管理システム20から送信される。検証結果はまた、ブール値、すなわち検証の合格に対するTRUE、およびVRDで指定された検証の不合格に対するFALSEとすることができる。別の実施形態では、検証結果は、検証者の要求に従って修正された検証応答を伴う、カスタマイズされた報告書であってよい。
【0058】
本発明の数多くの特徴および利点が、本発明の構造および機能の詳細と共に前述の説明で示されたとしても、本開示は例示でしかない。添付の特許請求の範囲が表現する用語の広い一般的な意味により示される最大限の範囲まで、本発明の原理の範囲内で特に部分の形状、サイズ、および配置に関して詳細に変更を行ってもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10