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

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

▶ コネクトフリー株式会社の特許一覧

<>
  • 特許-通信方法およびネットワークシステム 図1
  • 特許-通信方法およびネットワークシステム 図2
  • 特許-通信方法およびネットワークシステム 図3
  • 特許-通信方法およびネットワークシステム 図4
  • 特許-通信方法およびネットワークシステム 図5
  • 特許-通信方法およびネットワークシステム 図6
  • 特許-通信方法およびネットワークシステム 図7
  • 特許-通信方法およびネットワークシステム 図8
  • 特許-通信方法およびネットワークシステム 図9
  • 特許-通信方法およびネットワークシステム 図10
  • 特許-通信方法およびネットワークシステム 図11
  • 特許-通信方法およびネットワークシステム 図12
  • 特許-通信方法およびネットワークシステム 図13
  • 特許-通信方法およびネットワークシステム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-10
(45)【発行日】2023-10-18
(54)【発明の名称】通信方法およびネットワークシステム
(51)【国際特許分類】
   H04L 69/08 20220101AFI20231011BHJP
【FI】
H04L69/08
【請求項の数】 8
(21)【出願番号】P 2022078019
(22)【出願日】2022-05-11
(62)【分割の表示】P 2020570275の分割
【原出願日】2019-02-06
(65)【公開番号】P2022109301
(43)【公開日】2022-07-27
【審査請求日】2022-06-10
(73)【特許権者】
【識別番号】514318600
【氏名又は名称】コネクトフリー株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】帝都 久利寿
【審査官】宮島 郁美
(56)【参考文献】
【文献】国際公開第2005/099170(WO,A1)
【文献】特表2017-537538(JP,A)
【文献】特開2015-191228(JP,A)
【文献】米国特許出願公開第2003/0014623(US,A1)
【文献】特開2001-320359(JP,A)
【文献】米国特許出願公開第2016/0149899(US,A1)
【文献】米国特許出願公開第2006/0184789(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-13/18,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項1】
複数のデバイスが接続されたネットワークにおける通信方法であって、
第1のデバイスにおいて、認証済みIPアドレスを有している第2のデバイスを宛先とする第1の暗号化パケットを生成するステップと、
前記第1の暗号化パケットを前記第1のデバイスから前記第2のデバイスまでP2P(peer to peer)で転送するステップと、
前記第1のデバイスにおいて、認証済みIPアドレスを有していない第3のデバイスを宛先とするパケットを暗号化して第2の暗号化パケットを生成するステップと
前記第2の暗号化パケットを第1のデバイスから認証済みIPアドレスを有しているのデバイスまでP2Pで転送するステップと、
前記第のデバイスにおいて、前記第2の暗号化パケットを復号して生成したパケットを、前記第のデバイスに送信するステップとを備える、通信方法。
【請求項2】
前記第4のデバイスにおいて、前記第3のデバイスからの応答パケットを受信して、前記第1のデバイスを宛先とする第3の暗号化パケットを生成するステップとをさらに備え、前記第3の暗号化パケットは、前記応答パケットを含み、
前記第3の暗号化パケットを前記第3のデバイスから前記第1のデバイスまでP2Pで転送するステップをさらに備える、請求項1に記載の通信方法。
【請求項3】
前記第1のデバイスから前記第4のデバイスに対してプロキシ動作を有効化するための要求を送信するステップをさらに備える、請求項1または2に記載の通信方法。
【請求項4】
前記第2の暗号化パケットは、前記第4のデバイスに対する要求を含む、請求項1~3のいずれか1項に記載の通信方法。
【請求項5】
前記第1のデバイス、前記第2のデバイス、および前記第3のデバイスの各々において、ハッシュ関数に従って公開鍵から算出されるハッシュ値に基づいて、当該公開鍵に関連付けられるデバイスの認証済みIPアドレスを取得するステップをさらに備える、請求項1~4のいずれか1項に記載の通信方法。
【請求項6】
前記第1のデバイス、前記第2のデバイス、および前記第3のデバイスの各々において、前記公開鍵に関連付けられる電子証明書を取得するステップをさらに備える、請求項5に記載の通信方法。
【請求項7】
複数のデバイスが接続されたネットワークシステムであって、
認証済みIPアドレスを有している第1のデバイス、第2のデバイスおよび第3のデバイスと、
認証済みIPアドレスを有していない第4のデバイスとを備え、
前記第1のデバイスは、
前記第2のデバイスを宛先とする第1の暗号化パケットを生成し、
前記第1の暗号化パケットを前記第2のデバイスまでP2P(peer to peer)で転送し、
前記第4のデバイスを宛先とするパケットを暗号化して第2の暗号化パケットを生成し、
前記第2の暗号化パケットを前記第3のデバイスまでP2Pで転送し、
前記第3のデバイスは、前記第2の暗号化パケットを復号して生成したパケットを、前記第4のデバイスに送信する、ネットワークシステム。
【請求項8】
前記第3のデバイスは、
前記第4のデバイスからの応答パケットを受信して、前記第1のデバイスを宛先とする第3の暗号化パケットを生成し、
前記第3の暗号化パケットを前記第1のデバイスまでP2Pで転送する、請求項7に記載のネットワークシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、認証済みIPアドレスを有するデバイスのデータ通信技術に関する。
【背景技術】
【0002】
近年の情報通信技術(Information and Communication Technology:ICT)の進歩は目覚ましく、インターネットなどのネットワークに接続されるデバイスは、従来のパーソナルコンピュータやスマートフォンといった情報処理装置に限らず、様々なモノ(things)に広がっている。このような技術トレンドは、「IoT(Internet of Things;モノのインターネット)」と称され、様々な技術およびサービスが提案および実用化されつつある。将来的には、地球上の数十億人と数百億または数兆のデバイスとが同時につながる世界が想定されている。このようなネットワーク化された世界を実現するためには、よりシンプル、より安全、より自由につながることができるソリューションを提供する必要がある。
【0003】
通常、ネットワーク上では、各デバイスに静的または動的に割り当てられたIP(Internet Protocol)アドレスを用いて、デバイス間のデータ通信が実現される。例えば、特開2018-207472号公報(特許文献1)は、ネットワークアドレス自体の認証という新たなコンセプトを用いたネットワークシステムを開示する。このネットワークシステムによれば、認証済みIPアドレスを用いてデバイス間でセキュアな通信などを実現できる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-207472号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記特許文献1によれば、このような認証済みIPアドレスを用いてセキュアな通信を実現するというコンセプトを既存のネットワークに適用する場合を想定すると、デバイスは、認証済みIPアドレスを有するデバイスと通信するだけではなく、通常のIPアドレス(すなわち、割り当てられたIPアドレスは認証されたものではない)のみを有するデバイスとの間で通信する必要もある。
【0006】
本開示は、宛先のデバイスが暗号化パケットをやり取り可能ではないデバイスを含むネットワークにおける一つの解決策を提供する。
【課題を解決するための手段】
【0007】
本開示のある形態によれば、複数のデバイスが接続されたネットワークにおけるデータ送信方法が提供される。データ送信方法は、第1のデバイスにおいて、第2のデバイスを宛先とする第1の暗号化パケットを生成するステップと、第1の暗号化パケットを第1のデバイスから第2のデバイスまでP2P(peer to peer)で転送するステップと、第1のデバイスにおいて、第1のデバイスのプロキシサーバとなる第3のデバイスを宛先とする第2の暗号化パケットを生成するステップとを含む。第2の暗号化パケットは、第4のデバイスを宛先とするパケットを含む。データ送信方法は、第2の暗号化パケットを第1のデバイスから第3のデバイスまでP2Pで転送するステップと、第3のデバイスにおいて、第2の暗号化パケットを復号して生成した通常パケットを、第4のデバイスに送信するステップとを含む。
【0008】
データ送信方法は、第3のデバイスにおいて、第4のデバイスからの応答パケットを受信して、第1のデバイスを宛先とする第3の暗号化パケットを生成するステップをさらに含んでいてもよい。第3の暗号化パケットは、応答パケットを含んでいてもよい。データ送信方法は、第3の暗号化パケットを第3のデバイスから第1のデバイスまでP2Pで転送するステップをさらに含んでいてもよい。
【0009】
データ送信方法は、第1のデバイスから第3のデバイスに対してプロキシ動作を有効化するための要求を送信するステップをさらに含んでいてもよい。
【0010】
データ送信方法は、第1のデバイス、第2のデバイス、および第3のデバイスの各々において、各デバイスが有している公開鍵および当該公開鍵に関連付けられた電子証明書を他のデバイスに送信するステップと、公開鍵および電子証明書を受信したデバイスにおいて、ハッシュ関数に従って公開鍵から算出されるハッシュ値に基づいて、公開鍵および電子証明書の送信元のデバイスのIPアドレスを決定するステップとをさらに含んでいてもよい。
【0011】
本開示の別の形態によれば、ネットワークに接続されたデバイスでの通信処理方法が提供される。通信処理方法は、パケットの送信要求に応答して、宛先のデバイスが暗号化パケットをやり取り可能であるか否かを判断するステップと、宛先のデバイスが暗号化パケットをやり取り可能であれば、パケットの送信要求に従って宛先のデバイスに向けた第1の暗号化パケットを生成するステップと、第1の暗号化パケットを宛先のデバイスまでP2Pで転送するステップと、宛先のデバイスが暗号化パケットをやり取り可能でなければ、パケットの送信要求に従って、宛先のデバイスに向けたパケットを含む第2の暗号化パケットを生成するステップと、第2の暗号化パケットをプロキシサーバとなるデバイスまでP2Pで転送するステップとを含む。
【0012】
通信処理方法は、プロキシサーバとなるデバイスを特定するステップと、特定したデバイスに対してプロキシ動作を有効化するための要求を送信するステップとをさらに含んでいてもよい。
【0013】
通信処理方法は、秘密鍵および公開鍵を取得するステップと、ハッシュ関数に従って公開鍵から算出されるハッシュ値に基づいて、自デバイスのIPアドレスを決定するステップと、ネットワークに接続される認証局から公開鍵に関連付けられた電子証明書を取得するステップと、公開鍵および電子証明書を他のデバイスに送信するステップとをさらに含むようにしてもよい。
【0014】
通信処理方法は、他のデバイスから公開鍵、および公開鍵に関連付けられた電子証明書を受信すると、電子証明書の正当性を判断するステップと、電子証明書が正当であると判断されると、ハッシュ関数に従って公開鍵から算出されるハッシュ値に基づいて、他のデバイスのIPアドレスを決定するステップとをさらに含んでいてもよい。
【0015】
本開示のさらに別の形態に従う装置は、ネットワークに接続するためのネットワークインターフェイスと、ネットワークインターフェイスに接続された制御部とを含む。制御部は、パケットの送信要求に応答して、宛先のデバイスが暗号化パケットをやり取り可能であるか否かを判断する処理と、宛先のデバイスが暗号化パケットをやり取り可能であれば、パケットの送信要求に従って宛先のデバイスに向けた第1の暗号化パケットを生成する処理と、第1の暗号化パケットを宛先のデバイスまでP2Pで転送する処理と、宛先のデバイスが暗号化パケットをやり取り可能であれば、パケットの送信要求に従って、宛先のデバイスに向けたパケットを含む第2の暗号化パケットを生成する処理と、第2の暗号化パケットをプロキシサーバとなるデバイスまでP2Pで転送する処理とを、実行可能に構成される。
【0016】
本開示のさらに別の形態に従えば、ネットワークに接続するためのネットワークインターフェイスを有するコンピュータのための通信処理プログラムが提供される。通信処理プログラムはコンピュータによって実行されると、コンピュータに上記の通信処理方法を実行させる。
【発明の効果】
【0017】
本開示によれば、宛先のデバイスが暗号化パケットをやり取り可能ではないデバイスを含むネットワークにおいても、処理の親和性を維持しつつ、セキュアレベルも維持できる。
【図面の簡単な説明】
【0018】
図1】本実施の形態に従うネットワークシステムの全体構成の一例を示す模式図である。
図2】本実施の形態に従うデバイスのハードウェア構成例を示す模式図である。
図3】本実施の形態に従うデバイスのプログラムおよびデータの構成例を示す模式図である。
図4】本実施の形態に従うネットワークシステムにおけるIPアドレスの認証手順を説明するための図である。
図5】本実施の形態に従うネットワークシステムで利用されるIPアドレスに埋め込まれる種類特定情報の一例を示す図である。
図6】本実施の形態に従うネットワークシステムにおいてデバイスが認証済みIPアドレスを提供する処理手順を示すフローチャートである。
図7】本実施の形態に従うネットワークシステムにおけるIPアドレスの通知に係る処理を説明するための図である。
図8】本実施の形態に従うネットワークシステムにおけるIPアドレスの通知に係る処理を説明するための図である。
図9】本実施の形態に従うネットワークシステムにおけるIPアドレスの通知に係る処理手順を示すシーケンスチャートである。
図10】本実施の形態に従うネットワークシステムのネットワーク構成の一例を示す模式図である。
図11】本実施の形態に従うネットワークシステムにおける認証済みIPアドレスを有するデバイス間のデータ通信の手順を示すシーケンス図である。
図12】本実施の形態に従うネットワークシステムにおける認証済みIPアドレスを有するデバイス間のデータ通信の手順を示すシーケンス図である。
図13】本実施の形態に従うデバイスがパケットをやり取りする処理手順を示すフローチャートである。
図14】本実施の形態に従うプロキシサーバがパケットをやり取りする処理手順を示すフローチャートである。
【発明を実施するための形態】
【0019】
本開示に係る実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0020】
<A.ネットワークシステム1の全体構成>
まず、本実施の形態に従うネットワークシステム1の全体構成について説明する。
【0021】
図1は、本実施の形態に従うネットワークシステム1の全体構成の一例を示す模式図である。図1を参照して、インターネットやイントラネットなどの任意のネットワーク2には、複数のデバイス100-1,100-2,100-3,100-4,100-5,・・・(以下、「デバイス100」と総称することもある。)が接続されているとする。一部のデバイス100は、アクセスポイント4との間に確立された無線通信を介して、ネットワーク2に接続されてもよい。あるいは、別の一部のデバイス100は、移動体基地局6との間に確立された無線通信を介して、ネットワーク2に接続されてもよい。
【0022】
このように、ネットワーク2は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線アクセスネットワーク(RAN)、およびインターネットのうちのいずれかを含んでいてもよい。
【0023】
ネットワークに接続されたデバイス100の各々は、ネットワークの「ノード」とみなすことができ、以下の説明においては、デバイス100を「ノード」と称することもある。
【0024】
本実施の形態に従うネットワークシステム1において、デバイス100の間では、後述するような手順に従って、データ通信を実現する。なお、デバイス100間の物理的な接続方法はどのようなものであってもよい。
【0025】
デバイス100は、各々が有しているIPアドレスを用いて他のデバイスとデータ通信を行う機能を有している任意の装置を包含する。デバイス100は、通信装置単体として構成されることもあるし、何らかのモノの一部として、あるいは、何らかのモノに組み込まれて構成されることもある。
【0026】
より具体的には、デバイス100は、例えば、パーソナルコンピュータ、スマートフォン、タブレット、ユーザの身体(例えば、腕や頭など)に装着されるウェアラブルデバイス(例えば、スマートウォッチやARグラスなど)のいずれであってもよい。また、デバイス100は、スマート家電、コネクティッド自動車、工場などに設置された制御機器あるいはその一部であってもよい。
【0027】
本実施の形態に従うネットワークシステム1は、1または複数の認証局200をさらに含む。認証局200の各々は、1または複数のサーバで構成されるコンピュータである。1または複数の認証局200を用いて、後述するような手順によって、各デバイス100が有しているIPアドレスは認証される。その結果、各デバイス100は、認証済みIPアドレスを有することになる。
【0028】
本明細書において、「認証済みIPアドレス」は、通信先あるいは第三者に対して、各デバイス100が保持しているIPアドレスの正当性が保証されている状態を意味する。より具体的には、「認証済みIPアドレス」は、不可逆な暗号学的ハッシュ関数によって生成されるとともに、認証局によって直接的または間接的に認証されたIPアドレスであることを意味する(詳細については後述する)。このような「認証済みIPアドレス」を用いることで、各デバイス100がデータ通信に利用するIPアドレスが偽装されていないことを保証できる。
【0029】
その結果、ネットワークシステム1に含まれる任意のデバイス100は、各デバイス100が有しているIPアドレスに基づいて一意に特定されることになる。すなわち、各デバイスは、各デバイスが有しているIPアドレスに基づいて、データ送信の宛先や送出先となるデバイスを決定できる。
【0030】
IPアドレスは、インターネットに接続されたデバイス100間のデータ通信にも用いることができるグローバルIPアドレスが想定されるが、特定のネットワーク内だけで利用されるプライベートIPアドレスであってもよい。
【0031】
IPアドレスは、バージョンによって、アドレスを構成するビット数が異なっている。現在制定されているIPv4(Internet Protocol Version 4)においては、32ビットのアドレス区間が規定されており、現在制定されているIPv6(Internet Protocol Version 6)においては、128ビットのアドレス区間が規定されている。本実施の形態においては、IPv6に従うIPアドレスを主として説明する。但し、より多くのビット数で規定されるネットワークアドレス、あるいは、より少ないビット数で規定されるネットワークアドレスにも本開示は適用可能である。
【0032】
<B.デバイス100の構成例>
次に、本実施の形態に従うネットワークシステム1に用いられるデバイス100のハードウェアおよびソフトウェアの構成例について説明する。
【0033】
図2は、本実施の形態に従うデバイス100のハードウェア構成例を示す模式図である。図2を参照して、デバイス100は、主たるコンポーネントとして、処理回路(processing circuitry)である制御部110とを含む。
【0034】
制御部110は、本実施の形態に従う機能の提供および処理の実行を実現するための演算主体である。制御部110は、図2に示すようなプロセッサおよびメモリを用いて、メモリに格納されたコンピュータ可読命令(computer readable instructions)(図3に示すようなOS(Operating System)および通信処理プログラム)をプロセッサが実行するように構成されてもよい。あるいは、コンピュータ可読命令に相当する回路が組み込まれたASIC(Application Specific Integrated Circuit)などのハードワイヤード回路を用いて制御部110を実現してもよい。さらにあるいは、FPGA(field-programmable gate array)上にコンピュータ可読命令に相当する回路を実現することで制御部110を実現してもよい。また、プロセッサおよびメモリ、ASIC、FPGAなどを適宜組み合わせて制御部110を実現してもよい。
【0035】
図2に示すようなプロセッサおよびメモリを用いた構成において、制御部110は、プロセッサ102と、主メモリ104と、ストレージ106と、ROM(Read Only Memory)108とを含む。
【0036】
プロセッサ102は、コンピュータ可読命令を順次読出して実行する演算回路である。プロセッサ102は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。複数のプロセッサ102を用いて制御部110を実現してもよいし(マルチプロセッサの構成)、複数のコアを有するプロセッサを用いて制御部110を実現してもよい(マルチコアの構成)。
【0037】
主メモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置である。プロセッサ102は、ストレージ106またはROM108に格納された各種プログラムのうち、指定されたプログラムを主メモリ104上に展開し、主メモリ104と協働することで、本実施の形態に従う各種処理を実現する。
【0038】
ストレージ106は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリなどの不揮発性記憶装置である。ストレージ106には、プロセッサ102で実行される各種プログラムや後述するような各種データが格納されている。
【0039】
ROM108は、プロセッサ102で実行される各種プログラムや後述するような各種データを固定的に格納する。
【0040】
図2に示すようなプロセッサ102がメモリに格納されたコンピュータ可読命令を実行する構成において、メモリは、ストレージ106およびROM108に相当する。
【0041】
ここで、デバイス100のメモリに格納されるプログラムおよびデータの一例について説明する。
【0042】
図3は、本実施の形態に従うデバイス100のプログラムおよびデータの構成例を示す模式図である。図3を参照して、デバイス100のメモリ(ストレージ106および/またはROM108)には、例えば、コンピュータ可読命令を含むプログラムとして、OS160と、通信処理プログラム170と、各種アプリケーション300とが格納される。
【0043】
OS160は、デバイス100で実行される処理を実現するための基本的な機能を提供するプログラムである。通信処理プログラム170は、主として、本実施の形態に従う機能の提供および処理の実行を実現するためのプログラムである。なお、通信処理プログラム170は、OS160が提供するライブラリなどを利用して、本実施の形態に従う機能の提供および処理の実行を実現することもある。
【0044】
各種アプリケーション300は、デバイス100が提供する各種機能を実現するためのプログラムであり、ユーザが任意にインストールすることができる。典型的には、各種アプリケーション300は、通信処理プログラム170に提供されるデータ通信機能を利用した各種処理を提供する。
【0045】
また、デバイス100のメモリ(ストレージ106および/またはROM108)には、例えば、本実施の形態に従う機能の提供および処理の実行の実現に必要なデータとして、秘密鍵172と、公開鍵174と、電子証明書176とが格納される。秘密鍵172および公開鍵174は、任意の暗号化/復号アルゴリズムに従って生成される、いわゆる鍵ペアである。秘密鍵172は、他のデバイスとの暗号化通信に用いられる。公開鍵174は、後述するような手順に従って各デバイス100のIPアドレスの決定に用いられる。電子証明書176は、認証局200によって公開鍵174に対して発行されるものであり、デバイス100のIPアドレスの正当性を担保するためのものである。通常、電子証明書176は、認証局200の秘密鍵を用いて、各デバイス100の公開鍵174から算出されたハッシュ値(電子署名)などを含む。電子証明書176を受信したデバイス100は、認証局200の公開鍵を用いて、電子証明書176および電子証明書176に関連付けられた公開鍵174の正当性を確認する。
【0046】
鍵ペア(秘密鍵172および公開鍵174)の生成、電子証明書176の取得、およびこれらのデータの利用手順などについては後述する。
【0047】
なお、ストレージ106およびROM108の両方を設ける必要はなく、実装形態に応じて、いずれか一方のみを設けるようにしてもよい。また、ストレージ106およびROM108の両方を設ける場合には、例えば、鍵ペア(秘密鍵172および公開鍵174)についてはROM108に格納して、秘匿性を高めるようにしてもよい。
【0048】
再度図2を参照して、デバイス100は、デバイス100をネットワークに接続するためのネットワークインターフェイス120をさらに含む。ネットワークインターフェイス120は、ネットワークを介して他のデバイスとデータ通信を行う。
【0049】
ネットワークインターフェイス120は、例えば、イーサネット(登録商標)ポート、USB(Universal Serial Bus)ポート、IEEE1394などのシリアルポート、レガシーなパラレルポートといった有線接続端子を含む。あるいは、ネットワークインターフェイス120は、デバイス、ルータ、移動体基地局などと無線通信するための処理回路およびアンテナなどを含んでもよい。ネットワークインターフェイス120が対応する無線通信は、例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、ZigBee(登録商標)、LPWA(Low Power Wide Area)、GSM(登録商標)、W-CDMA、CDMA200、LTE(Long Term Evolution)、第5世代移動通信システム(5G)のいずれであってもよい。
【0050】
デバイス100は、オプショナルなコンポーネントとして、表示部130と、入力部140と、メディアインターフェイス150とを含んでいてもよい。
【0051】
表示部130は、プロセッサ102での処理結果などを外部へ提示するためのコンポーネントである。表示部130は、例えば、LCD(Liquid Crystal Display)や有機EL(Electro-Luminescence)ディスプレイなどであってもよい。また、表示部130は、ユーザの頭部に装着されるヘッドマウントディスプレイであってもよいし、画像をスクリーン上に投影するプロジェクターであってもよい。
【0052】
入力部140は、デバイス100を操作するユーザの入力操作を受け付けるためのコンポーネントである。入力部140は、例えば、キーボード、マウス、表示部130上に配置されたタッチパネル、デバイス100の筐体に配置された操作ボタンなどであってもよい。
【0053】
メディアインターフェイス150は、各種プログラム(コンピュータ可読命令)および/または各種データが格納された非一過性(non-transitory)のメディア152から各種プログラムおよび/または各種データを読み出す。
【0054】
メディア152は、例えば、DVD(Digital Versatile Disc)などの光学メディア、USBメモリなどの半導体メディアなどであってもよい。メディアインターフェイス150は、メディア152の種類に応じた構成が採用される。メディアインターフェイス150により読み出された各種プログラムおよび/または各種データは、ストレージ106などに格納されてもよい。
【0055】
なお、メディア152を介して各種プログラムおよび/または各種データをデバイス100にインストールするのではなく、ネットワーク上の配信サーバから必要なプログラムおよびデータをデバイス100にインストールするようにしてもよい。この場合には、ネットワークインターフェイス120を介して、必要なプログラムおよびデータが取得される。
【0056】
上述したように、表示部130、入力部140、メディアインターフェイス150は、オプショナルなコンポーネントであるため、例えば、USBなどの任意のインターフェイスを介してデバイス100の外部から接続されるようにしてもよい。
【0057】
本実施の形態に従う機能の提供および処理の実行を実現するのは制御部110であり、本願の技術的範囲は、少なくとも、制御部110を実現するためのハードウェアおよび/またはソフトウェアを包含する。ハードウェアは、上述したように、プロセッサおよびメモリからなる構成だけではなく、ASICなどを用いたハードワイヤード回路やFPGAを用いた構成を含み得る。すなわち、制御部110は、汎用コンピュータにプログラムをインストールすることで実現され得るし、専用のチップとして実現することもできる。
【0058】
また、プロセッサで実行されるソフトウェアは、メディア152を介して流通するものだけではなく、配信サーバを介して適宜ダウンロードされるものも含み得る。
【0059】
なお、本実施の形態に従う機能の提供および処理の実行を実現するための構成は、図2に示す制御部110に限られず、実現される時代に応じた任意の技術を用いて実装できる。
【0060】
<C.認証済みIPアドレス>
次に、各デバイス100に対して認証済みIPアドレスを提供するための処理などについて説明する。
【0061】
(c1:IPアドレスの決定処理)
本実施の形態に従うネットワークシステム1においては、典型的には、認証済みIPアドレスを用いて、各デバイス100のIPアドレスを認証する。一例として、公開鍵暗号基盤(PKI:public key infrastructure)を用いて、各デバイス100のIPアドレスを認証してもよい。
【0062】
図4は、本実施の形態に従うネットワークシステム1におけるIPアドレスの認証手順を説明するための図である。なお、図4中の「S1」~「S4」などの符号は、図6に示すステップ番号に対応している。
【0063】
図4を参照して、デバイス100は、秘密鍵172および公開鍵174からなる鍵ペアを有している。予め定められたハッシュ関数180に公開鍵174を入力することでハッシュ値178を算出し、その算出されたハッシュ値178の全部または一部を用いて、デバイス100のIPアドレス190として用いる。
【0064】
このようなIPアドレス190の決定処理に伴い、デバイス100は、公開鍵174を認証局200に送信し、認証局200が公開鍵174に対して発行する電子証明書176を紐付ける。デバイス100は、自デバイスの公開鍵174および電子証明書176を他のデバイスに送信する。他のデバイスは、デバイス100が公開する公開鍵174および電子証明書176に基づいて、デバイス100のIPアドレス190の正当性を確認する。IPアドレス190の正当性が確認されると、正当性が確認されたIPアドレス190を用いてデータ通信を開始する。自デバイスおよび他のデバイスは、互いに直接通信を行うことができるが、直接通信の処理に加えて、認証局200における問い合わせの処理を含むようにしてもよい。
【0065】
このように、本実施の形態に従うネットワークシステム1においては、IPアドレス190自体を認証することができ、このような認証済みIPアドレス190をデバイス自体が保持することで、各デバイスに静的または動的に割り当てられたIPアドレスを用いることなく、自立的なネットワークを構築できる。
【0066】
以下、本実施の形態に従うネットワークシステム1における認証済みIPアドレスを提供するための処理の詳細について説明する。
【0067】
鍵ペアである秘密鍵172および公開鍵174は、デバイス100自身が作成してもよいし、外部から提供されて予めデバイス100に格納されていてもよい。外部から提供される場合には、デバイス100は秘密鍵172のみを取得し、公開鍵174については自身で生成するようにしてもよい。
【0068】
鍵ペアである公開鍵174の生成方法の一例としては、乱数発生器が発生する所定長さのビット列(例えば、512ビット)を秘密鍵172として用いるとともに、公知の暗号アルゴリズム(例えば、楕円曲線暗号アルゴリズム)に従って秘密鍵172から所定長さのビット列(例えば、256ビット)からなる公開鍵174を生成してもよい。なお、デバイス100自身が鍵ペアを生成する場合には、乱数発生器は、OS160が提供する機能を利用して実現してもよいし、ASICなどのハードワイヤード回路を用いて実現してもよい。
【0069】
ハッシュ関数180は、公知の不可逆な暗号学的ハッシュ関数(例えば、BLAKE)を用いることができる。ハッシュ関数180は、所定長さのビット列(例えば、256ビット)からなるハッシュ値178を算出する。
【0070】
ハッシュ関数180には、公開鍵174だけではなく、任意のキーワードを入力するようにしてもよい。任意のキーワードとして、所定の組織に関連付けられたメッセージを用いてもよい。所定の組織に関連付けられたメッセージとして、当該所定の組織が有している商標の名称を含むメッセージを用いてもよい。例えば、所定の組織が保有する登録された商標の名称(例えば、「connectFree」)をハッシュ関数180に入力するキーワードとして用いるようにしてもよい。このような実装方式を採用することで、所定の組織以外の第三者が、当該所定の組織の許諾なしに本実施の形態に従うネットワークシステム1および関連する方法やプログラムなどを実施することを防止できる。
【0071】
ハッシュ関数180により算出されるハッシュ値178の全部または一部がIPアドレス190として用いられる。例えば、256ビット(16進数表現で64桁)のハッシュ値178が算出される場合には、64桁のハッシュ値178のうち任意の32桁(例えば、前半32桁)をIPv6に対応するIPアドレス190(128ビット)として決定してもよい。あるいは、64桁のハッシュ値178のうち前半8桁をIPv4に対応するIPアドレス190(32ビット)として決定してもよい。
【0072】
あるいは、IPv6に対応するIPアドレス190(128ビット)を考慮して、ハッシュ関数180から128ビットのハッシュ値178を算出するようにしてもよい。この場合には、算出されるハッシュ値178の全部をIPv6に対応するIPアドレス190(128ビット)として決定できる。
【0073】
本実施の形態によれば、デバイス100の公開鍵174に基づいてデバイス100に固有のIPアドレス190を決定できる。このように、デバイス100によって決定されたIPアドレス190を用いてデバイス100をインターネットなどのネットワークに接続させることができる。また、デバイス100は、インターネットサービスプロバイダ(ISP)などのグローバルIPアドレスを管理するサービス事業者(サーバ)が存在しなくても、自身が決定したIPアドレス190を用いてデータ通信を行うことができる。また、デバイス100は、アクセスポイントなどに実装されるDHCP(Dynamic Host Configuration Protocol)サーバなどのプライベートIPアドレスを管理するサーバが存在しなくても、自身が決定したIPアドレス190を用いてインターネットなどのグルーバルネットワークに接続してデータ通信を行うことができる。したがって、インターネットなどのネットワークへの接続についてのユーザ体験およびユーザの利便性を向上できる。
【0074】
(c2:固有文字列)
デバイス100が決定するIPアドレス190は、本実施の形態に従う処理手順に従って決定されたものであることを特定できるようにしてもよい。このような特定を行うために、例えば、IPアドレス190に予め定められた特定用の固有値(固有文字列)を含めるようにしてもよい。すなわち、決定されるIPアドレスは、予め定められた特定用の固有値(固有文字列)を含んでいてもよい。
【0075】
一例として、16進数表現のIPアドレス190の先頭2桁(先頭から1桁目および2桁目)を予め定められた固有文字列(例えば、「FC」)に固定してもよい。通常、ハッシュ関数180は一方向性関数であるので、IPアドレス190から公開鍵174を逆算することはできない。そのため、決定されるIPアドレス190が所定条件(この場合には、先頭2桁が予め定められた固有値になること)を満たすまで、乱数発生器を用いて、秘密鍵172および公開鍵174を繰り返し生成してもよい。すなわち、公開鍵174は、公開鍵174からハッシュ関数に従って算出されるハッシュ値に基づいて決定されるIPアドレス190が、予め定められたフォーマットに合致するように決定されてもよい。
【0076】
このように、IPアドレス190に予め定められた特定用の固有値(例えば、先頭2桁が「FC」)を含めることで、第三者は、デバイス100のIPアドレス190がデバイス100自身によって決定されたものであるか否かを判断できる。
【0077】
(c3:種類特定情報)
デバイス100が決定するIPアドレス190には、デバイス100の種類を特定できる情報を含めてもよい。このような特定を行うために、例えば、IPアドレス190にデバイス100の種類に応じた値を含めるようにしてもよい。すなわち、決定されるIPアドレス190は、そのIPアドレス190を決定したデバイス100の種類に応じた値を含んでいてもよい。
【0078】
一例として、16進数表現のIPアドレス190の先頭から3桁目および4桁目にデバイス100の種類に応じた値(種類特定情報)を埋め込んでもよい。
【0079】
図5は、本実施の形態に従うネットワークシステム1で利用されるIPアドレスに埋め込まれる種類特定情報の一例を示す図である。図5に示される種類特定情報は、各デバイス100の制御部110のROM108(図2参照)などに予め格納されていてもよい。一例として、図5に示すようなデバイスの種類に応じた値を用いることができる。
【0080】
図5に示すように、例えば、デバイス100の種類がパーソナルコンピュータである場合には、IPアドレス190の先頭から3桁目および4桁目には、パーソナルコンピュータを示す値「00」が設定される。
【0081】
上述したように、通常、ハッシュ関数180は一方向性関数であるので、IPアドレス190から公開鍵174を逆算することはできない。そのため、決定されるIPアドレス190が所定条件(この場合には、先頭から3桁目および4桁目がデバイス100の種類を示す値になること)を満たすまで、乱数発生器を用いて、秘密鍵172および公開鍵174を繰り返し生成してもよい。すなわち、公開鍵174は、公開鍵174からハッシュ関数に従って算出されるハッシュ値に基づいて決定されるIPアドレス190が、予め定められたフォーマットに合致するように決定されてもよい。
【0082】
このように、IPアドレス190にデバイス100の種類を示す値を含めることで、第三者は、デバイス100が決定したIPアドレス190から当該デバイス100の種類を特定できる。
【0083】
(c4:公開鍵174の登録および電子証明書176の取得)
次に、公開鍵174の登録および電子証明書176の取得について説明する。
【0084】
デバイス100は、公開鍵174の正当性を証明するための電子証明書176を認証局200から取得する。電子証明書176を取得する手順としては、デバイス100から公開鍵174を認証局200に送信して登録するとともに、登録された公開鍵174に関連付けられた電子証明書176を認証局200から取得する。
【0085】
より具体的には、デバイス100(制御部110)は、ネットワークを介して、公開鍵174および電子証明書の発行要求(以下、「証明書署名要求」とも称す。)を認証局200に送信する。認証局200は、デバイス100から受信した証明書署名要求に応答して、公開鍵174を登録するとともに、登録した公開鍵174に関連付けられた電子証明書176を発行する。そして、認証局200は、ネットワークを介して、電子証明書176をデバイス100に送信する。
【0086】
典型的には、電子証明書176は、電子証明書176の所有者情報(この例では、デバイス100)、電子証明書176の発行者情報(この例では、認証局200)、発行者のデジタル署名、および電子証明書176の有効期限などを含む。
【0087】
認証局200は、所定の組織によって運営されていてもよいし、所定の組織によって運営されているルート認証局に関連付けられた中間認証局であってもよい。また、公開鍵174の登録および公開鍵174に関連付けられた電子証明書176の発行にあたっては、所定の組織に対して所定の手数料および/または維持料が必要であってもよい。
【0088】
本実施の形態によれば、公開鍵174の登録および公開鍵174の取得を通じて、公開鍵174が認証局200によって直接的に認証されることで、公開鍵174に基づいて決定されるIPアドレス190も認証局200によって間接的に認証される。このような認証局200の認証によって、デバイス100は、認証済みIPアドレス190を用いて、ネットワークを介してデータ通信を実現できる。
【0089】
なお、公開鍵に関連付けられた電子証明書176には、秘匿性を向上させるために、デバイス100の属性に関連する情報(以下、「属性情報」とも称する。)を含んでもよい。デバイス100の属性情報は、例えば、デバイス100のOS160や通信処理プログラム170のバージョン情報、デバイス100を構成するハードウェア(例えば、プロセッサやストレージなど)のシリアル番号などを用いることができる。この場合、デバイス100は、公開鍵174および証明書署名要求を送信する際に、デバイス100の属性情報を認証局200に送信してもよい。なお、電子証明書176に含ませるデバイス100の属性情報は、公知の不可逆な暗号学的ハッシュ関数などによって暗号化されてもよい。
【0090】
このように、デバイス100の属性情報を電子証明書176に含ませることで、デバイス100自身からの証明書署名要求に応答して、電子証明書176が発行されたことを認証できる。すなわち、デバイス100以外のデバイスがデバイス100になりすまして、デバイス100の公開鍵174および電子証明書176を用いることをより確実に防止できる。
【0091】
(c5:処理手順)
次に、各デバイス100における認証済みIPアドレスを提供するための処理手順について説明する。
【0092】
図6は、本実施の形態に従うネットワークシステム1においてデバイス100が認証済みIPアドレスを提供する処理手順を示すフローチャートである。図6に示される処理手順は、各デバイス100においてそれぞれ実行され、図6に示す各ステップは、各デバイス100の制御部110によって実行される。
【0093】
図6を参照して、デバイス100は、任意のアルゴリズムに従って生成される鍵ペア(秘密鍵172および公開鍵174)を取得する(ステップS1)。この鍵ペアは、デバイス100自身が生成してもよいし、デバイス100が外部から取得してもよい。あるいは、デバイス100は秘密鍵172のみを外部から取得して、公開鍵174を内部で生成してもよい。
【0094】
続いて、デバイス100は、予め定められたハッシュ関数180に公開鍵174を入力することでハッシュ値178を算出し、その算出されたハッシュ値178の全部または一部からデバイス100のIPアドレス190を決定する(ステップS2)。すなわち、デバイス100は、ハッシュ関数180に従って公開鍵174から算出されるハッシュ値178に基づいて、自デバイスのIPアドレスを決定する。
【0095】
なお、IPアドレス190に固有文字列(例えば、IPアドレス190の先頭から1桁目および2桁目)および/または種類特定情報(例えば、IPアドレス190の先頭から3桁目および4桁目)が含まれるように、適切な鍵ペア(秘密鍵172および公開鍵174)が生成されてもよい。
【0096】
また、デバイス100は、公開鍵174および電子証明書の発行要求(証明書署名要求)を認証局200に送信する(ステップS3)。認証局200は、デバイス100から受信した証明書署名要求に応答して、公開鍵174を登録するとともに、登録した公開鍵174に関連付けられた電子証明書176を発行する。そして、認証局200は、ネットワークを介して電子証明書176をデバイス100に送信する。すると、デバイス100は、認証局200からの電子証明書176を受信して格納する(ステップS4)。
【0097】
このように、デバイス100は、認証局から公開鍵174に関連付けられた電子証明書176を取得する。
【0098】
なお、ステップS2の処理と、ステップS3およびS4の処理との実行順序は問わない。
【0099】
<D.IPアドレスの通知>
次に、本実施の形態に従うネットワークシステム1におけるデバイス100間のIPアドレスの通知に係る処理について説明する。
【0100】
図7および図8は、本実施の形態に従うネットワークシステム1におけるIPアドレスの通知に係る処理を説明するための図である。図7および図8には、3つのデバイス100-1,100-2,100-3の間でIPアドレスを交換する例を示す。なお、2つのデバイス100の間でも同様の処理が可能であるし、より多くのデバイス100の間でも同様の処理が可能である。
【0101】
図7および図8に示す状態において、デバイス100-1,100-2,100-3の各々は、上述したような手順に従って、デバイス100-1,100-2,100-3は、IPアドレス190-1,190-2,190-3をそれぞれ決定しており、また、認証局200への公開鍵174-1,174-2,174-3の登録および認証局200からの電子証明書176-1,176-2,176-3の取得もそれぞれ済んでいるものとする。
【0102】
図7および図8に示すように、各デバイス100は、定期的またはイベント毎に、各デバイスが有している公開鍵174および公開鍵174に関連付けられた電子証明書176を送信(ブロードキャスト)する。すなわち、各デバイス100は、公開鍵174および電子証明書176を他のデバイスに送信する。
【0103】
図7には、一例として、デバイス100-1が公開鍵174-1および公開鍵174-1に関連付けられた電子証明書176-1を送信(ブロードキャスト)する例を示す。図7に示す例では、デバイス100-2および100-3がデバイス100-1により送信された公開鍵174-1および電子証明書176-1を受信できたとする。すると、デバイス100-2および100-3は、電子証明書176-1が正当であるか否かを判断した上で、正当であると判断されると、関連付けられた公開鍵174-1に基づいてデバイス100-1のIPアドレス190-1を決定し、コネクションテーブル194-2および194-3にそれぞれ登録する。
【0104】
ここで、コネクションテーブルは、データ通信を行うために各デバイス100の情報を含むものであり、各デバイス100は、コネクションテーブルを参照して、宛先のデバイス100のIPアドレスなどを特定するとともに、必要なセッションを確立する。
【0105】
より具体的には、デバイス100-2は、まず、デバイス100-1からブロードキャストされた電子証明書176-1が正当であるか否かを判断する。この正当性を判断する処理においては、電子証明書176-1の完全性が検証される。
【0106】
完全性が検証する処理の一例として、まず、デバイス100-2は、電子証明書176-1の所有者情報、電子証明書176-1の発行者情報、発行者のデジタル署名の存在を確認する。そして、デバイス100-2は、電子証明書176-1が有効期限内であるか否かを判断する。さらに、デバイス100-2は、電子証明書176-1の発行元が信頼できるものであるか否かを判断する。特に、電子証明書176-1が中間認証局により発行されている場合には、デバイス100-2は、電子証明書176-1を発行した中間認証局に関連付けられたルート認証局を特定するとともに、当該特定されたルート認証局が信頼できるものであるか否かを判断する。例えば、特定されたルート認証局がデバイス100-1に格納されている1または複数のルート認証局のいずれかと一致する場合には、電子証明書176-1の発行元が信頼できると判断する。
【0107】
以上のような判断処理にパスすると、デバイス100-2は、デバイス100-1からブロードキャストされた電子証明書176-1が正当であると決定する。すると、デバイス100-2は、予め定められたハッシュ関数180に、デバイス100-1からブロードキャストされた公開鍵174-1を入力することでハッシュ値178-1を算出し、その算出されたハッシュ値178-1の全部または一部を用いて、デバイス100-1のIPアドレス190-1を決定する。ここで、デバイス100-1および100-2は、共通のハッシュ関数180を有しているものとする。また、デバイス100-1および100-2の間において、ハッシュ値178-1からIPアドレス190-1を決定する処理も共通であるとする。
【0108】
以上のような処理によって、デバイス100-2は、デバイス100-1のIPアドレス190-1を決定できる。そして、デバイス100-2は、決定したデバイス100-1のIPアドレス190-1のエントリをコネクションテーブル194-2に追加する。なお、IPアドレス190-1に関連付けて公開鍵174-1を登録してもよい。
【0109】
また、デバイス100-3においてもデバイス100-2と同様の処理が実行され、デバイス100-3のコネクションテーブル194-3には、決定したデバイス100-1のIPアドレス190-1のエントリをコネクションテーブル194-2に追加する。なお、IPアドレス190-1に関連付けて公開鍵174-1を登録してもよい。
【0110】
図7に示すような処理によって、デバイス100-2およびデバイス100-3は、デバイス100-1のIPアドレス190-1を取得できる。
【0111】
図8には、一例として、デバイス100-2が公開鍵174-2および公開鍵174-2に関連付けられた電子証明書176-2を送信(ブロードキャスト)する例を示す。図8に示す例では、デバイス100-1および100-3がデバイス100-2により送信された公開鍵174-2および電子証明書176-2を受信できたとする。すると、デバイス100-1および100-3は、電子証明書176-2が正当であるか否かを判断した上で、正当であると判断されると、関連付けられた公開鍵174-2に基づいてデバイス100-2のIPアドレス190-2を決定し、コネクションテーブル194-1および194-3にそれぞれ登録する。
【0112】
デバイス100-1および100-3において実行される一連の処理は、図7を参照して説明した処理と同様であるので、詳細な説明は繰り返さない。図8に示すような処理によって、デバイス100-1およびデバイス100-3は、デバイス100-2のIPアドレス190-2を取得できる。
【0113】
さらに、デバイス100-3が公開鍵174-3および公開鍵174-3に関連付けられた電子証明書176-3を送信(ブロードキャスト)してもよい。デバイス100-1および100-2がデバイス100-3により送信された公開鍵174-3および電子証明書176-3を受信できたとする。すると、デバイス100-1および100-2は、電子証明書176-3が正当であるか否かを判断した上で、正当であると判断されると、関連付けられた公開鍵174-3に基づいてデバイス100-3のIPアドレス190-3を決定し、コネクションテーブル194-1および194-2にそれぞれ登録する。このような処理によって、デバイス100-1およびデバイス100-2は、デバイス100-3のIPアドレス190-3を取得できる。
【0114】
図9は、本実施の形態に従うネットワークシステム1におけるIPアドレスの通知に係る処理手順を示すシーケンスチャートである。図9には、図7および図8に対応させて、3つのデバイス100-1,100-2,100-3における処理手順を示す。
【0115】
デバイス100-1は、公開鍵174-1および公開鍵174-1に関連付けられた電子証明書176-1を送信(ブロードキャスト)する(シーケンスSQ10)。
【0116】
デバイス100-2は、デバイス100-1により送信された公開鍵174-1および電子証明書176-1を受信すると、電子証明書176-1の正当性を判断する(シーケンスSQ11)。電子証明書176-1が正当であると判断されると、デバイス100-2は、公開鍵174-1に基づいてデバイス100-1のIPアドレス190-1を決定し(シーケンスSQ12)、決定したデバイス100-1のIPアドレス190-1をコネクションテーブル194-2に登録する(シーケンスSQ13)。
【0117】
同様に、デバイス100-3は、デバイス100-1により送信された公開鍵174-1および電子証明書176-1を受信すると、電子証明書176-1の正当性を判断する(シーケンスSQ14)。電子証明書176-1が正当であると判断されると、デバイス100-3は、公開鍵174-1に基づいてデバイス100-1のIPアドレス190-1を決定し(シーケンスSQ15)、決定したデバイス100-1のIPアドレス190-1をコネクションテーブル194-3に登録する(シーケンスSQ16)。
【0118】
また、デバイス100-2は、公開鍵174-2および公開鍵174-2に関連付けられた電子証明書176-2を送信(ブロードキャスト)する(シーケンスSQ20)。
【0119】
デバイス100-1は、デバイス100-2により送信された公開鍵174-2および電子証明書176-2を受信すると、電子証明書176-2の正当性を判断する(シーケンスSQ21)。電子証明書176-2が正当であると判断されると、デバイス100-1は、公開鍵174-2に基づいてデバイス100-2のIPアドレス190-2を決定し(シーケンスSQ22)、決定したデバイス100-2のIPアドレス190-2をコネクションテーブル194-1に登録する(シーケンスSQ23)。
【0120】
同様に、デバイス100-3は、デバイス100-2により送信された公開鍵174-2および電子証明書176-2を受信すると、電子証明書176-2の正当性を判断する(シーケンスSQ24)。電子証明書176-2が正当であると判断されると、デバイス100-3は、公開鍵174-2に基づいてデバイス100-2のIPアドレス190-2を決定し(シーケンスSQ25)、決定したデバイス100-2のIPアドレス190-2をコネクションテーブル194-3に登録する(シーケンスSQ26)。
【0121】
また、デバイス100-3は、公開鍵174-3および公開鍵174-3に関連付けられた電子証明書176-3を送信(ブロードキャスト)する(シーケンスSQ30)。
【0122】
デバイス100-1は、デバイス100-3により送信された公開鍵174-3および電子証明書176-3を受信すると、電子証明書176-3の正当性を判断する(シーケンスSQ31)。電子証明書176-3が正当であると判断されると、デバイス100-1は、公開鍵174-3に基づいてデバイス100-3のIPアドレス190-3を決定し(シーケンスSQ32)、決定したデバイス100-3のIPアドレス190-3をコネクションテーブル194-1に登録する(シーケンスSQ33)。
【0123】
同様に、デバイス100-2は、デバイス100-3により送信された公開鍵174-3および電子証明書176-3を受信すると、電子証明書176-3の正当性を判断する(シーケンスSQ34)。電子証明書176-3が正当であると判断されると、デバイス100-2は、公開鍵174-3に基づいてデバイス100-3のIPアドレス190-3を決定し(シーケンスSQ35)、決定したデバイス100-3のIPアドレス190-3をコネクションテーブル194-2に登録する(シーケンスSQ36)。
【0124】
なお、シーケンスSQ10~SQ16の処理と、シーケンスSQ20~SQ26の処理と、シーケンスSQ30~SQ36の処理とは、任意の順序あるいは並列的に実行され得る。
【0125】
このように、各デバイス100は、他のデバイスから公開鍵174および公開鍵174に関連付けられた電子証明書176を受信すると、電子証明書176の正当性を判断する(シーケンスSQ11,SQ14,SQ21,SQ24,SQ31,SQ34)。そして、各デバイス100は、電子証明書176が正当であると判断されると、ハッシュ関数に従って公開鍵174から算出されるハッシュ値に基づいて、他のデバイスのIPアドレスを決定する(シーケンスSQ12,SQ15,SQ22,SQ25,SQ32,SQ35)。
【0126】
上述したように、本実施の形態に従うネットワークシステム1においては、他のデバイス100から送信された電子証明書176が正当であると判断されることを条件に、電子証明書176に関連付けられた公開鍵174に基づいて、当該他のデバイス100のIPアドレス190を決定する。公開鍵174に関連付けられた電子証明書176が正当であるとの判断を条件に、公開鍵174に基づいてIPアドレス190を決定するので、公開鍵174の正当性およびIPアドレス190の正当性を保証できる。したがって、デバイス100の間で確実なデータ通信を実現できる。
【0127】
また、本実施の形態に従うネットワークシステム1においては、各デバイス100がブロードキャストする公開鍵174に基づいて、各デバイス100のIPアドレスを知ることができるので、IPアドレスを管理するサーバが存在しなくても、デバイス100同士が直接接続し得る。特に、バーチャルプライベートネットワーク(VPN)サーバなどが存在しなくても、デバイス100同士で秘匿性の確保された通信を実現できるため、VPNサーバを維持するためのコストや消費電力を削減できる。
【0128】
<E.データ通信処理>
次に、本実施の形態に従うネットワークシステム1におけるデータ通信処理について説明する。
【0129】
(e1:背景)
本実施の形態に従うネットワークシステム1において、デバイス100間は、いわゆるP2P(Peer to Peer:ピア・トゥ・ピア)によりデータをやり取りする。また、各デバイス100は、ルーティング機能およびデータ転送機能を有しており、宛先のデバイスに到達するまでP2Pでのデータ転送が繰り返される。このような機能によって、自立的にデータ通信を行うことができるネットワークを実現できる。
【0130】
P2Pで通信されるデータ(典型的には、パケットまたはフレーム)は、各P2Pに関与するデバイス100間に設定される暗号鍵により暗号化されるので、セキュアなデータ通信を実現できる。以下の説明では、典型例として、データは「パケット」の形で送信されるものとする。
【0131】
図10は、本実施の形態に従うネットワークシステム1のネットワーク構成の一例を示す模式図である。図10に示すネットワークシステム1は、アクセスポイント4を含むローカルライン10と、インターネット20と、制限ネットワーク30とを含む。ローカルライン10とインターネット20との間には、ゲートウェイとしても機能するプロキシサーバ22が配置されている。ローカルライン10と制限ネットワーク30との間には、ゲートウェイとしても機能する中継サーバ32が配置されている。
【0132】
インターネット20には、各種ネットワークサービスを提供する1または複数のサーバ24が存在する。制限ネットワーク30は、例えば、特定の企業や組織に属するデバイス100(あるいは、ユーザ)のみがアクセス可能な、インターネット20からは完全または部分的に隔離されたネットワークである。制限ネットワーク30には、各種ネットワークサービスを提供する1または複数のサーバ34が存在する。ここで、各種ネットワークサービスとしては、例えば、Web、メール、データベースなどを含む。なお、プロキシサーバ22および中継サーバ32もネットワークサービスを提供するサーバとみなすこともできる。
【0133】
一例として、図10に示すネットワークシステム1において、デバイス100、プロキシサーバ22、中継サーバ32、およびサーバ34は、いずれも認証済みIPアドレスを有するデバイスに相当する。すなわち、これらのデバイスは、上述したような認証済みIPアドレスを用いたデータ通信が可能になっている。これに対して、インターネット20上の1または複数のサーバ24は、通常のIPアドレス(すなわち、割り当てられたIPアドレスは認証されたものではない)のみを有するデバイスであるとする。
【0134】
既存のネットワークを想定すると、図10に示されるように、認証済みIPアドレスを用いたデータ通信に対応してないデバイスとの間でやり取りされるデータも存在し得る。そこで、本実施の形態に従うデバイス100は、以下のような機能を実装することで、証済みIPアドレスを用いたデータ通信に対応するデバイスだけではなく、認証済みIPアドレスを有しておらず、あるいは、認証済みIPアドレスを用いたデータ通信に対応していないデバイスとの間でもデータをやり取りすることもできる。
【0135】
(e2:認証済みIPアドレスを有するデバイス間のデータ通信)
まず、認証済みIPアドレスを有するデバイス間のデータ通信について説明する。一例として、図10に示すネットワークシステム1において、デバイス100とサーバ34との間のデータ通信を説明する。
【0136】
図11は、本実施の形態に従うネットワークシステム1における認証済みIPアドレスを有するデバイス間のデータ通信の手順を示すシーケンス図である。図11には、複数のデバイスが接続されたネットワークにおけるデータ送信方法が示されている。図11には、デバイス100からサーバ34に対して任意の要求が送信され、サーバ34がその要求に従って処理を実行した結果を、デバイス100に応答する場合を示す。なお、図10には、図11に示す主要な処理に対応するシーケンス番号と同じシーケンス番号を記載している。
【0137】
図11を参照して、デバイス100は、サーバ34に対する要求を含む暗号化パケットを生成する(シーケンスSQ100)。デバイス100とサーバ34との間には、予めセッションが確立されており、その確立されたセッションにおいて取り決められた暗号化方式に従って、デバイス100からサーバ34宛てのパケットが暗号化される。この生成される暗号化パケットは、サーバ34を宛先とするものとなる。
【0138】
続いて、デバイス100は、中継サーバ32との間でセッションを確立し、P2Pで暗号化パケットを送信する(シーケンスSQ102)。すなわち、生成された暗号化パケットをデバイス100からサーバ34までP2Pで転送する処理が実行される。P2Pでの送信において、暗号化パケットをさらに暗号化するようにしてもよい。この場合には、デバイス100と中継サーバ32との間で確立されたセッションにおいて取り決められた暗号化方式に従うことになる。
【0139】
中継サーバ32は、デバイス100から受信した暗号化パケットをさらにサーバ34へ転送する。すなわち、中継サーバ32は、サーバ34との間でセッションを確立し、P2Pで暗号化パケットを送信する(シーケンスSQ104)。なお、P2Pでの送信において、暗号化パケットをさらに暗号化するようにしてもよい。
【0140】
サーバ34は、中継サーバ32から受信した暗号化パケットが自デバイス宛てであることを判断し、暗号化パケットを復号する(シーケンスSQ106)。そして、サーバ34は、暗号化パケットの復号結果に含まれる要求に従って、処理を実行する(シーケンスSQ108)。サーバ34は、処理の実行結果を含む暗号化パケットを生成する(シーケンスSQ110)。サーバ34は、P2Pで暗号化パケットを中継サーバ32に送信する(シーケンスSQ112)。中継サーバ32は、サーバ34から受信した暗号化パケットをさらにデバイス100に転送する。すなわち、中継サーバ32は、P2Pで暗号化パケットをデバイス100に送信する(シーケンスSQ114)。
【0141】
デバイス100は、中継サーバ32から受信した暗号化パケットが自デバイス宛てであることを判断し、暗号化パケットを復号する(シーケンスSQ116)。そして、デバイス100は、暗号化パケットの復号結果に含まれる処理の実行結果を用いて、結果表示などの処理を実行する(シーケンスSQ118)。
【0142】
以上のとおり、認証済みIPアドレスを有するデバイス間においては、暗号化パケットがP2Pで順次転送されることで、データがセキュアにやり取りされることになる。
【0143】
(e3:認証済みIPアドレスに非対応のデバイスとのデータ通信)
次に、認証済みIPアドレスに非対応のデバイスとのデータ通信について説明する。一例として、図10に示すネットワークシステム1において、デバイス100とサーバ24との間のデータ通信を説明する。
【0144】
図12は、本実施の形態に従うネットワークシステム1における認証済みIPアドレスを有するデバイス間のデータ通信の手順を示すシーケンス図である。図12には、デバイス100からサーバ24に対して任意の要求が送信され、サーバ24がその要求に従って処理を実行した結果を、デバイス100に応答する場合を示す。このとき、プロキシサーバ22がデバイス100とサーバ24との間のプロキシサーバとなる。なお、図10には、図12に示す主要な処理に対応するシーケンス番号と同じシーケンス番号を記載している。
【0145】
以下の説明においては、典型例として、プロキシサーバ22のプロキシ動作のみ着目して説明するが、プロキシ動作と全く同一の処理を実装する必要はなく、プロキシ動作に係る処理と類似した処理を採用してもよい。また、プロキシ動作だけに限らず、例えば、ウィルスチェック機能やフィルタリング機能などを含めるようにしてもよい。
【0146】
図12を参照して、デバイス100は、任意のアプリケーションなどから予め定められた条件を満たすパケットを与えられると、プロキシサーバ22に対して、プロキシ動作要求を送信する(シーケンスSQ200)。予め定められた条件は、例えば、認証済みIPアドレスを用いたデータ通信に対応していないデバイスを宛先とするパケットが与えられたことなどを含む。プロキシ動作要求を受けて、プロキシサーバ22は、デバイス100についてのプロキシ動作を有効化する。このように、デバイス100からプロキシサーバ22に対してプロキシ動作を有効化するための要求を送信する処理が実行される。
【0147】
プロキシ動作要求についても、デバイス100からプロキシサーバ22にP2Pで送信されてもよい。さらに、P2Pで送信されるプロキシ動作要求を暗号化してもよい。
【0148】
プロキシサーバ22およびデバイス100からのプロキシ動作要求は、公知のプロコトルを用いて実装してもよい。より具体的には、SOCKS(SOCKS4,SOCKS4a,SOCKS5)などのプロトコルを用いることができる。
【0149】
続いて、デバイス100は、サーバ34に対する要求を含む暗号化パケットを生成する(シーケンスSQ202)。デバイス100とプロキシサーバ22との間には、予めセッションが確立されており、その確立されたセッションにおいて取り決められた暗号化方式に従って、デバイス100からプロキシサーバ22宛てのパケットが暗号化される。この生成される暗号化パケットは、プロキシサーバ22を宛先とするものとなるが、サーバ34を宛先とするパケットをも含む。
【0150】
続いて、デバイス100は、P2Pで暗号化パケットをプロキシサーバ22に送信する(シーケンスSQ204)。すなわち、生成された暗号化パケットをデバイス100からプロキシサーバ22までP2Pで転送する処理が実行される。P2Pでの送信において、暗号化パケットをさらに暗号化するようにしてもよい。この場合には、デバイス100とプロキシサーバ22との間で確立されたセッションにおいて取り決められた暗号化方式に従うことになる。
【0151】
プロキシサーバ22は、デバイス100から受信した暗号化パケットを一旦復号する(シーケンスSQ206)。これは、プロキシサーバ22より先の経路においては、IPアドレスを用いた通常の通信プロコトルが利用されることになるからである。そして、サーバ34は、暗号化パケットの復号結果に含まれる要求に従って、デバイス100の代理としてサーバ24とデータ通信を行う。すなわち、プロキシサーバ22は、暗号化パケットの復号結果に含まれる要求を含む通常パケットを生成する(シーケンスSQ208)。そして、プロキシサーバ22は、生成した通常パケットをサーバ24に送信する(シーケンスSQ210)。このように、プロキシサーバ22において、暗号化パケットを復号して生成した通常パケットを、サーバ24に送信する処理が実行される。
【0152】
なお、プロキシサーバ22は、通常パケットを生成する際に、デバイス100からのパケットに含まれるヘッダ情報などを適宜変更してもよい。
【0153】
そして、プロキシサーバ22は、生成した通常パケットをサーバ24に送信する(シーケンスSQ210)。この通常パケットの送信は、必ずしもP2Pでなくてもよく、通常のTCP/IPやUDP/IPなどに従って、適宜パケットを転送するようにしてもよい。
【0154】
サーバ24は、プロキシサーバ22から通常パケットを受信すると、当該通常パケットに含まれる要求に従って、処理を実行する(シーケンスSQ212)。そして、サーバ24は、処理の実行結果を含む通常パケット(応答パケット)をプロキシサーバ22に送信する(シーケンスSQ214)。
【0155】
プロキシサーバ22は、サーバ24からの応答パケットを受信して、受信した通常パケットを含む暗号化パケットを生成する(シーケンスSQ216)。この生成される暗号化パケットは、デバイス100を宛先とするものとなる。そして、プロキシサーバ22は、生成した暗号化パケットをP2Pでデバイス100に送信する(シーケンスSQ218)。このように、暗号化パケットをプロキシサーバ22からデバイス100までP2Pで転送る処理が実行される。
【0156】
デバイス100は、プロキシサーバ22から受信した暗号化パケットが自デバイス宛てであることを判断し、暗号化パケットを復号する(シーケンスSQ220)。そして、デバイス100は、暗号化パケットの復号結果に含まれる処理の実行結果を用いて、結果表示などの処理を実行する(シーケンスSQ222)。
【0157】
以上のとおり、認証済みIPアドレスを有するデバイス間においては、暗号化パケットがP2Pで順次転送されることで、データがセキュアにやり取りされることになる。一方、認証済みIPアドレスに非対応のデバイスとのデータのやり取りにおいては、プロキシサーバ22が代理応答することで、任意のデバイスとの間でデータをやり取りできる。
【0158】
(e4:処理手順)
次に、デバイス100における処理手順およびプロキシサーバ22における処理手順について説明する。
【0159】
図13は、本実施の形態に従うデバイス100がパケットをやり取りする処理手順を示すフローチャートである。図13には、ネットワークに接続されたデバイス100での通信処理方法の一例を示す。図13に示す各ステップは、デバイス100の制御部110(図2参照)によって実行される(典型的には、プロセッサおよびメモリが協働することにより実現される)。
【0160】
図13を参照して、デバイス100上で実行される任意のアプリケーション300などから、他のデバイスを宛先とするパケットの送信要求が与えられたか否かを判断する(ステップS100)。他のデバイスを宛先とするパケットの送信要求が与えられていなければ(ステップS100においてNO)、ステップS150以下の処理が実行される。
【0161】
これに対して、他のデバイスを宛先とするパケットの送信要求が与えられると(ステップS100においてYES)、デバイス100は、宛先のデバイスが認証済みIPアドレスを用いたデータ通信に対応したデバイスであるか否かを判断する(ステップS102)。認証済みIPアドレスを用いたデータ通信に対応したデバイスであるか否かの判断は、宛先のデバイスが暗号化パケットをやり取り可能であるか否かを判断することを意味する。
【0162】
ステップS102においては、例えば、宛先デバイスのIPアドレスが図5に示すような値になっているか否かなどに基づいて判断してもよい。あるいは、デバイス100が予め保持するリストに登録されてIPアドレスと一致する場合に限って、認証済みIPアドレスを用いたデータ通信に対応するものと判断し、それ以外については、対応しないと判断するようにしてもよい。
【0163】
宛先のデバイスが認証済みIPアドレスを用いたデータ通信に対応したデバイスであれば(ステップS102においてYES)、デバイス100は、宛先のデバイスとのセッションにおいて取り決められた暗号化方式に従って、指定された他のデバイスを宛先とする暗号化パケットを生成する(ステップS104)。すなわち、デバイス100は、宛先のデバイスが暗号化パケットをやり取り可能であれば、パケットの送信要求に従って宛先のデバイスに向けた暗号化パケットを生成する。続いて、デバイス100は、隣接するデバイスに生成した暗号化パケットをP2Pで送信する(ステップS106)。最終的に、暗号化パケットは、宛先のデバイスまでP2Pで転送される。そして、ステップS150以下の処理が実行される。
【0164】
これに対して、宛先のデバイスが認証済みIPアドレスを用いたデータ通信に対応したデバイスでなければ(ステップS102においてNO)、デバイス100は、デバイス100のプロキシサーバとなるプロキシサーバ22を特定する(ステップS108)。このプロキシサーバ22の特定は、典型的には、IPアドレスを用いて行われる。
【0165】
そして、デバイス100は、特定したプロキシサーバ22に対してプロキシ動作要求を送信済であるか否かを判断する(ステップS110)。特定したプロキシサーバ22に対してプロキシ動作要求を送信済でなければ(ステップS110においてNO)、デバイス100は、特定したプロキシサーバ22に対してプロキシ動作要求を送信する(ステップS112)。プロキシ動作要求は、プロキシ動作を有効化するための要求に相当する。特定したプロキシサーバ22に対してプロキシ動作要求を送信済であれば(ステップS110においてYES)、ステップS112の処理はスキップされる。
【0166】
続いて、デバイス100は、指定された他のデバイスを宛先とする通常パケットを生成し(ステップS114)、さらに、特定したプロキシサーバ22とのセッションにおいて取り決められた暗号化方式に従って、生成した通常パケットを含む、特定したプロキシサーバ22を宛先とする暗号化パケットを生成する(ステップS116)。すなわち、デバイス100は、宛先のデバイスが暗号化パケットをやり取り可能でなければ、パケットの送信要求に従って宛先のデバイスに向けたパケットを含む暗号化パケットを生成する。続いて、デバイス100は、隣接するデバイスに生成した暗号化パケットをP2Pで送信する(ステップS106)。最終的に、暗号化パケットは、デバイス100のプロキシサーバとなるプロキシサーバ22までP2Pで転送される。そして、ステップS150以下の処理が実行される。
【0167】
ステップS100~S116の処理は、パケット送信に係る処理に相当する。ステップS150以下の処理は、パケット受信に係る処理に相当する。
【0168】
ステップS150において、デバイス100は、他のデバイスから暗号化パケットを受信したか否かを判断する(ステップS150)。他のデバイスから暗号化パケットを受信していなければ(ステップS150においてNO)、ステップS100以下の処理が繰り返される。
【0169】
他のデバイスから暗号化パケットを受信していれば(ステップS150においてYES)、デバイス100は、受信した暗号化パケットが自デバイス宛であるか否かを判断する(ステップS152)。受信した暗号化パケットが自デバイス宛であれば(ステップS152においてYES)、デバイス100は、受信した暗号化パケットを復号し(ステップS154)、暗号化パケットの復号結果に基づいて必要な処理を実行する(ステップS156)。そして、ステップS100以下の処理が繰り返される。
【0170】
これに対して、受信した暗号化パケットが自デバイス宛でなければ(ステップS152においてNO)、デバイス100は、受信した暗号化パケットを別のデバイスにP2Pで転送する(ステップS158)。そして、ステップS100以下の処理が繰り返される。
【0171】
図14は、本実施の形態に従うプロキシサーバ22がパケットをやり取りする処理手順を示すフローチャートである。図14に示す各ステップは、プロキシサーバ22の制御部によって実行される(典型的には、プロセッサおよびメモリが協働することにより実現される)。
【0172】
図14を参照して、プロキシサーバ22は、いずれかのデバイスからプロキシ動作要求を受信したか否かを判断する(ステップS200)。いずれかのデバイスからプロキシ動作要求を受信していれば(ステップS200においてYES)、プロキシサーバ22は、要求元のデバイスについてのプロキシ動作に係るセッションを確立する(ステップS202)。いずれかのデバイスからプロキシ動作要求を受信していなければ(ステップS200においてNO)、ステップS202の処理はスキップされる。
【0173】
続いて、プロキシサーバ22は、いずれかのデバイスから自デバイス宛の暗号化パケットを受信したか否かを判断する(ステップS204)。いずれかのデバイスから自デバイス宛の暗号化パケットを受信していれば(ステップS204においてYES)、プロキシサーバ22は、受信した暗号化パケットを復号し(ステップS206)、暗号化パケットの復号結果に含まれる要求に従って処理を実行する(ステップS208)。いずれかのデバイスから自デバイス宛の暗号化パケットを受信していなければ(ステップS204においてNO)、ステップS206およびS208の処理はスキップされる。
【0174】
続いて、プロキシサーバ22は、いずれかのデバイスから自デバイス宛の通常パケットを受信したか否かを判断する(ステップS210)。この通常パケットは、上述のサーバ24などからの応答を含むパケットが想定される。いずれかのデバイスから自デバイス宛の通常パケットを受信していれば(ステップS210においてYES)、プロキシサーバ22は、受信した通常パケットを含む暗号化パケットを生成する(ステップS212)。そして、プロキシサーバ22は、生成した暗号化パケットをP2Pでデバイス100に送信する(ステップS214)。いずれかのデバイスから自デバイス宛の通常パケットを受信していなければ(ステップS210においてNO)、ステップS212およびS214の処理はスキップされる。そして、ステップS200以下の処理が繰り返される。
【0175】
上述したように、認証済みIPアドレスを有していて、暗号化パケットをやり取りできるデバイスと、認証済みIPアドレスを有しおらず、暗号化パケットをやり取りできないデバイスとが混在するネットワークが存在し得る。本実施の形態に従うネットワークシステム1は、このようなネットワークにおいても、プロキシサーバとなるデバイスを利用することで、送信元のデバイスから見れば、認証済みIPアドレスを有しているデバイスとの間で暗号化パケットをやり取りするのと同様の手順で、必要なデータ通信を実現できる。
【0176】
<F.利点>
本実施の形態に従うネットワークシステム1によれば、宛先のデバイスが暗号化パケットをやり取り可能ではないデバイスを含むネットワークにおいても、処理の親和性を維持しつつ、セキュアレベルも維持できるP2Pによるデータ通信を実現できる。
【0177】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0178】
1 ネットワークシステム、2 ネットワーク、4 アクセスポイント、6 移動体基地局、10 ローカルライン、20 インターネット、22 プロキシサーバ、24,34 サーバ、30 制限ネットワーク、32 中継サーバ、100 デバイス、102 プロセッサ、104 主メモリ、106 ストレージ、108 ROM、110 制御部、120 ネットワークインターフェイス、130 表示部、140 入力部、150 メディアインターフェイス、152 メディア、160 OS、170 通信処理プログラム、172 秘密鍵、174 公開鍵、176 電子証明書、178 ハッシュ値、180 ハッシュ関数、190 IPアドレス、194 コネクションテーブル、200 認証局、300 アプリケーション。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14