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

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

▶ 株式会社アドイン研究所の特許一覧

特開2023-70060情報処理システム、情報処理方法、及び、プログラム
<>
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図1
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図2
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図3
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図4
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図5
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図6
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図7
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図8
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図9
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図10
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図11
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図12
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図13
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図14
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図15
  • 特開-情報処理システム、情報処理方法、及び、プログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023070060
(43)【公開日】2023-05-18
(54)【発明の名称】情報処理システム、情報処理方法、及び、プログラム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20230511BHJP
   G06F 21/60 20130101ALI20230511BHJP
   G06F 21/44 20130101ALI20230511BHJP
【FI】
H04L9/32 200B
H04L9/32 200F
G06F21/60 360
G06F21/44
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022142212
(22)【出願日】2022-09-07
(62)【分割の表示】P 2021180528の分割
【原出願日】2021-11-04
(71)【出願人】
【識別番号】591184046
【氏名又は名称】株式会社アドイン研究所
(74)【代理人】
【識別番号】110000442
【氏名又は名称】弁理士法人武和国際特許事務所
(72)【発明者】
【氏名】鈴木 伸治
(72)【発明者】
【氏名】佐々木 浩二
(72)【発明者】
【氏名】佐々木 健人
(57)【要約】      (修正有)
【課題】通信におけるセキュリティを向上させる。
【解決手段】情報処理システム1において、第1情報処理装置は、ユーザを識別する第1識別情報を記憶し、第3情報処理装置に第2情報処理装置によるサービスのリクエストを送信する。第3情報処理装置は、第1識別情報を取得し、リクエストを第1情報処理装置から受け付け、第2情報処理装置にリクエストを許可するか否かを問い合わせ、リクエストが許可されると、シード、第1情報処理装置と共有する第1共有情報、第1情報処理装置との通信時刻で定まる時間情報、第1識別情報及び第1情報処理装置との通信毎に定まる第1通信情報を利用して第1送信データを生成して第1情報処理装置に送信し、シードを含む第2送信データを生成して第2情報処理装置に送信する。第1情報処理装置及び第2情報処理装置は、第1送信データ又は第2送信データからシードを取り出して生成する鍵を用いて暗号化して通信を行う。
【選択図】図10
【特許請求の範囲】
【請求項1】
ユーザが使用する第1情報処理装置、前記第1情報処理装置と接続する第2情報処理装置、並びに、前記第1情報処理装置及び前記第2情報処理装置と接続する第3情報処理装置を有する情報処理システムであって、
前記第1情報処理装置は、
前記ユーザを識別する第1識別情報を記憶する第1識別情報記憶部と、
前記第3情報処理装置に、前記第2情報処理装置によるサービスのリクエストを送信するリクエスト部とを有し、
前記第3情報処理装置は、
前記第1識別情報を取得する第1識別情報取得部と、
前記リクエストを前記第1情報処理装置から受け付けると、前記第2情報処理装置に、前記リクエストを許可するか否かを問い合わせる通知を行う通知部と、
前記通知に対する返答を前記第2情報処理装置から受け付ける返答受付部と、
鍵の基礎情報となるシードを生成するシード生成部と、
前記返答によって前記リクエストが許可されると、前記シード、前記第1情報処理装置と共有する第1共有情報、前記第1情報処理装置との通信時刻で定まる時間情報、前記第1識別情報、及び、前記第1情報処理装置との通信ごとに定まる第1通信情報を利用して第1送信データを生成する第1送信データ生成部と、
前記第1送信データを前記第1情報処理装置に送信する第1送信データ送信部と、
前記返答によって前記リクエストが許可されると、前記シードを含む第2送信データを生成する第2送信データ生成部と、
前記第2送信データを前記第2情報処理装置に送信する第2送信データ送信部とを有し、
前記第2情報処理装置は、
前記通知を前記第3情報処理装置から受け付けると、前記通知を許可する場合には、前記リクエストを許可する前記返答を前記第3情報処理装置に行う許可部を有し、
前記第1情報処理装置、及び、前記第2情報処理装置は、
前記第1送信データ、又は、前記第2送信データから前記シードを取り出して生成する前記鍵を用いて暗号化して通信を行う通信部を各々に更に備える
情報処理システム。
【請求項2】
前記第3情報処理装置は、
前記返答による許可を前記第2情報処理装置から受け付けると、前記第1情報処理装置が前記第1識別情報を記憶するか否かを判定して、前記第1情報処理装置を認証する
請求項1に記載の情報処理システム。
【請求項3】
前記第1情報処理装置、及び、前記第3情報処理装置は、
公開鍵、前記公開鍵を算出する公開鍵計算式、及び、前記公開鍵計算式を構成する係数を共有し、
前記第3情報処理装置は、
第1乱数を生成する第1乱数生成部と、
前記第1乱数を前記第1情報処理装置に送信する第1乱数送信部とを更に有し、
前記第1情報処理装置は、
第2乱数を生成する第2乱数生成部と、
前記公開鍵計算式に前記係数、及び、前記第2乱数を代入して定まる第1計算値を計算する第1計算部と、
前記第1計算値を前記第3情報処理装置に送信する第1計算値送信部と、
前記第2乱数、前記第1識別情報、前記第1乱数、及び、前記係数から定まる位数を用いて、第2計算値を計算する第2計算部と、
前記第2計算値を前記第3情報処理装置に送信する第2計算値送信部とを更に有し、
前記第3情報処理装置は、
前記第2計算値を受信すると、前記公開鍵計算式に前記係数、及び、前記第2計算値を代入して第3計算値を計算する第3計算部と、
前記第1計算値を受信すると、前記第1計算値、前記公開鍵、及び、前記第1乱数を用いて第4計算値を計算する第4計算部とを更に有し、
前記第3計算値、及び、前記第4計算値を比較して、前記リクエストを送信した情報処理装置が前記第1情報処理装置であるか否かを認証する
請求項2に記載の情報処理システム。
【請求項4】
前記第1情報処理装置、及び、前記第3情報処理装置は、
第1共有値、前記第1共有値と定数で定まる関係式が示す関係がある第2共有値、及び、引数に対する特定の計算結果を計算する共有関数を共有し、
前記第1情報処理装置は、
前記定数に前記第1識別情報を代入し、
第3乱数を生成する第3乱数生成部と、
前記第3乱数、及び、前記第1共有値を乗算して第5計算値を計算する第5計算部と、
前記第5計算値を前記第3情報処理装置に送信する第5計算値送信部と、
前記第1共有値、前記第2共有値、及び、前記第5計算値を前記引数として前記共有関数を用いて第6計算値を計算する第6計算部と、
前記第3乱数、前記第1識別情報、及び、前記第6計算値を用いて第7計算値を計算する第7計算部と、
前記第7計算値を前記第3情報処理装置に送信する第7計算値送信部とを有し、
前記第3情報処理装置は、
前記第5計算値を受信すると、前記第1共有値、前記第2共有値、及び、前記第5計算値を前記引数として前記共有関数を用いて第8計算値を計算する第8計算部と、
前記第7計算値を受信すると、前記第7計算値、及び、前記第1共有値を乗算して第9計算値を計算する第9計算部と、
前記第5計算値、前記第8計算値、及び、前記第2共有値を用いて第10計算値を計算する第10計算部とを有し、
前記第9計算値、及び、前記第10計算値を比較して、前記リクエストを送信した情報処理装置が前記第1情報処理装置であるか否かを認証する
請求項2に記載の情報処理システム。
【請求項5】
複数の情報処理装置である装置群は、
前記第2情報処理装置を識別する第2識別情報、又は、前記第1識別情報を分散情報にする分散情報生成部を有し、
前記装置群を構成する各々の情報処理装置は、
前記第1識別情報、又は、前記第2識別情報の取得を要求されると、各々の前記分散情報を送信し、
前記分散情報を合成すると、前記第1識別情報、又は、前記第2識別情報が生成される
請求項1乃至4のいずれか1項に記載の情報処理システム。
【請求項6】
前記第2送信データ生成部は、
前記シード、前記第2情報処理装置と共有する第2共有情報、前記時間情報、前記第2情報処理装置を識別する第2識別情報、及び、前記第2情報処理装置との通信ごとに定まる第2通信情報を利用して前記第2送信データを生成する
請求項1乃至5のいずれか1項に記載の情報処理システム。
【請求項7】
前記第1情報処理装置、又は、前記第3情報処理装置は、
前記第1共有情報、前記時間情報、前記第1識別情報、前記第1通信情報、又は、これらの組み合わせの情報を他の情報処理装置と共有させる共有部を更に備える
請求項1乃至6のいずれか1項に記載の情報処理システム。
【請求項8】
前記第1識別情報は、
前記ユーザに関するユーザ情報、又は、前記ユーザ情報の一部を利用して生成され、
前記ユーザ情報を保有する第4情報処理装置と接続する
請求項1乃至7のいずれか1項に記載の情報処理システム。
【請求項9】
前記リクエストを送信する前に、
前記第1情報処理装置は、
前記ユーザ情報を前記第4情報処理装置に登録し、
前記第1識別情報は、
前記ユーザ情報、又は、前記ユーザ情報の一部を利用して生成される
請求項8に記載の情報処理システム。
【請求項10】
ユーザが使用する第1情報処理装置、前記第1情報処理装置と接続する第2情報処理装置、並びに、前記第1情報処理装置及び前記第2情報処理装置と接続する第3情報処理装置を有する情報処理システムが行う情報処理方法であって、
前記第1情報処理装置が、前記ユーザを識別する第1識別情報を記憶する第1識別情報手順と、
前記第1情報処理装置が、前記第3情報処理装置に、前記第2情報処理装置によるサービスのリクエストを送信するリクエスト手順と、
前記第3情報処理装置が、前記第1識別情報を取得する第1識別情報取得手順と、
前記第3情報処理装置が、前記リクエストを前記第1情報処理装置から受け付けると、前記第2情報処理装置に、前記リクエストを許可するか否かを問い合わせる通知を行う通知手順と、
前記第3情報処理装置が、前記通知に対する返答を前記第2情報処理装置から受け付ける返答受付手順と、
前記第3情報処理装置が、鍵の基礎情報となるシードを生成するシード生成手順と、
前記第3情報処理装置が、前記返答によって前記リクエストが許可されると、前記シード、前記第1情報処理装置と共有する第1共有情報、前記第1情報処理装置との通信時刻で定まる時間情報、前記第1識別情報、及び、前記第1情報処理装置との通信ごとに定まる第1通信情報を利用して第1送信データを生成する第1送信データ生成手順と、
前記第3情報処理装置が、前記第1送信データを前記第1情報処理装置に送信する第1送信データ送信手順と、
前記第3情報処理装置が、前記返答によって前記リクエストが許可されると、前記シードを含む第2送信データを生成する第2送信データ生成手順と、
前記第3情報処理装置が、前記第2送信データを前記第2情報処理装置に送信する第2送信データ送信手順と、
前記第2情報処理装置が、前記通知を前記第3情報処理装置から受け付けると、前記通知を許可する場合には、前記リクエストを許可する前記返答を前記第3情報処理装置に行う許可手順と、
前記第1情報処理装置、及び、前記第2情報処理装置が、前記第1送信データ、又は、前記第2送信データから前記シードを取り出して生成する前記鍵を用いて暗号化して通信を行う通信手順と
を有する情報処理方法。
【請求項11】
請求項10に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法、及び、プログラムに関する。
【背景技術】
【0002】
情報処理装置の間で行う通信において、鍵で情報を暗号化する方法が知られている。
【0003】
具体的には、ユーザが使用する第1情報処理装置、及び、サービスを提供する第3情報処理装置の間で通信を行う場合において、複数の第2情報処理装置は、通信に用いられる鍵、又は、鍵を生成する素材となる素材データを生成する。このように、第1情報処理装置、第2情報処理装置、及び、第3情報処理装置を含む少なくとも3装置の間で、情報処理システムは、通信を行う前に「合意」を図る。そして、情報処理システムは、3装置の間で「合意」できると、通信を開始する。このような構成であると、2装置の間において事前に共有する鍵で暗号化、及び、復号を行う共通鍵暗号方式等で通信を行う場合と比較して、セキュリティを向上させて通信できる技術が知られている(例えば、特許文献1等を参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-77978号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の技術は、例えば、鍵、又は、鍵を生成する素材となる素材データを送受信する装置間で行う通信に対する攻撃等にセキュリティ上の課題がある。すなわち、従来の技術は、セキュリティを向上させる課題がある。特に、Trust Access SecureNetwork Architecture(TSA)等では、セキュリティを向上させる課題がある。
【0006】
本発明は、通信におけるセキュリティ向上を目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するため、本発明の一態様では、
ユーザが使用する第1情報処理装置、前記第1情報処理装置と接続する第2情報処理装置、並びに、前記第1情報処理装置及び前記第2情報処理装置と接続する第3情報処理装置を有する情報処理システムにおいて、
前記第1情報処理装置は、
前記ユーザを識別する第1識別情報を記憶する第1識別情報記憶部と、
前記第3情報処理装置に、前記第2情報処理装置によるサービスのリクエストを送信するリクエスト部とを有し、
前記第3情報処理装置は、
前記第1識別情報を取得する第1識別情報取得部と、
前記リクエストを前記第1情報処理装置から受け付けると、前記第2情報処理装置に、前記リクエストを許可するか否かを問い合わせる通知を行う通知部と、
前記通知に対する返答を前記第2情報処理装置から受け付ける返答受付部と、
鍵の基礎情報、又は、前記鍵を示すシードを生成するシード生成部と、
前記返答によって前記リクエストが許可されると、前記シード、前記第1情報処理装置と共有する第1共有情報、前記第1情報処理装置との通信時刻で定まる時間情報、前記第1識別情報、及び、前記第1情報処理装置との通信ごとに定まる第1通信情報を利用して第1送信データを生成する第1送信データ生成部と、
前記第1送信データを前記第1情報処理装置に送信する第1送信データ送信部と、
前記返答によって前記リクエストが許可されると、前記シードを含む第2送信データを生成する第2送信データ生成部と、
前記第2送信データを前記第2情報処理装置に送信する第2送信データ送信部とを有し、
前記第2情報処理装置は、
前記通知を前記第3情報処理装置から受け付けると、前記通知を許可する場合には、前記リクエストを許可する前記返答を前記第3情報処理装置に行う許可部を有し、
前記第1情報処理装置、及び、前記第2情報処理装置は、
前記第1送信データ、又は、前記第2送信データから前記シードを取り出して生成する前記鍵を用いて暗号化して通信を行う通信部を各々に更に備える。
【発明の効果】
【0008】
本発明によれば、通信において、セキュリティを向上できる。
【図面の簡単な説明】
【0009】
図1】情報処理システムの全体構成例を示す図である。
図2】情報処理装置のハードウェア構成例を示す図である。
図3】事前処理の例を示す図である。
図4】本処理の例を示す図である。
図5】対話型の認証処理例を示す図である。
図6】非対話型の認証処理例を示す図である。
図7】攻撃の例を示す図である。
図8】共有情報を用いる認証処理の第1変形例を示す図である。
図9】共有情報を用いる認証処理の第2変形例を示す図である。
図10】機能構成例を示す図である。
図11】第2実施形態において情報を分散させる例を示す図である。
図12】分散情報の例を示す図である。
図13】SDxによる装置群の特定例を示す図である。
図14】DNSによる装置群の特定例を示す図である。
図15】中間者攻撃の例を示す図である。
図16】「なりすまし」による攻撃の例を示す図である。
【発明を実施するための形態】
【0010】
以下、添付する図面を参照して、具体例を説明する。なお、以下の説明において、図面に記載する符号は、符号が同一の場合には同一の要素を指す。
【0011】
[第1実施形態]
図1は、情報処理システムの全体構成例を示す図である。例えば、情報処理システム1は、第1情報処理装置11、第2情報処理装置12、第3情報処理装置13、及び、第4情報処理装置14等の組み合わせで構成する。例えば、情報処理システム1において、第1情報処理装置11、第2情報処理装置12、第3情報処理装置13、及び、第4情報処理装置14は、装置間を有線、又は、無線のネットワークで接続し、情報を送受信する。
【0012】
第1情報処理装置11は、ユーザ15が使用する情報処理装置である。具体的には、第1情報処理装置11は、Personal Computer(PC)等である。
【0013】
第2情報処理装置12は、サーバ等の情報処理装置である。例えば、第2情報処理装置12は、インターネット等を介して、第1情報処理装置11と接続する。また、第2情報処理装置12は、ネットワークを介してユーザ15にサービスを提供する。例えば、第2情報処理装置12は、いわゆるネットショッピングサイト等を展開し、ユーザ15に対して商品を販売するサービス等を提供する。
【0014】
なお、第2情報処理装置12が提供するサービスは、小売りに関するサービスに限られず、ネットワークを利用してユーザ15に提供できるサービスであればよい。例えば、第2情報処理装置12が提供するサービスは、電子メール等の通信に関するサービス等でもよい。
【0015】
第3情報処理装置13は、第1情報処理装置11、第2情報処理装置12、及び、第4情報処理装置14とネットワークを介して接続するサーバ等の情報処理装置である。
【0016】
第4情報処理装置14は、第1情報処理装置11、第2情報処理装置12、及び、第3情報処理装置13とネットワークを介して接続するサーバ等の情報処理装置である。また、第4情報処理装置14は、データベース等でユーザ15のユーザ情報16を保有する。
【0017】
例えば、ユーザ15は、第2情報処理装置12が提供するサービスの会員に加入する際等にユーザ情報16を登録する。したがって、ユーザ情報16は、サービス等で用いる内容によって異なる。具体的には、ユーザ情報16は、例えば、ネットショッピングのサービスでは、氏名、年齢、住所、パスワード、及び、クレジットカード番号等の情報である。
【0018】
なお、ユーザ情報16は、第2情報処理装置12が提供するサービス以外に用いる情報でもよい。また、ユーザ情報16は、第1情報処理装置11、及び、第2情報処理装置12の間で通信を行う前に登録されていればよい。
【0019】
以下、ユーザ情報16を識別するために、登録により、識別情報(ID、identification)が設定されるとする。したがって、ユーザ15、及び、第1情報処理装置11を識別する識別情報(以下「第1識別情報」という。)は、登録の際に第1情報処理装置11が取得できるとする。
【0020】
なお、第1識別情報は、登録が行われた後、第4情報処理装置14に問い合わせると取得できる。ただし、第4情報処理装置14は、外部装置の問い合わせに無条件に第1識別情報を提供するのではなく、一定の照合処理等によるチェックを行って第1識別情報を提供する。
【0021】
また、第1識別情報は、ユーザ情報16の全部、又は、一部を利用して生成される。例えば、第1識別情報は、ユーザ情報16の全部、又は、一部に対応して生成される。具体的には、第1識別情報は、ユーザ情報16における氏名が異なれば、異なる識別番号になる等である。一方で、第1識別情報が定まれば、対応する氏名は1つであるため、第1識別情報に基づき、ユーザ15が特定できる。
【0022】
[情報処理装置のハードウェア構成例]
図2は、情報処理装置のハードウェア構成例を示す図である。例えば、第1情報処理装置11は、Central Processing Unit(CPU、以下「CPU11H1」という。)、記憶装置11H2、インタフェース11H3、入力装置11H4、及び、出力装置11H5等を有するハードウェア構成である。
【0023】
CPU11H1は、演算装置、及び、制御装置の例である。例えば、CPU11H1は、プログラム、又は、操作等に基づいて演算を行う。
【0024】
記憶装置11H2は、メモリ等の主記憶装置である。なお、記憶装置11H2は、Solid State Drive(SSD)、又は、ハードディスク等の補助記憶装置があってもよい。
【0025】
インタフェース11H3は、ネットワーク、又は、ケーブル等を介して外部装置とデータを送受信する。例えば、インタフェース11H3は、コネクタ、又は、アンテナ等である。
【0026】
入力装置11H4は、ユーザによる操作を入力する装置である。例えば、入力装置11H4は、マウス、又は、キーボード等である。
【0027】
出力装置11H5は、ユーザに対して処理結果等を出力する装置である。例えば、出力装置11H5は、ディスプレイ等である。
【0028】
なお、情報処理装置は、上記以外のハードウェア資源を内部、又は、外部に更に有するハードウェア構成であってもよい。また、各々の情報処理装置は、複数の装置であってもよい。
【0029】
また、第1情報処理装置11、第2情報処理装置12、第3情報処理装置13、及び、第4情報処理装置14は、異なるハードウェア構成の装置でもよいし、同じハードウェア構成の装置でもよい。
【0030】
[全体処理例]
以下、情報処理システム1は、全体処理において、事前に行う処理(以下「事前処理」という。)を行った後、事前処理による準備が完了している状態で通信等を含む処理(以下「本処理」という。)を行う。
【0031】
なお、事前処理は、本処理より前に完了していればよい。したがって、事前処理、及び、本処理は、処理が連続でなくともよい。
【0032】
また、事前処理は、1度実行すれば、以降、本処理ごとに実行する必要はない。すなわち、本処理を行うごとに応じて、事前処理を毎回事前に行う必要はない。
【0033】
図3は、事前処理の例を示す図である。例えば、情報処理システム1は、ユーザ情報16を以下のような事前処理で登録する。
【0034】
ステップS101では、第1情報処理装置11は、ユーザ15による入力操作で入力する情報等を第4情報処理装置14に送信してユーザ情報16を登録する。
【0035】
なお、ユーザ情報16は、上記のような処理以外で登録されてもよい。例えば、ユーザ情報16は、第2情報処理装置12が展開するサイト等を介して登録されてもよい。
【0036】
具体的には、第2情報処理装置12が提供するサービスにユーザ15が入会する手続き等のため、第2情報処理装置12は、手続き用に入会フォームを表示するサイト等を展開する。そして、ユーザ15は、第1情報処理装置11を操作して、入会フォームにおける各項目(ユーザ情報16の氏名等に該当する情報となる。)を入力する。このような入力がされると、第2情報処理装置12は、第1情報処理装置11からユーザ情報16(又は、一部の場合もある。)を受け取る。この後、第2情報処理装置12は、第4情報処理装置14にユーザ情報16を送信する。
【0037】
このように、ユーザ情報16は、直接、又は、複数の情報処理装置を介して登録されてもよい。また、ユーザ情報16は、複数のサービスで用いる情報を一元的に管理するでもよい。
【0038】
なお、ユーザ情報16は、データ統合(データインテグレーション(Digital Identity、DI、ID)等と呼ばれる場合もある。)等で生成、及び、管理されてもよい。また、ユーザ情報16は、複数のサービスで併用されてもよいし、サービスごとに異なる(ユーザ情報16の一部異なる場合を含む。)でもよい。
【0039】
ステップS101の後、例えば、第4情報処理装置14は、ユーザ情報16、又は、ユーザ情報16の一部を利用して、第1識別情報を生成する。したがって、ステップS101による登録の後、例えば、ステップS102、又は、ステップS104による第1識別情報の問い合わせを行うと、第4情報処理装置14以外の外部装置は、第1識別情報を取得できる。
【0040】
ステップS102では、第3情報処理装置13は、第1識別情報の問い合わせを第4情報処理装置14に行う。
【0041】
ステップS103では、第4情報処理装置14は、問い合わせに対し、第1識別情報を返答する。このようにして、第3情報処理装置13は、第1識別情報を取得する。
【0042】
ステップS104では、第2情報処理装置12は、第1識別情報の問い合わせを第4情報処理装置14に行う。
【0043】
ステップS105では、第4情報処理装置14は、問い合わせに対し、第1識別情報を返答する。このようにして、第2情報処理装置12は、第1識別情報を取得する。
【0044】
なお、第1識別情報は、ステップS102乃至ステップS104以外の方法で取得されてもよい。例えば、第3情報処理装置13等は、ユーザ情報16、又は、ユーザ情報16の一部を利用して処理を行って第1識別情報を取得してもよい。また、第1識別情報の取得は、登録が完了した後であれば、タイミングは問わない。
【0045】
図4は、本処理の例を示す図である。以下、図3に示す事前処理が完了した後、情報処理システム1が行う本処理の例を説明する。
【0046】
ステップS201では、第1情報処理装置11は、第2情報処理装置12によるサービスのリクエストを第3情報処理装置13に送信する。以下、ユーザ15の希望に応じて、第2情報処理装置12によるサービスの開始を指示する情報を単に「リクエスト」という。また、リクエストの送信によって本処理が開始される。
【0047】
具体的には、リクエストは、ネットショッピングサイトにおいてユーザ15が所定の商品を購入する申し込み、又は、メール送受信サービスにおいて、ユーザ15がメールを送信する操作等の入力があったタイミング等に送信される。したがって、リクエストは、このような本処理の開始を示すトリガ(Trigger)となる情報であれば、情報量、及び、形式は問わない。
【0048】
ステップS202では、第3情報処理装置13は、リクエストを受け付けると、リクエストを許可するか否かを第2情報処理装置12に問い合わせる通知を行う。
【0049】
ステップS203では、第2情報処理装置12は、通知に対して返答を第3情報処理装置13に行う。具体的には、第2情報処理装置12は、リクエストが第1情報処理装置11からであると判断した場合には、許可する返答を行う。
【0050】
一方で、第2情報処理装置12は、リクエストが第1情報処理装置11からでないと判断した場合には、拒否する返答を行う。なお、拒否の返答がされた場合には、本処理は終了する。以下、返答が許可である場合とする。
【0051】
また、ステップS203による返答が許可であると、第1情報処理装置11は、第2情報処理装置12によって認証されたことになる。
【0052】
ステップS204では、第3情報処理装置13は、第1情報処理装置11を認証するのが望ましい。なお、ステップS204は、後述する共有情報を用いる認証処理を行うのがより望ましい。このように、認証が行われると、第1情報処理装置11に「なりすまし」した情報処理装置による不正なアクセス、又は、不正な情報取得を防げる。
【0053】
ステップS205では、第3情報処理装置13は、第1情報処理装置11に送信するデータ(以下「第1送信データ」という。)を生成する。
【0054】
例えば、第1送信データは、下記(1)式を計算して生成される。
【0055】
第1送信データ=(S||N||T) XOR Hash(ID||S) (1)
【0056】
例えば、ステップS205では、第3情報処理装置13は、上記(1)式における右辺を計算して第1送信データを生成する。具体的には、第3情報処理装置13は、第1送信データを生成する上で、まず、鍵、又は、鍵の基礎情報となるデータ(以下「シード」(Seed)という。)を生成する。以下、シードが鍵の基礎情報である場合を例に説明する。
【0057】
上記(1)式では、「S」がシードである。シードは、第1情報処理装置11、及び、第3情報処理装置13の間を共通鍵方式で暗号化して通信を行うのに用いる鍵を生成するのに基礎とするデータである。
【0058】
したがって、第1情報処理装置11、及び、第2情報処理装置12等は、同じシードを受け取れば、送信側、及び、受信側で同じ鍵を生成できるため、共通鍵方式における暗号化、及び、復号が可能となる。
【0059】
例えば、シードは、所定の情報量となる乱数等である。又は、シードは、鍵でもよい。ただし、シードは、鍵より、シードに対して一定の処理を行うと鍵が得られる基礎情報である方が、一定の処理を知らない攻撃者に対してセキュリティを向上できる。
【0060】
なお、シードは、鍵の基礎となれば情報量等は問わない。例えば、シードは、鍵の一部となるデータ等でもよい。
【0061】
具体的には、第1情報処理装置11、及び、第2情報処理装置12は、シードを受け取るよりも事前に追加するデータ、又は、変換方法等を共有する。そして、シードを受け取ると、第1情報処理装置11、及び、第2情報処理装置12は、シードに対して共有するデータを追加、又は、共有する変換方法等の同じ処理を行い、シードを変換して、同じ鍵を得てもよい。
【0062】
また、上記(1)式において、「N」は、第1情報処理装置11、及び、第3情報処理装置13の間で共有する情報(以下「第1共有情報」という。)である。例えば、第1共有情報は、番号等である。したがって、「N」は、第1情報処理装置11、及び、第3情報処理装置13の間で同じデータを共有できれば情報量等は問わない。また、第1共有情報の共有方法は、情報を送信する等である。
【0063】
上記(1)式において、「T」は、第1情報処理装置11、及び、第3情報処理装置13の間で行う通信を行った時刻(以下「通信時刻」という。)で定まる情報(以下「時間情報」という。)である。例えば、時間情報は、いわゆるタイムパスワード等である。また、通信時刻は、例えば、通信を開始した時刻等である。
【0064】
このように、第1送信データは、通信を行う時刻に依拠して生成されるのが望ましい。なぜならば、時間情報を用いると、時間情報に応じた一定期間以外の時刻では、第1送信データからシード等を取り出すのが難しくできる。ゆえに、第1データからシード等の情報が漏洩するのを防ぎ、セキュリティを向上できる。
【0065】
上記(1)式において、「ID」は、第1識別情報である。したがって、第1識別情報は、事前処理等により事前に取得される。
【0066】
上記(1)式において、「S」は、第1情報処理装置11、及び、第3情報処理装置13の間で行う通信ごとに定まる情報(以下「第1通信情報」という。)である。例えば、第1通信情報は、セッションごとに異なる情報である。したがって、第1通信情報は、セッションID、又は、ワンタイムパスワード等といった通信ごとに使い捨ての情報である。なお、第1通信情報は、セッション以外の単位で生成されてもよい。
【0067】
また、第1通信情報は、例えば、第1情報処理装置11、及び、第3情報処理装置13の間で通信を確立する際等に、第3情報処理装置13から第1情報処理装置11に送信して共有する。
【0068】
このように、第1送信データは、通信ごとに異なる情報に依拠して生成されるのが望ましい。なぜならば、第1通信情報を用いると、通信ごとに情報が異なるため、異なる通信では第1送信データからシード等を取り出すのが難しくできる。ゆえに、第1送信データからシード等の情報が漏洩するのを防ぎ、セキュリティを向上できる。
【0069】
また、上記(1)式において、「||」は、論理和(OR)の演算子である。さらに、上記(1)式において、「XOR」は、排他的論理和(Exclusive OR)の演算子である。そして、上記(1)式において、「Hash」は、ハッシュ関数を示す。ゆえに、「Hash」に続く「括弧()」内がハッシュ関数の引数となる。
【0070】
なお、第1送信データは、上記(1)式以外の計算で生成されてもよい。例えば、第1送信データは、上記(1)式と等価計算を行う式等を計算して生成されてもよい。又は、第1送信データは、上記(1)式とは演算子が異なる式、又は、任意の乱数を更に用いる計算で生成されてもよい。
【0071】
ほかにも、第1送信データは、位置情報を上記(1)式に追加、又は、上記(1)式における変数と代えて用いる計算で生成されてもよい。
【0072】
このように位置情報を用いると、第1情報処理装置11が所定の位置、又は、範囲内に存在している場合、又は、第1情報処理装置11の存在している位置等を把握しないと、第1送信データからシード等を取り出すのを難しくできる。ゆえに、位置情報の利用により、第1送信データからシード等の情報が漏洩するのを防ぎ、セキュリティを向上できる。
【0073】
ステップS206では、第3情報処理装置13は、第1情報処理装置11に第1送信データを送信する。なお、第3情報処理装置13は、第1送信データを暗号化して送信するのが望ましい。すなわち、第1送信データは、機密性が確保されて第1情報処理装置11、及び、第3情報処理装置13の間を送信されるのが望ましい。
【0074】
ステップS207では、第1情報処理装置11は、シードを取り出して、鍵を生成する。まず、第1情報処理装置11は、ステップS207で第3情報処理装置13が送信する第1送信データを受け取る。なお、第1送信データが暗号化されている場合には、第1情報処理装置11は、第1送信データを復号する。
【0075】
次に、第1送信データを受け取ると、第1情報処理装置11は、第1送信データからシードを取り出す。例えば、上記(1)式に基づいて第1送信データが生成される場合において、上記(1)式を逆算すると、第1情報処理装置11は、第1送信データからシードを取り出せる。
【0076】
ゆえに、第1情報処理装置11は、上記(1)式、第1共有情報、時間情報、第1識別情報、及び、第1通信情報等を第3情報処理装置13と共有していると、第1送信データからシードを取り出せる。
【0077】
続いて、第1情報処理装置11は、取り出したシードに基づき、鍵を生成する。なお、シードから鍵を生成する方法は、第2情報処理装置12と事前に共有するため、同じシードを保有すれば、同じ鍵を生成できる。
【0078】
ステップS208では、第3情報処理装置13は、第2情報処理装置12に送信するデータ(以下「第2送信データ」という。)を生成する。具体的には、第2送信データは、シードが取り出せるデータ(例えば、暗号化、又は、圧縮したデータ等でもよい。)であればよい。ただし、第2送信データは、第1送信データと同様に生成されるのが望ましい。以下、第2送信データを第1送信データと同様に生成する場合を例に説明する。なお、下記(2)式は、第2情報処理装置12、及び、第3情報処理装置13の間で共有できれば、上記(1)式と同じでなくともよい。
【0079】
例えば、第2送信データは、下記(2)式を計算して生成される。
【0080】
第2送信データ=(S||N||T) XOR Hash(ID||S) (2)
【0081】
例えば、ステップS208では、第3情報処理装置13は、上記(2)式における右辺を計算して第2送信データを生成する。具体的には、第3情報処理装置13は、第1送信データに用いたのと同じシードを用いる。したがって、上記(2)式における「S」は、シードである。また、上記(2)式における「S」は、上記(1)式における「S」と同じデータである。ゆえに、シードは、第1情報処理装置11、及び、第2情報処理装置12の間で共通のデータである。その結果、第1情報処理装置11、及び、第2情報処理装置12は、暗号化で同じ鍵を用いることができる。
【0082】
また、上記(2)式において、「N」は、第2情報処理装置12、及び、第3情報処理装置13の間で共有する情報(以下「第2共有情報」という。)である。例えば、第2共有情報は、番号等である。したがって、「N」は、第2情報処理装置12、及び、第3情報処理装置13の間で同じデータを共有できれば情報量等は問わない。また、第2共有情報の共有方法は、情報を送信する等である。
【0083】
上記(2)式において、「T」は、時間情報である。なお、時間情報は、第2情報処理装置12、及び、第3情報処理装置13の間で共有できれば、上記(1)式と同じ情報でもよいし、又は、異なる情報でもよい。
【0084】
このように、第2送信データにも、通信を行う時刻に依拠して生成されるのが望ましい。なぜならば、時間情報を用いると、時間情報に応じた一定期間以外の時刻では、第2送信データからシード等を取り出すのが難しくできる。ゆえに、第2送信データからシード等の情報が漏洩するのを防ぎ、セキュリティを向上できる。
【0085】
上記(2)式において、「ID」は、第2情報処理装置12を識別する情報(以下「第2識別情報」という。)である。例えば、第2識別情報は、第1識別情報と同様に、事前処理等により事前に取得される。
【0086】
上記(2)式において、「S」は、第2情報処理装置12、及び、第3情報処理装置13の間で行う通信ごとに定まる情報(以下「第2通信情報」という。)である。例えば、第2通信情報は、セッションごとに異なる情報である。したがって、第2通信情報は、セッションID、又は、ワンタイムパスワード等といった通信ごとに使い捨ての情報である。なお、第2通信情報は、セッション以外の単位で生成されてもよい。
【0087】
ただし、第2通信情報は、第1通信情報と同じ情報でもよい。以下、第1通信情報、及び、第2通信情報が異なる場合を例に説明する。
【0088】
また、第2通信情報は、例えば、第2情報処理装置12、及び、第3情報処理装置13の間で通信を確立する際等に、第3情報処理装置13から第2情報処理装置12に送信して共有する。
【0089】
このように、第2送信データは、通信ごとに異なる情報に依拠して生成されるのが望ましい。なぜならば、第2通信情報を用いると、通信ごとに情報が異なるため、異なる通信では第2送信データからシード等を取り出すのが難しくできる。ゆえに、第1送信データからシード等の情報が漏洩するのを防ぎ、セキュリティを向上できる。
【0090】
また、上記(2)式における「||」、「XOR」、及び、「Hash」は、上記(1)式と同様である。
【0091】
ステップS209では、第3情報処理装置13は、第2情報処理装置12に第2送信データを送信する。なお、第3情報処理装置13は、第2送信データを暗号化して送信するのが望ましい。すなわち、第2送信データは、機密性が確保されて第2情報処理装置12、及び、第3情報処理装置13の間を送信されるのが望ましい。
【0092】
ステップS210では、第2情報処理装置12は、シードを取り出して、鍵を生成する。まず、第2情報処理装置12は、ステップS209で第3情報処理装置13が送信する第2送信データを受け取る。なお、第2送信データが暗号化されている場合には、第2情報処理装置12は、第2送信データを復号する。
【0093】
次に、第2送信データを受け取ると、第2情報処理装置12は、第2送信データからシードを取り出す。例えば、上記(2)式に基づいて第2送信データが生成される場合において、上記(2)式を逆算すると、第2情報処理装置12は、第2送信データからシードを取り出せる。
【0094】
ゆえに、第2情報処理装置12は、上記(2)式、第2共有情報、時間情報、第2識別情報、及び、第2通信情報等を第3情報処理装置13と共有していると、第2送信データからシードを取り出せる。
【0095】
続いて、第2情報処理装置12は、取り出したシードに基づき、鍵を生成する。なお、シードから鍵を生成する方法は、第1情報処理装置11と事前に共有するため、同じシードを保有すれば、同じ鍵を生成できる。
【0096】
なお、ステップS205乃至ステップS207、及び、ステップS208乃至ステップS210は、並列、又は、逆の順序で実行されてもよい。
【0097】
以上のように、第1情報処理装置11がステップS207を実行し、かつ、第2情報処理装置12がステップS210を実行すると、第1情報処理装置11、及び、第2情報処理装置12は、同じ鍵を用いる暗号化、すなわち、共通鍵方式で通信が可能な状態となる。
【0098】
ステップS211では、第1情報処理装置11、及び、第2情報処理装置12は、鍵を用いて暗号化して通信を行う。具体的には、通信は、Advanced Encryption Standard(AES)、又は、Data Encryption Standard(DES)等である。なお、暗号化、及び、復号は、共通した鍵を用いる方式(他の方式との組み合わせ、又は、一部の暗号化に用いる場合を含む。)であれば、規格等は問わない。
【0099】
このように暗号化して通信を行うことができると、情報処理システム1は、第1情報処理装置11、及び、第2情報処理装置12の間で情報を秘密にして通信ができ、通信におけるセキュリティを向上できる。
【0100】
なお、ステップS211は、Galois/Counter Mode(GCM)等の認証付き暗号の通信であるのが望ましい。
【0101】
また、通信は、鍵が保有できた状態以降であれば、タイミング及び回数を問わない。すなわち、ステップS211は、ステップS207、及び、ステップS210が実行された後であればいつでもよい。
【0102】
[共有情報を用いる認証処理の例]
ステップS204等の認証は、例えば、以下のように、識別情報を記憶するか否かを判定して認証するのが望ましい。以下、識別情報を第1識別情報、すなわち、第3情報処理装置13による第1情報処理装置11の認証を例に説明する。なお、認証は、例えば、以下に説明する対話型、又は、非対話型のどちらの方法でもよい。
【0103】
[対話型の処理例]
図5は、対話型の認証処理例を示す図である。まず、以下の例は、図において左に記載する第1情報処理装置11が認証の対象となる。つまり、第1情報処理装置11が攻撃者によって「なりすまし」された情報処理装置でないかを第3情報処理装置13が認証する。
【0104】
認証は、第1情報処理装置11が秘密情報「s」を記憶しているか否かによって判定される。以下、秘密情報「s」を第1識別情報とする。したがって、第3情報処理装置13は、事前処理等により、第1識別情報を事前に把握する。ゆえに、第3情報処理装置13は、第1情報処理装置11が記憶する秘密情報「s」が把握する第1識別情報と一致するか否かにより、第1情報処理装置11を認証する。
【0105】
まず、認証を行う事前に、下記(3)式に示す公開鍵「h」が公開される。したがって、第1情報処理装置11、及び、第3情報処理装置13等は、下記(3)式を参照して、公開鍵計算式等を把握する。
【0106】
h=g (3)
【0107】
以下、公開鍵計算式が上記(3)式である場合を例に説明する。ただし、公開鍵計算式は、上記(3)式に限られず、公開鍵を算出できる計算式であればよい。すなわち、公開鍵計算式は、複数の情報処理装置の間で同一の計算式が共有できればよい。
【0108】
公開鍵計算式は、例えば、上記(3)式が示すように、係数「g」、及び、指数「A」で構成する。したがって、公開鍵計算式を把握すると、第1情報処理装置11、及び、第3情報処理装置13等は、公開鍵「h」の算出方法、及び、係数「g」等を把握できる。
【0109】
次に、第3情報処理装置13は、乱数(以下「第1乱数」という。)「c」を生成する。例えば、第1乱数「c」は、「1」又は「0」のどちらかの値である。
【0110】
ステップS401では、第3情報処理装置13は、第1乱数「c」を第1情報処理装置11に送信する。したがって、第1情報処理装置11は、第1乱数「c」を把握し、以降の計算に用いることができる。
【0111】
ステップS402では、第1情報処理装置11は、乱数(以下「第2乱数」という。)「r」を生成する。なお、第2乱数は、第1乱数と異なる乱数である。
【0112】
ステップS403では、第1情報処理装置11は、公開鍵計算式に係数「g」、及び、第2乱数「r」を代入して定まる値(以下「第1計算値」という。)「x」を計算する。具体的には、第1計算値「x」は、下記(4)式で計算する。
【0113】
x=g (4)
【0114】
上記(4)式は、上記(3)式に示す公開鍵計算式である。したがって、上記(4)式は、同じ係数「g」を計算に用いる。一方で、上記(4)式は、指数に第2乱数「r」が代入される。このように、係数「g」、及び、第2乱数「r」のべき乗を計算して、第1情報処理装置11は、第1計算値「x」を計算する。
【0115】
ステップS404では、第1情報処理装置11は、第1計算値「x」を第3情報処理装置13に送信する。したがって、第3情報処理装置13は、第1計算値「x」を把握し、以降の計算に用いることができる。
【0116】
ステップS405では、第1情報処理装置11は、第2乱数「r」、第1識別情報「s」、第1乱数「c」、及び、係数「g」から定まる位数「q」を用いて値(以下「第2計算値」という。)「y」を計算する。具体的には、ステップS405では、第1情報処理装置11は、下記(5)式で第2計算値「y」を計算する。
【0117】
y=r+s×c mod q (5)
【0118】
上記(5)式において、位数「q」は、係数「g」の位数(order)である。つまり、位数「q」は、係数「g」を位数「q」でべき乗すると単位元(identity)となる自然数の中で最も小さい値である。したがって、位数「q」は、係数「g」から計算により定まる値である。
【0119】
ステップS406では、第1情報処理装置11は、第2計算値「y」を第3情報処理装置13に送信する。したがって、第3情報処理装置13は、第2計算値「y」を把握し、以降の計算に用いることができる。
【0120】
ステップS407では、第3情報処理装置13は、第2計算値「y」を受信すると、公開鍵計算式に係数「g」、及び、第2計算値「y」を代入して値(以下「第3計算値」という。)を計算する。具体的には、第3計算値は、下記(6)式の左辺を計算して求まる値である。
【0121】
ステップS408では、第3情報処理装置13は、第1計算値「x」を受信すると、第1計算値「x」、公開鍵「h」、及び、第1乱数「c」を用いて値(以下「第4計算値」という。)を計算する。
【0122】
= x×h (6)
【0123】
ステップS407は、上記(6)式の左辺、すなわち、第3計算値を計算する。まず、上記(6)式の左辺は、上記(3)式に示す公開鍵計算式であり、係数「g」が同じである。そして、第3計算値の計算に用いる第2計算値「y」は、ステップS406で送信される。
【0124】
ステップS408は、上記(6)式の右辺、すなわち、第4計算値を計算する。まず、上記(6)式の右辺における第1計算値「x」は、ステップS404で送信される。そして、第4計算値は、第1計算値「x」に「h」を乗じて計算する。なお、公開鍵「h」は、上記(3)式の公開により定まる。したがって、「h」は、第1乱数「c」、及び、公開鍵「h」により定まる。
【0125】
ステップS409では、第3情報処理装置13は、第3計算値、及び、第4計算値を比較する。具体的には、第3情報処理装置13は、第3計算値、及び、第4計算値が一致するか否か、すなわち、上記(6)式における「=」が成立するか否かを判定する。
【0126】
第1情報処理装置11が保有する秘密情報「s」(この例では、第1識別情報である。)が事前に第3情報処理装置13と共有する情報であれば、すなわち、第1情報処理装置11が秘密情報「s」を知っていれば、上記(6)式における「=」が成立する。以下、当該判定を証明する。
【0127】
この例では、第1乱数「c」は、「1」又は「0」のどちらかの値であるため、「c=0」と「c=1」の場合を分けて以下に証明する。
【0128】
「c=0」の場合には、上記(5)式により、第2計算値「y」は、「y=r」となる。そのため、上記(6)式の計算は、左辺が「g」=「g」である。そして、上記(4)式に基づき、「g」=「x」である。
【0129】
一方で、上記(6)式の計算は、右辺が「c=0」であるため、「h」は、「h=h=1」である。ゆえに、上記(6)式の右辺は、「x×h=x×1=x」となる。したがって、上記(6)式は、「左辺=右辺」が成立する。
【0130】
「c=1」の場合には、上記(5)式により、第2計算値「y」は、「y=r+s」となる。そのため、上記(6)式の計算は、左辺が「g」=「gr+s」である。そして、「gr+s」は、「g×g」である。
【0131】
一方で、上記(6)式の計算は、右辺が「c=1」であるため、「x×h=x×h」となる。さらに、上記(4)式に基づき、「x」=「g」である。次に、上記(3)式に基づき、「A=s」であれば(すなわち、第1情報処理装置11が秘密情報「s」を知っているのであれば)、「h=g=g」である。ゆえに、右辺は、「g×g」である。したがって、上記(6)式は、「左辺=右辺」が成立する。
【0132】
図5が示すように、上記(3)式の開示、ステップS401、ステップS404、及び、ステップS406は、秘密情報「s」を含まない。すなわち、第1情報処理装置11、及び、第3情報処理装置13の間で情報を取得(不正な情報の取得を含む。)、及び、公開鍵等の情報を得られても、秘密情報「s」を特定するのは難しい。
【0133】
このように、第3情報処理装置13は、第1情報処理装置11から直接秘密情報「s」を伝えられなくとも、秘密情報「s」を記憶するか否かを判定して、第1情報処理装置11を認証できる。
【0134】
第1情報処理装置11、及び、第3情報処理装置13の間を盗聴又は中間者攻撃等により、不正に情報が取得できる状態にされると、秘密情報「s」等の情報を送受信すると、秘密情報「s」等の情報が漏洩する可能性がある。一方で、図5に示すように、秘密情報「s」等の情報を第1情報処理装置11、及び、第3情報処理装置13の間で送受信せず、第1情報処理装置11を認証できると、よりセキュリティを向上できる。
【0135】
以上のように、認証は、対話型のゼロ知識証明(ZKPOK、Zero-Knowledge Proof Of Knowledge)が用いられるのが望ましい。このような認証であると、「なりすまし」等を防ぎ、かつ、秘密とする情報の漏洩を防ぐことができる。
【0136】
[非対話型の処理例]
図6は、非対話型の認証処理例を示す図である。以下、図5と同様に、図において左に記載する第1情報処理装置11が認証の対象となる例で説明する。
【0137】
認証を行うより前に、第1情報処理装置11、及び、第3情報処理装置13の間で、2つの値(以下「第1共有値」、及び、「第2共有値」という。)、及び、関数(以下「共有関数」という。)を共有する。
【0138】
以下、第1共有値を「P」、第2共有値を「Q」とする。さらに、共有関数をハッシュ関数とし、「Hash()」とする。「Hash()」に続く「括弧()」内がハッシュ関数の引数となる。なお、共有関数は、引数に対する特定の計算結果を計算する関数であればよい。
【0139】
また、共有は、公開する形式でもよい。例えば、第2共有値「Q」は、公開鍵等でもよい。
【0140】
第1共有値「P」、及び、第2共有値「Q」は、一定の関係がある値である。以下、第1共有値「P」、及び、第2共有値「Q」の関係を示す式を「関係式」という。例えば、関係式は、「Q=qP」である。そして、関係式における定数「q」に、秘密情報「s」を代入する。
【0141】
認証は、図5と同様に、第1情報処理装置11が秘密情報「s」を記憶しているか否かによって判定される。以下、図5と同様に、秘密情報「s」を第1識別情報とする。したがって、第3情報処理装置13は、事前処理等により、第1識別情報を事前に把握する。ゆえに、第3情報処理装置13は、第1情報処理装置11が記憶する秘密情報「s」が把握する第1識別情報と一致するか否かにより、第1情報処理装置11を認証する。
【0142】
ステップS501では、第1情報処理装置11は、乱数(以下「第3乱数」という。)「m」を生成する。なお、第3乱数「m」は、認証ごとに異なる、一時的な値であるのが望ましい。このように、認証ごとに異なる第3乱数「m」を利用すると、いわゆるワンタイムパスワードのように使用できる期間が一定であるため、セキュリティを向上できる。例えば、セッションハイジャック等の不正なアクセスに対して対策でき、セキュリティを向上できる。
【0143】
ステップS502では、第1情報処理装置11は、第3乱数「m」、及び、第1共有値「P」を乗算して値(以下「第5計算値」という。)「R」を計算する。具体的には、ステップS502では、第1情報処理装置11は、下記(7)式で第5計算値「R」を計算する。
【0144】
R = m×P (7)
【0145】
上記(7)式が示すように、第5計算値「R」は、第3乱数「m」に基づいて計算される。そして、第3乱数「m」を一時的な値とすると、乗算結果である第5計算値「R」も一時的な値にでき、使用できる期間が一定であるため、セキュリティを向上できる。
【0146】
ステップS503では、第1情報処理装置11は、第5計算値「R」を第3情報処理装置13に送信する。したがって、第3情報処理装置13は、第5計算値「R」を把握し、以降の計算に用いることができる。
【0147】
また、ステップS503のように、第5計算値「R」は、第1情報処理装置11、及び、第3情報処理装置13の間を送受信される情報である。したがって、第3乱数「m」を一時的な値とする等により、第5計算値「R」が盗聴等によって不正に取得されても、情報が漏洩しにくいようにするのが望ましい。
【0148】
ステップS504では、第1情報処理装置11は、第1共有値「P」、第2共有値「Q」、及び、第5計算値「R」を引数とする共有関数「Hash()」を用いて値(以下「第6計算値」という。)「b」を計算する。具体的には、ステップS504では、第1情報処理装置11は、下記(8)式で第6計算値「b」を計算する。
【0149】
b=Hash(P,Q,R) (8)
【0150】
上記(8)式を計算する上で、計算式である共有関数「Hash()」、並びに、引数となる第1共有値「P」、及び、第2共有値「Q」は、事前に共有される。さらに、第5計算値「R」は、ステップS502で計算される。
【0151】
ステップS505では、第1情報処理装置11は、第3乱数「m」、第1識別情報である秘密情報「s」、及び、第6計算値「b」を用いて値(以下「第7計算値」という。)「k」を計算する。具体的には、ステップS505では、第1情報処理装置11は、下記(9)式で第7計算値「k」を計算する。
【0152】
k=m+s×b (9)
【0153】
上記(9)式が示すように、第7計算値「k」は、第3乱数「m」に基づいて計算される。そして、第3乱数「m」を一時的な値とすると、乗算結果である第7計算値「k」も一時的な値にでき、使用できる期間が一定であるため、セキュリティを向上できる。
【0154】
ステップS506では、第1情報処理装置11は、第7計算値「k」を第3情報処理装置13に送信する。したがって、第3情報処理装置13は、第7計算値「k」を把握し、以降の計算に用いることができる。
【0155】
また、ステップS506のように、第7計算値「k」は、第1情報処理装置11、及び、第3情報処理装置13の間を送受信される情報である。したがって、第3乱数「m」を一時的な値とする等により、第7計算値「k」が盗聴等によって不正に取得されても、情報が漏洩しにくいようにするのが望ましい。
【0156】
ステップS507では、第3情報処理装置13は、第5計算値「R」を受信すると、第1共有値「P」、第2共有値「Q」、及び、第5計算値「R」を引数として共有関数「Hash()」を用いて値(以下「第8計算値」という。)「j」を計算する。具体的には、ステップS507では、第3情報処理装置13は、下記(10)式で第8計算値「j」を計算する。
【0157】
j=Hash(P,Q,R) (10)
【0158】
上記(10)式は、上記(8)式と同じ共有関数「Hash()」、及び、引数の計算である。したがって、第3情報処理装置13は、ステップS507により、第1情報処理装置11から第6計算値「b」を直接取得しないで、第6計算値「b」と同じ計算結果を第8計算値「j」を計算して把握できる。
【0159】
ステップS508では、第3情報処理装置13は、第7計算値「k」を受信すると、第7計算値「k」、及び、第1共有値「P」を乗算して値(以下「第9計算値」という。)「F」を計算する。具体的には、ステップS508では、第3情報処理装置13は、下記(11)式で第9計算値「F」を計算する。
【0160】
F=k×P (11)
【0161】
上記(11)式において、第7計算値「k」は、第1情報処理装置11から取得される。また、第1共有値「P」は、事前に共有される。
【0162】
ステップS509では、第3情報処理装置13は、第5計算値「R」、第8計算値「j」、及び、第2共有値「Q」を用いて値(以下「第10計算値」という。)「L」を計算する。具体的には、ステップS509では、第3情報処理装置13は、下記(12)式で第10計算値「L」を計算する。
【0163】
L=R+j×Q (12)
【0164】
上記(12)式において、第5計算値「R」は、ステップS503により取得される。また、第2共有値「Q」は、事前に共有される。さらに、第8計算値「j」は、ステップS507により計算される。
【0165】
ステップS510では、第3情報処理装置13は、第9計算値「F」、及び、第10計算値「L」を比較して、第1情報処理装置11であるか否かを認証する。すなわち、ステップS510では、第3情報処理装置13は、下記(13)式が成り立つか否かを判定して認証する。
【0166】
F=L (13)
【0167】
上記(13)式が成り立つと、第3情報処理装置13は、リクエストを送信した情報処理装置が第1情報処理装置11であると認証する。一方で、上記(13)式が成り立たないと、第3情報処理装置13は、リクエストを送信した情報処理装置が第1情報処理装置11でない(「なりすまし」等の可能性がある。)と判断する。
【0168】
第1情報処理装置11が保有する秘密情報「s」(この例では、第1識別情報である。)が事前に第3情報処理装置13と共有する情報であれば、すなわち、第1情報処理装置11が秘密情報「s」を知っていれば、上記(13)式における「=」が成立する。以下、当該判定を証明する。
【0169】
上記(13)式における左辺は、上記(11)式で計算する第9計算値「F」である。したがって、上記(11)式に基づき、左辺は、「F=k×P」である。次に、「k」は、上記(9)式に基づき、「k=m+s×b」である。ゆえに、左辺は、「F=k×P=(m+s×b)×P=mP+b×sP」である。
【0170】
一方で、上記(13)式における右辺は、上記(12)式で計算する第10計算値「L」である。したがって、上記(12)式に基づき、右辺は、「L=R+j×Q」である。次に、上記(7)式に基づき、「R=m×P」である。ゆえに、右辺は、「L=R+j×Q=(m×P)+j×Q=mP+j×Q」である。
【0171】
上記(8)式、及び、上記(10)に基づき、「j=b」である。ゆえに、上記(13)式は、「mP+b×sP=mP+j×Q」であるから、「sP=Q」であると、成立する。そして、関係式に基づき、「Q=qP」である。したがって、定数「q」に秘密情報「s」を代入できていれば、上記(13)式は成り立つ。すなわち、秘密情報「s」(この例では、第1識別情報である。)を知っているのであれば、上記(13)式は成り立つので、第3情報処理装置13は、上記(13)式が成り立つか否かを判定して認証できる。
【0172】
このように、第3情報処理装置13は、第1情報処理装置11から直接秘密情報「s」を伝えられなくとも、秘密情報「s」を記憶するか否かを判定して、第1情報処理装置11を認証できる。
【0173】
第1情報処理装置11、及び、第3情報処理装置13の間を盗聴又は中間者攻撃等により、不正に情報が取得できる状態にされると、秘密情報「s」等の情報を送受信すると、秘密情報「s」等の情報が漏洩する可能性がある。一方で、図5に示すように、秘密情報「s」等の情報を第1情報処理装置11、及び、第3情報処理装置13の間で送受信せず、第1情報処理装置11を認証できると、よりセキュリティを向上できる。
【0174】
さらに、図5に示す対話型と比較して、図6に示すような非対話型は、第1情報処理装置11、及び、第3情報処理装置13の間で送受信する情報を少なくできる。したがって、非対話型による認証であると、第1情報処理装置11、及び、第3情報処理装置13の間の通信量を少なくできる。さらに、第1情報処理装置11、及び、第3情報処理装置13の間の通信から漏洩する情報を少なくできる。
【0175】
以上のように、認証は、非対話型のゼロ知識証明(Non-Interactive Zero-Knowledge Proof:NIZK)及びシュノア署名が用いられるのがより望ましい。このような認証であると、「なりすまし」等を防ぎ、かつ、秘密とする情報の漏洩を防ぐことができる。さらに、非対話型は、より通信を少なくできる。
【0176】
なお、対話型の処理例、及び、非対話型の処理例における各手順は、上記の例に示す順序でなくともよい。すなわち、各手順において用いる値が取得できた状態以降であれば、各手順は、順序が前後、冗長、又は、並列に実行してもよい。
【0177】
また、以上のように、直接秘密情報「s」を伝えられない認証等であると、例えば、以下のような攻撃等に対してセキュリティを向上できる。
【0178】
図7は、攻撃の例を示す図である。例えば、攻撃者18が攻撃者端末17を操作して、第1情報処理装置11、及び、第3情報処理装置13の間で不正に情報を取得する、又は、第1情報処理装置11に不正にアクセスする等攻撃を行う場合がある。
【0179】
このような攻撃がされると、攻撃者端末17は、第1識別情報「ID」等を取得できる場合がある。このような情報が不正に取得されると、第1情報処理装置11、及び、第3情報処理装置13の間で送受信される上記(1)式に示すような第1送信データからシード「S」等の情報が漏洩する可能性が高くなる。
【0180】
攻撃者18は、シード「S」を特定できると、例えば、シード「S」を改ざんする攻撃を行う。具体的には、攻撃者端末17は、シード「S」を取得し、シード「S」を構成するビットのうち、いずれかの「1」に対して「XOR」を行う。このように、攻撃者端末17は、シード「S」の全部、又は、一部を何らかの計算により異なる値に改ざんする。このような改ざんが行われると、第1情報処理装置11、及び、第2情報処理装置12が互いに異なるシード「S」を取得する。したがって、同じ鍵を共有できず、共通鍵方式で暗号化して通信を行うのが難しくなる。このようにして、攻撃者18は、通信を妨害する等の攻撃を行う。ゆえに、第1識別情報「ID」等の情報が漏洩するのを少なくできると、セキュリティを向上できる。
【0181】
一方で、直接秘密情報「s」等を伝えなくすると、このような攻撃を受ける可能性を低くでき、セキュリティを向上できる。
【0182】
[共有情報を用いる認証処理の変形例]
情報処理システム1は、上記の共有情報を用いる認証処理(対話型、及び、非対話型のどちらでもよい。)を以下のような構成で行ってもよい。以下、第1情報処理装置11、及び、第3情報処理装置13の間で認証する場合を例に説明する。ただし、以下に説明する構成は、他の装置間における認証に適用されてもよい。
【0183】
[第1変形例]
図8は、共有情報を用いる認証処理の第1変形例を示す図である。上記に説明する対話型、及び、非対話型の例と比較すると、第1変形例は、第1情報処理装置11、及び、第3情報処理装置13とは別に、更に情報処理装置(以下「第5情報処理装置19」という。)を用いる点が異なる。
【0184】
第1変形例では、第5情報処理装置19も、第1情報処理装置11を認証する。
【0185】
事前に、第3情報処理装置13、及び、第5情報処理装置19は、認証に用いる第1識別情報(秘密情報「s」となる。)、第1共有値「P」、又は、共有関数「Hash()」等を共有する。
【0186】
そして、第5情報処理装置19は、第3情報処理装置13とは別に、並列、又は、第3情報処理装置13による認証とは前後して第1情報処理装置11を認証する。
【0187】
第5情報処理装置19は、第3情報処理装置13による認証とは異なる乱数(具体的には、第1乱数「c」、又は、第3乱数「m」等である。)等を用いて認証を行う。
【0188】
このように、情報処理システム1は、複数の情報処理装置で冗長して認証を行うのがより望ましい。そして、冗長して行う認証のうち、いずれか1つでも認証できない場合には、情報処理システム1は、全体として、第1情報処理装置11に「なりすまし」等がされている可能性があると判定する。
【0189】
このように、情報処理システム1は、複数の情報処理装置で冗長して認証を行うと、より「なりすまし」等の不正を防ぎ、セキュリティを向上できる。
【0190】
なお、第5情報処理装置19は、複数台でもよい。また、第5情報処理装置19、又は、第3情報処理装置13が複数回の認証を更に行ってもよい。
【0191】
[第2変形例]
図9は、共有情報を用いる認証処理の第2変形例を示す図である。第1変形例と比較すると、第2変形例は、第5情報処理装置19を用いる構成は第1変形例と同様である。
【0192】
第2変形例では、第1情報処理装置11、及び、第3情報処理装置13は、第5情報処理装置19を介してデータの送受信、又は、情報の共有等を行う。具体的には、ステップS401、ステップS404、ステップS406、ステップS503、ステップS506、第1共有値「P」、共有関数「Hash()」、又は、これらの組み合わせ等が、第5情報処理装置19を介して、データの送受信、又は、共有化される。
【0193】
このように、認証を行う装置間において、直接、データの送受信、又は、共有化を行う回数を少なくする。代わりに、情報処理システム1は、認証を行う装置、及び、認証される装置とは異なる情報処理装置を介して、別の通信経路により、データの送受信、又は、情報の共有等を行う。このように、他の情報処理装置を介する構成とすると、認証を行う装置間の間で盗聴等の不正がされても、情報が漏洩する等を防ぎ、セキュリティを向上できる。
【0194】
なお、第1情報処理装置11、及び、第3情報処理装置13の間を介する情報処理装置は、1台に限られない。すなわち、第5情報処理装置19は、複数台でもよい。このように、複数の情報処理装置を介してデータの送受信、又は、情報の共有等が行われてもよい。
【0195】
[その他の認証処理例]
ほかにも、認証は、例えば、identification(ID)、パスワード、IPアドレス、位置情報、コールバック、バイオメトリクス、又は、これらの組み合わせを利用してもよい。
【0196】
[機能構成例]
図10は、機能構成例を示す図である。例えば、情報処理システム1は、第1情報処理装置11、第2情報処理装置12、第3情報処理装置13を有する。また、情報処理システム1は、第4情報処理装置14等と常時又は一時的に接続する。
【0197】
なお、情報処理システム1は、第4情報処理装置14等を常に有しなくともよい。すなわち、第1情報処理装置11、第2情報処理装置12、又は、第3情報処理装置13は、第4情報処理装置14と通信を行う場合だけ接続する等でもよい。
【0198】
第1情報処理装置11は、例えば、第1識別情報記憶部1F1、リクエスト部1F2、及び、通信部1F12等を備える機能構成である。
【0199】
第2情報処理装置12は、例えば、許可部1F5、及び、通信部1F12等を備える機能構成である。
【0200】
第3情報処理装置13は、例えば、第1識別情報取得部1F3、通知部1F4、返答受付部1F6、シード生成部1F7、第1送信データ生成部1F8、第1送信データ送信部1F9、第2送信データ生成部1F10、及び、第2送信データ送信部1F11等を備える機能構成である。
【0201】
第4情報処理装置14は、例えば、ユーザ情報16等を事前に保有する。なお、第4情報処理装置14は、第1識別情報等を管理、生成、及び、要求に応じて送信等をしてもよい。
【0202】
なお、情報処理システム1は、例えば、第3情報処理装置13が認証部1F13、及び、共有部1F14等を更に備えるのが望ましい。
【0203】
第1識別情報記憶部1F1は、第1識別情報を記憶する第1識別情報記憶手順を行う。例えば、第1識別情報記憶部1F1は、記憶装置11H2等で実現する。
【0204】
リクエスト部1F2は、第3情報処理装置13に、第2情報処理装置12によるサービスのリクエストを送信するリクエスト手順を行う。例えば、リクエスト部1F2は、インタフェース11H3等で実現する。
【0205】
第1識別情報取得部1F3は、第1識別情報を取得する第1識別情報取得手順を行う。例えば、第1識別情報取得部1F3は、インタフェース11H3等で実現する。
【0206】
通知部1F4は、リクエストを第1情報処理装置11から受け付けると、第2情報処理装置12に、リクエストを許可するか否かを問い合わせる通知を行う通知手順を行う。例えば、通知部1F4は、インタフェース11H3等で実現する。
【0207】
許可部1F5は、通知部1F4による通知を第3情報処理装置13から受け付けると、通知を許可する場合には、リクエストを許可する返答を第3情報処理装置13に行う許可手順を行う。例えば、許可部1F5は、インタフェース11H3等で実現する。なお、許可部1F5は、許可において、第1情報処理装置11、又は、第3情報処理装置13の認証等によるチェックの結果に基づいて許可するか拒否するかを判定してもよい。
【0208】
返答受付部1F6は、通知に対する返答を第2情報処理装置12から受け付ける返答受付手順を行う。例えば、返答受付部1F6は、インタフェース11H3等で実現する。
【0209】
シード生成部1F7は、鍵の基礎情報、又は、鍵を示すシードを生成するシード生成手順を行う。例えば、シード生成部1F7は、CPU11H1等で実現する。
【0210】
第1送信データ生成部1F8は、返答受付部1F6が受け付ける返答によってリクエストが許可されると、シード、第1共有情報、時間情報、第1識別情報、及び、第1通信情報を利用して第1送信データを生成する第1送信データ生成手順を行う。例えば、第1送信データ生成部1F8は、CPU11H1等で実現する。
【0211】
第1送信データ送信部1F9は、第1送信データを第1情報処理装置11に送信する第1送信データ送信手順を行う。例えば、第1送信データ送信部1F9は、インタフェース11H3等で実現する。
【0212】
第2送信データ生成部1F10は、返答受付部1F6が受け付ける返答によってリクエストが許可されると、シードを含む第2送信データを生成する第2送信データ生成手順を行う。例えば、第2送信データ生成部1F10は、CPU11H1等で実現する。
【0213】
第2送信データ送信部1F11は、第2送信データを第2情報処理装置12に送信する第2送信データ送信手順を行う。例えば、第2送信データ送信部1F11は、インタフェース11H3等で実現する。
【0214】
通信部1F12は、まず、第1送信データ、又は、第2送信データから、シードを取り出して鍵を生成する。次に、通信部1F12は、鍵を用いて暗号化して通信を行う通信手順を行う。例えば、通信部1F12は、インタフェース11H3等で実現する。
【0215】
具体的には、第1情報処理装置11が備える通信部1F12は、第1送信データからシードを取り出して鍵を生成して、鍵で第2情報処理装置12と送受信するデータを暗号化又は復号して通信を行う第1通信手順を行う。同様に、第2情報処理装置12が備える通信部1F12は、第2送信データからシードを取り出して鍵を生成して、鍵で第1情報処理装置11と送受信するデータを暗号化又は復号して通信を行う第2通信手順を行う。
【0216】
認証部1F13は、第1情報処理装置11等を認証する認証手順を行う。例えば、認証部1F13は、インタフェース11H3等で実現する。
【0217】
共有部1F14は、例えば、第1共有情報、時間情報、第1通信情報、第2共有情報、第2識別情報、第2通信情報、公開鍵、公開鍵計算式、乱数、係数、又は、これらの組み合わせの情報等の情報を共有する。例えば、共有部1F14は、インタフェース11H3等で実現する。
【0218】
なお、機能構成は、図示する構成に限られない。すなわち、各構成は、一部、又は、全部が他の情報処理装置にあってもよい。例えば、共有部1F14は、他の情報処理装置が有してもよい。したがって、情報の共有は、他の情報処理装置により行われてもよい。具体的には、共有部1F14は、第1情報処理装置11等が有してもよい。
【0219】
また、認証部1F13等も同様である。したがって、認証は、他の情報処理装置が主体となって行う構成でもよい。
【0220】
[共有の例]
第1共有情報、時間情報、第1通信情報、第2共有情報、第2識別情報、第2通信情報、公開鍵、公開鍵計算式、乱数、及び、係数等の情報は、例えば、公開、又は、要求等で共有する。
【0221】
具体的には、共有する情報を公開すると、公開を行う情報処理装置に対して、アクセスすると、アクセスした情報処理装置は、情報を取得できる。
【0222】
要求は、情報を保有する情報処理装置に対して要求すると、要求に応じて情報が返信される。このようにして、要求した情報処理装置は、情報を取得できる。
【0223】
なお、情報を共有する際に、情報を取得しようとする情報処理装置は、認証等のチェックがされてもよい。また、共有において、情報は、一部、又は、別の情報に加工されて共有されてもよい。すなわち、情報を共有した情報処理装置は、事前に定めた処理等を行うことで、一部、又は、別の情報から情報を取得できる。
【0224】
さらに、共有は、通信だけで実現しなくともよい。すなわち、共有は、データを記録媒体等で入力する、又は、口頭等で情報がユーザに伝えられて、ユーザが情報を入力する等で実現してもよい。
【0225】
[第2実施形態]
第2実施形態は、第1実施形態と情報の共有化が異なる。以下、異なる点を中心に説明し、第1実施形態と同じ内容は説明を省略する。
【0226】
以下、第1識別情報「ID」を第1情報処理装置11、及び、第3情報処理装置13の間で共有する場合を例に説明する。
【0227】
第1識別情報「ID」は、例えば、以下のように管理するのが望ましい。
【0228】
図11は、第2実施形態において情報を分散させる例を示す図である。以下、第1情報処理装置11が記憶する第1識別情報「ID」を共有する例で説明する。
【0229】
第2実施形態は、第1情報処理装置11が第1識別情報「ID」を装置群20に送信し、装置群20が第1識別情報「ID」を管理する。したがって、第3情報処理装置13等は、装置群20に対して、要求して第1識別情報「ID」を取得する。
【0230】
装置群20は、複数の情報処理装置である。以下、「情報処理装置200」、「情報処理装置210」乃至「情報処理装置2N0」の「N台」(「N」は情報処理装置の数を示す自然数である。)の情報処理装置で装置群20を構成する例で説明する。
【0231】
また、以下の例では、装置群20に対する要求等は、情報処理装置200が受け付ける例とする。ただし、情報処理装置200のように窓口となる情報処理装置はなくともよい。例えば、第3情報処理装置13等は、装置群20に対する要求等を行う場合には、「情報処理装置210」乃至「情報処理装置2N0」のうち、いずれかに要求すればよい、又は、ブロックチェーン等でもよい。
【0232】
装置群20は、第1識別情報「ID」を分散して管理する。したがって、装置群20は、第1識別情報「ID」を受け付けると、第1識別情報「ID」を複数の情報処理装置で分散して管理できるような情報(以下「分散情報」という。)にして管理する。
【0233】
例えば、装置群20では、まず、情報処理装置200は、第1識別情報「ID」を受け付けて分散情報を生成する。次に、分散情報が生成されると、情報処理装置200は、情報処理装置210乃至情報処理装置2N0(情報処理装置200が含まれてもよい。)に、情報が分散するように、分散情報を送信する。
【0234】
図12は、分散情報の例を示す図である。
【0235】
分散情報は、例えば、第1識別情報「ID」を小さな情報量に分けた情報である。例えば、分散情報は、第1識別情報「ID」をビット単位に分けた情報である。具体的には、第1識別情報「ID」が1バイト(byte)、すなわち、8ビット(bit)の情報量であるとする。以下、装置群20が情報処理装置210乃至情報処理装置240の4台の情報処理装置(すなわち、「N=4」である。)で構成されるとする。
【0236】
第1識別情報「ID」は、例えば、「11110000」等である。そして、装置群20は、2ビットごとの4個の分散情報(以下「第1分散情報20D1」、「第2分散情報20D2」、「第3分散情報20D3」、及び、「第4分散情報20D4」という。)にして管理する。
【0237】
第1分散情報20D1は、第1識別情報「ID」のうち、上位から1ビット目、及び、2ビット目の情報を分けた情報である。
【0238】
第2分散情報20D2は、第1識別情報「ID」のうち、上位から3ビット目、及び、4ビット目の情報を分けた情報である。
【0239】
第3分散情報20D3は、第1識別情報「ID」のうち、上位から5ビット目、及び、6ビット目の情報を分けた情報である。
【0240】
第4分散情報20D4は、第1識別情報「ID」のうち、上位から7ビット目、及び、8ビット目の情報を分けた情報である。
【0241】
この例では、分散情報は、第1識別情報「ID」を2ビットごとに分けて生成する。すなわち、各々の分散情報は、第1識別情報「ID」の一部を示す情報である。
【0242】
このようにして、装置群20の各々の情報処理装置は、別々に分散情報を管理する。
【0243】
そして、情報処理装置200は、第1識別情報「ID」の取得を要求されると、情報処理装置200、情報処理装置210乃至情報処理装置2N0から分散情報を取得する。そこで、情報処理装置200は、分散情報を合成する。
【0244】
具体的には、情報処理装置200は、4個の分散情報を取得する。このように、分散情報を取得すると、情報処理装置200は、4個の分散情報を組み合わせて、第1識別情報「ID」を生成できる。
【0245】
例えば、情報処理装置200は、情報処理装置210乃至情報処理装置240から、第1分散情報20D1、第2分散情報20D2、第3分散情報20D3、及び、第4分散情報20D4を取得する。そして、情報処理装置200は、第1分散情報20D1、第2分散情報20D2、第3分散情報20D3、第4分散情報20D4の順に上位から並べるように組み合わせて分散情報を合成する。このように合成すると、情報処理装置200は、「11110000」の第1識別情報「ID」を分散情報から生成できる。したがって、情報処理装置200は、第1識別情報「ID」の取得を要求する第3情報処理装置13等に対し、第1識別情報「ID」を送信できる。
【0246】
このような分散情報にすると、情報処理システム1は、各々の情報処理装置が管理する情報を小さい情報量にできる。
【0247】
なお、分散情報は、情報量が均等でなくともよい。すなわち、装置群20を構成する情報処理装置は、同じ情報量の分散情報を管理するのでなく、管理する分散情報の情報量が偏ってもよい。
【0248】
分散情報は、情報を小さな情報量に分けるに限られない。例えば、分散情報は、暗号化した情報と、鍵の情報の組み合わせ(各々の情報を小さな情報量に分けてもよい。)でもよい。
【0249】
また、分散情報の生成、すなわち、分散情報生成部1F15を備えるのは、情報処理装置200でなくともよい。例えば、分散情報生成部1F15は、第1情報処理装置11等が備えてもよい。
【0250】
このような分散情報であると、暗号化した情報を何らかの方法で取得できても、鍵がなければ、第1識別情報「ID」を取得するのは難しい。
【0251】
すなわち、分散情報のうち、一部の分散情報を不正に取得しても、第1識別情報「ID」を全体として取得するのが難しくできるのであれば、分散情報は、形式、及び、情報量等を問わない。
【0252】
なお、装置群20は、例えば、以下のように、Software-Defined anything(ソフトウェア定義)(以下「SDx」という。)等で構成する情報処理装置を特定されるのが望ましい。
【0253】
図13は、SDxによる装置群の特定例を示す図である。例えば、図12のように、第1識別情報「ID」が8ビットの情報量であり、かつ、2ビットごとに分散する場合を例にする。
【0254】
SDxは、例えば、装置群20において、N台の情報処理装置のうち、情報処理装置210乃至情報処理装置240を特定する処理である。
【0255】
SDxのように、分散情報の数等に応じて用いる情報処理装置210乃至情報処理装置240を特定すると、情報処理装置等のハードウェア資源を効率良く活用できる。また、SDxによって、管理する情報処理装置を柔軟に変更すると、分散情報を管理する情報処理装置を固定する場合等と比較して、不正に情報を取得されるのを防ぎ、よりセキュリティを向上できる。
【0256】
又は、装置群20は、例えば、Domain Name System(以下「DNS」という。)等で構成する情報処理装置を特定されるのが望ましい。
【0257】
図14は、DNSによる装置群の特定例を示す図である。すなわち、装置群20は、Uniform Resource Locator形式の情報(以下単に「URL」という。)等で構成する情報処理装置を特定されるのが望ましい。
【0258】
以下、URLを「www.aaa.co.jp」とする例で説明する。
【0259】
例えば、情報処理装置200が、DNSにおけるDNSサーバとなる。まず、第1情報処理装置11は、URLを用いて情報処理装置200において問い合わせを行う。
【0260】
URLに基づく問い合わせが行われると、情報処理装置200は、ルートサーバ300に問い合わせを行う。
【0261】
DNSにより、ルートサーバ300に問い合わせが行われると、URLにより情報処理装置が特定される。この例では、「jp」、「co」、及び、「aaa」を各々担当するサーバが特定される。
【0262】
例えば、DNSを利用して、情報処理システム1は、情報処理装置210乃至情報処理装置230のように、複数の情報処理装置を特定して、装置群20を構成してもよい。ただし、装置群20を構成する情報処理装置は、「jp」、「co」、及び、「aaa」を各々担当するサーバ以外の情報処理装置でもよい。例えば、「jp」、「co」、及び、「aaa」を各々担当するサーバは、特定されると、別の情報処理装置で装置群20を構成するように、別の情報処理装置を指定してもよい。
【0263】
なお、DNSによる装置群の特定は、DNSにおけるキャッシュを利用してもよい。
【0264】
このように、DNSを利用すると、URLにより、情報処理装置の数等を柔軟に指定できる。
【0265】
このように、第1識別情報「ID」等の情報を分散して管理すると、一部の情報が漏洩しても、第1識別情報「ID」の一部しか把握できず、第1識別情報「ID」の全体を把握するのが難しくできる。このようにして、情報処理システム1は、第1識別情報「ID」が漏洩するのを防ぎ、セキュリティを向上できる。
【0266】
なお、第2実施形態において、対象となる情報は、第1識別情報「ID」に限られない。すなわち、情報は、第1識別情報「ID」以外の情報でもよい。例えば、第2識別情報「ID」等が対象であってもよい。
【0267】
具体的には、第2識別情報「ID」は、第3情報処理装置13が第2送信データを生成する場合等に、第3情報処理装置13が用いる。又は、第2識別情報「ID」は、第3情報処理装置13が第2情報処理装置12を認証する場合等に、第3情報処理装置13が用いる。このような場合等に、第3情報処理装置13が第2実施形態に示す共有方法等を用いてもよい。
【0268】
[中間者攻撃の例]
図15は、中間者攻撃の例を示す図である。例えば、中間者攻撃は、攻撃者18が攻撃者端末17を操作して、第1情報処理装置11、及び、第2情報処理装置12の間を送受信するデータを攻撃者端末17が不正に取得できるように接続する処理である。
【0269】
なお、第1情報処理装置11、及び、第2情報処理装置12等は、攻撃者端末17が接続した、又は、接続しているのを把握できないとする。
【0270】
このように中間者攻撃がされると、以降、第1情報処理装置11、及び、第2情報処理装置12の間を送受信するデータは、攻撃者端末17を介して送受信される。そして、第1情報処理装置11、及び、第2情報処理装置12等は、データの改ざん、又は、データの削除等が起きないと、データの送受信が無事に完了したと判定する。
【0271】
したがって、第1情報処理装置11、及び、第2情報処理装置12等は、中間者攻撃による不正な情報の取得が把握できない場合がある。
【0272】
ゆえに、第1情報処理装置11、及び、第2情報処理装置12の間で、共通鍵方式で暗号化してデータを送受信しようとする場合等において、鍵を第1情報処理装置11、及び、第2情報処理装置12の間で直接送受信すると、鍵が中間者攻撃で不正に取得される可能性がある。ゆえに、第1情報処理装置11、及び、第2情報処理装置12の間で直接鍵を送受信しないのが望ましい。
【0273】
本実施形態によれば、鍵を第1情報処理装置11、及び、第2情報処理装置12の間で直接送受信しないため、第1情報処理装置11、及び、第2情報処理装置12の間等を中間者攻撃されても、鍵を不正に取得されるのを防ぐことができる。ゆえに、情報処理システム1は、鍵を不正に取得する等に対し、通信におけるセキュリティを向上できる。
【0274】
[「なりすまし」による攻撃の例]
図16は、「なりすまし」による攻撃の例を示す図である。例えば、「なりすまし」による攻撃は、攻撃者18が攻撃者端末17を操作して、第1情報処理装置11に「なりすまし」する処理である。
【0275】
攻撃者端末17は、第1情報処理装置11であると偽ってリクエスト等を行う。仮に、リクエストが許可されてしまうと、攻撃者端末17は、第1送信データを不正に取得する。
【0276】
このような場合であっても、攻撃者18は、第1識別情報、第1共有情報、時間情報、第1通信情報、ハッシュ関数、及び、第1送信データを生成する計算式等をすべて知らないと、第1送信データからシードを取り出すのは難しい。
【0277】
また、攻撃者18は、シードから鍵を生成する方法を知らないと、攻撃者18は、鍵を取得するのは難しい。
【0278】
例えば、「フィッシング」(phishing)等で不正に情報が取得されても、すべての情報が取得されないと、シード等の情報を特定するのは難しい場合が多い。
【0279】
また、第1識別情報を用いる認証等を行う場合には、攻撃者18は、第1識別情報等を知らないと、第3情報処理装置13に認証されない場合が多い。
【0280】
さらに、第1識別情報等が分散情報等で管理されると、攻撃者18は、第1識別情報等を不正に取得しにくい。
【0281】
ゆえに、情報処理システム1は、第1情報処理装置11に「なりすまし」する攻撃等に対し、通信におけるセキュリティを向上できる。
【0282】
[その他の実施形態]
実施形態は、上記の実施形態を組み合わせたものでもよい。
鍵は、通信(例えば、セクション単位、又は、同じユーザ同士で連続してデータを送受信する単位等である。)ごとに生成されるのが望ましい。すなわち、通信ごとに異なる鍵が用いられると、セキュリティがより向上できる。
情報処理システム1において、第1情報処理装置11(第1情報処理装置11を介してユーザ15を認証する場合を含む。)、及び、第2情報処理装置12の間で直接認証をしない構成が望ましい。すなわち、第1情報処理装置11、及び、第2情報処理装置12の間は、非対話型のゼロ知識証明等が用いられるのが望ましい。
また、ユーザ15についての情報(例えば、ユーザ情報16等といったユーザ15に関する情報である。)は、第4情報処理装置14等が管理する構成が望ましい。
【0283】
情報処理システムは、情報処理装置におけるオペレーティングシステム(OS)を構成するカーネル(kernel)等で実現されてもよい。又は、情報処理システムは、Secure Sockets Layer(SSL)、又は、Transport Layer Security(TLS)等に用いられてもよい。
【0284】
また、第1識別情報等は、一定期間ごと等に変更されてもよい。すなわち、第1識別情報等は、動的に切り替える、動的固有アイデンティティ(Dynamic SpecificIdentity、DSI)等が適用されてもよい。
【0285】
第1情報処理装置等は、例えば、Open Mobile Alliance-Device Management(OMA-DM)、Lightweight Directory Access Protocol(LDAP)、又は、Remote Authentication Dial In User Service(Radius)等で認証されてもよい。
【0286】
第1情報処理装置等は、Authentication(認証)、Authorization(認可)、及び、Accounting(アカウンティング)の機能(AAA)を有する情報処理装置等により、認証等がされてもよい。
【0287】
第1識別情報等は、ハードウェア等を特定する情報でもよい。すなわち、第1識別情報等は、物理アドレス等でもよい。又は、第1識別情報等は、第1情報処理装置が有するセンサ等で特定される位置情報等でもよい。
【0288】
本発明は、上記に例示する情報処理方法、又は、上記に示す処理と等価な処理を実行するプログラム(ファームウェア、及び、プログラムに準ずるものを含む。以下単に「プログラム」という。)で実現されてもよい。
【0289】
すなわち、本発明は、コンピュータに対して指令を行って所定の結果が得られるように、プログラミング言語等で記載されたプログラム等で実現されてもよい。なお、プログラムは、処理の一部をIntegrated Circuit(IC、集積回路)等のハードウェア、又は、Graphics Processing Unit(GPU)等の演算装置等で実行する構成であってもよい。
【0290】
プログラムは、コンピュータが有する演算装置、制御装置、及び、記憶装置等を協働させて上記に示す処理等をコンピュータに実行させる。すなわち、プログラムは、主記憶装置等にロードされて、演算装置に命令を発して演算を行わせてコンピュータを動作させる。
【0291】
また、プログラムは、コンピュータが読み込み可能な記録媒体、又は、ネットワーク等の電気通信回線を介して提供されてもよい。
【0292】
本発明は、複数の装置で構成されるシステムで実現されてもよい。すなわち、複数のコンピュータによるシステムは、上記に示す処理を冗長、並列、分散、又は、これらの組み合わせとなるように実行してもよい。したがって、本発明は、上記に示すハードウェア構成以外の装置、及び、上記に示す装置以外のシステムで実現されてもよい。
【0293】
なお、本発明は、上記に例示する各実施形態に限定されない。したがって、本発明は、技術的な要旨を逸脱しない範囲で、構成要素の追加、又は、変形が可能である。ゆえに、特許請求の範囲に記載された技術思想に含まれる技術的事項のすべてが本発明の対象となる。なお、上記に例示する実施形態は、実施において好適な具体例である。そして、当業者であれば、開示した内容から様々な変形例を実現で可能であって、このような変形例は、特許請求の範囲に記載された技術的範囲に含まれる。
【符号の説明】
【0294】
1 :情報処理システム
1F1 :第1識別情報記憶部
1F10 :第2送信データ生成部
1F11 :第2送信データ送信部
1F12 :通信部
1F13 :認証部
1F14 :共有部
1F15 :分散情報生成部
1F2 :リクエスト部
1F3 :第1識別情報取得部
1F4 :通知部
1F5 :許可部
1F6 :返答受付部
1F7 :シード生成部
1F8 :第1送信データ生成部
1F9 :第1送信データ送信部
2N0 :情報処理装置
11 :第1情報処理装置
12 :第2情報処理装置
13 :第3情報処理装置
14 :第4情報処理装置
15 :ユーザ
16 :ユーザ情報
17 :攻撃者端末
18 :攻撃者
19 :第5情報処理装置
20 :装置群
20D1 :第1分散情報
20D2 :第2分散情報
20D3 :第3分散情報
20D4 :第4分散情報
200 :情報処理装置
210 :情報処理装置
230 :情報処理装置
240 :情報処理装置

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16