中継装置、暗号化通信システム、暗号化通信プログラム、および暗号化通信方法
【課題】受信側のルータへの暗号化パケットの通信遅延が低減されるルータ、暗号化通信システム、暗号化通信プログラム、および暗号化通信方法を提供する。
【解決手段】ルータ6は、検出された処理負荷が閾値よりも大きいと判断した場合、ルータ2とルータ3との少なくともいずれか一方のルータに、他方のルータのIPアドレスと、ルータ2とルータ3との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含む接続情報パケットと、を送信する。
【解決手段】ルータ6は、検出された処理負荷が閾値よりも大きいと判断した場合、ルータ2とルータ3との少なくともいずれか一方のルータに、他方のルータのIPアドレスと、ルータ2とルータ3との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含む接続情報パケットと、を送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、中継装置の処理負荷に応じて、中継装置に接続された通信装置同士に暗号化通信を実行させる中継装置、暗号化通信システム、暗号化通信プログラム、および暗号化通信方法に関するものである。
【背景技術】
【0002】
従来、インターネットまたは専用/公衆回線を介して、複数のノードの間において暗号化通信を行う技術が知られている。例えば、特許文献1に開示されている技術では、IPsec(Internet Protocol security)等のプロトコルに準拠して送信側のノードにおいてパケットが暗号化され、受信側のノードで復号される。特許文献1に開示された技術では、ハブ&スポーク型と呼ばれる形式で、VPN(Virtual Private Network)が構築され、暗号化通信が行われる。ハブ&スポーク型でVPNが構築された場合、送信側のノードがパケットを暗号化する。送信側のルータは、暗号化されたパケットを中継ノードへ送信する。中継ノードは暗号化されたパケットを復号し、送信すべき受信側のノードを選択し、再びパケットを暗号化する。次に、中継ノードは、再び暗号化されたパケットを選択された受信側のノードに送信する。
【0003】
特許文献1に開示された技術では、送信側のノードが、送信側のノードと中継ノードとの間のトラフィック量が閾値を越えたことを検出すると、送信側のノードと受信側のノードとの間に直接VPNを構築する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−140482号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した特許文献1に記載された暗号化通信において、送信側のノードが、送信側のノードと中継ノードとの間のトラフィック量を検出するので、以下の問題が生じる可能性がある。
【0006】
別の送信側のノードが中継ノードに接続され、暗号化通信している場合、送信側のノードは、別の送信側のノードと中継ノードとの間のトラフィック量を検出できない。これにより、別の送信側のノードと中継ノードとの間のトラフィック量が多い場合、送信側のノードと受信側のノードとの間で直接VPNが構築されず、中継ノードを介する暗号化通信が継続される。また、中継ノードと各送信側のノードとの間のトラフィック量が閾値を超えなければ、送信側のノードと受信側のノードとの間で直接VPNが構築されず、中継ノードを介する暗号化通信が継続される。
【0007】
送信側のノードと中継ノードとの間におけるトラフィック量が多くなると、中継ノードにおいて、送信側のノードから送信されるパケットの暗号化処理、および復号処理の処理負荷が大きくなることが考えられる。この暗号化処理、及び復号処理の処理負荷が大きくなると、受信側のノードへ送信されるべき暗号化パケットが中継ノードから遅れて送信される場合、または受信側のノードへ送信されるべき暗号化パケットが中継ノードから送信されない場合が発生する恐れがある。
【0008】
本発明は、上述した問題点を解決するためになされたものであり、受信側の通信装置への暗号化パケットの通信遅延が低減される中継装置、暗号化通信システム、暗号化通信プログラム、および暗号化通信方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、請求項1記載の本発明は、複数の通信装置と暗号化通信する中継装置であって、前記複数の通信装置のIPアドレスを記憶する記憶手段と、前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築手段と、前記第1構築手段により構築されたVPNを介して暗号化されたデータを受信する受信手段と、前記受信手段により受信された暗号化データを復号する復号手段と、前記復号手段により復号されたデータに指定された宛先のIPアドレスから前記受信手段により受信されたデータを送信する第2通信装置のIPアドレスを前記記憶手段から抽出する抽出手段と、前記第2通信装置との間でVPNを構築する第2構築手段と、データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出手段と、前記検出手段により検出された処理負荷が閾値よりも大きいか否かを判断する判断手段と、前記判断手段により処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信手段と、を備えることを特徴とするものである。
【0010】
上記目的を達成するために、請求項2記載の本発明は、請求項1に記載の中継装置において、前記送信手段は、前記第1構築手段、および前記第2構築手段の少なくとも1つの構築手段により構築されるVPNを介して前記他方の通信装置のIPアドレスと、前記VPN構築情報とを送信することを特徴とするものである。
【0011】
上記目的を達成するために、請求項3記載の本発明は、請求項1または2に記載の中継装置であって、前記第1構築手段によりVPNが構築される際、および前記第2構築手段によりVPNが構築される際の通信相手の認証に用いられるパラメータと異なる前記認証パラメータを生成する生成手段を備え、前記送信手段は、前記生成手段により生成された認証パラメータを前記他方の通信装置に送信することを特徴とするものである。
【0012】
上記目的を達成するために、請求項4記載の本発明は、請求項1〜3のいずれかに記載の中継装置であって、前記検出手段は、前記復号する処理、および暗号化する処理に含まれるデータのうち、リアルタイム性が求められるデータの変換処理負荷を前記処理負荷の一部として検出し、前記判断手段が、処理負荷が大きいと判断すると、前記送信手段は、前記複数の通信装置のうち、リアルタイム性が求められるデータを送信、および受信する前記第1通信装置と前記第2通信装置とを抽出し、少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記VPN構築情報と、を送信することを特徴とするものである。
【0013】
上記目的を達成するために、請求項5記載の本発明は、請求項1〜4のいずれかに記載の中継装置であって、前記送信手段は、前記判断手段が、処理負荷が大きいと判断した後に、前記検出手段により検出された処理負荷が閾値よりも小さくなったと判断した場合、前記第1通信装置、および前記第2通信装置に負荷軽減通知を送信することを特徴とするものである。
【0014】
上記目的を達成するために、請求項6記載の本発明は、複数の通信装置が中継装置を介して暗号化通信する暗号化通信システムであって、前記中継装置は、前記複数の通信装置のIPアドレスを記憶する記憶手段と、前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築手段と、前記第1構築手段により構築されたVPNを介して暗号化されたデータを受信する中継装置受信手段と、前記中継装置受信手段により受信されたデータを復号する復号手段と、前記復号手段により復号されたデータに指定された宛先のIPアドレスから前記中継装置受信手段により受信されたデータを送信する第2通信装置のIPアドレスを前記記憶手段から抽出する抽出手段と、前記第2通信装置との間でVPNを構築する第2構築手段と、データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出手段と、前記検出手段により検出された処理負荷が閾値よりも大きいか否かを判断する判断手段と、前記判断手段により処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する中継装置送信手段と、を備え、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置は、前記他方の通信装置のIPアドレスと、前記VPN構築情報と、を受信する通信装置受信手段と、前記通信装置受信手段により受信された前記他方の通信装置のIPアドレスで指定される通信装置と、前記認証パラメータに基づきVPNを構築する通信装置構築手段と、前記通信装置構築手段により構築されたVPNを介して暗号化されたデータを前記他方の通信装置に送信する通信装置送信手段と、を備えることを特徴とするものである。
【0015】
上記目的を達成するために、請求項7記載の本発明は、複数の通信装置と暗号化通信する中継装置に使用される暗号化通信方法であって、前記複数の通信装置のうちの第1通信装置との間で構築されたVPNを介して暗号化されたデータを受信する受信ステップと、前記受信ステップにより受信されたデータを復号する復号ステップと、前記復号ステップにより復号されたデータに指定された宛先のIPアドレスから前記受信ステップにより受信されたデータを送信する第2通信装置のIPアドレスを、前記複数の通信装置のIPアドレスを記憶する記憶手段から抽出する抽出ステップと、データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出ステップと、前記検出ステップにより検出された処理負荷が閾値よりも大きいか否かを判断する判断ステップと、前記判断ステップにより処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信ステップと、を備えることを特徴とする方法である。
【0016】
上記目的を達成するために、請求項8記載の本発明は、複数の通信装置と暗号化通信する中継装置を制御するコンピュータに、前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築ステップと、前記第1構築ステップにより構築されたVPNを介して暗号化されたデータを受信する受信ステップと、前記受信ステップにより受信されたデータを復号する復号ステップと、前記復号ステップにより復号されたデータに指定された宛先のIPアドレスから前記第1受信ステップにより受信されたデータを送信する第2通信装置のIPアドレスを、前記複数の通信装置のIPアドレスを記憶する記憶手段から抽出する抽出ステップと、データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出ステップと、前記検出ステップにより検出された処理負荷が閾値よりも大きいか否かを判断する判断ステップと、前記判断ステップにより処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信ステップと、を実行させることを特徴とするプログラムである。
【発明の効果】
【0017】
請求項1記載の中継装置によれば、判断手段により処理負荷が大きいと判断された場合、第1通信装置と第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、VPN構築情報とが送信される。これにより、他方の通信装置のIPアドレス、およびVPN構築情報を受信した一方の通信装置は、中継装置を介さずに、他方の通信装置とVPNを介した暗号化通信を行うことが可能である。すなわち、中継装置において、データを復号する処理、およびデータを暗号化する処理の変換処理負荷が軽減される。従って、第2通信装置へ送信されるべきデータが遅れて送信される場合、または第2通信装置へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0018】
請求項2記載の中継装置によれば、他方の通信装置のIPアドレスと、VPN構築情報とが、中継装置の少なくとも1つの構築手段により構築されるVPNを介して一方の通信装置に送信される。従って、他方の通信装置のIPアドレスと、VPN構築情報とが、上記構築手段により構築されるVPNを介さずに一方の通信装置に送信されるよりも、IPアドレスと、VPN構築情報とが、第1通信装置、第2通信装置、および中継装置以外の他の装置に漏洩することを抑えることが出来る。
【0019】
請求項3記載の中継装置によれば、第1構築手段、または第2構築手段によりVPNが構築される際の通信相手の認証に用いられるパラメータと異なる認証パラメータが生成される。すなわち、認証パラメータは、中継装置で新規に生成される。第1構築手段、または第2構築手段によりVPNが構築される際の通信相手の認証に用いられるパラメータと同じ認証パラメータがVPN構築情報に含まれると、第1通信装置、第2通信装置、および中継装置が同じ認証パラメータを保持することになる。認証パラメータが複数の通信装置に保持されると、通信装置と一意に認証することが出来なくなる可能性がある。これに対し、請求項3記載の中継装置は、第1構築手段、または第2構築手段によりVPNが構築される際の通信相手の認証に用いられるパラメータと異なる認証パラメータが生成される。この認証パラメータは、第1通信装置、および第2通信装置に送信され、第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる。よって、第1通信装置、第2通信装置、および中継装置が同じ認証パラメータで認証されることが無い。従って、各通信装置を一意に認証することが出来る。これと共に、認証パラメータが中継装置において生成されるので、認証パラメータの管理が容易になる。従って、第1通信装置と第2通信装置とがVPNを構築する際の通信相手の認証の精度を高く出来ると共に、認証パラメータの管理を容易にすることが出来る。
【0020】
請求項4記載の中継装置によれば、リアルタイム性が求められるデータを送信、および受信する第1通信装置と第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスとVPN構築情報とが送信される。リアルタイム性が求められるデータは、音声通信などに使用される。このリアルタイム性が求められるデータが含まれる第1通信装置と第2通信装置との間の暗号化通信が、中継装置を介さずに実行される。従って、第2通信装置へ送信されるべきリアルタイム性が求められるデータが遅れて送信される場合、または第2通信装置へ送信されるべきリアルタイム性が求められるデータが送信されない場合の発生頻度を低減させることが出来る。
【0021】
請求項5記載の中継装置によれば、負荷軽減通知を受信した第1通信装置、および第2通信装置は、再び、中継装置を介した暗号化通信を行うことが可能である。中継装置の処理負荷が閾値を超えていないので、負荷軽減通知を受信した第1通信装置、および第2通信装置が中継装置を介して暗号化通信を行っても、第2通信装置へ送信されるべきデータが遅れて送信される場合、または第2通信装置へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0022】
請求項6記載の暗号化通信システムによれば、判断手段により処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、VPN構築情報とが送信される。いずれか一方の通信装置は、受信された他方の通信装置のIPアドレスで指定される通信装置と、認証パラメータに基づきVPNを構築し、暗号化されたデータを構築されたVPNを介して他方の通信装置に送信する。これにより、他方の通信装置のIPアドレス、およびVPN構築情報を受信した一方の通信装置は、中継装置を介さずに、他方の通信装置とVPNを介した暗号化通信を行うことが可能である。すなわち、中継装置において、データを復号する処理、およびデータを暗号化する処理の変換処理負荷が軽減される。従って、第2通信装置へ送信されるべきデータが遅れて送信される場合、または第2通信装置へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0023】
請求項7記載の暗号化通信方法によれば、判断ステップにより処理負荷が大きいと判断された場合、第1通信装置、および第2通信装置に、他方の通信装置のIPアドレスと、VPN構築情報とが送信される。これにより、他方の通信装置のIPアドレス、およびVPN構築情報を受信した一方の通信装置は、中継装置を介さずに、他方の通信装置とVPNを介した暗号化通信を行うことが可能である。すなわち、中継装置において、データを復号する処理、およびデータを暗号化する処理の変換処理負荷が軽減される。従って、第2通信装置へ送信されるべきデータが遅れて送信される場合、または第2通信装置へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0024】
請求項8記載の暗号化通信プログラムによれば、判断ステップにより処理負荷が大きいと判断された場合、第1通信装置と第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、VPN構築情報とが送信される。これにより、他方の通信装置のIPアドレス、およびVPN構築情報を受信した一方の通信装置は、中継装置を介さずに、他方の通信装置とVPNを介した暗号化通信を行うことが可能である。すなわち、中継装置において、データを復号する処理、およびデータを暗号化する処理の変換処理負荷が軽減される。従って、第2通信装置へ送信されるべきデータが遅れて送信される場合、または第2通信装置へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【図面の簡単な説明】
【0025】
【図1】本発明の一実施形態に係る暗号化通信システム1の概要構成を示す図である。
【図2】暗号化通信システム1におけるルータ2のハードウェア図である。
【図3】SPDの内容を表す模式図である。
【図4】SADの内容を表す模式図である。
【図5】ルータ6の処理負荷が小さい場合の、暗号化パケットがPC7からPC8へ送信される際の処理を表すシーケンス図である。
【図6】ルータ6の処理負荷が大きい場合の、暗号化パケットがPC7からPC8へ送信される際の処理を表すシーケンス図である。
【図7】VPNがメインモードで構築される際の処理を表すシーケンス図である。
【図8】VPNがアグレッシブモードで構築される際の処理を表すシーケンス図である。
【図9】暗号化パケットの内容を表す模式図である。
【図10】ルータ6の負荷検出処理を示すフローチャートである。
【図11】テーブル1の内容を表す模式図である。
【図12】テーブル2の内容を表す模式図である。
【図13】ルータ6の切替対象決定処理を示すフローチャートである。
【図14】ルータ6の処理負荷が、再び小さくなった場合の、暗号化パケットがPC7からPC8へ送信される際の処理を表すシーケンス図である。
【発明を実施するための形態】
【0026】
図1を参照して本発明の一実施形態に係る暗号化通信システム1について説明する。図1は、暗号化通信ステムの概要構成を示す図である。
【0027】
暗号化通信システム1は、ルータ2〜6と、パーソナルコンピュータ(PC)7〜10とを備える。PC7〜10は、ルータ2〜5とLANを介して接続する。ルータ2〜5は、ルータ6とVPNを構築する。VPNは、インターネットに構成される仮想的な私設網である。すなわち、ルータ2〜6はVPNゲートウェイである。ルータ2、ルータ3が、それぞれ本発明の第1通信装置、および第2通信装置の一例である。ルータ6が本発明の中継装置の一例である。
【0028】
ルータ2〜5は、それぞれPC7〜10から送信されたパケットを暗号化する。次に、ルータ2〜5は、暗号化されたパケットをルータ6に送信する。ルータ6は、暗号化されたパケットを受信すると、この暗号化されたパケットを復号する。次に、ルータ6は、復号されたパケットをルータ2〜5に送信する。ルータ2〜5は、暗号化されたパケットを復号する。ルータ2〜5は、復号したパケットを、PC7〜10に送信する。すなわち、PC7〜10から送信されたパケットはルータ6を介してPC7〜10に送信される。この暗号化通信の形態はハブ&スポーク型と呼ばれ、ルータ2〜5がスポーク、ルータ6がハブに相当する。
【0029】
本実施形態では、例えば、インターネットに構築されるVPNを介して暗号化通信が行われる際に、IPsec(Security Architecture for Internet Protocol)が採用される。IPsecは、ネットワーク層でデータを暗号化するプロトコルである。
【0030】
IPsecはAH(Authentication Header)、ESP(Encapsulated Security Payload)、IKE(Internet Key Exchange)などの複数のプロトコルから構成される。これらのプロトコルは公知であるので簡単に説明する。
【0031】
AHは認証機能を有するセキュリティプロトコルである。ESPは、ペイロード部に対して暗号化するセキュリティプロトコルである。IKEは鍵交換を行うプロトコルである。
【0032】
[ルータのハードウェア構成]
図2を参照して、ルータ2のハードウェア構成を説明する。ルータ3〜6のハードウェア構成は、ルータ2のハードウェア構成と同等であるので、説明を省略する。ルータ2は、CPU21、フラッシュメモリ22、RAM23、WAN側のイーサネット(登録商標)インタフェース24、およびLAN側のイーサネット(登録商標)インタフェース25を備える。CPU21、フラッシュメモリ22、RAM23、WAN側のイーサネット(登録商標)インタフェース24、およびLAN側のイーサネット(登録商標)インタフェース25はバスを介して接続される。フラッシュメモリ22は、CPU21により処理される後述のVPN構築処理などの制御プログラムを記憶する。フラッシュメモリ22は後述するSAD(Security Association Database)として、SA(Security Association)を記憶する。フラッシュメモリ22は、SPD(Security Policy Database)として、SP(Security Policy)を記憶する。フラッシュメモリ22が本発明の記憶手段の一例である。
【0033】
RAM22は、CPU21が制御プログラムを実行する際の一時的なデータを記憶する。CPU21が本発明のコンピュータの一例である。
【0034】
WAN側のイーサネット(登録商標)インタフェース24は、LANケーブルが接続されるポートを含み、ルータ6との間でIP網に構築されたVPNを介して暗号化されたパケットの送受信を行う。LAN側のイーサネット(登録商標)インタフェース25は、LANケーブルが接続されるポートを含み、LANケーブルを介してPC7との間で暗号化されていないパケットの送受信を行う。
【0035】
図3を参照して、SPDを説明する。SPDはSPを記憶するデータベースである。SPは、暗号化通信が可能な2つのルータとの間で暗号化通信を行うか否かを示す情報である。SPは、送信元アドレス、宛先アドレス、上位層プロトコル、および動作などを記憶している。送信元アドレスは、パケットの送信元のPCのIPアドレスである。宛先アドレスは、パケットの宛先のPCのIPアドレスである。上位層プロトコルは、ペイロード部を含むパケットのプロトコルである。動作は、暗号化通信を行うか否かの情報である。
【0036】
図4を参照して、SADを説明する。SADはSAを記憶するデータベースである。SAは、暗号化通信を行う2つのルータとの間で確立されるコネクションである。SAは、送信元アドレス、宛先アドレス、始点アドレス、終点アドレス、セキュリティプロトコル、SPI(Security Parameter Index)、暗号鍵、および暗号化アルゴリズムなどを記憶する。始点アドレスは、暗号化されたパケットを送信するルータのIPアドレスである。終点アドレスは、暗号化されたパケットが受信されるルータのIPアドレスである。セキュリティプロトコルとしては、AH、またはESPが指定される。SPIはSAを識別する情報である。暗号鍵は、2つのルータの間で暗号化通信が実行される際に、パケットの暗号化に使用される鍵である。暗号化アルゴリズムは、3DES−CBC、DES−CBCなどのアルゴリズムである。
【0037】
図5、および図6を参照して、PC7からPC8にパケットが送信される際のシーケンスを説明する。図5、および図6において、ルータ6のCPU21が実行する処理を、VPN制御部が実行する処理、切替制御部が実行する処理、および負荷監視部が実行する処理として説明する。図5、および図6に示す記憶部は、ルータ6のフラッシュメモリ22である。
【0038】
[ルータ6の処理負荷が小さい場合の動作]
S1において、ルータ2のVPN制御部とルータ6のVPN制御部がVPNを構築する。次に、S2においてルータ6のVPN制御部とルータ3のVPN制御部がVPNを構築する。S1の処理が本発明の第1構築手段の一例である。S2が本発明の第2構築手段の一例である。
【0039】
S1、およびS2におけるVPNの構築について、図7、および図8を参照して説明する。図7、および図8は、ルータ2とルータ6との間にVPNが構築されるS1の処理の一例を示す。VPNが構築されるには、暗号化通信が実行される2つのルータの間において、SAが生成されなければならない。SAはIKE(Internet Key Exchange)により、動的に生成される。このSAの生成過程において、ルータ2のVPN制御部、およびルータ6のVPN制御部はフェーズ1とフェーズ2と呼ばれる公知の処理を実行する。フェーズ1は、メインモードとアグレッシブモードとのどちらか一方のモードにより処理される。フェーズ1、およびフェーズ2の処理の実行が完了すると、ルータ2とルータ6との間にVPNが構築される。図7はメインモードでフェーズ1の処理が実行されるシーケンス図である。図8はアグレッシブモードでフェーズ1の処理が実行されるシーケンス図である。
【0040】
[メインモード]
図7に示すS101において、ルータ2は、ISAKMP SA生成要求をルータ6に送信する。このISAKMP SA生成要求は、ルータ2とルータ6との間でISAKMP SAの生成を提案するパケットである。ISAKMP SAは、IKEによりSAが自動的に生成される場合のIKEの制御用チャネルである。この提案パケットをルータ6に送信すると、S102に処理を移行する。
【0041】
提案パケットは、ISAKMP SAを確立するためのパラメータを含む。このパラメータは、暗号化アルゴリズム、ハッシュアルゴリズム、認証方式、およびDiffie−Hellman交換に使用されるパラメータなどである。
【0042】
暗号化アルゴリズムは、ISAKMP SAが暗号化される際のアルゴリズムである。この暗号化アルゴリズムは、3DES−CBC、DES−CBCなどから後述するS102において1つ指定される。
【0043】
ハッシュアルゴリズムは、ISAKMP SAの確立過程において認証に使用されるアルゴリズムである。このハッシュアルゴリズムはSHA−1、MD5などから1つ指定される。
【0044】
認証方式は、通信先のルータを認証する際の方式である。認証方式は、PSK(Pre−Shared Key)認証、公開鍵認証から1つ指定される。以降の記載では、PSK認証がパラメータとして指定されたとする。
【0045】
Diffie−Hellman交換に使用されるパラメータは、Diffie−Hellman交換により共通鍵が生成される際に使用されるパラメータである。
【0046】
S102において、ルータ6は、受信されたISAKMP SAの生成要求に含まれるパラメータの認証を行う。パラメータの認証を行うと、ISAKMP SAの生成を受諾すると判断し、ISAKMP SAの生成の受諾を通知するパケットをルータ2に送信する。この通知パケットをルータ2に送信すると、S103、およびS104に処理を移行する。
【0047】
S103、およびS104において、ルータ2、およびルータ6は乱数を発生する。乱数の発生を終了すると、S105、およびS106に処理を移行する。
【0048】
S105、およびS106において、ルータ2、およびルータ6は、発生された乱数を他方のルータ2、6に送信する。この乱数の送受信は、Diffie−Hellman交換と呼ばれる。乱数の送信が終了すると、S107、およびS108に処理を移行する。
【0049】
S107において、ルータ2はS103で発生した乱数と、S106で受信した乱数とから共通鍵を生成する。S108において、ルータ6はS104で発生した乱数と、S105で受信した乱数とから共通鍵を生成する。すなわち、ルータ2とルータ6とは、同じ共通鍵を生成する。共通鍵の生成が終了すると、S109に処理を移行する。
【0050】
S109において、ルータ2は、ルータ2とルータ6との間で予め設定されるPSKからハッシュ値を生成する。このPSKは、ルータ2、およびルータ6のIPアドレスと対応付けてルータ2、ルータ6の記憶部に記憶される。ルータ2は、生成されたハッシュ値をルータ6に送信する。このハッシュ値は、S107において生成された共通鍵により暗号化されてルータ6に送信される。ハッシュ値の送信が終了すると、S110に処理を移行する。
【0051】
S110において、ルータ6は、S108において生成された共通鍵を用いて、ハッシュ値を復号する。復号されたハッシュ値と、送信元のアドレスに付与されたルータ2のIPアドレスから、S101〜S109の処理において、通信しているルータがルータ2であることを認証する。通信しているルータがルータ2であると判断すると、S111に処理を移行する。すなわち、PSKはVPNを構築する際の、通信相手の認証に用いられる。
【0052】
S111において、ルータ6は、ルータ2とルータ6との間で予め設定されるPSKからハッシュ値を生成する。このハッシュ値は、S108において生成された共通鍵により暗号化されてルータ6に送信される。ハッシュ値の送信が終了すると、S112に処理を移行する。
【0053】
S112において、ルータ2は、S107において生成された共通鍵からハッシュ値を復号する。復号されたハッシュ値と送信元のアドレスに付与されたルータ6のIPアドレスとに基づき、S101〜S109の処理において、通信しているルータがルータ6であることを検証する。通信しているルータがルータ6であると判断すると、S113に処理を移行する。
【0054】
S101〜S112の処理は、フェーズ1と呼ばれる。S101〜S112の処理により、ISAKMP SAが確立される。以降のS113〜S116において、ルータ2とルータ6との間で送受信されるパケットはISAKMP SAの確立過程において生成された共通鍵により暗号化される。
【0055】
S113において、ルータ2は、IPsec SA生成要求をルータ6に送信する。このIPsec SA生成要求は、ルータ2とルータ6との間でIPsec SAの生成を提案するパケットである。ルータ2は、乱数、暗号化アルゴリズム、セキュリティプロトコルを提案パケットに付与する。S113において、提案パケットに付与される乱数は、ルータ2、およびルータ6に接続されたPCとの間で通信が実行される際に、パケットの暗号化に使用される暗号鍵を生成するための乱数である。暗号化アルゴリズムは、3DES−CBC、DES−CBCなどのアルゴリズムである。セキュリティプロトコルとしては、AH、またはESPが指定される。この提案パケットをルータ6に送信すると、S114に処理を移行する。
【0056】
S114において、ルータ6は、ルータ2とルータ6との間でIPsec SAの生成を受諾すると、ルータ6は、受信した提案パケットに付与された乱数から暗号鍵を生成する。鍵の生成が終了すると、S115に処理を移行する。
【0057】
S115において、ルータ6は、IPsec SAの生成の受諾を通知するパケットをルータ2に送信する。ルータ6はこの通知パケットに乱数を付与する。この通知パケットをルータ2に送信すると、S116に処理を移行する。
【0058】
S116において、ルータ2は通知パケットに付与された乱数から暗号鍵を生成する。暗号鍵の生成が終了すると、IPsec SAが確立されたこと通知する確立通知パケットをルータ6に送信する。
【0059】
S113〜S116の処理は、フェーズ2と呼ばれる。VPNは、S101〜S112の処理であるフェーズ1と、S113〜S116の処理であるフェーズ2とが実行されることにより構築される。すなわち、2つのルータ間でVPNが構築されるためには、ルータ2とルータ6との間でPSKが設定されていなければならない。VPNが構築されると、ルータ2とルータ6との記憶部に記憶されたSADの始点アドレス、および終点アドレスと対応付けて、セキュリティプロトコル、暗号鍵、暗号化アルゴリズムが記憶される。この際、SAを識別するSPIがSAに付与される。ルータ2からルータ6へ送信される暗号化パケットのSAと、ルータ6からルータ2へ送信される暗号化パケットのSAとの2つのSAが作成される。
【0060】
[アグレッシブモード]
図8を参照して、アグレッシブモードを説明する。S201において、ルータ2は乱数を生成する。乱数の生成が終了すると、S202に処理を移行する。
【0061】
S202において、ルータ2は、ISAKMP SA生成要求を送信する。このISAKMP SA生成要求は、S201において生成された乱数を含む。ISAKMP SA生成要求を送信すると、S203に処理を移行する。
【0062】
S203において、ルータ6は、乱数を生成する。乱数を生成すると、S204に処理を移行する。
【0063】
S204において、ルータ6は、ISAKMP SAの生成要求に含まれるパラメータを認証する。このパラメートを認証すると判断すると、ISAKMP SAの生成の受諾を通知するパケットをルータ2に送信する。この通知パケットは、S203において生成された乱数と、ルータ2とルータ6との間で予め設定されるPSKから生成されるハッシュ値とを含む。通知パケットをルータ2に送信すると、S205に処理を移行する。
【0064】
S205において、ルータ2は、受信された通知パケットに含まれるハッシュ値と、送信元のアドレスに付与されたルータ6のIPアドレスとに基づき、S201〜S204の処理において、通信しているルータがルータ6であることを認証する。通信しているルータがルータ6であると判断すると、S206に処理を移行する。
【0065】
S206において、ルータ2は、受信された通知パケットに含まれる乱数から共通鍵を生成する。共通鍵の生成が終了すると、S207に処理を移行する。
【0066】
S207において、ルータ2は、ルータ2とルータ6との間で予め設定されるPSKから生成されるハッシュ値を含む認証パケットをルータ6に送信する。認証パケットの送信が終了すると、S208に処理を移行する。このハッシュ値は、S206において生成された共通鍵により暗号化される。
【0067】
S208において、ルータ6は認証パケットに含まれるハッシュ値と、送信元のアドレスに付与されたルータ2のIPアドレスとに基づき、S201〜S204の処理において、通信しているルータがルータ2であることを認証する。通信しているルータがルータ6であると判断すると、アグレッシブモードにおけるフェーズ1を終了し、フェーズ2の処理に移行する。
【0068】
図5に戻り、説明を続ける。以下の記載において、パケットの内容を示す図9を参照して説明する。S3において、ルータ2のVPN制御部は、PC7から暗号化されていないパケットを受信する。このパケットは、図9(a)に示すように、PC8のIPアドレスが宛先のIPアドレスに指定され、PC7のIPアドレスが送信元のIPアドレスに指定されているパケットである。このパケットのペイロード部にRTP(Real−time Transport Protocol)に従うデータが含まれているとして説明する。ルータ2のVPN制御部が、PC7から送信されたパケットを受信すると、S4に処理を移行する。
【0069】
S4において、ルータ2のVPN制御部は、ルータ2の記憶部に記憶されたSPDを参照する。PC7から送信されたパケットの宛先IPアドレス、送信元のIPアドレス、およびペイロード部のプロトコルに一致するSPがあるか否かを判断する。SPがあると判断すると、そのSPの動作に示される通信方法で宛先のPC8にパケットを送信すると判断する。SPが無いと、宛先のPC8にパケットを送信しないと判断する。以降の記載では、SPの動作にIPSecが記憶されているとして、暗号化通信でパケットが送信される場合を説明する。暗号化通信でパケットを送信すると判断すると、SADを参照する。次に、パケットに付与された宛先IPアドレス、送信元のIPアドレス、およびペイロード部のプロトコルと一致し、始点アドレスが、ルータ2のIPアドレスであるSAから、暗号鍵、および暗号化アルゴリズムを抽出する。次に、PC7から送信されたパケットをこの暗号鍵、および暗号化アルゴリズムにより暗号化する。暗号化されたパケットに、宛先のルータのIPアドレス、送信元のルータのIPアドレス、およびSAに指定されたSPIを付与する。宛先のルータのアドレスには、終点アドレスであるルータ6のIPアドレスが付与される。送信元のルータのアドレスには、始点アドレスであるルータ2のIPアドレスが付与される。暗号化が終了すると、S5に処理を移行する。図9(b)に暗号化されたパケットを示す。終点アドレス、始点アドレス、およびSPIが、この暗号化されたパケットに付与される。以降の記載において、ルータ2とルータ6との間で使用される暗号鍵、暗号化方式をそれぞれ第1暗号鍵、第1暗号化アルゴリズムとする。宛先のルータのアドレスは、予めSAの終点アドレスとして記憶部に記憶されている。すなわち、宛先のルータのIPアドレスが記憶部に記憶されていないと、そのルータと暗号化通信を行うことは出来ない。
【0070】
S5において、ルータ2のVPN制御部は、暗号化されたパケットをルータ6のVPN制御部に送信する。この暗号化されたパケットは、S1において構築されたVPNを介して、ルータ6のVPN制御部に送信される。ルータ6のVPN制御部は、ルータ2のVPN制御部から送信された暗号化パケットを受信する。ルータ6のVPN制御部が、暗号化パケットを受信すると、S6に処理を移行する。以降の記載において、暗号化されたパケットを暗号化パケットと記載する。S6に示す、ルータ6のVPN制御部の暗号化パケットを受信する処理が、本発明の受信手段の一例である。
【0071】
S6において、ルータ2のVPN制御部から送信された暗号化パケットを受信したルータ6のVPN制御部は、暗号化パケットに付与されたSPIを参照し、第1暗号鍵、および第1暗号化アルゴリズムをルータ6の記憶部に記憶されたSADから抽出する。この第1暗号鍵、および第1暗号化アルゴリズムにより、暗号化パケットを復号する。復号が終了すると、S7に処理を移行する。復号されたパケットは、図9(a)に示すPC7から送信されたパケットと同じである。S6の処理が、本発明の復号手段の一例である。
【0072】
S7において、ルータ6のVPN制御部は、復号されたパケットに含まれる送信元アドレス、宛先アドレス、プロトコル、およびパケットサイズをルータ6の記憶部に記憶する。この処理は、後述する。すなわち、PC7のIPアドレスが送信元アドレス、PC8のIPアドレスが宛先アドレス、ペイロード部に含まれるデータのプロトコルであるRTPがプロトコル、およびペイロード部に含まれるデータのサイズがパケットサイズである。復号されたパケットに含まれる各項目をを記憶部に記憶すると、S8に処理を移行する。
【0073】
S8において、ルータ6のVPN制御部は、ルータ6の記憶部に記憶されたSPDを参照する。PC7から送信されたパケットの宛先IPアドレス、送信元のIPアドレス、およびペイロード部のプロトコルに一致するSPがあるか否かを判断する。SPがあると判断すると、そのSPの動作に示される通信方法で宛先のPC8にパケットを送信すると判断する。SPが無いと、宛先のPC8にパケットを送信しないと判断する。暗号化通信でパケットを送信すると判断すると、SADを参照する。次に、パケットに付与された宛先IPアドレス、送信元のIPアドレス、およびペイロード部のプロトコルと一致し、始点アドレスが、ルータ6のIPアドレスであるSAから、暗号鍵、および暗号化アルゴリズムを抽出する。この暗号鍵、および暗号化アルゴリズムにより、PC7から送信されたパケットを暗号化する。S6において復号されたパケットに付与された宛先のIPアドレス、送信元のIPアドレス、およびペイロード部のプロトコルと一致し、始点アドレスが、ルータ6のIPアドレスであるSAから、終点アドレスに記憶されたルータのIPアドレスを抽出する。暗号化されたパケットに、宛先のルータのIPアドレス、送信元のルータのIPアドレス、およびSAに指定されたSPIを付与する。宛先のルータのアドレスは、抽出された終点アドレスであるルータ3のIPアドレスであり、送信元のルータのアドレスは、始点アドレスであるルータ6のIPアドレスである。暗号化が終了すると、S9に処理を移行する。以降の記載において、ルータ6とルータ3との間で使用される暗号鍵、暗号化アルゴリズムをそれぞれ第2暗号鍵、第2暗号化アルゴリズムとする。S8の処理が、本発明の抽出手段の一例である。
【0074】
S9において、ルータ6のVPN制御部は、暗号化パケットをルータ3のVPN制御部に送信する。暗号化パケットの送信が終了すると、S10に処理を移行する。
【0075】
S10において、ルータ6のVPN制御部から送信された暗号化パケットを受信したルータ3のVPN制御部は、暗号化パケットに付与されたSPIを参照し、第2暗号鍵、および第2暗号化アルゴリズムをルータ3の記憶部に記憶されたSADから抽出する。この第2暗号鍵、および第2暗号化アルゴリズムにより、暗号化パケットを復号する。復号が終了すると、S11に処理を移行する。
【0076】
S11において、ルータ3のVPN制御部は、復号されたパケットのヘッダーに含まれる宛先アドレスを参照して、PC8にパケットを送信する。
【0077】
[ルータの処理負荷が大きい場合の動作]
負荷が大きくなった場合のシーケンスを、図6を参照して説明する。S21において、ルータ6の負荷監視部は、記憶部に記憶されているパケット量に基づき、現在の負荷を検出する。このS21の負荷検出処理は、定期的に実行される。負荷検出の具体的な処理は後述する。現在の負荷を検出するとS22に処理を移行する。S21の処理が、本発明の検出手段の一例である。
【0078】
S22において、負荷監視部は、負荷が、閾値よりも大きいか否かを判断する。この閾値は、予め設定されて、ルータ6の記憶部に記憶される。検出された負荷が閾値よりも大きいと判断した場合、S23に処理を移行する。検出された負荷が閾値よりも小さいと判断した場合は、ハブ&スポーク型で暗号化通信が行われる。S22の処理が、本発明の判断手段の一例である。
【0079】
S23において、負荷監視部は、切替要求を切替制御部に送信する。切替要求は、ルータ6を介さずに暗号化通信する要求である。切替要求を切替制御部に送信すると、S24に処理を移行する。
【0080】
S24において、切替要求を受信した切替制御部は、ルータ6を介さずに暗号化通信させる切替対象をルータ6の記憶部から取得する。切替対象はルータ2〜5の何れかの2つのルータである。具体的に、送信元アドレス、宛先アドレス、始点アドレス、および終点アドレスを切替対象の情報として抽出する。具体的な切替対象の取得処理は、後述する。切替対象の抽出が終了すると、S25に処理を移行する。以下の記載において、切替対象をルータ2、およびルータ3として説明する。また、切替対象にルータ6は含まれない。
【0081】
S25において、切替制御部は、PSKを生成する。このPSKは、ルータ2とルータ3との間でVPNを構築する際に使用される。このPSKは、S1、およびS2におけるVPNの構築の際のPSKと異なる。PSKの生成が終了すると、S26に処理を移行する。PSKが本発明の認証パラメータの一例である。S25の処理が、本発明の生成手段の一例である。
【0082】
S26において、切替制御部は、2つの接続情報パケットを生成する。接続情報パケットは、作成されたPSKと、PC7のアドレス、PC8のアドレス、ルータ2、およびルータ3のIPアドレスとをペイロード部に含む。接続情報パケットの生成が終了すると、S27に処理を移行する。接続情報パケットが本発明のVPN構築情報の一例である。
【0083】
S27において、切替制御部は、2つの接続情報パケットをルータ6のVPN制御部に送信し、S28に処理を移行する。
【0084】
S28において、2つの接続情報パケットを受信したルータ6のVPN制御部は、記憶部に記憶されたSADを参照し、接続情報パケットを暗号化する。一方の接続情報パケットは、第1暗号鍵、および第1暗号化アルゴリズムで暗号化される。他方の接続情報パケットは、第2暗号鍵、および第2暗号化アルゴリズムで暗号化される。接続情報パケットの暗号化が終了すると、S29に処理を移行する。
【0085】
S29において、ルータ6のVPN制御部は、第1暗号鍵、および第1暗号化アルゴリズムで暗号化された接続情報パケットに、ルータ2のIPアドレス、およびSPIを付与する。ルータ6のVPN制御部は、ルータ2のIPアドレス、およびSPIが付与された接続情報パケットをルータ2との間に構築されたVPNを介して、ルータ2のVPN制御部に送信する。ルータ6のVPN制御部は、第2暗号鍵、および第2暗号化方式で暗号化された接続情報パケットにルータ3のIPアドレス、およびSPIを付与する。ルータ6のVPN制御部は、ルータ3のIPアドレス、およびSPIが付与された接続情報パケットをルータ3との間に構築されたVPNを介して、ルータ3のVPN制御部に送信する。接続情報パケットの送信が終了すると、S30に処理を移行する。S29の処理が、本発明の送信手段の一例である。
【0086】
S30において、暗号化された接続情報パケットを受信したルータ2、およびルータ3のVPN制御部は、暗号化された接続情報パケットに付与されたSPIを参照し、第1暗号鍵、および第1暗号化アルゴリズム、または第2暗号鍵、および第2暗号化アルゴリズムを、記憶部に記憶されたSAから抽出する。この第1暗号鍵、および第1暗号化アルゴリズム、または第2暗号鍵、および第2暗号化アルゴリズムにより、暗号化された接続情報パケットを復号する。接続情報パケットの復号が終了すると、S31に処理を移行する。
【0087】
S31において、ルータ2のVPN制御部は、復号化された接続情報パケットに含まれるPC7のIPアドレス、PC8のIPアドレス、およびルータ3のIPアドレスに基づき、SAを抽出する。具体的に、ルータ2のVPN制御部は、宛先アドレスにPC7のIPアドレス、および送信元アドレスにPC8のIPアドレスが含まれるSAと、宛先アドレスにPC8のIPアドレス、および送信元アドレスにPC7のIPアドレスが含まれるSAとを抽出する。抽出されたSAに切替済みフラグを付与する。次に、ルータ2のVPN制御部は、新たにSAを作成する。新たに作成されるSAの宛先アドレス、送信元アドレス、およびプロトコルは、抽出されたSAの宛先アドレス、送信元アドレス、およびプロトコルと同じである。新たに作成されるSAは終点アドレス、および始点アドレスの一方にはルータ3のIPアドレスが記憶され、他方には、ルータ2のIPアドレスが記憶される。一方、ルータ3のVPN制御部は、復号化された接続情報パケットに含まれるPC7のIPアドレス、PC8のIPアドレス、およびルータ2のIPアドレスに基づき、SAを抽出する。具体的に、ルータ3のVPN制御部は、宛先アドレスにPC7のIPアドレス、および送信元アドレスにPC8のIPアドレスが含まれるSAと、宛先アドレスにPC8のIPアドレス、および送信元アドレスにPC7のIPアドレスが含まれるSAとを抽出する。抽出されたSAに切替済みフラグを付与する。次に、ルータ3のVPN制御部は、新たにSAを作成する。新たに作成されるSAの宛先アドレス、送信元アドレス、およびプロトコルは、抽出されたSAの宛先アドレス、送信元アドレス、およびプロトコルと同じである。新たに作成されるSAは終点アドレス、および始点アドレスの一方にはルータ2のIPアドレスが記憶され、他方には、ルータ3のIPアドレスが記憶される。新たなSAの作成、および切替済みフラグの付与が終了すると、S32に処理を移行する。
【0088】
S32において、ルータ2のVPN制御部は、接続情報パケットに含まれるPSKを使用して、ルータ2とルータ3との間でVPNを構築する。PSKは接続情報パケットに含まれ、ルータ2、およびルータ3のIPアドレスと対応付けて記憶部に記憶される。このVPN構築処理は、S1の処理と同様である。VPNの構築が終了すると、ルータ2、およびルータ3のVPN制御部は、VPNの構築過程において作成された暗号鍵、暗号化アルゴリズム、およびSPIを、S31において新たに作成されたSAに付与する。暗号鍵、暗号化アルゴリズム、およびSPIの付与が終了すると、S33に処理を移行する。以降の記載において、S32の処理において生成された暗号鍵、および暗号化アルゴリズムを第3暗号鍵、および第3暗号化アルゴリズムとする。
【0089】
S33において、ルータ2のVPN制御部は、ルータ6のVPN制御部に切替完了通知を送信する。この切替完了通知は、ルータ2とルータ3との間でVPNが構築されたことを示す通知である。切替完了通知を送信するとS34に処理を移行する。
【0090】
S34において、ルータ6のVPN制御部は、切替対象を記憶部に記憶する。すなわち、接続情報パケットを送信したルータを示す情報を記憶部に記憶する。具体的には、宛先アドレス、および送信元アドレスにPC7、およびPC8のIPアドレスが記憶され、始点アドレス、または終点アドレスにルータ2、またはルータ3のIPアドレスが付与されているSAに切替済みフラグを立てる。切替済みフラグを立てると、S35に処理を移行する。
【0091】
S35において、ルータ2のVPN制御部は、PC7から暗号化されていないパケットを受信する。このパケットは、図9(a)に示すように、PC8のIPアドレスが宛先アドレスに指定されているパケットである。PC7から送信されたパケットを受信すると、S36に処理を移行する。
【0092】
S36において、ルータ2のVPN制御部は、宛先アドレスに指定されたIPアドレス、および記憶部に記憶されたSPDを参照することにより、宛先のPC8に暗号化通信でパケットを送信することを判断する。暗号化通信でパケットを送信することを判断すると、記憶部に記憶され、切替済みフラグが付与されていないSAを参照する。SAは、終点アドレスがルータ3のIPアドレスであるので、第3暗号鍵、および第3暗号化アルゴリズムをSAから抽出する。次に、PC7から送信されたパケットを、第3暗号鍵、および第3暗号化アルゴリズムにより暗号化する。暗号化されたパケットのヘッダーに宛先アドレス、始点アドレス、およびSPIを付与する。ルータ3のIPアドレスが宛先アドレスに指定され、ルータ2のIPアドレスが始点アドレスに指定される。暗号化が終了すると、S37に処理を移行する。
【0093】
S37の処理において、ルータ2のVPN制御部は、暗号化パケットをルータ3のVPN制御部に送信する。暗号化パケットの送信が終了すると、S38に処理を移行する。
【0094】
S38において、ルータ3のVPN制御部は、ルータ2から送信された暗号化パケットを受信する。次に、暗号化パケットのヘッダーに付与されたSPIから第3暗号鍵、および第3暗号化アルゴリズムを抽出し、暗号化パケットを復号する。復号が終了するとS39に処理を移行する。
【0095】
S39において、ルータ3のVPN制御部は、復号されたパケットに指定された宛先IPアドレスに従い、PC8にパケットを送信する。
【0096】
[負荷検出処理]
図10を参照して、ルータ6の負荷監視部の処理である負荷検出処理を説明する。S301において、タイマをゼロにセットする。タイマをゼロにセットすると、S302に処理を移行する。
【0097】
S302において、図5に示すS6において復号されたパケットを、S6で復号された順に抽出する。復号されたパケットの抽出が終了すると、S303に処理を移行する。図5に示すS5においてルータ6に受信されたパケットは、CPU21により、復号される。次に、復号されたパケットは、CPU21により、暗号化される。CPU21がルータ6に受信されたパケットを復号、暗号化する変換処理が、本発明のデータを復号する処理、およびデータを暗号化する変換処理である。この変換処理によりCPU21にかかる負担が、本発明の変換処理負荷の一例である。
【0098】
S303において、抽出されたパケットのペイロード部に含まれるデータのプロトコルはリアルタイム性が求められるプロトコルであるか否かを判断する。リアルタイム性が求められるプロトコルは、RTP、UDP(User Datagram Protocol)、RTSP(Real Time Streaming Protocol)などが挙げられる。リアルタイム性があると判断すると、S304に処理を移行する。リアルタイム性がないと判断すると、S305に処理を移行する。
【0099】
S304において、ルータ6の記憶部に記憶されたテーブル1を選択する。図11にテーブル1の内容を示す。図11に示すように、テーブル1は、宛先アドレス、送信元アドレス、プロトコル、bps計測用フィールド、およびbpsフィールドの項目を1レコードとして記憶している。テーブル1の選択が終了すると、S306に処理を移行する。
【0100】
S305において、ルータ6の記憶部に記憶されたテーブル2を選択する。図12にテーブル2の内容を示す。図12に示すように、テーブル2は、宛先アドレス、送信元アドレス、プロトコル、bps計測用フィールド、およびbpsフィールドの項目を1レコードとして記録している。テーブル2の選択が終了すると、S306に処理を移行する。
【0101】
S306において、宛先アドレス、送信元アドレス、およびプロトコルが合致するレコードがテーブル1、またはテーブル2にあるか否かを判断する。レコードがあると判断すると、S307に処理を移行する。レコードがないと判断すると、S308に処理を移行する。
【0102】
S307において、合致したレコードのbps計測用フィールドを更新する。具体的には、復号されたパケットのペイロード部のデータサイズをbps計測用フィールドの値に加算する。更新が終了すると、S309に処理を移行する。
【0103】
S308において、ペイロード部に含まれるデータのプロトコルに従い、新規のレコードをテーブル1、またはテーブル2に登録する。登録が終了すると、復号パケットのペイロード部のデータサイズをbps計測用フィールドの値に加算する。新規のレコードの登録が終了すると、S309に処理を移行する。
【0104】
S309において、タイマが1秒経過したか否かを判断する。1秒経過したと判断すると、S310に処理を移行する。1秒経過していないと判断すると、S302に処理を移行する。
【0105】
S310において、テーブル1、およびテーブル2のbps計測用フィールドの値を全て対応するbpsフィールドに上書きする。次に、テーブルごとのbpsフィールドの和を計算する。次に、テーブル1のbpsフィールドの和とテーブル2のbpsフィールドの和とを足し合わせ、全てのbpsフィールドの和を算出する。全てのbpsフィールドの和を算出すると、S311に処理を移行する。全てのbpsフィールドの和が本発明の変換処理負荷の一例である。
【0106】
S311において、テーブル1、およびテーブル2の全てのbps計測用フィールドの値をゼロにする。全てのbps計測用フィールドの値をゼロにすると、S301に処理を移行する。
【0107】
[切替対象決定処理]
図13を参照して、ルータ6の負荷監視部、および切替制御部の切替対象決定処理を説明する。S401において、トラフィックが閾値を超えているか否かを判断する。具体的には、図10に示すS310において、算出された全てのbpsフィールドの和が予め定められた、閾値を超えているか否かを判断する。閾値を超えていると判断すると、S402に処理を移行する。超えていないと判断すると、S401に処理を移行する。S401の処理は、図6に示すS22の処理である。
【0108】
S402において、ルータ6の負荷監視部は切替要求を切替制御部に送信する。切替要求の送信が終了すると、S403に処理を移行する。S402の処理は、図6に示すS23の処理である。
【0109】
S403において、切替制御部は、bpsフィールドがゼロで無いレコードがテーブル1にあるか否かを判断する。bpsフィールドがゼロで無いレコードがテーブル1にあると判断するとS404に処理を移行する。bpsフィールドがゼロで無いレコードがテーブル1にない、または、レコードが1つもテーブル1にないと判断すると、S405に処理を移行する。
【0110】
S404において、切替制御部は、テーブル1のbpsフィールドがゼロで無いレコードを抽出する。次に、抽出されたレコードの宛先アドレス、および送信元アドレスに対応するルータごとのbpsフィールドの和を算出する。宛先アドレス、および送信元アドレスに対応する2つのルータがSADから抽出される。算出された和が一番大きいルータのIPアドレスがSADから抽出される。この2つのIPアドレスに対応する2つのルータを切替対象とする。切替対象のルータのIPアドレス、およびこのルータのIPアドレスとSAにおいて関連付けられた宛先アドレス、および送信元アドレスが、上述した接続情報パケットに含まれる。切替対象の決定が終了すると、S401に処理を移行する。
【0111】
S405において、切替制御部は、テーブル2の宛先アドレス、および送信元アドレスに対応するルータごとのbpsフィールドの和を算出する。算出された和が一番大きい2つのルータのIPアドレスをSADから抽出する。この2つのルータのIPアドレスに対応する2つのルータを切替対象とする。切替対象のルータのIPアドレス、およびこのルータのIPアドレスとSAにおいて関連付けられた宛先アドレス、および送信元アドレスが、上述した接続情報パケットに含まれる。切替対象の決定が終了すると、S401に処理を移行する。S404、またはS405の処理が図6に示すS24の処理である。
【0112】
[ルータの処理負荷が低くなったことを検出した場合の動作]
図14を参照して、ルータ2とルータ3との間でVPNが構築された状態において、ルータ6が、処理負荷が低くなったことを検出した場合を説明する。S51において、ルータ6の負荷監視部は、記憶部に記憶されたテーブル1とテーブル2とのbpsフィールドの総和が予め定められた閾値以下になったことを検出する。図10に示すS310の処理において、bpsフィールドの総和が予め定められた閾値以下になったことを検出すると、S52に処理を移行する。
【0113】
S52において、ルータ6の負荷監視部は、ルータ6の切替制御部に切替要求を送信する。切替要求の送信が終了すると、S53に処理を移行する。
【0114】
S53において、ルータ6の切替制御部は、図6に示すS34において、ルータ6の記憶部に記憶されたSADを参照し、切替済みフラグが立てられたSAを抽出する。抽出されたSAの始点アドレス、および終点アドレスに対応するルータを切替済み端末として抽出する。切替済み端末の抽出が終了すると、S54に処理を移行する。以降の記載では、切替済み端末をルータ2、およびルータ3として説明する。
【0115】
S54において、ルータ6の切替制御部は、切断情報パケットを生成する。切断情報パケットは、ペイロード部にルータ2、およびルータ3のIPアドレスを含む。切断情報パケットの生成が終了すると、S55に処理を移行する。切断情報パケットが、本発明の負荷軽減通知の一例である。
【0116】
S55において、切断情報パケットをルータ6のVPN制御部に送信する。切断情報パケットの送信が終了すると、S56に処理を移行する。
【0117】
S56において、ルータ6のVPN制御部は、ルータ2、およびルータ3に切断情報パケットを送信する。切断情報パケットの送信が終了すると、S57に処理を移行する。
【0118】
S57において、ルータ2のVPN制御部は、切断処理を実行する。ルータ2のVPN制御部は、切断情報パケットに含まれるルータ2、およびルータ3のIPアドレスを参照し、SAの始点アドレスがルータ2のIPアドレス、および終点アドレスがルータ3のIPアドレスであるSAを抽出する。抽出されたSAをSADから削除する。次に、切替済みフラグが付与されたSA、かつ始点アドレスがルータ2のIPアドレス、および終点アドレスがルータ6のIPアドレスであるSAを抽出する。この抽出されたSAに付与された切替済みフラグを削除する。S57において、ルータ3のVPN制御部は、切断情報パケットに含まれるルータ2、およびルータ3のIPアドレスを参照し、SAの始点アドレスがルータ3のIPアドレス、および終点アドレスがルータ2のIPアドレスであるSAを抽出する。抽出されたSAをSADから削除する。次に、切替済みフラグが付与されたSA、かつ始点アドレスがルータ3のIPアドレス、および終点アドレスがルータ6のIPアドレスであるSAを抽出する。この抽出されたSAに付与された切替済みフラグを削除する。切断処理が完了すると、S58に処理を移行する。
【0119】
S58において、ルータ2のVPN制御部、およびルータ3のVPN制御部は、切断完了通知をルータ6に送信する。切断完了通知は、S57におけるSAの削除および切替済みフラグの削除を示す。切断完了通知の送信が終了すると、S59に処理を移行する。
【0120】
S59において、ルータ6の切替制御部は、切替対象を削除する。具体的には、ルータ6のVPN制御部は、記憶部に記憶されたSAのうち、始点アドレス、および終点アドレスがルータ2、およびルータ3のIPアドレスであるSAに付与された切替済みフラグを削除する。
【0121】
S60〜S65において、ルータ2のVPN制御部は、PC7から送信されたパケットを暗号化通信でルータ3に送信する。この処理は、図5に示すS3〜S9の処理と同様である。S66、およびS67において、ルータ3のVPN制御部は、ルータ6から送信された暗号化パケットを復号し、復号されたパケットをPC8に送信する。この処理は、図5に示すS10、およびS11の処理と同様である。
【0122】
[実施形態の効果]
本実施形態のルータ6によれば、S22において処理負荷が大きいと判断された場合、S29においてルータ2とルータ3との少なくともいずれか一方のルータに、他方のルータのIPアドレスと、接続情報パケットが送信される。これにより、他方のルータのIPアドレス、および接続情報パケットを受信した一方のルータは、ルータ6を介さずに、他方のルータとVPNを介した暗号化通信を行うことが可能である。すなわち、ルータ6において、パケットを復号する処理、およびパケットを暗号化する処理の変換処理負荷が軽減される。従って、ルータ3へ送信されるべきデータが遅れて送信される場合、またはルータ3へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0123】
本実施形態のルータ6によれば、他方のルータのIPアドレスと、接続情報パケットとが、S1、またはS2により構築されるVPNを介して一方のルータに送信される。従って、他方のルータのIPアドレスと、接続情報パケットとが、VPNを介さずに一方のルータに送信されるよりも、IPアドレスと、接続情報パケットとが、ルータ2、ルータ3、およびルータ6以外の他の装置に漏洩することを抑えることが出来る。
【0124】
本実施形態のルータ6によれば、S1の処理、またはS2の処理によりVPNが構築される際の通信相手の認証に用いられるPSKと異なるPSKが、S25において生成される。すなわち、認証パラメータは、ルータ6で新規に生成される。PSKが、S1の処理、またはS2の処理によりVPNが構築される際の通信相手の認証に用いられるPSKと同じPSKが接続情報パケットに含まれると、ルータ2、ルータ3、およびルータ6が同じPSKを保持することになる。PSKが複数のルータに保持されると、VPNを構築するルータと一意に認証することが出来なくなる可能性がある。これに対し、本実施形態のルータ6によれば、S1の処理、またはS2の処理によりVPNが構築される際の通信相手の認証に用いられるPSKと異なるPSKが生成される。このPSKは、ルータ2、およびルータ3に送信され、ルータ2とルータ3との間でVPNが構築される際の通信相手の認証に用いられる。よって、ルータ2、ルータ3、およびルータ6が同じPSKで認証されることが無い。従って、各ルータを一意に認証することが出来る。これと共に、PSKがルータ6において生成されるので、PSKの管理が容易になる。従って、ルータ2とルータ3とがVPNを構築する際の通信相手の認証の精度を高く出来ると共に、PSKの管理を容易にすることが出来る。
【0125】
本実施形態のルータ6によれば、リアルタイム性が求められるデータを送信、および受信するルータ2とルータ3とに、他方のルータのIPアドレスと接続情報パケットとが送信される。音声通信などに使用されるデータは、リアルタイム性が求められる。このリアルタイム性が求められるデータが多く含まれるルータ2とルータ3との間の暗号化通信が、ルータ6を介さずに実行される。従って、ルータ3へ送信されるべきリアルタイム性が求められるデータが遅れて送信される場合、またはルータ3へ送信されるべきリアルタイム性が求められるデータが送信されない場合の発生頻度を低減させることが出来る。
【0126】
本実施形態のルータ6によれば、ルータ6は、処理負荷が、予め定められた閾値よりも小さいと判断すると、接続情報パケットを送信したルータ2、およびルータ3に切断情報パケットを送信する。切断情報パケットを受信したルータ2、およびルータ3は、再び、ルータ6を介した暗号化通信を行うことが可能である。これにより、ルータ6を介した暗号化通信を行った場合、ルータ3へ送信されるべきデータが遅れて送信される場合、またはルータ3へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0127】
[変形例1]
本実施形態では、PCがルータ2〜5に接続され、パケットを送信したが、IP電話機スマートフォンなどの端末装置が、ルータ2〜5に接続され、パケットを送信してもよい。また、アナログ電話などの端末装置がルータ2〜5に接続され、ルータ2〜5がアナログ電話機からの信号をデジタルデータに変換してもよい。このデジタルデータがパケットを構成する。
【0128】
[変形例2]
本実施形態では、S25の処理においてPSKが生成されたが、新たにPSKを生成しなくても良い。S26において、ルータ6の切替制御部は、ルータ2、およびルータ3のIPアドレス、およびS2の処理において、ルータ3とルータ6との認証に使用されたPSKを含む接続情報パケットを生成しても良い。VPN制御部は、S28において、この接続情報パケットを暗号化し、ルータ2に送信する。ルータ2は、ルータ3のIPアドレスに基づいて、ISAKMP SA生成要求をルータ3に送信し、ルータ3とルータ6との間でVPNが構築された際のPSKに基づきVPNを構築する。これにより、ルータ6が接続情報パケットをルータ3に送信しなくても、ルータ2とルータ3との間でVPNが構築される。同様に、S26において、ルータ6の切替制御部は、ルータ2、およびルータ3のIPアドレス、およびS1の処理において、ルータ2とルータ6との認証に使用されたPSKを含む接続情報パケットを生成しても良い。ルータ6は、この接続情報パケットをルータ3にのみ送信してもよい。
【0129】
[変形例3]
本実施形態では、S26において、ルータ6のVPN制御部は、PC7、PC8、ルータ2、およびルータ3のIPアドレス、およびPSKを接続情報パケットに含んだが、これに限られない。S25の処理において、ルータ6のVPN制御部は、暗号化アルゴリズムをPSKと共に生成し、PC7、PC8、ルータ2、およびルータ3のIPアドレス、PSK、暗号化アルゴリズムを接続情報パケットに含んでも良い。これにより、S32のVPN構築の際のフェーズ2の処理において、暗号化アルゴリズムを決定する処理を省略することが出来る。同様に、接続情報パケットは、フェーズ1の処理をメインモードで実行するか、アグレッシブモードで行うかを指定するモード指定情報を含んでも良い。
【0130】
[変形例4]
本実施形態では、接続情報パケットは、S25において作成されたPSKと、PC7、PC8、ルータ2、およびルータ3のIPアドレスとがペイロード部に含まれたが、これに限られない。図13に示すS404、またはS405において、テーブル1、またはテーブル2の宛先アドレス、送信元アドレス、およびプロトコルごとのbpsフィールドの和を算出する。次に、プロトコルごとの算出された和が一番大きい宛先アドレス、および送信元アドレスに対応するルータのIPアドレスをSADから抽出する。この2つのIPアドレスに対応する2つのルータを切替対象とする。この2つのルータは、ルータ2、およびルータ3であるとして、説明する。接続情報パケットは、S25において作成されたPSKと、PC7、PC8、ルータ2、およびルータ3のIPアドレスと、プロトコルとを含む。S31において、ルータ2のVPN制御部は、復号化された接続情報パケットに含まれるPC7のIPアドレス、PC8のIPアドレス、ルータ3のIPアドレス、およびプロトコルに基づき、SAを抽出する。具体的に、ルータ2のVPN制御部は、宛先アドレスにPC7のIPアドレス、送信元アドレスにPC8のIPアドレス、および接続情報パケットに含まれるプロトコルと一致する上位層プロトコルが含まれるSAと、宛先アドレスにPC8のIPアドレス、送信元アドレスにPC7のIPアドレス、および接続情報パケットに含まれるプロトコルと一致する上位層プロトコルが含まれるSAとを抽出する。抽出されたSAに切替済みフラグを付与する。次に、ルータ2のVPN制御部は、新たにSAを作成する。新たに作成されるSAの宛先アドレス、送信元アドレス、およびプロトコルは、抽出されたSAの宛先アドレス、送信元アドレス、およびプロトコルと同じである。新たに作成されるSAは終点アドレス、および始点アドレスの一方にはルータ3のIPアドレスが記憶され、他方には、ルータ2のIPアドレスが記憶される。一方、ルータ3のVPN制御部は、復号化された接続情報パケットに含まれるPC7のIPアドレス、PC8のIPアドレス、ルータ2のIPアドレス、およびプロトコルに基づき、SAを抽出する。具体的に、ルータ3のVPN制御部は、宛先アドレスにPC7のIPアドレス、送信元アドレスにPC8のIPアドレス、および接続情報パケットに含まれるプロトコルと一致する上位層プロトコルが含まれるSAと、宛先アドレスにPC8のIPアドレス、送信元アドレスにPC7のIPアドレス、および接続情報パケットに含まれるプロトコルと一致する上位層プロトコルが含まれるSAとを抽出する。抽出されたSAに切替済みフラグを付与する。次に、ルータ3のVPN制御部は、新たにSAを作成する。新たに作成されるSAの宛先アドレス、送信元アドレス、およびプロトコルは、抽出されたSAの宛先アドレス、送信元アドレス、およびプロトコルと同じである。新たに作成されるSAは終点アドレス、および始点アドレスの一方にはルータ2のIPアドレスが記憶され、他方には、ルータ3のIPアドレスが記憶される。これにより、ルータ6の処理負荷が大きい場合は、PC7〜10から送信されるパケットのペイロード部に含まれるプロトコルごとに、ルータ6を介さずに暗号化通信される。
【0131】
[変形例5]
本実施形態では、ルータ6の監視部が、他のルータから送信された暗号化パケットを復号し、この復号されたパケットの宛先アドレス、送信元アドレス、およびプロトコルに従い、ペイロード部のデータ量をテーブル1、またはテーブル2に記憶したが、これに限られない。ルータ6の監視部が、復号されたパケットの宛先アドレス、送信元アドレス、およびプロトコルを1つのテーブルに記憶してもよい。この場合、図13に示すS403の処理は実行されず、1つのテーブルに記憶されたbpsフィールドの一番大きい宛先アドレス、および送信元アドレスと関連付けられるPC、またはルータが切替対象となる。
【0132】
[変形例6]
本実施形態では、PSKはルータのIPアドレスと関連付けられて、各ルータに記憶されたが、fqdn(Fully Qualified Domain Name)など、ルータを特定する情報であればよい。メインモードでフェーズ1の処理が行われる場合は、PSKから生成されたハッシュ値は暗号化される。従って、ルータを特定する情報は、IPアドレスでしかない。よって、このIPアドレスが動的IPアドレスである場合は、認証を行うことが出来ない。すなわち、ルータのIPアドレスが動的IPアドレスである場合は、IPアドレス以外のルータを特定する情報が用いられる。IPアドレス以外のルータを特定する情報として、fqdnなどの特定情報が用いられれば良い。よって、fqdnなどの特定情報が接続情報パケットに含められる。アグレッシブモードで認証が実行される場合は、IPアドレスが動的IPアドレスでもよい。アグレッシブモードで認証が実行され、ルータを特定する情報がIPアドレスであれば、fqdnなどの特定情報は接続情報パケットに含められなくてよい。
【0133】
[変形例7]
本実施形態では、S310において算出された全てのbpsフィールドの和が、予め定められた閾値を超えているか否かを判断することにより、処理負荷が閾値よりも大きいか否かを判断したが、これに限られない。ルータ6のCPUは、他のルータから送信され、ルータ6に受信されたパケットを復号、および暗号化する変換処理の他に、ルータ6に接続されるPCから送信されたパケットを暗号化する変換処理負荷、ルータ6に接続されるPCへ送信するパケットを暗号化、および復号する変換処理負荷、ルータ6に接続されるPCが暗号化通信されないパケットを送受信するためのルーティング処理負荷などの処理負荷の総和が予め定められた閾値を超えているか否かを判断しても良い。処理負荷の総和が本発明の処理負荷の一例である。
【0134】
[変形例8]
本実施形態では、PSKが用いられたが、これに限られない。S25において、ルータ6の切替制御部は、PSKの代わりに、秘密鍵、および公開鍵を生成する。S26において、ルータ3に送信する接続情報パケットに秘密鍵を含め、ルータ2に送信する接続情報パケットに公開鍵を含める。S32において、ルータ2、およびルータ3のVPN制御部は、公開鍵、および秘密鍵を使用して、VPNを構築してもよい。この公開鍵、および秘密鍵が本発明の認証パラメータの一例である。
【符号の説明】
【0135】
1 暗号化通信システム
2〜6 ルータ
7〜10 PC
21 CPU
22 記憶手段
【技術分野】
【0001】
本発明は、中継装置の処理負荷に応じて、中継装置に接続された通信装置同士に暗号化通信を実行させる中継装置、暗号化通信システム、暗号化通信プログラム、および暗号化通信方法に関するものである。
【背景技術】
【0002】
従来、インターネットまたは専用/公衆回線を介して、複数のノードの間において暗号化通信を行う技術が知られている。例えば、特許文献1に開示されている技術では、IPsec(Internet Protocol security)等のプロトコルに準拠して送信側のノードにおいてパケットが暗号化され、受信側のノードで復号される。特許文献1に開示された技術では、ハブ&スポーク型と呼ばれる形式で、VPN(Virtual Private Network)が構築され、暗号化通信が行われる。ハブ&スポーク型でVPNが構築された場合、送信側のノードがパケットを暗号化する。送信側のルータは、暗号化されたパケットを中継ノードへ送信する。中継ノードは暗号化されたパケットを復号し、送信すべき受信側のノードを選択し、再びパケットを暗号化する。次に、中継ノードは、再び暗号化されたパケットを選択された受信側のノードに送信する。
【0003】
特許文献1に開示された技術では、送信側のノードが、送信側のノードと中継ノードとの間のトラフィック量が閾値を越えたことを検出すると、送信側のノードと受信側のノードとの間に直接VPNを構築する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−140482号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した特許文献1に記載された暗号化通信において、送信側のノードが、送信側のノードと中継ノードとの間のトラフィック量を検出するので、以下の問題が生じる可能性がある。
【0006】
別の送信側のノードが中継ノードに接続され、暗号化通信している場合、送信側のノードは、別の送信側のノードと中継ノードとの間のトラフィック量を検出できない。これにより、別の送信側のノードと中継ノードとの間のトラフィック量が多い場合、送信側のノードと受信側のノードとの間で直接VPNが構築されず、中継ノードを介する暗号化通信が継続される。また、中継ノードと各送信側のノードとの間のトラフィック量が閾値を超えなければ、送信側のノードと受信側のノードとの間で直接VPNが構築されず、中継ノードを介する暗号化通信が継続される。
【0007】
送信側のノードと中継ノードとの間におけるトラフィック量が多くなると、中継ノードにおいて、送信側のノードから送信されるパケットの暗号化処理、および復号処理の処理負荷が大きくなることが考えられる。この暗号化処理、及び復号処理の処理負荷が大きくなると、受信側のノードへ送信されるべき暗号化パケットが中継ノードから遅れて送信される場合、または受信側のノードへ送信されるべき暗号化パケットが中継ノードから送信されない場合が発生する恐れがある。
【0008】
本発明は、上述した問題点を解決するためになされたものであり、受信側の通信装置への暗号化パケットの通信遅延が低減される中継装置、暗号化通信システム、暗号化通信プログラム、および暗号化通信方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、請求項1記載の本発明は、複数の通信装置と暗号化通信する中継装置であって、前記複数の通信装置のIPアドレスを記憶する記憶手段と、前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築手段と、前記第1構築手段により構築されたVPNを介して暗号化されたデータを受信する受信手段と、前記受信手段により受信された暗号化データを復号する復号手段と、前記復号手段により復号されたデータに指定された宛先のIPアドレスから前記受信手段により受信されたデータを送信する第2通信装置のIPアドレスを前記記憶手段から抽出する抽出手段と、前記第2通信装置との間でVPNを構築する第2構築手段と、データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出手段と、前記検出手段により検出された処理負荷が閾値よりも大きいか否かを判断する判断手段と、前記判断手段により処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信手段と、を備えることを特徴とするものである。
【0010】
上記目的を達成するために、請求項2記載の本発明は、請求項1に記載の中継装置において、前記送信手段は、前記第1構築手段、および前記第2構築手段の少なくとも1つの構築手段により構築されるVPNを介して前記他方の通信装置のIPアドレスと、前記VPN構築情報とを送信することを特徴とするものである。
【0011】
上記目的を達成するために、請求項3記載の本発明は、請求項1または2に記載の中継装置であって、前記第1構築手段によりVPNが構築される際、および前記第2構築手段によりVPNが構築される際の通信相手の認証に用いられるパラメータと異なる前記認証パラメータを生成する生成手段を備え、前記送信手段は、前記生成手段により生成された認証パラメータを前記他方の通信装置に送信することを特徴とするものである。
【0012】
上記目的を達成するために、請求項4記載の本発明は、請求項1〜3のいずれかに記載の中継装置であって、前記検出手段は、前記復号する処理、および暗号化する処理に含まれるデータのうち、リアルタイム性が求められるデータの変換処理負荷を前記処理負荷の一部として検出し、前記判断手段が、処理負荷が大きいと判断すると、前記送信手段は、前記複数の通信装置のうち、リアルタイム性が求められるデータを送信、および受信する前記第1通信装置と前記第2通信装置とを抽出し、少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記VPN構築情報と、を送信することを特徴とするものである。
【0013】
上記目的を達成するために、請求項5記載の本発明は、請求項1〜4のいずれかに記載の中継装置であって、前記送信手段は、前記判断手段が、処理負荷が大きいと判断した後に、前記検出手段により検出された処理負荷が閾値よりも小さくなったと判断した場合、前記第1通信装置、および前記第2通信装置に負荷軽減通知を送信することを特徴とするものである。
【0014】
上記目的を達成するために、請求項6記載の本発明は、複数の通信装置が中継装置を介して暗号化通信する暗号化通信システムであって、前記中継装置は、前記複数の通信装置のIPアドレスを記憶する記憶手段と、前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築手段と、前記第1構築手段により構築されたVPNを介して暗号化されたデータを受信する中継装置受信手段と、前記中継装置受信手段により受信されたデータを復号する復号手段と、前記復号手段により復号されたデータに指定された宛先のIPアドレスから前記中継装置受信手段により受信されたデータを送信する第2通信装置のIPアドレスを前記記憶手段から抽出する抽出手段と、前記第2通信装置との間でVPNを構築する第2構築手段と、データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出手段と、前記検出手段により検出された処理負荷が閾値よりも大きいか否かを判断する判断手段と、前記判断手段により処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する中継装置送信手段と、を備え、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置は、前記他方の通信装置のIPアドレスと、前記VPN構築情報と、を受信する通信装置受信手段と、前記通信装置受信手段により受信された前記他方の通信装置のIPアドレスで指定される通信装置と、前記認証パラメータに基づきVPNを構築する通信装置構築手段と、前記通信装置構築手段により構築されたVPNを介して暗号化されたデータを前記他方の通信装置に送信する通信装置送信手段と、を備えることを特徴とするものである。
【0015】
上記目的を達成するために、請求項7記載の本発明は、複数の通信装置と暗号化通信する中継装置に使用される暗号化通信方法であって、前記複数の通信装置のうちの第1通信装置との間で構築されたVPNを介して暗号化されたデータを受信する受信ステップと、前記受信ステップにより受信されたデータを復号する復号ステップと、前記復号ステップにより復号されたデータに指定された宛先のIPアドレスから前記受信ステップにより受信されたデータを送信する第2通信装置のIPアドレスを、前記複数の通信装置のIPアドレスを記憶する記憶手段から抽出する抽出ステップと、データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出ステップと、前記検出ステップにより検出された処理負荷が閾値よりも大きいか否かを判断する判断ステップと、前記判断ステップにより処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信ステップと、を備えることを特徴とする方法である。
【0016】
上記目的を達成するために、請求項8記載の本発明は、複数の通信装置と暗号化通信する中継装置を制御するコンピュータに、前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築ステップと、前記第1構築ステップにより構築されたVPNを介して暗号化されたデータを受信する受信ステップと、前記受信ステップにより受信されたデータを復号する復号ステップと、前記復号ステップにより復号されたデータに指定された宛先のIPアドレスから前記第1受信ステップにより受信されたデータを送信する第2通信装置のIPアドレスを、前記複数の通信装置のIPアドレスを記憶する記憶手段から抽出する抽出ステップと、データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出ステップと、前記検出ステップにより検出された処理負荷が閾値よりも大きいか否かを判断する判断ステップと、前記判断ステップにより処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信ステップと、を実行させることを特徴とするプログラムである。
【発明の効果】
【0017】
請求項1記載の中継装置によれば、判断手段により処理負荷が大きいと判断された場合、第1通信装置と第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、VPN構築情報とが送信される。これにより、他方の通信装置のIPアドレス、およびVPN構築情報を受信した一方の通信装置は、中継装置を介さずに、他方の通信装置とVPNを介した暗号化通信を行うことが可能である。すなわち、中継装置において、データを復号する処理、およびデータを暗号化する処理の変換処理負荷が軽減される。従って、第2通信装置へ送信されるべきデータが遅れて送信される場合、または第2通信装置へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0018】
請求項2記載の中継装置によれば、他方の通信装置のIPアドレスと、VPN構築情報とが、中継装置の少なくとも1つの構築手段により構築されるVPNを介して一方の通信装置に送信される。従って、他方の通信装置のIPアドレスと、VPN構築情報とが、上記構築手段により構築されるVPNを介さずに一方の通信装置に送信されるよりも、IPアドレスと、VPN構築情報とが、第1通信装置、第2通信装置、および中継装置以外の他の装置に漏洩することを抑えることが出来る。
【0019】
請求項3記載の中継装置によれば、第1構築手段、または第2構築手段によりVPNが構築される際の通信相手の認証に用いられるパラメータと異なる認証パラメータが生成される。すなわち、認証パラメータは、中継装置で新規に生成される。第1構築手段、または第2構築手段によりVPNが構築される際の通信相手の認証に用いられるパラメータと同じ認証パラメータがVPN構築情報に含まれると、第1通信装置、第2通信装置、および中継装置が同じ認証パラメータを保持することになる。認証パラメータが複数の通信装置に保持されると、通信装置と一意に認証することが出来なくなる可能性がある。これに対し、請求項3記載の中継装置は、第1構築手段、または第2構築手段によりVPNが構築される際の通信相手の認証に用いられるパラメータと異なる認証パラメータが生成される。この認証パラメータは、第1通信装置、および第2通信装置に送信され、第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる。よって、第1通信装置、第2通信装置、および中継装置が同じ認証パラメータで認証されることが無い。従って、各通信装置を一意に認証することが出来る。これと共に、認証パラメータが中継装置において生成されるので、認証パラメータの管理が容易になる。従って、第1通信装置と第2通信装置とがVPNを構築する際の通信相手の認証の精度を高く出来ると共に、認証パラメータの管理を容易にすることが出来る。
【0020】
請求項4記載の中継装置によれば、リアルタイム性が求められるデータを送信、および受信する第1通信装置と第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスとVPN構築情報とが送信される。リアルタイム性が求められるデータは、音声通信などに使用される。このリアルタイム性が求められるデータが含まれる第1通信装置と第2通信装置との間の暗号化通信が、中継装置を介さずに実行される。従って、第2通信装置へ送信されるべきリアルタイム性が求められるデータが遅れて送信される場合、または第2通信装置へ送信されるべきリアルタイム性が求められるデータが送信されない場合の発生頻度を低減させることが出来る。
【0021】
請求項5記載の中継装置によれば、負荷軽減通知を受信した第1通信装置、および第2通信装置は、再び、中継装置を介した暗号化通信を行うことが可能である。中継装置の処理負荷が閾値を超えていないので、負荷軽減通知を受信した第1通信装置、および第2通信装置が中継装置を介して暗号化通信を行っても、第2通信装置へ送信されるべきデータが遅れて送信される場合、または第2通信装置へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0022】
請求項6記載の暗号化通信システムによれば、判断手段により処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、VPN構築情報とが送信される。いずれか一方の通信装置は、受信された他方の通信装置のIPアドレスで指定される通信装置と、認証パラメータに基づきVPNを構築し、暗号化されたデータを構築されたVPNを介して他方の通信装置に送信する。これにより、他方の通信装置のIPアドレス、およびVPN構築情報を受信した一方の通信装置は、中継装置を介さずに、他方の通信装置とVPNを介した暗号化通信を行うことが可能である。すなわち、中継装置において、データを復号する処理、およびデータを暗号化する処理の変換処理負荷が軽減される。従って、第2通信装置へ送信されるべきデータが遅れて送信される場合、または第2通信装置へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0023】
請求項7記載の暗号化通信方法によれば、判断ステップにより処理負荷が大きいと判断された場合、第1通信装置、および第2通信装置に、他方の通信装置のIPアドレスと、VPN構築情報とが送信される。これにより、他方の通信装置のIPアドレス、およびVPN構築情報を受信した一方の通信装置は、中継装置を介さずに、他方の通信装置とVPNを介した暗号化通信を行うことが可能である。すなわち、中継装置において、データを復号する処理、およびデータを暗号化する処理の変換処理負荷が軽減される。従って、第2通信装置へ送信されるべきデータが遅れて送信される場合、または第2通信装置へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0024】
請求項8記載の暗号化通信プログラムによれば、判断ステップにより処理負荷が大きいと判断された場合、第1通信装置と第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、VPN構築情報とが送信される。これにより、他方の通信装置のIPアドレス、およびVPN構築情報を受信した一方の通信装置は、中継装置を介さずに、他方の通信装置とVPNを介した暗号化通信を行うことが可能である。すなわち、中継装置において、データを復号する処理、およびデータを暗号化する処理の変換処理負荷が軽減される。従って、第2通信装置へ送信されるべきデータが遅れて送信される場合、または第2通信装置へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【図面の簡単な説明】
【0025】
【図1】本発明の一実施形態に係る暗号化通信システム1の概要構成を示す図である。
【図2】暗号化通信システム1におけるルータ2のハードウェア図である。
【図3】SPDの内容を表す模式図である。
【図4】SADの内容を表す模式図である。
【図5】ルータ6の処理負荷が小さい場合の、暗号化パケットがPC7からPC8へ送信される際の処理を表すシーケンス図である。
【図6】ルータ6の処理負荷が大きい場合の、暗号化パケットがPC7からPC8へ送信される際の処理を表すシーケンス図である。
【図7】VPNがメインモードで構築される際の処理を表すシーケンス図である。
【図8】VPNがアグレッシブモードで構築される際の処理を表すシーケンス図である。
【図9】暗号化パケットの内容を表す模式図である。
【図10】ルータ6の負荷検出処理を示すフローチャートである。
【図11】テーブル1の内容を表す模式図である。
【図12】テーブル2の内容を表す模式図である。
【図13】ルータ6の切替対象決定処理を示すフローチャートである。
【図14】ルータ6の処理負荷が、再び小さくなった場合の、暗号化パケットがPC7からPC8へ送信される際の処理を表すシーケンス図である。
【発明を実施するための形態】
【0026】
図1を参照して本発明の一実施形態に係る暗号化通信システム1について説明する。図1は、暗号化通信ステムの概要構成を示す図である。
【0027】
暗号化通信システム1は、ルータ2〜6と、パーソナルコンピュータ(PC)7〜10とを備える。PC7〜10は、ルータ2〜5とLANを介して接続する。ルータ2〜5は、ルータ6とVPNを構築する。VPNは、インターネットに構成される仮想的な私設網である。すなわち、ルータ2〜6はVPNゲートウェイである。ルータ2、ルータ3が、それぞれ本発明の第1通信装置、および第2通信装置の一例である。ルータ6が本発明の中継装置の一例である。
【0028】
ルータ2〜5は、それぞれPC7〜10から送信されたパケットを暗号化する。次に、ルータ2〜5は、暗号化されたパケットをルータ6に送信する。ルータ6は、暗号化されたパケットを受信すると、この暗号化されたパケットを復号する。次に、ルータ6は、復号されたパケットをルータ2〜5に送信する。ルータ2〜5は、暗号化されたパケットを復号する。ルータ2〜5は、復号したパケットを、PC7〜10に送信する。すなわち、PC7〜10から送信されたパケットはルータ6を介してPC7〜10に送信される。この暗号化通信の形態はハブ&スポーク型と呼ばれ、ルータ2〜5がスポーク、ルータ6がハブに相当する。
【0029】
本実施形態では、例えば、インターネットに構築されるVPNを介して暗号化通信が行われる際に、IPsec(Security Architecture for Internet Protocol)が採用される。IPsecは、ネットワーク層でデータを暗号化するプロトコルである。
【0030】
IPsecはAH(Authentication Header)、ESP(Encapsulated Security Payload)、IKE(Internet Key Exchange)などの複数のプロトコルから構成される。これらのプロトコルは公知であるので簡単に説明する。
【0031】
AHは認証機能を有するセキュリティプロトコルである。ESPは、ペイロード部に対して暗号化するセキュリティプロトコルである。IKEは鍵交換を行うプロトコルである。
【0032】
[ルータのハードウェア構成]
図2を参照して、ルータ2のハードウェア構成を説明する。ルータ3〜6のハードウェア構成は、ルータ2のハードウェア構成と同等であるので、説明を省略する。ルータ2は、CPU21、フラッシュメモリ22、RAM23、WAN側のイーサネット(登録商標)インタフェース24、およびLAN側のイーサネット(登録商標)インタフェース25を備える。CPU21、フラッシュメモリ22、RAM23、WAN側のイーサネット(登録商標)インタフェース24、およびLAN側のイーサネット(登録商標)インタフェース25はバスを介して接続される。フラッシュメモリ22は、CPU21により処理される後述のVPN構築処理などの制御プログラムを記憶する。フラッシュメモリ22は後述するSAD(Security Association Database)として、SA(Security Association)を記憶する。フラッシュメモリ22は、SPD(Security Policy Database)として、SP(Security Policy)を記憶する。フラッシュメモリ22が本発明の記憶手段の一例である。
【0033】
RAM22は、CPU21が制御プログラムを実行する際の一時的なデータを記憶する。CPU21が本発明のコンピュータの一例である。
【0034】
WAN側のイーサネット(登録商標)インタフェース24は、LANケーブルが接続されるポートを含み、ルータ6との間でIP網に構築されたVPNを介して暗号化されたパケットの送受信を行う。LAN側のイーサネット(登録商標)インタフェース25は、LANケーブルが接続されるポートを含み、LANケーブルを介してPC7との間で暗号化されていないパケットの送受信を行う。
【0035】
図3を参照して、SPDを説明する。SPDはSPを記憶するデータベースである。SPは、暗号化通信が可能な2つのルータとの間で暗号化通信を行うか否かを示す情報である。SPは、送信元アドレス、宛先アドレス、上位層プロトコル、および動作などを記憶している。送信元アドレスは、パケットの送信元のPCのIPアドレスである。宛先アドレスは、パケットの宛先のPCのIPアドレスである。上位層プロトコルは、ペイロード部を含むパケットのプロトコルである。動作は、暗号化通信を行うか否かの情報である。
【0036】
図4を参照して、SADを説明する。SADはSAを記憶するデータベースである。SAは、暗号化通信を行う2つのルータとの間で確立されるコネクションである。SAは、送信元アドレス、宛先アドレス、始点アドレス、終点アドレス、セキュリティプロトコル、SPI(Security Parameter Index)、暗号鍵、および暗号化アルゴリズムなどを記憶する。始点アドレスは、暗号化されたパケットを送信するルータのIPアドレスである。終点アドレスは、暗号化されたパケットが受信されるルータのIPアドレスである。セキュリティプロトコルとしては、AH、またはESPが指定される。SPIはSAを識別する情報である。暗号鍵は、2つのルータの間で暗号化通信が実行される際に、パケットの暗号化に使用される鍵である。暗号化アルゴリズムは、3DES−CBC、DES−CBCなどのアルゴリズムである。
【0037】
図5、および図6を参照して、PC7からPC8にパケットが送信される際のシーケンスを説明する。図5、および図6において、ルータ6のCPU21が実行する処理を、VPN制御部が実行する処理、切替制御部が実行する処理、および負荷監視部が実行する処理として説明する。図5、および図6に示す記憶部は、ルータ6のフラッシュメモリ22である。
【0038】
[ルータ6の処理負荷が小さい場合の動作]
S1において、ルータ2のVPN制御部とルータ6のVPN制御部がVPNを構築する。次に、S2においてルータ6のVPN制御部とルータ3のVPN制御部がVPNを構築する。S1の処理が本発明の第1構築手段の一例である。S2が本発明の第2構築手段の一例である。
【0039】
S1、およびS2におけるVPNの構築について、図7、および図8を参照して説明する。図7、および図8は、ルータ2とルータ6との間にVPNが構築されるS1の処理の一例を示す。VPNが構築されるには、暗号化通信が実行される2つのルータの間において、SAが生成されなければならない。SAはIKE(Internet Key Exchange)により、動的に生成される。このSAの生成過程において、ルータ2のVPN制御部、およびルータ6のVPN制御部はフェーズ1とフェーズ2と呼ばれる公知の処理を実行する。フェーズ1は、メインモードとアグレッシブモードとのどちらか一方のモードにより処理される。フェーズ1、およびフェーズ2の処理の実行が完了すると、ルータ2とルータ6との間にVPNが構築される。図7はメインモードでフェーズ1の処理が実行されるシーケンス図である。図8はアグレッシブモードでフェーズ1の処理が実行されるシーケンス図である。
【0040】
[メインモード]
図7に示すS101において、ルータ2は、ISAKMP SA生成要求をルータ6に送信する。このISAKMP SA生成要求は、ルータ2とルータ6との間でISAKMP SAの生成を提案するパケットである。ISAKMP SAは、IKEによりSAが自動的に生成される場合のIKEの制御用チャネルである。この提案パケットをルータ6に送信すると、S102に処理を移行する。
【0041】
提案パケットは、ISAKMP SAを確立するためのパラメータを含む。このパラメータは、暗号化アルゴリズム、ハッシュアルゴリズム、認証方式、およびDiffie−Hellman交換に使用されるパラメータなどである。
【0042】
暗号化アルゴリズムは、ISAKMP SAが暗号化される際のアルゴリズムである。この暗号化アルゴリズムは、3DES−CBC、DES−CBCなどから後述するS102において1つ指定される。
【0043】
ハッシュアルゴリズムは、ISAKMP SAの確立過程において認証に使用されるアルゴリズムである。このハッシュアルゴリズムはSHA−1、MD5などから1つ指定される。
【0044】
認証方式は、通信先のルータを認証する際の方式である。認証方式は、PSK(Pre−Shared Key)認証、公開鍵認証から1つ指定される。以降の記載では、PSK認証がパラメータとして指定されたとする。
【0045】
Diffie−Hellman交換に使用されるパラメータは、Diffie−Hellman交換により共通鍵が生成される際に使用されるパラメータである。
【0046】
S102において、ルータ6は、受信されたISAKMP SAの生成要求に含まれるパラメータの認証を行う。パラメータの認証を行うと、ISAKMP SAの生成を受諾すると判断し、ISAKMP SAの生成の受諾を通知するパケットをルータ2に送信する。この通知パケットをルータ2に送信すると、S103、およびS104に処理を移行する。
【0047】
S103、およびS104において、ルータ2、およびルータ6は乱数を発生する。乱数の発生を終了すると、S105、およびS106に処理を移行する。
【0048】
S105、およびS106において、ルータ2、およびルータ6は、発生された乱数を他方のルータ2、6に送信する。この乱数の送受信は、Diffie−Hellman交換と呼ばれる。乱数の送信が終了すると、S107、およびS108に処理を移行する。
【0049】
S107において、ルータ2はS103で発生した乱数と、S106で受信した乱数とから共通鍵を生成する。S108において、ルータ6はS104で発生した乱数と、S105で受信した乱数とから共通鍵を生成する。すなわち、ルータ2とルータ6とは、同じ共通鍵を生成する。共通鍵の生成が終了すると、S109に処理を移行する。
【0050】
S109において、ルータ2は、ルータ2とルータ6との間で予め設定されるPSKからハッシュ値を生成する。このPSKは、ルータ2、およびルータ6のIPアドレスと対応付けてルータ2、ルータ6の記憶部に記憶される。ルータ2は、生成されたハッシュ値をルータ6に送信する。このハッシュ値は、S107において生成された共通鍵により暗号化されてルータ6に送信される。ハッシュ値の送信が終了すると、S110に処理を移行する。
【0051】
S110において、ルータ6は、S108において生成された共通鍵を用いて、ハッシュ値を復号する。復号されたハッシュ値と、送信元のアドレスに付与されたルータ2のIPアドレスから、S101〜S109の処理において、通信しているルータがルータ2であることを認証する。通信しているルータがルータ2であると判断すると、S111に処理を移行する。すなわち、PSKはVPNを構築する際の、通信相手の認証に用いられる。
【0052】
S111において、ルータ6は、ルータ2とルータ6との間で予め設定されるPSKからハッシュ値を生成する。このハッシュ値は、S108において生成された共通鍵により暗号化されてルータ6に送信される。ハッシュ値の送信が終了すると、S112に処理を移行する。
【0053】
S112において、ルータ2は、S107において生成された共通鍵からハッシュ値を復号する。復号されたハッシュ値と送信元のアドレスに付与されたルータ6のIPアドレスとに基づき、S101〜S109の処理において、通信しているルータがルータ6であることを検証する。通信しているルータがルータ6であると判断すると、S113に処理を移行する。
【0054】
S101〜S112の処理は、フェーズ1と呼ばれる。S101〜S112の処理により、ISAKMP SAが確立される。以降のS113〜S116において、ルータ2とルータ6との間で送受信されるパケットはISAKMP SAの確立過程において生成された共通鍵により暗号化される。
【0055】
S113において、ルータ2は、IPsec SA生成要求をルータ6に送信する。このIPsec SA生成要求は、ルータ2とルータ6との間でIPsec SAの生成を提案するパケットである。ルータ2は、乱数、暗号化アルゴリズム、セキュリティプロトコルを提案パケットに付与する。S113において、提案パケットに付与される乱数は、ルータ2、およびルータ6に接続されたPCとの間で通信が実行される際に、パケットの暗号化に使用される暗号鍵を生成するための乱数である。暗号化アルゴリズムは、3DES−CBC、DES−CBCなどのアルゴリズムである。セキュリティプロトコルとしては、AH、またはESPが指定される。この提案パケットをルータ6に送信すると、S114に処理を移行する。
【0056】
S114において、ルータ6は、ルータ2とルータ6との間でIPsec SAの生成を受諾すると、ルータ6は、受信した提案パケットに付与された乱数から暗号鍵を生成する。鍵の生成が終了すると、S115に処理を移行する。
【0057】
S115において、ルータ6は、IPsec SAの生成の受諾を通知するパケットをルータ2に送信する。ルータ6はこの通知パケットに乱数を付与する。この通知パケットをルータ2に送信すると、S116に処理を移行する。
【0058】
S116において、ルータ2は通知パケットに付与された乱数から暗号鍵を生成する。暗号鍵の生成が終了すると、IPsec SAが確立されたこと通知する確立通知パケットをルータ6に送信する。
【0059】
S113〜S116の処理は、フェーズ2と呼ばれる。VPNは、S101〜S112の処理であるフェーズ1と、S113〜S116の処理であるフェーズ2とが実行されることにより構築される。すなわち、2つのルータ間でVPNが構築されるためには、ルータ2とルータ6との間でPSKが設定されていなければならない。VPNが構築されると、ルータ2とルータ6との記憶部に記憶されたSADの始点アドレス、および終点アドレスと対応付けて、セキュリティプロトコル、暗号鍵、暗号化アルゴリズムが記憶される。この際、SAを識別するSPIがSAに付与される。ルータ2からルータ6へ送信される暗号化パケットのSAと、ルータ6からルータ2へ送信される暗号化パケットのSAとの2つのSAが作成される。
【0060】
[アグレッシブモード]
図8を参照して、アグレッシブモードを説明する。S201において、ルータ2は乱数を生成する。乱数の生成が終了すると、S202に処理を移行する。
【0061】
S202において、ルータ2は、ISAKMP SA生成要求を送信する。このISAKMP SA生成要求は、S201において生成された乱数を含む。ISAKMP SA生成要求を送信すると、S203に処理を移行する。
【0062】
S203において、ルータ6は、乱数を生成する。乱数を生成すると、S204に処理を移行する。
【0063】
S204において、ルータ6は、ISAKMP SAの生成要求に含まれるパラメータを認証する。このパラメートを認証すると判断すると、ISAKMP SAの生成の受諾を通知するパケットをルータ2に送信する。この通知パケットは、S203において生成された乱数と、ルータ2とルータ6との間で予め設定されるPSKから生成されるハッシュ値とを含む。通知パケットをルータ2に送信すると、S205に処理を移行する。
【0064】
S205において、ルータ2は、受信された通知パケットに含まれるハッシュ値と、送信元のアドレスに付与されたルータ6のIPアドレスとに基づき、S201〜S204の処理において、通信しているルータがルータ6であることを認証する。通信しているルータがルータ6であると判断すると、S206に処理を移行する。
【0065】
S206において、ルータ2は、受信された通知パケットに含まれる乱数から共通鍵を生成する。共通鍵の生成が終了すると、S207に処理を移行する。
【0066】
S207において、ルータ2は、ルータ2とルータ6との間で予め設定されるPSKから生成されるハッシュ値を含む認証パケットをルータ6に送信する。認証パケットの送信が終了すると、S208に処理を移行する。このハッシュ値は、S206において生成された共通鍵により暗号化される。
【0067】
S208において、ルータ6は認証パケットに含まれるハッシュ値と、送信元のアドレスに付与されたルータ2のIPアドレスとに基づき、S201〜S204の処理において、通信しているルータがルータ2であることを認証する。通信しているルータがルータ6であると判断すると、アグレッシブモードにおけるフェーズ1を終了し、フェーズ2の処理に移行する。
【0068】
図5に戻り、説明を続ける。以下の記載において、パケットの内容を示す図9を参照して説明する。S3において、ルータ2のVPN制御部は、PC7から暗号化されていないパケットを受信する。このパケットは、図9(a)に示すように、PC8のIPアドレスが宛先のIPアドレスに指定され、PC7のIPアドレスが送信元のIPアドレスに指定されているパケットである。このパケットのペイロード部にRTP(Real−time Transport Protocol)に従うデータが含まれているとして説明する。ルータ2のVPN制御部が、PC7から送信されたパケットを受信すると、S4に処理を移行する。
【0069】
S4において、ルータ2のVPN制御部は、ルータ2の記憶部に記憶されたSPDを参照する。PC7から送信されたパケットの宛先IPアドレス、送信元のIPアドレス、およびペイロード部のプロトコルに一致するSPがあるか否かを判断する。SPがあると判断すると、そのSPの動作に示される通信方法で宛先のPC8にパケットを送信すると判断する。SPが無いと、宛先のPC8にパケットを送信しないと判断する。以降の記載では、SPの動作にIPSecが記憶されているとして、暗号化通信でパケットが送信される場合を説明する。暗号化通信でパケットを送信すると判断すると、SADを参照する。次に、パケットに付与された宛先IPアドレス、送信元のIPアドレス、およびペイロード部のプロトコルと一致し、始点アドレスが、ルータ2のIPアドレスであるSAから、暗号鍵、および暗号化アルゴリズムを抽出する。次に、PC7から送信されたパケットをこの暗号鍵、および暗号化アルゴリズムにより暗号化する。暗号化されたパケットに、宛先のルータのIPアドレス、送信元のルータのIPアドレス、およびSAに指定されたSPIを付与する。宛先のルータのアドレスには、終点アドレスであるルータ6のIPアドレスが付与される。送信元のルータのアドレスには、始点アドレスであるルータ2のIPアドレスが付与される。暗号化が終了すると、S5に処理を移行する。図9(b)に暗号化されたパケットを示す。終点アドレス、始点アドレス、およびSPIが、この暗号化されたパケットに付与される。以降の記載において、ルータ2とルータ6との間で使用される暗号鍵、暗号化方式をそれぞれ第1暗号鍵、第1暗号化アルゴリズムとする。宛先のルータのアドレスは、予めSAの終点アドレスとして記憶部に記憶されている。すなわち、宛先のルータのIPアドレスが記憶部に記憶されていないと、そのルータと暗号化通信を行うことは出来ない。
【0070】
S5において、ルータ2のVPN制御部は、暗号化されたパケットをルータ6のVPN制御部に送信する。この暗号化されたパケットは、S1において構築されたVPNを介して、ルータ6のVPN制御部に送信される。ルータ6のVPN制御部は、ルータ2のVPN制御部から送信された暗号化パケットを受信する。ルータ6のVPN制御部が、暗号化パケットを受信すると、S6に処理を移行する。以降の記載において、暗号化されたパケットを暗号化パケットと記載する。S6に示す、ルータ6のVPN制御部の暗号化パケットを受信する処理が、本発明の受信手段の一例である。
【0071】
S6において、ルータ2のVPN制御部から送信された暗号化パケットを受信したルータ6のVPN制御部は、暗号化パケットに付与されたSPIを参照し、第1暗号鍵、および第1暗号化アルゴリズムをルータ6の記憶部に記憶されたSADから抽出する。この第1暗号鍵、および第1暗号化アルゴリズムにより、暗号化パケットを復号する。復号が終了すると、S7に処理を移行する。復号されたパケットは、図9(a)に示すPC7から送信されたパケットと同じである。S6の処理が、本発明の復号手段の一例である。
【0072】
S7において、ルータ6のVPN制御部は、復号されたパケットに含まれる送信元アドレス、宛先アドレス、プロトコル、およびパケットサイズをルータ6の記憶部に記憶する。この処理は、後述する。すなわち、PC7のIPアドレスが送信元アドレス、PC8のIPアドレスが宛先アドレス、ペイロード部に含まれるデータのプロトコルであるRTPがプロトコル、およびペイロード部に含まれるデータのサイズがパケットサイズである。復号されたパケットに含まれる各項目をを記憶部に記憶すると、S8に処理を移行する。
【0073】
S8において、ルータ6のVPN制御部は、ルータ6の記憶部に記憶されたSPDを参照する。PC7から送信されたパケットの宛先IPアドレス、送信元のIPアドレス、およびペイロード部のプロトコルに一致するSPがあるか否かを判断する。SPがあると判断すると、そのSPの動作に示される通信方法で宛先のPC8にパケットを送信すると判断する。SPが無いと、宛先のPC8にパケットを送信しないと判断する。暗号化通信でパケットを送信すると判断すると、SADを参照する。次に、パケットに付与された宛先IPアドレス、送信元のIPアドレス、およびペイロード部のプロトコルと一致し、始点アドレスが、ルータ6のIPアドレスであるSAから、暗号鍵、および暗号化アルゴリズムを抽出する。この暗号鍵、および暗号化アルゴリズムにより、PC7から送信されたパケットを暗号化する。S6において復号されたパケットに付与された宛先のIPアドレス、送信元のIPアドレス、およびペイロード部のプロトコルと一致し、始点アドレスが、ルータ6のIPアドレスであるSAから、終点アドレスに記憶されたルータのIPアドレスを抽出する。暗号化されたパケットに、宛先のルータのIPアドレス、送信元のルータのIPアドレス、およびSAに指定されたSPIを付与する。宛先のルータのアドレスは、抽出された終点アドレスであるルータ3のIPアドレスであり、送信元のルータのアドレスは、始点アドレスであるルータ6のIPアドレスである。暗号化が終了すると、S9に処理を移行する。以降の記載において、ルータ6とルータ3との間で使用される暗号鍵、暗号化アルゴリズムをそれぞれ第2暗号鍵、第2暗号化アルゴリズムとする。S8の処理が、本発明の抽出手段の一例である。
【0074】
S9において、ルータ6のVPN制御部は、暗号化パケットをルータ3のVPN制御部に送信する。暗号化パケットの送信が終了すると、S10に処理を移行する。
【0075】
S10において、ルータ6のVPN制御部から送信された暗号化パケットを受信したルータ3のVPN制御部は、暗号化パケットに付与されたSPIを参照し、第2暗号鍵、および第2暗号化アルゴリズムをルータ3の記憶部に記憶されたSADから抽出する。この第2暗号鍵、および第2暗号化アルゴリズムにより、暗号化パケットを復号する。復号が終了すると、S11に処理を移行する。
【0076】
S11において、ルータ3のVPN制御部は、復号されたパケットのヘッダーに含まれる宛先アドレスを参照して、PC8にパケットを送信する。
【0077】
[ルータの処理負荷が大きい場合の動作]
負荷が大きくなった場合のシーケンスを、図6を参照して説明する。S21において、ルータ6の負荷監視部は、記憶部に記憶されているパケット量に基づき、現在の負荷を検出する。このS21の負荷検出処理は、定期的に実行される。負荷検出の具体的な処理は後述する。現在の負荷を検出するとS22に処理を移行する。S21の処理が、本発明の検出手段の一例である。
【0078】
S22において、負荷監視部は、負荷が、閾値よりも大きいか否かを判断する。この閾値は、予め設定されて、ルータ6の記憶部に記憶される。検出された負荷が閾値よりも大きいと判断した場合、S23に処理を移行する。検出された負荷が閾値よりも小さいと判断した場合は、ハブ&スポーク型で暗号化通信が行われる。S22の処理が、本発明の判断手段の一例である。
【0079】
S23において、負荷監視部は、切替要求を切替制御部に送信する。切替要求は、ルータ6を介さずに暗号化通信する要求である。切替要求を切替制御部に送信すると、S24に処理を移行する。
【0080】
S24において、切替要求を受信した切替制御部は、ルータ6を介さずに暗号化通信させる切替対象をルータ6の記憶部から取得する。切替対象はルータ2〜5の何れかの2つのルータである。具体的に、送信元アドレス、宛先アドレス、始点アドレス、および終点アドレスを切替対象の情報として抽出する。具体的な切替対象の取得処理は、後述する。切替対象の抽出が終了すると、S25に処理を移行する。以下の記載において、切替対象をルータ2、およびルータ3として説明する。また、切替対象にルータ6は含まれない。
【0081】
S25において、切替制御部は、PSKを生成する。このPSKは、ルータ2とルータ3との間でVPNを構築する際に使用される。このPSKは、S1、およびS2におけるVPNの構築の際のPSKと異なる。PSKの生成が終了すると、S26に処理を移行する。PSKが本発明の認証パラメータの一例である。S25の処理が、本発明の生成手段の一例である。
【0082】
S26において、切替制御部は、2つの接続情報パケットを生成する。接続情報パケットは、作成されたPSKと、PC7のアドレス、PC8のアドレス、ルータ2、およびルータ3のIPアドレスとをペイロード部に含む。接続情報パケットの生成が終了すると、S27に処理を移行する。接続情報パケットが本発明のVPN構築情報の一例である。
【0083】
S27において、切替制御部は、2つの接続情報パケットをルータ6のVPN制御部に送信し、S28に処理を移行する。
【0084】
S28において、2つの接続情報パケットを受信したルータ6のVPN制御部は、記憶部に記憶されたSADを参照し、接続情報パケットを暗号化する。一方の接続情報パケットは、第1暗号鍵、および第1暗号化アルゴリズムで暗号化される。他方の接続情報パケットは、第2暗号鍵、および第2暗号化アルゴリズムで暗号化される。接続情報パケットの暗号化が終了すると、S29に処理を移行する。
【0085】
S29において、ルータ6のVPN制御部は、第1暗号鍵、および第1暗号化アルゴリズムで暗号化された接続情報パケットに、ルータ2のIPアドレス、およびSPIを付与する。ルータ6のVPN制御部は、ルータ2のIPアドレス、およびSPIが付与された接続情報パケットをルータ2との間に構築されたVPNを介して、ルータ2のVPN制御部に送信する。ルータ6のVPN制御部は、第2暗号鍵、および第2暗号化方式で暗号化された接続情報パケットにルータ3のIPアドレス、およびSPIを付与する。ルータ6のVPN制御部は、ルータ3のIPアドレス、およびSPIが付与された接続情報パケットをルータ3との間に構築されたVPNを介して、ルータ3のVPN制御部に送信する。接続情報パケットの送信が終了すると、S30に処理を移行する。S29の処理が、本発明の送信手段の一例である。
【0086】
S30において、暗号化された接続情報パケットを受信したルータ2、およびルータ3のVPN制御部は、暗号化された接続情報パケットに付与されたSPIを参照し、第1暗号鍵、および第1暗号化アルゴリズム、または第2暗号鍵、および第2暗号化アルゴリズムを、記憶部に記憶されたSAから抽出する。この第1暗号鍵、および第1暗号化アルゴリズム、または第2暗号鍵、および第2暗号化アルゴリズムにより、暗号化された接続情報パケットを復号する。接続情報パケットの復号が終了すると、S31に処理を移行する。
【0087】
S31において、ルータ2のVPN制御部は、復号化された接続情報パケットに含まれるPC7のIPアドレス、PC8のIPアドレス、およびルータ3のIPアドレスに基づき、SAを抽出する。具体的に、ルータ2のVPN制御部は、宛先アドレスにPC7のIPアドレス、および送信元アドレスにPC8のIPアドレスが含まれるSAと、宛先アドレスにPC8のIPアドレス、および送信元アドレスにPC7のIPアドレスが含まれるSAとを抽出する。抽出されたSAに切替済みフラグを付与する。次に、ルータ2のVPN制御部は、新たにSAを作成する。新たに作成されるSAの宛先アドレス、送信元アドレス、およびプロトコルは、抽出されたSAの宛先アドレス、送信元アドレス、およびプロトコルと同じである。新たに作成されるSAは終点アドレス、および始点アドレスの一方にはルータ3のIPアドレスが記憶され、他方には、ルータ2のIPアドレスが記憶される。一方、ルータ3のVPN制御部は、復号化された接続情報パケットに含まれるPC7のIPアドレス、PC8のIPアドレス、およびルータ2のIPアドレスに基づき、SAを抽出する。具体的に、ルータ3のVPN制御部は、宛先アドレスにPC7のIPアドレス、および送信元アドレスにPC8のIPアドレスが含まれるSAと、宛先アドレスにPC8のIPアドレス、および送信元アドレスにPC7のIPアドレスが含まれるSAとを抽出する。抽出されたSAに切替済みフラグを付与する。次に、ルータ3のVPN制御部は、新たにSAを作成する。新たに作成されるSAの宛先アドレス、送信元アドレス、およびプロトコルは、抽出されたSAの宛先アドレス、送信元アドレス、およびプロトコルと同じである。新たに作成されるSAは終点アドレス、および始点アドレスの一方にはルータ2のIPアドレスが記憶され、他方には、ルータ3のIPアドレスが記憶される。新たなSAの作成、および切替済みフラグの付与が終了すると、S32に処理を移行する。
【0088】
S32において、ルータ2のVPN制御部は、接続情報パケットに含まれるPSKを使用して、ルータ2とルータ3との間でVPNを構築する。PSKは接続情報パケットに含まれ、ルータ2、およびルータ3のIPアドレスと対応付けて記憶部に記憶される。このVPN構築処理は、S1の処理と同様である。VPNの構築が終了すると、ルータ2、およびルータ3のVPN制御部は、VPNの構築過程において作成された暗号鍵、暗号化アルゴリズム、およびSPIを、S31において新たに作成されたSAに付与する。暗号鍵、暗号化アルゴリズム、およびSPIの付与が終了すると、S33に処理を移行する。以降の記載において、S32の処理において生成された暗号鍵、および暗号化アルゴリズムを第3暗号鍵、および第3暗号化アルゴリズムとする。
【0089】
S33において、ルータ2のVPN制御部は、ルータ6のVPN制御部に切替完了通知を送信する。この切替完了通知は、ルータ2とルータ3との間でVPNが構築されたことを示す通知である。切替完了通知を送信するとS34に処理を移行する。
【0090】
S34において、ルータ6のVPN制御部は、切替対象を記憶部に記憶する。すなわち、接続情報パケットを送信したルータを示す情報を記憶部に記憶する。具体的には、宛先アドレス、および送信元アドレスにPC7、およびPC8のIPアドレスが記憶され、始点アドレス、または終点アドレスにルータ2、またはルータ3のIPアドレスが付与されているSAに切替済みフラグを立てる。切替済みフラグを立てると、S35に処理を移行する。
【0091】
S35において、ルータ2のVPN制御部は、PC7から暗号化されていないパケットを受信する。このパケットは、図9(a)に示すように、PC8のIPアドレスが宛先アドレスに指定されているパケットである。PC7から送信されたパケットを受信すると、S36に処理を移行する。
【0092】
S36において、ルータ2のVPN制御部は、宛先アドレスに指定されたIPアドレス、および記憶部に記憶されたSPDを参照することにより、宛先のPC8に暗号化通信でパケットを送信することを判断する。暗号化通信でパケットを送信することを判断すると、記憶部に記憶され、切替済みフラグが付与されていないSAを参照する。SAは、終点アドレスがルータ3のIPアドレスであるので、第3暗号鍵、および第3暗号化アルゴリズムをSAから抽出する。次に、PC7から送信されたパケットを、第3暗号鍵、および第3暗号化アルゴリズムにより暗号化する。暗号化されたパケットのヘッダーに宛先アドレス、始点アドレス、およびSPIを付与する。ルータ3のIPアドレスが宛先アドレスに指定され、ルータ2のIPアドレスが始点アドレスに指定される。暗号化が終了すると、S37に処理を移行する。
【0093】
S37の処理において、ルータ2のVPN制御部は、暗号化パケットをルータ3のVPN制御部に送信する。暗号化パケットの送信が終了すると、S38に処理を移行する。
【0094】
S38において、ルータ3のVPN制御部は、ルータ2から送信された暗号化パケットを受信する。次に、暗号化パケットのヘッダーに付与されたSPIから第3暗号鍵、および第3暗号化アルゴリズムを抽出し、暗号化パケットを復号する。復号が終了するとS39に処理を移行する。
【0095】
S39において、ルータ3のVPN制御部は、復号されたパケットに指定された宛先IPアドレスに従い、PC8にパケットを送信する。
【0096】
[負荷検出処理]
図10を参照して、ルータ6の負荷監視部の処理である負荷検出処理を説明する。S301において、タイマをゼロにセットする。タイマをゼロにセットすると、S302に処理を移行する。
【0097】
S302において、図5に示すS6において復号されたパケットを、S6で復号された順に抽出する。復号されたパケットの抽出が終了すると、S303に処理を移行する。図5に示すS5においてルータ6に受信されたパケットは、CPU21により、復号される。次に、復号されたパケットは、CPU21により、暗号化される。CPU21がルータ6に受信されたパケットを復号、暗号化する変換処理が、本発明のデータを復号する処理、およびデータを暗号化する変換処理である。この変換処理によりCPU21にかかる負担が、本発明の変換処理負荷の一例である。
【0098】
S303において、抽出されたパケットのペイロード部に含まれるデータのプロトコルはリアルタイム性が求められるプロトコルであるか否かを判断する。リアルタイム性が求められるプロトコルは、RTP、UDP(User Datagram Protocol)、RTSP(Real Time Streaming Protocol)などが挙げられる。リアルタイム性があると判断すると、S304に処理を移行する。リアルタイム性がないと判断すると、S305に処理を移行する。
【0099】
S304において、ルータ6の記憶部に記憶されたテーブル1を選択する。図11にテーブル1の内容を示す。図11に示すように、テーブル1は、宛先アドレス、送信元アドレス、プロトコル、bps計測用フィールド、およびbpsフィールドの項目を1レコードとして記憶している。テーブル1の選択が終了すると、S306に処理を移行する。
【0100】
S305において、ルータ6の記憶部に記憶されたテーブル2を選択する。図12にテーブル2の内容を示す。図12に示すように、テーブル2は、宛先アドレス、送信元アドレス、プロトコル、bps計測用フィールド、およびbpsフィールドの項目を1レコードとして記録している。テーブル2の選択が終了すると、S306に処理を移行する。
【0101】
S306において、宛先アドレス、送信元アドレス、およびプロトコルが合致するレコードがテーブル1、またはテーブル2にあるか否かを判断する。レコードがあると判断すると、S307に処理を移行する。レコードがないと判断すると、S308に処理を移行する。
【0102】
S307において、合致したレコードのbps計測用フィールドを更新する。具体的には、復号されたパケットのペイロード部のデータサイズをbps計測用フィールドの値に加算する。更新が終了すると、S309に処理を移行する。
【0103】
S308において、ペイロード部に含まれるデータのプロトコルに従い、新規のレコードをテーブル1、またはテーブル2に登録する。登録が終了すると、復号パケットのペイロード部のデータサイズをbps計測用フィールドの値に加算する。新規のレコードの登録が終了すると、S309に処理を移行する。
【0104】
S309において、タイマが1秒経過したか否かを判断する。1秒経過したと判断すると、S310に処理を移行する。1秒経過していないと判断すると、S302に処理を移行する。
【0105】
S310において、テーブル1、およびテーブル2のbps計測用フィールドの値を全て対応するbpsフィールドに上書きする。次に、テーブルごとのbpsフィールドの和を計算する。次に、テーブル1のbpsフィールドの和とテーブル2のbpsフィールドの和とを足し合わせ、全てのbpsフィールドの和を算出する。全てのbpsフィールドの和を算出すると、S311に処理を移行する。全てのbpsフィールドの和が本発明の変換処理負荷の一例である。
【0106】
S311において、テーブル1、およびテーブル2の全てのbps計測用フィールドの値をゼロにする。全てのbps計測用フィールドの値をゼロにすると、S301に処理を移行する。
【0107】
[切替対象決定処理]
図13を参照して、ルータ6の負荷監視部、および切替制御部の切替対象決定処理を説明する。S401において、トラフィックが閾値を超えているか否かを判断する。具体的には、図10に示すS310において、算出された全てのbpsフィールドの和が予め定められた、閾値を超えているか否かを判断する。閾値を超えていると判断すると、S402に処理を移行する。超えていないと判断すると、S401に処理を移行する。S401の処理は、図6に示すS22の処理である。
【0108】
S402において、ルータ6の負荷監視部は切替要求を切替制御部に送信する。切替要求の送信が終了すると、S403に処理を移行する。S402の処理は、図6に示すS23の処理である。
【0109】
S403において、切替制御部は、bpsフィールドがゼロで無いレコードがテーブル1にあるか否かを判断する。bpsフィールドがゼロで無いレコードがテーブル1にあると判断するとS404に処理を移行する。bpsフィールドがゼロで無いレコードがテーブル1にない、または、レコードが1つもテーブル1にないと判断すると、S405に処理を移行する。
【0110】
S404において、切替制御部は、テーブル1のbpsフィールドがゼロで無いレコードを抽出する。次に、抽出されたレコードの宛先アドレス、および送信元アドレスに対応するルータごとのbpsフィールドの和を算出する。宛先アドレス、および送信元アドレスに対応する2つのルータがSADから抽出される。算出された和が一番大きいルータのIPアドレスがSADから抽出される。この2つのIPアドレスに対応する2つのルータを切替対象とする。切替対象のルータのIPアドレス、およびこのルータのIPアドレスとSAにおいて関連付けられた宛先アドレス、および送信元アドレスが、上述した接続情報パケットに含まれる。切替対象の決定が終了すると、S401に処理を移行する。
【0111】
S405において、切替制御部は、テーブル2の宛先アドレス、および送信元アドレスに対応するルータごとのbpsフィールドの和を算出する。算出された和が一番大きい2つのルータのIPアドレスをSADから抽出する。この2つのルータのIPアドレスに対応する2つのルータを切替対象とする。切替対象のルータのIPアドレス、およびこのルータのIPアドレスとSAにおいて関連付けられた宛先アドレス、および送信元アドレスが、上述した接続情報パケットに含まれる。切替対象の決定が終了すると、S401に処理を移行する。S404、またはS405の処理が図6に示すS24の処理である。
【0112】
[ルータの処理負荷が低くなったことを検出した場合の動作]
図14を参照して、ルータ2とルータ3との間でVPNが構築された状態において、ルータ6が、処理負荷が低くなったことを検出した場合を説明する。S51において、ルータ6の負荷監視部は、記憶部に記憶されたテーブル1とテーブル2とのbpsフィールドの総和が予め定められた閾値以下になったことを検出する。図10に示すS310の処理において、bpsフィールドの総和が予め定められた閾値以下になったことを検出すると、S52に処理を移行する。
【0113】
S52において、ルータ6の負荷監視部は、ルータ6の切替制御部に切替要求を送信する。切替要求の送信が終了すると、S53に処理を移行する。
【0114】
S53において、ルータ6の切替制御部は、図6に示すS34において、ルータ6の記憶部に記憶されたSADを参照し、切替済みフラグが立てられたSAを抽出する。抽出されたSAの始点アドレス、および終点アドレスに対応するルータを切替済み端末として抽出する。切替済み端末の抽出が終了すると、S54に処理を移行する。以降の記載では、切替済み端末をルータ2、およびルータ3として説明する。
【0115】
S54において、ルータ6の切替制御部は、切断情報パケットを生成する。切断情報パケットは、ペイロード部にルータ2、およびルータ3のIPアドレスを含む。切断情報パケットの生成が終了すると、S55に処理を移行する。切断情報パケットが、本発明の負荷軽減通知の一例である。
【0116】
S55において、切断情報パケットをルータ6のVPN制御部に送信する。切断情報パケットの送信が終了すると、S56に処理を移行する。
【0117】
S56において、ルータ6のVPN制御部は、ルータ2、およびルータ3に切断情報パケットを送信する。切断情報パケットの送信が終了すると、S57に処理を移行する。
【0118】
S57において、ルータ2のVPN制御部は、切断処理を実行する。ルータ2のVPN制御部は、切断情報パケットに含まれるルータ2、およびルータ3のIPアドレスを参照し、SAの始点アドレスがルータ2のIPアドレス、および終点アドレスがルータ3のIPアドレスであるSAを抽出する。抽出されたSAをSADから削除する。次に、切替済みフラグが付与されたSA、かつ始点アドレスがルータ2のIPアドレス、および終点アドレスがルータ6のIPアドレスであるSAを抽出する。この抽出されたSAに付与された切替済みフラグを削除する。S57において、ルータ3のVPN制御部は、切断情報パケットに含まれるルータ2、およびルータ3のIPアドレスを参照し、SAの始点アドレスがルータ3のIPアドレス、および終点アドレスがルータ2のIPアドレスであるSAを抽出する。抽出されたSAをSADから削除する。次に、切替済みフラグが付与されたSA、かつ始点アドレスがルータ3のIPアドレス、および終点アドレスがルータ6のIPアドレスであるSAを抽出する。この抽出されたSAに付与された切替済みフラグを削除する。切断処理が完了すると、S58に処理を移行する。
【0119】
S58において、ルータ2のVPN制御部、およびルータ3のVPN制御部は、切断完了通知をルータ6に送信する。切断完了通知は、S57におけるSAの削除および切替済みフラグの削除を示す。切断完了通知の送信が終了すると、S59に処理を移行する。
【0120】
S59において、ルータ6の切替制御部は、切替対象を削除する。具体的には、ルータ6のVPN制御部は、記憶部に記憶されたSAのうち、始点アドレス、および終点アドレスがルータ2、およびルータ3のIPアドレスであるSAに付与された切替済みフラグを削除する。
【0121】
S60〜S65において、ルータ2のVPN制御部は、PC7から送信されたパケットを暗号化通信でルータ3に送信する。この処理は、図5に示すS3〜S9の処理と同様である。S66、およびS67において、ルータ3のVPN制御部は、ルータ6から送信された暗号化パケットを復号し、復号されたパケットをPC8に送信する。この処理は、図5に示すS10、およびS11の処理と同様である。
【0122】
[実施形態の効果]
本実施形態のルータ6によれば、S22において処理負荷が大きいと判断された場合、S29においてルータ2とルータ3との少なくともいずれか一方のルータに、他方のルータのIPアドレスと、接続情報パケットが送信される。これにより、他方のルータのIPアドレス、および接続情報パケットを受信した一方のルータは、ルータ6を介さずに、他方のルータとVPNを介した暗号化通信を行うことが可能である。すなわち、ルータ6において、パケットを復号する処理、およびパケットを暗号化する処理の変換処理負荷が軽減される。従って、ルータ3へ送信されるべきデータが遅れて送信される場合、またはルータ3へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0123】
本実施形態のルータ6によれば、他方のルータのIPアドレスと、接続情報パケットとが、S1、またはS2により構築されるVPNを介して一方のルータに送信される。従って、他方のルータのIPアドレスと、接続情報パケットとが、VPNを介さずに一方のルータに送信されるよりも、IPアドレスと、接続情報パケットとが、ルータ2、ルータ3、およびルータ6以外の他の装置に漏洩することを抑えることが出来る。
【0124】
本実施形態のルータ6によれば、S1の処理、またはS2の処理によりVPNが構築される際の通信相手の認証に用いられるPSKと異なるPSKが、S25において生成される。すなわち、認証パラメータは、ルータ6で新規に生成される。PSKが、S1の処理、またはS2の処理によりVPNが構築される際の通信相手の認証に用いられるPSKと同じPSKが接続情報パケットに含まれると、ルータ2、ルータ3、およびルータ6が同じPSKを保持することになる。PSKが複数のルータに保持されると、VPNを構築するルータと一意に認証することが出来なくなる可能性がある。これに対し、本実施形態のルータ6によれば、S1の処理、またはS2の処理によりVPNが構築される際の通信相手の認証に用いられるPSKと異なるPSKが生成される。このPSKは、ルータ2、およびルータ3に送信され、ルータ2とルータ3との間でVPNが構築される際の通信相手の認証に用いられる。よって、ルータ2、ルータ3、およびルータ6が同じPSKで認証されることが無い。従って、各ルータを一意に認証することが出来る。これと共に、PSKがルータ6において生成されるので、PSKの管理が容易になる。従って、ルータ2とルータ3とがVPNを構築する際の通信相手の認証の精度を高く出来ると共に、PSKの管理を容易にすることが出来る。
【0125】
本実施形態のルータ6によれば、リアルタイム性が求められるデータを送信、および受信するルータ2とルータ3とに、他方のルータのIPアドレスと接続情報パケットとが送信される。音声通信などに使用されるデータは、リアルタイム性が求められる。このリアルタイム性が求められるデータが多く含まれるルータ2とルータ3との間の暗号化通信が、ルータ6を介さずに実行される。従って、ルータ3へ送信されるべきリアルタイム性が求められるデータが遅れて送信される場合、またはルータ3へ送信されるべきリアルタイム性が求められるデータが送信されない場合の発生頻度を低減させることが出来る。
【0126】
本実施形態のルータ6によれば、ルータ6は、処理負荷が、予め定められた閾値よりも小さいと判断すると、接続情報パケットを送信したルータ2、およびルータ3に切断情報パケットを送信する。切断情報パケットを受信したルータ2、およびルータ3は、再び、ルータ6を介した暗号化通信を行うことが可能である。これにより、ルータ6を介した暗号化通信を行った場合、ルータ3へ送信されるべきデータが遅れて送信される場合、またはルータ3へ送信されるべきデータが送信されない場合の発生頻度を低減することが出来る。
【0127】
[変形例1]
本実施形態では、PCがルータ2〜5に接続され、パケットを送信したが、IP電話機スマートフォンなどの端末装置が、ルータ2〜5に接続され、パケットを送信してもよい。また、アナログ電話などの端末装置がルータ2〜5に接続され、ルータ2〜5がアナログ電話機からの信号をデジタルデータに変換してもよい。このデジタルデータがパケットを構成する。
【0128】
[変形例2]
本実施形態では、S25の処理においてPSKが生成されたが、新たにPSKを生成しなくても良い。S26において、ルータ6の切替制御部は、ルータ2、およびルータ3のIPアドレス、およびS2の処理において、ルータ3とルータ6との認証に使用されたPSKを含む接続情報パケットを生成しても良い。VPN制御部は、S28において、この接続情報パケットを暗号化し、ルータ2に送信する。ルータ2は、ルータ3のIPアドレスに基づいて、ISAKMP SA生成要求をルータ3に送信し、ルータ3とルータ6との間でVPNが構築された際のPSKに基づきVPNを構築する。これにより、ルータ6が接続情報パケットをルータ3に送信しなくても、ルータ2とルータ3との間でVPNが構築される。同様に、S26において、ルータ6の切替制御部は、ルータ2、およびルータ3のIPアドレス、およびS1の処理において、ルータ2とルータ6との認証に使用されたPSKを含む接続情報パケットを生成しても良い。ルータ6は、この接続情報パケットをルータ3にのみ送信してもよい。
【0129】
[変形例3]
本実施形態では、S26において、ルータ6のVPN制御部は、PC7、PC8、ルータ2、およびルータ3のIPアドレス、およびPSKを接続情報パケットに含んだが、これに限られない。S25の処理において、ルータ6のVPN制御部は、暗号化アルゴリズムをPSKと共に生成し、PC7、PC8、ルータ2、およびルータ3のIPアドレス、PSK、暗号化アルゴリズムを接続情報パケットに含んでも良い。これにより、S32のVPN構築の際のフェーズ2の処理において、暗号化アルゴリズムを決定する処理を省略することが出来る。同様に、接続情報パケットは、フェーズ1の処理をメインモードで実行するか、アグレッシブモードで行うかを指定するモード指定情報を含んでも良い。
【0130】
[変形例4]
本実施形態では、接続情報パケットは、S25において作成されたPSKと、PC7、PC8、ルータ2、およびルータ3のIPアドレスとがペイロード部に含まれたが、これに限られない。図13に示すS404、またはS405において、テーブル1、またはテーブル2の宛先アドレス、送信元アドレス、およびプロトコルごとのbpsフィールドの和を算出する。次に、プロトコルごとの算出された和が一番大きい宛先アドレス、および送信元アドレスに対応するルータのIPアドレスをSADから抽出する。この2つのIPアドレスに対応する2つのルータを切替対象とする。この2つのルータは、ルータ2、およびルータ3であるとして、説明する。接続情報パケットは、S25において作成されたPSKと、PC7、PC8、ルータ2、およびルータ3のIPアドレスと、プロトコルとを含む。S31において、ルータ2のVPN制御部は、復号化された接続情報パケットに含まれるPC7のIPアドレス、PC8のIPアドレス、ルータ3のIPアドレス、およびプロトコルに基づき、SAを抽出する。具体的に、ルータ2のVPN制御部は、宛先アドレスにPC7のIPアドレス、送信元アドレスにPC8のIPアドレス、および接続情報パケットに含まれるプロトコルと一致する上位層プロトコルが含まれるSAと、宛先アドレスにPC8のIPアドレス、送信元アドレスにPC7のIPアドレス、および接続情報パケットに含まれるプロトコルと一致する上位層プロトコルが含まれるSAとを抽出する。抽出されたSAに切替済みフラグを付与する。次に、ルータ2のVPN制御部は、新たにSAを作成する。新たに作成されるSAの宛先アドレス、送信元アドレス、およびプロトコルは、抽出されたSAの宛先アドレス、送信元アドレス、およびプロトコルと同じである。新たに作成されるSAは終点アドレス、および始点アドレスの一方にはルータ3のIPアドレスが記憶され、他方には、ルータ2のIPアドレスが記憶される。一方、ルータ3のVPN制御部は、復号化された接続情報パケットに含まれるPC7のIPアドレス、PC8のIPアドレス、ルータ2のIPアドレス、およびプロトコルに基づき、SAを抽出する。具体的に、ルータ3のVPN制御部は、宛先アドレスにPC7のIPアドレス、送信元アドレスにPC8のIPアドレス、および接続情報パケットに含まれるプロトコルと一致する上位層プロトコルが含まれるSAと、宛先アドレスにPC8のIPアドレス、送信元アドレスにPC7のIPアドレス、および接続情報パケットに含まれるプロトコルと一致する上位層プロトコルが含まれるSAとを抽出する。抽出されたSAに切替済みフラグを付与する。次に、ルータ3のVPN制御部は、新たにSAを作成する。新たに作成されるSAの宛先アドレス、送信元アドレス、およびプロトコルは、抽出されたSAの宛先アドレス、送信元アドレス、およびプロトコルと同じである。新たに作成されるSAは終点アドレス、および始点アドレスの一方にはルータ2のIPアドレスが記憶され、他方には、ルータ3のIPアドレスが記憶される。これにより、ルータ6の処理負荷が大きい場合は、PC7〜10から送信されるパケットのペイロード部に含まれるプロトコルごとに、ルータ6を介さずに暗号化通信される。
【0131】
[変形例5]
本実施形態では、ルータ6の監視部が、他のルータから送信された暗号化パケットを復号し、この復号されたパケットの宛先アドレス、送信元アドレス、およびプロトコルに従い、ペイロード部のデータ量をテーブル1、またはテーブル2に記憶したが、これに限られない。ルータ6の監視部が、復号されたパケットの宛先アドレス、送信元アドレス、およびプロトコルを1つのテーブルに記憶してもよい。この場合、図13に示すS403の処理は実行されず、1つのテーブルに記憶されたbpsフィールドの一番大きい宛先アドレス、および送信元アドレスと関連付けられるPC、またはルータが切替対象となる。
【0132】
[変形例6]
本実施形態では、PSKはルータのIPアドレスと関連付けられて、各ルータに記憶されたが、fqdn(Fully Qualified Domain Name)など、ルータを特定する情報であればよい。メインモードでフェーズ1の処理が行われる場合は、PSKから生成されたハッシュ値は暗号化される。従って、ルータを特定する情報は、IPアドレスでしかない。よって、このIPアドレスが動的IPアドレスである場合は、認証を行うことが出来ない。すなわち、ルータのIPアドレスが動的IPアドレスである場合は、IPアドレス以外のルータを特定する情報が用いられる。IPアドレス以外のルータを特定する情報として、fqdnなどの特定情報が用いられれば良い。よって、fqdnなどの特定情報が接続情報パケットに含められる。アグレッシブモードで認証が実行される場合は、IPアドレスが動的IPアドレスでもよい。アグレッシブモードで認証が実行され、ルータを特定する情報がIPアドレスであれば、fqdnなどの特定情報は接続情報パケットに含められなくてよい。
【0133】
[変形例7]
本実施形態では、S310において算出された全てのbpsフィールドの和が、予め定められた閾値を超えているか否かを判断することにより、処理負荷が閾値よりも大きいか否かを判断したが、これに限られない。ルータ6のCPUは、他のルータから送信され、ルータ6に受信されたパケットを復号、および暗号化する変換処理の他に、ルータ6に接続されるPCから送信されたパケットを暗号化する変換処理負荷、ルータ6に接続されるPCへ送信するパケットを暗号化、および復号する変換処理負荷、ルータ6に接続されるPCが暗号化通信されないパケットを送受信するためのルーティング処理負荷などの処理負荷の総和が予め定められた閾値を超えているか否かを判断しても良い。処理負荷の総和が本発明の処理負荷の一例である。
【0134】
[変形例8]
本実施形態では、PSKが用いられたが、これに限られない。S25において、ルータ6の切替制御部は、PSKの代わりに、秘密鍵、および公開鍵を生成する。S26において、ルータ3に送信する接続情報パケットに秘密鍵を含め、ルータ2に送信する接続情報パケットに公開鍵を含める。S32において、ルータ2、およびルータ3のVPN制御部は、公開鍵、および秘密鍵を使用して、VPNを構築してもよい。この公開鍵、および秘密鍵が本発明の認証パラメータの一例である。
【符号の説明】
【0135】
1 暗号化通信システム
2〜6 ルータ
7〜10 PC
21 CPU
22 記憶手段
【特許請求の範囲】
【請求項1】
複数の通信装置と暗号化通信する中継装置であって、
前記複数の通信装置のIPアドレスを記憶する記憶手段と、
前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築手段と、
前記第1構築手段により構築されたVPNを介して暗号化されたデータを受信する受信手段と、
前記受信手段により受信された暗号化データを復号する復号手段と、
前記復号手段により復号されたデータに指定された宛先のIPアドレスから前記受信手段により受信されたデータを送信する第2通信装置のIPアドレスを前記記憶手段から抽出する抽出手段と、
前記第2通信装置との間でVPNを構築する第2構築手段と、
データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出手段と、
前記検出手段により検出された処理負荷が閾値よりも大きいか否かを判断する判断手段と、
前記判断手段により処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信手段と、
を備えることを特徴とする中継装置。
【請求項2】
前記送信手段は、前記第1構築手段、および前記第2構築手段の少なくとも1つの構築手段により構築されるVPNを介して前記他方の通信装置のIPアドレスと、前記VPN構築情報とを送信すること
を特徴とする請求項1に記載の中継装置。
【請求項3】
前記第1構築手段によりVPNが構築される際、および前記第2構築手段によりVPNが構築される際の通信相手の認証に用いられるパラメータと異なる前記認証パラメータを生成する生成手段を備え、
前記送信手段は、前記生成手段により生成された認証パラメータを前記他方の通信装置に送信する
ことを特徴とする請求項1または2に記載の中継装置。
【請求項4】
前記検出手段は、前記復号する処理、および暗号化する処理に含まれるデータのうち、リアルタイム性が求められるデータの変換処理負荷を前記処理負荷の一部として検出し、
前記判断手段が、処理負荷が大きいと判断すると、前記送信手段は、前記複数の通信装置のうち、リアルタイム性が求められるデータを送信、および受信する前記第1通信装置と前記第2通信装置とを抽出し、少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記VPN構築情報と、を送信すること
を特徴とする請求項1〜3のいずれかに記載の中継装置。
【請求項5】
前記送信手段は、前記判断手段が、処理負荷が大きいと判断した後に、前記検出手段により検出された処理負荷が閾値よりも小さくなったと判断した場合、前記第1通信装置、および前記第2通信装置に負荷軽減通知を送信すること
を特徴とする請求項1〜4のいずれかに記載の中継装置。
【請求項6】
複数の通信装置が中継装置を介して暗号化通信する暗号化通信システムであって、
前記中継装置は、
前記複数の通信装置のIPアドレスを記憶する記憶手段と、
前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築手段と、
前記第1構築手段により構築されたVPNを介して暗号化されたデータを受信する中継装置受信手段と、
前記中継装置受信手段により受信されたデータを復号する復号手段と
前記復号手段により復号されたデータに指定された宛先のIPアドレスから前記中継装置受信手段により受信されたデータを送信する第2通信装置のIPアドレスを前記記憶手段から抽出する抽出手段と、
前記第2通信装置との間でVPNを構築する第2構築手段と、
データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出手段と、
前記検出手段により検出された処理負荷が閾値よりも大きいか否かを判断する判断手段と、
前記判断手段により処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する中継装置送信手段と、
を備え、
前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置は、
前記他方の通信装置のIPアドレスと、前記VPN構築情報と、を受信する通信装置受信手段と、
前記通信装置受信手段により受信された前記他方の通信装置のIPアドレスで指定される通信装置と、前記認証パラメータに基づきVPNを構築する通信装置構築手段と、
前記通信装置構築手段により構築されたVPNを介して暗号化されたデータを前記他方の通信装置に送信する通信装置送信手段と、
を備えることを特徴とする暗号化通信システム。
【請求項7】
複数の通信装置と暗号化通信する中継装置に使用される暗号化通信方法であって、
前記複数の通信装置のうちの第1通信装置との間で構築されたVPNを介して暗号化されたデータを受信する受信ステップと、
前記受信ステップにより受信されたデータを復号する復号ステップと、
前記復号ステップにより復号されたデータに指定された宛先のIPアドレスから前記受信ステップにより受信されたデータを送信する第2通信装置のIPアドレスを、前記複数の通信装置のIPアドレスを記憶する記憶手段から抽出する抽出ステップと、
データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出ステップと、
前記検出ステップにより検出された処理負荷が閾値よりも大きいか否かを判断する判断ステップと、
前記判断ステップにより処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信ステップと、
を備えることを特徴とする暗号化通信方法。
【請求項8】
複数の通信装置と暗号化通信する中継装置を制御するコンピュータに、
前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築ステップと、
前記第1構築ステップにより構築されたVPNを介して暗号化されたデータを受信する受信ステップと、
前記受信ステップにより受信されたデータを復号する復号ステップと、
前記復号ステップにより復号されたデータに指定された宛先のIPアドレスから前記第1受信ステップにより受信されたデータを送信する第2通信装置のIPアドレスを、前記複数の通信装置のIPアドレスを記憶する記憶手段から抽出する抽出ステップと、
データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出ステップと、
前記検出ステップにより検出された処理負荷が閾値よりも大きいか否かを判断する判断ステップと、
前記判断ステップにより処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信ステップと、
を実行させることを特徴とする暗号化通信プログラム。
【請求項1】
複数の通信装置と暗号化通信する中継装置であって、
前記複数の通信装置のIPアドレスを記憶する記憶手段と、
前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築手段と、
前記第1構築手段により構築されたVPNを介して暗号化されたデータを受信する受信手段と、
前記受信手段により受信された暗号化データを復号する復号手段と、
前記復号手段により復号されたデータに指定された宛先のIPアドレスから前記受信手段により受信されたデータを送信する第2通信装置のIPアドレスを前記記憶手段から抽出する抽出手段と、
前記第2通信装置との間でVPNを構築する第2構築手段と、
データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出手段と、
前記検出手段により検出された処理負荷が閾値よりも大きいか否かを判断する判断手段と、
前記判断手段により処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信手段と、
を備えることを特徴とする中継装置。
【請求項2】
前記送信手段は、前記第1構築手段、および前記第2構築手段の少なくとも1つの構築手段により構築されるVPNを介して前記他方の通信装置のIPアドレスと、前記VPN構築情報とを送信すること
を特徴とする請求項1に記載の中継装置。
【請求項3】
前記第1構築手段によりVPNが構築される際、および前記第2構築手段によりVPNが構築される際の通信相手の認証に用いられるパラメータと異なる前記認証パラメータを生成する生成手段を備え、
前記送信手段は、前記生成手段により生成された認証パラメータを前記他方の通信装置に送信する
ことを特徴とする請求項1または2に記載の中継装置。
【請求項4】
前記検出手段は、前記復号する処理、および暗号化する処理に含まれるデータのうち、リアルタイム性が求められるデータの変換処理負荷を前記処理負荷の一部として検出し、
前記判断手段が、処理負荷が大きいと判断すると、前記送信手段は、前記複数の通信装置のうち、リアルタイム性が求められるデータを送信、および受信する前記第1通信装置と前記第2通信装置とを抽出し、少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記VPN構築情報と、を送信すること
を特徴とする請求項1〜3のいずれかに記載の中継装置。
【請求項5】
前記送信手段は、前記判断手段が、処理負荷が大きいと判断した後に、前記検出手段により検出された処理負荷が閾値よりも小さくなったと判断した場合、前記第1通信装置、および前記第2通信装置に負荷軽減通知を送信すること
を特徴とする請求項1〜4のいずれかに記載の中継装置。
【請求項6】
複数の通信装置が中継装置を介して暗号化通信する暗号化通信システムであって、
前記中継装置は、
前記複数の通信装置のIPアドレスを記憶する記憶手段と、
前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築手段と、
前記第1構築手段により構築されたVPNを介して暗号化されたデータを受信する中継装置受信手段と、
前記中継装置受信手段により受信されたデータを復号する復号手段と
前記復号手段により復号されたデータに指定された宛先のIPアドレスから前記中継装置受信手段により受信されたデータを送信する第2通信装置のIPアドレスを前記記憶手段から抽出する抽出手段と、
前記第2通信装置との間でVPNを構築する第2構築手段と、
データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出手段と、
前記検出手段により検出された処理負荷が閾値よりも大きいか否かを判断する判断手段と、
前記判断手段により処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する中継装置送信手段と、
を備え、
前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置は、
前記他方の通信装置のIPアドレスと、前記VPN構築情報と、を受信する通信装置受信手段と、
前記通信装置受信手段により受信された前記他方の通信装置のIPアドレスで指定される通信装置と、前記認証パラメータに基づきVPNを構築する通信装置構築手段と、
前記通信装置構築手段により構築されたVPNを介して暗号化されたデータを前記他方の通信装置に送信する通信装置送信手段と、
を備えることを特徴とする暗号化通信システム。
【請求項7】
複数の通信装置と暗号化通信する中継装置に使用される暗号化通信方法であって、
前記複数の通信装置のうちの第1通信装置との間で構築されたVPNを介して暗号化されたデータを受信する受信ステップと、
前記受信ステップにより受信されたデータを復号する復号ステップと、
前記復号ステップにより復号されたデータに指定された宛先のIPアドレスから前記受信ステップにより受信されたデータを送信する第2通信装置のIPアドレスを、前記複数の通信装置のIPアドレスを記憶する記憶手段から抽出する抽出ステップと、
データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出ステップと、
前記検出ステップにより検出された処理負荷が閾値よりも大きいか否かを判断する判断ステップと、
前記判断ステップにより処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信ステップと、
を備えることを特徴とする暗号化通信方法。
【請求項8】
複数の通信装置と暗号化通信する中継装置を制御するコンピュータに、
前記複数の通信装置のうちの第1通信装置との間でVPNを構築する第1構築ステップと、
前記第1構築ステップにより構築されたVPNを介して暗号化されたデータを受信する受信ステップと、
前記受信ステップにより受信されたデータを復号する復号ステップと、
前記復号ステップにより復号されたデータに指定された宛先のIPアドレスから前記第1受信ステップにより受信されたデータを送信する第2通信装置のIPアドレスを、前記複数の通信装置のIPアドレスを記憶する記憶手段から抽出する抽出ステップと、
データを復号する処理、およびデータを暗号化する処理の変換処理負荷を含む処理負荷を検出する検出ステップと、
前記検出ステップにより検出された処理負荷が閾値よりも大きいか否かを判断する判断ステップと、
前記判断ステップにより処理負荷が大きいと判断された場合、前記第1通信装置と前記第2通信装置との少なくともいずれか一方の通信装置に、他方の通信装置のIPアドレスと、前記第1通信装置と前記第2通信装置との間でVPNが構築される際の通信相手の認証に用いられる認証パラメータを含むVPN構築情報と、を送信する送信ステップと、
を実行させることを特徴とする暗号化通信プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2013−77957(P2013−77957A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2011−216317(P2011−216317)
【出願日】平成23年9月30日(2011.9.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願日】平成23年9月30日(2011.9.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
[ Back to top ]