(57)【要約】【課題】安全に認証を行うことを目的とする。【解決手段】第１の通信装置の認証パラメータと、認証パラメータの変換予測値と、を、第１の通信装置から受信する受信手段と、第１の通信装置の通信相手となる第２の通信装置から取得要求を受信した場合に、第１の通信装置から受信した認証パラメータを第２の通信装置に送信する送信手段と、第２の通信装置から認証パラメータに対応した変換値を受信した場合に、変換値と、変換予測値と、に基づいて、第２の通信装置を認証する認証手段とを有する。【選択図】図４
2018067832.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置の認証パラメータと、前記認証パラメータの変換予測値と、を、前記第１の通信装置から受信する受信手段と、
前記第１の通信装置の通信相手となる第２の通信装置から取得要求を受信した場合に、前記第１の通信装置から受信した前記認証パラメータを前記第２の通信装置に送信する送信手段と、
前記第２の通信装置から前記認証パラメータに対応した変換値を受信した場合に、前記変換値と、前記変換予測値と、に基づいて、前記第２の通信装置を認証する認証手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記受信手段は、前記第１の通信装置との通信に必要な通信情報を前記第１の通信装置からさらに受信し、
前記第２の通信装置の認証に成功した場合に、前記通信情報を前記第２の通信装置に送信する送信手段をさらに有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の通信装置から受信した前記認証パラメータ、前記変換予測値及び前記通信情報を対応付けて記憶手段に保存する保存手段と、
前記認証手段による認証処理の終了後に、前記記憶手段から前記認証パラメータ、前記変換予測値及び前記通信情報を削除する削除手段と
をさらに有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記保存手段は、前記認証パラメータ、前記変換予測値及び前記通信情報を、前記第１の通信装置の識別情報に対応付けて保存することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記保存手段は、前記認証パラメータ、前記変換予測値及び前記通信情報を、前記第１の通信装置の識別情報及び前記第２の通信装置の識別情報に対応付けて保存することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記認証パラメータは、前記変換予測値と、前記第２の通信装置を認証するための認証情報と、に基づいて生成された情報であり、
前記変換値は、前記認証パラメータと、前記認証情報に対応する情報と、に基づいて生成された情報であることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記認証パラメータは、前記変換予測値を前記第２の通信装置の公開鍵で暗号化することにより得られた情報であり、
前記変換値は、前記認証パラメータを、前記第２の通信装置の秘密鍵で復号化することにより得られた情報であることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記認証パラメータは、前記変換予測値を、前記第２の通信装置を認証するための認証情報と、前記第１の通信装置を認証するための認証情報と、に基づいて生成された情報であり、
前記変換値は、前記認証パラメータと、前記第２の通信装置の前記認証情報に対応する情報と、前記第１の通信装置の前記認証情報に対応する情報と、に基づいて生成された情報であることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項９】
前記認証パラメータは、前記変換予測値を、前記第２の通信装置の公開鍵で暗号化し、さらに前記第１の通信装置の秘密鍵で暗号化することにより得られた情報であり、
前記変換値は、前記認証パラメータを、前記第１の通信装置の公開鍵で復号化し、さらに、前記第２の通信装置の秘密鍵で復号化することにより得られた情報であることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記受信手段は、前記第２の通信装置の認証パラメータと、前記第２の通信装置の前記認証パラメータの変換予測値と、を、前記第２の通信装置からさらに受信し、
前記送信手段は、前記第１の通信装置から取得要求を受信した場合に、前記第２の通信装置の前記認証パラメータを前記第１の通信装置に送信し、
前記認証手段は、前記第２の通信装置の前記認証パラメータに対応した変換値を前記第１の通信装置から受信した場合に、前記第２の通信装置の前記認証パラメータに対応した変換値と、前記第２の通信装置の前記認証パラメータの前記変換予測値と、に基づいて、前記第１の通信装置を認証することを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１１】
前記受信手段は、前記第２の通信装置の前記認証パラメータの前記変換値と共に、前記第２の通信装置の認証パラメータと、前記第２の通信装置の前記認証パラメータの変換予測値と、を、前記第２の通信装置から受信することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
情報処理装置が実行する情報処理方法であって、
第１の通信装置の認証パラメータと、前記認証パラメータの変換予測値と、を、前記第１の通信装置から受信する受信ステップと、
前記第１の通信装置の通信相手となる第２の通信装置から取得要求を受信した場合に、前記第１の通信装置から受信した前記認証パラメータを前記第２の通信装置に送信する送信ステップと、
前記第２の通信装置から前記認証パラメータに対応した変換値を受信した場合に、前記変換値と、前記変換予測値と、に基づいて、前記第２の通信装置を認証する認証ステップと
を含むことを特徴とする情報処理方法。
【請求項１３】
コンピュータを、
第１の通信装置の認証パラメータと、前記認証パラメータの変換予測値と、を、前記第１の通信装置から受信する受信手段と、
前記第１の通信装置の通信相手となる第２の通信装置から取得要求を受信した場合に、前記第１の通信装置から受信した前記認証パラメータを前記第２の通信装置に送信する送信手段と、
前記第２の通信装置から前記認証パラメータに対応した変換値を受信した場合に、前記変換値と、前記変換予測値と、に基づいて、前記第２の通信装置を認証する認証手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、インターネットやイントラネットにおけるネットワーク上のリソースに対するアクセス制御方法がいくつか提案されている。例えば、Ｂａｓｉｃ認証（非特許文献１参照）やチャレンジ／レスポンス認証（非特許文献２参照）などの認証方法である。この技術によれば、特定の端末、または特定の人物にのみリソースへのアクセスを許可することを可能とする。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】"ＲＦＣ  ２６１７  −  ＨＴＴＰ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ：  Ｂａｓｉｃ  ａｎｄ  Ｄｉｇｅｓｔ  Ａｃｃｅｓｓ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ"、［平成２８年１０月３日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ２６１７＞
【非特許文献２】"ＲＦＣ  ５８０２  −  Ｓａｌｔｅｄ  Ｃｈａｌｌｅｎｇｅ  Ｒｅｓｐｏｎｓｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｍｅｃｈａｎｉｓｍ  （ＳＣＲＡＭ）  ＳＡＳＬ  ａｎｄ  ＧＳＳ−ＡＰＩ  Ｍｅｃｈａｎｉｓｍｓ"、［平成２８年１０月３日検索］、インターネット＜ＵＲＬ：ｈｔｔｐｓ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ５８０２＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の非特許文献に開示された従来技術では、認証で使用するＩＤやパスワードなどの認証用情報を一括管理するアドレス解決可能な認証サーバが必要になる。しかしながら、認証サーバにおいては、悪意のある者から攻撃を受け認証用情報が流出した際に、被害が大きくなるというリスクがある。
【０００５】
本発明はこのような問題点に鑑みてなされたもので、安全に認証を行う技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明は、情報処理装置であって、第１の通信装置の認証パラメータと、前記認証パラメータの変換予測値と、を、前記第１の通信装置から受信する受信手段と、前記第１の通信装置の通信相手となる第２の通信装置から取得要求を受信した場合に、前記第１の通信装置から受信した前記認証パラメータを前記第２の通信装置に送信する送信手段と、前記第２の通信装置から前記認証パラメータに対応した変換値を受信した場合に、前記変換値と、前記変換予測値と、に基づいて、前記第２の通信装置を認証する認証手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、安全に認証を行うことができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの全体図である。
【図２】サーバ装置及び端末装置のハードウェア構成図である。
【図３】データテーブルの一例を示す図である。
【図４】情報処理システムによる処理を示すシーケンス図である。
【図５】サーバ装置の処理を示すフローチャートである。
【図６】端末装置の処理を示すフローチャートである。
【図７】第２の実施形態に係る処理を示すシーケンス図である。
【図８】サーバ装置の処理を示すフローチャートである。
【図９】端末装置の処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
（第１の実施形態）
図１は、情報処理システムの全体図である。情報処理システムは、サーバ装置１００と、端末装置１１０と、ルータ１２０と、を有している。本実施形態においては、情報処理システムは、２つの端末装置１１０と、２つの端末装置１１０に対応する２つのルータ１２０とを有しているものとする。端末装置１１０は、それぞれ対応するルータ１２０を介してインターネット１４０と接続する。サーバ装置１００もインターネット１４０に接続する。サーバ装置１００は、端末装置１１０からアクセス可能な状態にあるものとする。なお、端末装置１１０は必ずしもルータ１２０を介してインターネット１４０に接続している必要はなく、直接インターネット１４０に接続していてもよい。以下、適宜、２つの端末装置１１０を端末装置Ａ、端末装置Ｂと称する。また、適宜、端末装置Ａと接続するルータ１２０をルータＡ、端末装置Ｂと接続するルータ１２０をルータＢと称する。
【００１１】
図２は、サーバ装置１００及び端末装置１１０のハードウェア構成図である。本実施形態では、サーバ装置１００として一般的なサーバＰＣを、端末装置１１０として一般家庭にあるＰＣを想定して説明を行う。なお、端末装置１１０は、スマートフォンやタブレットＰＣ、デジタルカメラ等でもよい。
【００１２】
サーバ装置１００は、制御部２０１、記憶部２０２、メモリ２０３、表示部２０４、操作部２０５及び通信部２０６を有している。制御部２０１は、サーバ装置１００の各部を制御する。なお、制御部２０１が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。記憶部２０２は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の電気的に消去・記録可能な不揮発性の記憶媒体であり、制御部２０１で実行されるプログラム等が格納される。記憶部２０２には、後述するデータテーブルが記憶されている。データテーブルについては、図３を参照しつつ後述する。なお、後述するサーバ装置１００の機能や処理は、制御部２０１が記憶部２０２に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
【００１３】
メモリ２０３は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、各種データを一時的に保持するバッファメモリや、制御部２０１の作業領域等として使用される。表示部２０４は、対話的な操作のためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）表示を行う。なお、表示部２０４は、必ずしもサーバ装置１００に内蔵する必要はない。サーバ装置１００は表示内容を制御する表示制御機能を少なくとも有していればよい。操作部２０５は、サーバ装置１００に対する指示をユーザから受けるために用いられる。操作部２０５は、例えば、サーバ装置１００の電源のＯＮ／ＯＦＦを指示するための電源ボタンや、画面遷移を指示するための操作ボタンを含む。
【００１４】
通信部２０６は、例えばＥｔｈｅｒｎｅｔに接続するためのコネクタ（ＲＪ４５）や通信用ＩＣなどを内蔵したＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）であり、インターネット１４０に接続するための通信ユニットである。通信部２０６は、インターネット１４０に接続しており、インターネット１４０を介して端末装置１１０と通信を行う。なお、通信部２０６はルータを経由してインターネット１４０に接続する構成であってもよい。
【００１５】
端末装置１１０は、制御部２１１、記憶部２１２、メモリ２１３、表示部２１４、操作部２１５、ドライブ装置２１６及び通信部２１７を有している。制御部２１１、記憶部２１２、メモリ２１３、表示部２１４及び操作部２１５は、それぞれ制御部２０１、記憶部２０２、メモリ２０３、表示部２０４及び操作部２０５と同様である。ドライブ装置２１６は、リムーバブルメディアなど外部記憶媒体２１８にアクセスするために用いられ、外部記憶媒体２１８への各種データの記録や読み込み、消去等が行なえる。通信部２１７は、例えばＥｔｈｅｒｎｅｔに接続するためのコネクタ（ＲＪ４５）や通信用ＩＣなどを内蔵したＮＩＣであり、インターネット１４０に接続するための通信ユニットである。通信部２１７は、ルータ１２０を経由してインターネット１４０に接続しており、インターネット１４０を介してサーバ装置１００と通信を行う。
【００１６】
図３は、サーバ装置１００の記憶部２０２に記憶されているデータテーブル３００の一例を示す図である。データテーブル３００には、認証端末識別子及び被認証端末識別子が複合主キーとして保存されている。ここで、識別子は、端末装置の識別情報の一例である。さらに、データテーブル３００には、複合主キーに対応付けて、グローバルアドレス（ＧＩＰ）、グローバルポート番号（ＧＰＯＲＴ）、チャレンジデータ（ＣＨＡＬ）、予測レスポンス（ＸＲＥＳ）が保存されている。データテーブル３００は、これらのデータをひとまとまりにしたレコード単位でデータを管理している。
【００１７】
データテーブル３００のフィールド３０１で管理される認証端末識別子は、後述の認証処理に必要なデータを生成する端末装置１１０の識別子である。フィールド３０２で管理される被認証端末識別子は、認証を受ける端末装置１１０の識別子である。フィールド３０３で管理されるグローバルアドレスは、フィールド３０１に識別子が登録されている端末装置１１０のグローバルアドレスである。フィールド３０４で管理されているグローバルポート番号は、フィールド３０１に識別子が登録されている端末装置１１０のグローバルポート番号である。
【００１８】
フィールド３０５で管理されているチャレンジデータは、フィールド３０２に識別子が登録されている端末装置１１０の認証を行う際に使用されるデータであり、後述するフィールド３０６に登録されている予測レスポンスを元に生成される値である。フィールド３０６で管理されている予測レスポンスは、フィールド３０２に識別子が登録されている端末装置１１０の認証を行う際に使用されるデータであり、乱数を用いて生成される値である。認証端末識別子や被認証端末識別子等、端末装置１１０を一意に識別できる識別子としては、ＭＡＣアドレス等、各端末装置１１０に一意に割り当てられる値を用いる。
【００１９】
図４は、情報処理システムによる処理を示すシーケンス図である。図４を参照しつつ、端末装置Ａと端末装置ＢがＰ２Ｐ（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ）通信を行うにあたって必要となるグローバルアドレス及びグローバルポート番号の情報を、サーバ装置１００を利用して交換する場合について説明する。なお、図４に示す端末装置Ａ及び端末装置Ｂの処理は、それぞれ端末装置Ａ及び端末装置Ｂの制御部２１１が行うものとする。また、図４に示すサーバ装置１００の処理は、サーバ装置１００の制御部２０１が行うものとする。
【００２０】
図４のシーケンス開始時、端末装置Ａは、外部記憶媒体２１８を介して、端末装置Ｂの識別子ＩＤ（Ｂ）及び端末装置Ｂの公開鍵Ｋｐ（Ｂ）を自装置の記憶部２１２に保存しているものとする。また、端末装置Ｂも同様に、外部記憶媒体２１８を介して、端末装置Ａの識別子ＩＤ（Ａ）及び端末装置Ａの公開鍵Ｋｐ（Ａ）を自装置の記憶部２１２に保存しているものとする。なお、公開鍵の交換方法に関しては、外部記憶媒体２１８による方法以外に近接無線や物理接続、ＱＲコード（登録商標）、サーバ装置１００経由等どのような手段で行ってもよい。また、端末装置Ａ及び端末装置Ｂは、Ｐ２Ｐ通信用のアプリケーションを起動済みであるものとする。
【００２１】
また、端末装置Ａは、端末装置Ａに一時的に割り当てられたグローバルアドレスＧＩＰ（Ａ）及びグローバルポート番号ＧＰＯＲＴ（Ａ）を、自装置のメモリ２１３に保持しているものとする。なお、端末装置Ａは、ＳＴＵＮ（Ｓｅｓｓｉｏｎ  Ｔｒａｖｅｒｓａｌ  Ｕｔｉｌｉｔｉｅｓ  ｆｏｒ  ＮＡＴｓ）という技術を使ってグローバルアドレスＧＩＰ（Ａ）及びグローバルポート番号ＧＰＯＲＴ（Ａ）を取得する。また、端末装置Ｂも同様に、端末装置Ｂに一時的に割り当てられたグローバルアドレスＧＩＰ（Ｂ）及びグローバルポート番号ＧＰＯＲＴ（Ｂ）を、自装置のメモリ２１３に保持しているものとする。なお、端末装置Ｂは、ＳＴＵＮという技術を使ってグローバルアドレスＧＩＰ（Ｂ）及びグローバルポート番号ＧＰＯＲＴ（Ｂ）を取得する。
【００２２】
図４のシーケンスは、Ｓ４０１にて、端末装置Ａが、操作部２１５を介してＰ２Ｐ通信開始操作を受け付けると開始する。Ｓ４０２にて、端末装置Ａは、乱数を用いて予測レスポンスＸＲＥＳ（Ｂ）を生成する。なお、予測レスポンスＸＲＥＳ（Ｂ）は任意の情報であればよい。次に、Ｓ４０３にて、端末装置Ａは、予測レスポンスＸＲＥＳ（Ｂ）を端末装置Ｂの公開鍵Ｋｐ（Ｂ）で暗号化することで、チャレンジデータＣＨＡＬ（Ｂ）を生成する。
【００２３】
次に、Ｓ４０４にて、端末装置Ａは、サーバ装置１００に認証データ登録リクエストを送信する。端末装置Ａは、認証データ登録リクエストに、少なくとも下記の情報を含める。
・端末装置Ａの識別子ＩＤ（Ａ）
・端末装置Ｂの識別子ＩＤ（Ｂ）
・端末装置ＡのグローバルアドレスＧＩＰ（Ａ）
・端末装置Ａのグローバルポート番号ＧＰＯＲＴ（Ａ）
・Ｓ４０３にて生成したチャレンジデータＣＨＡＬ（Ｂ）
・Ｓ４０２にて生成した予測レスポンスＸＲＥＳ（Ｂ）
【００２４】
次に、Ｓ４０５にて、サーバ装置１００は、Ｓ４０４にて端末装置Ａから受信したデータを、データテーブル３００に保存する。これにより、例えば、図４に示すレコード３１１が生成される。次に、Ｓ４０６にて、サーバ装置１００は、端末装置Ａへ認証データ登録レスポンスを送信する。サーバ装置１００は、認証データ登録レスポンスに、少なくともＳ４０５の実行結果を含める。
【００２５】
次に、Ｓ４０７にて、端末装置Ｂは、認証データ取得リクエスト（取得要求）をサーバ装置１００へ送信する。端末装置Ｂは、認証データ取得リクエストに、少なくとも端末装置Ｂの識別子ＩＤ（Ｂ）を含める。なお、端末装置Ｂは、シーケンス開始時から後述のＳ４０８の認証データ取得レスポンスを受信するまで、認証データ取得リクエストの送信を繰り返す（非図示）。次に、Ｓ４０８にて、サーバ装置１００は、認証データ取得レスポンスを端末装置Ｂへ送信する。サーバ装置１００は、認証データ取得レスポンスに、少なくとも端末装置Ａの識別子ＩＤ（Ａ）及びチャレンジデータＣＨＡＬ（Ｂ）を含める。サーバ装置１００は、Ｓ４０７にて受信した端末装置Ｂの識別子ＩＤ（Ｂ）を、データテーブル３００のフィールド３０２から検索し、一致したレコード３１１のフィールド３０１より、識別子ＩＤ（Ａ）を取得する。同様に、サーバ装置１００は、レコード３１１のフィールド３０５より、チャレンジデータＣＨＡＬ（Ｂ）を取得する。
【００２６】
次に、Ｓ４０９にて、端末装置Ｂは、Ｓ４０８にて受信したチャレンジデータＣＨＡＬ（Ｂ）を端末装置Ｂの秘密鍵Ｋｓ（Ｂ）で復号化することで、ユーザレスポンスＲＥＳ（Ｂ）を生成する。次に、Ｓ４１０にて、端末装置Ｂは、認証リクエストをサーバ装置１００へ送信する。端末装置Ｂは、認証リクエストに、少なくともＳ４０８にて受信した端末装置Ａの識別子ＩＤ（Ａ）及び端末装置Ｂの識別子ＩＤ（Ｂ）、Ｓ４０９にて生成したユーザレスポンスＲＥＳ（Ｂ）を含める。
【００２７】
次に、Ｓ４１１にて、サーバ装置１００は、端末装置Ｂの認証処理を行う。サーバ装置１００は、Ｓ４１０にて端末装置Ｂから受信したユーザレスポンスＲＥＳ（Ｂ）及びデータテーブル３００に保存されている予測レスポンスＸＲＥＳ（Ｂ）を比較することにより認証処理を行う。Ｓ４１０にて受信したＩＤ（Ａ）及びＩＤ（Ｂ）を主キーとして、データテーブル３００から一致するレコード３１１を取得し、フィールド３０６から予測レスポンスＸＲＥＳ（Ｂ）を取得する。サーバ装置１００は、ユーザレスポンスＲＥＳ（Ｂ）と、予測レスポンスＸＲＥＳ（Ｂ）と、が一致した場合に、端末装置Ｂの認証に成功したと判断し、一致しない場合に認証に失敗したと判断する。なお、予測レスポンスＸＲＥＳ（Ｂ）及びチャレンジデータＣＨＡＬ（Ｂ）は、それぞれ変換予測値及び認証パラメータの一例である。また、ユーザレスポンスＲＥＳ（Ｂ）は、変換値の一例である。
【００２８】
サーバ装置１００は、認証に成功すると、処理をＳ４１２へ進める。Ｓ４１２にて、サーバ装置１００は、認証レスポンスを端末装置Ｂへ送信する。サーバ装置１００は、認証レスポンスに、Ｓ４１１にて取得したレコード３１１の以下の情報を含める。
・フィールド３０１に登録されている端末装置Ａの識別子ＩＤ（Ａ）
・フィールド３０３に登録されているグローバルアドレスＧＩＰ（Ａ）
・フィールド３０４に登録されているグローバルポート番号ＧＰＯＲＴ（Ａ）
ここで、グローバルアドレスＧＩＰ（Ａ）及びグローバルポート番号ＧＰＯＲＴ（Ａ）は、端末装置Ａとの通信に必要な通信情報の一例である。
【００２９】
次に、Ｓ４１３にて、サーバ装置１００は、Ｓ４０４において記録したレコード３１１をデータテーブル３００から削除する。このように、サーバ装置１００は、認証処理の終了後にレコード３１１を削除する。以上の処理により、Ｐ２Ｐ通信を行う上で必要となる端末装置ＡのグローバルアドレスＧＩＰ（Ａ）及び端末装置Ａのグローバルポート番号ＧＰＯＲＴ（Ａ）の情報を、サーバ装置１００を経由して端末装置Ａから端末装置Ｂへ送信することができる。
【００３０】
続いて、Ｓ４１４〜Ｓ４２５の処理により、端末装置ＢのグローバルアドレスＧＩＰ（Ｂ）及び端末装置Ｂのグローバルポート番号ＧＰＯＲＴ（Ｂ）を、サーバ装置１００を経由して端末装置Ｂから端末装置Ａへ送信する。Ｓ４１４〜Ｓ４２５の処理は、端末装置Ａと端末装置Ｂの立場を入れ替え、Ｓ４０２〜Ｓ４１３と同様の処理を行うものである。Ｓ４２６にて、端末装置Ａ及び端末装置Ｂは、Ｓ４１２及びＳ４２４で取得した互いのグローバルアドレス及びグローバルポート番号に対してパケットを送受信することにより、Ｐ２Ｐ通信を行う。
【００３１】
次に、図４を参照しつつ説明したシーケンスを実現するためのサーバ装置１００及び端末装置１１０の詳細な処理について説明する。図５は、サーバ装置１００の処理を示すフローチャートである。図６は、端末装置１１０の処理を示すフローチャートである。
【００３２】
図５に示す処理は、サーバ装置１００において、中間サーバとしてのアプリケーションが起動することを契機に開始される。Ｓ５０１にて、制御部２０１は、サーバ装置１００の各部の状態から処理を終了するか判定する。例えば、制御部２０１は、操作部２０５を介してアプリケーション停止操作が行われた場合には処理を終了する。制御部２０１は、処理を継続する場合（Ｓ５０１でＮＯ）、処理をＳ５０２へ進める。Ｓ５０２にて、制御部２０１は、通信部２０６を介して端末装置１１０から認証データ登録リクエストを受信したか判定する。制御部２０１は、認証データ登録リクエストを受信したと判定した場合は（Ｓ５０２でＹＥＳ）、処理をＳ５０３へ進める。制御部２０１は、認証データ登録リクエストを受信していないと判定した場合は（Ｓ５０２でＮＯ）、処理をＳ５０７へ進める。
【００３３】
Ｓ５０３にて、制御部２０１は、Ｓ５０２にて受信した認証データ登録リクエストに含まれる下記情報を、データテーブル３００に保存する。Ｓ５０３の処理は、図４のＳ４０５及びＳ４１７の処理に相当する。
・認証端末識別子
・被認証端末識別子
・グローバルアドレス
・グローバルポート番号
・チャレンジデータ
・予測レスポンス
【００３４】
次に、Ｓ５０４にて、制御部２０１は、Ｓ５０３にてデータテーブル３００へのデータ保存が成功した場合（Ｓ５０４でＹＥＳ）、処理をＳ５０５へ進める。制御部２０１は、Ｓ５０３にてデータテーブル３００へのデータ保存が失敗した場合（Ｓ５０４でＮＯ）、処理をＳ５０６へ進める。Ｓ５０５にて、制御部２０１は、通信部２０６を介して認証データ登録レスポンスを端末装置１１０へ送信し、その後処理をＳ５０１へ進める。Ｓ５０５の処理は、図４のＳ４０６及びＳ４１６の処理に相当する。Ｓ５０６にて、制御部２０１は、通信部２０６を介して認証データ登録エラーを端末装置１１０へ送信し、その後処理をＳ５０１へ進める。
【００３５】
Ｓ５０７にて、制御部２０１は、通信部２０６を介して、端末装置１１０から認証データ取得リクエストを受信したか判定する。制御部２０１は、認証データ取得リクエストを受信したと判定した場合は（Ｓ５０７でＹＥＳ）、処理をＳ５０８へ進める。制御部２０１は、認証データ取得リクエストを受信していないと判定した場合は（Ｓ５０７でＮＯ）、処理をＳ５１１へ進める。Ｓ５０８にて、制御部２０１は、Ｓ５０７にて受信した被認証端末識別子が、データテーブル３００のフィールド３０２に登録されているか、検索により判定する。制御部２０１は、登録されていると判定した場合は（Ｓ５０８でＹＥＳ）、処理をＳ５０９へ進める。制御部２０１は、登録されていないと判定した場合は（Ｓ５０８でＮＯ）、処理をＳ５１０へ進める。
【００３６】
Ｓ５０９にて、制御部２０１は、通信部２０６を介して端末装置１１０へ認証データ取得レスポンスを送信し、その後処理をＳ５０１へ進める。制御部２０１は、Ｓ５０８の検索により一致したレコードから、フィールド３０５に保存されているチャレンジデータを取得し、これを認証データ取得レスポンスに含める。Ｓ５０９の処理は、図４のＳ４０８及びＳ４２０の処理に相当する。Ｓ５１０にて、制御部２０１は、通信部２０６を介して認証データ取得エラーを端末装置１１０へ送信し、その後処理をＳ５０１へ進める。
【００３７】
Ｓ５１１にて、制御部２０１は、通信部２０６を介して端末装置１１０から認証リクエストを受信したか判定する。制御部２０１は、認証リクエストを受信したと判定した場合は（Ｓ５１１でＹＥＳ）、処理をＳ５１２へ進める。制御部２０１は、認証リクエストを受信していないと判定した場合は（Ｓ５１１でＮＯ）、処理をＳ５０１へ進める。Ｓ５１２にて、制御部２０１は、認証リクエストの送信元である被認証端末を認証する。制御部２０１は、Ｓ５１１にて受信した認証端末識別子及び被認証端末識別子を主キーとしてデータテーブル３００に登録されているレコードを取得する。制御部２０１は、取得したレコードの予測レスポンスとＳ５１２にて受信したユーザレスポンスが一致した場合、すなわち認証に成功した場合には（Ｓ５１２でＹＥＳ）、処理をＳ５１３へ進める。制御部２０１は、その他の場合には（Ｓ５１２でＮＯ）、処理をＳ５１５へ進める。Ｓ５１２の処理は、図４のＳ４１１及びＳ４２３の処理に相当する。
【００３８】
Ｓ５１３にて、制御部２０１は、通信部２０６を介して認証レスポンスを、認証リクエストの送信元の端末装置１１０へ送信する。制御部２０１は、認証レスポンスに、Ｓ５１２にて取得したレコードの以下の情報を含める。Ｓ５１３の処理は、図４のＳ４１２及びＳ４２４の処理に相当する。
・フィールド３０１に保存されている認証端末識別子
・フィールド３０３に保存されているグローバルアドレス
・フィールド３０４に保存されているグローバルポート番号
【００３９】
次に、Ｓ５１４にて、制御部２０１は、Ｓ５１２にて取得したレコードを、データテーブル３００から削除し、その後処理をＳ５０１へ進める。Ｓ５１４の処理は、図４のＳ４１３及びＳ４２５の処理に相当する。Ｓ５１５にて、制御部２０１は、通信部２０６を介して認証エラーを端末装置１１０へ送信し、その後処理をＳ５０１へ進める。
【００４０】
続いて、端末装置１１０の処理について説明する。図６に示す処理は、端末装置１１０において、Ｐ２Ｐ通信の為のアプリケーションが起動することを契機に開始される。また、前述の通り、図５に示す処理の開始時点において、端末装置１１０は通信相手の端末装置の識別子及び自装置の識別子、通信相手の公開鍵、自装置のグローバルアドレス、自装置のグローバルポート番号を取得済みであるものとする。
【００４１】
Ｓ６０１にて、制御部２１１は、通信部２１７を介して認証データ取得リクエストをサーバ装置１００へ送信する。制御部２１１は、認証データ取得リクエストに、少なくとも自装置の識別子（被認証端末識別子）を含める。Ｓ６０１の処理は、図４のＳ４０７及びＳ４１９の処理に相当する。次に、Ｓ６０２にて、制御部２１１は、通信部２１７を介してサーバ装置１００から認証データ取得レスポンスを受信したか判定する。制御部２１１は、認証データ取得レスポンスを受信したと判定した場合は（Ｓ６０２でＹＥＳ）、処理をＳ６０３へ進める。制御部２１１は、認証データ取得レスポンスを受信していないと判定した場合は（Ｓ６０２でＮＯ）、処理をＳ６０９へ進める。
【００４２】
Ｓ６０３にて、制御部２１１は、Ｓ６０２にて受信したチャレンジデータを自身の秘密鍵を使って復号化することで、ユーザレスポンスを生成する。Ｓ６０３の処理は、図４のＳ４２１の処理に相当する。次に、Ｓ６０４にて、制御部２１１は、通信部２１７を介して認証リクエストをサーバ装置１００へ送信する。制御部２１１は、認証リクエストにＳ６０３にて生成したユーザレスポンスを含める。Ｓ６０４の処理は、図４のＳ４１０及びＳ４２２の処理に相当する。
【００４３】
次に、Ｓ６０５にて、制御部２１１は、通信部２１７を介してサーバ装置１００から認証レスポンスを受信したか判定する。制御部２１１は、認証レスポンスを受信したと判定した場合は（Ｓ６０５でＹＥＳ）、処理をＳ６０６へ進める。制御部２１１は、認証レスポンスを受信していないと判定した場合は（Ｓ６０５でＮＯ）、処理をＳ６０７へ進める。Ｓ６０６にて、制御部２１１は、サーバ装置１００に自装置の認証データが登録済みであるか否かを判定する。制御部２１１は、後述のＳ６１３において認証データ登録レスポンスを受信済みである場合に、認証データ登録済みと判定する。制御部２１１は、認証データ登録済みと判定した場合は（Ｓ６０６でＹＥＳ）、処理をＳ６１９へ進める。制御部２１１は、認証データ未登録と判定した場合は（Ｓ６０６でＮＯ）、処理をＳ６１０へ進める。
【００４４】
Ｓ６０７にて、制御部２１１は、通信部２１７を介してサーバ装置１００から認証エラーを受信したか判定する。制御部２１１は、認証エラーを受信したと判定した場合は（Ｓ６０７でＹＥＳ）、処理をＳ６０８へ進める。制御部２１１は、認証エラーを受信していないと判定した場合は（Ｓ６０７でＮＯ）、処理をＳ６０５へ進める。Ｓ６０８にて、制御部２１１は、表示部２１４を介して認証エラーを通知し、その後処理を終了する。
【００４５】
Ｓ６０９にて、制御部２１１は、操作部２１５を介してＰ２Ｐ通信開始操作を受け付けたか判定する。制御部２１１は、Ｐ２Ｐ通信開始操作を受け付けたと判定した場合は（Ｓ６０９でＹＥＳ）、処理をＳ６１０へ進める。制御部２１１は、Ｐ２Ｐ通信開始操作を受け付けていないと判定した場合は（Ｓ６０９でＮＯ）、処理をＳ６０１へ進める。Ｓ６１０にて、制御部２１１は、乱数を用いて予測レスポンスを生成する。Ｓ６１０の処理は、図４のＳ４０２及びＳ４１４の処理に相当する。次に、Ｓ６１１にて、制御部２１１は、Ｓ６１０にて生成した予測レスポンスを通信相手の公開鍵を使って暗号化することで、チャレンジデータを生成する。Ｓ６１１の処理は、図４のＳ４０３及びＳ４１５の処理に相当する。
【００４６】
次に、Ｓ６１２にて、制御部２１１は、通信部２１７を介して認証データ登録リクエストをサーバ装置１００へ送信する。制御部２１１は、認証データ登録リクエストに、少なくとも以下の情報を含める。Ｓ６１２の処理は、図４のＳ４０４及びＳ４１６の処理に相当する。
・自装置の識別子（認証端末識別子）
・相手装置の識別子（被認証端末識別子）
・自装置のグローバルアドレス
・自装置のグローバルポート番号
・Ｓ６１１にて生成したチャレンジデータ
・Ｓ６１０にて生成した予測レスポンス
【００４７】
Ｓ６１３にて、制御部２１１は、通信部２１７を介して認証データ登録レスポンスを受信したか判定する。制御部２１１は、認証データ登録レスポンスを受信したと判定した場合は（Ｓ６１３でＹＥＳ）、処理をＳ６１４へ進める。制御部２１１は、認証データ登録レスポンスを受信していないと判定した場合は（Ｓ６１３でＮＯ）、処理をＳ６１５へ進める。Ｓ６１３の処理は、Ｓ４０６及びＳ４１８の処理に相当する。Ｓ６１４にて、制御部２１１は、サーバ装置１００において自装置の認証が完了したか否かを判定する。制御部２１１は、Ｓ６０５の認証レスポンスを受信している場合に、認証が完了したと判定する。制御部２１１は、認証が完了したと判定した場合は（Ｓ６１４でＹＥＳ）、処理をＳ６１９へ進める。制御部２１１は、認証が完了していないと判定した場合は（Ｓ６１４でＮＯ）、処理をＳ６０１へ進める。
【００４８】
Ｓ６１５にて、制御部２１１は、通信部２１７を介してサーバ装置１００から認証データ登録エラーを受信したか判定する。制御部２１１は、認証データ登録エラーを受信したと判定した場合は（Ｓ６１５でＹＥＳ）、処理をＳ６１６へ進める。制御部２１１は、認証データ登録エラーを受信していないと判定した場合は（Ｓ６１５でＮＯ）、処理をＳ６１３へ進める。Ｓ６１６にて、制御部２１１は、表示部２１４を介して認証データ登録エラーを通知し、その後処理を終了する。Ｓ６１９にて、制御部２１１は、通信相手のグローバルアドレス及び通信相手のグローバルポート番号を用いて、通信部２１７を介して、通信相手とパケットを送受信することにより、Ｐ２Ｐ通信を行い、その後処理を終了する。Ｓ６１９の処理は、図４のＳ４２６の処理に相当する。
【００４９】
以上のように、第１の実施形態に係る情報処理システムにおいては、サーバ装置１００は、端末装置１１０からのアクセスを待ち、アクセスが来た際にそれに応じた処理を行う。これにより、一般家庭のＰＣやスマートフォン等のアドレスが固定されていない端末装置１１０に認証サーバとしての機能を実行させることができる。
【００５０】
従来、端末装置においては、アドレスが固定されておらず、またＤＮＳサーバの管理対象でないため、アドレス解決ができず認証サーバの役割を行うことは困難であった。これに対し、本実施形態に係る情報処理システムにおいては、端末装置１１０がサーバ装置１００へのアクセス時に、自装置の認証データをサーバ装置１００に送信することとした。そして、サーバ装置１００は、この認証データを用いて、通信相手の端末装置１１０の認証を行う。さらに、サーバ装置１００は、認証処理を終了した場合には、認証データを削除することとした。これにより、認証サーバを不要とすることができる。さらに、認証データは各端末装置にて管理されているため、認証サーバが悪意のある者に攻撃されて認証データが大量に流出するのを防ぐことができる。すなわち、安全に認証を行うことができる。
【００５１】
（第２の実施形態）
図７は、第２の実施形態に係る情報処理システムにおいては、サーバ装置１００は、通信先の端末装置の認証だけでなく、通信元の端末装置の認証も行う。なお、以下においては、第１の実施形態と異なる点について説明する。図７は、第２の実施形態に係る情報処理システムによる処理を示すシーケンス図である。図７を参照しつつ、端末装置Ａと端末装置ＢがＰ２Ｐ（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ）通信を行うにあたって必要となるグローバルアドレス及びグローバルポート番号の情報を、サーバ装置１００を利用して交換する場合について説明する。なお、図７に示す端末装置Ａ及び端末装置Ｂの処理は、それぞれ端末装置Ａ及び端末装置Ｂの制御部２１１が行うものとする。また、図４に示すサーバ装置１００の処理は、サーバ装置１００の制御部２０１が行うものとする。
【００５２】
図７に示す処理の前提条件は、図４を参照しつつ説明した第１の実施形態に係る処理に係る前提条件と同様である。また、Ｓ７０１及びＳ７０２の処理は、それぞれＳ４０１及びＳ４０２の処理と同様である。Ｓ７０２の処理の後、Ｓ７０３にて、端末装置Ａは、Ｓ７０２で生成した予測レスポンスＸＲＥＳ（Ｂ）を端末装置Ｂの公開鍵Ｋｐ（Ｂ）で暗号化する。端末装置Ａは、暗号化後のデータを端末装置Ａの秘密鍵Ｋｓ（Ａ）でさらに暗号化することでチャレンジデータＣＨＡＬ（Ｂ）を生成する。続くＳ７０４からＳ７０８の処理は、図４のＳ４０４からＳ４０８の処理と同じである。
【００５３】
Ｓ７０８の処理の後、Ｓ７０９にて、端末装置Ｂは、Ｓ７０８で受信したチャレンジデータＣＨＡＬ（Ｂ）を端末装置Ａの公開鍵Ｋｐ（Ａ）で復号化する。端末装置Ｂはさらに、復号化後のデータを端末装置Ｂの秘密鍵Ｋｓ（Ｂ）でさらに復号化することで、ユーザレスポンスＲＥＳ（Ｂ）を生成する。続くＳ７１０の処理は、図４のＳ４１４の処理と同じである。Ｓ７１０の処理の後、Ｓ７１１にて、端末装置Ｂは、Ｓ７１０で生成した予測レスポンスＸＲＥＳ（Ａ）を端末装置Ａの公開鍵Ｋｐ（Ａ）で暗号化する。端末装置Ｂはさらに、暗号化後のデータを端末装置Ｂの秘密鍵Ｋｓ（Ｂ）でさらに暗号化することで、チャレンジデータＣＨＡＬ（Ａ）を生成する。
【００５４】
Ｓ７１２にて、端末装置Ｂは、認証・登録リクエストを、サーバ装置１００へ送信する。送信データには、少なくとも以下の情報を含める。
・端末装置Ａの識別子ＩＤ（Ａ）
・端末装置Ｂの識別子ＩＤ（Ｂ）
・Ｓ７０９にて生成したユーザレスポンスＲＥＳ（Ｂ）
・端末装置ＢのグローバルアドレスＧＩＰ（Ｂ）
・端末装置Ｂのグローバルポート番号ＧＰＯＲＴ（Ｂ）
・Ｓ７１１にて生成したチャレンジデータＣＨＡＬ（Ａ）
・Ｓ７１０にて生成した予測レスポンスＸＲＥＳ（Ａ）
【００５５】
次に、Ｓ７１３にて、サーバ装置１００は、Ｓ７１２にて受信した識別子ＩＤ（Ａ）及び識別子ＩＤ（Ｂ）を主キーとして、記憶部２０２で管理されているデータテーブル３００からレコード３１１を取得する。続いて、サーバ装置１００は、取得したレコード３１１のフィールド３０６に登録されている予測レスポンスＸＲＥＳ（Ｂ）と、Ｓ７１２にて受信したユーザレスポンスＲＥＳ（Ｂ）とを比較する。
【００５６】
次に、Ｓ７１４にて、サーバ装置１００は、Ｓ７１３により比較した結果が一致した場合は、Ｓ７１２で取得した以下のデータをデータテーブル３００に保存する。
・識別子ＩＤ（Ｂ）
・識別子ＩＤ（Ａ）
・端末装置ＢのグローバルアドレスＧＩＰ（Ｂ）
・端末装置Ｂのグローバルポート番号ＧＰＯＲＴ（Ｂ）
・チャレンジデータＣＨＡＬ（Ａ）
・予測レスポンスＸＲＥＳ（Ａ）
【００５７】
次に、Ｓ７１５にて、サーバ装置１００は、認証・登録レスポンスを端末装置Ｂへ送信する。Ｓ７１３により比較した結果が一致した場合は、サーバ装置１００は、送信データに、Ｓ７１４にて取得したデータテーブル３００のレコード３１１に登録されている以下のデータを含める。
・端末装置Ａの識別子ＩＤ（Ａ）
・端末装置ＡのグローバルアドレスＩＰ（Ａ）
・端末装置Ａのグローバルポート番号ＧＰＯＲＴ（Ａ）
・Ｓ７１４の実行結果
【００５８】
Ｓ７１６にて、サーバ装置１００は、Ｓ７１３により比較した結果が一致した場合は、Ｓ７１３で取得したデータテーブル３００のレコード３１１を、データテーブル３００から削除する。続くＳ７１７及びＳ７１８の処理は、図４のＳ４１９及びＳ４２０の処理と同じである。次に、Ｓ７１９にて、端末装置Ａは、Ｓ７１８で受信したチャレンジデータＣＨＡＬ（Ａ）を端末装置Ｂの公開鍵Ｋｐ（Ｂ）で復号化する。端末装置Ａは、復号化したデータを端末装置Ａの秘密鍵Ｋｓ（Ａ）でさらに復号化することで、ユーザレスポンスＲＥＳ（Ａ）を生成する。続くＳ７２０からＳ７２４の処理は、図４のＳ４２２からＳ４２６の処理と同じである。
【００５９】
次に、図７を参照しつつ説明したシーケンスを実現するためのサーバ装置１００及び端末装置１１０の詳細な処理について説明する。図８は、サーバ装置１００の処理を示すフローチャートである。なお、図８において、第１の実施形態において図４を参照しつつ説明した各処理と同じ処理には、同じ符号を付し、説明を省略する。
【００６０】
図８において、Ｓ５１１にて、制御部２０１は、認証リクエストを受信していないと判定した場合は（Ｓ５１１でＮＯ）、処理をＳ８０１へ進める。Ｓ８０１にて、制御部２０１は、通信部２０６を介して端末装置１１０から認証・登録リクエストを受信したか判定する。制御部２０１は、認証・登録リクエストを受信したと判定した場合は（Ｓ８０１でＹＥＳ）、処理をＳ８０２へ進める。制御部２０１は、認証・登録リクエストを受信していないと判定した場合は（Ｓ８０１でＮＯ）、処理をＳ５０１へ進める。
【００６１】
Ｓ８０２にて、制御部２０１は、認証・登録リクエストの送信元である被認証端末を認証する。制御部２０１は、Ｓ８０５にて受信した認証端末識別子及び被認証端末識別子を主キーとしてデータテーブル３００に登録されているレコードを取得する。制御部２０１は、取得したレコードの予測レスポンスとＳ８０５にて受信したユーザレスポンスが一致した場合（Ｓ８０２でＹＥＳ）、処理をＳ８０３へ進める。制御部２０１は、その他の場合には（Ｓ８０２でＮＯ）、処理をＳ８０８へ進める。Ｓ８０２の処理は、図７のＳ７１３の処理に相当する。
【００６２】
Ｓ８０３にて、制御部２０１は、Ｓ８０１にて受信した認証・登録リクエストに含まれる情報をデータテーブル３００に保存する。認証・登録リクエストには、以下の情報が含まれている。Ｓ８０３の処理は、図７のＳ７１４の処理に相当する。
・認証端末識別子
・被認証端末識別子
・グローバルアドレス
・グローバルポート番号
・チャレンジデータ
・予測レスポンス
【００６３】
次に、Ｓ８０４にて、制御部２０１は、Ｓ８０３にてデータテーブル３００へのデータ保存に成功した場合（Ｓ８０４でＹＥＳ）、処理をＳ８０５へ進める。制御部２０１は、データ保存に失敗した場合（Ｓ８０４でＮＯ）、処理をＳ８０６へ進める。Ｓ８０５にて、制御部２０１は、通信部２０６を介して認証・登録レスポンスを端末装置１１０へ送信し、その後処理をＳ８０７へ進める。制御部２０１は、認証・登録レスポンスに、Ｓ８０６にて、取得したレコードの以下の情報を含める。本処理は、図７のＳ７１５の処理に相応する。
・フィールド３０１に保存されている認証端末識別子
・フィールド３０３に保存されているグローバルアドレス
・フィールド３０４に保存されているグローバルポート番号
・Ｓ８０７の実行結果（データ保存成功）
【００６４】
Ｓ８０６にて、制御部２０１は、通信部２０６を介して認証・登録エラーを端末装置１１０へ送信し、その後処理をＳ８０７へ進める。Ｓ８０７にて、制御部２０１は、Ｓ８０２にて取得したレコードを、データテーブル３００から削除する。Ｓ８０７の処理は、図７のＳ７１６の処理に相当する。また、Ｓ８０８にて、制御部２０１は、通信部２０６を介して認証・登録エラーを端末装置１１０へ送信し、その後処理をＳ５０１へ進める。
【００６５】
図９は、端末装置１１０の処理を示すフローチャートである。Ｓ９０１にて、制御部２１１は、通信部２１７を介して認証データ取得リクエストをサーバ装置１００へ送信する。次に、Ｓ９０２にて、制御部２１１は、通信部２１７を介してサーバ装置１００から認証データ取得レスポンスを受信したか判定する。制御部２１１は、認証データ取得レスポンスを受信したと判定した場合は（Ｓ９０２でＹＥＳ）、処理をＳ９０３へ進める。制御部２１１は、認証データ取得レスポンスを受信していないと判定した場合は（Ｓ９０２でＮＯ）、処理をＳ９１６へ進める。Ｓ９０１及びＳ９０２の処理は、それぞれ第１の実施形態において図６を参照しつつ説明したＳ６０１及びＳ６０２の処理と同様である。
【００６６】
Ｓ９０３において、制御部２１１は、Ｓ６０１にて受信したチャレンジデータを通信相手の公開鍵と、自装置の秘密鍵を使って復号化することで、ユーザレスポンスを生成する。Ｓ９０１の処理は、図７を参照しつつ説明したＳ７０９及びＳ７１９の処理に相当する。次に、Ｓ９０４において、制御部２１１は、後述のＳ９１９の認証データ登録レスポンス受信処理が完了済みか判定する。制御部２１１は、サーバ装置１００に自装置の認証データが登録済みであるか否かを判定する。制御部２１１は、後述のＳ９２０において、認証データ登録レスポンスを受信済みである場合に、認証データ登録済みと判定する。制御部２１１は、認証データ登録済みと判定した場合は（Ｓ９０４でＹＥＳ）、処理をＳ９０５へ進める。制御部２１１は、認証データ未登録と判定した場合は（ＳＳ９０４でＮＯ）、処理をＳ９１０へ進める。
【００６７】
Ｓ９０５にて、制御部２１１は、通信部２１７を介して認証リクエストをサーバ装置１００へ送信する。制御部２１１は、認証リクエストにＳ９０３にて生成したユーザレスポンスを含める。Ｓ９０５の処理は、図７のＳ７２０の処理に相当する。次に、Ｓ９０６にて、制御部２１１は、通信部２１７を介してサーバ装置１００から認証レスポンスを受信したか判定する。制御部２１１は、認証レスポンスを受信したと判定した場合は（Ｓ９０６でＹＥＳ）、処理をＳ９０７へ進める。制御部２１１は、認証レスポンスを受信していないと判定した場合は（Ｓ９０６でＮＯ）、処理をＳ９０８へ進める。Ｓ９０７の処理は、図６のＳ６１９の処理と同様である。
【００６８】
Ｓ９０８にて、制御部２１１は、通信部２１７を介してサーバ装置１００から認証エラーを受信したか判定する。制御部２１１は、認証エラーを受信したと判定した場合は（Ｓ９０８でＹＥＳ）、処理をＳ９０９へ進める。制御部２１１は、認証エラーを受信していないと判定した場合は（Ｓ９０８でＮＯ）、処理をＳ９０６へ進める。Ｓ９０９にて、制御部２１１は、表示部２１４を介して認証エラーを通知し、その後処理を終了する。
【００６９】
Ｓ９１０にて、制御部２１１は、乱数を用いて予測レスポンスを生成する。Ｓ９１０の処理は、図７のＳ７０２及びＳ７１０の処理に相当する。次に、Ｓ９１１にて、制御部２１１は、Ｓ９１０にて生成した予測レスポンスを通信相手の公開鍵及び自装置の秘密鍵を使って暗号化することで、チャレンジデータを生成する。Ｓ９１１の処理は、図７のＳ７０３及びＳ７１１の処理に相当する。
【００７０】
次に、Ｓ９１２にて、制御部２１１は、通信部２１７を介して認証・登録リクエストをサーバ装置１００へ送信する。制御部２１１は、認証・登録リクエストに、少なくとも以下の情報を含める。なお、Ｓ９１２の処理は、図７のＳ７１２の処理に相当する。
・相手装置の識別子（認証時には認証端末識別子、登録時には被認証端末識別子）
・自装置の識別子（認証時には被認証端末識別子、登録時には認証端末識別子）
・ＳＢ９０２にて生成したユーザレスポンス
・自装置のグローバルアドレス
・自装置のグローバルポート番号
・Ｓ９１１にて生成したチャレンジデータ
・Ｓ９１０にて生成した予測レスポンス
【００７１】
次に、Ｓ９１３にて、制御部２１１は、通信部２１７を介して認証・登録レスポンスを受信したか判定する。制御部２１１は、認証・登録レスポンスを受信したと判定した場合は（Ｓ９１３でＹＥＳ）、処理をＳ９０７へ進める。制御部２１１は、認証・登録レスポンスを受信していないと判定した場合は（Ｓ９１３でＮＯ）、処理をＳ９１４へ進める。Ｓ９１４にて、制御部２１１は、通信部２１７を介してサーバ装置１００から認証・登録エラーを受信したか判定する。制御部２１１は、認証・登録エラーを受信したと判定した場合は（Ｓ９１４でＹＥＳ）、処理をＳ９１５へ進める。制御部２１１は、認証・登録エラーを受信していないと判定した場合は（Ｓ９１４でＮＯ）、処理をＳ９１３へ進める。Ｓ９１５にて、制御部２１１は、表示部２１４を介して認証・登録エラーを通知し、その後処理を終了する。
【００７２】
Ｓ９１６にて、制御部２１１は、操作部２１５を介してＰ２Ｐ通信開始操作を受け付けたか判定する。制御部２１１は、Ｐ２Ｐ通信開始操作を受け付けたと判定した場合は（Ｓ９１６でＹＥＳ）、処理をＳ９１７へ進める。制御部２１１は、Ｐ２Ｐ通信開始操作を受け付けていないと判定した場合は（Ｓ９１６でＮＯ）、処理をＳ９０１へ進める。Ｓ９１７及びＳ９１８の処理は、それぞれＳ９１０及びＳ９１１の処理と同様である。
【００７３】
Ｓ９１８の処理の後、Ｓ９１９にて、制御部２１１は、通信部２１７を介して認証データ登録リクエストをサーバ装置１００へ送信する。制御部２１１は、認証データ登録リクエストに、少なくとも以下の情報を含める。なお、Ｓ９１９の処理は、図７のＳ７０４の処理に相当する。
・自装置の識別子（認証端末識別子）
・相手装置の識別子（被認証端末識別子）
・自装置のグローバルアドレス
・自装置のグローバルポート番号
・Ｓ９１８にて生成したチャレンジデータ
・Ｓ９１７にて生成した予測レスポンス
【００７４】
Ｓ９２０にて、制御部２１１は、通信部２１７を介して認証データ登録レスポンスを受信したか判定する。制御部２１１は、認証データ登録レスポンスを受信したと判定した場合は（Ｓ９２０でＹＥＳ）、処理をＳ９０１へ進める。制御部２１１は、認証データ登録レスポンスを受信していないと判定した場合は（Ｓ９２０でＮＯ）、処理をＳ９２１へ進める。Ｓ９２１にて、制御部２１１は、通信部２１７を介してサーバ装置１００から認証データ登録エラーを受信したか判定する。制御部２１１は、認証データ登録エラーを受信したと判定した場合は（Ｓ９２１でＹＥＳ）、処理をＳ９２２へ進める。制御部２１１は、認証データ登録エラーを受信していないと判定した場合は（Ｓ９２１でＮＯ）、処理をＳ９２０へ進める。Ｓ９２２にて、制御部２１１は、表示部２１４を介して認証データ登録エラーを通知し、その後処理を終了する。なお、第２の実施形態に係る情報処理システムの構成及び処理は、第１の実施形態に係る情報処理システムの構成及び処理と同様である。
【００７５】
以上のように、第２の実施形態においては、端末装置１１０は、通信相手の公開鍵と自装置の秘密鍵を使ってチャレンジデータを二重に暗号化する。これにより、サーバ装置１００は、チャレンジデータや予測レスポンスを発行している端末装置の身元保証も同時に行うことができる。さらに、端末装置１１０は、ユーザレスポンス送信時に、グローバルアドレス及びグローバルポート番号をユーザレスポンスと共に送信するので、全体の処理のステップ数を減らすことができる。
【００７６】
なお、本実施形態においては、端末装置を認証するための認証情報と、この認証情報に対応する情報として、それぞれ端末装置の秘密鍵と公開鍵とを用いる場合を例に説明したが、認証情報及び認証情報に対応する情報は、実施形態に限定されるものではない。例えば、共通鍵やハッシュ関数を用いてもよい。
【００７７】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００７８】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７９】
１００  サーバ装置
１１０  端末装置
【図１】
2018067832.tif 000003
【図２】
2018067832.tif 000004
【図３】
2018067832.tif 000005
【図４】
2018067832.tif 000006
【図５】
2018067832.tif 000007
【図６】
2018067832.tif 000008
【図７】
2018067832.tif 000009
【図８】
2018067832.tif 000010
【図９】
2018067832.tif 000011