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

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

▶ 富士通株式会社の特許一覧

特開2024-99103プログラム、情報処理方法および情報処理装置
<>
  • 特開-プログラム、情報処理方法および情報処理装置 図1
  • 特開-プログラム、情報処理方法および情報処理装置 図2
  • 特開-プログラム、情報処理方法および情報処理装置 図3
  • 特開-プログラム、情報処理方法および情報処理装置 図4
  • 特開-プログラム、情報処理方法および情報処理装置 図5
  • 特開-プログラム、情報処理方法および情報処理装置 図6
  • 特開-プログラム、情報処理方法および情報処理装置 図7
  • 特開-プログラム、情報処理方法および情報処理装置 図8
  • 特開-プログラム、情報処理方法および情報処理装置 図9
  • 特開-プログラム、情報処理方法および情報処理装置 図10
  • 特開-プログラム、情報処理方法および情報処理装置 図11
  • 特開-プログラム、情報処理方法および情報処理装置 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024099103
(43)【公開日】2024-07-25
(54)【発明の名称】プログラム、情報処理方法および情報処理装置
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240718BHJP
   G06F 21/62 20130101ALI20240718BHJP
【FI】
H04L9/32 100A
G06F21/62 345
H04L9/32 200C
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023002803
(22)【出願日】2023-01-12
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】山岡 芽生恵
(57)【要約】
【課題】VC(Verifiable Credentials)の多重使用の検知を可能にする。
【解決手段】処理部12は、ユーザの識別情報を発行する第1システム21により発行される、第1ユーザに1対1に対応する第1識別情報を取得する。処理部12は、第1ユーザにより利用されるコンテンツの第2識別情報を取得する。処理部12は、第1ユーザにより入力された、コンテンツに関する入力情報を取得する。処理部12は、入力情報と第1ユーザのアイデンティティ情報とを第2システム22に送信する際に、第1識別情報および第2識別情報の組に対応するハッシュ値yであって、コンテンツの利用者の識別に用いられるハッシュ値yを第2システム22に送信する。
【選択図】図1
【特許請求の範囲】
【請求項1】
コンピュータに、
ユーザの識別情報を発行する第1システムにより発行される、第1ユーザに1対1に対応する第1識別情報を取得し、前記第1ユーザにより利用されるコンテンツの第2識別情報を取得し、
前記第1ユーザにより入力された、前記コンテンツに関する入力情報と前記第1ユーザのアイデンティティ情報とを第2システムに送信する際に、前記第1識別情報および前記第2識別情報の組に対応するハッシュ値であって前記コンテンツの利用者の識別に用いられる前記ハッシュ値を前記第2システムに送信する、
処理を実行させるプログラム。
【請求項2】
前記第1識別情報に対する発行者のデジタル署名を更に取得し、
前記ハッシュ値の計算に用いられた前記第1識別情報および前記発行者の公開鍵による検証に成功する前記デジタル署名の知識を前記第1ユーザが有していることを証明するためのゼロ知識証明情報を生成し、
前記ゼロ知識証明情報を前記第2システムに送信する、
処理を前記コンピュータに実行させる請求項1記載のプログラム。
【請求項3】
前記第2システムは、前記第2識別情報に対応付けて前記入力情報と前記アイデンティティ情報と前記ハッシュ値とを保存し、
前記第2システムまたは前記第2システムから前記入力情報を取得する情報処理装置は、前記第2識別情報に関して同一の前記ハッシュ値に対応する複数の入力情報の少なくとも一部の出力を制限する、
請求項1記載のプログラム。
【請求項4】
前記第2システムは、前記第2識別情報に対応付けて前記入力情報と前記アイデンティティ情報と前記ハッシュ値と前記ゼロ知識証明情報とを保存し、
前記第2システムまたは前記第2システムから前記入力情報を取得する情報処理装置は、前記第2識別情報に関して同一の前記ハッシュ値に対応する複数の入力情報の少なくとも一部の出力を制限するとともに前記ゼロ知識証明情報の検証に失敗する前記入力情報の出力を制限する、
請求項2記載のプログラム。
【請求項5】
前記アイデンティティ情報は、前記第1ユーザにより複数保有することが許容される分散型識別子を有する、
請求項1記載のプログラム。
【請求項6】
コンピュータが、
ユーザの識別情報を発行する第1システムにより発行される、第1ユーザに1対1に対応する第1識別情報を取得し、前記第1ユーザにより利用されるコンテンツの第2識別情報を取得し、
前記第1ユーザにより入力された、前記コンテンツに関する入力情報と前記第1ユーザのアイデンティティ情報とを第2システムに送信する際に、前記第1識別情報および前記第2識別情報の組に対応するハッシュ値であって前記コンテンツの利用者の識別に用いられる前記ハッシュ値を前記第2システムに送信する、
情報処理方法。
【請求項7】
前記コンピュータが、
前記第1識別情報に対する発行者のデジタル署名を更に取得し、
前記ハッシュ値の計算に用いられた前記第1識別情報および前記発行者の公開鍵による検証に成功する前記デジタル署名の知識を前記第1ユーザが有していることを証明するためのゼロ知識証明情報を生成し、
前記ゼロ知識証明情報を前記第2システムに送信する、
請求項6記載の情報処理方法。
【請求項8】
前記第2システムが、前記第2識別情報に対応付けて前記入力情報と前記アイデンティティ情報と前記ハッシュ値と前記ゼロ知識証明情報とを保存し、
前記第2システムまたは前記第2システムから前記入力情報を取得する情報処理装置が、前記第2識別情報に関して同一の前記ハッシュ値に対応する複数の入力情報の少なくとも一部の出力を制限するとともに前記ゼロ知識証明情報の検証に失敗する前記入力情報の出力を制限する、
請求項7記載の情報処理方法。
【請求項9】
ユーザの識別情報を発行する第1システムにより発行される、第1ユーザに1対1に対応する第1識別情報を記憶する記憶部と、
前記第1ユーザにより利用されるコンテンツの第2識別情報を取得し、前記第1ユーザにより入力された、前記コンテンツに関する入力情報と前記第1ユーザのアイデンティティ情報とを第2システムに送信する際に、前記第1識別情報および前記第2識別情報の組に対応するハッシュ値であって前記コンテンツの利用者の識別に用いられる前記ハッシュ値を前記第2システムに送信する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はプログラム、情報処理方法および情報処理装置に関する。
【背景技術】
【0002】
現在、分散型アイデンティティ基盤と呼ばれるシステムの普及が進んでいる。分散型アイデンティティ基盤は、ユーザ個人が自身の年齢、性別、所有する資格などのアイデンティティ情報をデジタルデータとして管理することを可能とする。例えば、分散型アイデンティティ基盤は、個人のアイデンティティ情報に対し、アイデンティティ情報の真正性を担保する発行者のデジタル署名を付与することで、アイデンティティ情報を改竄不可能な形で管理する仕組みを提供する。
【0003】
ところで、あるデータをもつユーザは、セキュリティの観点から、当該データそのものを他者に開示せずに、自身が当該データを知っていることを他者に対して証明したいことがある。この場合、ゼロ知識証明という暗号技術が利用されることがある。
【0004】
例えば、ゼロ知識証明では、ある情報処理装置は、データから当該データを知らずに偶然生成できる確率が十分に小さいゼロ知識証明情報を生成し、他の情報処理装置に送信する。他の情報処理装置は、受信されたゼロ知識証明情報を特定のアルゴリズムに従って検証し、受信されたゼロ知識証明情報が相手ユーザの知識を証明しているか判定する。
【0005】
また、証明者が有資格者であることを保証するセンターが生成する有資格情報を用い、証明者側の有資格性、および検証者側の認証の双方をゼロ知識証明を用いて行う相互認証方法の提案がある。
【0006】
また、証明の作成者が特定のアイデンティティを所有することを示すゼロ知識証明の生成を行うコンピュータの提案がある。更に、ゼロ知識証明パラメータの使用を通じて、ユーザのデジタルアイデンティティの検証を提供し、それにより個人識別情報の保存を行えるようにするシステムの提案もある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】国際公開第2022/153377号
【特許文献2】特開平11-234263号公報
【特許文献3】米国特許出願公開第2021/0056227号明細書
【特許文献4】米国特許出願公開第2021/0049588号明細書
【発明の概要】
【発明が解決しようとする課題】
【0008】
ユーザは、所定の発行者により発行された検証可能な資格情報(VC:Verifiable Credentials)を取得し、VCを用いて自身のアイデンティティ情報を他者に開示して種々のサービスを利用し得る。VCは、ユーザ個人のアイデンティティ情報の集合であり、発行者のデジタル署名が付与される。VCは、分散型識別子(DID:Decentralized IDentifier)と呼ばれる識別情報を含む。VCに基づいて他者に提示されるアイデンティティ情報は、VP(Verifiable Presentation)と言われることもある。
【0009】
ここで、複数のサービスの利用のために異なる用途で提示されたVCの利用履歴が、一つのDIDを基に紐づけられることはプライバシ保護の観点からは好ましくない。そこで、一人のユーザが複数のDIDを持ち、サービスごとにDIDを使い分けることで、VCの利用履歴の紐付けを不可能にすることが考えられる。
【0010】
しかし、プライバシ保護のため、あるユーザの複数のDIDに対し、発行者がDIDごとにVCを発行すると、サービスが提供する一つのコンテンツに対して、一人のユーザがあたかも複数のユーザであるように振舞えるという問題がある。例えば、投稿型の情報共有サービスにおいて、一人のユーザが一つのニュース記事などのコンテンツに対し、複数回(例えばユーザが保持しているDIDの数だけ)異なる投稿者として投稿できるようになってしまう。
【0011】
1つの側面では、本発明は、VCの多重使用の検知を可能にすることを目的とする。
【課題を解決するための手段】
【0012】
1つの態様では、コンピュータに次の処理を実行させるプログラムが提供される。コンピュータは、ユーザの識別情報を発行する第1システムにより発行される、第1ユーザに1対1に対応する第1識別情報を取得する。また、コンピュータは、第1ユーザにより利用されるコンテンツの第2識別情報を取得する。コンピュータは、第1ユーザにより入力された、コンテンツに関する入力情報と第1ユーザのアイデンティティ情報とを第2システムに送信する際に、第1識別情報および第2識別情報の組に対応するハッシュ値であってコンテンツの利用者の識別に用いられるハッシュ値を第2システムに送信する。
【0013】
また、1つの態様では、コンピュータが実行する情報処理方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0014】
1つの側面では、多重使用の検知が可能になる。
【図面の簡単な説明】
【0015】
図1】第1の実施の形態の情報処理装置を説明する図である。
図2】第2の実施の形態の情報処理システムの例を示す図である。
図3】端末装置のハードウェア例を示すブロック図である。
図4】情報処理システムの機能例(その1)を示すブロック図である。
図5】情報処理システムの機能例(その2)を示すブロック図である。
図6】ゼロ知識証明文の例を示す図である。
図7】エンドースメントデータテーブルの例を示す図である。
図8】holderID取得の例を示すフローチャートである。
図9】エンドースメントデータ送信の例を示すフローチャートである。
図10】エンドースメントデータ検証の例を示すフローチャートである。
図11】多重使用検知の例を示す図である。
図12】比較例を示す図である。
【発明を実施するための形態】
【0016】
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0017】
図1は、第1の実施の形態の情報処理装置を説明する図である。
情報処理装置10は、証明者がある情報を所有していることを証明するための証明情報を送信する送信装置である。情報処理装置10は、証明者が操作するクライアント装置でもよいし、証明者のデータを扱うサーバ装置でもよい。情報処理装置10は、コンピュータと呼ばれてもよい。情報処理装置10は、ネットワーク20に接続される。ネットワーク20には、第1システム21および第2システム22が接続される。ネットワーク20は、例えばインターネットやWAN(Wide Area Network)などである。
【0018】
第1システム21は、証明者であるユーザの識別情報を発行する情報処理システムである。第1システム21は、1つの情報処理装置で実現されてもよい。例えば、第1システム21は、公的な認証機関が運用する情報処理システムでもよいし、民間の認証機関が運用する情報処理システムでもよい。認証機関は、ユーザの個人情報を確認し、第1システム21を用いて当該ユーザに対して1対1に対応する識別情報を発行する発行者である。当該識別情報はholderID(ホルダーID)と言われてもよい。第1システム21は、ユーザに対するアイデンティティ情報の発行を行ってもよい。ユーザに対して発行されるアイデンティティ情報またはアイデンティティ情報の集合は、VCと言われてもよい。ユーザに発行されるアイデンティティ情報には、アイデンティティ情報の発行者のデジタル署名が付与される。
【0019】
ここで、VCに含まれるDIDは、一人のユーザにより複数持つことが許容される。一方、holderIDは、一人のユーザにより複数持つことは許容されず、ユーザに1対1に対応付けられる点がDIDと異なる。例えば、第1システム21は、holderIDをランダムな値として生成してもよいし、VCに含まれるユーザのアイデンティティ情報の組み合わせにより、一意になるようにholderIDを生成してもよい。例えば、第1システム21は氏名および電話番号の組に対する所定の演算値(例えばハッシュ値)をholderIDとしてもよい。
【0020】
第2システム22は、所定のサービスにより提供されるコンテンツに対してユーザにより入力された入力情報を、ユーザのアイデンティティ情報とともに管理する情報処理システムである。第2システム22は、1つの情報処理装置で実現されてもよい。第2システム22は、サービス提供者が運用する情報処理システムでもよいし、サービス提供者以外の主体が運用する情報処理システムでもよい。例えば、サービスが情報共有サービスであり、コンテンツがニュース記事である場合、コンテンツに関する入力情報は、当該ニュース記事に対してユーザにより入力された投稿コメントでもよい。また、この場合、第2システム22で投稿コメントとともに管理されるユーザのアイデンティティ情報は、ユーザの住所でもよい。このように、投稿とVC(アイデンティティ情報)とを紐づけることにより投稿内容の信頼性を向上させることができる。
【0021】
記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0022】
処理部12は、第1システム21により発行される、第1ユーザに1対1に対応する第1識別情報を取得する。第1ユーザは、情報処理装置10を使用するユーザである。第1ユーザのholderIDは、第1ユーザの第1識別情報に相当する。処理部12は、第1識別情報を記憶部11に格納する。第1識別情報は、第1ユーザにより秘密に保持される。
【0023】
また、処理部12は、公開されているコンテンツの第2識別情報を取得する。第2識別情報は、例えばコンテンツに予め一意に付与される識別番号でもよいし、コンテンツのURL(Uniform Resource Locator)でもよいし、URLのハッシュ値などでもよい。例えば、第2識別情報は、第2システム22から取得されてもよいし、第2システム以外の装置から取得されてもよい。第2識別情報は、contentsID(コンテンツID)と言われてもよい。
【0024】
処理部12は、第1ユーザにより入力された、コンテンツに関する入力情報と第1ユーザのアイデンティティ情報とを第2システム22に送信する際に、第1識別情報および第2識別情報の組に対応するハッシュ値yを算出する。ハッシュ値yは、第1識別情報および第2識別情報を所定のハッシュ関数Hashに入力することで算出される。すなわち、y=Hash(holderID,contentsID)である。ハッシュ値yは、コンテンツの利用者の識別に用いられる。
【0025】
処理部12は、第1ユーザにより入力された、コンテンツに関する入力情報と第1ユーザのアイデンティティ情報とハッシュ値yとを第2システム22に送信する。第2システム22に送信されるアイデンティティ情報はVPと言われてもよい。VPはVCに含まれるアイデンティティ情報の集合の全部でもよいし、一部でもよい。また、第2システム22へ提供されるアイデンティティ情報(VP)は、VCの項目値が満たす条件を示してもよく、例えばVCのある項目が第1ユーザの年齢=30歳を示す場合に、第1ユーザが20歳以上であることを示すものでもよい。このため、第2システム22に送信されるアイデンティティ情報は、第1ユーザ個人を特定可能な情報ではない。
【0026】
第2システム22は、情報処理装置10から、コンテンツに関する入力情報とアイデンティティ情報とハッシュ値yとを受信し、第2システム22の所定の記憶装置にcontentsIDに対応付けて保存する。例えば、第2システム22は、当該記憶装置に保存されるハッシュ値yにより、あるコンテンツに対して一人のユーザによる重複利用の有無を検出し得る。具体的には、第2システム22は、一つのcontentsIDに対して同じハッシュ値yが対応付けられた複数の入力情報がある場合、当該複数の入力情報が、同一ユーザによって多重に入力されたものであると判断する。
【0027】
また、第2システム22は、アイデンティティ情報に付与された発行者のデジタル署名を検証することで、当該アイデンティティ情報が信頼される発行者により発行されたものであることを確認し得る。これにより、コンテンツに関する入力情報を入力した第1ユーザのアイデンティティ情報の信頼性が担保される。第2システム22は、デジタル署名の検証に失敗した場合、コンテンツに関する該当の情報を信頼性の低い情報として扱う。
【0028】
また、第2システム22は、あるコンテンツに対して同一ユーザによって多重に入力された情報を、他のユーザに提供しないように制御してもよい。あるいは、第2システム22は、多重に入力された情報のうちの最初のもの、または、最新のもののみを他のユーザに提供するなどの制御を行ってもよい。また、上記の重複利用の有無の検出やアイデンティティ情報のデジタル署名の検証は、該当のcontentsIDに対応する、コンテンツに関する入力情報を第2システム22から受信する他の装置によって実行されてもよい。
【0029】
以上説明したように、情報処理装置10によれば、ユーザの識別情報を発行する第1システム21により発行される、第1ユーザに1対1に対応する第1識別情報が取得される。第1ユーザにより利用されるコンテンツの第2識別情報が取得される。第1ユーザにより入力された、コンテンツに関する入力情報と第1ユーザのアイデンティティ情報とを第2システム22に送信する際に、第1識別情報および第2識別情報の組に対応するハッシュ値が第2システムに送信される。当該ハッシュ値は、第2システム22または他の装置により、コンテンツの利用者の識別に用いられる。これにより、アイデンティティ情報に対応するVCの多重使用の検知が可能になる。換言すれば、複数のVCに対応する複数のアイデンティティ情報を多重に用いた、同一ユーザによる同一コンテンツの多重使用の検知が可能になる。
【0030】
ここで、ハッシュ値yは、第1識別情報(holderID)および第2識別情報(contentsID)の組が同じであれば同じ値になる。よって、第2システム22または他の装置は、一つのコンテンツに対して、同じハッシュ値yに対応して入力された情報の有無により、同一ユーザによる複数のVCを用いたコンテンツの多重使用を検知できる。前述のニュース記事をコンテンツとする例では、第2システム22または他の装置は、一人のユーザによる多重投稿を検知できる。
【0031】
また、異なる第2識別情報から作成されたハッシュ値y1=Hash(x1,contentsID1)とy2=Hash(x2,contentsID2)とがあったとき、x1=x2であるか否かは検証者(第2システム22または他の装置)からは分からない。すなわち、同じ第1識別情報(holderID)であっても、第2識別情報(contentsID)が異なれば、異なるハッシュ値yが生成される。このため、第2システム22または他の装置では、異なるコンテンツに対する同一ユーザによる利用があるか否かをハッシュ値yからは判断できない。このように、異なるコンテンツに対してはユーザの紐付けが秘匿化される。
【0032】
なお、処理部12は、情報処理装置10から第2システム22へ送信する情報の信頼性を、次のようにゼロ知識証明技術を用いて更に向上してもよい。
ゼロ知識証明技術は、公開情報(instance)に対して、ある条件(statement)を満たす秘密情報(witness)をもつ証明者が、その秘密情報そのものを明かすことなく、その秘密情報を知っていることを検証者に証明するための手法である。ゼロ知識証明技術は、例えば下記の文献1,2を参考にすることができる。
【0033】
文献1:Groth, Jens, "On the size of pairing-based non-interactive arguments," Annual international conference on the theory and applications of cryptographic techniques, Springer, Berlin, Heidelberg, 2016.
文献2:Ben-Sasson, Eli, et al., "Scalable, transparent, and post-quantum secure computational integrity," IACR Cryptol, ePrint Arch, 2018.
ただし、上記の文献1,2以外のゼロ知識証明技術が用いられてもよい。
【0034】
処理部12は、第1識別情報に対する発行者のデジタル署名Sigを更に取得してもよい。処理部12は、ハッシュ値yの計算に用いられた第1識別情報および発行者の公開鍵による検証に成功するデジタル署名Sigの知識を第1ユーザが有していることを証明するためのゼロ知識証明情報πを生成してもよい。ゼロ知識証明情報は、ゼロ知識証明文と言われることもある。処理部12は、第1ユーザのアイデンティティ情報とハッシュ値yとに加えて、ゼロ知識証明情報πを第2システムに送信してもよい。
【0035】
ここで、例えばハッシュ値yの入力xを証明者が知っていることを示すゼロ知識証明情報は、次のように表現される。
Instance: y
Witness: x
Statement: y=Hash(x)
この表現例によればゼロ知識証明情報πの証明内容は、次のように表される。
【0036】
Instance: contentsID,y,pk_i
Witness: holderID,Sig
Statement:
I. y=Hash(holderID,contentsID)
II. Verifypk_i(holderID,Sig)=Valid
ここで、pk_iは、第1識別情報の発行者(すなわち、第1システム21)の公開鍵である。公開鍵pk_iは、デジタル署名Sigの検証に用いられる。
【0037】
ゼロ知識証明情報πは、holderIDおよびデジタル署名Sigの知識を、証明者である第1ユーザが有していることを、holderIDおよびデジタル署名Sigを開示せずに証明するための情報である。ゼロ知識証明情報πは例えば数値のリストである。
【0038】
この場合、第2システム22は、情報処理装置10から、ゼロ知識証明情報πを更に受信し、第2システム22の記憶装置に保存する。第2システム22または他の装置は、yによる、コンテンツの多重使用有無の検証に加えて、ゼロ知識証明情報πを検証することで、第1ユーザが第1識別情報であるholderIDを偽ってコンテンツを使用していないことを確認できる。すなわち、ゼロ知識証明情報πの検証が成功する場合、第1ユーザがholderIDを偽って使用していないと判断される。一方、ゼロ知識証明情報πの検証が失敗する場合、第1ユーザがholderIDを偽って使用していると判断される。
【0039】
例えば、第1ユーザが第1システム21により発行されたholderIDを使わずにholderID’からハッシュ値y’を作成したとしても、holderID’に対する第1システム21のデジタル署名Sig’を第1ユーザは生成することができない。このため、処理部12は、上記StatementのII.を満たすゼロ知識証明情報πを作成できなくなる。こうして、情報処理装置10は、悪意あるユーザによるコンテンツの多重使用(例えば多重投稿)の防止を可能にしてもよい。
【0040】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
【0041】
第2の実施の形態の情報処理システムは、分散型アイデンティティ基盤を提供する。第2の実施の形態の情報処理システムは、端末装置100,200、発行サーバ300、コンテンツ提供サーバ400およびエンドースメント管理サーバ500を含む。端末装置100,200、発行サーバ300、コンテンツ提供サーバ400およびエンドースメント管理サーバ500は、インターネット30に接続される。インターネット30には、検証可能データレジストリ(Verifiable Data Registry)31および検証鍵管理サーバ32も接続される。
【0042】
端末装置100は、エンドーサと呼ばれるユーザが使用するクライアントコンピュータである。エンドーサは、コンテンツ提供サーバ400が提供するコンテンツに対する投稿を行う投稿者である。エンドーサは、アイデンティティ情報を保有するホルダー(holder)に相当する。
【0043】
エンドーサにより投稿される情報は、エンドースメントデータと言われる。投稿されたエンドースメントデータは、エンドースメント管理サーバ500により管理される。具体的には、端末装置100は、コンテンツに対するエンドースメントデータを、エンドーサのアイデンティティ情報とともにエンドースメント管理サーバ500に送信する。それとともに、端末装置100は、コンテンツの識別情報であるcontentsIDとエンドーサに対して一意のholderIDとのハッシュ値や、エンドーサが適正なholderIDを保有していることを証明するゼロ知識証明情報の送信も行う。
【0044】
エンドーサのアイデンティティ情報またはアイデンティティ情報の集合は、VCとして発行サーバ300により発行される。VCには認証機関である発行者(issuer)のデジタル署名が付与される。また、VCはDIDを含む。エンドーサは、VCの全部または一部のアイデンティティ情報を示すVPを検証者(verifier)に提示することができる。例えば、エンドーサは、VCの一部のアイデンティティ情報を秘匿して検証者に提示することができる。VPもVCに対応する発行者のデジタル署名を含む。VPにおいてVCの一部のアイデンティティ情報が秘匿される場合でも、検証者は、VPにおける発行者のデジタル署名を発行者の公開鍵により検証することができる。
【0045】
以下の説明では、端末装置100がエンドースメント管理サーバ500に送信するアイデンティティ情報またはアイデンティティ情報の集合もVCと言う。また、ゼロ知識証明情報をゼロ知識証明文と言う。また、端末装置100を使用するエンドーサをエンドーサAとする。端末装置100は、第1の実施の形態の情報処理装置10の一例である。
【0046】
端末装置200は、コンテンツ提供サーバ400が提供するコンテンツを閲覧するユーザである閲覧者が使用するクライアントコンピュータである。端末装置200は、コンテンツの本体をコンテンツ提供サーバ400から取得し、当該コンテンツに紐づくエンドースメントデータを取得し、当該コンテンツとエンドースメントデータとを表示する。端末装置200を使用する閲覧者を閲覧者Bとする。
【0047】
発行サーバ300は、エンドーサAに対してVCを発行する認証機関のサーバコンピュータである。発行サーバ300は、エンドーサAに対して1対1に対応するholderIDの発行も行う。認証機関は、VCおよびholderIDを発行する発行者である。holderIDは、例えば発行者が複数存在する場合、複数の発行者でholderIDの決定方法が合意され、あるエンドーサAに関して一意となる。発行サーバ300は、第1の実施の形態の第1システム21の一例である。
【0048】
コンテンツ提供サーバ400は、コンテンツの提供を行うサーバコンピュータである。例えば、コンテンツ提供サーバ400は、情報共有サービスを提供するWebサーバとして機能し、Webブラウザとして機能する端末装置100,200に対し、当該情報共有サービスにおけるニュース記事などのコンテンツの提供を行う。当該情報共有サービスは、ニュース記事へのコメントなどをユーザから集約する投稿型の情報共有サービスである。投稿者であるエンドーサは、投稿と合わせてVCを開示することで、エンドーサの身元(例えばXX市在住など)を明らかにしながら自身の投稿を開示することができる。投稿とVCとを紐づけることにより投稿内容の信頼性が向上する。また、コンテンツ提供サーバ400は、コンテンツの識別情報であるcontentsIDの提供も行う。contentsIDは、例えばコンテンツのURLや当該URLのハッシュ値などである。
【0049】
エンドースメント管理サーバ500は、エンドースメントデータを管理するサーバコンピュータである。エンドースメント管理サーバ500は、端末装置100からVCを含むエンドースメントデータと上記ハッシュ値とゼロ知識証明文とを受信し、記憶装置に保存する。エンドースメント管理サーバ500は、端末装置200に対するエンドースメントデータの提供を行う。エンドースメント管理サーバ500は、第1の実施の形態の第2システム22の一例である。
【0050】
検証可能データレジストリ31は、VCの発行者のデジタル署名を検証するための発行者の公開鍵を管理するコンピュータシステムである。検証可能データレジストリ31は、端末装置200などに発行者の公開鍵を提供する。検証可能データレジストリ31は、エンドーサのデジタル署名を検証するためのエンドーサの公開鍵を管理してもよく、端末装置200などにエンドーサの公開鍵を提供してもよい。
【0051】
検証鍵管理サーバ32は、端末装置100が生成するゼロ知識証明文の検証に用いられる検証鍵を管理するサーバコンピュータである。検証鍵管理サーバ32は、端末装置200などに当該検証鍵を提供する。
【0052】
図3は、端末装置のハードウェア例を示すブロック図である。
端末装置100は、プロセッサ101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。端末装置100が有するこれらのユニットは、端末装置100の内部でバスに接続されている。プロセッサ101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0053】
プロセッサ101は、プログラムの命令を実行するプロセッサである。プロセッサ101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、プロセッサ101は複数のプロセッサコアを含んでもよい。また、端末装置100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0054】
RAM102は、プロセッサ101が実行するプログラムやプロセッサ101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、端末装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0055】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、端末装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0056】
GPU104は、プロセッサ101からの命令に従って、端末装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
【0057】
入力インタフェース105は、端末装置100に接続された入力デバイス112から入力信号を取得し、プロセッサ101に出力する。入力デバイス112としては、マウス、タッチパネル、タッチパッド、トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、端末装置100に、複数の種類の入力デバイスが接続されていてもよい。
【0058】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0059】
媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、プロセッサ101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0060】
通信インタフェース107は、インターネット30に接続され、インターネット30を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0061】
なお、検証可能データレジストリ31、検証鍵管理サーバ32、端末装置200、発行サーバ300、コンテンツ提供サーバ400およびエンドースメント管理サーバ500も端末装置100と同様のハードウェアにより実現される。
【0062】
図4は、情報処理システムの機能例(その1)を示すブロック図である。
端末装置100は、記憶部120、ID取得部130、コンテンツ処理部140、エンドースメントデータ生成部150、証明情報生成部160および送信部170を有する。記憶部120には、RAM102やHDD103の記憶領域が用いられる。ID取得部130、コンテンツ処理部140、エンドースメントデータ生成部150、証明情報生成部160および送信部170は、RAM102に記憶されたプログラムがプロセッサ101により実行されることで実現される。
【0063】
記憶部120は、発行サーバ300により発行されるVC、holderIDおよびholderIDに対する発行者のデジタル署名Sigを記憶する。
ID取得部130は、発行サーバ300により発行されるVC、holderIDおよびデジタル署名Sigを取得し、記憶部120に格納する。holderIDおよびデジタル署名Sigは、秘密に保持される。
【0064】
コンテンツ処理部140は、コンテンツ提供サーバ400からcontentsIDおよびコンテンツを取得し、コンテンツをディスプレイ111に表示させる。contensIDは、例えばエンドーサAが閲覧したいコンテンツのURLとして、端末装置100に入力される。コンテンツ処理部140は、contentsIDを証明情報生成部160に渡す。なお、コンテンツ処理部140は、該当のコンテンツのcontentsIDをコンテンツ提供サーバ400以外のサーバコンピュータから取得してもよい。
【0065】
エンドースメントデータ生成部150は、コンテンツ処理部140により表示されたコンテンツに対するエンドーサAの入力に応じて、エンドースメントデータを生成する。前述のように、エンドースメントデータは、本例ではエンドーサによる投稿情報を含む。エンドースメントデータ生成部150は、エンドースメントデータを送信部170に渡す。
【0066】
証明情報生成部160は、記憶部120に記憶されるholderIDとcontentsIDとハッシュ関数Hashに基づいてハッシュ値y=Hash(holderID,contentsID)を算出する。証明情報生成部160は、ハッシュ値yの計算に用いられたholderIDおよび発行者の公開鍵による検証に成功するデジタル署名Sigの知識をエンドーサAが有していることを証明するためのゼロ知識証明文πを生成する。証明情報生成部160は、エンドーサAのVCと、ハッシュ値yと、ゼロ知識証明文πとを送信部170に渡す。
【0067】
送信部170は、エンドーサAのVCを付加したエンドースメントデータとハッシュ値yとゼロ知識証明文πとをエンドースメント管理サーバ500に送信する。
発行サーバ300は、発行部310を有する。発行部310は、発行サーバ300のRAMに記憶されたプログラムが発行サーバ300のプロセッサにより実行されることで実現される。
【0068】
発行部310は、エンドーサに対するVCおよびholderIDの発行を行う。発行部310は、VCおよびholderIDそれぞれに対して、発行者の秘密鍵によりデジタル署名を付与する。VCおよびholderIDそれぞれのデジタル署名は、異なる秘密鍵により生成されてもよいし、同じ秘密鍵により生成されてもよい。
【0069】
ここで、発行部310は、例えばエンドーサAの氏名および電話番号の組み合わせなど、複数のアイデンティティの組み合わせを用いることで、エンドーサAに対して1対1に対応するようにholderIDを生成する。holderIDは、例えば、複数のアイデンティティの組み合わせを所定のハッシュ関数に入力することで得られるハッシュ値でもよい。
【0070】
また、発行者はエンドーサAの個人情報を確認した上で、エンドーサAにholderIDを発行する。図示を省略しているが、発行サーバ300は、エンドーサAに発行するholderIDとエンドーサAのDIDとの対応関係を管理する管理情報を記憶する記憶部を有しており、holderIDとDIDとの対応関係を把握している。エンドーサAが複数のDIDを有する場合、単一のholderIDに対して複数のDIDが対応することになる。一人のエンドーサに対する複数のDIDは、pairwiseDIDと言われることがある。
【0071】
コンテンツ提供サーバ400は、コンテンツ提供部410を有する。コンテンツ提供部410は、コンテンツ提供サーバ400のRAMに記憶されたプログラムがコンテンツ提供サーバ400のプロセッサにより実行されることで実現される。
【0072】
コンテンツ提供部410は、コンテンツおよびcontentsIDを端末装置100,200に提供する。
エンドースメント管理サーバ500は、エンドースメントデータDB(DataBase)510および受信部520を有する。エンドースメントデータDB510には、エンドースメント管理サーバ500のHDDやSSDなどの記憶装置の記憶領域が用いられる。受信部520は、エンドースメント管理サーバ500のRAMに記憶されたプログラムが、エンドースメント管理サーバ500のプロセッサにより実行されることで実現される。
【0073】
エンドースメントデータDB510は、エンドースメントデータを保持するDBである。エンドースメントデータDB510は、contentsIDとエンドーサAのVCを含むエンドースメントデータとハッシュ値yとゼロ知識証明文πとを対応付けて保持する。
【0074】
受信部520は、contentsIDに対応するエンドースメントデータとハッシュ値yとゼロ知識証明文πとを端末装置100から受信し、エンドースメントデータDB510に格納する。
【0075】
図5は、情報処理システムの機能例(その2)を示すブロック図である。
端末装置200は、コンテンツ処理部210、エンドースメントデータ取得部220および検証部230を有する。コンテンツ処理部210、エンドースメントデータ取得部220および検証部230は、端末装置200のRAMに記憶されたプログラムが端末装置200のプロセッサにより実行されることで実現される。
【0076】
コンテンツ処理部210は、コンテンツ提供サーバ400からcontentsIDおよびコンテンツを取得し、端末装置200のディスプレイにコンテンツを表示させる。contensIDは、例えば閲覧者Bが閲覧したいコンテンツのURLとして、端末装置200に入力される。コンテンツ処理部210は、contentsIDをエンドースメントデータ取得部220に渡す。また、コンテンツ処理部210は、contentsIDに対応するエンドースメントデータをエンドースメントデータ取得部220から取得し、端末装置200のディスプレイに当該コンテンツとともにエンドースメントデータの内容を表示させる。
【0077】
エンドースメントデータ取得部220は、contentsIDに対応するエンドースメントデータをエンドースメント管理サーバ500から取得する。具体的には、エンドースメントデータ取得部220は、contentsIDを含むエンドースメントデータ取得要求をエンドースメント管理サーバ500に送信し、その応答としてエンドースメントデータをエンドースメント管理サーバ500から受信する。エンドースメントデータの取得では、エンドースメントデータに付随するVC、ハッシュ値yおよびゼロ知識証明文πも取得される。エンドースメントデータ取得部220は、エンドースメントデータの検証を検証部230に実行させる。エンドースメントデータ取得部220は、検証部230の検証に成功するエンドースメントデータをコンテンツ処理部210に渡す。
【0078】
検証部230は、エンドースメントデータの検証を行う。エンドースメントデータの検証は、ハッシュ値yによる重複投稿の検知、ゼロ知識証明文πの検証、および、VCに付与されているデジタル署名の検証を含む。
【0079】
エンドースメント管理サーバ500は、エンドースメントデータDB510および受信部520に加えて、応答部530を有する。応答部530は、エンドースメント管理サーバ500のRAMに記憶されたプログラムが、エンドースメント管理サーバ500のプロセッサにより実行されることで実現される。また、図5では受信部520の図示を省略している。
【0080】
応答部530は、contentsIDを含むエンドースメントデータ取得要求を端末装置200から受信すると、エンドースメントデータDB510から当該contentsIDに対応するエンドースメントデータを抽出し、端末装置200に応答する。
【0081】
なお、端末装置100は、図4で説明した端末装置100の機能に加えて、端末装置200が備えるコンテンツ処理部とエンドースメントデータ処理部と検証部の機能を備えることができる。また、端末装置200は、図5で説明した端末装置200の機能に加えて、端末装置100が備える記憶部とID取得部とコンテンツ処理部とエンドースメントデータ生成部と証明情報生成部と送信部との機能を備えることができる。
【0082】
図6は、ゼロ知識証明文の例を示す図である。
ゼロ知識証明文40は、本例におけるゼロ知識証明文の証明内容の表現例を示す。Instanceは公開される情報(公開情報)を示す。Witnessは秘密情報である。Statementは秘密情報が満たす条件である。ゼロ知識証明文40は、ハッシュ値yの入力xを証明者が知っていることを証明する。
【0083】
ゼロ知識証明文40の表現に倣ってゼロ知識証明文πも表現される。ゼロ知識証明文41は、ゼロ知識証明文πの表現例を示す。デジタル署名Sigは、holderIDに対する発行者のデジタル署名である。pk_iは、holderIDのデジタル署名Sigに対応する、発行者の公開鍵である。公開鍵pk_iは、検証可能データレジストリ31に格納され、端末装置100,200などに提供される。
【0084】
ゼロ知識証明文πは、I.およびII.のステートメント(statement)を満たすholderIDおよびデジタル署名Sigの知識を、エンドースメントデータの投稿者であるエンドーサAが有していることを証明する。I.のステートメントは、ハッシュ値yの計算に用いられたholderIDをエンドーサAが有しているという条件を示す。II.のステートメントは、発行者の公開鍵pk_iによる検証に成功する、holderIDに対する発行者のデジタル署名SigをエンドーサAが有しているという条件を示す。
【0085】
すなわち、ゼロ知識証明文πは、ハッシュ関数Hashによるハッシュ値yの算出に用いられたholderIDの知識、および、発行者の公開鍵pk_iによる検証に成功する、発行者のデジタル署名Sigの知識をエンドーサAが有していることを証明する。
【0086】
例えば、端末装置100は、適正なholderIDを使わずに不正なholderID’からハッシュ関数Hashによりハッシュ値y’を作成できたとしても、holderID’に対する発行者のデジタル署名Sig’を作成することはできない。したがって、この場合、端末装置100は、上記II.のステートメントを満たすゼロ知識証明文πを作成することはできない。
【0087】
このため、検証部230は、ゼロ知識証明文πを検証することで、エンドーサAがholderIDを偽って該当のエンドースメントデータを投稿したか否かを検証することができる。すなわち、ゼロ知識証明文πの検証に成功する場合、検証部230は、エンドーサAが適正なholderIDを用いてエンドースメントデータを投稿したと判断する。ゼロ知識証明文πの検証に失敗する場合、検証部230は、エンドーサAが不正なholderID’を用いてエンドースメントデータを投稿したと判断する。こうして、端末装置200は、ゼロ知識証明文40を基に、エンドーサAの不正な投稿を検知できる。
【0088】
なお、ゼロ知識証明文πの作成に用いられる証明鍵に対応する、ゼロ知識証明文πの検証に用いられる検証鍵は、検証鍵管理サーバ32により管理され、端末装置200などに提供される。
【0089】
図7は、エンドースメントデータテーブルの例を示す図である。
エンドースメントデータテーブル511は、エンドースメントデータDB510に格納される。エンドースメントデータテーブル511は、contentsID、エンドースメントデータ、ハッシュ値yおよびゼロ知識証明文πの項目を含む。contentsIDの項目には、contentsID(コンテンツID)が登録される。エンドースメントデータの項目には、エンドースメントデータが登録される。図示を省略しているが、エンドースメントデータは、エンドーサのDIDに紐づいたVCを含む。ハッシュ値yの項目には、ハッシュ値yが登録される。ゼロ知識証明文πの項目には、ゼロ知識証明文πが登録される。
【0090】
例えば、エンドースメントデータテーブル511は、contentsIDの項目が「ID1」、エンドースメントデータの項目が「XXXX,エンドーサ:DID1」、ハッシュ値yの項目が「y1」、ゼロ知識証明文πの項目が「π1」であるレコードを有する。当該レコードは、contentsID「ID1」のコンテンツに対して、エンドースメントデータ「XXXX,エンドーサ:DID1」とともに、ハッシュ値y=y1およびゼロ知識証明文π=π1が取得されていることを示す。ここで、エンドースメントデータにおける「XXXX」は、エンドーサによる投稿内容(例えばコンテンツに対する評価など)に相当する。また、エンドースメントデータにおけるDID(例えば、「DID1」は、投稿元のエンドーサのDIDである。
【0091】
エンドースメントデータテーブル511には、contentsID「ID1」のコンテンツに対する他のエンドースメントデータのレコードも同様に登録される。また、エンドースメントデータテーブル511には、他のcontentsIDのコンテンツに対する他のエンドースメントデータのレコードも同様に登録される。
【0092】
次に、以上で説明した情報処理システムの処理手順を説明する。まず、エンドースメントデータの投稿を行う端末装置100の処理手順を説明する。
図8は、holderID取得の例を示すフローチャートである。
【0093】
(S10)ID取得部130は、端末装置100を操作するエンドーサAのholderIDおよびholderIDに対する発行者のデジタル署名Sigを発行サーバ300から取得し、記憶部120に格納する。そして、holderID取得が終了する。
【0094】
図9は、エンドースメントデータ送信の例を示すフローチャートである。
(S20)コンテンツ処理部140は、エンドーサAにより使用されるコンテンツのcontentsIDを取得し、contentsIDに対応するコンテンツの情報をコンテンツ提供サーバ400から取得する。コンテンツ処理部140は、コンテンツをディスプレイ111に表示させる。エンドースメントデータ生成部150は、エンドーサAによる投稿内容の入力を受け付け、当該投稿内容を含むエンドースメントデータを生成する。コンテンツ処理部140は、エンドーサAによるエンドースメントデータの送信指示の入力を受け付ける。
【0095】
(S21)証明情報生成部160は、エンドースメントデータの生成に応じて、コンテンツ処理部140からcontentsIDを取得し、記憶部120に保持されるholderIDとcontentsIDとを用いてハッシュ値yを計算する。ハッシュ値yは所定のハッシュ関数HashにholderIDとcontentsIDとを入力することで得られる。
【0096】
(S22)証明情報生成部160は、ハッシュ値yとハッシュ値yの計算に用いたholderIDとcontentsIDとデジタル署名Sigと公開鍵pk_iとに基づいて、ゼロ知識証明文πを生成する。
【0097】
(S23)送信部170は、エンドースメントデータとともに、ハッシュ値yとゼロ知識証明文πとをエンドースメント管理サーバ500に送信する。なお、前述のようにエンドースメントデータにはエンドーサAのVCが含まれる。そして、エンドースメントデータ送信が終了する。
【0098】
エンドースメント管理サーバ500の受信部520は、端末装置100からエンドースメントデータを受信すると、受信したエンドースメントデータを、エンドースメントデータDB510に格納する。
【0099】
こうして、端末装置100は、エンドースメント管理サーバ500にエンドースメントデータを登録する。次に、閲覧者Bが使用する端末装置200によるエンドースメントデータの検証の手順を説明する。
【0100】
図10は、エンドースメントデータ検証の例を示すフローチャートである。
(S30)コンテンツ処理部210は、閲覧者Bにより閲覧されるコンテンツのcontentsIDを取得し、当該コンテンツの情報をコンテンツ提供サーバ400から取得する。また、コンテンツ処理部210は、contensIDをエンドースメントデータ取得部220に渡す。エンドースメントデータ取得部220は、contentsIDに対応するエンドースメントデータとハッシュ値yとゼロ知識証明文πとを、エンドースメント管理サーバ500から取得する。例えば、1つのcontentsIDに対して1つ以上のエンドースメントデータが取得される。例えば、取得されるエンドースメントデータには、エンドーサAにより投稿されたものが含まれる。
【0101】
(S31)検証部230は、ステップS30で取得されたエンドースメントデータに関する検証を行う。まず、検証部230は、該当のcontentsIDに対してハッシュ値yが重複するエンドースメントデータを削除する。
【0102】
(S32)検証部230は、残ったエンドースメントデータのゼロ知識証明文πを検証する。検証部230は、ハッシュ値yと公開情報であるcontentsIDと発行者の公開鍵pk_iとゼロ知識証明文πの検証鍵とに基づいて、ゼロ知識証明文πの検証を行える。
【0103】
(S33)検証部230は、検証に失敗したエンドースメントデータを削除する。
(S34)検証部230は、VCのデジタル署名を検証し、検証に失敗したエンドースメントデータを削除する。具体的には、検証部230は、エンドースメントデータに含まれるVCのデジタル署名を発行者の公開鍵を用いて検証することで、VCが発行者により認証されたエンドーサのものであることを確認する。こうして、検証部230は、ステップS31~S34の検証に成功した適正なエンドースメントデータのみをエンドースメントデータ取得部220に応答する。エンドースメントデータ取得部220は、コンテンツ処理部210に検証に成功したエンドースメントデータを渡す。
【0104】
(S35)コンテンツ処理部210は、該当のコンテンツの内容とともに、エンドースメントデータ取得部220から取得した適正なエンドースメントデータの内容(例えば投稿コメント)を、端末装置200のディスプレイに表示させる。そして、エンドースメントデータ検証が終了する。
【0105】
なお、ステップS31において、検証部230は、ハッシュ値yが重複するエンドースメントデータを削除するものとしたが、ステップS31では次の制御を行ってもよい。例えば、検証部230は、ハッシュ値yが重複する複数のエンドースメントデータのうちの最古のものを残し、それ以外を削除してもよい。あるいは、検証部230は、ハッシュ値yが重複する複数のエンドースメントデータのうちの最新のものを残し、それ以外を削除してもよい。
【0106】
また、エンドースメントデータに含まれるエンドーサAの入力情報(例えば投稿内容)には、エンドーサAのデジタル署名が付与されてもよい。この場合、検証部230は、エンドーサAの公開鍵を検証可能データレジストリ31から取得し、エンドーサAの公開鍵を用いて当該デジタル署名を検証することで、エンドースメントデータにおける入力情報(例えば投稿内容)の真正性を確認できる。
【0107】
なお、図10のエンドースメントデータ検証は、端末装置200で行われるものとしたが、エンドースメント管理サーバ500により実行されてもよい。その場合、エンドースメント管理サーバ500は、端末装置200からcontentsIDを取得し、当該contentsIDに基づいてステップS30~S34を実行する検証部の機能を有する。エンドースメント管理サーバ500の検証部は、当該contentsIDに対応する、検証に成功したエンドースメントデータのみを端末装置200に送信する。
【0108】
図11は、多重使用検知の例を示す図である。
例えば、発行者は、エンドーサAに対応するDID1,DID2,DID3の3つのDIDそれぞれに対して、VCを発行する。また、発行者は、エンドーサAに対し、エンドーサAに1対1に対応するholderIDを発行する。ここで、発行者は、例えば、エンドーサAのアイデンティティ情報として、エンドーサAの身元(住所)を証明する役所などの公共機関である。発行者は、民間の認証機関でもよい。エンドーサAの住所は「XX市」である。
【0109】
例えば、contentsIDが「ID1」であるコンテンツが、コンテンツ提供サーバ400により端末装置100,200に提供される。contentsID「ID1」のコンテンツは、例えば「XX市でZZ事件発生」というニュース記事である。
【0110】
エンドーサAは、端末装置100を用いて、自身のDID1により、contentsID「ID1」のコンテンツへの第1の投稿を行う。第1の投稿は、例えば「本当です。見ました。」という内容である。この場合、端末装置100は、第1の投稿の内容を含む第1のエンドースメントデータとともに、エンドーサAのholderIDとcontentsID「ID1」とから算出されるハッシュ値y1をエンドースメント管理サーバ500に登録する。第1のエンドースメントデータは、例えばエンドーサAの住所「XX市」を示す、DID1に対応するVCを含む。
【0111】
また、エンドーサAは、端末装置100を用いて、自身のDID2により、contentsID「ID1」のコンテンツへの第2の投稿を行う。第2の投稿は、例えば「僕も見ました。」という内容である。この場合、端末装置100は、第2の投稿の内容を含む第2のエンドースメントデータとともに、エンドーサAのholderIDとcontentsID「ID1」とから算出されるハッシュ値y1をエンドースメント管理サーバ500に登録する。第2のエンドースメントデータは、例えばエンドーサAの住所「XX市」を示す、DID2に対応するVCを含む。
【0112】
例えば、端末装置200は、contentsID「ID1」に対応する第1のエンドースメントデータと第2のエンドースメントデータとを取得した場合に、これらのハッシュ値yが何れもy1であることを検出する。このため、端末装置200は、第1のエンドースメントデータと第2のエンドースメントデータとが同じエンドーサによる多重投稿であることを検知する。この場合、端末装置200は、例えばcontentsID「ID1」に対して、投稿時のハッシュ値y1が初出のエンドースメントデータだけを受け付けるようにしてもよい。あるいは、前述のように、端末装置200は、例えばcontentsID「ID1」に対して、多重に投稿されたエンドースメントデータのうちの最新のエンドースメントデータだけを受け付けてもよい。更に、端末装置200は、多重に投稿されたエンドースメントデータを全て削除してもよい。端末装置200によるこれらの処理は、エンドースメント管理サーバ500により実行されてもよい。こうして、端末装置200またはエンドースメント管理サーバ500により、コンテンツの多重使用が防止される。
【0113】
また、例えば、contentsIDが「ID2」であるコンテンツが、コンテンツ提供サーバ400または他のコンテンツ提供サーバにより端末装置100,200に提供される。contentsID「ID2」のコンテンツは、例えば「洪水発生」というニュース記事である。
【0114】
エンドーサAは、端末装置100を用いて、自身のDID3により、contentsID「ID2」のコンテンツへの第3の投稿を行う。第3の投稿は、例えば「確かな情報です。」という内容である。この場合、端末装置100は、第3の投稿の内容を含む第3のエンドースメントデータとともに、エンドーサAのholderIDとcontentsID「ID2」とから算出されるハッシュ値y2をエンドースメント管理サーバ500に登録する。第3のエンドースメントデータは、例えばエンドーサAの住所「XX市」を示す、DID3に対応するVCを含む。
【0115】
このように、異なるコンテンツに対するエンドースメントデータには、異なるハッシュ値yが付与される。例えば、端末装置200やエンドースメント管理サーバ500は、ハッシュ値y1,y2からは第1,第2のエンドースメントデータと第3のエンドースメントデータとが同じエンドーサにより投稿されたものであるかを判断することはできない。こうして、異なるコンテンツに対するエンドーサの紐付けが秘匿される。情報処理システムにおいて、異なるコンテンツに対するエンドーサの紐付けを秘匿する機能は、Unlinkabilityと言われる。
【0116】
次に、図11に対する比較例を説明する。
図12は、比較例を示す図である。
比較例では、エンドーサAは、端末装置100に代えて、端末装置600を用いてコンテンツに対する投稿を行う。比較例では、エンドーサAに対してholderIDは発行されない。このため、コンテンツに対する投稿元のエンドーサは、端末装置200などによりDIDによって識別される。
【0117】
例えば、エンドーサAは、contentsID「ID1」のコンテンツ「XX市でAA事件発生」に対し、DID1を用いて「本当です。見ました。」という1つ目の投稿を端末装置600から行う。1つ目の投稿には、例えばエンドーサAの住所「XX市」を示す、DID1に対応するVCが付与される。
【0118】
また、エンドーサAは、contentsID「ID1」のコンテンツに対し、DID2を用いて「僕も見ました。」という2つ目の投稿を端末装置600から行う。2つ目の投稿には、例えばエンドーサAの住所「XX市」を示す、DID2に対応するVCが付与される。
【0119】
この場合、エンドーサAにより行われた1つ目の投稿と2つ目の投稿とは、異なるDIDに紐付けられている。このため、例えば端末装置200は、これらの2つの投稿を異なる人物(エンドーサ)の投稿として、閲覧者Bに提示する。このように、エンドーサAは、複数のDIDを保有することで、複数の人物になりすまし、1つのコンテンツに対するVCの多重使用(本例では多重投稿)が可能になる。例えば多重投稿は、閲覧者Bに「XX市の沢山の人が「本当」だと言っているようだ。」という誤った認識を生じさせる。エンドーサAが悪意をもって多重投稿を行うことで、不特定多数の閲覧者に誤認を惹起させ、例えば虚偽のニュース記事を真実であると大衆に信じ込ませるなどの情報操作が行われ得る。
【0120】
これに対し、第2の実施の形態の情報処理システムでは、holderIDとcontentsIDとの組に対応するハッシュ値yにより投稿元のエンドーサが識別されるので、同一エンドーサの異なるDIDに紐づく多重投稿が適切に検知される。すなわち、端末装置100は、エンドースメントデータとともにholderIDとcontentsIDとの組に対応するハッシュ値yを送信することで、複数のVCを多重に用いることによる、同一エンドーサによるコンテンツの多重使用を検知可能にする。また、端末装置100は、ゼロ知識証明文πによりハッシュ値yの計算に用いられたholderIDの真正性を証明することで、不正なholderID’の使用を防止できる。例えば、エンドーサAが多重投稿を行うことによる情報操作を抑制できる。
【0121】
以上説明したように第2の実施の形態の情報処理システムは次の処理を行う。
端末装置100は、ユーザの識別情報を発行する第1システムにより発行される、第1ユーザに1対1に対応する第1識別情報を取得する。端末装置100は、第1ユーザにより利用されるコンテンツの第2識別情報を取得する。端末装置100は、第1ユーザにより入力された、コンテンツに関する入力情報と第1ユーザのアイデンティティ情報とを第2システムに送信する際に、第1識別情報および第2識別情報の組に対応するハッシュ値yであってコンテンツの利用者の識別に用いられるハッシュ値yを第2システムに送信する。
【0122】
これにより、端末装置100は、ハッシュ値yに基づいて、複数のVCを用いたコンテンツの多重使用の検知を可能にすることができる。
ここで、発行サーバ300は、第1システムの一例である。エンドースメント管理サーバ500は、第2システムの一例である。エンドーサAは、第1ユーザの一例である。holderIDは、第1識別情報の一例である。contentsIDは、第2識別情報の一例である。情報共有サービスに対するエンドーサAの投稿内容を示す投稿情報(投稿コメントや評価値など)は、入力情報の一例である。例えば、入力情報は文章の情報でもよいし、音声の情報でもよいし、静止画や動画などの映像の情報でもよい。VCまたはVPは、アイデンティティ情報の一例である。端末装置100から第2システムに送信されるアイデンティティ情報は、所定の発行者(第1システム)により発行された検証可能な資格情報(VC)に基づいて端末装置100により作成された情報であるとも言える。
【0123】
また、端末装置100は、第1識別情報に対する発行者のデジタル署名Sigを更に取得してもよい。端末装置100は、ハッシュ値yの計算に用いられた第1識別情報および発行者の公開鍵pk_iによる検証に成功するデジタル署名Sigの知識を第1ユーザが有していることを証明するためのゼロ知識証明情報πを生成してもよい。端末装置100は、ゼロ知識証明情報πを第2システムに送信してもよい。
【0124】
これにより、端末装置100は、第1識別情報として不正な情報を用いることによるコンテンツの使用を防ぐことができる。その結果、端末装置100は、各ユーザにより作成される入力情報の信頼性を向上できる。ゼロ知識証明情報πは、ゼロ知識証明文πと言われてもよい。
【0125】
また、第2システムは、第2識別情報に対応付けて入力情報とアイデンティティ情報とハッシュ値yとを保存する。第2システムまたは第2システムから入力情報を取得する情報処理装置は、第2識別情報に関して同一のハッシュ値yに対応する複数の入力情報の少なくとも一部の出力を制限する。
【0126】
これにより、一つのコンテンツに対して一人のユーザが複数回送信した入力情報の出力が防止される。なお、端末装置200は、第2システムから入力情報を取得する情報処理装置の一例である。また、エンドースメントデータDB510は、入力情報の保存先となる第2システムの記憶部の一例である。
【0127】
ここで、同一のハッシュ値yに対応する複数の入力情報の少なくとも一部の出力の制限には例えば次のような方法がある。
第1の方法は、第2識別情報に関して同一のハッシュ値に対応する複数の入力情報の全てを出力しないという方法である。
【0128】
第2の方法は、第2識別情報に関して同一のハッシュ値に対応する複数の入力情報のうちの最古の入力情報のみを出力するという方法である。
第3の方法は、第2識別情報に関して同一のハッシュ値に対応する複数の入力情報のうちの最新の入力情報のみを出力するという方法である。
【0129】
また、第4の方法として、第2システムは、第2識別情報に関して、今回のハッシュ値yを過去に受信済であるか否かを判定してもよい。この場合、第2システムは、第2識別情報に関して、今回のハッシュ値yを過去に受信済である場合に、今回のハッシュ値yに対応する入力情報を破棄し、そうでない場合に今回の入力情報を保存する。
【0130】
また、第2システムは、第2識別情報に対応付けて入力情報とアイデンティティ情報とハッシュ値yとゼロ知識証明情報πとを保存してもよい。第2システムまたは第2システムから入力情報を取得する情報処理装置は、第2識別情報に関して同一のハッシュ値yに対応する複数の入力情報の少なくとも一部の出力を制限するとともにゼロ知識証明情報πの検証に失敗する入力情報の出力を制限してもよい。
【0131】
これにより、第1識別情報として不正な情報を用いて送信された入力情報の出力が適切に制御される。例えば、ゼロ知識証明情報πの検証に失敗する入力情報の出力の制限では、当該入力情報の出力が抑止される。このため、例えば信頼される入力情報のみを閲覧者Bに提示することが可能になる。
【0132】
ここで、第2システムまたは第2システムから入力情報を取得する情報処理装置は、アイデンティティ情報に付与される発行者のデジタル署名を更に検証し、当該検証結果に応じて入力情報の出力を制限してもよい。すなわち、アイデンティティ情報にはアイデンティティ情報の発行者の他のデジタル署名が付与されている。この場合、第2システムまたは第2システムから入力情報を取得する情報処理装置は、他のデジタル署名の検証に失敗するアイデンティティ情報に対応する入力情報の出力を制限してもよい。当該出力の制限では、例えば入力情報の出力が抑止される。これにより、当該入力情報に対する信頼性が一層向上する。
【0133】
更に、アイデンティティ情報は、第1ユーザにより複数保有することが許容される分散型識別子(DID)を有してもよい。すなわち、端末装置100や端末装置200やエンドースメント管理サーバ500の機能は、DIDによってユーザのアイデンティティ情報が管理される分散型アイデンティティ基盤において、ユーザによる入力情報の信頼性の向上に特に好適である。
【0134】
以上で説明した端末装置100の処理は、プロセッサ101によって実行される。また、第2システムの処理は、第2システムのプロセッサによって実行される。第2システムから入力情報を取得する情報処理装置の処理は、当該情報処理装置のプロセッサによって実行される。
【0135】
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体113に記録できる。
【0136】
例えば、プログラムを記録した記録媒体113を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体113に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
【0137】
以上の第1,第2の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) コンピュータに、
ユーザの識別情報を発行する第1システムにより発行される、第1ユーザに1対1に対応する第1識別情報を取得し、前記第1ユーザにより利用されるコンテンツの第2識別情報を取得し、
前記第1ユーザにより入力された、前記コンテンツに関する入力情報と前記第1ユーザのアイデンティティ情報とを第2システムに送信する際に、前記第1識別情報および前記第2識別情報の組に対応するハッシュ値であって前記コンテンツの利用者の識別に用いられる前記ハッシュ値を前記第2システムに送信する、
処理を実行させるプログラム。
【0138】
(付記2) 前記第1識別情報に対する発行者のデジタル署名を更に取得し、
前記ハッシュ値の計算に用いられた前記第1識別情報および前記発行者の公開鍵による検証に成功する前記デジタル署名の知識を前記第1ユーザが有していることを証明するためのゼロ知識証明情報を生成し、
前記ゼロ知識証明情報を前記第2システムに送信する、
処理を前記コンピュータに実行させる付記1記載のプログラム。
【0139】
(付記3) 前記第2システムは、前記第2識別情報に対応付けて前記入力情報と前記アイデンティティ情報と前記ハッシュ値とを保存し、
前記第2システムまたは前記第2システムから前記入力情報を取得する情報処理装置は、前記第2識別情報に関して同一の前記ハッシュ値に対応する複数の入力情報の少なくとも一部の出力を制限する、
付記1記載のプログラム。
【0140】
(付記4) 前記第2システムは、前記第2識別情報に対応付けて前記入力情報と前記アイデンティティ情報と前記ハッシュ値と前記ゼロ知識証明情報とを保存し、
前記第2システムまたは前記第2システムから前記入力情報を取得する情報処理装置は、前記第2識別情報に関して同一の前記ハッシュ値に対応する複数の入力情報の少なくとも一部の出力を制限するとともに前記ゼロ知識証明情報の検証に失敗する前記入力情報の出力を制限する、
付記2記載のプログラム。
【0141】
(付記5) 前記アイデンティティ情報には、前記アイデンティティ情報の発行者の他のデジタル署名が付与されており、
前記第2システムまたは前記情報処理装置は、前記他のデジタル署名の検証に失敗する前記アイデンティティ情報に対応する前記入力情報の出力を制限する、
付記3または4記載のプログラム。
【0142】
(付記6) 前記アイデンティティ情報は、前記第1ユーザにより複数保有することが許容される分散型識別子を有する、
付記1記載のプログラム。
【0143】
(付記7) コンピュータが、
ユーザの識別情報を発行する第1システムにより発行される、第1ユーザに1対1に対応する第1識別情報を取得し、前記第1ユーザにより利用されるコンテンツの第2識別情報を取得し、
前記第1ユーザにより入力された、前記コンテンツに関する入力情報と前記第1ユーザのアイデンティティ情報とを第2システムに送信する際に、前記第1識別情報および前記第2識別情報の組に対応するハッシュ値であって前記コンテンツの利用者の識別に用いられる前記ハッシュ値を前記第2システムに送信する、
情報処理方法。
【0144】
(付記8) 前記コンピュータが、
前記第1識別情報に対する発行者のデジタル署名を更に取得し、
前記ハッシュ値の計算に用いられた前記第1識別情報および前記発行者の公開鍵による検証に成功する前記デジタル署名の知識を前記第1ユーザが有していることを証明するためのゼロ知識証明情報を生成し、
前記ゼロ知識証明情報を前記第2システムに送信する、
付記7記載の情報処理方法。
【0145】
(付記9) 前記第2システムが、前記第2識別情報に対応付けて前記入力情報と前記アイデンティティ情報と前記ハッシュ値とを保存し、
前記第2システムまたは前記第2システムから前記入力情報を取得する情報処理装置が、前記第2識別情報に関して同一の前記ハッシュ値に対応する複数の入力情報の少なくとも一部の出力を制限する、
付記7記載の情報処理方法。
【0146】
(付記10) 前記第2システムが、前記第2識別情報に対応付けて前記入力情報と前記アイデンティティ情報と前記ハッシュ値と前記ゼロ知識証明情報とを保存し、
前記第2システムまたは前記第2システムから前記入力情報を取得する情報処理装置が、前記第2識別情報に関して同一の前記ハッシュ値に対応する複数の入力情報の少なくとも一部の出力を制限するとともに前記ゼロ知識証明情報の検証に失敗する前記入力情報の出力を制限する、
付記8記載の情報処理方法。
【0147】
(付記11) 前記アイデンティティ情報には、前記アイデンティティ情報の発行者の他のデジタル署名が付与されており、
前記第2システムまたは前記情報処理装置が、前記他のデジタル署名の検証に失敗する前記アイデンティティ情報に対応する前記入力情報の出力を制限する、
付記9または10記載の情報処理方法。
【0148】
(付記12) 前記アイデンティティ情報は、前記第1ユーザにより複数保有することが許容される分散型識別子を有する、
付記7記載の情報処理方法。
【0149】
(付記13) ユーザの識別情報を発行する第1システムにより発行される、第1ユーザに1対1に対応する第1識別情報を記憶する記憶部と、
前記第1ユーザにより利用されるコンテンツの第2識別情報を取得し、前記第1ユーザにより入力された、前記コンテンツに関する入力情報と前記第1ユーザのアイデンティティ情報とを第2システムに送信する際に、前記第1識別情報および前記第2識別情報の組に対応するハッシュ値であって前記コンテンツの利用者の識別に用いられる前記ハッシュ値を前記第2システムに送信する処理部と、
を有する情報処理装置。
【0150】
(付記14) 前記処理部は、
第1識別情報に対する発行者のデジタル署名を更に取得し、
前記ハッシュ値の計算に用いられた前記第1識別情報および前記発行者の公開鍵による検証に成功する前記デジタル署名の知識を前記第1ユーザが有していることを証明するためのゼロ知識証明情報を生成し、
前記ゼロ知識証明情報を前記第2システムに送信する、
付記13記載の情報処理装置。
【0151】
(付記15) 前記第2システムは、前記第2識別情報に対応付けて前記入力情報と前記アイデンティティ情報と前記ハッシュ値とを保存し、
前記第2システムまたは前記第2システムから前記入力情報を取得する情報処理装置は、前記第2識別情報に関して同一の前記ハッシュ値に対応する複数の入力情報の少なくとも一部の出力を制限する、
付記13記載の情報処理装置。
【0152】
(付記16) 前記第2システムは、前記第2識別情報に対応付けて前記入力情報と前記アイデンティティ情報と前記ハッシュ値と前記ゼロ知識証明情報とを保存し、
前記第2システムまたは前記第2システムから前記入力情報を取得する情報処理装置は、前記第2識別情報に関して同一の前記ハッシュ値に対応する複数の入力情報の少なくとも一部の出力を制限するとともに前記ゼロ知識証明情報の検証に失敗する前記入力情報の出力を制限する、
付記14記載の情報処理装置。
【0153】
(付記17) 前記アイデンティティ情報には、前記アイデンティティ情報の発行者の他のデジタル署名が付与されており、
前記第2システムまたは前記情報処理装置は、前記他のデジタル署名の検証に失敗する前記アイデンティティ情報に対応する前記入力情報の出力を制限する、
付記15または16記載の情報処理装置。
【0154】
(付記18) 前記アイデンティティ情報は、前記第1ユーザにより複数保有することが許容される分散型識別子を有する、
付記13記載の情報処理装置。
【符号の説明】
【0155】
10 情報処理装置
11 記憶部
12 処理部
20 ネットワーク
21 第1システム
22 第2システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12