(57)【要約】【課題】２つのノード間をセキュアに接続することのできる通信処理装置、通信方法および通信処理プログラムを提供する。【解決手段】中継装置ＲＳは、ルート証明書、第１証明書および第２証明書を用いて、証明書を検証する（シーケンスＳＱ１１２）。すなわち、中継装置ＲＳは、正当な認証サーバＣＡにより認証されていることを検証するとともに、ＮｏｄｅＡおよびＮｏｄｅＢの正当性（なりすましではないこと）を検証する。上述の証明書の検証処理がすべて成功した場合（シーケンスＳＱ１１２においてＯＫの場合）には、中継装置ＲＳは、コネクションテーブルの内容を更新する（シーケンスＳＱ１１６）。中継装置ＲＳは、ＳＳＬコネクションを終了するための条件が成立するまで、ＮｏｄｅＡから送信されたデータのＮｏｄｅＢへの転送、および、ＮｏｄｅＢから送信されたデータのＮｏｄｅＡへの転送を繰返す。【選択図】図６
2011041061.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続される通信処理装置であって、
前記ネットワークに接続された第１通信装置との間でセキュアなコネクションを確立する第１通信手段と、
前記ネットワークに接続された第２通信装置との間でセキュアなコネクションを確立する第２通信手段と、
前記第１通信装置と前記第２通信装置との間でセキュアなコネクションを確立するための要求に応答して、前記第１通信装置および前記第２通信装置の正当性を検証する検証手段と、
前記第１通信装置および前記第２通信装置の正当性が検証された場合に限って、前記コネクションを介して、前記第１通信装置と前記第２通信装置との間でデータを中継する中継手段とを備える、通信処理装置。
【請求項２】
前記検証手段は、
前記第１通信装置から、前記第１通信装置の実体を証明する情報を取得する手段と、
前記第２通信装置から、前記第２通信装置の実体を証明する情報を取得する手段とを含む、請求項１に記載の通信処理装置。
【請求項３】
前記第１通信装置の実体を証明する情報は、前記ネットワークに接続された認証サーバが前記第１通信装置に対して発行した電子証明書であり、
前記第２通信装置の実体を証明する情報は、前記認証サーバが前記第２通信装置に対して発行した電子証明書である、請求項２に記載の通信処理装置。
【請求項４】
前記検証手段は、前記第１通信装置から取得した電子証明書の発行元と、前記第２通信装置から取得した電子証明書の発行元とが一致した場合に、前記第１通信装置および前記第２通信装置が正当であると判断する、請求項３に記載の通信処理装置。
【請求項５】
前記検証手段は、
予め設定した通信装置別のコネクションを確立するための条件が満たされているか否かを判断し、
前記第１通信装置および前記第２通信装置の正当性が検証されたことに加えて、前記条件が満たされている場合に、前記第１通信装置と前記第２通信装置との間でのデータの中継を開始する、請求項１に記載の通信処理装置。
【請求項６】
前記条件に対する変更を受付ける手段をさらに備える、請求項５に記載の通信処理装置。
【請求項７】
前記中継手段は、
前記第１通信装置および前記第２通信装置の少なくとも一方から送信されるデータパケットを一時的に記憶する手段と、
同一のデータから生じた一連のデータパケットを一時的に記憶して元のデータに復元した上で、当該復元したデータを検証する手段とを含む、請求項１に記載の通信処理装置。
【請求項８】
通信処理装置および複数の通信装置が接続されたネットワークにおける通信方法であって、
前記通信処理装置と第１通信装置との間でセキュアなコネクションを確立するステップと、
前記通信処理装置と第２通信装置との間でセキュアなコネクションを確立するステップと、
前記第１通信装置と前記第２通信装置との間でセキュアなコネクションを確立するための要求に応答して、前記ネットワーク上に存在する検証手段が前記第１通信装置および前記第２通信装置の正当性を検証するステップと、
前記第１通信装置および前記第２通信装置の正当性が検証された場合に限って、前記通信処理装置が、前記コネクションを介して、前記第１通信装置と前記第２通信装置との間でデータを中継するステップとを備える、通信方法。
【請求項９】
前記検証手段は、前記通信処理装置に存在し、
前記通信方法は、
前記通信処理装置が前記第１通信装置から前記第１通信装置の実体を証明する情報を取得するステップと、
前記通信処理装置が前記第２通信装置から前記第２通信装置の実体を証明する情報を取得するステップとをさらに備える、請求項８に記載の通信方法。
【請求項１０】
前記検証手段は、前記第１通信装置に存在し、
前記通信方法は、
前記通信処理装置が前記第２通信装置から前記第２通信装置の実体を証明する情報を取得するステップと、
前記通信処理装置が前記第２通信装置から取得した前記第２通信装置の実体を証明する情報を前記第１通信装置へ転送するステップとをさらに備える、請求項８に記載の通信方法。
【請求項１１】
ネットワークに接続される通信処理装置で実行される通信処理プログラムであって、前記通信処理装置を、
前記ネットワークに接続された第１通信装置との間でセキュアなコネクションを確立する第１通信手段と、
前記ネットワークに接続された第２通信装置との間でセキュアなコネクションを確立する第２通信手段と、
前記第１通信装置と前記第２通信装置との間でセキュアなコネクションを確立するための要求に応答して、前記第１通信装置および前記第２通信装置の正当性を検証する検証手段と、
前記第１通信装置および前記第２通信装置の正当性が検証された場合に限って、前記コネクションを介して、前記第１通信装置と前記第２通信装置との間でデータを中継する中継手段として機能させる、通信処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２つのノード間をセキュアに接続することのできる通信処理装置、通信方法および通信処理プログラムに関する。
【背景技術】
【０００２】
近年の情報通信技術の進歩により、様々な機器や装置がネットワーク化されつつある。このような情報通信技術の進歩に伴って、クラッキングや情報漏洩などの危険性が認識されている。そのため、多くの企業などにおいては、企業内のパーソナルコンピュータなどから外部ネットワークへのアクセス、および、外部ネットワークに接続されたパーソナルコンピュータなどから企業内のパーソナルコンピュータへのアクセスを制限するための構成（いわゆる、ファイヤウォール）が採用されることが多い。
【０００３】
通常、上述のようなファイヤウォールを介して、あるネットワークに接続されたデバイス（以下、「ノード」とも称す。）が別のネットワークに接続されたノードとの間で直接データ通信を行なうことは許されないことが多い。
【０００４】
そのため、各々のノードが中継サーバとＳＳＬ通信などのセキュアな方法で通信を確立した上で、一方のノードから送信されるファイルやメッセージを中継サーバに一時的に格納しておき、中継サーバが他方のノードへポーリングすることで、ファイルやメッセージを交換する方法が知られている。
【０００５】
また、「ＵＤＰポート・パンチング」という技術を用いて、通信確立処理時だけ中継サーバを利用することで、Ｐ２Ｐ（peer to peer）通信を行なう方法が知られている。
【０００６】
また、特開２００５−３４６６０８号公報（特許文献１）には、サーバ装置がそれぞれルータ装置を介してネットワークに接続された通信機器の間で直接的なピアツーピア接続を確立する方法が開示されている。
【０００７】
また、特開２００８−０９７２１７号公報（特許文献２）には、ネットワークを介して、第一装置と第二装置との間の通信を中継する画像処理装置であって、第一装置とのセッションを確立した後、第一装置のセッション情報を第二装置へ通知することによって、第一装置と第二装置との直接通信に切り替える構成が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−３４６６０８号公報
【特許文献２】特開２００８−０９７２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述の中継サーバを利用した方法では、中継サーバがポーリングするタイミング以上のレスポンスを提供することはできない。また、データを遣り取りするノードが相手ノードを確認する手段がないので、いわゆる「なりすまし」を防ぐことができない。
【００１０】
また、上述のＵＤＰポート・パンチングの技術を用いる方法においても、通信相手を確認する手段をもたないので、「なりすまし」を防ぐことができない。
【００１１】
また、特開２００５−３４６６０８号公報（特許文献１）に開示される方法では、サーバ装置にテーブルの設定を変更できる権限を与える必要があり設定が複雑化するとともに、セキュリティホールが生じる可能性がある。
【００１２】
また、特開２００８−０９７２１７号公報に開示される方法においても、通信相手を確認する手段をもたないので、「なりすまし」を防ぐことができない。
【００１３】
本発明は、上記のような問題を解決するためになされたものであって、２つのノード間をセキュアに接続することのできる通信処理装置、通信方法および通信処理プログラムを提供するものである。
【課題を解決するための手段】
【００１４】
この発明のある局面に従えば、ネットワークに接続される通信処理装置を提供する。本通信処理装置は、ネットワークに接続された第１通信装置との間でセキュアなコネクションを確立する第１通信手段と、ネットワークに接続された第２通信装置との間でセキュアなコネクションを確立する第２通信手段と、第１通信装置と第２通信装置との間でセキュアなコネクションを確立するための要求に応答して、第１通信装置および第２通信装置の正当性を検証する検証手段と、第１通信装置および第２通信装置の正当性が検証された場合に限って、コネクションを介して、第１通信装置と第２通信装置との間でデータを中継する中継手段とを含む。
【００１５】
好ましくは、検証手段は、第１通信装置から、第１通信装置の実体を証明する情報を取得する手段と、第２通信装置から、第２通信装置の実体を証明する情報を取得する手段とを含む。
【００１６】
さらに好ましくは、第１通信装置の実体を証明する情報は、ネットワークに接続された認証サーバが第１通信装置に対して発行した電子証明書であり、第２通信装置の実体を証明する情報は、認証サーバが第２通信装置に対して発行した電子証明書である。
【００１７】
さらに好ましくは、検証手段は、第１通信装置から取得した電子証明書の発行元と、第２通信装置から取得した電子証明書の発行元とが一致した場合に、第１通信装置および第２通信装置が正当であると判断する。
【００１８】
好ましくは、検証手段は、予め設定した通信装置別のコネクションを確立するための条件が満たされているか否かを判断し、第１通信装置および第２通信装置の正当性が検証されたことに加えて、条件が満たされている場合に、第１通信装置と第２通信装置との間でのデータの中継を開始する。
【００１９】
さらに好ましくは、本通信処理装置は、条件に対する変更を受付ける手段をさらに含む。
【００２０】
好ましくは、中継手段は、第１通信装置および第２通信装置の少なくとも一方から送信されるデータパケットを一時的に記憶する手段と、同一のデータから生じた一連のデータパケットを一時的に記憶して元のデータに復元した上で、当該復元したデータを検証する手段とを含む。
【００２１】
この発明の別の局面に従えば、通信処理装置および複数の通信装置が接続されたネットワークにおける通信方法を提供する。本通信方法は、通信処理装置と第１通信装置との間でセキュアなコネクションを確立するステップと、通信処理装置と第２通信装置との間でセキュアなコネクションを確立するステップと、第１通信装置と第２通信装置との間でセキュアなコネクションを確立するための要求に応答して、ネットワーク上に存在する検証手段が第１通信装置および第２通信装置の正当性を検証するステップと、第１通信装置および第２通信装置の正当性が検証された場合に限って、通信処理装置が、コネクションを介して、第１通信装置と第２通信装置との間でデータを中継するステップとを含む。
【００２２】
好ましくは、検証手段は、通信処理装置に存在し、通信方法は、通信処理装置が第１通信装置から第１通信装置の実体を証明する情報を取得するステップと、通信処理装置が第２通信装置から第２通信装置の実体を証明する情報を取得するステップとをさらに含む。
【００２３】
あるいは好ましくは、検証手段は、第１通信装置に存在し、通信方法は、通信処理装置が第２通信装置から第２通信装置の実体を証明する情報を取得するステップと、通信処理装置が第２通信装置から取得した第２通信装置の実体を証明する情報を第１通信装置へ転送するステップとをさらに含む。
【００２４】
この発明のさらに別の局面に従えば、ネットワークに接続される通信処理装置で実行される通信処理プログラムを提供する。本通信処理プログラムは、通信処理装置を、ネットワークに接続された第１通信装置との間でセキュアなコネクションを確立する第１通信手段と、ネットワークに接続された第２通信装置との間でセキュアなコネクションを確立する第２通信手段と、第１通信装置と第２通信装置との間でセキュアなコネクションを確立するための要求に応答して、第１通信装置および第２通信装置の正当性を検証する検証手段と、第１通信装置および第２通信装置の正当性が検証された場合に限って、コネクションを介して、第１通信装置と第２通信装置との間でデータを中継する中継手段として機能させる。
【発明の効果】
【００２５】
本発明によれば、２つのノード間をセキュアに接続することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態１に従うネットワークシステムの概略構成図である。
【図２】本発明の実施の形態１に従うネットワークシステムに含まれるＮｏｄｅのハードウェア構成を示す概略ブロック図である。
【図３】本発明の実施の形態１に従うネットワークシステムに含まれる中継装置のハードウェア構成を示す概略ブロック図である。
【図４】本発明の実施の形態１に従うネットワークシステムに含まれるＮｏｄｅの制御構造を示すブロック図である。
【図５】本発明の実施の形態１に従う中継装置ＲＳの制御構造を示すブロック図である。
【図６】本発明の実施の形態１に従うネットワークシステムにおけるシーケンス図である。
【図７】本発明の実施の形態１に従うＳＳＬ通信手順を示すシーケンス図である。
【図８】本発明の実施の形態１に従う中継装置で使用されるコネクションテーブル２３０の一例を示す図である。
【図９】本発明の実施の形態１の変形例１に従う中継装置の制御構造を示すブロック図である。
【図１０】本発明の実施の形態１の変形例１に従うデータ転送の処理を説明するための図である。
【図１１】本発明の実施の形態１の変形例２に従う中継装置の制御構造を示すブロック図である。
【図１２】本発明の実施の形態１の変形例２に従うポリシーテーブルの一例を示す図である。
【図１３】本発明の実施の形態２に従う中継装置の制御構造を示すブロック図である。
【図１４】本発明の実施の形態２に従うネットワークシステムに含まれるＮｏｄｅＡの制御構造を示すブロック図である。
【図１５】本発明の実施の形態２に従うネットワークシステムにおけるシーケンス図である。
【発明を実施するための形態】
【００２７】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２８】
［実施の形態１］
＜システム構成＞
図１は、本発明の実施の形態１に従うネットワークシステム１の概略構成図である。
【００２９】
図１を参照して、ネットワークシステム１は、グローバルネットワーク３４０に接続された複数のローカル環境３１０，３２０，３３０を含む。ローカル環境３１０，３２０，３３０は、典型的には、企業や家庭などのローカルなネットワーク環境に対応し、グローバルネットワーク３４０は、典型的には、インターネットなどに対応する。
【００３０】
ローカル環境３１０では、ルータ３１２を介して、サーバ装置などのデバイス（以下、「ＮｏｄｅＡ」とも称す。）がネットワーク接続されている。
【００３１】
また、ローカル環境３２０では、ローカルネットワーク３２４に接続されているパーソナルコンピュータ（ＰＣ）などのデバイス（以下、「ＮｏｄｅＢ」とも称す。）がルータ３２２を介して、グローバルネットワーク３４０に接続される。同様に、ローカル環境３３０では、ローカルネットワーク３３４に接続されているパーソナルコンピュータ（ＰＣ）などのデバイス（以下、「ＮｏｄｅＣ」とも称す。）がルータ３３２を介して、グローバルネットワーク３４０に接続される。なお、ＮｏｄｅＢおよびＮｏｄｅＣとしては、パーソナルコンピュータに限られず、各種の事務機器（画像形成装置など）や家電（テレビやビデオなど）も想定される。
【００３２】
なお、本明細書において、「Ｎｏｄｅ」とは、ネットワークに接続された通信装置（デバイス）一般を意味し、特に、ネットワーク上を伝送される情報（データ）を受信して、当該情報を自身で処理可能な任意のデバイスを示す。
【００３３】
以下では、ＮｏｄｅＡとＮｏｄｅＢまたはＮｏｄｅＣとの間でＰ２Ｐ通信を行なう場合の処理例について説明する。典型的な適用例としては、ローカル環境３１０に設けられるＮｏｄｅＡがローカル環境３２０および３３０に設けられるデバイス（ＮｏｄｅＢおよびＮｏｄｅＣ）から情報を収集したり、それらのデバイスに必要なデータ（たとえば、更新データ）などを提供したりするような形態が考えられる。すなわち、本実施の形態に従うネットワークシステム１は、典型的には、ＮｏｄｅＡを用いて、ＮｏｄｅＢおよびＮｏｄｅＣをリモートメンテナンスするような形態に適している。
【００３４】
ネットワークシステム１は、ネットワーク接続された中継装置ＲＳおよび認証サーバＣＡをさらに含む。中継装置ＲＳは、本発明に係る通信処理装置の典型例であり、ＮｏｄｅＢまたはＮｏｄｅＣとＮｏｄｅＡとの間でＰ２Ｐ通信の確立を仲介する。認証サーバＣＡは、各Ｎｏｄｅの正当性を証明するための証明書を発行する認証局である。典型的には、認証サーバＣＡは、公開鍵基盤（ＰＫＩ：Public Key Infrastructure）に基づくデジタル署名を付した証明書を発行する。本実施の形態においては、公開鍵基盤のうち、ＩＴＵ−Ｔ（International Telecommunication Union Telecommunication Standardization Sector）によって定められているＸ．５０９勧告に従う構成について例示する。
【００３５】
＜概要＞
本実施の形態に従うネットワークシステム１においては、ＮｏｄｅＡとＮｏｄｅＢまたはＮｏｄｅＣとの間でデータを中継することで、実質的に、２つのＮｏｄｅの間でＰ２Ｐ通信を提供する。このＰ２Ｐ通信のコネクションを確立する際、中継装置ＲＳは、ＮｏｄｅＡおよびＮｏｄｅＢまたはＮｏｄｅＣのそれぞれから証明書を取得し、両Ｎｏｄｅの正当性（なりすましではないこと）を検証する。そして、両Ｎｏｄｅが正当であることが検証されると、両Ｎｏｄｅの間のコネクションを確立し、セキュアな通信を提供する。
【００３６】
＜ハードウェア構成＞
図２は、本発明の実施の形態１に従うネットワークシステム１に含まれるＮｏｄｅのハードウェア構成を示す概略ブロック図である。図３は、本発明の実施の形態１に従うネットワークシステム１に含まれる中継装置ＲＳのハードウェア構成を示す概略ブロック図である。
【００３７】
図２を参照して、Ｎｏｄｅの典型例であるパーソナルコンピュータ（ＰＣ）は、オペレーティングシステムを含む各種プログラムを実行するＣＰＵ（Central Processing Unit）２と、ＣＰＵ２で実行されるプログラムを不揮発的に記憶するハードディスク（ＨＤＤ）１２と、ＣＰＵ２でのプログラムの実行に必要なデータを一時的に記憶する記憶部としてのメモリ１４とを含む。このようなプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ１６またはフレキシブルディスク（ＦＤ：Flexible Disk）ドライブ１８によって、それぞれＣＤ−ＲＯＭ１６ａまたはフレキシブルディスク１８ａなどから読取られる。
【００３８】
ＣＰＵ２は、キーボード、マウス、タブレットなどからなる入力装置１０を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面出力を出力装置６へ出力する。出力装置６は、ＣＰＵ２で実行される各種処理結果などをユーザに表示するためのデバイスであり、典型的には、モニターやプロジェクターなどからなる。
【００３９】
また、ＣＰＵ２は、ＬＡＮカードなどからなる通信インターフェイス８を介して、中継装置ＲＳや他のＮｏｄｅとの間でデータ通信を行なう。なお、これらの部位は、内部バス４を介して互いに接続される。
【００４０】
図３を参照して、本実施の形態に従う中継装置ＲＳは、ＰＣベースの装置であり、基本的なハードウェア構成は、図２と同様である。但し、図３に示すように、中継装置ＲＳは、２つのＮｏｄｅ間で遣り取りされるデータを中継するために、２つの通信インターフェイス８−１，８−２を有している点が、図２に示すパーソナルコンピュータとは異なっている。
【００４１】
なお、図２および図３に示す中継装置ＲＳおよびＮｏｄｅの全部もしくは一部を専用のハードウェアとして実装してもよい。
【００４２】
＜機能構成＞
図４は、本発明の実施の形態１に従うネットワークシステム１に含まれるＮｏｄｅの制御構造を示すブロック図である。図５は、本発明の実施の形態１に従う中継装置ＲＳの制御構造を示すブロック図である。
【００４３】
まず、図４を参照して、Ｎｏｄｅの制御構造について説明する。各Ｎｏｄｅは、その制御構造として、データ送受信部１０２と、暗号化制御部１０４と、記憶部１０６とを含む。データ送受信部１０２および暗号化制御部１０４は、典型的には、ＣＰＵ２（図２）がプログラムを実行することで提供され、記憶部１０６は、ハードディスク（ＨＤＤ）１２またはメモリ１４（図２）の一部として提供される。
【００４４】
データ送受信部１０２は、通信インターフェイス８（図２）に必要な内部コマンドを与えることで、中継装置ＲＳ、認証サーバＣＡおよび他のＮｏｄｅとの間でデータ通信を行なう。より具体的には、データ送受信部１０２は、自Ｎｏｄｅで実行されるアプリケーションなどによって生成される送信対象データを指定された宛先へ送信するとともに、他のデバイスからの受信データなどを当該アプリケーションなどへ渡す。
【００４５】
暗号化制御部１０４は、中継装置ＲＳ、認証サーバＣＡおよび他のＮｏｄｅとの間でセキュアな通信を提供する。より具体的には、暗号化制御部１０４は、他のデバイスとの間でＳＳＬ（Secure Socket Layer）方式などの暗号化された状態でデータを送受信する。このＳＳＬ方式に従って暗号化通信を行なう際、後述する証明書が必要に応じて使用される。
【００４６】
記憶部１０６は、証明書１１０を含む各種データを記憶する。証明書１１０は、予め暗号化制御部１０４が認証サーバＣＡとデータ通信を行なうことで取得されているものとする。この証明書１１０には、自Ｎｏｄｅの公開鍵を認証サーバＣＡの秘密鍵で暗号化することで得られる署名に加えて、認証サーバＣＡの公開鍵および認証サーバＣＡの識別情報などが含まれる。
【００４７】
次に、図５を参照して、中継装置ＲＳの制御構造について説明する。中継装置ＲＳは、その制御構造として、中継制御部２０２と、接続判断部２０４と、記憶部２０６と、第１データ送受信部２１２と、第１暗号化制御部２１４と、第２データ送受信部２２２と、第２暗号化制御部２２４とを含む。典型的には、記憶部２０６は、ハードディスク（ＨＤＤ）１２またはメモリ１４（図３）の一部として提供され、その他の部位は、ＣＰＵ２（図３）がプログラムを実行することで提供される。
【００４８】
第１データ送受信部２１２は、通信インターフェイス８−１（図３）に必要な内部コマンドを与えることで、いずれかのＮｏｄｅおよび認証サーバＣＡとの間でデータ通信を行なう。より具体的には、第１データ送受信部２１２は、他のデバイスからの受信データを中継制御部２０２へ渡すとともに、中継制御部２０２からの送信対象データを指定された宛先へ送信する。同様に、第２データ送受信部２２２は、通信インターフェイス８−２（図３）に必要な内部コマンドを与えることで、いずれかのＮｏｄｅおよび認証サーバＣＡとの間でデータ通信を行なう。
【００４９】
第１暗号化制御部２１４は、第１データ送受信部２１２を制御することで、いずれかのＮｏｄｅおよび認証サーバＣＡとの間でセキュアな通信を提供する。より具体的には、第１暗号化制御部２１４は、上述の暗号化制御部１０４と同様に、ＳＳＬ方式などに従って暗号化通信を行なう。すなわち、第１暗号化制御部２１４は、ネットワークに接続された通信装置との間でセキュアなコネクションを確立する第１通信手段に相当する。
【００５０】
同様に、第２暗号化制御部２２４は、第２データ送受信部２２２を制御することで、いずれかのＮｏｄｅおよび認証サーバＣＡとの間でセキュアな通信を提供する。すなわち、第２暗号化制御部２２４は、ネットワークに接続された通信装置との間でセキュアなコネクションを確立する第２通信手段に相当する。
【００５１】
中継制御部２０２は、第１データ送受信部２１２および第２データ送受信部２２２と関連付けられている。そして、中継制御部２０２は、接続判断部２０４からの指令に従って、第１データ送受信部２１２が受信したデータを第２データ送受信部２２２から目的の宛先へ送信するとともに、第２データ送受信部２２２が受信したデータを第１データ送受信部２１２から目的の宛先へ送信する。
【００５２】
より具体的には、中継制御部２０２は、送受信対象のデータを一時的に格納するためのコネクションキュー２０３を含む。コネクションキュー２０３は、第１データ送受信部２１２と第２データ送受信部２２２との間で遣り取りされるデータのためのバッファ（スプール）として機能する。なお、コネクションキュー２０３は、中継装置ＲＳとの間で確立されるコネクション別に領域が用意されており、コネクション毎にＦＩＦＯ（First In First Out）形式でデータの格納および読出しが制御される。
【００５３】
接続判断部２０４は、後述するように、第１データ送受信部２１２および第１暗号化制御部２１４、もしくは、第２データ送受信部２２２および第２暗号化制御部２２４を介して、いずれかの接続要求元のＮｏｄｅから、２つのＮｏｄｅ間にコネクションを確立するための要求（以下、「中継リクエスト」とも称す。）を受けると、後述するような認証処理を行なって、対象の２つのＮｏｄｅ間にコネクションの確立を許可するか否かを判断する。接続判断部２０４は、対象の２つのＮｏｄｅ間におけるコネクションの確立を許可すると判断した場合には、後述する記憶部２０６に格納されているコネクションテーブル２３０に対応関係を登録する。その後、接続判断部２０４は、コネクションテーブル２３０の登録内容に基づいて中継制御部２０２に指令に与える。
【００５４】
すなわち、接続判断部２０４は、２つの通信装置の間でセキュアなコネクションを確立するための要求に応答して、２つの通信装置の正当性を検証する検証手段に相当する。
【００５５】
記憶部２０６は、認証サーバＣＡのルート証明書２３２およびコネクションテーブル２３０を予め格納している。また、中継制御部２０２は、中継手段に相当し、接続判断部２０４によって２つの通信装置の正当性が検証された場合に限って、コネクションを介して、２つの通信装置の間でデータを中継する。
【００５６】
ルート証明書２３２は、認証サーバＣＡが自己の公開鍵を自己の秘密鍵で暗号化した署名を含む。すなわち、ルート証明書２３２は、認証サーバＣＡが自身の正当性を認証するために、自ら署名して発行するデジタル証明書である。なお、ＳＳＬ方式に従う暗号化通信をサポートするＯＳ（Operating System）およびブラウザは、世界的な認証サーバＣＡのルート証明書を予め組み込んでいるものもある。
【００５７】
コネクションテーブル２３０は、接続判断部２０４によってコネクションの確立が許可されたＮｏｄｅ間の対応関係を記述する。より具体的には、コネクションテーブル２３０には、複数のコネクションを定義可能な領域が設けてあり、各コネクションについて、コネクションＩＤおよびコネクションを確立するＮｏｄｅを特定する情報が記述される。なお、コネクションテーブル２３０は、典型的には、データベースもしくはファイル形式で保持される。
【００５８】
さらに、記憶部２０６には、中継装置ＲＳとＳＳＬコネクションを確立したＮｏｄｅが有する証明書が格納される。図５には、典型例として、第１データ送受信部２１２および第１暗号化制御部２１４を介してＳＳＬコネクションを確立した１番目のＮｏｄｅの証明書（第１証明書２１６）と、第２データ送受信部２２２および第２暗号化制御部２２４を介してＳＳＬコネクションを確立した２番目のＮｏｄｅの証明書（第２証明書２２６）とが格納されている状態を示す。なお、中継装置ＲＳは、複数のコネクションを保持することが可能であるので、確立されているコネクションの対応するＮｏｄｅの数だけ証明書が格納される。
【００５９】
すなわち、接続判断部２０４は、コネクションの確立が要求された２つの通信装置の実体を証明する情報をそれぞれ取得する。より具体的には、この通信装置の実体を証明する情報は、ネットワークに接続された認証サーバＣＡがそれぞれの通信装置に対して発行した電子証明書である。
【００６０】
＜シーケンス＞
次に、図６〜図８を参照して、本実施の形態に従うネットワークシステム１において、ＮｏｄｅＡとＮｏｄｅＢとの間でセキュアなデータ通信を行なう場合の手順について説明する。
【００６１】
図６は、本発明の実施の形態１に従うネットワークシステム１におけるシーケンス図である。なお、図６に示すシーケンス図では、ＮｏｄｅＡがサーバ装置であり、複数のＮｏｄｅからアクセスを受付けるとともに、各Ｎｏｄｅとの間でセキュアな通信を行なうものとする。なお、以下の説明では、図４および図５に示す制御構造のうち、その処理を実行する主体についても併せて記載する。
【００６２】
図７は、本発明の実施の形態１に従うＳＳＬ通信手順を示すシーケンス図である。図８は、本発明の実施の形態１に従う中継装置ＲＳで使用されるコネクションテーブル２３０の一例を示す図である。
【００６３】
図６を参照して、まず、ＮｏｄｅＡ（図５に示す第１暗号化制御部２１４）は、中継装置ＲＳとの間で複数のＳＳＬコネクションを確立する（シーケンスＳＱ１００）。このＳＳＬコネクション確立処理に際して、中継装置ＲＳとＮｏｄｅＡとの間で証明書が交換される。中継装置ＲＳ（第１暗号化制御部２１４）は、ＮｏｄｅＡから受信したＮｏｄｅＡの証明書（図５に示す第１証明書２１６）をハードディスク（ＨＤＤ）１２またはメモリ１４（図５に示す記憶部２０６）に格納する（シーケンスＳＱ１０２）。これらの確立される複数のＳＳＬコネクションには、各々を識別するためのコネクションＩＤが付与されているものとする。
【００６４】
なお、ＮｏｄｅＡが中継装置ＲＳに複数のＳＳＬコネクションを要求するタイミングは、いずれかのＮｏｄｅからＮｏｄｅＡへの中継リクエストを受信後であってもよい。但し、予め複数のＳＳＬコネクションを用意しておくことで、より迅速なコネクションの確立が可能となる。
【００６５】
ここで、ＳＳＬ通信手順について説明しておく。図７を参照して、接続要求元Ｎｏｄｅと接続要求先Ｎｏｄｅとの間で一連の手順に従う処理が行なわれることで、ＳＳＬコネクションが確立される。
【００６６】
まず、接続要求元Ｎｏｄｅから接続要求先Ｎｏｄｅに向けて、ＳＳＬのバージョン設定が通知される（シーケンスＳＱ１）。このバージョン設定の通知に応答して、接続要求先Ｎｏｄｅは、通知されたＳＳＬのバージョンを選択したことを応答する（シーケンスＳＱ２）。
【００６７】
すると、接続要求先Ｎｏｄｅは、Ｘ．５０９署名のチェーン（証明書）を接続要求元Ｎｏｄｅへ送信する（シーケンスＳＱ３）。このＸ．５０９署名のチェーンとは、認証サーバＣＡが階層構造となっており、接続要求先Ｎｏｄｅがルート認証サーバによって認証されておらず、その代わりに、より下層の認証サーバによってのみ認証されているような場合に、接続要求先Ｎｏｄｅの証明書に加えて、当該接続要求先Ｎｏｄｅを認証した認証サーバＣＡの証明書、さらに上位の認証サーバＣＡの証明書といった具合に、ルート認証サーバまでの一連の証明書群を意味する。そして、接続要求先Ｎｏｄｅは、すべての証明書の送信が完了すると、応答終了を接続要求元Ｎｏｄｅへ通知する（シーケンスＳＱ４）。
【００６８】
接続要求元Ｎｏｄｅは、接続要求先Ｎｏｄｅから受信したＸ．５０９署名のチェーンを検証し、検証が成功した場合に限って処理を継続する。
【００６９】
同様に、接続要求元Ｎｏｄｅは、Ｘ．５０９署名のチェーン（証明書）を接続要求先Ｎｏｄｅへ送信する（シーケンスＳＱ５）。接続要求元Ｎｏｄｅは、すべての証明書の送信が完了すると、応答終了を接続要求先Ｎｏｄｅへ通知する（シーケンスＳＱ６）。
【００７０】
接続要求先Ｎｏｄｅは、接続要求元Ｎｏｄｅから受信したＸ．５０９署名のチェーンを検証し、検証が成功した場合に限って処理を継続する。
【００７１】
さらに、接続要求元Ｎｏｄｅは、接続要求先Ｎｏｄｅへプリマスター鍵を送信する（シーケンスＳＱ７）。このプリマスター鍵は、接続要求元Ｎｏｄｅと接続要求先Ｎｏｄｅとの間で暗号化通信を行なうために使用する共通の暗号化鍵（セッション鍵）を生成するための情報である。接続要求元Ｎｏｄｅおよび接続要求先Ｎｏｄｅは、このプリマスター鍵を用いて、共通のセッション鍵をそれぞれ生成する。
【００７２】
そして、接続要求元Ｎｏｄｅは、暗号の切り替え完了を通知（シーケンスＳＱ８）した後、接続処理の終了を通知する（シーケンスＳＱ９）。同様に、接続要求先Ｎｏｄｅは、暗号の切り替え完了を通知（シーケンスＳＱ１０）した後、接続処理の終了を通知する（シーケンスＳＱ１１）。
【００７３】
以上の手順によって、ＳＳＬコネクションが確立される。
再度図６を参照して、シーケンスＳＱ１０２の後、ＮｏｄｅＢに対するユーザ操作などに応答して、ＮｏｄｅＢ（図４に示す暗号化制御部１０４）は、まず、中継装置ＲＳに対して、中継装置ＲＳとの間でＳＳＬコネクションの確立を要求するための接続リクエストを送信する（シーケンスＳＱ１０４）。この接続リクエストに応答して、中継装置ＲＳ（第２暗号化制御部２２４）およびＮｏｄｅＢ（暗号化制御部１０４）は、両者の間でＳＳＬコネクションを確立する（シーケンスＳＱ１０６）。このＳＳＬコネクション確立処理に際して、中継装置ＲＳとＮｏｄｅＢとの間で証明書が交換される。中継装置ＲＳ（第２暗号化制御部２２４）は、ＮｏｄｅＢから受信したＮｏｄｅＢの証明書（図５に示す第２証明書２２６）をハードディスク（ＨＤＤ）１２またはメモリ１４（図５に示す記憶部２０６）に格納する（シーケンスＳＱ１０８）。
【００７４】
ＮｏｄｅＢと中継装置ＲＳとの間のＳＳＬコネクションの確立後、ＮｏｄｅＢ（暗号化制御部１０４）は、中継装置ＲＳに対して、ＮｏｄｅＡとの間でコネクションを確立するための中継リクエストを送信する（シーケンスＳＱ１１０）。この中継リクエストに応答して、中継装置ＲＳ（図５に示す接続判断部２０４）は、記憶部２０６に格納されている、ルート証明書２３２、第１証明書２１６および第２証明書２２６を用いて、証明書を検証する（シーケンスＳＱ１１２）。すなわち、中継装置ＲＳは、正当な認証サーバＣＡにより認証されていることを検証するとともに、ＮｏｄｅＡおよびＮｏｄｅＢの正当性（なりすましではないこと）を検証する。
【００７５】
より具体的には、中継装置ＲＳは、ＮｏｄｅＡの証明書（図５に示す第１証明書２１６）およびＮｏｄｅＢの証明書（図５に示す第２証明書２２６）に記述されている認証サーバＣＡおよび当該認証サーバＣＡの公開鍵が一致しているか否かを判断する。この検証処理によって、ＮｏｄｅＡおよびＮｏｄｅＢが共通の認証サーバＣＡによって認証されているか否かが判断される。すなわち、コネクションの確立が要求されている２つの通信装置のそれぞれから取得した電子証明書の発行元が一致した場合に、これらの２つの通信装置が正当であると判断する。
【００７６】
さらに、中継装置ＲＳは、ＮｏｄｅＡの証明書に含まれるＮｏｄｅＡの公開鍵をルート証明書２３２に含まれる認証サーバＣＡの公開鍵を用いて暗号化することで得られる値と、ＮｏｄｅＡの証明書（第１証明書２１６）に含まれる認証サーバＣＡの署名とが一致しているか否かを判断する。この検証処理によって、ＮｏｄｅＡの正当性が評価される。同様に、中継装置ＲＳは、ＮｏｄｅＢの証明書に含まれるＮｏｄｅＢの公開鍵をルート証明書２３２に含まれる認証サーバＣＡの公開鍵を用いて暗号化することで得られる値と、ＮｏｄｅＢの証明書（第２証明書２２６）に含まれる認証サーバＣＡの署名とが一致しているか否かを判断する。この検証処理によって、ＮｏｄｅＢの正当性が評価される。
【００７７】
上述の証明書の検証処理が失敗した場合（シーケンスＳＱ１１２においてＮＧの場合）には、中継装置ＲＳ（接続判断部２０４）は、ＮｏｄｅＢに対して、コネクション確立の失敗を通知するためのエラーメッセージを送信する（シーケンスＳＱ１１４）。
【００７８】
これに対して、上述の証明書の検証処理がすべて成功した場合（シーケンスＳＱ１１２においてＯＫの場合）には、中継装置ＲＳ（接続判断部２０４）は、記憶部２０６内のコネクションテーブル２３０の内容を更新する（シーケンスＳＱ１１６）。すなわち、シーケンスＳＱ１００においてＮｏｄｅＡとの間で予め確立しておいた複数のコネクションのうち１つに対応付けて、コネクションを確立した２つのＮｏｄｅを特定する識別情報を登録する。より具体的には、中継装置ＲＳは、予め用意されている複数のコネクションＩＤのうち、他の既存のコネクションにおいて使用されていないコネクションＩＤのうち１つを選択し、この選択したコネクションＩＤと対応付けて、コネクションを確立した２つのＮｏｄｅを示す識別情報を、コネクションテーブル２３０に記録する。すなわち、図６に示す例では、中継装置ＲＳとＮｏｄｅＡとの間に確立されている複数のコネクションのうち、選択された１つのコネクションがＮｏｄｅＡとＮｏｄｅＢとのＳＳＬ通信用に占有される。
【００７９】
以下、図８を参照して、コネクションテーブル２３０について説明する。図８に示すコネクションテーブル２３０には、予めＮｏｄｅＡと中継装置ＲＳとの間で確立されているＳＳＬコネクションの数に相当するコネクションＩＤが定義されている。そして、各コネクションＩＤに対応付けて、接続Ｎｏｄｅ名１および接続Ｎｏｄｅ名２、ならびにタイムアウト時間が設定可能である。
【００８０】
たとえば、図８に示す例では、コネクションＩＤが「１」および「２」のコネクションについては、それぞれＮｏｄｅＡとＮｏｄｅＢとの間のデータ通信およびＮｏｄｅＡとＮｏｄｅＣの間のデータ通信に使用されることが登録されている。なお、コネクションＩＤが「３」のコネクションについては、解放の状態になっている。
【００８１】
また、接続Ｎｏｄｅ名１および接続Ｎｏｄｅ名２には、それぞれコネクションに関わるＮｏｄｅを特定するための識別情報が登録される。さらに、図８に示すように、タイムアウト時間が設定されてもよい。このタイムアウト時間は、対応するコネクションのＮｏｄｅ間において、所定期間に亘って何らのデータ通信も行なわれない場合に、コネクションを解放するためのしきい値である。
【００８２】
再度図６を参照して、中継装置ＲＳ（接続判断部２０４）は、ＮｏｄｅＢに対して、ＮｏｄｅＡとのコネクションが正常に確立されたことを通知するための中継ＯＫ応答を送信する（シーケンスＳＱ１１８）。
【００８３】
以上のシーケンスによって、ＮｏｄｅＡとＮｏｄｅＢとの間で、ＳＳＬコネクションが確立する。以下、後述するＳＳＬコネクションを終了するための条件が成立するまで、シーケンスＳＱ１２２〜ＳＱ１３０の処理が繰返される。すなわち、中継装置ＲＳは、ＳＳＬコネクションを終了するための条件が成立するまで、ＮｏｄｅＡから送信されたデータのＮｏｄｅＢへの転送、および、ＮｏｄｅＢから送信されたデータのＮｏｄｅＡへの転送を繰返す。
【００８４】
より具体的には、ＮｏｄｅＢ（データ送受信部１０２および暗号化制御部１０４）が中継装置ＲＳへ向けてデータを送信する（シーケンスＳＱ１２０）と、中継装置ＲＳ（第１データ送受信部２１２および第１暗号化制御部２１４）は、受信したデータをコネクションキュー２０３に格納する（シーケンスＳＱ１２２）。続いて、中継装置ＲＳ（第２データ送受信部２２２および第２暗号化制御部２２４）は、コネクションキュー２０３に格納した順に、データをＮｏｄｅＡへ送信する（シーケンスＳＱ１２４）。
【００８５】
同様に、ＮｏｄｅＡ（データ送受信部１０２および暗号化制御部１０４）が中継装置ＲＳへ向けてデータを送信する（シーケンスＳＱ１２６）と、中継装置ＲＳ（第２データ送受信部２２２および第２暗号化制御部２２４）は、受信したデータをコネクションキュー２０３に格納する（シーケンスＳＱ１２８）。続いて、中継装置ＲＳ（第１データ送受信部２１２および第１暗号化制御部２１４）は、コネクションキュー２０３に格納した順に、データをＮｏｄｅＢへ送信する（シーケンスＳＱ１３０）。
【００８６】
このように、本実施の形態に従う中継装置ＲＳでは、コネクションキュー２０３にデータパケットが格納されると、その格納された順序に従って、データパケットが送信先へ順次送信される方法を採用している。
【００８７】
なお、第１データ送受信部２１２または第２データ送受信部２２２がいずれかのＮｏｄｅからデータを受信すると、中継制御部２０２は、コネクションテーブル２３０を参照して、コネクションＩＤおよび／または接続先のＮｏｄｅを特定する。そして、中継制御部２０２は、受信したデータを対応するコネクションキュー２０３へ格納する。
【００８８】
その後、中継装置ＲＳ（接続判断部２０４）は、中継終了条件が成立するか否かを判断する（シーケンスＳＱ１３２）。より具体的には、中継装置ＲＳは、ＮｏｄｅＡまたはＮｏｄｅＢからコネクションの終了要求を受けたか否か、および、コネクションのタイムアウト時間（図８参照）に達したか否かを判断する。
【００８９】
さらに、中継終了条件としては、コネクションを確立しているいずれかのＮｏｄｅの証明書が有効期限を越えた場合、コネクションを確立しているＮｏｄｅ間で遣り取りされるデータ量が多すぎる場合、および、中継装置ＲＳにおいて確立しているＮｏｄｅの数が所定数を超えた場合などを含めてもよい。さらに、コネクションに関与していない第三者のＮｏｄｅからのコネクションの終了要求を受付けるようにしてもよい。
【００９０】
中継終了条件が成立していなければ（シーケンスＳＱ１３２においてＮＯ）、シーケンスＳＱ１１８〜ＳＱ１２６の処理が繰返される。
【００９１】
これに対して、中継終了条件が成立していれば（シーケンスＳＱ１３２においてＹＥＳ）、中継装置ＲＳ（接続判断部２０４）は、記憶部２０６内のコネクションテーブル２３０の内容を更新する（シーケンスＳＱ１３４）。より具体的には、中継装置ＲＳは、コネクションテーブル２３０に記載の内容のうち、シーケンスＳＱ１３２において中継終了条件が成立したコネクションに対応するコネクションＩＤのエントリを削除する。これにより、対象のＮｏｄｅ間のデータ通信に使用されていたコネクションが解放される。なお、この解放されたコネクションは、その後、他のＮｏｄｅ間のデータ通信に使用される。
【００９２】
なお、上述のシーケンスにおいては、コネクションを確立するＮｏｄｅの正当性について証明書を用いて評価する構成について例示したが、証明書に代えて、もしくは、証明書に加えて、リージョンコードなどのＮｏｄｅの物理的な場所を保証する情報を用いてもよい。
【００９３】
＜作用効果＞
本実施の形態に従うネットワークシステムによれば、中継装置ＲＳとの間でそれぞれセキュアなコネクションを確立できる２つのＮｏｄｅ間でＰ２Ｐ通信を行なうことができる。そのため、２つのＮｏｄｅ間の通信経路にルータ（ファイヤウォール）などが存在する場合であっても、当該ルータを通過することのできる汎用的なプロトコル（典型的には、ｈｔｔｐプロトコルなど）を用いて、中継装置ＲＳとの間でセキュアな通信を確立することができれば、２つのＮｏｄｅ間でＰ２Ｐ通信を行なうことができる。
【００９４】
したがって、２つのＮｏｄｅが正当性を評価した上で、２つのＮｏｄｅ間にコネクションを確立することができるので、通信処理量を低減しつつ、なりすましなどの不正行為を排除して、セキュアな通信を行なうことができる。
【００９５】
［実施の形態１の変形例１］
上述の実施の形態１においては、中継装置ＲＳがあるＮｏｄｅからのデータを目的のＮｏｄｅへ転送する際に、データパケットをコネクションキューに一時的に格納して順次送信する構成について例示した。これに対して、Ｎｏｄｅ間で遣り取りされるデータについてもその内容を制限するようにしてもよい。
【００９６】
本変形例に従うネットワークシステムの概略構成は、図１と同様であるので、詳細な説明は繰返さない。また、本変形例に従うネットワークシステムに含まれるＮｏｄｅおよび中継装置ＲＳのハードウェア構成についても、それぞれ図２および図３と同様であるので、詳細な説明は繰返さない。さらに、本変形例に従うネットワークシステムに含まれるＮｏｄｅの制御構造についても、図４と同様であるので詳細な説明は繰返さない。
【００９７】
図９は、本発明の実施の形態１の変形例１に従う中継装置ＲＳの制御構造を示すブロック図である。図９を参照して、本変形例に従う中継装置ＲＳの制御構造は、図５に示す実施の形態１に従う中継装置ＲＳの制御構造に比較して、データバッファ２０８が追加された点が相違する。また、中継制御部２０２が、データバッファ２０８へのデータ格納および読出しを制御するための機能を有する点においても相違する。その他の部位については、図５と同様であるので、詳細な説明は繰返さない。
【００９８】
データバッファ２０８は、第１データ送受信部２１２または第２データ送受信部２２２によって受信されたデータパケットを一時的に格納することで、元のデータに一旦復元する。すなわち、Ｎｏｄｅ間で遣り取りされるデータは、所定サイズのデータパケットに分割されて送信される。そのため、データバッファ２０８は、あるデータを分割して得られる一連のデータパケット群を元のデータに復元できる（すなわち、最終のデータパケットの受信が完了する）まで保持する。そして、中継制御部２０２は、このデータバッファ２０８において復元されたデータを検証し、所定の条件を満たすものだけを、送信先へ転送する。一例として、中継制御部２０２は、送信対象のデータが実行形式のファイルであったり、スクリプトファイルであったりした場合には、Ｎｏｄｅ間の中継を拒否することができる。また、送信対象のデータに所定のヘッダが含まれていない場合などにも、Ｎｏｄｅ間の中継を拒否するようにしてもよい。
【００９９】
すなわち、コネクションを確立している２つの通信装置の少なくとも一方から送信されるデータパケットを一時的に記憶し、同一のデータから生じた一連のデータパケットを一時的に記憶して元のデータに復元した上で、当該復元したデータが検証される。
【０１００】
以下、これらの処理について、図１０を参照してより詳細に説明する。
図１０は、本発明の実施の形態１の変形例１に従うデータ転送の処理を説明するための図である。図１０（ａ）は、上述の実施の形態１に従うデータ転送の処理を説明するための図であり、図１０（ｂ）は、上述の本変形例に従うデータ転送の処理を説明するための図である。
【０１０１】
図１０（ａ）に示すように、上述の実施の形態１に従う中継装置ＲＳでは、第１データ送受信部２１２によって受信されるデータパケットがコネクションキュー２０３へ順次格納されるとともに、その格納された順序で読出されて、第２データ送受信部２２２へ送られる。すなわち、第１データ送受信部２１２によって、データパケット０１、データパケット０２、データパケット０３、データパケット０４の順で受信されたとすると、第１データ送受信部２１２によって、データパケット０１、データパケット０２、データパケット０３、データパケット０４の順で第２データ送受信部２２２へ出力される。
【０１０２】
これに対して、本変形例に従う中継装置ＲＳでは、図１０（ｂ）に示すように、第１データ送受信部２１２によって受信されるデータパケット群が、元のデータに復元されるまで、データバッファ２０８に格納される。すなわち、元のデータＡが４つのデータパケットＡ−０１，Ａ−０２，Ａ−０３，Ａ−０４に分割されたとすると、コネクションキュー２０３は、これらの４つのデータパケットがすべて受信されるまでデータパケットを格納し続ける。そして、中継制御部２０２がこの復元されたデータＡを検証する。検証されたデータＡは、コネクションキュー２０３に格納される。
【０１０３】
なお、コネクションキュー２０３では、データＡが再度所定サイズのデータパケットに分割される場合もある。これは、第２データ送受信部２２２によって、目的のＮｏｄｅへデータ転送を行なうためである。
【０１０４】
その他の構成および処理については、上述の実施の形態１に従うネットワークシステム１と同様であるので、詳細な説明は繰返さない。
【０１０５】
＜作用効果＞
本変形例に従うネットワークシステムによれば、コネクションを確立するＮｏｄｅの正当性に加えて、当該Ｎｏｄｅ間で送受信されるデータの正当性をも検証することができる。そのため、Ｎｏｄｅ間においてよりセキュアな通信を実現することができる。
【０１０６】
［実施の形態１の変形例２］
上述の実施の形態１においては、対象のＮｏｄｅの正当性についての検証が成功すれば、基本的に無条件にコネクションを確立する構成について例示した。これに対して、コネクションを確立できる条件（ポリシー）をより詳細に設定できるようにしてもよい。
【０１０７】
本変形例に従うネットワークシステムの概略構成は、図１と同様であるので、詳細な説明は繰返さない。また、本変形例に従うネットワークシステムに含まれるＮｏｄｅおよび中継装置ＲＳのハードウェア構成についても、それぞれ図２および図３と同様であるので、詳細な説明は繰返さない。さらに、本変形例に従うネットワークシステムに含まれるＮｏｄｅの制御構造についても、図４と同様であるので詳細な説明は繰返さない。
【０１０８】
図１１は、本発明の実施の形態１の変形例２に従う中継装置ＲＳの制御構造を示すブロック図である。図１１を参照して、本変形例に従う中継装置ＲＳの制御構造は、図５に示す実施の形態１に従う中継装置ＲＳの制御構造に比較して、記憶部２０６にポリシーテーブル２３４をさらに格納するように構成した点が相違する。また、接続判断部２０４がポリシーテーブル２３４を参照して、コネクションを確立するか否かを判断する機能を有する点においても相違する。その他の部位については、図５と同様であるので、詳細な説明は繰返さない。
【０１０９】
ポリシーテーブル２３４には、各Ｎｏｄｅ（あるいは、各Ｎｏｄｅの証明書）について、コネクションを確立するための条件（ポリシー）が定義されている。接続判断部２０４は、このポリシーテーブル２３４を参照して、対応する条件が満たされている場合に限って、要求されたコネクションを確立する。すなわち、予め設定した通信装置（ＮｏｄｅもしくはＮｏｄｅの証明書）別に、コネクションを確立するための条件が満たされているか否かが判断され、２つの通信装置の正当性が検証されたことに加えて、これらの条件が満たされている場合に限って、２つの通信装置の間でデータの中継が開始される。
【０１１０】
図１２は、本発明の実施の形態１の変形例２に従うポリシーテーブル２３４の一例を示す図である。たとえば、各Ｎｏｄｅの証明書に、当該証明書を発行した認証サーバＣＡの識別情報、各Ｎｏｄｅの識別情報に含まれる共通名（Common Name）、および各Ｎｏｄｅが位置する情報（Location）が記述されているとする。このような証明書を利用する場合において、図１２に示すポリシーテーブル２３４には、「ＣＡが一致」、「ＣｏｍｍｏｎＮａｍｅが一致」、「Ｌｏｃａｔｉｏｎが一致」、および「その他接続を許可する証明書」といった条件が記述されている。このポリシーテーブル２３４に記載の「○」は、条件を満たす必要があることを示し、「×」は、条件の成立／不成立を問わないことを意味する。
【０１１１】
たとえば、ＮｏｄｅＡについてみれば、ＮｏｄｅＡの証明書を発行した認証サーバＣＡの識別情報とコネクション相手のＮｏｄｅの証明書を発行した認証サーバＣＡの識別情報とが一致していること（条件１）、ＮｏｄｅＡの証明書に含まれるＣｏｍｍｏｎＮａｍｅの値とコネクション相手のＮｏｄｅの証明書に含まれるＣｏｍｍｏｎＮａｍｅの値とが一致していること（条件２）、および、ＮｏｄｅＡの証明書に含まれるＬｏｃａｔｉｏｎの値とコネクション相手のＮｏｄｅの証明書に含まれるＬｏｃａｔｉｏｎの値とが一致していること（条件３）のすべての条件が満たされる場合に、コネクションの確立が許可される。
【０１１２】
これに対して、ＮｏｄｅＢについてみれば、上述の条件１および２が満たされる場合に、コネクションの確立が許可される。また、ＮｏｄｅＣについてみれば、上述の条件１のみが満たされる場合に、コネクションの確立が許可される。
【０１１３】
なお、各Ｎｏｄｅについて無条件でコネクションの確立を許可するＮｏｄｅがあれば、「その他接続を許可する証明書」の欄にその識別情報が登録される。いわば、ホワイトリストのような設定が可能である。
【０１１４】
なお、上述のポリシーテーブル２３４を必ずしも記憶部２０６に格納する必要はなく、接続判断部２０４がアクセス可能であれば、認証サーバＣＡや他のＮｏｄｅに存在していてもよい。
【０１１５】
さらに、上述のポリシーテーブル２３４を任意に変更できるようにすることが好ましい。また、ネットワークを介して他のＮｏｄｅから追記／変更できるように構成してもよい。このようなリモートでポリシーテーブル２３４を追記／変更するための方法としては、ブラウザのフォームやＣＧＩを用いてユーザアクセスを受付ける方法や、ＦＴＰ（File Transfer Protocol）などを用いてファイル自体を置き換える方法などを採用することができる。すなわち、ポリシーテーブル２３４に対する変更を受付ける手段をさらに備えるようにしてもよい。
【０１１６】
＜作用効果＞
本変形例に従うネットワークシステムによれば、Ｎｏｄｅ毎にコネクションを確立するためのポリシーを登録できるので、コネクションの設定をより詳細に調整することができる。一例として、複数の地域の別に製品（たとえば、アメリカ用の製品とヨーロッパ用の製品）とを製造販売するような会社を考えると、共通の認証サーバＣＡによって証明書が発行されていたとしても、アメリカ用の製品がインストールされたＮｏｄｅと、ヨーロッパ用の製品がインストールされたＮｏｄｅとの間では通信が許可されないといった使用形態が考えられる。また、アメリカ用の製品についてのサポート用のサーバ装置とヨーロッパ用の製品についてのサポート用のサーバ装置とを用意しておき、それぞれの製品がインストールされたＮｏｄｅからは、対応する一方のサーバ装置へのアクセスしか許可されないといった形態も考えられる。このような使用形態は、図１２に示すポリシーテーブル２３４に記述された、共通名（Common Name）および位置情報（Location）などを用いることで実現できる。
【０１１７】
また、ネットワークを介してポリシーテーブル２３４を設定／変更できるようにすることで、中継装置ＲＳなどが遠い場所に設置されていたとしても、タイムリーにその内容を登録することができる。これにより、不正アクセスやスパムメール送信など、セキュリティ上の問題が起こつた場合などに、即座に処置を施すことができる。
【０１１８】
［実施の形態２］
上述の実施の形態１においては、中継装置ＲＳがＮｏｄｅ間のコネクション確立の許否を判断する構成について例示したが、このコネクション確立の許否を判断するための構成要素を中継装置ＲＳ以外のＮｏｄｅに設けてもよい。以下に示す本実施の形態においては、特定のＮｏｄｅにコネクション確立の許否を判断するための構成要素が存在するシステムについて例示する。
【０１１９】
本実施の形態に従うネットワークシステムの概略構成は、図１と同様であるので、詳細な説明は繰返さない。また、本実施の形態に従うネットワークシステムに含まれるＮｏｄｅおよび中継装置ＲＳのハードウェア構成についても、それぞれ図２および図３と同様であるので、詳細な説明は繰返さない。
【０１２０】
＜制御構造＞
図１３は、本発明の実施の形態２に従う中継装置ＲＳの制御構造を示すブロック図である。図１４は、本発明の実施の形態２に従うネットワークシステムに含まれるＮｏｄｅＡの制御構造を示すブロック図である。
【０１２１】
図１３に示す中継装置ＲＳは、図５に示す実施の形態１に従う中継装置ＲＳにおいて、接続判断部２０４を削除したものに相当する。すなわち、本実施の形態に従う中継装置ＲＳは、Ｎｏｄｅ間にコネクションを確立するか否かの判断を行なわず、後述するように、ＮｏｄｅＡからの判断結果に従って、Ｎｏｄｅ間にコネクションを確立する。
【０１２２】
なお、Ｎｏｄｅ間のデータ転送機能については、上述の実施の形態１に従う中継装置ＲＳのデータ転送機能と同様である。その他の部位については、図５に示す中継装置ＲＳの対応する部位と同様であるので、詳細な説明は繰返さない。
【０１２３】
図１４に示すＮｏｄｅＡは、図４に示す実施の形態１に従うＮｏｄｅにおいて、接続判断部１２０を追加した上で、記憶部１０６に、自Ｎｏｄｅ証明書１１２、ルート証明書１２２、他Ｎｏｄｅ証明書１２４を格納するようにしたものに相当する。図１４に示す接続判断部１２０の機能は、図５に示す中継装置ＲＳの接続判断部２０４とほぼ同様である。また、自Ｎｏｄｅ証明書１１２は、ＮｏｄｅＡの証明書であり、他Ｎｏｄｅ証明書１２４は、コネクション要求元のＮｏｄｅの証明書である。また、ルート証明書１２２は、認証サーバＣＡが自身の正当性を認証するために、自ら署名して発行するデジタル証明書である。その他の部位については、図４に示すＮｏｄｅの対応する部位と同様であるので、詳細な説明は繰返さない。
【０１２４】
また、発明の実施の形態２に従うネットワークシステムに含まれるＮｏｄｅＢおよびＮｏｄｅＣの制御構造については、図４に示す実施の形態１に従うＮｏｄｅの制御構造と同様であるものとする。
【０１２５】
＜シーケンス＞
次に、図１５を参照して、本実施の形態に従うネットワークシステムにおいて、ＮｏｄｅＡとＮｏｄｅＢとの間でセキュアなデータ通信を行なう場合の手順について説明する。
【０１２６】
図１５は、本発明の実施の形態２に従うネットワークシステムにおけるシーケンス図である。なお、図１５に示すシーケンス図では、ＮｏｄｅＡがサーバ装置であり、複数のＮｏｄｅからアクセスを受付けるとともに、各Ｎｏｄｅとの間でセキュアな通信を行なうものとする。なお、以下の説明では、図４、図１３および図１４に示す制御構造のうち、その処理を実行する主体についても併せて記載する。
【０１２７】
図１５を参照して、まず、ＮｏｄｅＡ（図１４に示す第１暗号化制御部２１４）は、中継装置ＲＳとの間で複数のＳＳＬコネクションを確立する（シーケンスＳＱ２００）。これらの確立される複数のＳＳＬコネクションには、各々を識別するためのコネクションＩＤが付与されているものとする。なお、上述のＳＳＬコネクションの確立手順については、上述の図７と同様であるので、詳細な説明は繰返さない。
【０１２８】
また、ＮｏｄｅＡが中継装置ＲＳに複数のＳＳＬコネクションを要求するタイミングは、いずれかのＮｏｄｅからＮｏｄｅＡへの中継リクエストを受信後であってもよい。但し、予め複数のＳＳＬコネクションを用意しておくことで、より迅速なコネクションの確立が可能となる。
【０１２９】
続いて、ＮｏｄｅＢに対するユーザ操作などに応答して、ＮｏｄｅＢ（図４に示す暗号化制御部１０４）は、まず、中継装置ＲＳに対して、中継装置ＲＳとの間でＳＳＬコネクションの確立を要求するための接続リクエストを送信する（シーケンスＳＱ２０２）。この接続リクエストに応答して、中継装置ＲＳ（第２暗号化制御部２２４）およびＮｏｄｅＢ（暗号化制御部１０４）は、両者の間でＳＳＬコネクションを確立する（シーケンスＳＱ２０４）。このＳＳＬコネクション確立処理に際して、中継装置ＲＳとＮｏｄｅＢとの間で証明書が交換される。中継装置ＲＳ（第２暗号化制御部２２４）は、ＮｏｄｅＢから受信したＮｏｄｅＢの証明書（図１３に示す第２証明書２２６）をハードディスク（ＨＤＤ）１２またはメモリ１４（図１３に示す記憶部２０６）に格納する（シーケンスＳＱ２０６）。
【０１３０】
ＮｏｄｅＢと中継装置ＲＳとの間のＳＳＬコネクションの確立後、ＮｏｄｅＢ（暗号化制御部１０４）は、中継装置ＲＳに対して、ＮｏｄｅＡとの間でコネクションを確立するための中継リクエストを送信する（シーケンスＳＱ２０８）。この中継リクエストに応答して、中継装置ＲＳ（図１３に示す中継制御部２０２）は、ＮｏｄｅＢからの中継リクエストとともに、記憶部２０６に格納されているＮｏｄｅＢの証明書（図１３に示す第２証明書２２６）をＮｏｄｅＡへ送信する（シーケンスＳＱ２１０）。
【０１３１】
ＮｏｄｅＡ（図１４に示す接続判断部１２０）は、中継装置ＲＳから受信したＮｏｄｅＢの証明書を他Ｎｏｄｅ証明書１２４としてハードディスク（ＨＤＤ）１２またはメモリ１４（図１４に示す記憶部１０６）に格納する。そして、ＮｏｄｅＡ（接続判断部１２０）は、記憶部１０６に格納されている、自Ｎｏｄｅ証明書１１２、他Ｎｏｄｅ証明書１２４、および、ルート証明書１２２を用いて、証明書を検証する（シーケンスＳＱ２１２）。すなわち、ＮｏｄｅＡは、正当な認証サーバＣＡにより認証されていることを検証するとともに、ＮｏｄｅＡおよびＮｏｄｅＢの正当性（なりすましではないこと）を検証する。
【０１３２】
より具体的には、ＮｏｄｅＡは、ＮｏｄｅＡの証明書（図１４に示す自Ｎｏｄｅ証明書１１２）およびＮｏｄｅＢの証明書（図１４に示す他Ｎｏｄｅ証明書１２４）に記述されている認証サーバＣＡおよび当該認証サーバＣＡの公開鍵が一致しているか否かを判断する。この検証処理によって、ＮｏｄｅＡおよびＮｏｄｅＢが共通の認証サーバＣＡによって認証されているか否かが判断される。
【０１３３】
さらに、ＮｏｄｅＡは、他Ｎｏｄｅ証明書１２４に含まれるＮｏｄｅＢの公開鍵をルート証明書１２２に含まれる認証サーバＣＡの公開鍵を用いて暗号化することで得られる値と、ＮｏｄｅＢの証明書（他Ｎｏｄｅ証明書１２４）に含まれる認証サーバＣＡの署名とが一致しているか否かを判断する。この検証処理によって、ＮｏｄｅＢの正当性が評価される。
【０１３４】
上述の証明書の検証処理が失敗した場合には、ＮｏｄｅＡは、中継装置ＲＳを介して、コネクション確立の失敗を通知するためのエラーメッセージをＮｏｄｅＢへ送信する。
【０１３５】
これに対して、上述の証明書の検証処理がすべて成功した場合（シーケンスＳＱ２１２においてＯＫの場合）には、ＮｏｄｅＡ（接続判断部１２０）は、中継装置ＲＳに対して、ＮｏｄｅＡとのコネクションが正常に確立されたことを通知するための中継ＯＫ応答を送信する（シーケンスＳＱ２１４）。
【０１３６】
この中継ＯＫ応答を受けて、中継装置ＲＳ（中継制御部２０２）は、ＮｏｄｅＢに対して、ＮｏｄｅＡとのコネクションが正常に確立されたことを通知するための中継ＯＫを送信する（シーケンスＳＱ２１６）。同時に、中継装置ＲＳ（中継制御部２０２）は、記憶部２０６内のコネクションテーブル２３０の内容を更新し、中継処理を開始する（シーケンスＳＱ２１８）。すなわち、シーケンスＳＱ２００においてＮｏｄｅＡとの間で予め確立しておいた複数のコネクションのうち１つに対応付けて、コネクションを確立した２つのＮｏｄｅを特定する識別情報を登録する。
【０１３７】
以上のシーケンスによって、ＮｏｄｅＡとＮｏｄｅＢとの間で、ＳＳＬコネクションが確立する。以下、後述するＳＳＬコネクションを終了するための条件が成立するまで、シーケンスＳＱ２２０〜ＳＱ２３０の処理が繰返される。すなわち、中継装置ＲＳは、ＳＳＬコネクションを終了するための条件が成立するまで、ＮｏｄｅＡから送信されたデータのＮｏｄｅＢへの転送、および、ＮｏｄｅＢから送信されたデータのＮｏｄｅＡへの転送を繰返す。
【０１３８】
より具体的には、ＮｏｄｅＢ（図４に示すデータ送受信部１０２および暗号化制御部１０４）が中継装置ＲＳへ向けてデータを送信する（シーケンスＳＱ２２０）と、中継装置ＲＳ（図１３に示す第１データ送受信部２１２および第１暗号化制御部２１４）は、受信したデータをコネクションキュー２０３に格納する（シーケンスＳＱ２２２）。続いて、中継装置ＲＳ（図１３に示す第２データ送受信部２２２および第２暗号化制御部２２４）は、コネクションキュー２０３に格納した順に、データをＮｏｄｅＡへ送信する（シーケンスＳＱ２２４）。
【０１３９】
同様に、ＮｏｄｅＡ（図１に示すデータ送受信部１０２および暗号化制御部１０４）が中継装置ＲＳへ向けてデータを送信する（シーケンスＳＱ２２６）と、中継装置ＲＳ（第２データ送受信部２２２および第２暗号化制御部２２４）は、受信したデータをコネクションキュー２０３に格納する（シーケンスＳＱ２２８）。続いて、中継装置ＲＳ（第１データ送受信部２１２および第１暗号化制御部２１４）は、コネクションキュー２０３に格納した順に、データをＮｏｄｅＢへ送信する（シーケンスＳＱ２３０）。
【０１４０】
このように、本実施の形態に従う中継装置ＲＳでは、コネクションキュー２０３にデータパケットが格納されると、その格納された順序に従って、データパケットが送信先へ順次送信される方法を採用している。
【０１４１】
上述のシーケンスＳＱ２２０〜ＳＱ２３０の処理は、中継終了条件が成立するまで繰返される。
【０１４２】
その他の処理内容については、上述の実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１４３】
なお、実施の形態２についても、上述の実施の形態１に従う変形例を適用することができる。
【０１４４】
＜作用効果＞
本実施の形態に従うネットワークシステムにおいては、中継装置ＲＳではなく、接続要求先のＮｏｄｅが接続要求元のＮｏｄｅの正当性を直接的に検証することができる。これにより、より信頼性の高い検証を行なうことができる。
【０１４５】
また、Ｎｏｄｅおよび中継装置ＲＳとは別に設けられたＡＳＰ（Application Service Provider）に、Ｎｏｄｅの正当性の評価を行なわせることができる。これにより、中継装置ＲＳの構成および処理を簡素化できる。さらに、Ｎｏｄｅの正当性を評価する部分を一元化することで、上述したポリシーなどの設定を一括して管理することも可能となる。
【０１４６】
［その他の実施の形態］
上述のフローで説明したような制御を実行させるプログラムを任意の方法で提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１４７】
このようなプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本実施の形態に従うプログラムに含まれ得る。
【０１４８】
また、本実施の形態に従うプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本実施の形態に従うプログラムに含まれ得る。
【０１４９】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１５０】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５１】
１  ネットワークシステム、４  内部バス、６  出力装置、８，８−１，８−２  通信インターフェイス、１０  入力装置、１４  メモリ、１６  ＣＤ−ＲＯＭドライブ、１８  ＦＤドライブ、１０２  データ送受信部、１０４  暗号化制御部、１０６  記憶部、１２０  接続判断部、２０２  中継制御部、２０３  コネクションキュー、２０４  接続判断部、２０６  記憶部、２０８  データバッファ、２１２  データ送受信部、２１４  暗号化制御部、２２２  データ送受信部、２２４  暗号化制御部、２３０  コネクションテーブル、２３４  ポリシーテーブル、３１０，３２０，３３０  ローカル環境、３１２，３２２，３３２  ルータ、３２４，３３４  ローカルネットワーク、３４０  グローバルネットワーク、ＲＳ  中継装置。
【図１】
2011041061.tif 000003
【図２】
2011041061.tif 000004
【図３】
2011041061.tif 000005
【図４】
2011041061.tif 000006
【図５】
2011041061.tif 000007
【図６】
2011041061.tif 000008
【図７】
2011041061.tif 000009
【図８】
2011041061.tif 000010
【図９】
2011041061.tif 000011
【図１０】
2011041061.tif 000012
【図１１】
2011041061.tif 000013
【図１２】
2011041061.tif 000014
【図１３】
2011041061.tif 000015
【図１４】
2011041061.tif 000016
【図１５】
2011041061.tif 000017