(57)【要約】【課題】近距離無線通信を介する端末間のデータ転送の安全性を向上させる技術を提供する。【解決手段】第１端末と第２端末とを含む複数の端末とネットワークを介して接続されたサーバにおいて、受信部は、第１端末と第２端末との少なくともいずれか一方から、第１端末と第２端末との間における近距離無線通信の接続要求を受信する。生成部は、近距離無線通信に用いる同期用情報を生成する。送信部は、生成部が生成した同期用情報を、第１端末と第２端末とに送信する。生成部が生成する同期用情報は、第１端末と第２端末との間の近距離無線通信のための通信用ＩＤと、当該近距離無線通信で流れるデータを暗号化するための暗号鍵とを含む。【選択図】図２
2016149673.tif 000002
【特許請求の範囲】
【請求項１】
第１端末と第２端末とを含む複数の端末とネットワークを介して接続されたサーバであって、
前記第１端末と前記第２端末との少なくともいずれか一方から、前記第１端末と前記第２端末との間における近距離無線通信の接続要求を受信する受信部と、
前記近距離無線通信に用いる同期用情報を生成する生成部と、
前記生成部が生成した同期用情報を、前記第１端末と前記第２端末とに送信する送信部とを備え、
前記生成部が生成する同期用情報は、前記第１端末と前記第２端末との間の近距離無線通信のための通信用ＩＤと、当該近距離無線通信で流れるデータを暗号化するための暗号鍵とを含むことを特徴とするサーバ。
【請求項２】
前記第１端末と前記第２端末とが互いに関連づけられているか否かを判定する判定部をさらに備えることを特徴とする請求項１に記載のサーバ。
【請求項３】
前記生成部は、前記判定部によって前記第１端末と前記第２端末とが互いに関連づけられていると判定された場合に、前記同期用情報を生成することを特徴とする請求項２に記載のサーバ。
【請求項４】
前記受信部はさらに、前記第１端末と前記第２端末とのそれぞれから、前記第１端末の位置情報と前記第２端末の位置情報とを受信し、
前記判定部はさらに、前記受信部が受信した位置情報をもとに、前記第１端末と前記第２端末との距離が所定の距離以下であるか否かを判定することを特定することを特徴とする請求項２または３に記載のサーバ。
【請求項５】
前記生成部は、前記第１端末が前記第２端末との間の近距離無線通信に用いる第１同期用情報と、前記第２端末が前記第１端末との間の近距離無線通信に用いる第２同期用情報とを生成することを特徴とする請求項１から４のいずれかに記載のサーバ。
【請求項６】
前記生成部は、
前記第１端末が前記第２端末と通信するための通信用ＩＤとトークンとを含む情報を前記第１同期用情報として生成し、
前記第２端末が前記第１端末と通信するための通信用ＩＤと前記トークン、および前記暗号鍵を含む情報を前記第２同期用情報として生成することを特徴とする請求項５に記載のサーバ。
【請求項７】
前記第１端末と前記第２端末とが近距離無線通信接続を開始することを契機として、前記第１端末と前記第２端末との間のデータ通信を仲介するデータ転送部をさらに備えることを特徴とする請求項１から６のいずれかに記載のサーバ。
【請求項８】
第１端末と第２端末とを含む複数の端末とネットワークを介して接続されたサーバが実行する通信接続管理方法であって、
前記第１端末と前記第２端末との少なくともいずれか一方から、前記第１端末と前記第２端末との間における近距離無線通信の接続要求を受信する受信ステップと、
前記近距離無線通信に用いる同期用情報を生成する生成ステップと、
生成した同期用情報を、前記第１端末と前記第２端末とに送信する送信ステップとを備え、
前記同期用情報は、前記第１端末と前記第２端末との間の近距離無線通信のための通信用ＩＤと、当該近距離無線通信で流れるデータを暗号化するための暗号鍵とを含むことを特徴とする通信接続管理方法。
【請求項９】
第１端末と第２端末とを含む複数の端末とネットワークを介して接続されたサーバの通信接続管理プログラムであって、コンピュータに、
前記第１端末と前記第２端末との少なくともいずれか一方から、前記第１端末と前記第２端末との間における近距離無線通信の接続要求を受信する受信機能と、
前記近距離無線通信に用いる同期用情報を生成する生成機能と、
生成した同期用情報を、前記第１端末と前記第２端末とに送信する送信機能とを実現させ、
前記同期用情報は、前記第１端末と前記第２端末との間の近距離無線通信のための通信用ＩＤと、当該近距離無線通信で流れるデータを暗号化するための暗号鍵とを含むことを特徴とする通信接続管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、サーバおよび通信接続管理方法ならびに通信接続管理プログラムに関するものであって、特に、近距離無線通信のサーバおよび通信接続管理方法並びに通信接続管理プログラムに関する。
【背景技術】
【０００２】
近年、情報通信技術が急速に発展し、ある送信装置から受信装置に対して、テキスト情報、ファイル情報、ビデオ情報、オーディオ情報、音声情報、マルチメディア情報等の情報を、ネットワークを介して通信することが広く行われるようになってきている（特許文献１参照）。また、近距離に位置する端末間において、ピアツーピアで近距離無線通信を確立し、データ転送することも行われるようになってきている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−５２９５３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
異なる２つの端末間でピアツーピアの近距離無線通信を確立しようとする場合、確立前の端末同士は互いに相手を認識していないことを前提とするのが通常である。このため、２つの端末が近距離無線通信を確立するためにはペアリングが必要となり、煩雑となっている。
【０００５】
本願の発明者は、２つの端末が近距離無線通信を確立しようとする際に、既に存在する端末同士の関連情報を利用することによって、ペアリング操作を省略できる可能性について認識するに至った。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、その目的は、近距離無線通信を確立する際の煩雑さを低減する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、第１端末と第２端末とを含む複数の端末とネットワークを介して接続されたサーバは、第１端末と第２端末との少なくともいずれか一方から、第１端末と第２端末との間における近距離無線通信の接続要求を受信する受信部と、近距離無線通信に用いる同期用情報を生成する生成部と、生成部が生成した同期用情報を、第１端末と第２端末とに送信する送信部とを備える。生成部が生成する同期用情報は、第１端末と第２端末との間の近距離無線通信のための通信用ＩＤと、当該近距離無線通信で流れるデータを暗号化するための暗号鍵とを含む。
【０００８】
第１端末と第２端末とが互いに関連づけられているか否かを判定する判定部をさらに備えてもよい。
【０００９】
生成部は、判定部によって第１端末と第２端末とが互いに関連づけられていると判定された場合に、同期用情報を生成してもよい。
【００１０】
受信部はさらに、第１端末と第２端末とのそれぞれから、第１端末の位置情報と第２端末の位置情報とを受信し、判定部はさらに、受信部が受信した位置情報をもとに、第１端末と第２端末との距離が所定の距離以下であるか否かを判定することを特定してもよい。
【００１１】
生成部は、第１端末が第２端末との間の近距離無線通信に用いる第１同期用情報と、第２端末が第１端末との間の近距離無線通信に用いる第２同期用情報とを生成してもよい。
【００１２】
生成部は、第１端末が第２端末と通信するための通信用ＩＤとトークンとを含む情報を第１同期用情報として生成し、第２端末が第１端末と通信するための通信用ＩＤとトークン、および暗号鍵を含む情報を第２同期用情報として生成してもよい。
【００１３】
第１端末と第２端末とが近距離無線通信接続を開始することを契機として、第１端末と第２端末との間のデータ通信を仲介するデータ転送部をさらに備えてもよい。
【００１４】
本発明の別の態様は、通信接続管理方法である。この方法は、第１端末と第２端末とを含む複数の端末とネットワークを介して接続されたサーバが実行する通信接続管理方法であって、第１端末と第２端末との少なくともいずれか一方から、第１端末と第２端末との間における近距離無線通信の接続要求を受信するステップと、近距離無線通信に用いる同期用情報を生成するステップと、生成した同期用情報を、第１端末と第２端末とに送信するステップとを備える。同期用情報は、第１端末と第２端末との間の近距離無線通信のための通信用ＩＤと、当該近距離無線通信で流れるデータを暗号化するための暗号鍵とを含む。
【００１５】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１６】
本発明によれば、近距離無線通信を確立する際の煩雑さを低減する技術を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態に係るデータ転送システムの構成を模式的に示す図である。
【図２】実施の形態に係るサーバの機能構成を模式的に示す図である。
【図３】実施の形態に係る記憶部が格納する登録データベースのデータ構造を模式的に示す図である。
【図４】実施の形態に係るサーバが実行する、端末間の近距離無線通信における同期調停処理の流れを説明するフローチャートである。
【図５】実施の形態に係るデータ転送システムにおける処理の流れを説明するシーケンス図である。
【発明を実施するための形態】
【００１８】
図１を参照して、本発明の実施の形態に係るサーバを含むデータ転送システムの概要を述べる。
【００１９】
図１は、実施の形態に係るデータ転送システム１の構成を模式的に示す図である。図１に例示するデータ転送システム１は、サーバ１００、第１端末２００ａ、第２端末２００ｂ、第３端末２００ｃ、第４端末２００ｄ、および第５端末２００ｅを含む。以下特に区別する場合を除き、第１端末２００ａ、第２端末２００ｂ、第３端末２００ｃ、第４端末２００ｄ、および第５端末２００ｅを「端末２００」と総称する。
【００２０】
端末２００は、少なくともプロセッサ、メモリ、および記憶部を備える情報処理端末である。限定はしないが、一例として、端末２００はスマートフォン、タブレット、ファブレット、携帯電話、ＰＤＡ（Personal Digital Assistant）、ノートＰＣ（Personal Computer）、電子辞書、携帯テレビ、携帯ゲーム機、携帯音楽プレイヤ、腕時計、またはメガネやリストバンドなどの各種ウェアラブルコンピュータである。
【００２１】
図１は、５つの端末２００がサーバ１００と接続している場合の例を示している。しかしながら、データ転送システム１が含む端末２００の数は５つに限られず、２以上の数であればいくつであってもよい。
【００２２】
端末２００はそれぞれ、インターネットや携帯電話通信網等のネットワーク３００を介してサーバ１００と通信可能に接続されている。また、端末２００はそれぞれ、近距離無線通信を介して互いにピアツーピアで接続することができる。近距離無線通信は、例えばＷｉ−Ｆｉ  Ｄｉｒｅｃｔ（商標または登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外通信等の通信技術の他、ＮＦＣ（Near Field Communication）等の近傍無線通信技術を用いて実現できる。図１に示す例では、第１端末２００ａと第２端末２００ｂとが、互いに近距離無線接続しており、第３端末２００ｃおよび第４端末２００ｄも互いに無線通信接続し、データをやり取りしている。
【００２３】
上述したように、端末２００はそれぞれネットワーク３００を介してサーバ１００にも接続されている。したがって、異なる２つの端末２００は、ネットワーク３００およびサーバ１００を介して互いに通信可能に接続することもできる。実施の形態に係るデータ転送システム１においては、ある端末２００が別の端末２００に近距離無線通信接続を要求する際、サーバ１００はその接続要求があったことを示す情報である接続要求情報を受信する。サーバ１００が接続要求情報を受信した時点では、２つの端末２００の間で近距離無線通信接続は開始されない。
【００２４】
サーバ１００が受信する接続要求情報には、異なる２つの端末２００をそれぞれ識別するための端末識別情報が含まれている。ここで接続要求情報は、端末２００の所在地を示す位置情報を含んでもよい。接続要求情報が位置情報を含まない場合、サーバ１００は、接続要求情報とは別に、上述の位置情報を端末２００から受信してもよい。端末２００は、例えば図示しないＧＰＳ（Global Positioning System）モジュールを用いることで位置情報を取得すればよい。
【００２５】
サーバ１００は、２つの端末が近距離無線通信の通信圏内である場合、端末識別情報をもとに２つの端末２００が関連づけられているか否かを確認する。２つの端末２００が関連づけられている場合、サーバ１００は、２つの端末２００が互いに近距離無線通信接続するために用いる同期情報を生成し、２つの端末２００それぞれに送信する。
【００２６】
サーバ１００が生成する同期情報には、２つの端末２００が近距離無線通信接続を確立するために用いる情報のみならず、データを暗号化および復号するための暗号鍵も含まれる。このため、２つの端末２００は、サーバ１００から受信した同期情報を用いて近距離無線通信を確立することができる。このため、２つの端末２００は、近距離無線通信接続の確立時におけるペアリングの手間を省くことができる。また、ひとたび近距離無線通信接続が確立した後は、２つの端末２００は暗号鍵を用いてデータを暗号化して転送できるようになる。結果として、２つの端末２００間のデータ通信の安全性を向上することができる。
【００２７】
なお、暗号鍵とは、いわゆる公開鍵暗号方式の暗号鍵や、共有鍵暗号における暗号鍵である。前者の暗号鍵は、例えばＲＳＡ等の既知の公開鍵暗号の技術を用いて実現できる。また後者の暗号鍵は、ＤＥＳ、ＦＥＡＬ、ＭＩＳＴＹ、またはＩＤＥＡ等の既知の共通鍵暗号の技術を用いて実現できる。
【００２８】
実施の形態に係るサーバ１００は、２つの端末２００間で近距離無線通信が確立すると、ネットワーク３００を介して、当該２つの端末２００の間のデータ転送を仲介することもできる。これにより、２つの端末２００の間には、近距離無線通信を介する経路と、ネットワーク３００を介する経路との、２つのデータ転送経路が確立されることになる。この２つのデータ転送経路を冗長経路として使用することにより、データ転送の信頼性を高めることができる。あるいは、２つのデータ転送経路を異なるデータ転送帯域に割り当てることにより、データ転送の速度を向上することもできる。
【００２９】
このように、実施の形態に係るデータ転送システム１においては、サーバ１００が異なる２つの端末２００間の近距離無線通信の接続を管理する。以下、実施の形態に係るサーバ１００についてより詳細に説明する。
【００３０】
図２は、実施の形態に係るサーバ１００の機能構成を模式的に示す図である。実施の形態に係るサーバ１００は、受信部１０、生成部２０、送信部３０、判定部４０、データ転送部５０、および記憶部６０を備える。
【００３１】
図２は、実施の形態に係るサーバ１００がデータ転送の仲介を実現するための機能構成を示しており、その他の構成は省略している。図２において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メインメモリ、その他のＬＳＩ（Large Scale Integration）で構成することができる。またソフトウェア的には、メインメモリにロードされたプログラムなどによって実現される。なお、このプログラムは、コンピュータが読み出し可能な記録媒体に格納されていてもよく、通信回線を介してネットワークからダウンロードされてもよい。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３２】
図２に示すサーバ１００の各機能部をソフトウェアにより実現する場合、サーバ１００または端末２００は、各機能を実現するソフトウェアであるプログラムの命令を実行することで実現される。このプログラムを格納する記録媒体は、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記検索プログラムは、当該検索プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。本発明は、上記検索プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００３３】
なお、上記検索プログラムは、例えば、ActionScript、JavaScript（登録商標）などのスクリプト言語、C++、Objective-C、Java（登録商標）、Rubyなどのオブジェクト指向プログラミング言語、HTML5などのマークアップ言語などを用いて実装できる。
【００３４】
以下、図１に示す第１端末２００ａと第２端末２００ｂとが近距離無線通信接続を開始することを前提に説明する。また、第１端末２００ａのユーザと第２端末２００ｂのユーザとはそれぞれ第１ユーザと第２ユーザであることを前提とする。なお、説明の便宜上第１ユーザと第２ユーザとは異なるユーザとするが、同一のユーザであってもよい。
【００３５】
いま、互いに知り合いである第１ユーザと第２ユーザとが出会い、第１ユーザが、第１端末２００ａに格納されているデータを第２ユーザが所持する第２端末２００ｂに送信することを望んだとする。第１端末２００ａと第２端末２００ｂとは近距離無線通信の通信圏内にあるため、第１ユーザは、第１端末２００ａを操作して第２端末２００ｂに対し、データ送信の開始を指示する。
【００３６】
この指示に応答して、第１端末２００ａは、第２端末２００ｂに近距離無線通信の接続要求を送信する。このとき、第１端末２００ａは、第１端末２００ａを識別可能な第１端末識別子を第２端末２００ｂに送信する。また、第２端末２００ｂは、第２端末２００ｂを識別可能な第２端末識別子を第１端末２００ａに送信する。これにより、第１端末２００ａと第２端末２００ｂとは、それぞれ通信相手を識別するための識別子を取得できる。
【００３７】
ここで第１ユーザが、自身が所持する第１端末２００ａに対して第２端末２００ｂと近距離無線通信を介してデータ送信の開始をすることを指示するためには、例えば第１端末２００ａのタッチパネル（不図示）に示されたアイコンをタップすることで実現される。アイコンのタップに代えて、あるいはそれに加えて、第１ユーザが第１端末２００ａを所定の振動数以上で振る、ないしシェイクすることで第２端末２００ｂに対してデータ送信の開始を指示するようにしてもよい。この場合、第１端末２００ａ内の図示しない加速度センサが、第１端末２００ａの動きを検出することで実現できる。
【００３８】
同様に、第２ユーザは、自身が所持する第２端末２００ｂに第１端末２００ａからの接続要求に応答させるために、アイコンをタップしたり、第２端末２００ｂを振ったりすることで、第１端末２００ａに応答することを指示させてもよい。
【００３９】
第１端末２００ａは、第１ユーザの明示的な指示を受けることなく、第２端末２００ｂに対して近距離無線通信の接続を要求することを示す接続要求情報を、サーバ１００の受信部１０に送信する。第１端末２００ａがサーバ１００に送信する接続要求情報は、第１端末識別子と第２端末識別子も含まれる。
【００４０】
なお、第１ユーザが第１端末２００ａから第２端末に送信を開始しようとするデータの容量が所定の容量以上の場合、第１端末２００ａは、第１ユーザの明示的な指示を受けることなく、接続要求情報をサーバ１００の受信部１０に送信するようしにしもよい。ここで「所定の容量」とは、端末２００が、接続要求情報を自動でサーバ１００に送信するか否かを判定するために参照する「自動送信基準容量」である。自動送信基準容量の値は、データ転送システム１が想定するデータの容量を考慮して実験により定めればよいが、例えば一般的な動画が備えているであろうデータ容量である。限定はしないが、一例として、自動送信基準容量の値は、１０ＭＢである。
【００４１】
サーバ１００の受信部１０は、第１端末２００ａから、第１端末２００ａと第２端末２００ｂとの間における近距離無線通信の接続要求情報を受信する。判定部４０は、受信部１０が受信した接続要求情報に含まれる第１端末識別子と第２端末識別子とをもとに、第１端末２００ａと第２端末２００ｂとが互いに関連づけられているか否かを判定する。これにより、ユーザの操作ミスによって見知らぬユーザの端末２００と通信接続することを抑制できる。判定部４０はまた、第１端末２００ａおよび第２端末２００ｂから受信した位置情報をもとに、第１端末と第２端末とが近くにいるか否かを判定する。これにより、第１端末２００ａと第２端末２００ｂとが互いに離れているときに、近距離無線通信接続の確立を試みてしまうことを抑制できる。
【００４２】
なお判定部４０は、第１端末２００ａがサーバ１００に接続要求情報を送信した時刻と、第２端末２００ｂがサーバ１００に接続要求情報を送信した時刻との差が所定の時間内である場合には、第１端末２００ａと第２端末２００ｂとが近くにあると判断してもよい。
【００４３】
ここで異なる２つの端末２００が「互いに関連づけられている」とは、例えば、それぞれの端末２００のユーザ同士が互いに何らかの関連づけがなされていることを意味する。具体的には、判定部４０は、第１端末２００ａの所有者である第１ユーザと、第２端末２００ｂの所有者である第２ユーザとが、何らかのＳＮＳ（Social Network Service）において友達登録をしている場合に、第１端末２００ａと第２端末２００ｂとが互いに関連づけられていると判定する。判定部４０は、記憶部６０に格納されている登録データベースを参照して、第１端末２００ａと第２端末２００ｂとの関連づけを判定する。
【００４４】
あるいは、それぞれの端末２００のユーザが互いに直接友達となっていなくても、共通の友人が存在する場合、すなわち、両者が友達の友達である場合にも、関連づけられているとしてもよい。その他、一方の端末２００のユーザが別の端末２００のユーザのＳＮＳをいわゆる「フォロー」している場合や同一のグループに属している場合等も関連づけられているものとしてもよい。
【００４５】
図３は、実施の形態に係る記憶部６０が格納する登録データベース６２のデータ構造を模式的に示す図である。図３に示すように、登録データベース６２には、端末２００を一意に特定可能な端末識別子と、その端末２００の所有者を一意に特定可能なユーザ識別子とが、端末識別子毎に対応づけられて格納されている。さらに、登録データベース６２には、ユーザ識別子で特定されるユーザが友達登録をしている他のユーザを識別するための友達識別子も対応づけられて格納されている。
【００４６】
図３に示す登録データベース６２は、端末識別子がＤＩＤＡＡＡＡＡである端末２００のユーザのユーザ識別子が、ＵＩＤ００００１であることを示している。ＵＩＤ００００１で特定されるユーザは複数の他のユーザを友達登録しており、それらのユーザのユーザ識別子がＵＩＤ００００２、ＵＩＤ００００３、ＵＩＤ００００４等であることを示している。
【００４７】
なお、上記では、第１端末２００ａが、第２端末２００ｂに対して近距離無線通信の接続を要求することを示す接続要求情報を、サーバ１００の受信部１０に送信する場合について説明した。これに代えて、あるいはこれに加えて、第２端末２００ｂが、第１端末２００ａに対して近距離無線通信の接続を要求することを示す接続要求情報を、サーバ１００の受信部１０に送信してもよい。すなわち、サーバ１００の受信部１０は、第１端末２００ａと第２端末２００ｂとの少なくともいずれか一方から、第１端末２００ａと第２端末２００ｂとの間における近距離無線通信の接続要求を受信すればよい。
【００４８】
図２の説明に戻る。判定部４０は、受信部１０が取得した接続要求情報に含まれる第１端末識別子と第２端末識別子とを取得する。判定部は記憶部６０が格納する登録データベースにアクセスして、第１端末識別子のユーザの識別子である第１ユーザ識別子と、第２端末識別子のユーザの識別子である第２ユーザ識別子とを取得する。判定部さらに、第１ユーザ識別子で特定されるユーザに紐付けられている友達識別子の中に、第２ユーザ識別子が存在するか否かを調べる。第１ユーザ識別子で特定されるユーザに紐付けられている友達識別子の中に第２ユーザ識別子が存在する場合、判定部４０は、第１端末２００ａと第２端末２００ｂとが互いに関連づけられていると判定する。第１ユーザ識別子で特定されるユーザに紐付けられている友達識別子の中に第２ユーザ識別子が存在しない場合、判定部４０は、第１端末２００ａと第２端末２００ｂとが互いに関連づけられていないと判定する。
【００４９】
生成部２０は、判定部４０によって第１端末２００ａと第２端末２００ｂとが互いに関連づけられていると判定された場合、同期用情報を生成する。これにより、第１ユーザが誤って無関係のユーザと近距離無線通信することが抑制できる。
【００５０】
ここで「同期用情報」とは、第１端末２００ａと第２端末２００ｂとの間における近距離無線通信に用いる情報である。より具体的に、同期用情報は、第１端末２００ａと第２端末２００ｂとの間の近距離無線通信のための通信用ＩＤと、当該近距離無線通信で流れるデータを暗号化するための暗号鍵（秘密鍵および公開鍵）と、通信用のトークン（token）とを含む情報である。送信部３０は、生成部２０が生成した同期用情報を、ネットワーク３００を介して第１端末２００ａと第２端末２００ｂとに送信する。より具体的には、送信部３０は、通信用ＩＤとトークンとを第１端末２００ａに送信し、通信用ＩＤ、トークン、および暗号鍵を第２端末２００ｂに送信する。なお生成部２０は、この通信用のトークンをランダムに生成してもよい。
【００５１】
同期用情報に含まれる通信用ＩＤは、第１端末２００ａと第２端末２００ｂとが、互いに相手とのみ通信する際に利用するいわばセッションＩＤである。図１に示すように、データ転送システム１には複数の端末２００が含まれる。このため、第１端末２００ａと第２端末２００ｂとの近距離無線通信の通信圏内に、他の端末２００（例えば、第３端末２００ｃ）が存在する場合もあり得る。このような場合に、第１端末２００ａと第２端末２００ｂとはサーバ１００から受信した通信用ＩＤを用いることで、第１端末２００ａと第２端末２００ｂとの間で通信することを保証できる。
【００５２】
当然ながら、第１端末２００ａと第３端末２００ｃとが互いに近距離無線通信の通信圏内にあれば、第１端末２００ａは第３端末２００ｃと近距離無線通信を確立することも可能である。しかしながら、第１端末２００ａと第３端末２００ｃとの通信のための通信用ＩＤは、第１端末２００ａと第２端末２００ｂとの間の通信用ＩＤとは異なる。端末２００は、通信用ＩＤを参照することで通信相手の端末２００を識別できるため、データを誤送信することが抑制できる。
【００５３】
このように、第１端末２００ａと第２端末２００ｂとは、それぞれ送信部３０から送信された同期用信号を受信する。同期用信号を受信した第２端末２００ｂは、通信用ＩＤを用いて第１端末２００ａとの近距離無線通信の接続を試みる。同時に第２端末２００ｂは、サーバ１００から受信した暗号鍵のうち公開鍵を第１端末２００ａに送信する。
【００５４】
第１端末２００ａは、第２端末２００ｂから受信した公開鍵を用いて、サーバ１００から受信したトークンを暗号化する。第１端末２００ａは、暗号化したトークンを第２端末２００ｂに送信する。第２端末２００ｂは、第１端末２００ａから暗号化されたトークンを受信し、秘密鍵を用いて復号する。第２端末２００ｂは、復号したトークンが第１端末２００ａに送信したトークンと一致するか否かを確認する。一致する場合、第２端末２００ｂは、近距離無線通信の相手として第１端末２００ａが適正であるとみなす。これにより、第１端末２００ａと第２端末２００ｂとは近距離無線通信を確立できる。また、第１端末２００ａと第２端末２００ｂとは共通の暗号鍵を持つため、データを暗号化して送受信することが可能となる。
【００５５】
なお、第２端末２００ｂは、復号したトークンが第１端末２００ａに送信したトークンと異なる場合、第１端末を近距離無線通信の相手として適切でないと判断し、通信を確立しなくてもよい。このように、第２端末２００ｂは、送信部３０から送信された同期用情報を受信した後に、当該同期用情報によって第１端末２００ａと正しく通信が確立できたか否かを検証することができる。
【００５６】
第１端末２００ａと第２端末２００ｂとが正しく通信が確立できたか否かの検証は、上述した方法に限られない。この検証は、例えば以下のようにしても実現できる。
【００５７】
まず、第１端末２００ａは、任意の方法で生成した平文を、同期用情報を用いて確立した近距離無線通信を介する経路（以下、「無線通信経路」ということがある。）で第２端末２００ｂに送信する。第１端末２００ａはまた、同じ平文を、ネットワーク３００およびサーバ１００を介する経路（以下、「サーバ経路」ということがある。）で第２端末２００ｂに送信する。第２端末２００ｂは、無線通信経路を介して取得した平文と、サーバ経路を介して取得した平文とが一致するか否かを照合し、その結果を第１端末２００ａに送信する。
【００５８】
第１端末２００ａは、第２端末２００ｂから送信された照合結果によって、第２端末２００ｂと正しく近距離無線通信が確立できたか否かを検証する。すなわち、第２端末２００ｂから平文が一致する旨の結果を取得した場合、第１端末２００ａは、第２端末２００ｂと正しく近距離無線通信が確立できたと判定する。第２端末２００ｂから平文が相違する旨の結果を取得した場合、あるいは所定の時間経過しても第２端末２００ｂから照合結果が送信されない場合、第１端末２００ａは、第２端末２００ｂとの間の近距離無線通信接続に失敗したと判定する。
【００５９】
なお、第１端末２００ａは、生成した平文に代えて、その平文を第２端末２００ｂから受信した暗号鍵で暗号化した暗号文を、無線通信経路とサーバ経路との２つの経路を使って送信してもよい。この場合、第２端末２００ｂは、自信が所持する公開鍵を用いて暗号文を復号してから、両者が一致するか否かを検証してもよい。または、第２端末２００ｂは、２つの経路からそれぞれ取得した暗号文を、そのままバイナリ比較して一致するか否かを検証してもよい。
【００６０】
あるいは、第１端末２００ａと第２端末２００ｂとが秘密鍵方式の暗号化を採用している場合には、第１端末２００ａは、平文に代えて、同期用情報に含まれる秘密鍵から所定の方法で生成したハッシュ値を、無線通信経路とサーバ経路とのいずれか一方の経路を使って第２端末２００ｂに送信してもよい。この場合、第２端末２００ｂは、自身が所有する暗号鍵からハッシュ値を生成し、取得したハッシュ値と一致するか否かを検証する。
【００６１】
このように、第１端末２００ａは、サーバ１００から取得した同期用情報を用いて確立した近距離無線通信接続が、正しく第２端末２００ｂと通信できているか否かを検証する。これにより、近距離無線通信接続の安全性を向上することができる。
【００６２】
図２の説明に戻る。データ転送部５０は、第１端末２００ａと第２端末２００ｂとが近距離無線通信接続を開始することを契機として、第１端末２００ａと第２端末２００ｂとの間のデータ通信を仲介する。これにより、第１端末２００ａと第２端末２００ｂとの間には、無線通信経路と、サーバ経路との、２つのデータ転送経路が確立されることになる。この２つのデータ転送経路を冗長経路として使用することにより、データ転送の信頼性を高めることができる。あるいは、２つのデータ転送経路を異なるデータ転送帯域に割り当てることにより、データ転送の速度を向上することもできる。
【００６３】
図４は、実施の形態に係るサーバ１００が実行する、端末２００間の近距離無線通信における同期調停処理の流れを説明するフローチャートである。本フローチャートにおける処理は、例えばサーバ１００が起動したときに開始する。
【００６４】
受信部１０は、第１端末２００ａと第２端末２００ｂとの間における近距離無線通信の接続要求を受信する（Ｓ２）。判定部４０は、受信した接続要求に含まれる位置情報をもとに、第１端末２００ａと第２端末２００ｂとの距離が所定の距離（近距離無線通信の通信圏内）であるか否かを判定する（Ｓ４）。第１端末２００ａと第２端末２００ｂとの距離が所定の距離以下である場合（Ｓ６のＹｅｓ）、判定部４０は、受信した接続要求に含まれる端末識別子をもとに、記憶部６０に格納されている登録データベース６２を参照して、第１端末２００ａと第２端末２００ｂとの関連づけを確認する（Ｓ８）。
【００６５】
判定部４０によって第１端末２００ａと第２端末２００ｂとが互いに関連づけられていると判定された場合（Ｓ１０のＹｅｓ）、生成部２０は、第１端末２００ａと第２端末２００ｂとが近距離無線通信に用いる同期用情報を生成する（Ｓ１２）。送信部３０は、生成部２０が生成した同期用情報を、第１端末２００ａと第２端末２００ｂとに送信する（Ｓ１４）。
【００６６】
データ転送部５０は、第１端末２００ａと第２端末２００ｂとの間の近距離無線通信が開始する前は（Ｓ１６のＮｏ）、開始するまで待機する。第１端末２００ａと第２端末２００ｂとの間の近距離無線通信が開始されると（Ｓ１６のＹｅｓ）、データ転送部５０は、第１端末２００ａと第２端末２００ｂとの間のデータ転送を仲介する（Ｓ１８）。
【００６７】
判定部４０が第１端末２００ａと第２端末２００ｂとの距離が所定の距離より離れていると判定するか（Ｓ１０のＮｏ）、判定部４０が第１端末２００ａと第２端末２００ｂとの間に関連づけがないと判定するか（Ｓ６のＮｏ）、または第１端末２００ａと第２端末２００ｂとの間のデータ転送が終了すると、本フローチャートにおける処理は終了する。
【００６８】
図５は、実施の形態に係るデータ転送システム１における処理の流れを説明するシーケンス図である。以下、図５を参照して、実施の形態に係るデータ転送システム１の動作を説明する。
【００６９】
第１端末２００ａは、近距離無線通信の通信圏内にある第２端末２００ｂに、データの送信を試みる（Ｓ３０）。このとき、第１端末２００ａは、第２端末２００ｂに、第１端末２００ａを識別するための端末識別情報を送信する。第２端末２００ｂは、第１端末２００ａに端末識別情報を送信する（Ｓ３２）。
【００７０】
第１端末２００ａは、第２端末２００ｂから端末識別情報の送信があると、第１ユーザの明示的な指示の有無にかかわらず、サーバ１００に対して第２端末２００ｂとの間における近距離無線通信の接続を要求する第１接続要求を送信する（Ｓ３４）。サーバ１００の受信部１０は、第１端末２００ａから第１接続要求を受信する（Ｓ３６）。
【００７１】
第２端末２００ｂは、第１端末２００ａに端末識別情報を送信すると、第２ユーザの明示的な指示の有無にかかわらず、サーバ１００に対して第１端末２００ａとの間における近距離無線通信の接続を要求する第２接続要求を送信する（Ｓ３８）。サーバ１００の受信部１０は、第２端末２００ｂから第２接続要求を受信する（Ｓ４０）。
【００７２】
このように、サーバ１００が第１端末２００ａと第２端末２００ｂとから、それぞれ接続要求を受信することにより、第１端末２００ａと第２端末２００ｂとが近距離無線通信を開始することの信頼性を向上することができる。
【００７３】
サーバ１００の判定部４０は、第１端末２００ａと第２端末２００ｂとの関連づけを検証する（Ｓ４２）。第１端末２００ａと第２端末２００ｂとの関連づけがない場合（Ｓ４４のＮ）、サーバ１００は処理を終了する。
【００７４】
第１端末２００ａと第２端末２００ｂとの関連づけがある場合（Ｓ４４のＹ）、生成部２０は同期用情報を生成する。より具体的には、生成部２０は、第１端末２００ａと第２端末２００ｂとの間の近距離無線通信に用いるための通信用ＩＤおよびトークンを生成する（Ｓ４６）。生成部２０はまた、第１端末２００ａと第２端末２００ｂとの間のデータ通信を暗号化するための暗号鍵（公開鍵および秘密鍵）を生成する（Ｓ４８）。
【００７５】
送信部３０は、生成部２０が生成した同期用情報を、第１端末２００ａと第２端末２００ｂとに送信する（Ｓ５０）。
【００７６】
通信用ＩＤは、第１端末２００ａと第２端末２００ｂと第２端末２００ｂとの間の近距離無線通信に用いるための情報である。したがって、第１端末２００ａは、通信相手が第２端末２００ｂであることが判別できればよく、第２端末２００ｂは、通信相手が第１端末２００ａであることが判別できればよい。このため、第１同期用情報に含まれる通信用ＩＤは、通信相手を判別するための情報として、例えば第２端末２００ｂの端末識別子が含まれていればよく、自身の情報は含まれていなくてもよい。同様に第２同期用情報に含まれる通信用ＩＤは、第１端末２００ａの端末識別子が含まれていればよい。これにより、各同期用情報のデータ量を抑制しデータ通信のコストを下げることができる。
【００７７】
図５の説明に戻る。第２端末２００ｂは、サーバ１００から第１同期用情報を取得すると、暗号鍵のうち公開鍵を第１端末２００ａに送信する（Ｓ５２）。第１端末２００ａは、受信した公開鍵を用いて、通信用のトークンを暗号化する（Ｓ５４）。第１端末２００ａは、暗号化したトークンを第２端末２００ｂに送信する（Ｓ５６）。第２端末２００ｂは、第１端末２００ａが暗号化したトークンを秘密鍵で復号する（Ｓ５８）。
【００７８】
第２端末２００ｂは、復号したトークンが第１端末２００ａに送信したトークンと一致しない場合（Ｓ６０のＮｏ）、処理を終了する。第２端末２００ｂから受信した照合結果が、トークンが一致した場合（Ｓ６０のＹｅｓ）、第２端末２００ｂは、第１端末２００ａとの間の近距離無線通信を開始する（Ｓ６２）。第１端末２００ａは、第２端末２００ｂにデータを転送する（Ｓ６４）。サーバ１００のデータ転送部５０は、第１端末２００ａと第２端末２００ｂとの間のデータ転送を仲介する（Ｓ６６）。
【００７９】
以上説明したように、実施形態に係るデータ転送システム１によれば、近距離無線通信を介する端末間のデータ転送の安全性を向上させる技術を提供することができる。
【００８０】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８１】
上記では、サーバ１００が各構成要素を備える場合について説明した。しかしながら、サーバ１００は必ずしも物理的に１つのものである必要はない。サーバ１００の各構成要素は、ネットワーク３００を介して互いに相互通信可能に接続されていればよく、いわゆるクラウドコンピューティングとして実現されてもよい。例えば、記憶部６０は、端末２００の各ユーザが登録するＳＮＳを管理するサーバが備えるものであってもよい。
【００８２】
上記では、第１端末２００ａは、第２端末から応答信号を受信すると、ユーザの明示的な指示がなくとも、接続要求情報をサーバ１００に送信する場合について説明した。これに代えて、第１端末２００ａは、ユーザの明示的な指示を待ってから、接続要求情報をサーバ１００に送信するようにしてもよい。
【００８３】
上記の説明では、第１端末２００ａと第２端末２００ｂとが暗号鍵を用いて認証をする場合について説明した。これに代えて、あるいはこれに加えて、サーバ１００が第１端末２００ａと第２端末２００ｂとのそれぞれに証明書を発行することで両端末の認証をするようにしてもよい。これは例えばサーバ１００が既知の電子証明技術を実行することで実現できる。
【符号の説明】
【００８４】
１  データ転送システム、  １０  受信部、  ２０  生成部、  ３０  送信部、  ４０  判定部、  ５０  データ転送部、  ６０  記憶部、  ６２  登録データベース、  １００  サーバ、  ２００  端末、  ３００  ネットワーク。
【図１】
2016149673.tif 000003
【図２】
2016149673.tif 000004
【図３】
2016149673.tif 000005
【図４】
2016149673.tif 000006
【図５】
2016149673.tif 000007