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