(57)【特許請求の範囲】
【請求項１】
ＶＰＮ（Virtual Private Network）を用いて他の中継装置に接続し、前記他の中継装置に接続される通信端末と自装置に接続される通信端末とにおける通信を中継する中継装置であって、
前記他の中継装置との接続により構造化オーバレイを構成するとともに、当該構造化オーバレイを利用して、前記通信に用いられるデータを暗号化および復号化する鍵を管理する分散データベースを、当該構造化オーバレイを構成する中継装置間で分散管理するオーバレイ構成手段と、
前記鍵の有効期間が到来する前に新しい鍵を生成する生成手段と、
前記生成手段が前記新しい鍵を生成すると、前記構造化オーバレイを構成する中継装置間で分散管理された分散データベースに当該新しい鍵を登録する登録手段と
を具備することを特徴とする中継装置。
【請求項２】
前記生成手段が前記新しい鍵を生成しなかった場合、前記鍵の有効期間が到来する前に、前記構造化オーバレイを構成する中継装置間で分散管理された分散データベースを検索して前記新しい鍵を取得する取得手段
を具備することを特徴とする請求項１に記載の中継装置。
【請求項３】
前記生成手段が前記新しい鍵を生成すると、前記構造化オーバレイを構成する他の中継装置に前記新しい鍵を配布する配布手段
を具備することを特徴とする請求項１または請求項２に記載の中継装置。
【請求項４】
前記鍵は、前記構造化オーバレイを構成する中継装置間による通信において共通の鍵である
ことを特徴とする請求項１乃至請求項３のいずれかに記載の中継装置。
【請求項５】
前記生成手段は前記構造化オーバレイを構成する中継装置毎に前記鍵を生成する
ことを特徴とする請求項１乃至請求項３のいずれかに記載の中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＬＡＮ（Local Area Network）をＶＰＮ（Virtual Private Network
）により相互に接続する技術に関する。
【背景技術】
【０００２】
ＬＡＮなどのネットワーク間を相互に接続するための中継装置であるＶＰＮルータは、ネットワーク間で行われる通信をトンネリング・暗号化して通信データの中継をする。ＶＰＮを実現するプロトコルとしては、ＩＰｓｅｃ（Security Architecture for Internet
Protocol）、ＰＰＴＰ（Point-to-Point Tunneling Protocol）、Ｌ２ＴＰ（Layer-2 Tunneling Protocol）が広く用いられている。
【０００３】
一般に、ＶＰＮルータにおいてＶＰＮの設定を行うときには、拠点毎に暗号鍵の設定を行う必要があり、その設定作業が複雑になることが多い。そのため、設定作業を簡素化する技術として、設定内容や暗号鍵をサーバで一元的に生成および管理し、ネットワークを介して各ルータに提供する技術が、例えば、特許文献１、２に開示されている。ただし、この技術においては、サーバに処理の負荷が集中するため、大規模なネットワークへの適用が難しく、サーバが故障するとシステム全体が動作しなくなる。
【０００４】
ところで、端末間における通信において、分散ハッシュテーブルなどの構造化オーバレイを用いる技術が、例えば、特許文献３に開示されている。この技術によれば、通信への参加離脱において、設定を変更する必要がなく、設定内容や暗号鍵を一元管理するサーバも不要である。
【０００５】
一方、特許文献４、５には、ＶＰＮのように通信経路を暗号化するのではなく、ネットワーク間で行われる通信において、コンテンツデータ毎（ファイル毎）に暗号化を行うための暗号鍵を伝達する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１０４５４２号公報
【特許文献２】特開２００６−５４７０４号公報
【特許文献３】特開２００８−１７２７０６号公報
【特許文献４】特開２００６−２８５９７４号公報
【特許文献５】特開２００６−２３６３４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献３に示すように、構造化オーバレイを用いた拠点間で暗号化された通信を実現することは可能であるが、この場合、通信に参加する端末全てにおいて、構造化オーバレイを構成するためのソフトウエアをインストールして予め設定を行っておく必要があった。また、従来のＩＰｓｅｃなどを用いた構成の場合、ＶＰＮに参加する全ての機器の追加・削除に伴い、論理パスの設定や経路の設定を変更する必要があり、また、フルメッシュ通信を実現するためには、参加する端末の数に応じて多くの論理パスの設定や経路の設定を行わなくてはならなかった。また、特許文献４、５のようにファイル毎に暗号鍵を設定する方式では、ファイルが追加される度に暗号鍵の生成を行う必要があるため、管理コストが高くなるという問題がある。
【０００８】
本発明は、上述の事情に鑑みてなされたものであり、異なる中継装置に接続された通信端末間におけるＶＰＮを用いた通信において、暗号鍵の管理を容易に行うことを目的とする。
【課題を解決するための手段】
【０００９】
上述の課題を解決するため、本発明は、ＶＰＮ（Virtual Private Network）を用いて他の中継装置に接続し、前記他の中継装置に接続される通信端末と自装置に接続される通信端末とにおける通信を中継する中継装置であって、前記他の中継装置との接続により構造化オーバレイを構成するとともに、当該構造化オーバレイを利用して、前記通信に用いられるデータを暗号化および復号化する鍵を管理する分散データベースを、当該構造化オーバレイを構成する中継装置間で分散管理するオーバレイ構成手段と、前記鍵の有効期間が到来する前に新しい鍵を生成する生成手段と、前記生成手段が前記新しい鍵を生成すると、前記構造化オーバレイを構成する中継装置間で分散管理された分散データベースに当該新しい鍵を登録する登録手段とを具備することを特徴とする中継装置を提供する。
【００１０】
また、別の好ましい態様において、前記鍵の有効期間が到来する前に、前記構造化オーバレイを構成する中継装置間で分散管理された分散データベースを検索して前記新しい鍵を取得する取得手段を具備することを特徴とする。
【００１１】
また、別の好ましい態様において、前記生成手段が前記新しい鍵を生成すると、前記構造化オーバレイを構成する他の中継装置に前記新しい鍵を配布する配布手段を具備することを特徴とする。
【００１２】
また、別の好ましい態様において、前記鍵は、前記構造化オーバレイを構成する中継装置間による通信において共通の鍵であることを特徴とする。
【００１３】
また、別の好ましい態様において、前記生成手段は前記構造化オーバレイを構成する中継装置毎に前記鍵を生成することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、異なる中継装置に接続された通信端末間におけるＶＰＮを用いた通信において、暗号鍵の管理を容易に行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る通信システムの構成を示すブロック図である。
【図２】中継装置の構成を示すブロック図である。
【図３】中継装置における通信処理機能を実現する構成を説明する図である。
【図４】ＰＲテーブルの構成を説明する図である。
【図５】分散データベースの構成を説明する図である。
【図６】中継装置間における暗号鍵の配布の動作を説明する図である。
【図７】通信端末間のデータの通信における通信処理の動作を説明する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態について説明する。
＜実施形態＞
図１は、本発明の実施形態に係る通信システム１の構成を示すブロック図である。通信システム１は、拠点Ａ、Ｂ、Ｃ、Ｄのそれぞれに設けられた中継装置２０Ａ、２０Ｂ、２０Ｃ、２０Ｄ（以下、それぞれを区別しない場合には、中継装置２０という）、および各中継装置２０に接続される通信端末（図示略）により構成されるＬＡＮ３０Ａ、３０Ｂ、３０Ｃ、３０Ｄ（以下、それぞれを区別しない場合には、ＬＡＮ３０という）を有している。各中継装置２０は、各ＬＡＮ３０をインターネットなどの公衆網である通信網１０に接続し、各ＬＡＮ３０における通信端末から他のＬＡＮ３０における通信端末への通信を中継する。
【００１７】
中継装置２０は、例えばＶＰＮルータであり、特定の通信プロトコル（例えば、ＩＰ（Internet Protocol））に従って、通信網１０から送信されてくるデータのブロックであるパケットを受信し、それが、自身に接続されているＬＡＮ３０における各通信端末宛てのパケットである場合に、その宛先の通信端末にそのパケットを伝送する。一方、中継装置２０は、ＬＡＮ３０から送信されてくるパケットについては、パケットの宛先の通信端末が接続されている中継装置２０に伝送する。また、中継装置２０は、他の中継装置２０と通信網１０を介して後述するＶＰＮ処理部２１３（図３参照）によってＶＰＮにより接続する。さらに、中継装置２０は、後述する構造化オーバレイ処理部２１２（図３参照）によって、分散ハッシュテーブルなどの構造化オーバレイを構成する。中継装置２０の構成について図２を用いて説明する。
【００１８】
図２は、中継装置２０の構成を示すブロック図である。中継装置２０は、制御部２１、ＵＩ（User Interface）部２２、第１通信ＩＦ（Interface）部２３、第２通信ＩＦ部２４及び記憶部２５を有し、これらの各構成はバス２６を介して接続されている。
【００１９】
制御部２１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、
ＲＡＭ（Random Access Memory）などを有する。ＣＰＵは、ＲＯＭに記憶されている制御プログラムを読み出して、ＲＡＭにロードして実行することにより、中継装置２０の各部をバス２６経由で制御し、後述する通信処理機能などを実現する。また、ＲＡＭは、ＣＰＵが各データの加工などを行う際のワークエリアとして機能する。
【００２０】
ＵＩ部２２は、中継装置２０の管理者によって各種設定が行われるときに用いられるキーボードや操作ボタンなどの操作部と、設定画面表示など制御部２１の制御に応じた表示を行う液晶ディスプレイなどの表示部とを有している。ＵＩ部２２は、操作部が操作されると、その操作内容を示すデータを制御部２１へ出力する。なお、このＵＩ部２２は無くてもよく、この場合には、管理者は、通信網１０、ＬＡＮ３０などのネットワークを介して、図示しない管理装置における遠隔操作により各種設定を行う。
【００２１】
第１通信ＩＦ部２３及び第２通信ＩＦ部２４は、ＮＩＣ（Network Interface Card）などの通信手段である。第１通信ＩＦ部２３はＬＡＮ３０に接続し、より詳細には、中継装置２０Ａ、２０Ｂ、２０Ｃ、２０Ｄにおける第１通信ＩＦ部２３は、それぞれＬＡＮ３０Ａ、３０Ｂ、３０Ｃ、３０Ｄと接続する。一方、第２通信ＩＦ部２４は、通信網１０と接続する。
【００２２】
第１通信ＩＦ部２３及び第２通信ＩＦ部２４は、それぞれ接続されるネットワークからパケットを受信すると、制御部２１に出力する一方、制御部２１から出力されるパケットを接続されるネットワーク（通信網１０またはＬＡＮ３０）に送出する。
【００２３】
記憶部２５は、例えば、ハードディスクや不揮発性メモリなどであり、制御部２１によりデータの読み出し、書き込みが行われる。記憶部２５には、例えば、ＵＩ部２２の操作などにより中継装置２０に設定された内容を示す設定情報や制御プログラムの一部などが記憶されている。また、その他にも、ＰＲ（プレフィックスルール（Prefix Rule））テ
ーブル２５１、経路表２５２、分散データベースの一部のデータベース（以下、分散ＤＢ部分データベース２５３）、経路キャッシュ２５６（図３参照）なども記憶されている。これらの詳細については後述する。以上が、中継装置２０の構成についての説明である。
【００２４】
次に、制御部２１が制御プログラムを実行することによって実現される通信処理機能について、図３から図５を用いて説明する。通信処理機能とは、通信網１０に接続されている各中継装置２０と構造化オーバレイを構成するとともに、この中継装置２０に接続されたＬＡＮ３０における通信端末と他の中継装置２０に接続されたＬＡＮ３０における通信端末との通信を中継する機能である。なお、以下に説明する通信処理機能における各構成については、ハードウエアによって実現してもよい。
【００２５】
図３は、通信処理機能を実現する構成を説明する図である。この通信処理機能の実現には、パケット処理部２１１、構造化オーバレイ処理部２１２、ＶＰＮ処理部２１３、経路管理部２１４、鍵管理部２１５および記憶部２５に記憶されたＰＲテーブル２５１、経路表２５２、分散ＤＢ部分データベース２５３、経路キャッシュ２５６が用いられる。分散ＤＢ部分データベース２５３は、経路レコード２５４および鍵レコード２５５をデータとして保持する。鍵管理部２１５が管理する鍵には、ある中継装置２０がネットワークに参加する前に設定する事前共有鍵と、ネットワーク上におけるデータ通信において用いられる通信データについて暗号化・復号化を行うために用いられ一定の寿命を持つ共通秘密鍵の２種類があるが、以降の説明において「暗号鍵」と言う場合は、この共通秘密鍵のことを指す。まず、記憶部２５に記憶された各情報について説明する。
【００２６】
図４は、ＰＲテーブル２５１の構成を説明する図である。ＰＲテーブル２５１は、パケットの宛先情報に示されるプライベートアドレスが含まれるネットワークアドレスを示す情報であり、後述する分散データベースに問い合わせるときの検索キーとなるネットワークアドレスと、そのネットワークアドレスにおけるプレフィックスレングス（ＰＬ：Prefix Length）とを対応付けた情報である。
【００２７】
例えば、図４に示すＰＲテーブル２５１においては、ネットワークアドレス「１９２．１６８．１００．０」は、プレフィックスレングス「２６」であり、「１９２．１６８．１００．０」から「１９２．１６８．１００．６３」の範囲のプライベートアドレスを含んでいることを示す。そのため、例えば、プライベートアドレスが「１９２．１６８．１００．７」であれば、対応するネットワークアドレスは「１９２．１６８．１００．０」となる。そして、プライベートアドレスに対応するネットワークアドレスがＰＲテーブル２５１上に無いものについては、デフォルトとしてプレフィックスレングスが「２４」であるものとして扱われる。
【００２８】
このように、ＰＲテーブル２５１は、ネットワークアドレスとプライベートアドレスとの対応関係を示すものである。なお、このＰＲテーブル２５１は、通信網１０に接続されるものとして予定されている中継装置２０の各々が配下にもつネットワークアドレス全てとプレフィックスレングスの関係が予め対応付けられて登録されているものとするが、後述する分散データベースのように構造化オーバレイを利用して分散管理するようにすれば、自装置の配下のネットワークアドレスとプレフィックスレングスの対応関係を記憶するだけでもよい。
【００２９】
経路表２５２には、この経路表２５２を記憶する中継装置２０自身が配下に持つネットワークアドレスが登録されている。すなわち、この中継装置２０に接続されるＬＡＮ３０におけるネットワークアドレスと、この中継装置２０自身に設定されているグローバルアドレスとを対応付けた情報である。なお、中継装置２０自身のグローバルアドレスをホスト経路として登録してもよい。また、従来の技術で用いられているルーティングテーブルなどの経路表に対応する情報が登録されていてもよい。
【００３０】
分散ＤＢ部分データベース２５３は、構造化オーバレイを利用して分散管理される分散データベースに含まれるデータ群の一部のことである。前述したように、この分散ＤＢ部分データベース２５３は、経路レコード２５４および鍵レコード２５５からなる。経路レコード２５４は、通信網１０に接続される各中継装置２０において記憶されている経路表２５２を部分的に統合したものである。この経路レコード２５４は、各中継装置２０の経路表２５２に応じた内容であり、例えば、自装置の経路表２５２と、他の中継装置２０の経路表２５２の一部とを含むものである。通信網１０に接続される他の中継装置２０が変更されたり、他の中継装置２０の経路表２５２が変更されたりして、分散データベースが変更されると、構造化オーバレイ処理部２１２によってこの経路レコード２５４の内容が更新される。
【００３１】
鍵レコード２５５は、通信網１０に接続される各中継装置２０が構成する構造化オーバレイ上で使用される暗号鍵であり、各暗号鍵の識別子であるキーと各暗号鍵の実態を表す値とからなる。鍵レコード２５５は、現在構造化オーバレイ上で使用されている暗号鍵を識別するキー「KeyCurrent」を持つレコードと、現在使用されている暗号鍵の寿命が切れた際に次に使用される暗号鍵を識別するキー「KeyNext」を持つレコードという、２つのレコードで構成される。この暗号鍵は、後述するＶＰＮ処理部２１３における暗号化及び復号化において用いられる鍵である。この例においては、各中継装置２０の間で行われる通信に用いられる通信データを暗号化及び復号化するに際して、全ての中継装置２０において共通の暗号鍵を用いるものとする。
【００３２】
図５は、分散データベースの構成を説明する図である。分散データベースは、上述したように、構造化オーバレイを利用して、各中継装置２０において分散ＤＢ部分データベース２５３として分散管理されるものであり、データベース全体として、各中継装置２０における経路表２５２の全てを統合した内容を、経路に関するデータとして保持している。したがって、分散データベースにおけるこの経路に関するデータは、ネットワークアドレスとそのネットワークアドレスを配下にもつ中継装置２０のグローバルアドレスとを対応付けたものとなっている。さらに分散データベースは、暗号鍵の管理を行う。
【００３３】
例えば、図５に示す分散データベースにおいては、ネットワークアドレス「１９２．１６８．１００．０」は、グローバルアドレスが「２ｘｘ．１００．２００．１」の中継装置２０の配下にあることを示している。後述する構造化オーバレイ処理部２１２により、ネットワークアドレスを検索キーとして分散データベースに問い合わせると、対応する中継装置２０のグローバルアドレスを応答として取得できるようになっている。このように、経路に関するデータを構造化オーバレイにより分散管理することにより、各中継装置２０の経路表２５２を分散データベースと同じものとしなくてよい。
【００３４】
また、図５に示す分散データベースにおいては、現在構造化オーバレイ上で使用されている暗号鍵である「KeyCurrent」、および現在使用されている暗号鍵「KeyCurrent」の寿命が切れた際に次に使用される暗号鍵である「KeyNext」が、各々その中身と対応付けられて登録されている。ネットワークに参加する中継装置２０は、後述する構造化オーバレイ処理部２１２により、現在使用されている暗号鍵を識別する「KeyCurrent」、あるいは次に使用される暗号鍵を識別する「KeyNext」を検索キーとして分散データベースに問い合わせることで、暗号鍵を取得することが可能である。そして中継装置２０は、この取得した暗号鍵で、自装置内の分散ＤＢ部分データベース２５３における鍵レコード２５５を更新する。
【００３５】
なお、分散データベースは、通信網１０に接続される各中継装置２０のグローバルアドレスと、各中継装置２０に接続されるＬＡＮ３０の通信端末のプライベートアドレスとの対応関係が分かるような構成となっていればよいから、グローバルアドレスに対応する情報がネットワークアドレスで表されるものでなくてもよく、プライベートアドレスに関する情報であればどのようなものであってもよい。例えば、プライベートアドレスに関する情報を、プライベートアドレスそのものとしてもよいし、範囲で指定した情報であってもよい。また、ネットワークアドレスとプレフィックスレングスとにより示される情報とすれば、ＰＲテーブル２５１が無くてもよい。
【００３６】
経路キャッシュ２５６は、上述のようにして取得したネットワークアドレスとグローバルアドレスとの対応関係を一定時間記憶しておき、同じネットワークアドレスについては、分散データベースへの問い合わせをしなくても、経路キャッシュ２５６を参照することにより、この対応関係の取得を高速化する。以上が、記憶部２５に記憶された各情報についての説明である。
【００３７】
次に、図３に戻って、パケット処理部２１１、構造化オーバレイ処理部２１２、ＶＰＮ処理部２１３、経路管理部２１４及び鍵管理部２１５について説明する。
【００３８】
パケット処理部２１１は、第１通信ＩＦ部２３において、この中継装置２０に接続されるＬＡＮ３０の通信端末から送信された通信データであるパケットを受信すると、受信したパケットを取得する。このパケットには、宛先となる通信端末のプライベートアドレスを示す宛先情報が含まれている。パケット処理部２１１は、経路表２５２を参照して、このパケットの宛先のプライベートアドレスがこの中継装置２０に接続されたＬＡＮ３０の通信端末でない場合には、このパケットをＶＰＮ処理部２１３に出力する。そして、この出力の応答として、後述するＶＰＮ送信処理が施されたパケットを取得すると、パケット処理部２１１は、第２通信ＩＦ部２４から通信網１０を介して、後述のようにして決められたグローバルアドレスの他の中継装置２０に対して送信する。
【００３９】
パケット処理部２１１は、第２通信ＩＦ部２４において、通信網１０からＶＰＮ送信処理が施されたパケットを受信すると、受信したパケットを取得する。そして、このパケットをＶＰＮ処理部２１３に出力する。この出力の応答として、後述するＶＰＮ受信処理が施されたパケットを取得すると、パケット処理部２１１は、経路表２５２を参照して第１通信ＩＦ部２３から宛先情報に示されるプライベートアドレスの通信端末に送信する。
【００４０】
構造化オーバレイ処理部２１２は、予め決められた構造化オーバレイのアルゴリズム及びプロトコルに則って、パケット処理部２１１及び第２通信ＩＦ部２４を介して行われる他の中継装置２０との通信を制御して、通信網１０に接続された中継装置２０間で構造化オーバレイを構成する。そして、構造化オーバレイ処理部２１２は、分散データベースのうち経路に関するデータを、構造化オーバレイを利用して各中継装置２０で分散ＤＢ部分データベース２５３における経路レコード２５４として分散管理する。また、構造化オーバレイ処理部２１２は、分散データベースのうち暗号鍵に関するデータを、構造化オーバレイを利用して各中継装置２０で分散ＤＢ部分データベース２５３における鍵レコード２５５として分散管理する。ある中継装置２０がこの分散データベースにネットワークアドレスを検索キーとして問合せを行い、応答として他の中継装置２０を示すグローバルアドレスを取得することにより、パケットを送信すべき中継装置２０のグローバルアドレスを特定するようになっている。また、ある中継装置２０が、現在使用されている暗号鍵を識別する「KeyCurrent」、あるいは次に使用される暗号鍵を識別する「KeyNext」を検索キーとして分散データベースに問い合わせて暗号鍵を取得することで、この取得した暗号鍵で鍵レコード２５５を最新の状態に更新することが可能となっている。
【００４１】
構造化オーバレイ処理部２１２は、後述するようにＶＰＮ処理部２１３から通知されるプライベートアドレスに対応するネットワークアドレスを、ＰＲテーブル２５１を参照して認識し、このネットワークアドレスを分散データベースに問合せを行うときの検索キーとする。そして、構造化オーバレイ処理部２１２は、特定したグローバルアドレスをＶＰＮ処理部２１３に通知する。また、構造化オーバレイ処理部２１２は、後述する鍵管理部２１５の要求に従い、分散データベースに対して暗号鍵の登録あるいは検索を行ったり、経路レコード２５４に管理された他の中継装置２０に対して暗号鍵を配布したりする。
【００４２】
ＶＰＮ処理部２１３は、第１通信ＩＦ部２３によって受信されたパケットがパケット処理部２１１から入力されると、ＶＰＮ送信処理を行う。ＶＰＮ送信処理は、以下のように行われる。まず、ＶＰＮ処理部２１３は、入力されたパケットの宛先情報に示されるプライベートアドレスを取得する。そして、ＶＰＮ処理部２１３は、経路キャッシュ２５６を参照して、このプライベートアドレスに対応するグローバルアドレスが存在するか否かを判定し、存在する場合には、そのグローバルアドレスを取得する。一方、存在しない場合には、ＶＰＮ処理部２１３は、構造化オーバレイ処理部２１２に対して、このプライベートアドレスを通知し、分散データベースからの応答であるグローバルアドレスを取得する。このとき、ＶＰＮ処理部２１３は、プライベートアドレスと取得したグローバルアドレスとの対応関係を経路キャッシュ２５６に一定時間記憶させる。
【００４３】
そして、ＶＰＮ処理部２１３は、鍵レコード２５５のうちキー「KeyCurrent」の暗号鍵を参照して、このパケットを暗号化してパケット処理部２１１及び第２通信ＩＦ部２４を介して、暗号化したパケットを取得したグローバルアドレスの中継装置２０に送信する。以上が、ＶＰＮ送信処理である。
【００４４】
ＶＰＮ処理部２１３は、第２通信ＩＦ部２４によって受信されたパケット（他の中継装置２０においてＶＰＮ送信処理済みのパケット）がパケット処理部２１１から入力されると、ＶＰＮ受信処理を行う。ＶＰＮ受信処理は、鍵レコード２５５のうちキー「KeyCurrent」の暗号鍵を参照して、暗号化されたパケットの復号化を行いパケット処理部２１１に出力する処理である。上述したように、復号化したパケットを出力すると、このパケットは、パケット処理部２１１及び第１通信ＩＦ部２３を介して、パケットの宛先情報に示されるプライベートアドレスの通信端末に送信される。
【００４５】
経路管理部２１４は、構造化オーバレイを利用して、構造化オーバレイ処理部２１２における経路を管理、および経路表２５２の更新を行う。経路管理部２１４は、ＯＳＰＦ（Open Shortest Path First）、ＲＩＰ（routing information protocol）のような従来のルーティングプロトコルを使用しても良いし、静的に経路を設定してもよい。
【００４６】
一般的に、ＶＰＮの経路を設定するときには、送信先の中継装置のそれぞれに対応する仮想的なインターフェースを定義し、それを宛先とするような経路を記述することが多い。しかし、この方法では、ネットワークに参加する中継装置の増減に合わせて経路を変更する必要が生じ、管理の負担が大きくなる。これに対して、本実施形態では、送信先の複数の中継装置２０を集約した仮想的なインターフェースを１つだけ定義し、このインターフェースを宛先とする経路を記述すればよい。このようにすることで、ネットワークに参加する中継装置２０の増減があっても経路の設定を変えずに運用でき、管理の負担を低減できる。
【００４７】
鍵管理部２１５は、前述したとおり、暗号化・復号化に用いられる２種類の鍵を管理する。１つ目は、事前共有鍵である。この事前共有鍵は、構造化オーバレイ処理部２１２で用いられ、ある中継装置２０が構造化オーバレイに参加する場合の認証情報を送信する際や、構造化オーバレイで管理される経路情報やデータ暗号化用の暗号鍵を配布、検索するための制御メッセージを送信する際の暗号化に使用される。２つ目は、データ通信のための通信路を暗号化・復号化するため、すなわちＶＰＮ処理部２１３がパケットを暗号化・復号化するために用いる共通秘密鍵である。鍵レコード２５５が保持する暗号鍵および分散データベースに登録される暗号鍵は、この共通秘密鍵である。
【００４８】
暗号鍵には一定の寿命がある。鍵サーバとして動作する中継装置２０の鍵管理部２１５は、現在使用している暗号鍵の寿命が切れる一定時間前になると、新しい暗号鍵を生成し、構造化オーバレイ処理部２１２に通知を行う。構造化オーバレイ処理部２１２はこの通知を受けて、新しい暗号鍵を分散データベースへ登録した後に他の中継装置２０へ配布する。一方、各拠点における他の中継装置２０の鍵管理部２１５は、現在使用している暗号鍵の寿命が切れる一定時間前になると、構造化オーバレイ処理部２１２に通知を行う。構造化オーバレイ処理部２１２は、この通知を受けて分散データベースに対して新しい暗号鍵を検索し、これを取得すると鍵管理部２１５に新しい暗号鍵を受け渡す。鍵管理部２１５は、新しい暗号鍵を、鍵レコード２５５にキー「KeyNext」のレコードとして追加する。
【００４９】
鍵サーバとして動作する中継装置２０は特別なサーバ装置である必要はなく、鍵サーバとしての機能は中継装置２０の機能の一部として提供され、鍵サーバとして動作するかどうかの設定を、ユーザがＵＩ部２２を通じて変更することが可能である。なお、鍵サーバとして動作する中継装置２０は複数存在してもよい。以上が、通信処理機能についての説明である。
【００５０】
次に、中継装置２０の動作について説明する。まず、ネットワークに参加するときの動作を説明した後、中継装置間で暗号鍵の配布が行われるときの通信システム１の動作について図６を用いて説明する。その後、この暗号鍵を用いて通信端末間の通信を行うときの通信システム１の動作について、図７を用いて説明する。
【００５１】
まず、中継装置２０の管理者は、各中継装置２０について、初期ノード、事前共有鍵、装置名称を設定する。初期ノードとは、ネットワークに参加するために最初にアクセスする装置を示し、サーバなどの特殊なノードでなく、ネットワークに参加する任意のノード、例えば他の中継装置２０であり、そのグローバルアドレスが管理者により設定される。事前共有鍵は、前述したとおり、構造化オーバレイ処理部２１２で用いられ構造化オーバレイのメッセージなどの制御メッセージを暗号化する鍵である。装置名称とは、ネットワーク上でこの中継装置２０を識別するための名前であって、構造化オーバレイ上でのノードの識別子として利用される。
【００５２】
各中継装置２０は、これらの設定を元にネットワークに参加し、構造化オーバレイを利用して分散管理される分散データベースのうち、自装置に記憶されている経路レコード２５４を初期化する。また、各中継装置２０は、現在使用されている暗号鍵を識別する「KeyCurrent」を検索キーとして分散データベースに問い合わせて暗号鍵を取得し、この取得した暗号鍵で鍵レコード２５５を初期化する。分散データベースが分散管理されることにより、新たに中継装置２０がネットワークに参加しても、新たな中継装置に上記設定がされていれば、すでにネットワーク上にある中継装置２０については、設定を変更する必要はない。そして、中継装置２０は、ネットワークに参加すると、構造化オーバレイを利用して分散管理される分散データベースに対して自装置の経路表２５２を登録することにより、他の中継装置２０に対して自装置の存在を知らせることができる。
【００５３】
図６は、中継装置間における暗号鍵の配布の動作を説明する図である。ここで、図６中の中継装置２０Ａが鍵サーバとして動作するものと仮定すると、この中継装置２０Ａは、暗号鍵の寿命が到来する期限の一定時間前になると、暗号鍵の寿命が切れると判断し（ステップＳ１；ＹＥＳ）、新しい暗号鍵を生成する（ステップＳ２）。暗号鍵の寿命が切れると判断しなければ（ステップＳ１；ＮＯ）、中継装置２０Ａは新しい暗号鍵を生成することは無い。中継装置２０Ａは、暗号鍵を生成すると、この生成した暗号鍵を、自装置内の鍵レコード２５５にキー「KeyNext」のレコードとして追加する。（ステップＳ３）。その後、中継装置２０Ａは、新しく生成した暗号鍵を、構造化オーバレイを利用して分散管理される分散データベースにキー「KeyNext」として登録する（ステップＳ４）。これにより、新しい暗号鍵が分散データベースに登録される（ステップＳ５）。
【００５４】
次に、中継装置２０Ａは新しく生成した暗号鍵を他の中継装置２０に配布する（ステップＳ６）。すなわち、中継装置２０Ａは、構造化オーバレイ上の分散データベースにおける経路に関するデータを参照し、この参照結果に基づいて他の中継装置２０Ｂに新しく生成した暗号鍵を配布する。中継装置２０Ｂは、新しい暗号鍵を受け取ると、この新しい暗号鍵を自らが保持する鍵レコード２５５にキー「KeyNext」のレコードとして追加する。（ステップＳ７）。ここで、別の中継装置２０Ｃが保持する暗号鍵の寿命が到来する期限の一定時間前になったとすると（ステップＳ８；ＹＥＳ）。中継装置２０Ｃは、構造化オーバレイ上の分散データベースを検索キー「KeyNext」で検索し、新しい暗号鍵について問い合わせを行う（ステップＳ９）。そして中継装置２０Ｃは、分散データベースを参照（ステップＳ１０）した結果得られる新しい暗号鍵を取得し、この新しい暗号鍵を自らが保持する鍵レコード２５５にキー「KeyNext」のレコードとして追加する。（ステップＳ１１）。その後、現在使用されている暗号鍵の寿命が到来すると、各中継装置２０および分散データベースは、各々に登録された暗号鍵において、キー「KeyCurrent」のレコードの値を、キー「KeyNext」のレコードの値で更新し、キー「KeyNext」のレコードを削除する（ステップＳ１２〜Ｓ１５）。このように配布された暗号鍵を用いて通信端末間のデータ通信が行われる。
【００５５】
図７は、通信端末間のデータの通信における通信処理の動作を説明する図である。この説明においては、中継装置２０Ａに接続された通信端末Ａ−Ｘからパケットにより通信データが送信され、パケットの宛先情報は、中継装置２０Ｂ（グローバルアドレス「２ｘｘ．１００．２００．１」）に接続された通信端末Ｂ−Ｙ（プライベートアドレス「１９２．１６８．１００．２」）を示すものとする。また、ＰＲテーブル２５１は図４に示す内容であり、構造化オーバレイを利用して分散管理された分散データベースは図５に示す内容であるものとする。
【００５６】
まず、通信端末Ａ−Ｘは、通信端末Ｂ−Ｙに対するデータ送信の処理を行う（ステップＳ１１０）。これにより送信されるデータのパケットが中継装置２０Ａにおいて受信されると、中継装置２０Ａは、このパケットの宛先情報を参照して、宛先となる通信端末のプライベートアドレスを認識する（ステップＳ１２０）。中継装置２０Ａは、プライベートアドレス「１９２．１６８．１００．２」を認識すると、ＰＲテーブル２５１を参照し、対応するネットワークアドレスを検索キーとして抽出する（ステップＳ１３０）。これにより抽出される検索キーは、ネットワークアドレス「１９２．１６８．１００．０」となる。
【００５７】
そして、中継装置２０Ａは、自装置の経路キャッシュ２５６に検索キーに対応したアドレスがあるか否かを判定（ステップＳ１３５）し、対応するアドレスがある場合（ステップＳ１３５；Ｙｅｓ）には、そのアドレスの中継装置２０Ｂを、パケットを送信する経路として認識する（ステップＳ１６０）。一方、対応するアドレスが無い場合（ステップＳ１３５；Ｎｏ）には、中継装置２０Ａは、構造化オーバレイを利用して分散管理される分散データベース（経路ＤＢ）に対して、検索キーにより問い合わせを行う（ステップＳ１４０）。そして、分散データベースを参照（ステップＳ１５０）した結果得られる検索キーに対応したアドレス（グローバルアドレス「２ｘｘ．１００．２００．１」）が中継装置２０Ａに通知され、中継装置２０Ａにおいて、このグローバルアドレスの中継装置２０Ｂを、パケットを送信する宛先として認識する（ステップＳ１６０）。ここで、中継装置２０Ａは、分散データベースを参照することによって認識した経路については、自装置の経路キャッシュ２５６に登録しておく。
【００５８】
中継装置２０Ａは、通信端末Ａ−Ｘから受信したパケットにＶＰＮ送信処理（ステップＳ１７０）を施し、中継装置２０Ｂを宛先として、暗号化されたパケットを仮想インターフェースにより通信網１０を通して中継装置２０Ｂへ送信する。
【００５９】
中継装置２０Ｂは、仮想インターフェースにより構造化オーバレイのネットワークから、中継装置２０ＡにおいてＶＰＮ送信処理が施されたパケットを受信し、ＶＰＮ受信処理（ステップＳ１８０）を施して復号化する。そして、中継装置２０Ｂは、復号化されたパケットの宛先情報が示すプライベートアドレス「１９２．１６８．１００．２」の通信端末（通信端末Ｂ−Ｙ）を認識（ステップＳ１９０）し、その通信端末Ｂ−Ｙに復号化されたパケットを送信する。そして、通信端末Ｂ−Ｙは、中継装置２０Ｂから送信されたパケットを受信することによって、通信端末Ａ−Ｘから送信されたデータを受信する（ステップＳ２００）。
【００６０】
このように、中継装置２０は、通信路の暗号化・復号化に必要な暗号鍵を、構造化オーバレイを利用して分散管理される分散データベースに登録することで、効率的に暗号鍵の配布、共有、更新などの各種管理を行うことが出来る。具体的には、鍵サーバとして機能する中継装置２０が、暗号鍵の寿命が切れる事を契機として新しい暗号鍵の生成を行い、分散データベースへの新しい暗号鍵の登録および他の中継装置２０に新しい暗号鍵の配布を行うと共に、他の中継装置２０は自らが保持する暗号鍵の寿命が切れる事を契機として分散データベースを検索して新しい暗号鍵の取得を行う仕組みとなっている。この時、暗号鍵が分散データベースで管理されているから鍵サーバとして動作する中継装置２０に処理が集中する事なく、それぞれの中継装置２０が自律的に暗号鍵の取得や更新を行うため、システム全体として暗合鍵の管理が容易である。そして、中継装置２０は、分散データベースを参照して、接続される通信端末から送信されるパケットの宛先情報に対応した他の中継装置２０を送信経路として認識し、暗号鍵を使用して暗号化したパケットを送信経路に従って送信することにより、送信先の中継装置２０に接続された通信端末に対して受信させる。このとき、データベースが分散管理されているから、新たに中継装置２０がネットワークに参加したり、離脱したりしても、他の中継装置２０の設定を事前に変更する必要はなく、また各中継装置２０において記憶すべき経路表２５２のデータ量も少なくすることができる。また、ネットワーク全体で共通の暗号鍵を利用することで、ファイル毎や通信相手毎に暗号鍵を生成する必要がなく、高速な暗号化通信が可能である。さらに、中継装置２０に接続される通信端末においては、構造化オーバレイを利用するための特別なソフトウエアなどを必要とせず、この中継装置２０に接続して通信を行えばよく、単一障害点となるような全体を管理するサーバが存在しなくてもよいから、システムが堅牢である。さらに暗号鍵を生成する中継装置２０についても中央集中的なサーバではなく、複数の中継装置２０が鍵サーバとして機能することが可能であるため、ユーザの設定により冗長度をコントロール出来る上に処理が分散可能であり、この点においてもシステムが堅牢である。
【００６１】
以上の実施形態は次のように変形可能である。
＜変形例１＞
上述した実施形態においては、構造化オーバレイを構成する全ての中継装置間で共通の暗号鍵が使用されていたが、拠点毎に暗号鍵を生成し、この暗号鍵を分散データベースで管理するようにしてもよい。このようにすれば、全ての中継装置間で共通の暗号鍵を使用する場合と比較してセキュリティ強度が高まると共に、分散データベースを用いて暗号鍵の管理がされるため鍵の管理コストと鍵の問い合わせメッセージの集中を削減することが可能になる。
【００６２】
＜変形例２＞
上述した実施形態における制御プログラムは、磁気記録媒体（磁気テープ、磁気ディスクなど）、光記録媒体（光ディスクなど）、光磁気記録媒体、半導体メモリなどのコンピュータ読み取り可能な記録媒体に記憶した状態で提供し得る。この場合には、記録媒体を読み取るインターフェースを中継装置２０に設ければよい。また、ネットワーク経由でダウンロードさせることも可能である。
【符号の説明】
【００６３】
１…通信システム、１０…通信網、２０，２０Ａ，２０Ｂ，２０Ｃ，２０Ｄ…中継装置、２１…制御部、２２…ＵＩ部、２３…第１通信ＩＦ部、２４…第２通信ＩＦ部、２５…記憶部、２６…バス、２１１…パケット処理部、２１２…構造化オーバレイ処理部、２１３…ＶＰＮ処理部、２１４…経路管理部、２１５…鍵管理部、２５１…ＰＲテーブル、２５２…経路表、２５３…分散ＤＢ部分データベース、２５４…経路レコード、２５５…鍵レコード、３０，３０Ａ，３０Ｂ，３０Ｃ，３０Ｄ…ＬＡＮ
【図１】
0005532993.tif 000002
【図２】
0005532993.tif 000003
【図３】
0005532993.tif 000004
【図４】
0005532993.tif 000005
【図５】
0005532993.tif 000006
【図６】
0005532993.tif 000007
【図７】
0005532993.tif 000008