(57)【特許請求の範囲】
【請求項１】
ＩＰセキュリティパケットを送受信する複数のセキュリティゲートウェイと、
前記各セキュリティゲートウェイを接続し、共通鍵に関する情報を伝送する専用通信回線と、
動作を一時停止したセキュリティゲートウェイが動作を再開する前に、当該時点において通信を行っているセキュリティゲートウェイから共通鍵に関する情報を収集し、前記動作を停止してから１回以上共通鍵の更新が行われているかどうかを検査する更新検査手段とを備え、
前記検査の結果、前記共通鍵の更新が行われていなかった場合は、前記動作を一時停止したセキュリティゲートウェイの動作を再開しない一方、前記共通鍵の更新が行われていた場合は、当該時点において通信を行っているセキュリティゲートウェイから前記共通鍵に関する情報を取得して前記動作を一時停止したセキュリティゲートウェイの動作を再開することを特徴とする暗号化通信システム。
【請求項２】
前記各セキュリティゲートウェイには優先順位が付与されており、前記ＩＰセキュリティパケットを送受信中のセキュリティゲートウェイが、動作を一時停止した場合は、次に優先順位の高いセキュリティゲートウェイが前記ＩＰセキュリティパケットの送受信を行うことを特徴とする請求項１記載の暗号化通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＰパケットの暗号化や、認証情報、及びシーケンス番号の付与などを行い、インターネット上において安全な情報の送受を可能とするＩＰセキュリティプロトコルにおいて、ＩＰパケットから、ＩＰセキュリティプロトコルパケットを組み立てる機能、及びＩＰセキュリティプロトコルパケットから、ＩＰパケットを復元する機能を有する暗号化通信システム及び暗号化通信方法に関する。
【０００２】
【従来の技術】
例えば、インターネットのように、多数のユーザによって共用されるネットワークにおいて安全な通信を行うためには、情報の暗号化、送受信相手の認証、及びネットワーク上における改竄の検出等の対策を行い、通信上のセキュリティを確立することが必要となる。このようなセキュリティ機能を規定した代表的なプロトコルとして、ＩＰｓｅｃ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｉｔｙ、または、ＩＰ  Ｓｅｃｕｒｉｔｙ  Ｐｒｏｔｏｃｏｌ）を挙げることができる。このＩＰｓｅｃの主要部分に関しては、下記に規定されている。
【０００３】
ＲＦＣ２４０１“Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ”、
ＲＤＣ２４０２“ＩＰ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｈｅａｄｅｒ”、
ＲＦＣ２４０３“Ｔｈｅ  Ｕｓｅ  ｏｆ  ＨＭＡＣ−ＭＤ  ５−９６  ｗｉｔｈｉｎ  ＥＳＰ  ａｎｄ  ＡＨ”、
ＲＦＣ２５０６“ＩＰ  Ｅｎｃａｐｓｕｌａｔｉｎｇ  Ｓｅｃｕｒｉｔｙ  Ｐａｙｌｏａｄ（ＥＳＰ）”、
ＲＦＣ２４０７“Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  ＩＰ  Ｓｅｃｕｒｉｔｙ  Ｄｏｍａｉｎ  ｏｆ  Ｉｎｔｅｒｐｒｅｔａｔｉｏｎ  ｆｏｒ  ＩＳＡＫＭＡＰ”、
ＲＦＣ２４０８“Ｉｎｔｅｒｎｅｔ  Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ  ａｎｄ  Ｋｅｙ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＩＳＡＫＭＡＰ）”、そして、
ＲＦＣ２４０９“Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ（ＩＫＥ）”である。このようなＩＰｓｅｃの概要について、図１０を参照して説明する。
【０００４】
▲１▼  ＩＰｓｅｃパケット
図１０（ａ）は、ＩＰｓｅｃ（トンネルモードＥＳＰ）パケットの構造を示す図である。先頭から、新しいＩＰヘッダ、ＥＳＰ（ヘッダ部）、オリジナルＩＰパケット、ＥＳＰ（トレイラ部）を有し、最後にＥＳＰ（認証部）を有している。また、オリジナルＩＰパケット及びＥＳＰ（トレイラ部）の部分が暗号化範囲であり、このオリジナルＩＰパケット、ＥＳＰ（トレイラ部）及びＥＳＰ（ヘッダ部）を含む部分が認証範囲となっている。このように、ＩＰｓｅｃでは、ＩＰパケット単位の暗号化、認証、及び改竄検出等をサポートしている。
【０００５】
▲２▼  ＩＰｓｅｃの実装形態
図１０（ｂ）は、ＩＰｓｅｃの実装形態を示す図である。ＩＰｓｅｃの実装形態には、通信を行うコンピュータが直接ＩＰｓｅｃを終端する形態と、ＬＡＮ内のルータ等がＩＰｓｅｃを終端する機能を有しておりＬＡＮ間あるいはＬＡＮとＩＰｓｅｃ機能を有するコンピュータ間の通信をＩＰｓｅｃパケットに変換して通信する形態とがある。以下、直接ＩＰｓｅｃを終端する機能を有するコンピュータを「ＩＰｓｅｃクライアント」と言い、ＩＰｓｅｃを終端し、ＬＡＮ間あるいはＬＡＮとＩＰｓｅｃ機能を有するコンピュータ間の通信をＩＰｓｅｃパケットに変換して通信する機能を有するルータ等をＳＧＷ（Ｓｅｃｕｒｉｔｙ  Ｇａｔｅｗａｙ）と称する。
【０００６】
▲３▼  ＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）［ＲＦＣ２４０１］ＩＰｓｅｃによる通信を行うためには、通信を行う両ノードにおいて、「ＳＡ」と称するｃｏｎｎｅｃｔｉｏｎを構築する必要がある。実装上、ＳＡは、パケットの送信元と受信元との双方で合意したセキュリティポリシ、暗号及び認証鍵を格納するオブジェクトである。このＳＡは、後述する鍵交換時に構築又は更新される。
【０００７】
▲４▼  鍵交換
ＤＥＳ等の共通鍵暗号方式では、送受信を行う両者間で同一の鍵を所有する必要がある。しかし、同じ鍵を長い時間利用し続けたり、同じ鍵で暗号化したデータをネットワーク上で大量にやりとりしたりすると、第三者に鍵を推察されてしまう可能性が高くなる。このため、ＳＡの開設に先立ち、両者で共通の鍵を共有し、さらに、一定の期間毎あるいは一定のデータを送受信する度にこの鍵を更新する必要がある。この処理を鍵交換という。ＩＰｓｅｃでは、ＩＫＥ（Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）［ＲＦＣ２４０９］によって、鍵交換及び各種セキュリティポリシのネゴシエーションに関して規定している。ＩＫＥでは、フェーズ１とフェーズ２という２段階の鍵交換を規定している。フェーズ１では、プロセッサに対する負荷の高いＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ法（ＲＦＣ２６３１）を利用することを義務付けているが、フェーズ２では、フェーズ１で共有した鍵による保護の下で実施されるため、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ法の使用はオプションになっている。このため、フェーズ２では、高速に鍵交換の処理を行うことが可能である。通常、フェーズ１の鍵交換を数時間に１回行い、フェーズ２の鍵交換を数十分に１回行うというように、両者を組み合わせた使い方をすることが多い。
【０００８】
▲５▼  シーケンス番号付与及びチェック機能
上記のように、ＩＰｓｅｃでは、パケットに認証情報を付加することによって、受信側で送信側の認証を実現している。しかし、単純に送信側の認証情報を付加しただけでは、いわゆるｒｅｐｌａｙ攻撃を防御することができない。すなわち、第三者が認証情報の付加された正規のパケットをネットワーク上で採取し、採取したパケットの複製を大量に作成し、これらをネットワーク上に戻して宛先（受信側）へ送ることにより、受信側の認証機構を破り、宛先企業ＬＡＮ、又は端末に撹乱を与えるｒｅｐｌａｙ攻撃を防御することができない。しかも、このｒｅｐｌａｙ攻撃では、暗号を破る必要が無い。
【０００９】
このような攻撃からシステムを防御するため、ＲＦＣ２４０１、２４０２、及び２４０６では、シーケンス番号（以下、「ＳＮ値」という。）と呼ばれる機構が利用されている。ＩＰｓｅｃパケット（ＥＳＰ／ＡＨ）のヘッダでは、３２ｂｉｔのＳＮ値フィールドを有しており、送信側は、送信パケットのＥＳＰ（ヘッダ部（ＲＦＣ２４０６の場合）、又は認証ヘッダ（ＲＦＣ２４０２の場合）にこのＳＮ値を付与する。このＳＮ値は、フェーズ２の鍵交換時に０にリセットされ、以降、パケットを送信する毎に１ずつ加算されて行く。
【００１０】
受信側では、受信したパケットのＳＮ値が、当該ＳＡにおいて以前利用されたものであるかどうかをチェックする。ＳＮ値が以前利用されたものである場合には、当該パケットは直ちに破棄しなければならない。すなわち、ＳＮ値がオーバーフローする前に鍵交換を再起動しなければならない。
【００１１】
このようなシーケンス番号を用いる機構により、上記のようなｒｅｐｌａｙ攻撃が行われたとしても、受信側でＳＮ値の受信履歴をチェックすることによって、直ちに不正なパケットを検出し、破棄することができる。また、第三者がＳＮ値を書き換えた場合でも、ＩＰｓｅｃの認証機構においてそのような改竄を検出することができるため、不正なパケットを検出し、破棄することができる。
【００１２】
次に、ＩＰｓｅｃ機能の冗長化について説明する。ＳＧＷによりＩＰｓｅｃ機能を実現している場合、何らかの原因でＳＧＷが故障すると、ＬＡＮ内のすべてのコンピュータは、ＩＰｓｅｃ通信を利用することができなくなる。このような問題の発生を防止するためには、ＳＧＷの冗長化（多重化）を行うことが必要となる。すなわち、企業ＬＡＮ内において複数のＳＧＷを利用できるようにし、１台のＳＧＷが故障した場合でも、直ちに予備のＳＧＷに切り替えてサービスを継続することができるようにすることが必要である。ここで、企業ＬＡＮ内において複数のＳＧＷを利用できる系を、以下、「冗長系」といい、１台のＳＧＷが故障した場合でも、直ちに予備のＳＧＷに切り替えてサービスを継続することを、以下、「系切り替え」という。以上のようなＳＧＷの冗長化に関連する従来技術について、具体例を挙げて説明する。
【００１３】
（従来技術における第１の具体例）
図１１は、従来技術におけるＳＧＷ２重化方式の一例を示す図である。ＩＰｓｅｃ通信の相手（対向側）は、ターゲットとなる企業ＬＡＮ内において冗長系を構成するＳＧＷのリスト（図１１中、ＳＧＷ１、ＳＧＷ２）を有している。▲１▼今、企業ＬＡＮ側のＳＧＷ１が何らかの原因で故障したとする。▲２▼ＳＧＷ１との間でＳＡを設定していた対向側は、通信が不可能となったことから、ＳＧＷ１の故障を検出し、▲３▼ＳＧＷリストから次に接続すべきＳＧＷ（この場合はＳＧＷ２）を検索し、▲４▼新たなＳＡを確立する。このような手順によって、対向側は、一定の中断時間の後、ＩＰｓｅｃを再利用できるようになる。
【００１４】
このような方式では、ＳＧＷは、それぞれ異なるＩＰアドレスを有する。ＩＰｓｅｃにおいては、ＳＡをＩＰアドレスによって識別しているため、系切り替え時にＳＧＷ１とＳＡを設定していた対向側は、新たにＳＧＷ２との間にＳＡを確立し直す必要がある。上記のように、このＳＡの確立時には、鍵交換が必要になるが、このときはＩＰアドレス自体が変わるため、フェーズ２の鍵交換のみならず、フェーズ１の鍵交換も行わなければならない。従って、系切り替え時に、ＳＧＷ１との間にＳＡを設定していたすべての対向側が、同時にＳＧＷ２にＳＡ確立の要求を行うと、ＳＧＷ２には非常に高い負荷がかけられ、系切り替え時間が非常に長くなるという問題があった。
【００１５】
（従来技術における第２の具体例）
一方、従来からＩＰアドレスの変化を伴わない系切り替えの可能なルータの多重化方式が用いられている。この方式は、ＲＦＣ２３３８“Ｖｉｒｔｕａｌ  Ｒｏｕｔｅｒ  Ｒｅｄｕｎｄａｎｃｙ  Ｐｒｏｔｏｃｏｌ”（ＶＲＲＰ）に基づいている。
【００１６】
図１２（ａ）は、ＶＲＲＰによるルータ冗長化方式の概念図であり、同（ｂ）は、ＶＲＲＰルータの状態遷移図であり、同（ｃ）は、ＡＤＶＥＲＴＩＳＥＭＥＮＴメッセージフォーマットを示す図である。ここでは、２台のルータ＃０と＃１とが冗長系を構成する。＃０、＃１共に、複数のＩＰアドレスを有する機能を有し、それらを高速に活性化／非活性化することが可能である。図１２（ａ）に示す時点では、＃０がＩＰＡを活性化しており、＃１は、ＩＰＡを非活性化し、＃０の状態を監視している。＃１は、＃０の故障を検出したとき、ただちにＩＰＡを活性化する。すなわち、外部の端末からは、＃０と＃１はＩＰＡを有する一つのルータとして認識される。以下、これを仮想ルータと称する。図１２（ａ）の時点で、＃０の状態にあるルータをマスタールータ（以下、「ＭＲ」と記述する。）、＃１の状態にあるルータをバックアップルータ（以下、「ＢＲ」と記述する。）という。以下、ＭＲとＢＲの動作について説明する。
【００１７】
（通常状態）
▲１▼  ＭＲは、ＩＰＡに対するＡＲＰ要求に対して物理ＭＡＣアドレスではなく、Ｖｉｒｔｕａｌ  ＭＡＣ  Ａｄｄｒｅｓｓ（００−００−５Ｅ−００−０１−｛ＶＲＩＤ｝）を返す。
▲２▼  ＢＲは、ＩＰＡに対するＡＲＰ要求は無視する。
▲３▼  ＭＲは、定期的（デフォルト１秒）にＡｄｖｅｒｔｉｓｅｍｅｎｔメッセージをブロードキャストする。
▲４▼  ＢＲは、上記メッセージを受け取ったら、Ｍａｓｔｅｒ＿Ｄｏｗｎ＿Ｔｉｍｅｒを、Ｍａｓｔｅｒ＿Ｄｏｗｎ＿Ｉｎｔｅｒｖａｌにリセットする。
【００１８】
（ＭＲがダウン状態）
▲１▼  ＭＲがダウンであるため、Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージブロードキャストができない。
▲２▼  ＢＲ側で、Ｍａｓｔｅｒ＿Ｄｏｗｎ＿Ｔｉｍｅｒが０になる。
▲３▼  ＢＲ側がＡｄｖｅｒｔｉｓｅｍｅｎｔメッセージをブロードキャストする。
▲４▼  ＢＲが、ｇｒａｔｕｉｔｏｕｓ  ＡＲＰ要求（ＩＰＡ、バーチャルＭＡＣアドレス）をブロードキャストする。
▲５▼  ＢＲが、Ａｄｖｅｒ＿Ｔｉｍｅｒ（Ａｄｖｅｒｔｉｓｅｍｅｎｔ周期を測るためのタイマ）を規定の周期（デフォルト１秒）にセットする。
▲６▼  ＢＲは、ＭＲに移行（自分のＮＩＣをＩＰＡに対して活性化（ｕｐ）する。
）する。
【００１９】
ここで、Ｐｒｉｏｒｉｔｙは、１−２５５で各ＶＲＲＰルータに割り振られる固定値（０は、別の用途で利用される）であり、
Ｓｋｅｗ＿ｔｉｍｅ＝（（２５６−Ｐｒｉｏｒｉｔｙ）／２５６）、
Ｍａｓｔｅｒ＿Ｄｏｗｎ＿Ｉｎｔｅｒｖａｌ＝（３×Ａｄｖｅｒｔｉｓｅｍｅｎｔ周期）＋ＳｋｅｗＴｉｍｅである。また、ＭＲ、ＢＲの他に、Ｉｎｉｔｉａｌｉｚｅ状態という状態がある。これは、スタートアップを待っている状態である。
【００２０】
これにより、複数のＢａｃｋｕｐがある場合、必ず最もプライオリティの高い（数値が大きい）ＢａｃｋｕｐのＭａｓｔｅｒ＿Ｄｏｗｎ＿Ｔｉｍｅｒが最初に０になり、Ａｄｖｅｒｔｉｓｅｍｅｎｔを発行する。他のＢａｃｋｕｐは、このＡｄｖｅｒｔｉｓｅｍｅｎｔを受け取ったら、Ｍａｓｔｅｒ＿Ｄｏｗｎ＿Ｔｉｍｅｒを、Ｍａｓｔｅｒ＿Ｄｏｗｎ＿Ｉｎｔｅｒｖａｌに戻すので、競合することはない。また、ＩＰ  Ａｄｄｒｅｓｓ  ｏｗｎｅｒは、最高の優先度（２５５）を有し、当該ＶＲＲＰルータが、Ｓｔａｒｔｕｐした場合には、必ずＭａｓｔｅｒになる。
【００２１】
以上の動作により、ＭＲが故障したときは、自動的にＢＲが、ＩＰＡを有するルータとして起動するので、外部からはＩＰＡを有するルータがサービスを継続しているように認識される。
【００２２】
【発明が解決しようとする課題】
しかしながら、従来技術における第１の具体例で、系切り替え時間が長期化するという問題を解決するために、従来技術における第２の具体例の仮想ルータ機能を、ＩＰｓｅｃ機能を有するＳＧＷにそのまま適用することは従来から不可能であった。以下、その理由を説明する。
【００２３】
▲１▼  ＳＡ共有
上記のように、ＩＰｓｅｃでは、ＳＡによるＩＰｓｅｃコネクションの管理を行っているが、ＳＡのうち、共通鍵に関する情報は、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ法の特性上、鍵交換を行うものの間だけで共有され得るものである。また、セキュリティ上、これをＬＡＮ上やインターネット上で流すことはできない。従来技術における第２の具体例のＶＲＲＰでは、ＭＲとＢＲとの間でＳＡ情報を共有する手段が存在しない。
【００２４】
▲２▼  ＳＮ値同期
ＳＡ情報のうち、特に上記のＳＮ値は、パケットを送受信する毎に更新する必要がある。例えば、１．５Ｍｂｐｓのパケット処理能力を有するＳＧＷで、この更新回数は、毎秒１２５回以上に及ぶ。従って、上記▲１▼ＳＡ共有の問題が解決されたとしても、このように更新頻度の高い情報を完全に共有することは極めて困難である。
【００２５】
本発明は、このような事情に鑑みてなされたものであり、ＩＰｓｅｃ機能を有する装置において、仮想ルータによる冗長化機能を利用可能とし、系切り替え時間を短縮することができる暗号化通信システム及び暗号化通信方法を提供することを目的とする。
【００２６】
【課題を解決するための手段】
請求項１記載の暗号化通信システムの発明は、ＩＰセキュリティパケットを送受信する複数のセキュリティゲートウェイと、前記各セキュリティゲートウェイを接続し、共通鍵に関する情報を伝送する専用通信回線と、動作を一時停止したセキュリティゲートウェイが動作を再開する前に、当該時点において通信を行っているセキュリティゲートウェイから共通鍵に関する情報を収集し、動作を停止してから１回以上共通鍵の更新が行われているかどうかを検査する更新検査手段とを備え、検査の結果、共通鍵の更新が行われていなかった場合は、動作を一時停止したセキュリティゲートウェイの動作を再開しない一方、共通鍵の更新が行われていた場合は、当該時点において通信を行っているセキュリティゲートウェイから共通鍵に関する情報を取得して動作を一時停止したセキュリティゲートウェイの動作を再開することを特徴としている。
【００２７】
この構成により、共通鍵に関する情報を、ＬＡＮやＷＡＮ等のネットワークとは完全に独立した回線で伝送することができるため、通信の安全性を確保することが可能となる。従って、従来技術におけるＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）を共有する問題を解決し、冗長化されたＳＧＷ（Ｓｅｃｕｒｉｔｙ  Ｇａｔｅｗａｙ）において、仮想ルータ機能を実装し、系切り替えを高速に行うことが可能となる。同時に、このように、動作を一時停止してから１回以上共通鍵の更新が行われているかどうかを検査し、検査結果に応じて動作を一時停止したセキュリティゲートウェイの動作を再開させるかどうかを決定する。その結果、共通鍵の更新が１度も行われていない場合は、セキュリティ確保のため、動作を一時停止したセキュリティゲートウェイの動作を再開しない。すなわち、一度故障したセキュリティゲートウェイは、たとえ故障前の送信シーケンス番号値、及び故障前の受信履歴が残っていたとしても、故障による系切り替えが対向系に通知される前に、対向系から送られたパケットのシーケンス番号に関する受信履歴はない。このシーケンス番号のパケットを利用した、ｒｅｐｌａｙ攻撃を防止するために、一度、シーケンス番号領域のリセットが必要になり、そのために鍵交換が一度以上行われていなければならない。一方、共通鍵の更新が１回以上行われている場合は、動作を一時停止したセキュリティゲートウェイの動作をすぐに再開するので、復帰動作を迅速に行うことが可能となる。
【００２８】
請求項２記載の発明は、請求項１記載の暗号化通信システムにおいて、前記各セキュリティゲートウェイには優先順位が付与されており、前記ＩＰセキュリティパケットを送受信中のセキュリティゲートウェイが、動作を一時停止した場合は、次に優先順位の高いセキュリティゲートウェイが前記ＩＰセキュリティパケットの送受信を行う構成を採る。
【００２９】
この構成により、例えば、優先順位が最も高いセキュリティゲートウェイが何らかの原因で故障して動作を一時停止した場合でも、次に優先順位の高いセキュリティゲートウェイが通信を行うため、通信が中断する時間を大幅に短縮することが可能となる。
【００４６】
【発明の実施の形態】
（実施の形態１）
図１は、本発明の実施の形態１に係る多重化暗号通信システムの概略構成を示す図である。この多重化暗号通信システムは、Ａ系１０、Ｂ系２０、及びＣ系３０がインターネット４０を介してＩＰｓｅｃコネクションを設定している。Ａ系１０及びＢ系２０は、それぞれ冗長度が２であり、Ｃ系３０は、冗長度が１である。Ａ系１０におけるＳＧＷ（Ｓｅｃｕｒｉｔｙ  Ｇａｔｅｗａｙ）では、ＳＧＷ０がＭＲ（マスタールータ）状態、ＳＧＷ１がＢＲ（バックアップルータ）状態となっている。Ｂ系２０におけるＳＧＷでは、ＳＧＷ０がスタートアップを待っているＩｎｉｔｉａｌｉｚｅ状態、ＳＧＷ１がＭＲ状態となっている。
【００４７】
図１には、ノードＡ１１の詳細も併せて示されている。ノードＡ１１におけるＳＧＷ０、ＳＧＷ１は、グローバル側であるＷＡＮ側ネットワーク１２とローカル側であるＬＡＮ側ネットワーク１３にネットワークインタフェースを有し、さらに、ＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）情報を共有するための専用通信回線１４（専用ネットワークインタフェース）を有する。ＳＧＷ０及びＳＧＷ１は、自系の冗長度（２）、及び冗長系における自分の優先度を設定情報として保有している。ＳＧＷ０のグローバル側及びローカル側のインタフェースは、それぞれ、ＩＰＡｇ、ＩＰＡｌが割当てられており、活性化（ｕｐ）状態にある。その他に、ローカル側インタフェースでは、ＩＰ０１も活性化状態にある。
【００４８】
一方、ＳＧＷ１は、グローバル側、ローカル側のＩＰアドレスとして、それぞれＩＰＡｇ、ＩＰＡｌが割当てられているが、非活性化（ｄｏｗｎ）状態にある。その他に、ローカル側インタフェースでは、ＩＰ０２が割当てられており、活性化状態にある。すなわち、ＳＧＷ０及びＳＧＷ１のローカル側ネットワークインタフェースは、同時に２つのＩＰアドレスを活性化することができる機能を有している。ＩＰＡｇ及びＩＰＡｌは、それぞれ、仮想ＳＧＷのグローバル及びローカルＩＰであり、ＭＲ状態にあるＳＧＷのみがこれらのＩＰアドレスを活性化して使用することができる。ＩＰ０１及びＩＰ０２は、それぞれＳＧＷ０、ＳＧＷ１個有のメンテナンス用ＩＰアドレスとして使用される。
【００４９】
ＭＲが正常状態にあることを示すＡｄｖｅｒｔｉｓｅｍｅｎｔ信号は、ＭＲによってＷＡＮ側もしくはＬＡＮ側インタフェースから一定期間毎にブロードキャストされる。鍵交換、ＩＰｓｅｃパケットの組み立て分解処理は、すべてＭＲにおいて行われ、ＢＲは、ＭＲからのＡｄｖｅｒｔｉｓｅｍｅｎｔ信号を受信し、ＭＲの状態を監視している。ＭＲが対向系と鍵交換を行い、ＳＡ情報が更新されると、ＭＲは専用通信回線１４を介してＢＲに新しいＳＡ情報を転送する。
【００５０】
図２は、冗長化ＳＧＷにおけるブロック分割の手順を示す図である。各ＳＧＷは、Ｉｎｉｔｉａｌｉｚｅ状態における初期設定時に、初期設定情報を参照して、自系の冗長度及び自分の優先度を取得する（ステップＳ１）。次に、ＭＲは、対向系ノードとの間で鍵交換を行う（ステップＳ２）。鍵交換時のセキュリティポリシのネゴシエーションパラメータとして、本発明に係る冗長化機能のサポートの有無、冗長度、及びＭＲの番号を交換する。ＭＲは、ネゴシエーションを行ったＳＡを、専用回線を介してＢＲに転送する（ステップＳ３）。
【００５１】
各ＳＧＷは、送信用、及び受信用ＳＮ値フィールドの小ブロック化を行う（ステップＳ４）。すなわち、送信用ＳＮ値フィールドは、自系の装置数＝ｎ、相手系の装置数＝ｍより、ｂ００〜ｂｎ−１ｍ−１の小領域に分割し、受信検査用のＳＮ値フィールドは、ｂ００〜ｂｍ−１ｎ−１の小領域に分割する。
【００５２】
Ａ系−Ｂ系（２対２）のＳＡでは、ＳＮ値を以下のブロックに分割する。
Ａ系の場合の小ブロック分割
Ａ系ＳＧＷ０用送信ＳＮ値ブロック
００００００００〜３ＦＦＦＦＦＦＦ  小ブロック００（Ａ系ＳＧＷ０からＢ系ＳＧＷ０へ）
４０００００００〜７ＦＦＦＦＦＦＦ  小ブロック０１（Ａ系ＳＧＷ０からＢ系ＳＧＷ１へ）
【００５３】
Ａ系ＳＧＷ０用受信ＳＮ値検査ブロック
００００００００〜３ＦＦＦＦＦＦＦ  小ブロック００（Ｂ系ＳＧＷ０からＡ系ＳＧＷ０へ）
８０００００００〜ＢＦＦＦＦＦＦＦ  小ブロック１０（Ｂ系ＳＧＷ１からＡ系ＳＧＷ０へ）
【００５４】
Ａ系ＳＧＷ１用送信ＳＮ値ブロック
８０００００００〜ＢＦＦＦＦＦＦＦ  小ブロック１０（Ａ系ＳＧＷ１からＢ系ＳＧＷ０へ）
Ｃ０００００００〜ＦＦＦＦＦＦＦＦ  小ブロック１１（Ａ系ＳＧＷ１からＢ系ＳＧＷ１へ）
【００５５】
Ａ系ＳＧＷ１用受信ＳＮ値検査ブロック
４０００００００〜７ＦＦＦＦＦＦＦ  小ブロック０１（Ｂ系ＳＧＷ０からＡ系ＳＧＷ１へ）
Ｃ０００００００〜ＦＦＦＦＦＦＦＦ  小ブロック１１（Ｂ系ＳＧＷ１からＡ系ＳＧＷ１へ）
【００５６】
Ｂ系の場合の小ブロック分割
Ｂ系ＳＧＷ０用送信ＳＮ値ブロック
００００００００〜３ＦＦＦＦＦＦＦ  小ブロック００（Ｂ系ＳＧＷ０からＡ系ＳＧＷ０へ）
４０００００００〜７ＦＦＦＦＦＦＦ  小ブロック０１（Ｂ系ＳＧＷ０からＡ系ＳＧＷ１へ）
【００５７】
Ｂ系ＳＧＷ０用受信ＳＮ値検査ブロック
００００００００〜３ＦＦＦＦＦＦＦ  小ブロック００（Ａ系ＳＧＷ０からＢ系ＳＧＷ０へ）
８０００００００〜ＢＦＦＦＦＦＦＦ  小ブロック１０（Ａ系ＳＧＷ１からＢ系ＳＧＷ０へ）
【００５８】
Ｂ系ＳＧＷ１用送信ＳＮ値ブロック
８０００００００〜ＢＦＦＦＦＦＦＦ  小ブロック１０（Ｂ系ＳＧＷ１からＡ系ＳＧＷ０へ）
Ｃ０００００００〜ＦＦＦＦＦＦＦＦ  小ブロック１１（Ｂ系ＳＧＷ１からＡ系ＳＧＷ１へ）
【００５９】
Ｂ系ＳＧＷ１用受信ＳＮ値検査ブロック
４０００００００〜７ＦＦＦＦＦＦＦ  小ブロック０１（Ａ系ＳＧＷ０からＢ系ＳＧＷ１へ）
Ｃ０００００００〜ＦＦＦＦＦＦＦＦ  小ブロック１１（Ａ系ＳＧＷ１からＢ系ＳＧＷ１へ）
【００６０】
Ａ系−Ｃ系（２対１）のＳＡでは、ＳＮ値を以下のブロックに分割する。
Ａ系ＳＧＷ０用送信ＳＮ値ブロック
００００００００〜７ＦＦＦＦＦＦＦ  小ブロック００（Ａ系ＳＧＷ０からＣ系へ）
Ａ系ＳＧＷ１用送信ＳＮ値ブロック
８０００００００〜ＦＦＦＦＦＦＦＦ  小ブロック１０（Ａ系ＳＧＷ１からＣ系へ）
Ａ系ＳＧＷ０用受信ＳＮ値検査ブロック
００００００００〜７ＦＦＦＦＦＦＦ  小ブロック００（Ｃ系からＡ系ＳＧＷ０へ）
Ａ系ＳＧＷ１用受信ＳＮ値検査ブロック
８０００００００〜ＦＦＦＦＦＦＦＦ  小ブロック０１（Ｃ系からＡ系ＳＧＷ１へ）
【００６１】
Ｃ系送信ＳＮ値ブロック
送信ＳＮ値ブロック
００００００００〜７ＦＦＦＦＦＦＦ  小ブロック００（Ｃ系からＡ系ＳＧＷ０へ）
８０００００００〜ＦＦＦＦＦＦＦＦ  小ブロック０１（Ｃ系からＡ系ＳＧＷ１へ）
受信ＳＮ値ブロック
００００００００〜７ＦＦＦＦＦＦＦ  小ブロック００（Ａ系ＳＧＷ０からＣ系へ）
８０００００００〜ＦＦＦＦＦＦＦＦ  小ブロック１０（Ａ系ＳＧＷ１からＣ系へ）
【００６２】
このように、各ＳＧＷによって送信用、及び受信用ＳＮ値フィールドの小ブロック化が行われる。
【００６３】
図３は、二重化ノード同士のＩＰｓｅｃ通信におけるＳＮ値の使用方法を示す図である。図３に示すように、Ａ系ではＳＧＷ０がＭＲの状態にあり、Ｂ系ではＳＧＷ１がＭＲの状態にある。
▲１▼  Ａ系ＳＧＷ０は、Ｂ系向けのパケットに、小ブロック０１内のシーケンス番号（４０００００００〜７ＦＦＦＦＦＦＦ）を順に付与する。
▲２▼  Ｂ系ＳＧＷ１は、Ａ系から受信したパケットの受信履歴を管理し、以前受け取ったことのあるＳＮ値が無いかどうかをチェックする。
▲３▼  Ｂ系ＳＧＷ１は、Ａ系向けの送信パケットに、小ブロック１０内のシーケンス番号（８０００００００〜ＢＦＦＦＦＦＦＦ）を順に付与する。
▲４▼  Ａ系ＳＧＷ０は、Ｂ系から受信したパケットの受信履歴を管理し、以前受け取ったことのあるＳＮ値が無いかどうかをチェックする。
【００６４】
図４は、二重化ノードと一重化ノード間のＩＰｓｅｃ通信におけるＳＮ値の使用方法を示す図である。図４に示すように、Ａ系ではＳＧＷ０がＭＲの状態にあり、Ｃ系ではＳＧＷ０がＭＲの状態にある。
▲１▼  Ａ系ＳＧＷ０は、Ｃ系向けのパケットに、小ブロック００内のシーケンス番号（００００００００〜７ＦＦＦＦＦＦＦ）を順に付与する。
▲２▼  Ｃ系は、Ａ系から受信したパケットの受信履歴を管理し、以前受け取ったことのあるＳＮ値が無いかどうかをチェックする。
▲３▼  Ｃ系は、Ａ系向けの送信パケットに、小ブロック００内のシーケンス番号（００００００００〜７ＦＦＦＦＦＦＦ）を順に付与する。
▲４▼  Ａ系ＳＧＷ０は、Ｃ系から受信したパケットの受信履歴を管理し、以前受け取ったことのあるＳＮ値が無いかどうかをチェックする。
【００６５】
図５は、冗長度が２以上の系における系切り替え手順を示す図である。系切り替えは、何らかの原因で系に故障が発生した場合等に行われる。ここで、故障が発生した系を自系、故障が発生した系とそれまで通信を行っていた系を対向系とする。冗長度は、（自系）：（対向系）＝ｎ：ｍであるとする。自系では、ＳＧＷｉがＭＲであり、ＳＧＷｋがＢＲ状態のＳＧＷのうち最も優先度が高い。また、対向系では、ＳＧＷｊがＭＲであるとする。
【００６６】
このような系において、自系のＭＲが故障した場合の系切り替え手順を説明する。ＳＧＷｉは、小ブロックｂｉｊ内のＳＮ値を利用して、対向系にパケットを送信する（ステップＴ１）。次に、ＳＧＷｉが何らかの原因で故障すると（ステップＴ２）。ＳＧＷｋは、ＭＲからのＡｄｖｅｒｔｉｓｅｍｅｎｔが不到着であることから、ＭＲがダウンしたことを検出する（ステップＴ３）。次に、ＳＧＷｋは、ＭＲ状態に遷移し（ステップＴ４）、ＳＧＷｋが新たにＭＲになったことを対向系に通知する（ステップＴ５）。ＳＧＷｋは、送信用の小ブロックをｂｋｊに設定し、受信用の小ブロックをｂｊｋに設定する（ステップＴ６）。ＳＧＷｋは、ｂｊｋ以外の小ブロックのＳＮ値を有するパケットは直ちに破棄する（ステップＴ７）。一方、対向系のＳＧＷｊは、ステップＴ５における通知信号を受信する（ステップＴ８）。対向系のＳＧＷｊは、送信用の小ブロックをｂｊｋに設定し、受信用の小ブロックをｂｋｊに設定する（ステップＴ９）。対向系のＳＧＷｊは、ｂｋｊ以外の小ブロックのＳＮ値を有するパケットも受信することができる（ステップＴ１０）。
【００６７】
図６は、二重化ノード同士のＩＰｓｅｃ通信における系切り替えが発生した場合のＳＮ値の使用方法を示す図である。ここでは、Ａ系において、ＳＧＷ０からＳＧＷ１への系切り替えが発生した場合を示す。
【００６８】
Ａ系のＳＧＷ０がＭＲであり、Ｂ系のＳＧＷ０がＭＲとなる系切り替えが発生した場合は、
【００６９】
【表１】
0003817140.tif 000002
を利用し、Ａ系のＳＧＷ１がＭＲであり、Ｂ系のＳＧＷ０がＭＲとなる系切り替えが発生した場合は、
【００７０】
【表２】
0003817140.tif 000003
を利用して同様の処理を行う。
【００７１】
このように、ＳＧＷ０は、小ブロック００と１０、ＳＧＷ１は小ブロック０１と１１の受信履歴のみを管理し、相互に相手の領域の受信履歴は管理しないシステムを構成することができるため、系切り替え時にＳＮ値の受信履歴及び送信ＳＮ値を転送する必要が無くなる。
【００７２】
これにより、系切り替えにより新たに通信を行うセキュリティゲートウェイが動作を停止したセキュリティゲートウェイから送信シーケンス番号の最終値及び受信シーケンス番号の検査履歴を転送する必要が無くなると共に、以前使用した送信シーケンス番号を再利用することなく、かつ、以前受信したシーケンス番号を再度受信することが無くなるため、いわゆるｒｅｐｌａｙ攻撃からシステムを防御することが可能となる。以上により、従来技術におけるＳＮ値同期に関する問題を解決することが可能となる。
【００７３】
図７は、二重化ノードと一重化ノード間のＩＰｓｅｃ通信における系切り替えが発生した場合のＳＮ値の使用方法を示す図である。ここでは、Ａ系において、ＳＧＷ０からＳＧＷ１への系切り替えが発生した場合を示す。ここでは、下記の表３に示す各小ブロックを利用する。
【００７４】
【表３】
0003817140.tif 000004
図８は、ＳＧＷｊが故障回復し、再度利用可能となった場合の復旧手順を示す図である。また、図９は、実施の形態１におけるＳＧＷの状態遷移図である。故障から回復し、Ｉｎｉｔｉａｌｉｚｅ状態にあるＳＧＷｉに、スタートアップイベント（コマンド投入等）が発生する（ステップＳＴ１）。次に、ＳＧＷｉは、従来技術のように直接ＭＲ又はＢＲ状態に遷移するのではなく、図９に示すように、一旦Ｓｔａｒｔｕｐ状態に遷移する（ステップＳＴ２）。Ｓｔａｒｔｕｐ状態において、ＳＧＷｉは、ＭＲから設定しているすべてのＳＡに対する鍵交換情報を取得する（ステップＳＴ３）。ＳＧＷｉは、前回故障してから１回以上鍵交換が行われているかどうかをチェックする（ステップＳＴ４）。このチェックの結果、１つでも鍵交換が行われていないＳＡが存在した場合は、ステップＳＴ１におけるＩｎｉｔｉａｌｉｚｅ状態へ遷移する。すなわち、コマンドに対する戻り値としてその旨を報告する。一方、ＳＧＷｉは、前回故障してから１回以上鍵交換が行われていた場合は、ＭＲからＳＡを転送（コピー）する（ステップＳＴ５）。最後に、優先度に応じてＭＲ又はＢＲに遷移する（ステップＳＴ６）。
【００７５】
このように、動作を一時停止してから１回以上共通鍵の更新が行われているかどうかを検査し、検査結果に応じて動作を一時停止したセキュリティゲートウェイの動作を再開させるかどうかを決定する。その結果、共通鍵の更新が１度も行われていない場合は、セキュリティ確保のため、動作を一時停止したセキュリティゲートウェイの動作を再開しない。一方、共通鍵の更新が１回以上行われている場合は、動作を一時停止したセキュリティゲートウェイの動作をすぐに再開するので、復帰動作を迅速に行うことが可能となる。
【００７６】
以上により、実施の形態１によれば、ＲＦＣ２３３８に規定されている仮想ルータによるルータ冗長化機能を、ＩＰｓｅｃ機能を有する装置でも利用可能となるため、装置が故障等した場合の系切り替え時間を大幅に短縮することが可能となる。
【００７７】
（実施の形態２）
実施の形態１では、ＳＡ情報を共有する上で安全性を確保するため、専用のネットワークを利用した。しかし、安全性に対する要求の条件がそれほど高くない場合は、ＳＡ情報の共有にＬＡＮ回線を流用し、ＬＡＮ内において行われるＳＡ情報の転送を守るために、自系内の各ＳＧＷ間でＳＡを共有するためのＩＰｓｅｃコネクションを構築することも可能である。また、ＷＡＮ側インタフェースに複数のＩＰアドレスを割当てて、ＷＡＮ回線経由でＩＰｓｅｃコネクションを構築し、ＷＡＮ回線経由でＳＡ情報を共有することも可能である。
【００７８】
（実施の形態３）
実施の形態１では、冗長度が２対２の場合と、２対１の場合とで、ＳＮ値領域の分割方法を切り替えていた。相手系の冗長度に応じて、ＳＮ値領域の分割方法を切り替えず、２対１の場合にも、２対２の場合と同じＳＮ値分割を流用することにより、実装が容易となる場合がある。この場合、図３に示すような、二重化ノード同士のＩＰｓｅｃ通信におけるＳＮ値の使用、及び、図６に示すような、二重化ノード同士のＩＰｓｅｃ通信における系切り替えが発生した場合のＳＮ値の使用においては、
Ａ側送信小ブロック０１、１１、
Ａ側受信小ブロック１０、１１、
Ｂ（Ｃ）側送信小ブロック１０、１１、
Ｂ（Ｃ）側受信小ブロック０１、１１、
を無効な領域とすることによって、２対１の場合にも、２対２の場合と同じＳＮ値分割を流用することが可能となる。
【００７９】
（実施の形態４）
上記の説明では、３２ｂｉｔのシーケンス番号領域を、３０ｂｉｔの領域４ブロック（２対２の場合）に分割することによって、系切り替え時における情報共有の問題を解決したが、シーケンス番号の領域を２ｂｉｔ拡張して３２ｂｉｔの領域４ブロックとしても同様の効果を得ることが可能である。
【００８０】
なお、以上の説明では、代表的なセキュリティプロトコルとして、ＩＰｓｅｃを例にとって実装法を示した。しかし、定期鍵交換を行う、共通鍵型の暗号及び認証機構を利用するプロトコルであれば、ＩＰｓｅｃに限られるわけではない。また、媒体もインターネットには限定されない。さらに、シーケンス番号機構を利用するプロトコルであれば、自系及び対向系のＳＧＷ数に応じてＳＮ値の領域を小ブロックに分割する手段や、鍵交換時に相手系の冗長性に関する情報を交換する手段や、故障していたＳＧＷが復旧し、ＢＲ状態又はＭＲに遷移するための手段を実現することが可能となる。
【００８１】
また、以上の説明では、ＳＧＷを利用する場合の冗長化方式を例にとって示したが、コンピュータが直接ＩＰｓｅｃを終端する場合において、コンピュータ自体に二重化機能を適用する場合においても、同様の方式が適用可能である。
【００８２】
【発明の効果】
以上説明したように、本発明に係る暗号化通信システムは、ＩＰセキュリティパケットを送受信する複数のセキュリティゲートウェイと、前記各セキュリティゲートウェイを接続し、共通鍵に関する情報を伝送する専用通信回線とを備えた構成を採る。
【００８３】
この構成により、共通鍵に関する情報を、ＬＡＮやＷＡＮ等のネットワークとは完全に独立した回線で伝送することができるため、通信の安全性を確保することが可能となる。従って、従来技術におけるＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）を共有する問題を解決し、冗長化されたＳＧＷ（Ｓｅｃｕｒｉｔｙ  Ｇａｔｅｗａｙ）において、仮想ルータ機能を実装し、系切り替えを高速に行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係る多重化暗号通信システムの概略構成を示す図である。
【図２】冗長化ＳＧＷにおけるブロック分割の手順を示す図である。
【図３】二重化ノード同士のＩＰｓｅｃ通信におけるＳＮ値の使用方法を示す図である。
【図４】二重化ノードと一重化ノード間のＩＰｓｅｃ通信におけるＳＮ値の使用方法を示す図である。
【図５】冗長度が２以上の系における系切り替え手順を示す図である。
【図６】二重化ノード同士のＩＰｓｅｃ通信における系切り替えが発生した場合のＳＮ値の使用方法を示す図である。
【図７】二重化ノードと一重化ノード間のＩＰｓｅｃ通信における系切り替えが発生した場合のＳＮ値の使用方法を示す図である。
【図８】ＳＧＷｊが故障回復し、再度利用可能となった場合の復旧手順を示す図である。
【図９】実施の形態１におけるＳＧＷの状態遷移図である。
【図１０】（ａ）  ＩＰｓｅｃ（トンネルモードＥＳＰ）パケットの構造を示す図である。
（ｂ）  ＩＰｓｅｃの実装形態を示す図である。
【図１１】従来技術におけるＳＧＷ２重化方式の一例を示す図である。
【図１２】（ａ）  ＶＲＲＰルータの多重化方式の概念図である。
（ｂ）  ＶＲＲＰルータの状態遷移図である。
（ｃ）  ＡＤＶＥＲＴＩＳＥメッセージフォーマットを示す図である。
【符号の説明】
１０…Ａ系、１１…ノードＡ、２０…Ｂ系、３０…Ｃ系、４０…インターネット、１２…ＷＡＮ側ネットワーク、１３…ＬＡＮ側ネットワーク、１４…専用通信回線。
【図１】
0003817140.tif 000005
【図２】
0003817140.tif 000006
【図３】
0003817140.tif 000007
【図４】
0003817140.tif 000008
【図５】
0003817140.tif 000009
【図６】
0003817140.tif 000010
【図７】
0003817140.tif 000011
【図８】
0003817140.tif 000012
【図９】
0003817140.tif 000013
【図１０】
0003817140.tif 000014
【図１１】
0003817140.tif 000015
【図１２】
0003817140.tif 000016