以下に添付図面を参照しながら、本開示の好適な実施形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.第1の実施形態
1.1.無線通信システムの概略
1.2.ユーザ端末の構成
1.3.持ち主情報の配布
1.4.通信シーケンス(識別情報を暗号化しない方法)
1.5.通信シーケンス(識別情報を暗号化する方法)
1.6.通信シーケンス(相手の鍵を利用する方法)
1.7.まとめ
2.第2の実施形態
2.1.無線通信システムの概略
2.2.通信シーケンス(識別情報を暗号化しない方法)
2.3.通信シーケンス(識別情報を暗号化する方法)
2.4.通信シーケンス(相手の鍵を利用する方法)
2.5.まとめ
3.第3の実施形態
3.1.無線通信システムの概略
3.2.ユーザ端末の構成
3.3.まとめ
<1.第1の実施形態>
[1.1.無線通信システムの概略]
まず、図1を参照して、本開示の第1の実施形態に係る通信システムの概略について説明する。図1は、本実施形態に係る無線通信システムの概略的な構成について説明するための図である。
図1に示すように、本実施形態に係る無線通信システムは、サーバ50と、ネットワークサービスn0と、ユーザ端末10a及び10bとを含む。ユーザ端末10a及び10bは、それぞれスマートフォンのような無線通信が可能な端末(情報処理装置)である。ユーザ端末10aは、ユーザuaが操作する端末をであり、ユーザ端末10bは、ユーザubが操作する端末をである。なお、以降では、ユーザ端末10a及び10bを特に区別しない場合には、単に「ユーザ端末10」と記載する場合がある。
また、ネットワークサービスn0は、サーバ50がインターネットのようなネットワーク上で提供するネットワークサービスであり、具体的な一例としてソーシャルネットワーキングサービス(SNS:Social Networking Service)が挙げられる。
本実施形態に係る無線通信システムは、ユーザ端末10aとユーザ端末10bとの間での接続(相互接続)n10(例えば、アドホックネットワーク)を確立する際の通信時のセキュリティを確保するために、接続先が信頼できる相手であるかを確認する手段を提供する。そこで、以降では、アドホックネットワークのようなユーザ端末10間の通信(相互接続)について簡単に説明したうえで、課題を整理し、その後、本実施形態に係る無線通信システムについて説明することとする。
まず、図2を参照しながら、アドホックネットワークの概要について説明する。図2は、実施形態に係るユーザ端末10間の通信について説明するための図である。アドホックネットワークは、基地局、及び、基地局間をつなぐ固定網のような基盤設備に依存することなく、近接するユーザ端末10間で自律的にルーティングを行うことにより、ユーザ端末10間での通信を可能とする技術である。
アドホックネットワークでは、例えば、ユーザ端末10aとユーザ端末10bとが通信を行う際に、ユーザ端末10a及び10bが直接接続されていなくても、アドホックネットワーク内における他のユーザ端末10を中継して通信(即ち、マルチホップ通信)を行うことが可能である。例えば、図2の例に示すように、ユーザ端末10b及び10dが直接通信できる位置関係にない場合(例えば、電波が直接届かない場合)においても、ユーザ端末10b及び10dの間に介在するユーザ端末10aまたは10cが中継器の役割を果たすことが可能である。
各ユーザ端末10は、所定の手続き(処理)を実行することで、既に構築されているアドホックネットワークに適宜参加することが可能である。例えば、図2に示す例において、ユーザ端末10a〜10dがアドホックネットワークを構築しているとする。このとき、他のユーザ端末10e〜10hは、図2に示すように、ユーザ端末10a〜10dにより形成されたアドホックネットワークに参加することが可能である。このように既に構築されているアドホックネットワークに対して、新たにユーザ端末10が参加することで、当該アドホックネットワークを介して通信可能な範囲が、新たに参加したユーザ端末10が通信可能な範囲の分だけ拡張される。具体的な一例として、ユーザ端末10fは、ユーザ端末10a〜10dにより形成されたアドホックネットワークに直接アクセスすることができないものとする。このような場合においても、例えば、ユーザ端末10eまたは10gがアドホックネットワークに参加することで、ユーザ端末10fは、ユーザ端末10eまたは10gを介してアドホックネットワークにアクセスすることが可能となる。
このように、アドホックネットワークでは、例えば、ユーザ端末10b及び10dが通信を行う場合においても、ユーザ端末10b及び10dが直接通信するとは限らない。そのため、アドホックネットワーク上でセキュアに通信を行う場合には、接続先が信頼できる相手であるかを確認する必要がある。しかしながら、接続先が信頼できる相手であるかを確認するための手順が煩雑であるため、通信時にセキュリティを確保するための手順を簡略化してほしいとの要望がある。そこで、本実施形態では、簡便かつ安全に通信時のセキュリティを確保することが可能な無線通信システムを提案する。
ここで、再度図1を参照する。本実施形態に係る無線通信システムでは、各ユーザ端末10は、接続先のユーザ端末10が信頼できる相手か否かを、自身と接続先のユーザ端末10とがネットワークサービスn0上で関連付けられているか否かにより判断する。
具体的には、例えば、ソーシャルネットワーキングのようなネットワークサービスn0では、各ユーザにより指定された各ユーザ間が友人関係にあるか否かを示す情報に基づき、各ユーザのアカウント(以降では、「ユーザID」と呼ぶ)を関連付けている。この、各ユーザID間の関連付けをソーシャルグラフと呼ぶ場合がある。このソーシャルグラフを活用することで、例えば、ユーザ端末10aは、ユーザuaとユーザubとの関係c11が、ネットワークサービスn0上で友人関係にある場合(即ち、関連付けられている場合)に、ユーザubがネットワークサービスn0上に登録した情報を取得することが可能である。
そこで、本実施形態に係る無線通信システムでは、例えば、ユーザua及びubが、ネットワークサービスn0上で関連付けられている場合に、当該ユーザua及びubのユーザ端末10a及び10bは、互いを信頼できる相手と判断する。そして、互いが信頼できる相手の場合には、ユーザ端末10a及び10bは、相互に通信を行う際に暗号化するための暗号鍵を、ネットワークサービスn0上のソーシャルグラフを介して互いに送付する。
具体的には、ユーザ端末10a及び10bは、それぞれが自身と通信を行う際にデータを暗号化する暗号鍵と復号する復号鍵を生成(または取得)し、暗号鍵をネットワークサービスn0に管理させる。例えば、図1の例では、ユーザ端末10a及び10bのそれぞれで作成された暗号鍵key_A及びkey_Bが、ネットワークサービスn0で管理されている。このような構成により、ユーザua及びubがネットワークサービスn0上で関連付けられている場合(関係c11)に、例えば、ユーザ端末10aは、ネットワークサービスn0上で管理された暗号鍵key_Bを、ソーシャルグラフを介して取得することが可能である。また、ユーザua及びubがネットワークサービスn0上で関連付けられていない場合には、ユーザ端末10aは、ネットワークサービスn0上でユーザubを特定することができず、結果として暗号鍵key_Bを取得することができないこととなる。
また、本実施形態に係るネットワークサービスn0は、サービス固有の暗号鍵及び復号鍵を管理している。ネットワークサービスn0は、サービス固有の暗号鍵(以下、「暗号鍵key_S」と呼ぶ場合がある)を、ネットワークサービスn0を利用可能なユーザのユーザ端末に提供する。また、ネットワークサービスn0は、自身にアクセス可能なユーザ(即ち、ネットワークサービスn0のユーザIDを所持するユーザ)に対し、暗号鍵key_Sで暗号化されたデータを復号する機能を有する。これにより、ネットワークサービスn0を利用可能なユーザ間で、サービス固有の暗号鍵key_Sを利用した暗号化通信を行うことが可能となる。なお、サービス固有の暗号鍵key_Sを利用した通信の詳細については、別途後述する。
このような構成により、本実施形態に係る無線通信システムでは、各ユーザ端末10がネットワークサービスn0上のソーシャルグラフを介して、相手が信頼できるか否かを判断し、判断結果に基づき相手と通信を行うための暗号鍵を取得することが可能となる。そのため、各ユーザ端末10のユーザは、煩雑な手順を踏むことなく、互いのユーザ端末10間でセキュアな通信を行うことが可能となる。以降では、本実施形態に係る無線通信システムの詳細について説明する。
[1.2.ユーザ端末の構成]
まず、図3を参照しながら、ユーザ端末10のハードウェア構成について説明する。図3は、実施形態に係るユーザ端末の概略的なハードウェア構成の一例を示した図である。図3に示すように、ユーザ端末10は、CPU101と、メモリ102と、出力部103と、入力部104と、記憶部105と、I/Oインタフェース106と、第1通信部111と、第1通信アンテナ112と、第2通信部121と、第2通信アンテナ122と、を含む。
CPU101は、演算処理装置及び制御装置として機能し、各種プログラムに従ってユーザ端末10内の動作全般を制御する。またCPU101は、マイクロプロセッサであってもよい。このCPU101は、各種プログラムに従って様々な機能を実現することができる。
メモリ102は、ROM(Read Only Memory)やRAM(Random Access Memory)により構成されている。ROMは、CPU101が使用するプログラムや演算パラメータ等を記憶することができる。RAMは、CPU101の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶することができる。
出力部103は、出力装置の一例であり、液晶ディスプレイ(LCD:Liquid Crystal Display)装置、有機EL(OLED:Organic Light Emitting Diode)ディスプレイ装置などの表示装置であってよい。出力部103は、ユーザに対して画面を表示することにより情報を提供することができる。
入力部104は、ユーザが所望の操作をするための入力信号を生成する機能を有する。入力部104は、例えばタッチセンサ、マウス、キーボード、ボタン、マイク、スイッチ及びレバーなどユーザが情報を入力するための入力部と、ユーザによる入力に基づいて入力信号を生成し、CPU101に出力する入力制御回路などから構成されてよい。
記憶部105は、データ格納用の装置であり、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置、および記憶媒体に記録されたデータを削除する削除装置などを含むことができる。ここで記憶媒体としては、例えばフラッシュメモリ、MRAM(Magnetoresistive Random Acces
Memory)、FeRAM(Ferroelectric Random Access Memory)、PRAM(Phase change Random Access Memory)、及びEEPROM(Electronically Erasable and Programmable Read Only Memory)などの不揮発性メモリや、HDD(Hard Disk Drive)などの磁気記録媒体などが用いられてよい。
I/Oインタフェース106は、ディスプレイ装置のようなアクチュエーターや、キー入力が可能なセンサーのような外部機器を接続し、接続された外部機器との間で信号を送受信するためのインタフェースである。I/Oインタフェース106は、接続された外部機器からの信号をCPU101に供給することができる。また、I/Oインタフェース106は、CPU101からの信号を接続された外部機器に供給できる。
第1通信アンテナ112及び第2通信アンテナ122は、例えば携帯通信網や無線LAN(Local Area Network)通信網を介して通信信号を送受信する機能を有するアンテナである。第1通信アンテナ112は、受信した信号を第1通信部111に供給することができる。また、第1通信アンテナ112は、第1通信部111からの信号を、携帯通信網や無線LAN通信網を介して他の通信機器に送信してもよい。同様に、第2通信アンテナ122は、受信した信号を第2通信部121に供給することができる。また、第2通信アンテナ122は、第2通信部121からの信号を、携帯通信網や無線LAN通信網を介して他の通信機器に送信してもよい。
第1通信部111は、第1通信アンテナ112から供給された信号に各種の信号処理を行う機能を有する。第1通信部111は、供給されたアナログ信号から生成したデジタル信号をCPU101に供給することができる。同様に、第2通信部121は、第2通信アンテナ122から供給された信号に各種の信号処理を行う機能を有する。第2通信部121は、供給されたアナログ信号から生成したデジタル信号をCPU101に供給することができる。
なお、以降では、第1通信部111及び第1通信アンテナ112は、ユーザ端末10が、例えば、携帯通信網(例えば、基地局、及び、基地局間をつなぐ固定網)のような基盤設備を介して他の通信機器と通信を行うために用いられるものとして説明する。また、第2通信部121及び第2通信アンテナ122は、ユーザ端末10が、他のユーザ端末10と相互接続を行うため(換言すると、アドホックネットワークを構築するため)に用いられるものとして説明する。
なお、上記に示したハードウェア構成は一例であり、以降で説明する、本実施形態に係るユーザ端末10の動作を実現可能であれば、ユーザ端末10のハードウェア構成を上記に限定されない。例えば、第1通信部111及び第1通信アンテナ112と、第2通信部121及び第2通信アンテナ122とを別々に設けずに、いずれか一方が双方の役割を兼任してもよい。
次に、本実施形態に係るユーザ端末10の構成について説明する。本実施形態に係る無線通信システムでは、複数のユーザ端末10が互いに相手を信頼できる相手か否かを判断するために、一方のユーザ端末10が、他方のユーザ端末10から、ネットワークサービスn0上で相手を識別するための識別情報を受け取る。この識別情報は、例えば、ユーザ端末10のユーザの、ネットワークサービスn0上におけるユーザIDや、ユーザ端末10を一意に特定するためのID(以降では、「デバイスID」と呼ぶ)が含まれ得る。以降では、ユーザ端末10a及び10bが通信を行う場合を例に、ユーザ端末10bを識別情報の送信側とし、ユーザ端末10aを識別情報の受信側として説明する。なお、識別情報に含まれる情報の詳細や、識別情報に含まれる情報の違いに伴う処理の違いについては別途後述する。また、この識別情報が、「第1の識別情報」及び「第2の識別情報」の一例に相当する。
(識別情報を送信する側のユーザ端末10)
まず、図4を参照しながら、識別情報を送信する側のユーザ端末10bの構成について説明する。図4は、本実施形態に係るユーザ端末10bの構成を示したブロック図であり、識別情報を送信する側のユーザ端末10bの構成の一例を示している。図4に示すように、ユーザ端末10bは、第1通信部111と、第2通信部121と、鍵生成部131と、鍵情報記憶部132と、認証処理部133と、識別情報管理部134と、識別情報記憶部135と、識別情報通知部136とを含む。なお、以降で説明する識別情報を送信する側のユーザ端末10は、後述する「識別情報を受信する側のユーザ端末10」としても動作してもよい。その場合には、当該ユーザ端末10は、後述する「識別情報を受信する側のユーザ端末10」の各構成を備えることは言うまでもない。
第1通信部111は、ユーザ端末10b内の各構成が、携帯通信網のような基盤設備を介して他の通信機器と通信を行うために用いられる。なお、図4では、第1通信アンテナ112の図示を省略している。本実施形態に係る無線通信システムでは、ユーザ端末10b内の各構成は、第1通信部111を介してネットワークサービスn0にアクセスする。なお、以降では、ユーザ端末10b内の各構成がネットワークサービスn0とデータを送受信する場合には、特に明示が無い限りは、第1通信部111を介してデータを送受信するものとする。
第2通信部121は、ユーザ端末10b内の各構成が、他のユーザ端末10(例えば、ユーザ端末10a)と相互接続を行うために用いられる。なお、図4では、第2通信アンテナ122の図示を省略している。ユーザ端末10a及び10bがアドホックネットワークを構築する場合には、ユーザ端末10b内の各構成は、第2通信部121を介してユーザ端末10aにアクセスする。なお、以降では、ユーザ端末10b内の各構成が他のユーザ端末(例えば、ユーザ端末10a)とデータを送受信する場合には、特に明示が無い限りは、第2通信部121を介してデータを送受信するものとする。
鍵生成部131は、ユーザ端末10bが他のユーザ端末と通信を行う際に、データを暗号化及び復号するための暗号鍵及び復号鍵を生成する。具体的な一例として、鍵生成部131は、公開鍵暗号方式で用いられる暗号鍵(公開鍵)と復号鍵(秘密鍵)を生成してもよい。なお、鍵生成部131は、自身で暗号鍵及び復号鍵を生成せずに、外部で生成された暗号鍵及び復号鍵を取得してもよい。なお、生成された暗号鍵が、「第1の暗号鍵」及び「第2の暗号鍵」の一例に相当する。同様に、生成された復号鍵が、「第1の復号鍵」及び「第2の復号鍵」の一例に相当する。
鍵生成部131は、生成した暗号鍵及び復号鍵のうち、復号鍵を鍵情報記憶部132に記憶させる。鍵情報記憶部132は、復号鍵を記憶するための記憶部である。なお、鍵生成部131は、暗号鍵をあわせて鍵情報記憶部132に記憶させてもよい。このように、鍵情報記憶部132は、暗号化または復号を行うための情報を記憶する。
また、鍵生成部131は、生成した暗号鍵及び復号鍵のうち、暗号鍵を、ネットワークサービスn0上でユーザ端末10bを特定するための識別情報と関連付けて、ネットワークサービスn0に送信する。このネットワークサービスn0に送信される暗号鍵が、暗号鍵key_Bに相当する。なお、ユーザ端末10bを特定するための識別情報は、例えば、ユーザ端末10bのユーザubを特定するためのユーザIDでもよい。また、他の一例として、当該識別情報は、MACアドレスのように、ユーザ端末10bを一意に特定することが可能なデバイスIDでもよい。また、デバイスIDの場合は、ネットワークサービスn0上でユーザ端末10bが一意に特定できれば、必ずしもMACアドレスである必要はない。例えば、当該ネットワークサービスn0上で、ユーザ端末10bを一意に特定するために生成された情報であってもよい。
また、識別情報は、ユーザIDとデバイスIDとの双方を含み、ユーザIDとデバイスIDとを組み合わせて用いられてもよい。ユーザIDとデバイスIDとを組み合わせることで、例えば、1人のユーザが複数のユーザ端末10を使い分けている場合に、そのユーザがどのユーザ端末10を使用した場合かを一意に特定することができる。例えば、図5は、ネットワークサービスn0上におけるユーザ端末10間の関連付けの一例を示した図であり、ユーザua及びubが、それぞれ複数のユーザ端末10を使い分けている場合の一例を示している。
図5に示す例では、ユーザuaは、ユーザ端末10a1〜10a3を所有しており、それぞれを切り替えてネットワークサービスn0を使用している。また、ユーザubは、ユーザ端末10b1〜10b3を所有しており、それぞれを切り替えてネットワークサービスn0を使用している。この場合に、ユーザua及びubの関係c11のみで、ユーザua及びubそれぞれが使用しているユーザ端末10を特定しようとしても、一意に特定することは困難である。
一方で、ネットワークサービスn0上に、ユーザua及びubそれぞれのユーザIDに、各ユーザが使用するユーザ端末10のデバイスIDを関連付けることで、各ユーザが使用しているユーザ端末10を一意に特定することが可能である。具体的な一例として、ユーザuaは、自身のユーザIDに、ユーザ端末10a3のデバイスIDを関連付けておく。同様に、ユーザubは、自身のユーザIDに、ユーザ端末10b1のデバイスIDを関連付けておく。これにより、例えば、ユーザuaのユーザ端末10a3は、ネットワークサービスn0上のソーシャルグラフを介して、ユーザubのユーザ端末10b1を特定することが可能となる。即ち、ユーザua及びubそれぞれが複数のユーザ端末10を使用する場合においても、例えば、図5の参照符号c12で示すように、ネットワークサービスn0上において、ユーザ端末10a3とユーザ端末10b1とを関連付けることが可能となる。なお、以降では、識別情報が、ユーザIDとデバイスIDとの双方を含む場合を例に説明する。
識別情報管理部134は、ユーザ端末10bを操作するユーザ(例えば、ユーザub)のネットワークサービスn0におけるユーザIDを取得し、取得したユーザIDを持ち主情報d10として識別情報記憶部135に記憶させる。識別情報記憶部135は、持ち主情報d10を記憶するための記憶部である。以下に、識別情報管理部134の動作、及び持ち主情報d10の詳細については説明する。
識別情報管理部134は、ユーザubがネットワークサービスn0にログインした際に入力されたユーザIDと、当該ユーザIDがどのネットワークサービスn0のユーザIDかを示すID種別とを関連付けて、持ち主情報d10として識別情報記憶部135に記憶させる。この識別情報記憶部135に記憶された持ち主情報d10に設定された識別情報(ユーザID)とID種別d110とが、後述する識別情報通知部136により、他のユーザ端末10(例えば、ユーザ端末10a)に送信される。これにより、識別情報(ユーザID)及びID種別d110を受け取ったユーザ端末10は、当該ID種別d110によりネットワークサービスn0を特定することができる。また、当該ユーザ端末10は、特定したネットワークサービスn0のソーシャルグラフを介して、取得した識別情報(ユーザID)を探索することが可能となる。
なお、詳細は後述するが、本実施形態に係る無線通信システムでは、互いを認証するために送信するユーザIDを暗号化するか否かを選択可能に構成されている。以降では、ユーザIDを暗号化して互いを認証する方法を「識別情報を暗号化する方法」、ユーザIDを暗号化せずに互いを認証する方法を「識別情報を暗号化しない方法」と呼ぶ場合がある。また、本実施形態に係る無線通信システムでは、ユーザ端末10間で既に暗号鍵(例えば、公開鍵)の交換を行っている場合には、相手の暗号鍵を用いてユーザIDを暗号化することで、ネットワークサービスn0を介さずに互いを認証する方法を選択可能に構成されている。なお、この相手の暗号鍵を用いてユーザIDを暗号化することで互いを認証する方法を、以降では「相手の鍵を利用する方法」と呼ぶ。
互いを認証する方法として、「識別情報を暗号化する方法」、「識別情報を暗号化しない方法」、及び「相手の鍵を利用する方法」のいずれが選択されるかに応じて、持ち主情報d10に含まれるユーザIDの態様、即ち、ユーザIDを暗号化するか否かが異なる。しかし、ID種別d110がネットワークサービスn0の違いを識別可能に構成されているのみでは、ユーザ端末10bが、上述した互いを認証する方法のうち、いずれを利用することが可能かを、接続先であるユーザ端末10が認識することは難しい。
そこで、識別情報管理部134は、ネットワークサービスn0の違いに加えて、上述した互いを認証する方法の違いについても識別できるように、持ち主情報d10に含まれるID種別を生成する。具体的には、識別情報管理部134は、同じネットワークサービスn0のユーザIDであっても、互いを認証する方法が異なる場合には、ID種別として異なる情報を生成する。このような構成により、他のユーザ端末10は、ID種別により、ユーザ端末10bのユーザubを、どのネットワークサービスn0のソーシャルグラフを介して探索可能か、及び互いを認証する方法としていずれを利用できるかを認識することが可能となる。
なお、ユーザIDを暗号化する場合には、例えば、ネットワークサービスn0が提供する暗号鍵key_SによりユーザIDを暗号化することが可能である。この場合には、接続先であるユーザ端末10のユーザが、暗号鍵key_Sを提供するネットワークサービスn0のユーザであれば、暗号化されたユーザIDを復号することが可能となる。以降では、ユーザIDを暗号化する場合には、ネットワークサービスn0が提供する暗号鍵key_Sにより暗号化するものとして説明する。
以下に、図6を参照しながら、持ち主情報d10の詳細について説明する。図6は、持ち主情報d10の一例を示した図である。なお、上記に示した、互いを認証する方法それぞれの詳細については、後述する「1.4.通信シーケンス(識別情報を暗号化しない方法)」、「1.5.通信シーケンス(識別情報を暗号化する方法)」、「1.6.通信シーケンス(相手の鍵を利用する方法)」にてそれぞれ説明する。
図6に示すように、持ち主情報d10は、ID種別d110と、持ち主IDd120とを含む。ID種別d110は、ネットワークサービスn0の違い、ユーザIDが暗号化されているか否か、及び、互いを認証する方法の違いを識別するための情報である。例えば、参照符号d11は、ユーザIDを暗号化しない場合の持ち主情報d10を示している(以降では、「持ち主情報d11」と呼ぶ)。また、参照符号d13は、ユーザIDを暗号化する場合の持ち主情報d10を示している(以降では、「持ち主情報d13」と呼ぶ)。また、参照符号d15は、ユーザ端末10間で既に暗号鍵(例えば、公開鍵)の交換を行っている場合には、相手の暗号鍵を用いてユーザIDを暗号化して送受信することで互いを認証する方法の利用を許可している場合の持ち主情報d10を示している(以降では、「持ち主情報d15」と呼ぶ)。
また、持ち主IDd120は、ID種別が示すネットワークサービスn0のユーザIDを示している。なお、持ち主IDd120には、ID種別d110がユーザIDの暗号化を示している場合には暗号鍵key_Sで暗号化されたユーザIDが設定され、ID種別d110がユーザIDの暗号化を示していない場合には、暗号化されていないユーザIDが設定される。
具体的な一例として、ID種別d110が「0x003f」の持ち主情報d11は、ネットワークサービスn0が「サービスB」であり、かつ、ユーザ端末10が「ユーザIDを暗号化しない方法」に対応していることを示している。即ち、ID種別d110が「0x003f」の場合は、持ち主IDd120が、暗号化されていないサービスBのアカウント(ユーザID)であることを示している。この場合には、識別情報管理部134は、持ち主IDd120に、暗号化されていない「サービスB」のユーザIDとして「kekek123」が設定する。なお、以降では、「ユーザIDを暗号化しない方法」を示すID種別d110を単に「アカウント」と呼び、「サービスB」の「アカウント」の場合には、「サービスBアカウント」と呼ぶ場合がある。
また、ID種別d110が「0x005a」の持ち主情報d12は、ネットワークサービスn0が「サービスA」であり、かつ、ユーザ端末10が「ユーザIDを暗号化する方法」に対応していることを示している。即ち、ID種別d110が「0x005a」の場合は、持ち主IDd120が、暗号化されたサービスAのアカウント(ユーザID)であることを示している。この場合には、識別情報管理部134は、持ち主IDd120に、暗号化された「サービスA」のユーザIDとして「sha6le3rlkge」を設定する。なお、以降では、「ユーザIDを暗号化する方法」を示すID種別d110を「暗号化アカウント」と呼び、「サービスA」の「暗号化アカウント」の場合には、「サービスA暗号化アカウント」と呼ぶ場合がある。
また、ID種別d110が「0x0156」の持ち主情報d13は、ネットワークサービスn0が「サービスB」であり、かつ、ユーザ端末10が「相手の鍵を利用する方法」に対応していることを示している。即ち、ID種別d110が「0x0156」の場合には、ユーザ端末10bとの間で暗号鍵(公開鍵)を既に交換している場合は、互いの暗号鍵を用いた認証がユーザ端末10bで許可されていることを示している。この場合には、識別情報管理部134は、持ち主IDd120に、暗号化された「サービスB」のユーザIDとして「w48tpboiwutpqw84t」を設定する。なお、以降では、「相手の鍵を利用する方法」を示すID種別d110を「内部レコード探索用暗号化アカウント」と呼び、「サービスB」の「内部レコード探索用暗号化アカウント」の場合には、「内部レコード探索用サービスB暗号化アカウント」と呼ぶ場合がある。
なお、識別情報管理部134は、「ユーザIDを暗号化する方法」、「ユーザIDを暗号化しない方法」、及び「相手の鍵を利用する方法」のいずれを選択するかを、ユーザ端末10bのユーザubによる入力に基づき決定してもよい。また、他の一例として、「ユーザIDを暗号化する方法」、「ユーザIDを暗号化しない方法」、及び「相手の鍵を利用する方法」のいずれが使用されるかは、あらかじめ設定されていてもよい。
識別情報管理部134は、「ユーザIDを暗号化する方法」、「ユーザIDを暗号化しない方法」、及び「相手の鍵を利用する方法」のうち選択された方法に対応する持ち主情報d10を生成し、生成した持ち主情報d10を識別情報記憶部135に記憶させる。なお、互いを認証する方法としては、「ユーザIDを暗号化する方法」及び「ユーザIDを暗号化しない方法」のうち少なくともいずれかが選択されていればよい。
また、識別情報記憶部135には、不揮発性の記憶媒体を用いてもよいし、揮発性の記憶媒体を用いてもよい。識別情報記憶部135に揮発性の記憶媒体を用いた場合には、ユーザ端末10bが停止した場合に、識別情報記憶部135に記憶された持ち主情報d10が消去されることは言うまでもない。一方で、識別情報記憶部135に不揮発性の記憶媒体を用いた場合には、ユーザ端末10bが停止した場合においても、識別情報記憶部135に記憶された持ち主情報d10は消去されない。そのため、識別情報管理部134が、識別情報記憶部135に記憶された持ち主情報d10を消去できるようにしてもよい。
識別情報通知部136は、識別情報記憶部135から持ち主情報d10を読み出し、読み出した持ち主情報d10を、他のユーザ端末10に配布する。これにより、他のユーザ端末10は、ユーザ端末10bのユーザであるユーザubのユーザIDと、そのユーザIDがどのネットワークサービスn0のユーザIDか、及び、当該ユーザIDが暗号化されているか否かを認識することが可能となる。また、他のユーザ端末10は、配布された持ち主情報d10に基づき、ユーザ端末10bが、互いを認証する方法として、「ユーザIDを暗号化する方法」、「ユーザIDを暗号化しない方法」、及び「相手の鍵を利用する方法」のいずれを許可しているかを認識することができる。なお、識別情報通知部136は、ユーザ端末10bの周囲に存在する不特定多数の他のユーザ端末10に持ち主情報d10をブロードキャストしてもよいし、特定のユーザ端末10にユニキャストしてもよい。識別情報通知部136が持ち主情報を配布する方法の詳細については別途後述する。
また、識別情報通知部136は、例えば、ユーザ端末10aの暗号鍵key_Aを既に取得している場合には、持ち主情報d10を暗号鍵key_Aで暗号化し、暗号化された持ち主情報d10をユーザ端末10aにユニキャストしてもよい。この場合のID種別d110は、「内部レコード探索用暗号化アカウント」とすればよい。なお、ユーザ端末10bがユーザ端末10aの暗号鍵key_Aを取得する場合には、例えば、ユーザ端末10bを、後述する識別情報を受信する側のユーザ端末10として動作させればよい。
また、識別情報通知部136は、ユーザ端末10bを特定するためのデバイスIDを他のユーザ端末10に通知してもよい。このとき、識別情報通知部136は、デバイスIDを暗号化してもよい。デバイスIDを暗号化する場合には、識別情報通知部136は、ユーザIDの暗号化に用いた暗号鍵により、デバイスIDを暗号化してもよい。
認証処理部133は、接続先のユーザ端末10(例えば、ユーザ端末10a)との間で、互いを認証するための処理を実行する。互いを認証する処理の具体的な一例としては、WEP(Wired Equivalent Privacy)、WPA(Wi−Fi Protected Access)、WPA2等が知られている。認証処理部133による互いを認証する処理の具体例については、別途後述する。
また、認証処理部133は、他の接続先のユーザ端末10から取得したデータが、鍵生成部131で生成された暗号鍵key_Bで暗号化されている場合には、鍵情報記憶部132に記憶された復号鍵で当該データを復号する。
(識別情報を受信する側のユーザ端末10)
次に、図7を参照しながら、送信された識別情報を受信する側のユーザ端末10aの構成について説明する。図7は、本実施形態に係るユーザ端末10aの構成を示したブロック図であり、識別情報を受信する側のユーザ端末10aの構成の一例を示している。図7に示すように、ユーザ端末10aは、第1通信部111と、第2通信部121と、鍵生成部131と、識別情報取得部141と、鍵取得部142と、鍵情報記憶部143と、認証処理部144とを含む。なお、以降で説明する識別情報を受信する側のユーザ端末10は、前述した「識別情報を送信する側のユーザ端末10」としても動作してもよい。その場合には、当該ユーザ端末10は、前述した「識別情報を送信する側のユーザ端末10」の各構成を備えることは言うまでもない。
第1通信部111は、ユーザ端末10a内の各構成が、携帯通信網のような基盤設備を介して他の通信機器と通信を行うために用いられる。なお、図7では、第1通信アンテナ112の図示を省略している。本実施形態に係る無線通信システムでは、ユーザ端末10a内の各構成は、第1通信部111を介してネットワークサービスn0にアクセスする。なお、以降では、ユーザ端末10a内の各構成がネットワークサービスn0とデータを送受信する場合には、特に明示が無い限りは、第1通信部111を介してデータを送受信するものとする。
第2通信部121は、ユーザ端末10a内の各構成が、他のユーザ端末10(例えば、ユーザ端末10b)と相互接続を行うために用いられる。なお、図7では、第2通信アンテナ122の図示を省略している。ユーザ端末10a及び10bがアドホックネットワークを構築する場合には、ユーザ端末10a内の各構成は、第2通信部121を介してユーザ端末10bにアクセスする。なお、以降では、ユーザ端末10a内の各構成が他のユーザ端末(例えば、ユーザ端末10b)とデータを送受信する場合には、特に明示が無い限りは、第2通信部121を介してデータを送受信するものとする。
鍵生成部131は、前述したユーザ端末10bの鍵生成部131と同様である。鍵生成部131は、暗号鍵及び復号鍵を生成し、生成した暗号鍵及び復号鍵のうち、復号鍵を鍵情報記憶部143に記憶させる。また、鍵生成部131は、生成した暗号鍵及び復号鍵のうち、暗号鍵を、ネットワークサービスn0上でユーザ端末10aを特定するための識別情報と関連付けて、ネットワークサービスn0に送信する。このネットワークサービスn0に送信される暗号鍵が、暗号鍵key_Aに相当する。
識別情報取得部141は、ユーザ端末10bから、ネットワークサービスn0上でユーザ端末10bを識別するための識別情報を取得し、取得した識別情報がネットワークサービスn0上でユーザ端末10aの識別情報と関連付けられているか否かを判別する。
具体的な一例として、識別情報取得部141は、ユーザ端末10bから識別情報(ユーザID)とID種別d110とを取得する。識別情報取得部141は、取得したID種別d110に基づき、あわせて取得した識別情報(ユーザID)が、どのネットワークサービスn0のユーザIDかを特定する。
ネットワークサービスn0を特定したら、識別情報取得部141は、取得したID種別d110に基づき、識別情報(ユーザID)が暗号化されているか否かを判別する。識別情報が暗号化されている場合には、識別情報取得部141は、特定したネットワークサービスn0にアクセスし、暗号化された識別情報を当該ネットワークサービスn0上で復号する。このとき、識別情報の復号は、ネットワークサービスn0側で実行してもよいし、識別情報取得部141がネットワークサービスn0から復号鍵を取得して復号を行ってもよい。なお、識別情報が暗号化されていない場合には、復号が必要ないことは言うまでもない。暗号化された識別情報を復号することで、識別情報取得部141は、ユーザ端末10bの使用者であるユーザubのユーザIDを取得する。
また、識別情報取得部141は、ユーザ端末10bからデバイスIDを取得してもよい。取得したデバイスIDが暗号化されている場合には、識別情報取得部141は、ユーザIDの場合と同様に復号を行えばよい。なお、以降では、識別情報取得部141は、ユーザ端末10bからユーザID及びデバイスIDを取得したものとして説明する。
識別情報取得部141は、取得したユーザID及びデバイスIDと、持ち主情報d10から抽出したID種別d110とを、鍵取得部142及び認証処理部144に通知する。
なお、ユーザ端末10bから識別情報がユニキャストで送付されてきた場合には、ユーザ端末10bは、ユーザ端末10aに対応する暗号鍵key_Aにより、ユーザIDやデバイスIDを暗号化して送信している場合がある。この場合には、「相手の鍵を利用する方法」に基づき、ユーザ端末10bと相互に認証を行うことが可能である。そのため、識別情報取得部141は、ID種別d110が「内部レコード探索用暗号化アカウント」を示している場合には、鍵情報記憶部143に記憶された復号鍵に基づき暗号化されたユーザIDを復号することで、復号されたユーザIDを取得する。なお、デバイスIDが暗号化されている場合についても同様である。
なお、互いを認証する方法として、ユーザ端末10aが許可していない方法をID種別d110が示している場合には、識別情報取得部141は、ユーザ端末10bからの接続要求を拒否してもよい。具体的な一例として、ユーザ端末10aが、「識別情報を暗号化する方法」のみを許可している場合に、ユーザ端末10bから取得した識別情報が暗号化アカウントではない場合には、識別情報取得部141は、ユーザ端末10bからの接続要求を拒否してもよい。
また、別の一例として、ユーザ端末10aが、「識別情報を暗号化しない方法」のみを許可している場合に、ユーザ端末10bから取得した識別情報が暗号化アカウントのみの場合には、識別情報取得部141は、ユーザ端末10bからの接続要求を拒否してもよい。
なお、接続要求を拒否した場合には、識別情報取得部141は、以降の処理を行わずに一連の処理を終了してもよい。また、このとき、識別情報取得部141は、ユーザ端末10bに、接続要求に対して応答ができない旨を通知してもよい。
ユーザID及びデバイスIDを取得したら、識別情報取得部141は、ID種別d110が示すネットワークサービスn0の種別と、取得したユーザID及びデバイスIDとに関連付けられた暗号鍵が、鍵情報記憶部143に記憶されているか否かを確認する。なお、鍵情報記憶部143に暗号鍵を記憶させる処理については、別途後述する。
対応する暗号鍵が鍵情報記憶部143に記憶されている場合には、識別情報取得部141は、取得したユーザID及びデバイスIDと、持ち主情報d10から抽出したID種別d110とを、認証処理部144に通知する。このとき、識別情報取得部141は、鍵取得部142に対して、必ずしもユーザID、デバイスID、及びID種別d110を通知する必要はない。
鍵取得部142は、ユーザID、デバイスID、及びID種別d110を識別情報取得部141から取得する。鍵取得部142は、取得したID種別d110に対応するネットワークサービスn0にアクセスし、当該ネットワークサービスn0のソーシャルグラフを介して取得したユーザID及びデバイスIDを探索する。このとき、取得したユーザIDが示すユーザ(例えば、ユーザub)と、ユーザ端末10aのユーザuaがネットワークサービスn0で関連付けられている場合、鍵取得部142は、ネットワークサービスn0上で当該ユーザID及びデバイスIDを特定できる。
なお、ソーシャルグラフの探索に係る処理は、ネットワークサービスn0(換言すると、ネットワークサービスn0を提供するサーバ50)が、鍵取得部142の依頼に基づき実行すればよい。また、他の一例として、ソーシャルグラフの探索に係る処理を鍵取得部142(即ち、ユーザ端末10a)が実行してもよい。この場合には、ネットワークサービスn0は、ソーシャルグラフの探索に係る処理を実行するためのデータやプログラムをユーザ端末10aに提供すればよい。
ネットワークサービスn0上でユーザID及びデバイスIDを特定したら、鍵取得部142は、ネットワークサービスn0上のソーシャルグラフを介して、当該ユーザID及びデバイスIDに関連付けられた暗号鍵を取得する。これにより、鍵取得部142は、例えば、取得したユーザID及びデバイスIDにより特定されるユーザ端末10bと関連付けられた暗号鍵key_Bを、ネットワークサービスn0のソーシャルグラフを介して取得することが可能となる。
暗号鍵を取得したら、鍵取得部142は、ネットワークサービスn0を介して取得した暗号鍵と、識別情報取得部141から取得したユーザID、デバイスID、及びID種別d110とを関連付けて認証処理部144に出力する。
認証処理部144は、ユーザID、デバイスID、及びID種別d110を識別情報取得部141から取得する。認証処理部144は、取得したユーザID、デバイスID、及びID種別d110に関連付けられた暗号鍵を、鍵情報記憶部143から抽出する。鍵情報記憶部143の詳細については後述する。対応する暗号鍵が既に鍵情報記憶部143に記憶されている場合には、認証処理部144は、当該暗号鍵の抽出に成功する。暗号鍵の抽出に成功した場合には、認証処理部144は、抽出した暗号鍵に基づきデータを暗号化して、取得したユーザID及びデバイスIDにより特定されるユーザ端末10との間で、互いを認証する処理を実行する。
対応する暗号鍵が鍵情報記憶部143に記憶されていない場合には、ユーザ端末10aの認証処理部144は、当該暗号鍵の抽出に失敗する。暗号鍵の抽出に失敗した場合には、認証処理部144は、ユーザID、デバイスID、及びID種別d110が関連付けられた暗号鍵を鍵取得部142から取得する。認証処理部144は、取得した暗号鍵に基づきデータを暗号化して、取得したユーザID及びデバイスIDにより特定されるユーザ端末10との間で、互いを認証する処理を実行する。また、認証処理部144は、鍵取得部142から取得した、ユーザID、デバイスID、及びID種別d110が関連付けられた暗号鍵を鍵情報記憶部143に記憶させる。
なお、ユーザ端末10aが、識別情報を受信する側のユーザ端末10として動作する場合には、認証処理部144は、前述した認証処理部133として動作してもよい。そのため、以降では、「認証処理部133」及び「認証処理部144」のうちいずれか一方の認証処理部について記載した場合には、当該認証処理部は、他方の認証処理部としても動作可能であるものとする。
鍵情報記憶部143は、鍵生成部131で生成された復号鍵を記憶する。なお、鍵情報記憶部143は、鍵生成部131で生成された暗号鍵を記憶していてもよい。
また、鍵情報記憶部143は、ユーザID、デバイスID、及びID種別d110(換言すると、ネットワークサービスn0の種別)ごとに暗号鍵(他のユーザ端末10で生成または取得された暗号鍵)を記憶する。鍵情報記憶部143に記憶された各暗号鍵は、ユーザID、デバイスID、及びID種別d110を検索キーとして抽出可能に管理されている。ここで、図8を参照する。図8は、鍵情報記憶部143において、ユーザID、デバイスID、及びID種別d110を検索キーとして各暗号鍵を抽出可能に管理するための管理データd40の一例を示しした図である。
図8において、参照番号d410a及びd410bは、ID種別d110に対応している。また、参照番号d420a〜d420dのそれぞれは、ユーザIDを示しており、参照番号d430a〜d430dのそれぞれは、デバイスIDを示している。また、参照番号d441a〜d441dのそれぞれは、暗号鍵を示しており、参照番号d442a〜d442dのそれぞれは、暗号鍵d441a〜d441dのそれぞれが取得または更新された更新日時を示している。なお、以降では、暗号鍵d441a〜d441dを特に区別しない場合には、「暗号鍵d441」と記載する場合がある。同様に、更新日時d442a〜d442dを特に区別しない場合には、「更新日時d442」と記載する場合がある。
具体的な一例として、「key_A1」で示される暗号鍵d441aは、「0x0001」で示されるID種別d410a、「account_A1」で示されるユーザIDd420a、及び「A_dev_id_AAA」で示されるデバイスIDd430aに関連付けられている。また、「YY/MM/DD HH:MM:SS」で示される更新日時d442aは、暗号鍵d441aが取得または更新された日時を示している。
図8に示すように、ユーザID、デバイスID、及びID種別d110ごとに暗号鍵を管理することで、例えば、1人のユーザが異なる複数のユーザ端末10を使い分けているような場合においても、ユーザ端末10ごとに別の暗号鍵を設定することが可能となる。
なお、ユーザ端末10間でデータを暗号化して送受信する際に、各ユーザ端末10で暗号化されたデータを正しく復号できれば、暗号鍵を管理する単位は図8に示す例には限定されない。例えば、あるユーザが複数のユーザ端末10を使用するような場合においても、当該複数のユーザ端末10間で共通の暗号鍵及び復号鍵を用いる場合には、ユーザIDごとに暗号鍵を管理すればよい。また、他の一例として、ユーザIDとは関連付けずに、デバイスIDごとに暗号鍵を管理してもよい。
なお、ユーザ端末10aが、識別情報を受信する側のユーザ端末10として動作する場合には、鍵情報記憶部143は、前述した鍵情報記憶部132として動作してもよい。そのため、以降では、「鍵情報記憶部132」及び「鍵情報記憶部143」のうちいずれか一方の鍵情報記憶部について記載した場合には、当該鍵情報記憶部は、他方の鍵情報記憶部としても動作可能であるものとする。
また、上記では、ネットワークサービスn0は、暗号鍵key_Sで暗号化されたユーザ端末10の識別情報を復号した場合に、復号された識別情報を識別情報取得部141に通知していたが、復号された識別情報を通知しないように動作させてもよい。例えば、ネットワークサービスn0は、ユーザ端末10bの識別情報を復号した場合に、ユーザ端末10bの識別情報をユーザ端末10aに通知せずに、ユーザ端末10aとユーザ端末10bとが関連付けられているかを確認する。そして、ユーザ端末10aとユーザ端末10bとが関連付けられている場合には、ネットワークサービスn0は、ユーザ端末10bの暗号鍵key_Bを取得し、取得した暗号鍵key_Bをユーザ端末10aに送信すればよい。このように動作させることで、ユーザ端末10aは、ユーザ端末10bの識別情報の内容を認識することなく、ユーザ端末10aとユーザ端末10bとが関連付けられている場合にのみ、ユーザ端末10bの暗号鍵key_Bを取得する。即ち、ユーザ端末10aに対して、ユーザ端末10bの識別情報を隠蔽しながら、ユーザ端末10bの暗号鍵key_Bをユーザ端末10aに受け渡すことが可能となる。
[1.3.持ち主情報の配布]
次に、ユーザ端末10が、他のユーザ端末10に識別情報(即ち、ユーザIDやデバイスID)やID種別d110を配布するための処理の概要について説明する。ユーザ端末10が、識別情報やID種別d110を他のユーザ端末10に配布する場合には、不特定多数の他のユーザ端末10にブロードキャストする方法と、特定のユーザ端末10にユニキャストする方法とがある。そこで、本項目では、ユーザ端末10が、識別情報やID種別d110をブロードキャストする場合に着目して説明することとし、ユニキャストする場合については、次項で別途後述する。
ユーザ端末10のように、無線通信が可能な通信機器は、パッシブスキャンまたはアクティブスキャンと呼ばれる方法のいずれか、または双方を併用することで、周囲に存在する他のユーザ端末10の探索を行う。本実施形態に係るユーザ端末は、パッシブスキャンまたはアクティブスキャンを行う際の信号の送受信を利用することで、識別情報やID種別d110を他のユーザ端末10にブロードキャストする。以降では、まずパッシブスキャンの場合の一例について説明し、次いで、アクティブスキャンの場合の一例について説明する。
(パッシブスキャン)
パッシブスキャンの場合の一例について、図9を参照しながら説明する。図9は、ユーザ端末10が識別情報やID種別d110を他のユーザ端末10に配布する方法の一例について説明するための図であり、パッシブスキャンの場合を示している。
パッシブスキャンの場合には、ユーザ端末10が、所定の周期で、周囲に存在する他のユーザ端末10にビーコンを送信する。例えば、図9に示す例では、ユーザ端末10aが、所定の周期で、周囲に存在する他のユーザ端末10bにビーコンb10a〜b10cを送信している。ビーコンb10a〜b10cには、送信元であるユーザ端末10aを特定するための情報が含まれている。そのため、ユーザ端末10bは、ビーコンb10a〜b10cの少なくともいずれかを受信することで、ユーザ端末10aが周囲に存在することを認識することが可能となる。
本実施形態に係るユーザ端末10は、前述したビーコンb10a〜b10cに識別情報やID種別d110を含めることで、他のユーザ端末に主情報やデバイスIDを配布する。なお、以降では、ビーコンb10a〜b10cを特に区別しない場合には、単に「ビーコンb10」と記載する場合がある。また、本説明では、ビーコンb10の送信側をユーザ端末10aとし、ビーコンb10の受信側をユーザ端末10bとして説明する。
ここで、図10を参照しながら、本実施形態に係るビーコンb10として送信される通信データd20のデータ構造について説明する。図10は、ユーザ端末10が識別情報やID種別d110を送信するための通信データd20のデータ構造の一例を示した図である。
図10に示すように、通信データd20は、プリアンブルd21と、ヘッダd22と、ビーコン情報d23とを含む。
プリアンブルd21は、通信機器間が通信を行う際に信号の同期をとるためのデータであり、一般的には、フレームの直前(換言すると、通信データd20の先頭)に配置される。また、ヘッダd22は、通信データd20の送信元、宛先、通信データd20の種別(例えば、ビーコン情報d23が含まれるか)等の制御情報を格納するための領域である。また、ヘッダd22には、ビーコン情報d23に含まれる各情報の種別や、当該情報が格納された位置を示す情報が含まれている。これにより、ユーザ端末10は、ヘッダd22を解析することで、受信した通信データd20がビーコンb10か否かを判別したり、通信データd20に格納された情報を抽出することが可能となる。
本実施形態に係る通信データd20のビーコン情報d23は、持ち主情報d250を含む点で、既存の無線通信に用いられるビーコン情報と異なる。なお、通信データd20は、既存の無線通信用いられるビーコン情報と同様に、時刻情報d231、ネットワークIDd232、ネットワーク属性d233、サービス情報d240、及びその他情報d260を含み得る。なお、時刻情報d231、ネットワークIDd232、ネットワーク属性d233、及びその他情報d260については、詳細な説明は省略する。
サービス情報d240は、通信データd20の送信元であるユーザ端末10aが提供可能なサービスに関する情報を格納するための領域である。サービス情報d240は、ElementIDd241と、Lengthd242と、1以上のサービス通知フィールドd243とを含む。ElementIDd241は、該当するデータでサービス情報d240であることを示す識別情報が格納される。また、Lengthd242は、サービス報知フィールドd243の数、または、当該数に応じて決まるデータの長さが示されている。即ち、Lengthd242は、どこまでがサービス通知フィールドd243に対応するデータであるかを示している。
サービス通知フィールドd243には、ユーザ端末10aが提供可能な各サービスに関する情報が示されている。例えば、ユーザ端末10が、M個のサービスを提供可能な場合には、M個のサービスそれぞれに対してサービス通知フィールドd243が生成される。
持ち主情報d250は、前述した持ち主情報d10を格納するための領域である。持ち主情報d250は、ElementIDd251と、Lengthd252と、1以上の持ち主情報フィールドd243とを含む。ElementIDd251は、該当するデータで持ち主情報d250であることを示す識別情報が格納される。また、Lengthd252は、持ち主情報フィールドd243の数、または、当該数に応じて決まるデータの長さが示されている。即ち、Lengthd242は、どこまでが持ち主情報フィールドd243に対応するデータであるかを示している。
持ち主情報フィールドd243は、ユーザ端末10aが、送信先である他のユーザ端末10にユーザIDを配布するために、前述した持ち主情報d10を格納するための領域である。持ち主情報フィールドd243は、ID種別領域d254と、持ち主ID領域d255とを含む。
ID種別領域d254には、持ち主情報d10のID種別d110が格納される。また、持ち主ID領域d255には、持ち主情報d10において、ID種別領域d254に格納されたID種別d110と関連付けられたユーザIDが格納される。
通信データd20の送信元であるユーザ端末10aは、自身に記憶された持ち主情報d10のうちの一部または全部を各持ち主情報フィールドd253に格納することで、各持ち主情報d10を他のユーザ端末10に配布する。これにより、持ち主情報d10の持ち主IDd120に示されたユーザID(暗号化された、もしくは暗号化されていないユーザID)が他のユーザ端末10に配布される。
なお、通信データd20は、相手を特定せずに送信される(ブロードキャストされる)。そのため、通信データd20により配布される情報を暗号化する場合には、暗号鍵として、例えば、ネットワークサービスn0が提供する暗号鍵key_Sのように、復号可能な相手が一意に限定されない暗号鍵を用いるとよい。
なお、送信元であるユーザ端末10aは、通信データd20にデバイスIDを格納して、送信先である他のユーザ端末10bに配布してもよい。この場合には、ユーザ端末10aは、ヘッダd22に、通信データd20の送信元を示す制御情報として、自身のデバイスIDを格納してもよいし、ビーコン情報d23にその他情報d260としてデバイスIDを格納してもよい。また、他の一例として、ユーザ端末10aは、デバイスIDを持ち主情報フィールドd253に格納してもよい。この場合には、ユーザ端末10aは、対応する持ち主情報フィールドd253に格納された持ち主IDと同様の方法(同様の暗号鍵)により、デバイスIDを暗号化してもよい。
なお、上記に示した通信データd20の例はあくまで一例であり送信元であるユーザ端末10aが、他のユーザ端末10に識別情報や当該識別情報のID種別d110を配布できれば、通信データd20のデータ形式は限定されない。また、ユーザ端末10aは、必ずしも全てのデータを1つの通信データd20として送信しなくてもよい。例えば、ユーザ端末10aは、サービス情報d240と持ち主情報d250とを異なる通信データd20で別々に送信してもよい。
以上のようにして、ビーコンb10(即ち、通信データd20)を受信したユーザ端末10bは、周囲に存在する他のユーザ端末10(例えば、ユーザ端末10a)を認識する。このとき、ユーザ端末10bは、例えば、アドホックネットワークを構築するために接続先となる他のユーザ端末10の候補をユーザに提示してもよい。
例えば、図11は、接続先の候補を選択するための画面の一例である。図11に示す例では、ユーザ端末10bは、周囲にユーザ端末10a、10c、10dが存在することを認識し、ユーザ端末10a、10c、10dが接続先の候補であることを示す選択肢v10a、v10c、v10dを、出力部103に表示させている。即ち、この場合には、ユーザ端末10bは、ユーザからの選択を受けて、選択された他のユーザ端末10と通信を確立するために、互いを認証するための処理を実行してもよい。また、他の一例として、ユーザ端末10bは、接続先の候補の表示やユーザによる候補の選択を介することなく、認識した他のユーザ端末10と、自動で、互いを認証するための処理を実行してもよい。
また、ユーザ端末10bは、ビーコンb10(即ち、通信データd20)に含まれるID種別d110に基づき、ビーコンb10に含まれるユーザIDが、どのネットワークサービスn0のユーザIDかを特定することができる。また、ユーザ端末10bは、ID種別d110に基づきユーザIDが暗号化されているか否かや、送信元のユーザ端末が互いを認証する方法としていずれを許可しているかを認識することができる。そのため、ユーザ端末10bは、選択肢v10a、v10c、v10dを表示させる場合に、上述したID種別d110に基づき特定される、ネットワークサービスn0の違い、ユーザIDが暗号化されているか否か、及び、互いを認証する方法の違いをあわせて表示させてもよい。
(アクティブスキャン)
次に、アクティブスキャンの場合の一例について、図12を参照しながら説明する。図12は、ユーザ端末10が持ち主情報やデバイスIDを他のユーザ端末10に配布する方法の一例について説明するための図であり、アクティブスキャンの場合を示している。
アクティブスキャンの場合には、ユーザ端末10が、周囲に存在する他のユーザ端末10に対して問合せの要求メッセージを送信し、その問合せに応答した他のユーザ端末10から応答メッセージを受信する。例えば、図12に示す例では、ユーザ端末10bが、要求メッセージb20a及びb20bを、周囲に存在する他のユーザ端末10aに送信している。
ユーザ端末10aは、ユーザ端末10bから受けた要求メッセージb20a及びb20bに対して、応答が可能な状態であれば、応答メッセージを送信する。例えば、図12に示す例では、ユーザ端末10aは、応答が可能なタイミングT10で受けた要求メッセージb20bに対する応答メッセージb30をユーザ端末10bに送信している。この応答メッセージb30を受けることで、ユーザ端末10bは、ユーザ端末10aの存在を認識することができる。なお、以降では、要求メッセージb20a及びb20bを特に区別しない場合には、「要求メッセージb20」と記載する場合がある。
なお、ユーザ端末10aは、応答メッセージb30に自身の識別情報(例えば、ユーザIDやデバイスID)とID種別d110とを格納して送信してもよい。これにより、ユーザ端末10bは、応答メッセージb30に含まれるID種別d110に基づき、あわせて通知された識別情報が、どのネットワークサービスn0のユーザIDかを特定することができる。また、ユーザ端末10bは、取得したID種別d110に基づきユーザIDが暗号化されているか否か、及び、送信元が許可している互いを認証する方法を認識することができる。
なお、ユーザ端末10aは、応答メッセージb30をユーザ端末10bにユニキャストしてもよいし、応答メッセージb30をブロードキャストすることでユーザ端末10bに送信してもよい。応答メッセージb30をブロードキャストする場合には、ユーザ端末10aは、通信データとして前述した通信データd20を用いてもよい。
ここで、図13を参照しながら、本実施形態に係る無線通信システムにおいて特定の相手と情報を送受信する(ユニキャストする)場合に用いる通信データd30aについて説明する。図13は、本実施形態に係る無線通信システムにおいて情報を送受信するための通信データd30aのデータ構造の一例を示した図である。
図13に示すように、通信データd30aは、ヘッダd310と、送信者情報d320、受信者情報d330、NONCEd340、公開鍵情報d350、及びアクセスポイント情報d360のそれぞれを格納するための格納領域を含む。また、送信者情報d320は、送信者ユーザIDd321と、送信者デバイスIDd322とを含む。同様に、受信者情報d330は、受信者ユーザIDd331と、受信者デバイスIDd332とを含む。なお、以降では、通信データd30aの送信元をユーザ端末10a、送信先をユーザ端末10bとして説明する。
ヘッダd310は、通信データd30aが、ユーザ端末10a及び10bの間で接続を確立するための通信シーケンスのうちどの処理に対応したデータであるかを示す制御情報や、後述する各情報が格納された位置を示す情報が含まれている。これにより、通信データd30aを受信したユーザ端末10bは、ヘッダd310を解析することで、当該通信データd30aがどの処理を実行するためのものかを判別し、当該通信データd30aから各情報を抽出することが可能となる。
また、ヘッダd310には、後述する送信者ユーザIDd321や受信者ユーザIDd331に格納されたユーザIDが、どのネットワークサービスn0のユーザIDを示しているかを識別するための情報が含まれていてもよい。
送信者情報d320は、通信データd30aの送信元となるユーザ端末10aを特定するための識別情報を格納するための領域である。
送信者ユーザID321は、ユーザ端末10aを特定するためのユーザIDを格納するための領域である。具体的には、送信者ユーザID321には、ユーザuaのネットワークサービスn0上におけるユーザIDが格納される。
送信者デバイスIDd322は、ユーザ端末10aを特定するためのデバイスIDを格納するための領域である。具体的な一例として、送信者デバイスIDd322には、MACアドレスのようにユーザ端末10aを一意に特定する情報を格納してもよい。なお、他の一例として、ネットワークサービスn0上でユーザ端末10aを特定できれば、送信者デバイスIDd322に格納される情報はMACアドレスに限られない。
受信者情報d330は、通信データd30aを受信するユーザ端末10bを特定するための識別情報を格納するための領域である。
受信者ユーザIDd331は、ユーザ端末10bを特定するためのユーザIDを格納するための領域である。なお、受信者ユーザIDd331に格納される情報の種別は、送信者ユーザID321に格納される情報と同様である。
受信者デバイスIDd332は、ユーザ端末10bを特定するためのデバイスIDを格納するための領域である。なお、受信者デバイスIDd332に格納される情報の種別は、送信者デバイスIDd322に格納される情報と同様である。
NONCEd340は、送信元であるユーザ端末10と、送信先である他のユーザ端末とが、互いの暗号鍵及び復号鍵を用いて互いを認証するための情報を格納するための領域である。
例えば、送信元のユーザ端末10(ユーザ端末10aとする)は、所定の方法により作成した文字列を送信先である他のユーザ端末10(ユーザ端末10bとする)の暗号鍵key_Bを用いて暗号化し、暗号化された文字列をNONCEd340に格納してユーザ端末10bに送信する。
ユーザ端末10bは、ユーザ端末10aから送信された通信データd30aのNONCEd340に格納された情報を自身の復号鍵で復号する。ユーザ端末10bは、復号された情報をユーザ端末10aの暗号鍵key_Aで暗号化し、暗号化された情報をNONCEd340に格納してユーザ端末10aに返送する。
ユーザ端末10aは、ユーザ端末10bから返送された通信データd30aのNONCEd340に格納された情報を自身の復号鍵で復号する。このとき、ユーザ端末10a及び10bの双方で暗号化及び復号が正しく行われていれば、復号された情報と、ユーザ端末10aが生成した文字列(暗号鍵key_Bによる暗号化前の文字列)とが一致する。即ち、ユーザ端末10aは、復号された情報を、自身で生成した文字列と比較し一致する場合に、接続先であるユーザ端末10bを信頼できる相手として認識することが可能である。
公開鍵情報d350は、送信元のユーザ端末10(ユーザ端末10aとする)が、自身の暗号鍵(例えば、暗号鍵key_A)を格納し、送信先である他のユーザ端末10(ユーザ端末10bとする)に送信するための領域である。
アクセスポイント情報d360は、送信元のユーザ端末10(ユーザ端末10aとする)が、自身との相互接続を確立するための情報(例えば、アクセスポイントの情報)を格納し、送信先である他のユーザ端末10(ユーザ端末10bとする)に送信するための領域である。
なお、送信元のユーザ端末10が、送信先である他のユーザ端末10との接続シーケンスにおいて、その時々で必要な情報を他のユーザ端末10に通知できれば、必ずしも各領域に情報が格納されている必要はないし、同様に各領域を設けなくてもよい。その場合には、送信元のユーザ端末10は、送信先である他のユーザ端末10が正しく情報を読み出せるように、ヘッダd310の内容を適宜生成または変更すればよい。また、図13に示す通信データd30aのデータ形式は一例であり、図13に示した各情報をユーザ端末10間で送受信できれば、通信データd30aのデータ形式は限定されない。
[1.4.通信シーケンス(識別情報を暗号化しない方法)]
次に、ユーザ端末10a及び10bとの間で互いを認証し、相互接続を確立する場合の処理の流れ(即ち、通信シーケンス)について説明する。ここでは、図14を参照しながら、本実施形態に係る無線通信システムにおいて、識別情報の暗号化を行わない場合の通信シーケンスについて説明する。図14は、本実施形態に係る無線通信システムにおける通信処理シーケンスの一例を示したシーケンス図であり、識別情報の暗号化を行わない場合の一連のシーケンスについて示している。なお、図14に示す例は、ユーザ端末10bがユーザ端末10aに対して接続要求を出す場合について示している。
(ステップS101)
まず、ユーザ端末10bの識別情報通知部136は、識別情報記憶部135に持ち主情報d10として記憶された、ユーザ端末10bを特定するための識別情報のうち、暗号化されていない識別情報をユーザ端末10aに配布する。図14に示す例では、識別情報通知部136は、識別情報として、ネットワークサービスn0上におけるユーザubのユーザID「B_account」と、ユーザ端末10bのデバイスID「B_dev_id」をユーザ端末10aに配布している。
このときユーザ端末10bの識別情報通知部136は、ID種別d110を、あわせてユーザ端末10aに通知してもよい。これにより、ID種別d110を受信したユーザ端末10aは、当該ID種別に基づき、ユーザID「B_account」がどのネットワークサービスn0のユーザIDかや、互いを認証する方法としてどの方法を許可しているかを認識できる。
なお、本項では、ID種別d120は、互いを認証する方法として「識別情報を暗号化しない方法」が設定されているものとして説明する。互いを認証する方法として「識別情報を暗号化する方法」及び「相手の鍵を利用する方法」が設定されている場合については、「1.5.通信シーケンス(識別情報を暗号化する方法)」及び「1.6.通信シーケンス(相手の鍵を利用する方法)」にてそれぞれ説明する。
また、ユーザ端末10bの識別情報通知部136は、ユーザ端末10bを特定するための識別情報をブロードキャストすることでユーザ端末10aに配布してもよい。この場合には、ユーザ端末10bの識別情報通知部136は、例えば、パッシブスキャン時のビーコンb10(図9参照)として、ユーザ端末10bを特定するための識別情報をユーザ端末10aに配布(ブロードキャスト)してもよい。また、ユーザ端末10bの識別情報通知部136は、当該識別情報をユーザ端末10aに向けてユニキャストしてもよい。この場合には、ユーザ端末10bの識別情報通知部136は、ユーザ端末10aからの要求メッセージb20に対する応答メッセージb30として、ユーザ端末10bを特定するための識別情報をユーザ端末10aに配布(ユニキャスト)してもよい。
また、ユーザ端末10bが他のユーザ端末10aに情報をユニキャストする場合には、ユーザ端末10bは、接続先の情報として、接続先であるユーザ端末10aを識別するための情報(例えば、ユーザIDやデバイスID)をあわせて送信してもよい。これにより、ユーザ端末10aは、接続先の情報に自身の識別情報が含まれているか否かに応じて、受信した情報が自身に宛てられたものか否かを判断することができる。
なお、接続先の情報は、例えば、サービス固有の暗号鍵key_Sで暗号化してもよい。この場合には、ユーザ端末10aは、対応するネットワークサービスn0にアクセスすることで、接続先の情報を復号し、復号された接続先の情報に基づき、受信した情報が自身に宛てられたものか否かを判断すればよい。なお、以降では、ユーザ端末10間で情報をユニキャストする場合には、特に説明が無い場合には、接続先の情報を含んでもよく、当該接続先の情報は、暗号鍵key_Sにより暗号化されていてもよいものとする。また、ユーザ端末10bが、ユーザ端末10aに対応する暗号鍵key_Aを既に取得している場合には、接続先の情報を暗号鍵key_Aで暗号化してもよい。この場合には、ユーザ端末10aは、自身の復号鍵で接続先の情報を復号すればよい。
(ステップS111)
ユーザ端末10aの識別情報取得部141は、ユーザ端末10bを特定するための識別情報をユーザ端末10bから取得する。このとき、ユーザ端末10aは、ネットワークサービスn0上で自身を特定するための識別情報をユーザ端末10bに返送する。この場合には、ユーザ端末10aが「識別情報を送信する側のユーザ端末10」として動作する(図4参照)。以下に、ステップS111の処理として、この場合のユーザ端末10aの動作について説明する。
ユーザ端末10bから識別情報を取得したら、ユーザ端末10aの識別情報通知部136は、自身を特定するための識別情報を識別情報記憶部135から抽出する。このとき、識別情報通知部136は、あわせてユーザ端末10bから通知されたID種別d110と同じ種別に対応する持ち主情報d10から識別情報を取得する。この場合には、暗号化されていない識別情報が抽出される。なお、ユーザ端末10bから通知されたID種別d110と同じ種別に対応する持ち主情報d10が識別情報記憶部135に記憶されていない場合(即ち、そのID種別d110を許可していない場合)には、識別情報通知部136は、ユーザ端末10bに対して応答を行わなくてもよい。また、このとき識別情報通知部136は、ユーザ端末10bに応答を行えない旨を通知してもよい。
識別情報記憶部135から自身の識別情報を抽出したら、ユーザ端末10aの識別情報通知部136は、抽出した識別情報(即ち、暗号化されていない識別情報)をユーザ端末10bに返送する。図14に示す例では、ユーザ端末10aの識別情報通知部136は、ネットワークサービスn0上でユーザuaを特定するためのユーザID「A_account」と、自信を特定するためのデバイスID「A_dev_id」とを、識別情報として返送している。なお、このときユーザ端末10aの識別情報通知部136は、ユーザID「A_account」がどのネットワークサービスn0のユーザIDを示したID種別d110を、あわせてユーザ端末10bに通知してもよい。
(ステップS121)
また、ユーザ端末10aの識別情報取得部141は、取得したユーザ端末10bを特定するための識別情報(即ち、ユーザID「B_account」及びデバイスID「B_dev_id」)をネットワークサービスn0に送信する。
なお、ユーザ端末10aがネットワークサービスn0との間で通信を行う場合には、図13に示した通信データd30aを用いてデータの送受信を行ってもよい。この場合には、例えば、送信者情報d320には、ユーザ端末10aの情報が格納される。これにより、ネットワークサービスn0は、ユーザ端末10aからの通信であると認識することができる。また、受信者情報d330には、ユーザ端末10bの情報が格納される。これにより、ネットワークサービスn0は、ソーシャルグラフを介した探索の対象として、ユーザ端末10bの識別情報(即ち、ユーザID及びデバイスID)を取得することができる。なお、以降では、ユーザ端末10a、ユーザ端末10b、及びネットワークサービスn0の間では、図13に示す通信データd30aに基づき、情報がユニキャストされるものとする。
(ステップS122)
ネットワークサービスn0(換言すると、ネットワークサービスn0を提供するサーバ50)は、ユーザ端末10aからユーザ端末10bを特定するための識別情報を取得する。ネットワークサービスn0は、取得した識別情報に基づきソーシャルグラフを探索し、ユーザ端末10aとユーザ端末10bとが関連付けられているかを確認する。図14に示す例では、ネットワークサービスn0は、ユーザID「A_account」及びデバイスID「A_dev_id」がソーシャルグラフを介してユーザID「B_account」及びデバイスID「B_dev_id」に関連付けられているかを確認する。なお、ネットワークサービスn0は、ソーシャルグラフの探索結果、即ち、ユーザ端末10aとユーザ端末10bとが関連付けられているかの確認結果を、ユーザ端末10aの識別情報取得部141に通知してもよい。また、ネットワークサービスn0上でソーシャルグラフを探索する処理は、ユーザ端末10aが実行してもよい。その場合には、ネットワークサービスn0は、ソーシャルグラフの探索に係る処理を実行するためのデータやプログラムをユーザ端末10aに提供すればよい。
ユーザ端末10aとユーザ端末10bとが関連付けられている場合には、ネットワークサービスn0は、ユーザ端末10bに関連付けられた暗号鍵key_Bを、ソーシャルグラフを介して取得する。
(ステップS123)
暗号鍵key_Bを取得できたら、ネットワークサービスn0は、取得した暗号鍵key_Bをユーザ端末10aの鍵取得部142に返送する。このとき、ネットワークサービスn0は、例えば、通信データd30aの公開鍵情報d350に、取得した暗号鍵key_Bを格納して、当該通信データd30aをユーザ端末10aに送信することで、暗号鍵key_Bをユーザ端末10aに返送してもよい。
なお、暗号鍵key_Bの取得に失敗したら、ネットワークサービスn0は、暗号鍵key_Bの取得に失敗した旨をユーザ端末10aに通知してもよい。このネットワークサービスn0からの通知を受けることで、ユーザ端末10aは、ネットワークサービスn0上で、自身がユーザ端末10bと関連付けられていないことを認識することができる。この場合には、ユーザ端末10aは、ユーザ端末10bを信頼できる相手とはみなさず、通信を確立せずに一連の処理を終了すればよい。このとき、ユーザ端末10aは、互いの認証に失敗したことをユーザ端末10bに通知してもよい。
暗号鍵key_Bを取得したら、ユーザ端末10aの鍵取得部142は、取得した暗号鍵key_Bと、ユーザ端末10bから取得したユーザID、デバイスID、及びID種別d110とを関連付けてユーザ端末10aの認証処理部144に出力する。
ユーザ端末10aの認証処理部144は、ユーザ端末10bから送信されたユーザID、デバイスID、及びID種別d110を識別情報取得部141から取得する。ユーザ端末10aの認証処理部144は、取得したユーザID、デバイスID、及びID種別d110に関連付けられた暗号鍵を、鍵情報記憶部143から抽出する。対応する暗号鍵が既に鍵情報記憶部143に記憶されている場合には、認証処理部144は、当該暗号鍵の抽出に成功する。図14に示す例では、暗号鍵key_Bが抽出される。
なお、対応する暗号鍵が鍵情報記憶部143に記憶されていない場合には、認証処理部144は、当該暗号鍵の抽出に失敗する。暗号鍵の抽出に失敗した場合には、認証処理部144は、ユーザID、デバイスID、及びID種別d110が関連付けられた暗号鍵を鍵取得部142から取得する。図14に示す例では、暗号鍵key_Bが取得される。以降は、ユーザ端末10aの認証処理部144は、暗号鍵key_Bを取得したものとして説明する。
(ステップS131)
ユーザ端末10aと同様に、ユーザ端末10bは、ユーザ端末10aを特定するための識別情報をユーザ端末10aから取得する。この場合には、ユーザ端末10bが「識別情報を受信する側のユーザ端末10」として動作する(図7参照)。具体的には、ユーザ端末10bの識別情報取得部141は、ユーザ端末10aを特定するための識別情報をユーザ端末10aから取得する。ユーザ端末10bの識別情報取得部141は、取得したユーザ端末10aを特定するための識別情報(即ち、ユーザID「A_account」及びデバイスID「A_dev_id」)をネットワークサービスn0に送信する。
(ステップS132)
ネットワークサービスn0(換言すると、ネットワークサービスn0を提供するサーバ50)は、ユーザ端末10bからユーザ端末10aを特定するための識別情報を取得する。ネットワークサービスn0は、取得した識別情報に基づきソーシャルグラフを探索し、ユーザ端末10bとユーザ端末10aとが関連付けられているかを確認する。図14に示す例では、ネットワークサービスn0は、ユーザID「B_account」及びデバイスID「B_dev_id」がソーシャルグラフを介してユーザID「A_account」及びデバイスID「A_dev_id」に関連付けられているかを確認する。
ユーザ端末10bとユーザ端末10aとが関連付けられている場合には、ネットワークサービスn0は、ユーザ端末10aに関連付けられた暗号鍵key_Aを、ソーシャルグラフを介して取得する。
(ステップS133)
暗号鍵key_Aを取得できたら、ネットワークサービスn0は、取得した暗号鍵key_Aをユーザ端末10bに返送する。このとき、ネットワークサービスn0は、例えば、通信データd30aの公開鍵情報d350に、取得した暗号鍵key_Aを格納して、当該通信データd30aをユーザ端末10bに送信することで、暗号鍵key_Aをユーザ端末10bに返送してもよい。
なお、暗号鍵key_Aの取得に失敗したら、ネットワークサービスn0は、暗号鍵key_Aの取得に失敗した旨をユーザ端末10bに通知してもよい。このネットワークサービスn0からの通知を受けることで、ユーザ端末10bは、ネットワークサービスn0上で、自身がユーザ端末10aと関連付けられていないことを認識することができる。この場合には、ユーザ端末10bは、ユーザ端末10aを信頼できる相手とはみなさず、通信を確立せずに一連の処理を終了すればよい。
暗号鍵key_Aを取得したら、ユーザ端末10bの鍵取得部142は、取得した暗号鍵key_Aと、ユーザ端末10aから取得したユーザID、デバイスID、及びID種別d110とを関連付けてユーザ端末10bの認証処理部144に出力する。なお、ここで説明したユーザ端末10bの認証処理部144は、「識別情報を送信する側のユーザ端末10」として動作する場合の「認証処理部133」に対応する。そこで、以降では、「認証処理部133」と記載した場合には「認証処理部144」と同様の構成であるものとする。
ユーザ端末10bの認証処理部144は、ユーザ端末10aから送信されたユーザID、デバイスID、及びID種別d110を識別情報取得部141から取得する。ユーザ端末10bの認証処理部144は、取得したユーザID、デバイスID、及びID種別d110に関連付けられた暗号鍵を、鍵情報記憶部143から抽出する。対応する暗号鍵が既に鍵情報記憶部143に記憶されている場合には、認証処理部144は、当該暗号鍵の抽出に成功する。図14に示す例では、暗号鍵key_Aが抽出される。
なお、対応する暗号鍵が鍵情報記憶部143に記憶されていない場合には、ユーザ端末10bの認証処理部144は、当該暗号鍵の抽出に失敗する。暗号鍵の抽出に失敗した場合には、ユーザ端末10bの認証処理部144は、ユーザID、デバイスID、及びID種別d110が関連付けられた暗号鍵を鍵取得部142から取得する。図14に示す例では、暗号鍵key_Aが取得される。以降は、ユーザ端末10bの認証処理部144は、暗号鍵key_Aを取得したものとして説明する。
(ステップS112)
ここで、再度、ユーザ端末10aの処理に着目する。ユーザ端末10aの認証処理部144は、抽出したユーザ端末10bに対応する暗号鍵key_Bに基づきデータを暗号化して、取得したユーザID及びデバイスIDにより特定されるユーザ端末10bとの間で、互いを認証する処理を実行する。
具体的には、ユーザ端末10aの認証処理部144は、ユーザ端末10aとユーザ端末10bとの間で互いの暗号鍵及び復号鍵を用いて互いを認証するための情報(以降では「NONCE」と呼ぶ場合がある)を生成する。具体的には、ユーザ端末10aの認証処理部144は、所定の方法により文字列を作成する。この作成された文字列が「NONCE」に相当する。なお、「NONCE」を生成する方法は特に限定されない。例えば、ランダムに生成された文字列でもよいし、日付や時間、ユーザIDやデバイスID等の所定の情報を組み合わせた文字列でもよい。
ユーザ端末10aの認証処理部144は、生成したNONCEを、抽出したユーザ端末10bに対応する暗号鍵key_Bで暗号化する。なお、以降では、暗号鍵key_Bで暗号化されたNONCEを「key_B:NONCE」と記載する場合がある。
(ステップS113)
ユーザ端末10aの認証処理部144は、暗号鍵key_Bで暗号化されたkey_B:NONCEをユーザ端末10bに送信する。このとき、ユーザ端末10aの認証処理部144は、例えば、通信データd30aのNONCEd340に、暗号化されたkey_B:NONCEを格納して、当該通信データd30aをユーザ端末10bに送信してもよい。
(ステップS102)
ユーザ端末10bの認証処理部133(即ち、前述の認証処理部144)は、ユーザ端末10aから暗号鍵key_Bで暗号化されたkey_B:NONCEを取得する。
ユーザ端末10bの認証処理部133は、取得したkey_B:NONCEを、鍵情報記憶部132に記憶された自身(ユーザ端末10b)に対応する復号鍵で復号する。key_B:NONCEを復号したら、ユーザ端末10bの認証処理部133は、抽出したユーザ端末10aに対応する暗号鍵key_Aに基づき復号されたNONCEを再度暗号化する。なお、以降では、暗号鍵key_Aで暗号化されたNONCEを「key_A:NONCE」と記載する場合がある。
(ステップS103)
ユーザ端末10bの認証処理部133は、暗号鍵key_Aで暗号化されたkey_A:NONCEをユーザ端末10aに送信する。このとき、ユーザ端末10bの認証処理部133は、例えば、通信データd30aのNONCEd340に、暗号化されたkey_A:NONCEを格納して、当該通信データd30aをユーザ端末10aに送信してもよい。
(ステップS114)
ユーザ端末10aの認証処理部144は、ユーザ端末10bから暗号鍵key_Aで暗号化されたkey_A:NONCEを取得する。
ユーザ端末10aの認証処理部144は、取得したkey_A:NONCEを、鍵情報記憶部132に記憶された自身(ユーザ端末10a)に対応する復号鍵で復号する。
(ステップS115)
key_A:NONCEを復号したら、ユーザ端末10aの認証処理部144は、復号されたNONCEと、自身が生成したNONCE(暗号鍵key_Bによる暗号化前のNONCE)とを比較する。このとき、ユーザ端末10a及び10bの双方で暗号化及び復号が正しく行われていれば、復号されたNONCEと、ユーザ端末10aが生成したNONCEとが一致する。この場合には、ユーザ端末10aの認証処理部144は、接続先であるユーザ端末10bを信頼できる相手として認識することが可能である。
(ステップS116)
復号されたNONCEと、自身が生成したNONCEが一致したら、ユーザ端末10aの認証処理部144は、自身(ユーザ端末10a)との相互接続を確立するための情報を暗号鍵key_Bで暗号化する。ユーザ端末10aとの相互接続を確立するための情報としては、例えば、アクセスポイントの情報が挙げられる。以降では、ユーザ端末10aとの相互接続を確立するための情報を「A_access_point」と記載する場合がある。また、暗号鍵key_Bで暗号化されたA_access_pointを「key_B:A_access_point」と記載する場合がある。
(ステップS118)
また、復号されたNONCEと自身が生成したNONCEが一致することで、ユーザ端末10aの認証処理部144は、ユーザ端末10bとの間の通信で使用した暗号鍵key_Bが正しい暗号鍵であると認識することができる。
ユーザ端末10aの認証処理部144は、取得した暗号鍵key_Bが鍵情報記憶部143に記憶されているかを確認する。当該暗号鍵key_Bが鍵情報記憶部143に記憶されていない場合には、ユーザ端末10aの認証処理部144は、ユーザID、デバイスID、及びID種別d110が関連付けられた当該暗号鍵key_Bを鍵情報記憶部143に記憶させる。このように、鍵情報記憶部143に暗号鍵key_Bを記憶させることで、ユーザ端末10aの認証処理部144は、以降にユーザ端末10bと通信を行う場合に、暗号鍵key_Bを、ネットワークサービスn0経由で改めて取得する必要がなくなる。即ち、ユーザ端末10aの認証処理部144は、以降は、ユーザ端末10bとの間で互いを認証する方法として、「相手の鍵を利用する方法」を利用することが可能となる。
(ステップS108)
ユーザ端末10bの認証処理部133は、暗号鍵key_Bで暗号化されたkey_B:A_access_pointをユーザ端末10aから取得する。ユーザ端末10aから暗号化されたkey_B:A_access_pointが通知されることで、ユーザ端末10bの認証処理部133は、ユーザ端末10aとの間の通信で使用した暗号鍵key_Aが正しい暗号鍵であると認識することができる。
ユーザ端末10bの認証処理部133は、取得した暗号鍵key_Aが鍵情報記憶部132に記憶されているかを確認する。なお、ここで説明したユーザ端末10bの鍵情報記憶部132は、「識別情報を受信する側のユーザ端末10」として動作する場合の「鍵情報記憶部143」に対応する。そのため、以降では、ユーザ端末10bが「識別情報を受信する側のユーザ端末10」として動作した際に「鍵情報記憶部143」に記憶された情報は、同様に、鍵情報記憶部132に記憶されているものとして説明する。
当該暗号鍵key_Aが鍵情報記憶部132に記憶されていない場合には、ユーザ端末10bの認証処理部133は、ユーザID、デバイスID、及びID種別d110が関連付けられた当該暗号鍵key_Aを鍵情報記憶部132に記憶させる。このように、鍵情報記憶部132に暗号鍵key_Aを記憶させることで、ユーザ端末10bの認証処理部133は、以降にユーザ端末10aと通信を行う場合に、暗号鍵key_Aを、ネットワークサービスn0経由で改めて取得する必要がなくなる。即ち、ユーザ端末10bの認証処理部133は、以降は、ユーザ端末10aとの間で互いを認証する方法として、「相手の鍵を利用する方法」を利用することが可能となる。
(ステップS109)
また、key_B:A_access_pointを復号したら、ユーザ端末10bの認証処理部133は、復号されたアクセスポイント情報A_access_pointに基づき、ユーザ端末10aに接続する。これにより、ユーザ端末10aとユーザ端末10bとの間で相互接続が確立する。
以上のように、本実施形態に係る無線通信システムによれば、例えばユーザ端末10aが他のユーザ端末10bから接続要求を受けた場合に、ユーザ端末10a及び10bがネットワークサービスn0上で関連付けられているかを確認する。そして、ユーザ端末10a及び10bがネットワークサービスn0上で関連付けられている場合には、ユーザ端末10aは、ネットワークサービスn0を介してユーザ端末10bに対応する暗号鍵key_Bを取得し、ユーザ端末10bとの間で暗号化通信を行う。即ち、本実施形態に係る無線通信システムに依れば、異なるユーザ端末10a及び10b間で相互接続を確立する場合に、簡便かつ安全に通信時のセキュリティを確保することが可能となる。これにより、各ユーザ端末10のユーザは、複雑な操作を実行することなく、自身の操作するユーザ端末10をアドホックネットワークに参加させることが可能となる。
[1.5.通信シーケンス(識別情報を暗号化する方法)]
次に、図15を参照しながら、本実施形態に係る無線通信システムにおいて、識別情報の暗号化を行う場合の通信シーケンスについて説明する。図15は、本実施形態に係る無線通信システムにおける通信処理シーケンスの一例を示したシーケンス図であり、識別情報の暗号化を行う場合の一連のシーケンスについて示している。なお、図15に示す例は、ユーザ端末10bがユーザ端末10aに対して接続要求を出す場合について示している。なお、以降では、「1.4.通信シーケンス(識別情報を暗号化しない方法)」で説明した内容と異なる部分に着目して説明し、同様の部分については説明を省略するものとする。
(ステップS201)
まず、ユーザ端末10bの識別情報通知部136は、識別情報記憶部135に持ち主情報d10として記憶された、ユーザ端末10bを特定するための識別情報のうち、暗号鍵key_Sで暗号化された識別情報をユーザ端末10aに配布する。暗号鍵key_Sは、ネットワークサービスn0上で管理された当該ネットワークサービスn0固有の暗号鍵である。図15に示す例では、識別情報通知部136は、暗号鍵key_Sで暗号化された、ネットワークサービスn0上におけるユーザubのユーザID「B_account」と、ユーザ端末10bのデバイスID「B_dev_id」とを識別情報として配布している。なお、以降では、暗号鍵key_Sで暗号化されたユーザID「B_account」を、「key_S:B_account」と記載する場合がある。同様に、暗号鍵key_Sで暗号化されたデバイスID「B_dev_id」を、「key_S:B_dev_id」と記載する場合がある。即ち、図15では、ユーザ端末10bの識別情報通知部136は、暗号化されたユーザID「key_S:B_account」と、暗号化されたデバイスID「key_S:B_dev_id」とをユーザ端末10aに配布している。
なお、このときユーザ端末10bの識別情報通知部136は、ID種別d110を、あわせてユーザ端末10aに通知してもよい。ID種別d110を受信したユーザ端末10aは、当該ID種別に基づき、ユーザID「key_S:B_account」がどのネットワークサービスn0のユーザIDかや、互いを認証する方法としてどの方法を許可しているかを認識できる。なお、ここでは、ID種別d120は、互いを認証する方法として「識別情報を暗号化する方法」が設定されているものとして説明する。即ち、このID種別d120により、ユーザ端末10aは、ユーザID「key_S:B_account」が、サービス固有の暗号鍵key_Sで暗号化されていることを認識することができる。
(ステップS211)
ユーザ端末10aの識別情報取得部141は、サービス固有の暗号鍵key_Sで暗号化されたユーザ端末10bを特定するための識別情報をユーザ端末10bから取得する。このとき、ユーザ端末10aは、ネットワークサービスn0上で自身を特定するための識別情報をユーザ端末10bに返送する。この場合には、ユーザ端末10aが「識別情報を送信する側のユーザ端末10」として動作する。以下に、ステップS211の処理として、この場合のユーザ端末10aの動作について説明する。
サービス固有の暗号鍵key_Sで暗号化された識別情報を取得したら、ユーザ端末10aの識別情報通知部136は、自身を特定するための識別情報を識別情報記憶部135から抽出する。このとき、識別情報通知部136は、あわせてユーザ端末10bから通知されたID種別d110と同じ種別に対応する持ち主情報d10から識別情報を取得する。この場合には、ユーザ端末10bが識別情報の暗号化に用いたサービス固有の暗号鍵key_Sで暗号化された識別情報が抽出される。なお、ユーザ端末10bから通知されたID種別d110と同じ種別に対応する持ち主情報d10が識別情報記憶部135に記憶されていない場合(即ち、そのID種別d110を許可していない場合)には、識別情報通知部136は、ユーザ端末10bに対して応答を行わなくてもよい。また、このとき識別情報通知部136は、ユーザ端末10bに応答を行えない旨を通知してもよい。
識別情報記憶部135から自身の識別情報を抽出したら、ユーザ端末10aの識別情報通知部136は、抽出した識別情報(即ち、暗号鍵key_Sで暗号化された識別情報)をユーザ端末10bに返送する。図15に示す例では、識別情報通知部136は、暗号鍵key_Sで暗号化された、ネットワークサービスn0上でユーザuaを特定するためのユーザID「A_account」と、自身のデバイスID「A_dev_id」とを、識別情報として返送している。なお、以降では、暗号鍵key_Sで暗号化されたユーザID「A_account」を、「key_S:A_account」と記載する場合がある。同様に、暗号鍵key_Sで暗号化されたデバイスID「A_dev_id」を、「key_S:A_dev_id」と記載する場合がある。即ち、図15では、ユーザ端末10aの識別情報通知部136は、暗号化されたユーザID「key_S:A_account」と、暗号化されたデバイスID「key_S:A_dev_id」とをユーザ端末10bに配布している。なお、このときユーザ端末10aの識別情報通知部136は、ユーザID「A_account」がどのネットワークサービスn0のユーザIDを示したID種別d110を、あわせてユーザ端末10bに通知してもよい。
(ステップS221)
また、ユーザ端末10aの識別情報取得部141は、取得したユーザ端末10bを特定するための暗号化された識別情報(即ち、ユーザID「key_S:B_account」及びデバイスID「key_S:B_dev_id」)をネットワークサービスn0に送信する。なお、以降では、ユーザ端末10a、ユーザ端末10b、及びネットワークサービスn0の間では、図13に示す通信データd30aに基づき、情報がユニキャストされるものとする。
(ステップS222)
ネットワークサービスn0(換言すると、ネットワークサービスn0を提供するサーバ50)は、ユーザ端末10aから、サービス固有の暗号鍵key_Sで暗号化された、ユーザ端末10bを特定するための識別情報(即ち、ユーザID「key_S:B_account」及びデバイスID「key_S:B_dev_id」)を取得する。ネットワークサービスn0は、暗号鍵key_Sで暗号化された識別情報を自身の復号鍵で復号する。これにより、ネットワークサービスn0は、ユーザID「B_account」及びデバイスID「B_dev_id」を取得する。
ネットワークサービスn0は、取得した識別情報に基づきソーシャルグラフを探索し、ユーザ端末10aとユーザ端末10bとが関連付けられているかを確認する。図15に示す例では、ネットワークサービスn0は、ユーザID「A_account」及びデバイスID「A_dev_id」がソーシャルグラフを介してユーザID「B_account」及びデバイスID「B_dev_id」に関連付けられているかを確認する。なお、ネットワークサービスn0は、ソーシャルグラフの探索結果、即ち、ユーザ端末10aとユーザ端末10bとが関連付けられているかの確認結果を、ユーザ端末10aの識別情報取得部141に通知してもよい。また、ネットワークサービスn0上でソーシャルグラフを探索する処理は、ユーザ端末10aが実行してもよい。その場合には、ネットワークサービスn0は、ソーシャルグラフの探索に係る処理を実行するためのデータやプログラムをユーザ端末10aに提供すればよい。
ユーザ端末10aとユーザ端末10bとが関連付けられている場合には、ネットワークサービスn0は、ユーザ端末10bに関連付けられた暗号鍵key_Bを、ソーシャルグラフを介して取得する。
(ステップS223)
暗号鍵key_Bを取得できたら、ネットワークサービスn0は、取得した暗号鍵key_Bを、ユーザ端末10aに関連付けられてネットワークサービスn0上で管理された暗号鍵key_Aで暗号化する。以降では、暗号鍵key_Aで暗号化された暗号鍵key_Bを「key_A:key_B」と記載する場合がある。ネットワークサービスn0は、暗号鍵key_Aで暗号化された暗号鍵「key_A:key_B」を、ユーザ端末10aの鍵取得部142に返送する。
なお、暗号鍵key_Bの取得に失敗したら、ネットワークサービスn0は、暗号鍵key_Bの取得に失敗した旨をユーザ端末10aに通知してもよい。このネットワークサービスn0からの通知を受けることで、ユーザ端末10aは、ネットワークサービスn0上で、自身がユーザ端末10bと関連付けられていないことを認識することができる。この場合には、ユーザ端末10aは、ユーザ端末10bを信頼できる相手とはみなさず、通信を確立せずに一連の処理を終了すればよい。
暗号化された暗号鍵「key_A:key_B」を取得したら、ユーザ端末10aの鍵取得部142は、取得した当該暗号鍵「key_A:key_B」を、鍵情報記憶部143に記憶されたユーザ端末10aに対応する復号鍵で復号する。これにより、ユーザ端末10aの鍵取得部142は、暗号鍵key_Bを取得する。暗号鍵key_Bを取得したら、ユーザ端末10aの鍵取得部142は、暗号鍵key_Bと、ユーザ端末10bから取得したユーザID、デバイスID、及びID種別d110とを関連付けてユーザ端末10aの認証処理部144に出力する。
(ステップS231)
ユーザ端末10aと同様に、ユーザ端末10bは、ユーザ端末10aを特定するための暗号化された識別情報をユーザ端末10aから取得する。この場合には、ユーザ端末10bが「識別情報を受信する側のユーザ端末10」として動作する(図7参照)。具体的には、ユーザ端末10bの識別情報取得部141は、ユーザ端末10aを特定するための暗号化された識別情報をユーザ端末10aから取得する。ユーザ端末10bの識別情報取得部141は、取得したユーザ端末10aを特定するための暗号化された識別情報(即ち、ユーザID「key_S:A_account」及びデバイスID「key_S:A_dev_id」)をネットワークサービスn0に送信する。
(ステップS232)
ネットワークサービスn0(換言すると、ネットワークサービスn0を提供するサーバ50)は、ユーザ端末10bから、サービス固有の暗号鍵key_Sで暗号化された、ユーザ端末10aを特定するための識別情報を取得する。ネットワークサービスn0は、暗号鍵key_Sで暗号化された識別情報を自身の復号鍵で復号する。これにより、ネットワークサービスn0は、ユーザID「A_account」及びデバイスID「A_dev_id」を取得する。
ネットワークサービスn0は、取得した識別情報に基づきソーシャルグラフを探索し、ユーザ端末10aとユーザ端末10bとが関連付けられているかを確認する。図15に示す例では、ネットワークサービスn0は、ユーザID「A_account」及びデバイスID「A_dev_id」がソーシャルグラフを介してユーザID「B_account」及びデバイスID「B_dev_id」に関連付けられているかを確認する。
ユーザ端末10aとユーザ端末10bとが関連付けられている場合には、ネットワークサービスn0は、ユーザ端末10aに関連付けられた暗号鍵key_Aを、ソーシャルグラフを介して取得する。
(ステップS233)
暗号鍵key_Aを取得できたら、ネットワークサービスn0は、取得した暗号鍵key_Aを、ユーザ端末10bに関連付けられてネットワークサービスn0上で管理された暗号鍵key_Bで暗号化する。以降では、暗号鍵key_Bで暗号化された暗号鍵key_Aを「key_B:key_A」と記載する場合がある。ネットワークサービスn0は、暗号鍵key_Bで暗号化された暗号鍵「key_B:key_A」を、ユーザ端末10bの鍵取得部142に返送する。
なお、暗号鍵key_Aの取得に失敗したら、ネットワークサービスn0は、暗号鍵key_Aの取得に失敗した旨をユーザ端末10bに通知してもよい。このネットワークサービスn0からの通知を受けることで、ユーザ端末10bは、ネットワークサービスn0上で、自身がユーザ端末10aと関連付けられていないことを認識することができる。この場合には、ユーザ端末10bは、ユーザ端末10aを信頼できる相手とはみなさず、通信を確立せずに一連の処理を終了すればよい。
暗号化された暗号鍵「key_B:key_A」を取得したら、ユーザ端末10bの鍵取得部142は、取得した当該暗号鍵「key_B:key_A」を、鍵情報記憶部143に記憶されたユーザ端末10bに対応する復号鍵で復号する。これにより、ユーザ端末10bの鍵取得部142は、暗号鍵key_Aを取得する。暗号鍵key_Aを取得したら、ユーザ端末10bの鍵取得部142は、暗号鍵key_Aと、ユーザ端末10aから取得したユーザID、デバイスID、及びID種別d110とを関連付けてユーザ端末10bの認証処理部144に出力する。
なお、以降の処理は、前述した「1.4.通信シーケンス(識別情報を暗号化しない方法)」と同様である。そのため、詳細な説明は省略する。
以上のように、「識別情報を暗号化する方法」に基づき互いを認証することで、ユーザ端末10a及び10bは、互いの識別情報を暗号化して送受信することが可能となる。これにより、ユーザ端末10a及び10bは、「識別情報を暗号化しない方法」に比べて、より安全に互いを認証することが可能となる。
[1.6.通信シーケンス(相手の鍵を利用する方法)]
次に、図16を参照しながら、本実施形態に係る無線通信システムにおいて、ユーザ端末10a及び10bのそれぞれが、相手の暗号鍵(公開鍵)を既に取得しており、相手の暗号鍵を利用して互いを認証する場合の通信シーケンスについて説明する。図16は、本実施形態に係る無線通信システムにおける通信処理シーケンスの一例を示したシーケンス図であり、通信相手の公開鍵を既に取得している場合の一連のシーケンスについて示している。なお、以降では、ユーザ端末10bが、ユーザ端末10aがブロードキャストしたビーコンb10を受信したものとして説明する。
(ステップS301)
ユーザ端末10bは、ユーザ端末10aがブロードキャストしたビーコンb10を受信する。このとき、ユーザ端末10bは、識別情報を受信する側のユーザ端末10として動作する(図5参照)。即ち、ユーザ端末10bの識別情報取得部141は、ユーザ端末10aを特定するための識別情報をユーザ端末10aから取得する。このとき、ユーザ端末10bの識別情報取得部141は、ID種別d110を示す情報をあわせて取得する。
具体的な一例として、ユーザ端末10bの識別情報取得部141は、ビーコンb10として、ユーザ端末10aから通信データd20を取得する。ユーザ端末10bの識別情報取得部141は、取得した通信データd20から持ち主情報d250に格納された各持ち主情報フィールドd253を抽出する。ユーザ端末10bの識別情報取得部141は、抽出された各持ち主情報フィールドd253のID種別領域d254に格納されたID種別d110を参照し、ユーザ端末10aが、互いを認証する方法として「相手の鍵を利用する方法」を許可しているか否かを確認する。具体的には、ユーザ端末10bの識別情報取得部141は、ID種別d110が「内部レコード探索用暗号化アカウント」の持ち主情報d10が含まれている場合に、ユーザ端末10aが、「相手の鍵を利用する方法」を許可しているものとして認識する。
ユーザ端末10aが「相手の鍵を利用する方法」を許可している場合には、ユーザ端末10bの識別情報取得部141は、ビーコンb10の持ち主情報d250から、該当するID種別d110が設定された持ち主情報フィールドd253を抽出する。そして、識別情報取得部141は、抽出した持ち主情報フィールドd253から、ユーザID領域d255に設定されたユーザIDを抽出する。識別情報取得部141は、抽出したユーザIDがサービス固有の暗号鍵key_Sで暗号化されている場合には、ID種別d110で示されたネットワークサービスn0にアクセスし、ユーザIDを復号させる。これにより、ユーザ端末10bの識別情報取得部141は、ユーザ端末10aの識別情報(例えば、ユーザIDやデバイスID)を認識することが可能となる。
次に、ユーザ端末10bは、識別情報を送信する側のユーザ端末10として動作する。即ち、ユーザ端末10bの識別情報通知部136は、ユーザID、デバイスID、及びID種別d110を識別情報取得部141から取得する。識別情報通知部136は、取得したユーザID、デバイスID、及びID種別d110に関連付けられた暗号鍵を、鍵情報記憶部132から抽出する。なお、ここで説明したユーザ端末10bの鍵情報記憶部132は、「識別情報を受信する側のユーザ端末10」として動作する場合の「鍵情報記憶部143」に対応する。そのため、以降では、ユーザ端末10bが「識別情報を受信する側のユーザ端末10」として動作した際に「鍵情報記憶部143」に記憶された情報は、同様に、鍵情報記憶部132に記憶されているものとして説明する。
ユーザ端末10aとの間で既に暗号鍵の交換が行われている場合には、識別情報通知部136は、ユーザ端末10aに対応する暗号鍵key_Aを抽出する。なお、暗号鍵を抽出できなった場合には、識別情報通知部136は、上述した、「識別情報を暗号化しない方法」及び「識別情報を暗号化する方法」のうちのいずれかにより、ユーザ端末10aとの間で互いを認証してもよい。以降では、識別情報通知部136は、暗号鍵key_Aを抽出したものとして説明する。
暗号鍵key_Aを抽出したら、ユーザ端末10bの識別情報通知部136は、抽出した暗号鍵key_Aに対応するネットワークサービスn0のユーザIDを、識別情報記憶部135に記憶された持ち主情報d10から抽出する。具体的には、識別情報通知部136は、各持ち主情報d10のID種別d110を参照し、暗号鍵key_Aに対応するネットワークサービスn0に対応する持ち主情報d10を特定する。識別情報通知部136は、特定した持ち主情報d10の持ち主IDd120からユーザIDを抽出すればよい。
ユーザ端末10bの識別情報通知部136は、ユーザ端末10bを特定するための識別情報を、暗号鍵key_Aで暗号化する。図16に示す例では、ユーザ端末10bの識別情報通知部136は、ユーザubのネットワークサービスn0におけるユーザID「B_acccount」と、ユーザ端末10bを特定するためのデバイスID「B_dev_id」とを暗号鍵key_Aで暗号化している。なお、以降では、暗号鍵key_Aで暗号化されたユーザID「B_acccount」を、「key_A:B_account」と記載する場合がある。同様に、暗号鍵key_Aで暗号化されたデバイスID「B_dev_id」を、「key_A:B_dev_id」と記載する場合がある。
ユーザ端末10bの識別情報通知部136は、暗号鍵key_Aで暗号化されたユーザ端末10bを特定するための識別情報をユーザ端末10aに送信する。このとき、識別情報通知部136は、送信する識別情報が、「内部レコード探索用暗号化アカウント」であることを示すID種別d110を、あわせてユーザ端末10aに送信してもよい。このID種別d110により、ユーザ端末10aは、受信した識別情報が、どのネットワークサービスn0に対応しているかや、自身の暗号鍵key_Aで暗号化されていることを認識することができる。なお、以降では、識別情報通知部136は、ID種別d110をユーザ端末10aに送信するものとして説明する。また、以降では、ユーザ端末10bの識別情報通知部136は、暗号化されたユーザID「key_A:B_acccount」及び暗号化されたデバイスID「key_A:B_dev_id」を、ユーザ端末10aに送信するものとして説明する。また、以降では、ユーザ端末10a及び10bの間では、図13に示す通信データd30aに基づき、情報をユニキャストするものとする。
(ステップS311)
ユーザ端末10aの識別情報取得部141は、ユーザ端末10bから、ユーザ端末10bを特定するための識別情報として、暗号鍵key_Aで暗号化されたユーザID「B_acccount」及びデバイスID「B_dev_id」を取得する。
識別情報取得部141は、ユーザ端末10bから取得したID種別d110に基づき、取得した識別情報が「内部レコード探索用暗号化アカウント」を示しているか否かを判別する。ここでは、取得したID種別d110は、「内部レコード探索用暗号化アカウント」を示しているものとして説明する。ユーザ端末10aの識別情報取得部141は、鍵情報記憶部143に記憶されたユーザ端末10aに対応する復号鍵で、暗号化されたユーザID「key_A:B_acccount」及び暗号化されたデバイスID「key_A:B_dev_id」を復号する。これにより、識別情報取得部141は、復号されたユーザID「B_acccount」及びデバイスID「B_dev_id」を取得する。
(ステップS312)
識別情報取得部141は、ID種別d110が示すネットワークサービスn0の種別と、復号されたユーザID「B_acccount」及びデバイスID「B_dev_id」とに関連付けられた暗号鍵を鍵情報記憶部143から抽出する。この場合には、ユーザ端末10bに対応する暗号鍵key_Bが抽出される。
(ステップS112)
ユーザ端末10aの認証処理部144は、抽出したユーザ端末10bに対応する暗号鍵key_Bに基づきデータを暗号化して、取得したユーザID及びデバイスIDにより特定されるユーザ端末10bとの間で、互いを認証する処理を実行する。なお、以降の処理は、前述した、「1.4.通信シーケンス(識別情報を暗号化しない方法)」や「1.5.通信シーケンス(識別情報を暗号化する方法)」と同様である。そのため、詳細な説明は省略する。
以上のように、「相手の鍵を利用する方法」に基づき互いを認証する場合には、ユーザ端末10a及び10bは、ユーザ端末10a及び10bが関連付けられているかをネットワークサービスn0を介して確認する必要がなくなる。そのため、「識別情報を暗号化しない方法」及び「識別情報を暗号化する方法」に比べて、ユーザ端末10a及び10bがネットワークサービスn0にアクセスする回数を制限することが可能となる。これにより、ユーザ端末10a及び10bは、互いを認証する際の、ネットワークサービスn0のような外部ネットワークへのアクセスに伴う負荷を軽減することが可能となる。
なお、上記に示す例では、ユーザ端末10bは、持ち主情報d250内に、ID種別d110が、「内部レコード探索用暗号化アカウント」であることを示す情報が含まれているか否かに応じて、「相手の鍵を利用する方法」が利用可能か否かを判断していた。一方で、ユーザ端末10bは、ユーザ端末10aとの間で既に互いの暗号鍵を交換している場合には、自動で「相手の鍵を利用する方法」を選択するように動作してもよい。その場合には、ユーザ端末10bは、ID種別d110が「アカウント」か「暗号化アカウント」の持ち主情報d10に基づき、ユーザ端末10aの識別情報を特定する。そして、ユーザ端末10bは、特定した識別情報に関連付けられた暗号鍵を既に取得している場合には、「相手の鍵を利用する方法」を選択するように動作すればよい。なお、この場合には、必ずしもID種別d110に「内部レコード探索用暗号化アカウント」を示す情報が設定されている必要はない。
[1.7.まとめ]
以上のように、本実施形態に係る無線通信システムに依れば、例えばユーザ端末10aが他のユーザ端末10bから接続要求を受けた場合に、ユーザ端末10a及び10bがネットワークサービスn0上で関連付けられているかを確認する。そして、ユーザ端末10a及び10bがネットワークサービスn0上で関連付けられている場合には、ユーザ端末10aは、ネットワークサービスn0を介してユーザ端末10bに対応する暗号鍵key_Bを取得し、ユーザ端末10bとの間で暗号化通信を行う。即ち、本実施形態に係る無線通信システムに依れば、異なるユーザ端末10a及び10b間で相互接続を確立する場合に、簡便かつ安全に通信時のセキュリティを確保することが可能となる。これにより、各ユーザ端末10のユーザは、複雑な操作を実行することなく、自身の操作するユーザ端末10をアドホックネットワークに参加させることが可能となる。
なお、上記に示す例では、ユーザIDとデバイスIDとを組み合わせることで、ネットワークサービスn0上でユーザ端末10を一意に特定する例について説明した。しかしながら、ネットワークサービスn0上でユーザ端末10を一意に特定できれば上記に示す例には限定されない。例えば、各ユーザが使用するユーザ端末10ごとに暗号鍵を使い分けない場合には、ネットワークサービスn0上においてユーザ間の関連付けのみで、接続先のユーザ端末10を特定して暗号鍵を取得してもよい。
また、ネットワークサービスn0のソーシャルグラフによる関連付けはユーザ間のみに限られない。例えば、各ユーザが所有するユーザ端末10を直接関連付けてもよい。例えば、図17は、ネットワークサービスn0上におけるユーザ端末10間の関連付けの他の一例を示した図であり、ユーザ端末10間を直接関連付ける場合の例について説明している。
図17に示す例では、ユーザuaの所持するユーザ端末10a3と、ユーザubの所持するユーザ端末10b3とが、直接関連付けられている(関係c12)。このような構成の場合には、各ユーザ端末10間を関連付けるソーシャルグラフに基づき、接続先のユーザ端末10を特定できるため、必ずしも、ユーザuaとユーザubとが関連付けられている必要はない。
また、他の一例として、ユーザIDを使用することなく、ユーザ端末10を直接ネットワークサービスn0に登録できるようにしてもよい。例えば、図18は、ネットワークサービスn0上におけるユーザ端末10間の関連付けの他の一例を示した図であり、ネットワークサービスn0にユーザ端末10を直接登録する場合の一例について示している。
図18に示す例では、ネットワークサービスn0上にユーザ端末10a〜10fが登録されており、ユーザ端末10aとユーザ端末10dとが、直接関連付けられている(関係c13)。このような構成の場合においても、各ユーザ端末10間を関連付けるソーシャルグラフに基づき、接続先のユーザ端末10を特定できる。
なお、上記に示した例はあくまで一例であり、ネットワークサービスn0上のソーシャルグラフを介して、接続先のユーザ端末10を特定して暗号鍵を取得できれば、関連付ける情報の種別や関連付けの方法は限定されない。
<2.第2の実施形態>
[2.1.無線通信システムの概略]
第1の実施形態に係る無線通信システムでは、ユーザ端末10a及び10bの双方それぞれが、ネットワークサービスn0から相手の暗号鍵を取得して、互いを認証する場合の例について説明した。第2の実施形態では、ユーザ端末10a及び10bのうち一方がネットワークサービスn0から相手の暗号鍵key_Bを取得すればよい点で第1の実施形態と異なる。
具体的には、第2の実施形態では、例えば、ユーザ端末10aがネットワークサービスn0から相手の暗号鍵key_Bを取得し、取得した暗号鍵key_Bで自身の暗号鍵key_Aを暗号化して相手に送信する。また、ユーザ端末10bは、ユーザ端末10aから暗号化された暗号鍵key_Aを取得し、取得した暗号化済みの暗号鍵key_Aを自身の復号鍵で復号することで、暗号鍵key_Aを取得する。これにより、ユーザ端末10bのみがネットワークサービスn0にアクセスすればよくなるため、第1の実施形態に係る無線通信システムに比べて、ユーザ端末10a及び10bの間の通信シーケンスを効率化することが可能となる。以降では、本実施形態に係る無線通信システムの詳細について説明する。
まず、図19を参照しながら、本実施形態に係る無線通信システムにおいて特定の相手と情報を送受信する(ユニキャストする)場合に用いる通信データd30bについて説明する。図19は、本実施形態に係る無線通信システムにおいて情報を送受信するための通信データd30bのデータ構造の一例を示した図である。
図19に示すように、本実施形態に係る通信データd30bは、NONCEd340を含まない点で、第1の実施形態に係る通信データd30a(図13参照)と異なる。本実施形態に係る無線通信システムでは、例えば、ユーザ端末10aは、NONCEに替えて、自身に対応する暗号鍵key_Aを、接続先であるユーザ端末10bの暗号鍵key_Bで暗号化して他のユーザ端末10bに送信する。この暗号鍵key_Bで暗号化された暗号鍵key_Aは、ユーザ端末10bのみが自身に対応する復号鍵で復号できる。そのため、ユーザ端末10aは、暗号鍵key_Bで暗号化された情報を復号できるユーザ端末10bに対してのみ、自身に対応する暗号鍵key_Aを安全に送付することが可能となる。なお、詳細については後述する。
また、その他の情報については、第1の実施形態に係る通信データd30aと同様のため詳細な説明は省略する。
[2.2.通信シーケンス(識別情報を暗号化しない方法)]
次に、本実施形態に係る無線通信システムの通信シーケンスについて説明する。まず、図20を参照しながら、本実施形態に係る通信システムにおいて、識別情報の暗号化を行わない場合の通信シーケンスについて説明する。図20は、本実施形態に係る無線通信システムにおける通信処理シーケンスの一例を示したシーケンス図であり、識別情報の暗号化を行わない場合の一連のシーケンスについて示している。なお、図20に示す例は、ユーザ端末10bがユーザ端末10aに対して接続要求を出す場合について示している。
(ステップS401)
まず、ユーザ端末10bの識別情報通知部136は、ネットワークサービスn0上でユーザ端末10bを特定するための識別情報をユーザ端末10aに配布する。図20に示す例では、識別情報通知部136は、識別情報として、ネットワークサービスn0上におけるユーザubのユーザID「B_account」と、ユーザ端末10bのデバイスID「B_dev_id」をユーザ端末10aに配布している。
なお、このときユーザ端末10bの識別情報通知部136は、ID種別d110を、あわせてユーザ端末10aに通知してもよい。これにより、ID種別d110を受信したユーザ端末10aは、当該ID種別に基づき、ユーザID「B_account」がどのネットワークサービスn0のユーザIDかや、互いを認証する方法としてどの方法を許可しているかを認識できる。
なお、本項では、ID種別d120は、互いを認証する方法として「識別情報を暗号化しない方法」が設定されているものとして説明する。互いを認証する方法として「識別情報を暗号化する方法」及び「相手の鍵を利用する方法」が設定されている場合については、「2.3.通信シーケンス(識別情報を暗号化する方法)」及び「2.4.通信シーケンス(相手の鍵を利用する方法)」にてそれぞれ説明する。
また、ユーザ端末10bの識別情報通知部136は、ユーザ端末10bを特定するための識別情報をブロードキャストすることでユーザ端末10aに配布してもよい。この場合には、ユーザ端末10bの識別情報通知部136は、例えば、パッシブスキャン時のビーコンb10(図9参照)として、ユーザ端末10bを特定するための識別情報をユーザ端末10aに配布(ブロードキャスト)してもよい。また、ユーザ端末10bの識別情報通知部136は、当該識別情報をユーザ端末10aに向けてユニキャストしてもよい。この場合には、ユーザ端末10bの識別情報通知部136は、ユーザ端末10aからの要求メッセージb20に対する応答メッセージb30として、ユーザ端末10bを特定するための識別情報をユーザ端末10aに配布(ユニキャスト)してもよい。
(ステップS411)
ユーザ端末10bの識別情報通知部136が、ユーザ端末10aに対してユーザ端末10bを特定するための識別情報をユニキャストした場合には、ユーザ端末10aは、ユーザ端末10bから取得した情報が自分宛か否かを判別してもよい。この場合には、ユーザ端末10aは、例えば、通信データd30b(図19参照)の受信者情報d330に自身の情報(即ち、ユーザuaのユーザIDや、ユーザ端末10aのデバイスID)が設定されているか否かにより、自分宛か否かを判別してもよい。なお、ユーザ端末10aは、ユーザ端末10bから取得した情報が自分宛ではなかった場合には、ユーザ端末10bに拒否通知を送信し、通信シーケンスを直ちに終了させてもよい。
(ステップS121〜S123)
なお、本実施形態に係るステップS121〜S123に係る処理は、前述した第1の実施形態に係る無線通信システムのステップS121〜S123(図14参照)と同様である。即ち、ユーザ端末10aの識別情報取得部141は、取得したユーザ端末10bを特定するための識別情報をネットワークサービスn0に送信する。その応答として、ユーザ端末10aの識別情報取得部141は、ユーザ端末10bに対応する暗号鍵key_Bを取得する。識別情報取得部141は、取得した暗号鍵key_Bを、識別情報取得部141が取得したユーザID、デバイスID、及びID種別d110と関連付けてユーザ端末10aの認証処理部144に出力する。なお、以降では、ユーザ端末10a、ユーザ端末10b、及びネットワークサービスn0の間では、図19に示す通信データd30bに基づき、情報がユニキャストされるものとする。
(ステップS412)
なお、暗号鍵key_Bの取得に失敗したら、ネットワークサービスn0は、暗号鍵key_Bの取得に失敗した旨をユーザ端末10aに通知してもよい。このネットワークサービスn0からの通知を受けることで、ユーザ端末10aは、ネットワークサービスn0上で、自身がユーザ端末10bと関連付けられていないことを認識することができる。この場合には、ユーザ端末10aは、ユーザ端末10bを信頼できる相手とはみなさず、通信を確立せずに一連の処理を終了すればよい。
また、ユーザ端末10bは、所定の時間内にネットワークサービスn0からの応答がなかった場合(即ち、所定の時間内に暗号鍵key_Bが取得できなかった場合)についても同様に、暗号鍵key_Bの取得に失敗した旨をユーザ端末10aに通知してもよい。
(ステップS413)
暗号鍵key_Bが取得できたら、ユーザ端末10aの認証処理部144は、取得した暗号鍵key_Bが鍵情報記憶部143に記憶されているかを確認する。当該暗号鍵key_Bが鍵情報記憶部143に記憶されていない場合には、ユーザ端末10aの認証処理部144は、ユーザID、デバイスID、及びID種別d110が関連付けられた当該暗号鍵key_Bを鍵情報記憶部143に記憶させる。このように、鍵情報記憶部143に暗号鍵key_Bを記憶させることで、ユーザ端末10aの認証処理部144は、以降にユーザ端末10bと通信を行う場合に、暗号鍵key_Bを、ネットワークサービスn0経由で改めて取得する必要がなくなる。即ち、ユーザ端末10aの認証処理部144は、以降は、ユーザ端末10bとの間で互いを認証する方法として、「相手の鍵を利用する方法」を利用することが可能となる。
(ステップS414)
また、ユーザ端末10aの認証処理部144は、鍵情報記憶部143に記憶されたユーザ端末10aに対応する暗号鍵key_Aを抽出する。
ユーザ端末10aの認証処理部144は、ユーザ端末10aとの相互接続を確立するための情報を、暗号鍵key_Bで暗号化する。ユーザ端末10aとの相互接続を確立するための情報としては、例えば、アクセスポイントの情報が挙げられる。以降では、ユーザ端末10aとの相互接続を確立するための情報を「A_access_point」と記載する場合がある。なお、以降では、暗号鍵key_Bで暗号化されたA_access_pointを「key_B:A_access_point」と記載する場合がある。
ユーザ端末10aの認証処理部144は、ユーザ端末10aを特定するための識別情報と、暗号鍵key_Aと、暗号鍵key_Bで暗号化されたkey_B:A_access_pointをユーザ端末10bに送信する。なお、図20に示す例では、認証処理部144は、識別情報として、ネットワークサービスn0上におけるユーザuaのユーザID「A_account」と、ユーザ端末10aのデバイスID「A_dev_id」を用いている。なお、以降では、認証処理部144は、識別情報として、ユーザID「A_account」と、デバイスID「A_dev_id」とをユーザ端末10bに送信するものとして説明する。
また、このとき、ユーザ端末10aは、ネットワークサービスn0の種別を特定するための情報として、ID種別d110をユーザ端末10bに送信してもよい。なお、以降では、ユーザ端末10aの認証処理部144は、ID種別d110をユーザ端末10bに送信するものとして説明する。
(ステップS402)
ユーザ端末10bの認証処理部133は、A_account、A_dev_id、及び、key_Aと、暗号鍵key_Bで暗号化されたkey_B:A_access_pointとをユーザ端末10aから取得する。また、このときユーザ端末10bの認証処理部133は、ユーザ端末10aからID種別d110を取得してもよい。ID種別d110を取得することで、認証処理部133は、ユーザID「A_account」が、どのネットワークサービスn0に対応しているかを認識することができる。
ユーザ端末10bの認証処理部133は、鍵情報記憶部132に記憶された自身に対応する復号鍵で、key_B:A_access_pointを復号する。これにより、認証処理部133は、復号されたアクセスポイント情報A_access_pointを取得する。
なお、ユーザ端末10b以外の他のユーザ端末10は、暗号鍵key_Bで暗号化されたデータを復号できない。そのため、アクセスポイント情報A_access_pointは、ユーザ端末10b以外の他のユーザ端末10には取得されないこととなる。
(ステップS403)
ユーザ端末10bの認証処理部133は、取得した暗号鍵key_Aが鍵情報記憶部132に記憶されているかを確認する。なお、ここで説明したユーザ端末10bの鍵情報記憶部132は、「識別情報を受信する側のユーザ端末10」として動作する場合の「鍵情報記憶部143」に対応する。そのため、以降では、ユーザ端末10bが「識別情報を受信する側のユーザ端末10」として動作した際に「鍵情報記憶部143」に記憶された情報は、同様に、鍵情報記憶部132に記憶されているものとして説明する。
当該暗号鍵key_Aが鍵情報記憶部132に記憶されていない場合には、ユーザ端末10bの認証処理部133は、取得したユーザID「A_account」及びデバイスID「A_dev_id」と、ID種別d110とを当該暗号鍵key_Aに関連付ける。認証処理部133は、ユーザID「A_account」及びデバイスID「A_dev_id」と、ID種別d110とが関連付けられた当該暗号鍵key_Aを鍵情報記憶部132に記憶させる。
(ステップS409)
また、key_B:A_access_pointを復号したら、ユーザ端末10bの認証処理部133は、復号されたアクセスポイント情報A_access_pointに基づき、ユーザ端末10aに接続する。これにより、ユーザ端末10aとユーザ端末10bとの間で相互接続が確立する。
以上のように、本実施形態に係る無線通信システムに依れば、ユーザ端末10aのみがネットワークサービスn0にアクセスして暗号鍵key_Bを取得し、ユーザ端末10bは、ユーザ端末10aの暗号鍵key_Aをユーザ端末10aから取得することができる。即ち、ユーザ端末10bは、ネットワークサービスn0のような外部ネットワークにアクセスする必要がなくなるため、第1の実施形態に係る無線通信システムに比べて外部ネットワークへのアクセスに伴う負荷を軽減することが可能となる。また、ユーザ端末10aの暗号鍵key_Aは、ユーザ端末10bに対応する暗号鍵key_Bで暗号化されてユーザ端末10bに送信される。そのため、ユーザ端末10b以外の他のユーザ端末10は、暗号化された暗号鍵key_Aを取得しても、当該暗号鍵key_Aを復号することができないため、暗号鍵key_Aを安全にユーザ端末10bに送信することができる。
[2.3.通信シーケンス(識別情報を暗号化する方法)]
次に、図21を参照しながら、本実施形態に係る無線通信システムにおいて、識別情報の暗号化を行う場合の通信シーケンスについて説明する。図21は、本実施形態に係る無線通信システムにおける通信処理シーケンスの一例を示したシーケンス図であり、識別情報の暗号化を行う場合の一連のシーケンスについて示している。なお、図21に示す例は、ユーザ端末10bがユーザ端末10aに対して接続要求を出す場合について示している。なお、以降では、「2.2.通信シーケンス(識別情報を暗号化しない方法)」で説明した内容と異なる部分に着目して説明し、同様の部分については説明を省略する。
(ステップS501)
まず、ユーザ端末10bの識別情報通知部136は、識別情報記憶部135に持ち主情報d10として記憶された、ユーザ端末10bを特定するための識別情報のうち、暗号鍵key_Sで暗号化された識別情報をユーザ端末10aに配布する。暗号鍵key_Sは、ネットワークサービスn0上で管理された当該ネットワークサービスn0固有の暗号鍵である。図21に示す例では、識別情報通知部136は、暗号鍵key_Sで暗号化された、ネットワークサービスn0上におけるユーザubのユーザID「B_account」と、ユーザ端末10bのデバイスID「B_dev_id」とを識別情報として配布している。なお、以降では、暗号鍵key_Sで暗号化されたユーザID「B_account」を、「key_S:B_account」と記載する場合がある。同様に、暗号鍵key_Sで暗号化されたデバイスID「B_dev_id」を、「key_S:B_dev_id」と記載する場合がある。即ち、図21では、ユーザ端末10bの識別情報通知部136は、暗号化されたユーザID「key_S:B_account」と、暗号化されたデバイスID「key_S:B_dev_id」とをユーザ端末10aに配布している。
なお、このときユーザ端末10bの識別情報通知部136は、ID種別d110を、あわせてユーザ端末10aに通知してもよい。ID種別d110を受信したユーザ端末10aは、当該ID種別に基づき、ユーザID「key_S:B_account」がどのネットワークサービスn0のユーザIDかや、互いを認証する方法としてどの方法を許可しているかを認識できる。なお、ここでは、ID種別d120は、互いを認証する方法として「識別情報を暗号化する方法」が設定されているものとして説明する。即ち、このID種別d120により、ユーザ端末10aは、ユーザID「key_S:B_account」が、サービス固有の暗号鍵key_Sで暗号化されていることを認識することができる。
(ステップS511)
ユーザ端末10bの識別情報通知部136が、ユーザ端末10aに対してユーザ端末10bを特定するための識別情報をユニキャストした場合には、ユーザ端末10aは、ユーザ端末10bから取得した情報が自分宛か否かを判別してもよい。この場合には、ユーザ端末10aは、例えば、通信データd30b(図19参照)の受信者情報d330に自身の情報(即ち、ユーザuaのユーザIDや、ユーザ端末10aのデバイスID)が設定されているか否かにより、自分宛か否かを判別してもよい。なお、受信者情報d330に格納された情報がサービス固有の暗号鍵key_Sで暗号化されている場合には、ユーザ端末10aは、ネットワークサービスn0にアクセスし、暗号鍵key_Sで暗号化された情報を復号してもよい。同様に、受信者情報d330に格納された情報がユーザ端末10aに対応する暗号鍵key_Aで暗号化されている場合には、ユーザ端末10aは、ユーザ端末10aに対応する復号鍵に基づき、暗号鍵key_Aで暗号化された情報を復号してもよい。また、ユーザ端末10aは、ユーザ端末10bから取得した情報が自分宛ではなかった場合には、ユーザ端末10bに拒否通知を送信し、通信シーケンスを直ちに終了させてもよい。
(ステップS221〜S223)
なお、本実施形態に係るS221〜S223に係る処理は、前述した第1の実施形態に係る無線通信システムのS221〜S223(図15参照)と同様である。即ち、ユーザ端末10aの識別情報取得部141は、取得したユーザ端末10bを特定するための暗号化された識別情報(即ち、ユーザID「key_S:B_account」及びデバイスID「key_S:B_dev_id」)をネットワークサービスn0に送信する。その応答として、ユーザ端末10aの識別情報取得部141は、ネットワークサービスn0から自身に対応する暗号鍵key_Aで暗号化された、ユーザ端末10bに対応する暗号鍵key_B(即ち、暗号鍵「key_A:key_B」)を取得する。
暗号化された暗号鍵「key_A:key_B」を取得したら、ユーザ端末10aの鍵取得部142は、取得した当該暗号鍵「key_A:key_B」を、鍵情報記憶部143に記憶されたユーザ端末10aに対応する復号鍵で復号する。これにより、ユーザ端末10aの鍵取得部142は、暗号鍵key_Bを取得する。暗号鍵key_Bを取得したら、ユーザ端末10aの鍵取得部142は、暗号鍵key_Bと、ユーザ端末10bから取得したユーザID、デバイスID、及びID種別d110とを関連付けてユーザ端末10aの認証処理部144に出力する。
(ステップS412)
なお、暗号鍵key_Bの取得に失敗したら、ネットワークサービスn0は、暗号鍵key_Bの取得に失敗した旨をユーザ端末10aに通知してもよい。このネットワークサービスn0からの通知を受けることで、ユーザ端末10aは、ネットワークサービスn0上で、自身がユーザ端末10bと関連付けられていないことを認識することができる。この場合には、ユーザ端末10aは、ユーザ端末10bを信頼できる相手とはみなさず、通信を確立せずに一連の処理を終了すればよい。
また、ユーザ端末10bは、所定の時間内にネットワークサービスn0からの応答がなかった場合(即ち、所定の時間内に暗号鍵key_Bが取得できなかった場合)についても同様に、暗号鍵key_Bの取得に失敗した旨をユーザ端末10aに通知してもよい。
(ステップS413)
暗号鍵key_Bが取得できたら、ユーザ端末10aの認証処理部144は、取得した暗号鍵key_Bが鍵情報記憶部143に記憶されているかを確認し、暗号鍵key_Bが記憶されてなければ、鍵情報記憶部143に暗号鍵key_Bを記憶させる。なお、本実施形態に係るステップS413に係る処理は、前述した第1の実施形態に係る無線通信システムのS413(図15参照)と同様である。そのため詳細な説明は省略する。
(ステップS514)
また、ユーザ端末10aの認証処理部144は、鍵情報記憶部143に記憶された自身に対応する暗号鍵key_Aを抽出する。ユーザ端末10aの認証処理部144は、抽出した暗号鍵key_Aと、自身(ユーザ端末10a)との相互接続を確立するための情報と、自信を特定するための識別情報とを、暗号鍵key_Bで暗号化する。図20に示す例では、認証処理部144は、自信を特定するための識別情報として、ネットワークサービスn0上におけるユーザuaのユーザID「A_account」と、ユーザ端末10aのデバイスID「A_dev_id」を用いている。また、ユーザ端末10aとの相互接続を確立するための情報としては、例えば、アクセスポイントの情報が挙げられる。以降では、ユーザ端末10aとの相互接続を確立するための情報を「A_access_point」と記載する場合がある。
なお、以降では、暗号鍵key_Bで暗号化されたkey_Aを「key_B:key_A」、暗号鍵key_Bで暗号化されたA_access_pointを「key_B:A_access_point」と記載する場合がある。同様に、暗号鍵key_Bで暗号化されたA_accountを「key_B:A_account」と記載し、暗号鍵key_Bで暗号化されたA_dev_idを「key_B:A_dev_id」と記載する場合がある。
ユーザ端末10aの認証処理部144は、暗号鍵key_Bで暗号化されたkey_B:A_account、key_B:A_dev_id、key_B:key_A、及びkey_B:A_access_pointをユーザ端末10bに送信する。このとき、ユーザ端末10aは、ネットワークサービスn0の種別を特定するための情報として、ID種別d110をユーザ端末10bに送信してもよい。なお、以降では、ユーザ端末10aの認証処理部144は、ID種別d110をユーザ端末10bに送信するものとして説明する。
(ステップS502)
ユーザ端末10bの認証処理部133は、暗号鍵key_Bで暗号化されたkey_B:A_account、key_B:A_dev_id、key_B:key_A、及びkey_B:A_access_pointをユーザ端末10aから取得する。また、このときユーザ端末10bの認証処理部133は、ユーザ端末10aからID種別d110を取得してもよい。ID種別d110を取得することで、認証処理部133は、key_B:A_accountを復号することで得られるユーザID「A_account」が、どのネットワークサービスn0に対応しているかを認識することができる。
ユーザ端末10bの認証処理部133は、鍵情報記憶部132に記憶された自身に対応する復号鍵で、key_B:A_account、key_B:A_dev_id、key_B:key_A、及びkey_B:A_access_pointを復号する。これにより、認証処理部133は、復号されたユーザID「B_account」、デバイスID「B_dev_id」、暗号鍵key_A、及びアクセスポイント情報A_access_pointを取得する。
なお、ユーザ端末10b以外の他のユーザ端末10は、暗号鍵key_Bで暗号化されたデータを復号できない。そのため、ユーザID「A_account」、デバイスID「A_dev_id」、暗号鍵key_A、及びアクセスポイント情報A_access_pointは、ユーザ端末10b以外の他のユーザ端末10には取得されないこととなる。
なお、以降の処理は、前述した「2.2.通信シーケンス(識別情報を暗号化しない方法)」と同様である。そのため、詳細な説明は省略する。
以上のように、「識別情報を暗号化する方法」に基づき互いを認証することで、ユーザ端末10a及び10bは、互いの識別情報を暗号化して送受信することが可能となる。これにより、ユーザ端末10a及び10bは、「識別情報を暗号化しない方法」に比べて、より安全に互いを認証することが可能となる。
[2.4.通信シーケンス(相手の鍵を利用する方法)]
次に、図22を参照しながら、本実施形態に係る無線通信システムにおいて、ユーザ端末10a及び10bのそれぞれが、相手の暗号鍵(公開鍵)を既に取得しており、相手の暗号鍵を利用して互いを認証する場合の通信シーケンスについて説明する。図22は、本実施形態に係る無線通信システムにおける通信処理シーケンスの一例を示したシーケンス図であり、通信相手の公開鍵を既に取得している場合の一連のシーケンスについて示している。なお、以降では、ユーザ端末10bが、ユーザ端末10aがブロードキャストしたビーコンb10を受信したものとして説明する。
(ステップS601)
ユーザ端末10bは、ユーザ端末10aがブロードキャストしたビーコンb10を受信する。このとき、ユーザ端末10bは、識別情報を受信する側のユーザ端末10として動作する(図5参照)。即ち、ユーザ端末10bの識別情報取得部141は、ユーザ端末10aを特定するための識別情報をユーザ端末10aから取得する。このとき、ユーザ端末10bの識別情報取得部141は、ID種別d110を示す情報をあわせて取得する。
なお、ステップS601に係る動作は、第1の実施形態に係る無線通信システムのステップS301(図16参照)に係る動作と同様である。即ち、ユーザ端末10bの識別情報取得部141は、ビーコンb10内の各情報に基づき、ユーザ端末10aが、互いを認証する方法として「相手の鍵を利用する方法」を許可しているか否かを確認する。また、ビーコンb10からユーザ端末10aの識別情報(例えば、ユーザIDやデバイスID)を取得する。なお、当該識別情報がサービス固有の暗号鍵key_Sで暗号化されている場合には、識別情報取得部141は、ID種別d110で示されたネットワークサービスn0にアクセスし、当該識別情報を復号させる。なお、各処理の詳細については、第1の実施形態に係るステップS301に係る処理と同様のため省略する。
次に、ユーザ端末10bは、識別情報を送信する側のユーザ端末10として動作する。即ち、ユーザ端末10bの識別情報通知部136は、ユーザID、デバイスID、及びID種別d110を識別情報取得部141から取得する。識別情報通知部136は、取得したユーザID、デバイスID、及びID種別d110に関連付けられた暗号鍵を、鍵情報記憶部143から抽出する。このとき、ユーザ端末10aとの間で既に暗号鍵の交換が行われている場合には、識別情報通知部136は、ユーザ端末10aに対応する暗号鍵key_Aを抽出する。なお、暗号鍵を抽出できなった場合には、識別情報通知部136は、上述した、「識別情報を暗号化しない方法」及び「識別情報を暗号化する方法」のうちのいずれかにより、ユーザ端末10aとの間で互いを認証する。以降では、識別情報通知部136は、暗号鍵key_Aを抽出したものとして説明する。
次に、ユーザ端末10bの識別情報通知部136は、ユーザ端末10bから通知されたID種別d110に対応するネットワークサービスn0のユーザIDを、識別情報記憶部135に記憶された持ち主情報d10から抽出する。具体的には、識別情報通知部136は、各持ち主情報d10のID種別d110を参照し、ユーザ端末10bから通知されたID種別d110持ち主情報d10を特定する。識別情報通知部136は、特定した持ち主情報d10の持ち主IDd120からユーザIDを抽出すればよい。
暗号鍵key_Aを抽出したら、ユーザ端末10bの識別情報通知部136は、抽出したユーザ端末10bを特定するための識別情報を、暗号鍵key_Aで暗号化する。図22に示す例では、ユーザ端末10bの識別情報通知部136は、ユーザubのネットワークサービスn0におけるユーザID「B_acccount」と、ユーザ端末10bを特定するためのデバイスID「B_dev_id」とを暗号鍵key_Aで暗号化している。なお、以降では、暗号鍵key_Aで暗号化されたユーザID「B_acccount」を、「key_A:B_account」と記載する場合がある。同様に、暗号鍵key_Aで暗号化されたデバイスID「B_dev_id」を、「key_A:B_dev_id」と記載する場合がある。
ユーザ端末10bの識別情報通知部136は、暗号鍵key_Aで暗号化されたユーザ端末10bを特定するための識別情報をユーザ端末10aに送信する。このとき、識別情報通知部136は、送信する識別情報が、「内部レコード探索用暗号化アカウント」であることを示すID種別d110を、あわせてユーザ端末10aに送信してもよい。このID種別d110により、ユーザ端末10aは、受信した識別情報が、どのネットワークサービスn0に対応しているかや、自身の暗号鍵key_Aで暗号化されていることを認識することができる。また、ユーザ端末10bの識別情報通知部136は、暗号鍵key_Aで暗号化されたユーザ端末10bを特定するための識別情報をユーザ端末10aにユニキャストしてもよいし、ブロードキャストすることでユーザ端末10aに送信してもよい。なお、以降では、識別情報通知部136は、ID種別d110をユーザ端末10aに送信するものとして説明する。また、以降では、ユーザ端末10bの識別情報通知部136は、暗号化されたユーザID「key_A:B_acccount」及び暗号化されたデバイスID「key_A:B_dev_id」を、ユーザ端末10aに送信するものとして説明する。また、以降では、ユーザ端末10a及び10bの間では、図19に示す通信データd30bに基づき、情報をユニキャストするものとする。
(ステップS611)
ユーザ端末10aの識別情報取得部141は、ユーザ端末10bから、ユーザ端末10bを特定するための識別情報として、暗号鍵key_Aで暗号化されたユーザID「B_acccount」及びデバイスID「B_dev_id」を取得する。
識別情報取得部141は、ユーザ端末10bから取得したID種別d110に基づき、取得した識別情報が「内部レコード探索用暗号化アカウント」を示しているか否かを判別する。ここでは、取得したID種別d110は、「内部レコード探索用暗号化アカウント」を示しているものとして説明する。ユーザ端末10aの識別情報取得部141は、鍵情報記憶部143に記憶されたユーザ端末10aに対応する復号鍵で、暗号化されたユーザID「key_A:B_acccount」及び暗号化されたデバイスID「key_A:B_dev_id」を復号する。これにより、識別情報取得部141は、復号されたユーザID「B_acccount」及びデバイスID「B_dev_id」を取得する。
(ステップS612)
なお、ユーザ端末10bの識別情報通知部136が、ユーザ端末10aに対してユーザ端末10bを特定するための識別情報をユニキャストした場合には、ユーザ端末10aは、ユーザ端末10bから取得した情報が自分宛か否かを判別してもよい。この場合には、ユーザ端末10aは、例えば、通信データd30b(図19参照)の受信者情報d330に自身の情報(即ち、ユーザuaのユーザIDや、ユーザ端末10aのデバイスID)が設定されているか否かにより、自分宛か否かを判別してもよい。なお、受信者情報d330に格納された情報がサービス固有の暗号鍵key_Sで暗号化されている場合には、ユーザ端末10aは、ネットワークサービスn0にアクセスし、暗号鍵key_Sで暗号化された情報を復号してもよい。同様に、受信者情報d330に格納された情報がユーザ端末10aに対応する暗号鍵key_Aで暗号化されている場合には、ユーザ端末10aは、ユーザ端末10aに対応する復号鍵に基づき、暗号鍵key_Aで暗号化された情報を復号してもよい。また、ユーザ端末10aは、ユーザ端末10bから取得した情報が自分宛ではなかった場合には、ユーザ端末10bに拒否通知を送信し、通信シーケンスを直ちに終了させてもよい。
(ステップS613)
識別情報取得部141は、ID種別d110が示すネットワークサービスn0の種別と、復号されたユーザID「B_acccount」及びデバイスID「B_dev_id」とに関連付けられた暗号鍵を鍵情報記憶部143から抽出する。この場合には、ユーザ端末10bに対応する暗号鍵key_Bが抽出される。
(ステップS614)
なお、識別情報取得部141は、抽出した暗号鍵key_Bに関する情報を更新してもよい。具体的な一例として、識別情報取得部141は、鍵情報記憶部143に記憶された管理データd40において、抽出した暗号鍵key_Bに関連付けられた更新日時d442を更新してもよい。
なお、以降の処理は、前述した「2.3.通信シーケンス(識別情報を暗号化する方法)」と同様である。そのため、詳細な説明は省略する。
以上のように、「相手の鍵を利用する方法」に基づき互いを認証する場合には、ユーザ端末10a及び10bは、ユーザ端末10a及び10bが関連付けられているかをネットワークサービスn0を介して確認する必要がなくなる。そのため、「識別情報を暗号化しない方法」及び「識別情報を暗号化する方法」に比べて、ユーザ端末10a及び10bがネットワークサービスn0にアクセスする回数を制限することが可能となる。これにより、ユーザ端末10a及び10bは、互いを認証する際の、ネットワークサービスn0のような外部ネットワークへのアクセスに伴う負荷を軽減することが可能となる。
[2.5.まとめ]
以上のように、本実施形態に係る無線通信システムでは、ユーザ端末10a及び10bのうち一方(ユーザ端末10aとする)がネットワークサービスn0から相手の暗号鍵key_Bを取得し、取得した暗号鍵key_Bで自身の暗号鍵key_Aを暗号化して相手に送信する。また、ユーザ端末10bは、ユーザ端末10aから暗号化された暗号鍵key_Aを取得し、取得した暗号化済みの暗号鍵key_Aを自身の復号鍵で復号することで、暗号鍵key_Aを取得する。これにより、ユーザ端末10bのみがネットワークサービスn0にアクセスすればよくなるため、第1の実施形態に係る無線通信システムに比べて、ユーザ端末10a及び10bの間の通信シーケンスを効率化することが可能となる。
<3.第3の実施形態>
[3.1.無線通信システムの概略]
第1及び第2の実施形態では、ユーザ端末10a及び10bは、相互に通信を行う際に暗号化するための暗号鍵(公開鍵)を、ネットワークサービスn0上のソーシャルグラフを介して互いに送付していた。一方で、ネットワークサービスn0を介した通信のセキュリティ強度によっては、ネットワークサービスn0上のソーシャルグラフを介して送信する情報は暗号鍵(公開鍵)には限定されない。例えば、第1及び第2の実施形態では、アクセスポイントの情報をユーザ端末10a及び10bの間の暗号化通信により送受信していたが、ネットワークサービスn0を介した通信のセキュリティ強度が高ければ、ネットワークサービスn0を介して送受信してもよい。そこで、第3の実施形態では、ネットワークサービスn0をセキュリティが確保された通信経路とみなして、ユーザ端末10a及び10bが互いを認証するための情報を送受信する場合について説明する。
まず、図23を参照しながら、本実施形態に係る無線通信システムの概略的な構成について説明する。本実施形態に係る無線通信システムは、サーバ50と、ユーザ端末10a及び10bを含む。サーバ50と、ユーザ端末10a及び10bとは、ネットワークn1を介して接続されている。なお、サーバ50と、ユーザ端末10a及び10bは、前述した第1及び第2の実施形態と同様である。即ち、サーバ50は、ネットワークサービスn0を提供し、ユーザ端末10a及び10bは、ネットワークサービスn0にアクセス可能に構成されている。また、本実施形態に係る無線通信システムは、ユーザ端末20aと、ユーザ端末20bと、ファイルサーバ60とを含み得る。ユーザ端末20aと、ユーザ端末20bと、ファイルサーバ60とは、ネットワークn1を介して、サーバ50、ユーザ端末10a、及びユーザ端末10bとそれぞれ通信可能に構成されている。
ユーザ端末20aは、ユーザuaが操作可能な、ユーザ端末10aとは異なる端末を示している。また、ユーザ端末20bは、ユーザubが操作可能な、ユーザ端末10bとは異なる端末を示している。ユーザ端末20a及び20bは、例えば、PC(Personal Computer)や、スマートフォンのように、他の通信機器と直接的(相互接続による通信)または間接的(インターネットのような所定のネットワークを介した通信)に通信が可能な通信機器により構成される。
ユーザ端末20a及び20bは、自身に記憶された情報を、所定のネットワークを介して読み出し可能に公開できるようにしてもよい。このとき、ユーザ端末20a及び20bは、自身に記憶された情報に対して、当該情報のユーザからの指示に基づき、当該情報を読み出すための認証情報(例えば、IDやパスワード)を設定可能に構成されていてもよい。これにより、例えば、ユーザuaは、自身の情報をユーザ端末20aに記憶させるとともに、当該情報を読み出すための認証情報を設定する。そして、ユーザuaは、当該情報を公開したい他のユーザubに対して設定した認証情報を通知することで、当該認証情報を通知したユーザにのみ当該情報を公開することが可能となる。
ファイルサーバ60は、ユーザua及びubが、自身の操作する通信機器(例えば、ユーザ端末10a、10b、20a、または20b)によりアクセスすることで、自身の情報を読み出し可能に記憶させることが可能な外部サーバを示している。ファイルサーバ60は、自身に記憶された情報に対して、当該情報に対応するユーザからの指示に基づき、当該情報を読み出すための認証情報(例えば、IDやパスワード)を設定可能に構成されている。これにより、ユーザua及びubは、自身の情報をファイルサーバ60に記憶させるとともに、当該情報を読み出すための認証情報を設定する。そして、ユーザua及びubは、当該情報を公開したい他のユーザに対して設定した認証情報を通知することで、当該認証情報を通知したユーザにのみ当該情報を公開することが可能となる。
次に、本実施形態に係る無線通信システムの概略的な動作について、図24を参照しながら説明する。図24は、本実施形態に係る無線通信システムの概略的な動作について説明するための図であり、ユーザ端末10aとユーザ端末10bとの間で情報を送受信する場合について示している。図24に示す例では、ユーザ端末10a及びユーザ端末10bは、同じネットワークサービスn0にアクセス可能な場合を示している。
図24に示すように、本実施形態に係る無線通信システムでは、ユーザ端末10a及びユーザ端末10bは、ネットワークサービスn0を信頼できる通信経路r10と見なして、通信経路r10を介して互いを認証するための情報を送受信する。
互いを認証するための情報の具体的な一例としては、第1及び第2の実施形態のように、ユーザ端末10a及び10bのそれぞれが保有する自身の暗号鍵(公開鍵)が挙げられる。また、他の一例として、ユーザ端末10a及び10bは、アクセスポイントの情報のように自身と相互接続を確立するための情報を、互いを認証するための情報として、通信経路r10を介して送信してもよい。また、他の一例として、ユーザ端末10a及び10bは、ファイルサーバ60(図23参照)に記憶された情報を読み出すための認証情報を、互いを認証するための情報として、通信経路r10を介して送信してもよい。
[3.2.ユーザ端末の構成]
次に、本実施形態に係るユーザ端末10の構成について説明する。本実施形態に係る無線通信システムでは、複数のユーザ端末10が互いに相手を信頼できる相手か否かを判断するために、一方のユーザ端末10が、他方のユーザ端末10から、ネットワークサービスn0上で相手を識別するための識別情報を受け取る。この点は、前述した第1及び第2の実施形態に係る無線通信システムと同様である。以降では、ユーザ端末10a及び10bが通信を行う場合を例に、ユーザ端末10bを識別情報の送信側とし、ユーザ端末10aを識別情報の受信側として説明する。
(識別情報を送信する側のユーザ端末10)
まず、図25を参照しながら、識別情報を送信する側のユーザ端末10bの構成について説明する。図25は、本実施形態に係るユーザ端末10bの構成を示したブロック図であり、識別情報を送信する側のユーザ端末10bの構成の一例を示している。図25に示すように、本実施形態に係るユーザ端末10bは、第1通信部111と、第2通信部121と、認証情報取得部151と、認証情報記憶部152と、認証処理部153と、識別情報管理部154と、識別情報記憶部155と、識別情報通知部156とを含む。
第1通信部111は、ユーザ端末10b内の各構成が、携帯通信網のような基盤設備を介して他の通信機器と通信を行うために用いられる。なお、図25では、第1通信アンテナ112の図示を省略している。本実施形態に係る無線通信システムでは、ユーザ端末10b内の各構成は、第1通信部111を介してネットワークサービスn0にアクセスする。なお、以降では、ユーザ端末10b内の各構成がネットワークサービスn0とデータを送受信する場合には、特に明示が無い限りは、第1通信部111を介してデータを送受信するものとする。
第2通信部121は、ユーザ端末10b内の各構成が、他のユーザ端末10(例えば、ユーザ端末10a)と相互接続を行うために用いられる。なお、図25では、第2通信アンテナ122の図示を省略している。ユーザ端末10a及び10bがアドホックネットワークを構築する場合には、ユーザ端末10b内の各構成は、第2通信部121を介してユーザ端末10aにアクセスする。なお、以降では、ユーザ端末10b内の各構成が他のユーザ端末(例えば、ユーザ端末10a)とデータを送受信する場合には、特に明示が無い限りは、第2通信部121を介してデータを送受信するものとする。
識別情報管理部154、識別情報記憶部155、及び、識別情報通知部156は、前述した第1及び第2の実施形態における、識別情報管理部134、識別情報記憶部135、及び、識別情報通知部136と同様である。識別情報管理部154、識別情報記憶部155、及び、識別情報通知部156が動作することで、ユーザ端末10bのユーザであるユーザubの持ち主情報d10がユーザ端末10aに配布される。
認証情報取得部151は、ユーザubと持ち主情報を配布したユーザ端末10aのユーザuaとがネットワークサービスn0上で関連付けられている場合に、ユーザ端末10aからネットワークサービスn0のソーシャルグラフを介して互いを認証するための情報を取得する。互いを認証するための情報の具体的な一例として、ユーザ端末10aと暗号化通信を行うための暗号鍵key_Aが挙げられる。また、他の一例として、認証情報取得部151は、アクセスポイントの情報のように、ユーザ端末10aと通信を確立するための情報を、互いを認証するための情報として取得してもよい。また、他の一例として、認証情報取得部151は、ユーザ端末10aやユーザ端末20aにアクセスするためのパスフレーズを、互いを認証するための情報として取得してもよい。また、他の一例として、認証情報取得部151は、ファイルサーバ60上に記憶されたユーザuaの情報を読み出すための認証情報を、互いを認証するための情報として取得してもよい。また、他の一例として、認証情報取得部151は、WSC(Wi−Fi Simple Configuration)におけるデバイスパスワードのように、通信先の相手が信用できる相手か否かを判断するための情報(以降では「デバイスパスワード」と呼ぶ)を、互いを認証するための情報として取得してもよい。
認証情報取得部151は、取得した互いを認証するための情報を、ユーザ端末10aを特定するための情報(例えば、ユーザIDやデバイスID)と関連付けて認証情報記憶部152に記憶させる。認証情報記憶部152は、他のユーザ端末10から取得した互いを認証するための情報を記憶するための記憶部である。
認証処理部153は、認証情報記憶部152に記憶された互いを認証するための情報に基づき、認証に係る処理を実行する。具体的な一例として、認証情報記憶部152に暗号鍵key_Aが記憶されている場合には、認証処理部153は、当該暗号鍵key_Aに基づき、ユーザ端末10aとの間で暗号化通信を行うための処理を実行する。
また、他の一例として、認証情報記憶部152にユーザ端末10aのアクセスポイントの情報が記憶されている場合には、認証処理部153は、当該アクセスポイントの情報を基に、ユーザ端末10aとの間の相互接続を確立する。即ち、ユーザ端末10bは、ネットワークサービスn0上でユーザ端末10a及び10bが関連付けられている場合に、識別情報に対する応答として、ネットワークサービスn0を介して、ユーザ端末10aのアクセスポイントの情報を取得することができる。
また、他の一例として、認証情報記憶部152に、ユーザ端末10aにアクセスするためのパスフレーズが記憶されている場合には、認証処理部153は、当該パスフレーズを使用してユーザ端末10aにアクセスする。なお、認証情報記憶部152に、ユーザ端末20aにアクセスするためのパスフレーズが記憶されている場合についても同様である。
また、他の一例として、認証情報記憶部152にファイルサーバ60への認証情報を記憶されている場合には、認証処理部153は、当該認証情報に基づきファイルサーバ60に対して認証を依頼する。
また、他の一例として、認証情報記憶部152にデバイスパスワードが記憶されている場合には、認証処理部153は、当該デバイスパスワードを用いて、通信先の相手が信用できる相手(即ち、ユーザ端末10a)か否かを判断してもよい。
具体的な一例として、認証処理部153は、例えば、ディフィーヘルマン(DH:Diffie−Hellman)鍵共有法により通信路を暗号化した場合に、当該デバイスパスワードに基づき、ユーザ端末10aとの間で互いが信用できる相手か否かを判別してもよい。この場合には、認証処理部153は、デバイスパスワードからハッシュ値を算出し、算出したハッシュ値をユーザ端末10aに送信する。また、認証処理部153は、同様にしてデバイスパスワードから算出されたハッシュ値をユーザ端末10aから受け取る。認証処理部153は、自身がデバイスパスワードから作成したハッシュ値と、ユーザ端末10aから取得したハッシュ値を比較する。このとき、認証処理部153が、ハッシュ値の作成に用いたデバイスパスワードは、ユーザ端末10aから取得している。そのため、通信相手がユーザ端末10a(即ち、信頼できる相手)の場合には、認証処理部153がデバイスパスワードから作成したハッシュ値と、ユーザ端末10aから取得したハッシュ値が一致することとなる。このようにして、認証処理部153は、認証情報記憶部152に記憶されたデバイスパスワード(即ち、ユーザ端末10aから取得したデバイスパスワード)に基づき、通信相手が信用できる相手か否か(ユーザ端末10aか否か)を判別することが可能となる。
(識別情報を受信する側のユーザ端末10)
次に、図26を参照しながら、送信された識別情報を受信する側のユーザ端末10aの構成について説明する。図26は、本実施形態に係るユーザ端末10aの構成を示したブロック図であり、識別情報を受信する側のユーザ端末10aの構成の一例を示している。図26に示すように、本実施形態に係るユーザ端末10aは、第1通信部111と、第2通信部121と、認証情報生成部161と、認証情報記憶部162と、識別情報取得部163と、認証情報通知部164と、認証処理部165とを含む。
第1通信部111は、ユーザ端末10a内の各構成が、携帯通信網のような基盤設備を介して他の通信機器と通信を行うために用いられる。なお、図26では、第1通信アンテナ112の図示を省略している。本実施形態に係る無線通信システムでは、ユーザ端末10a内の各構成は、第1通信部111を介してネットワークサービスn0にアクセスする。なお、以降では、ユーザ端末10a内の各構成がネットワークサービスn0とデータを送受信する場合には、特に明示が無い限りは、第1通信部111を介してデータを送受信するものとする。
第2通信部121は、ユーザ端末10a内の各構成が、他のユーザ端末10(例えば、ユーザ端末10b)と相互接続を行うために用いられる。なお、図26では、第2通信アンテナ122の図示を省略している。ユーザ端末10a及び10bがアドホックネットワークを構築する場合には、ユーザ端末10a内の各構成は、第2通信部121を介してユーザ端末10bにアクセスする。なお、以降では、ユーザ端末10a内の各構成が他のユーザ端末(例えば、ユーザ端末10b)とデータを送受信する場合には、特に明示が無い限りは、第2通信部121を介してデータを送受信するものとする。
認証情報生成部161は、ユーザ端末10aが他のユーザ端末(例えば、ユーザ端末10b)との間で、互いを認証するための情報を生成する。具体的な一例として、認証情報生成部161は、第1及び第2の実施形態に係る鍵生成部131と同様に、暗号鍵(例えば、公開鍵)及び復号鍵(例えば、秘密鍵)を生成してもよい。この場合には、生成された暗号鍵が、互いを認証するための情報に相当する。また、他の一例として、認証情報生成部161は、アクセスポイントの情報のように、他のユーザ端末10がユーザ端末10aと通信を確立するための情報を生成してもよい。また、他の一例として、認証情報生成部161は、ユーザ端末10aやユーザ端末10bにアクセスするためのパスフレーズを生成してもよい。また、他の一例として、認証情報生成部161は、ファイルサーバ60に記憶されたユーザuaの情報を読み出すための認証情報を生成または取得(ファイルサーバ60から取得)してもよい。
認証情報生成部161は、生成または取得した認証情報を認証情報記憶部162に記憶させる。認証情報記憶部162は、生成された認証情報を記憶するための記憶部である。
識別情報取得部163は、前述した第1及び第2の実施形態に係る識別情報取得部141と同様である。即ち、識別情報取得部163は、他のユーザ端末10aから持ち主情報d10を取得し、取得した持ち主情報d10に基づき、ユーザ端末10aのユーザuaが、送信元のユーザ端末10のユーザとネットワークサービスn0上で関連付けられているかを判別する。なお、判別方法については、識別情報取得部141と同様のため詳細な説明は省略する。
識別情報取得部163は、ユーザ端末10bから取得したユーザID及びデバイスIDと、持ち主情報d10から抽出したID種別d110とを、認証情報通知部164に通知する。
認証情報通知部164は、ユーザID、デバイスID、及びID種別d110を識別情報取得部163から取得する。認証情報通知部164は、取得したID種別d110に対応するネットワークサービスn0にアクセスし、当該ネットワークサービスn0のソーシャルグラフを介して取得したユーザID及びデバイスIDを探索する。このとき、取得したユーザIDが示すユーザ(例えば、ユーザub)と、ユーザ端末10aのユーザuaがネットワークサービスn0で関連付けられている場合、認証情報通知部164は、ネットワークサービスn0上で当該ユーザID及びデバイスIDを特定できる。
ネットワークサービスn0上でユーザID及びデバイスIDが特定できたら、認証情報通知部164は、認証情報記憶部162に記憶された認証情報を読み出す。認証情報通知部164は、読み出した認証情報を、ネットワークサービスn0のソーシャルグラフを介してユーザ端末10bに送信する。このとき、ネットワークサービスn0のソーシャルグラフが、図24における通信経路r10に相当する。
認証処理部165は、ユーザ端末10aと他のユーザ端末10(例えば、ユーザ端末10b)との間で相互接続を行うための認証に係る処理を実行する。具体的な一例として、認証情報通知部164が、認証情報としてアクセスポイントの情報をユーザ端末10bに送信した場合には、当該認証情報に基づき、ユーザ端末10bの認証処理部153が、認証処理部165にアクセスする。認証処理部165は、認証処理部153から提示される認証情報(例えば、アクセスポイントの情報)を、認証情報記憶部162に記憶された認証情報と照合する。認証処理部153から提示された認証情報が正しければ、認証処理部165は、ユーザ端末10aとユーザ端末10bとの間の相互接続を確立する。
なお、上記に示す例では、認証情報通知部164は、ネットワークサービスn0のソーシャルグラフを介して接続先のユーザ端末10を特定できた場合に、ネットワークサービスn0を介して接続先のユーザ端末10に認証情報を送信していた。一方で、認証情報通知部164は、ネットワークサービスn0のソーシャルグラフの探索を行わずに、ネットワークサービスn0を介して接続先のユーザ端末10宛てに認証情報を送信してもよい。この場合には、ネットワークサービスn0側で、送信元及び接続先の各ユーザ端末10がネットワークサービスn0上で関連付けられているか否かを判断し、関連付けられている場合にのみ、接続先のユーザ端末10に認証情報を通知すればよい。また、送信元及び接続先の各ユーザ端末10がネットワークサービスn0上で関連付けられていない場合には、ネットワークサービスn0は、通信が失敗したものとして、送信元のユーザ端末10にエラーを通知すればよい。
[3.3.まとめ]
以上のように、本実施形態に係る無線通信システムに依れば、ネットワークサービスn0上でユーザ端末10a及び10bが関連付けられている場合には、ユーザ端末10a及び10bは、ネットワークサービスn0をセキュリティが確保された通信経路とみなす。そして、ユーザ端末10a及び10bは、互いを認証するための情報を、ネットワークサービスn0のソーシャルグラフを介して送受信する。
これにより、例えば、ユーザ端末10aは、アクセスポイントの情報のように相互接続を確立するための情報を、ネットワークサービスn0上のソーシャルグラフを介して他のユーザ端末10bに送信することが可能となる。これにより、ユーザ端末10bは、ネットワークサービスn0上のソーシャルグラフを介して取得したアクセスポイントの情報に基づき、ユーザ端末10aとの間で相互接続を確立することが可能となる。
また、他の一例として、ユーザ端末10aは、自身やユーザ端末20aにアクセスするためのパスフレーズを、ネットワークサービスn0上のソーシャルグラフを介して他のユーザ端末10bに送信することもできる。これにより、ユーザ端末10bは、ネットワークサービスn0上のソーシャルグラフを介して取得したパスフレーズを用いて、ユーザ端末10aやユーザ端末20aにアクセスすることが可能となる。
また、他の一例として、ユーザ端末10aは、自身に対応する暗号鍵key_Aを、ネットワークサービスn0上のソーシャルグラフを介して他のユーザ端末10bに送信することもできる。これにより、ユーザ端末10bは、ユーザ端末10aに対応する暗号鍵key_Aを容易に取得することができ、ユーザ端末10aとの間で暗号化通信を行うことが可能となる。
また、他の一例として、ユーザ端末10aは、ファイルサーバ60のような外部サーバからユーザuaの情報を読み出すための認証情報を、ネットワークサービスn0上のソーシャルグラフを介して他のユーザ端末10bに送信することもできる。これにより、ユーザ端末10bは、取得した認証情報に基づき、ファイルサーバ60のような外部サーバからユーザuaに関する情報を取得することが可能となる。
このように、本実施形態に係る無線通信システムに依れば、ユーザ端末10a及び10bの間で、簡易かつ安全に通信相手を相互に認証することが可能となる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、上述した各実施形態に係る無線通信システムの一連の動作は、ユーザ端末10のCPU101を機能させるためのプログラムによって構成することができる。このプログラムは、その装置(例えば、ユーザ端末10)にインストールされたOS(Operating System)を介して実行されるように構成してもよい。また、このプログラムは、上述した処理を実行する構成が含まれる装置が読み出し可能であれば、記憶される位置は限定されない。例えば、装置の外部から接続される記録媒体にプログラムが格納されていてもよい。この場合には、プログラムが格納された記録媒体を装置に接続することによって、その装置のCPUに当該プログラムを実行させるように構成するとよい。
また、上記では、スマートフォンのようなユーザ端末10間でアドホックネットワークを構築する例について説明したが、通信が可能な機器であればスマートフォンのような通信機器には限定されない。例えば、ユーザ端末10は、ネットワークにアクセス可能なTV等の家電であってもよい。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
他端末と無線で通信を行う通信部と、
前記通信部を介して取得された、前記他端末を特定するための暗号化された第1の識別情報が、ネットワークサービス上で管理された第1の復号鍵により復号された前記第1の識別情報を取得する識別情報取得部と、
自端末を特定するための第2の識別情報が、前記ネットワークサービス上で前記第1の識別情報に関連付けられている場合に、当該ネットワークサービス上で前記第1の識別情報に関連付けられた第1の暗号鍵を取得する鍵取得部と、
を備え、
前記通信部は、取得した前記第1の暗号鍵で暗号化された情報を前記他端末に送信する
、情報処理装置。
(2)
前記通信部は、取得した前記第1の暗号鍵で暗号化された、自端末と前記他端末との間で互いを認証するための情報を前記他端末に送信する、前記(1)に記載の情報処理装置。
(3)
前記互いを認証するための情報は、前記第2の識別情報に関連付けられた第2の暗号鍵を含む、前記(2)に記載の情報処理装置。
(4)
前記互いを認証するための情報は、前記自端末と前記他端末とが互いの暗号鍵及び復号鍵を用いて互いを認証するための情報を含む、前記(2)に記載の情報処理装置。
(5)
前記識別情報取得部は、前記ネットワークサービス上で復号された前記第1の識別情報を取得する、前記(1)〜(4)のいずれか一項に記載の情報処理装置。
(6)
前記第1の識別情報は、前記他端末のユーザを示す第1のユーザIDを含む、前記(1)〜(5)のいずれか一項に記載の情報処理装置。
(7)
前記第2の識別情報は、自端末のユーザを示す第2のユーザIDを含み、
前記鍵取得部は、前記ネットワークサービス上で、前記第1のユーザIDと前記第2のユーザIDとが関連付けられている場合に、前記第1の暗号鍵を取得する、前記(6)に記載の情報処理装置。
(8)
前記第1の識別情報は、前記他端末を一意に特定する第1のデバイスIDを含む、前記(1)〜(6)のいずれか一項に記載の情報処理装置。
(9)
前記第2の識別情報は、自端末を一意に特定する第2のデバイスIDを含み、
前記鍵取得部は、前記ネットワークサービス上で、前記第1のデバイスIDと前記第2のデバイスIDとが関連付けられている場合に、前記第1の暗号鍵を取得する、前記(8)に記載の情報処理装置。
(10)
第2の暗号鍵と、前記第2の暗号鍵で暗号化された情報を復号するための第2の復号鍵とを生成する鍵生成部と、
取得した前記第1の識別情報と、取得した前記第1の暗号鍵とを関連付けて記憶する記憶部と、
を備え、
前記識別情報取得部は、前記第2の暗号鍵で暗号化された前記第1の識別情報を取得した場合に、前記第2の復号鍵で前記第1の識別情報を復号し、
前記通信部は、取得した当該第1の識別情報に関連付けられた前記第1の暗号鍵を抽出し、抽出した当該第1の暗号鍵で暗号化した情報を前記他端末に送信する、前記(1)〜(9)のいずれか一項に記載の情報処理装置。
(11)
第1の情報処理装置と、
前記第1の情報処理装置と無線で通信を行う第2の情報処理装置と、
を備え、
前記第1の情報処理装置は、
前記第1の情報処理装置を特定するための暗号化された第1の識別情報を、前記第2の情報処理装置に送信する第1の通信部、
を備え、
前記第2の情報処理装置は、
暗号化された前記第1の識別情報を取得し、取得した当該第1の識別情報を、ネットワークサービス上で管理された第1の復号鍵で復号させて、復号された前記第1の識別情報を取得する識別情報取得部と、
前記第2の情報処理装置を特定するための第2の識別情報が、前記ネットワークサービス上で前記第1の識別情報に関連付けられている場合に、当該ネットワークサービス上で前記第1の識別情報に関連付けられた第1の暗号鍵を取得する鍵取得部と、
取得した前記第1の暗号鍵で暗号化した情報を前記第1の情報処理装置に送信する第2の通信部と、
を備えた無線通信システム。
(12)
他端末と無線で通信を行う通信部を介して取得された、前記他端末を特定するための暗号化された第1の識別情報が、ネットワークサービス上で管理された第1の復号鍵により復号された前記第1の識別情報を取得することと、
自端末を特定するための第2の識別情報が、前記ネットワークサービス上で前記第1の識別情報に関連付けられている場合に、当該ネットワークサービス上で前記第1の識別情報に関連付けられた第1の暗号鍵を取得することと、
取得した前記第1の暗号鍵で暗号化した情報を前記他端末に送信することと、
を備えた情報処理方法。
(13)
コンピュータに、
他端末と無線で通信を行う通信部を介して取得された、前記他端末を特定するための暗号化された第1の識別情報が、ネットワークサービス上で管理された第1の復号鍵により復号された前記第1の識別情報を取得するステップと、
自端末を特定するための第2の識別情報が、前記ネットワークサービス上で前記第1の識別情報に関連付けられている場合に、当該ネットワークサービス上で前記第1の識別情報に関連付けられた第1の暗号鍵を取得するステップと、
取得した前記第1の暗号鍵で暗号化した情報を前記他端末に送信するステップと、
を実行させるプログラム。