(57)【要約】【課題】とくに暗号通信を行う際の通信路を確立する通信路確立方法を提供。【解決手段】通信装置10、12との通信路をIPネットワークを介して確立する際に、第２の通信装置から第１の通信装置へ送信されるISAKMPメッセージのパケットを待つときに、パケットを待つ時間をパケット待ちタイマによってランダムな間隔で計時し、第２の通信装置から送信されることを期待するパケットの順番以外のパケットを受信すると、このパケットを受け入れて通信路を確立する構成。【選択図】図１
2009081779.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置と対向する第２の通信装置との間の通信路を確立する通信路確立方法において、該方法は、
第２の通信装置から第１の通信装置へ送信されたパケットを待つ待ち工程と、
前記パケットを待つ時間を計時するパケット待ちタイマをランダムな間隔で持つ計時工程と、
第２の通信装置から送信されることを期待するパケットの順番以外のパケットを受信する受信工程と、
前記パケットを受け入れる受け入れ工程と、
該受け入れ工程にて受け入れたパケットに基づいて通信路を確立する確立工程とを含むことを特徴とする通信路確立方法。
【請求項２】
請求項１に記載の通信路確立方法において、前記待ち工程は、第１の通信装置から第２の通信装置へ送信した第１のパケットと、第２の通信装置から第１の通信装置へ送信された第２のパケットとのパケットのすれ違いが発生した場合にも第１の通信装置は第２のパケットを待つことを特徴とする通信路確立方法。
【請求項３】
請求項１に記載の通信路確立方法において、前記パケットは、暗号通信を行うための通信路を確立するためのパケットであることを特徴とする通信路確立方法。
【請求項４】
第１の通信装置と対向する第２の通信装置との間の通信路を確立する通信路確立方法において、該方法は、
第２の通信装置から第１の通信装置へ送信されたパケットを待つ待ち工程と、
第２の通信装置から送信されることを期待するパケットの順番以外のパケットを受信する受信工程と、
第１の通信装置および第２の通信装置に設定されている互いに異なる値を大小比較する比較工程と、
前記パケットを受け入れる受け入れ工程と、
該受け入れ工程にて受け入れたパケットに基づいて通信路を確立する確立工程とを含み、
前記受信工程にて第２の通信装置から送信されることを期待するパケットの順番以外のパケットを第１の通信装置にて受信すると、前記受け入れ工程は、前記比較工程の大小比較の結果に基づいて前記パケットを受け付けるか否かを判断することを特徴とする通信路確立方法。
【請求項５】
請求項４に記載の通信路確立方法において、前記受け入れ工程は、前記パケットを受け付けるか否かをパケットのやり取り開始時に判断することを特徴とする通信路確立方法。
【請求項６】
請求項４に記載の通信路確立方法において、前記受け入れ工程は、前記パケットを受け付けるか否かを該パケットのやり取り中に判断することを特徴とする通信路確立方法。
【請求項７】
請求項４に記載の通信路確立方法において、前記受け入れ工程は、前記パケットを受け付けるか否かを該パケットのやり取り終了後に判断することを特徴とする通信路確立方法。
【請求項８】
第１の通信装置と対向する第２の通信装置との間の通信路を確立する通信路確立方式において、該方式は、
第２の通信装置から第１の通信装置へ送信されたパケットを待つ待ち手段と、
前記パケットを待つ時間を計時するパケット待ちタイマをランダムな間隔で持つ計時手段と、
第２の通信装置から送信されることを期待するパケットの順番以外のパケットを受信する受信手段と、
前記パケットを受け入れる受け入れ手段と、
該受け入れ手段にて受け入れたパケットに基づいて通信路を確立する確立手段とを含むことを特徴とする通信路確立方式。
【請求項９】
請求項８に記載の通信路確立方式において、前記待ち手段は、第１の通信装置から第２の通信装置へ送信した第１のパケットと、第２の通信装置から第１の通信装置へ送信された第２のパケットとのパケットのすれ違いが発生した場合にも第１の通信装置は第２のパケットを待つことを特徴とする通信路確立方式。
【請求項１０】
請求項８に記載の通信路確立方式において、前記パケットは、暗号通信を行うための通信路を確立するためのパケットであることを特徴とする通信路確立方式。
【請求項１１】
第１の通信装置と対向する第２の通信装置との間の通信路を確立する通信路確立方式において、該方式は、
第２の通信装置から第１の通信装置へ送信されたパケットを待つ待ち手段と、
第２の通信装置から送信されることを期待するパケットの順番以外のパケットを受信する受信手段と、
第１の通信装置および第２の通信装置に設定されている互いに異なる値を大小比較する比較手段と、
前記パケットを受け入れる受け入れ手段と、
該受け入れ手段にて受け入れたパケットに基づいて通信路を確立する確立手段とを含み、
前記受信手段にて第２の通信装置から送信されることを期待するパケットの順番以外のパケットを第１の通信装置にて受信すると、前記受け入れ手段は、前記比較工程の大小比較の結果に基づいて前記パケットを受け付けるか否かを判断することを特徴とする通信路確立方式。
【請求項１２】
請求項１１に記載の通信路確立方式において、前記受け入れ手段は、前記パケットを受け付けるか否かをパケットのやり取り開始時に判断することを特徴とする通信路確立方式。
【請求項１３】
請求項１１に記載の通信路確立方式において、前記受け入れ手段は、前記パケットを受け付けるか否かを該パケットのやり取り中に判断することを特徴とする通信路確立方式。
【請求項１４】
請求項１１に記載の通信路確立方式において、前記受け入れ手段は、前記パケットを受け付けるか否かを該パケットのやり取り終了後に判断することを特徴とする通信路確立方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを暗号化して通信する通信路の通信路確立方法に係り、たとえば、IPsec (Security Architecture for Internet Protocol)通信で使用するIP (Internet
Protocol)パケットを暗号化して通信するIPsec通信で使用する通信路の通信路確立方法および方式に関するものである。
【背景技術】
【０００２】
従来、通信機器同士がIPsecにより暗号通信を行う際に用いるSA (Security Association)の確立およびIPsec通信の管理を自動で行うためのプロトコルとして非特許文献１に示されるようなIKE (Internet Key Exchange：インターネット鍵交換)がある。IPsec通信では、このIKEによって鍵交換を行う。SAは、通信装置の通信路を通るIPパケットを盗聴や改ざんから防ぐための暗号通信のコネクションである。
【０００３】
IKEによる手順は、暗号通信開始時にISAKMP (Internet Security Association And Key Management Protocol)パケットと呼ばれるメッセージを通信装置間にてやりとりしてSAを確立する。ISAKMPパケットのやりとりにより、SAを用いた暗号化通信で使用する暗号方式、認証方式、暗号鍵、認証鍵およびSAの有効期間等をネゴシエーションし、通信装置間にて決定する。
【０００４】
通信装置の送信側が、対向の通信装置へIPパケットを送出するタイミングにおいて、対向の通信機器とのSAが未確立の場合にIKEが開始される。このIKEにおける１つ目のISAKMPメッセージを送出する通信装置はイニシエータと呼ばれ、１つ目のISAKMPメッセージに対して、２つ目のISAKMPメッセージを送出する通信装置はレスポンダと呼ばれる。
【０００５】
特許文献１に記載された発明では、IPsec通信を行っているときに障害が発生すると障害通知パケットを送信し、この障害通知パケットを受信した装置が新たにIPsec通信を確立させる従来例が記載されていた。
【特許文献１】特開２００５−０２０２１５公報
【非特許文献１】The Internet KeyExchange (IKE), Network Working Group, Request for Comments: 2409, Category:Standards Track, The Internet Society, November 1998
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、対向する両通信装置が同じタイミングでIPパケットを送出しようとし、双方の通信装置が同じタイミングでIKEを開始した場合、IKEの１つ目のISAKMPメッセージが通信路上ですれ違うことが起こりうる。
【０００７】
このような障害が発生したとき、双方の通信装置が共にイニシエータとして動作し、それぞれが対向の通信装置からの２つ目のISAKMPメッセージを待つ状態になり、この状態で対向の通信装置から１つ目のISAKMPメッセージを受信しても破棄するため、IKEが成功せず、通信路を確立することができないという問題があった。
【０００８】
また、２つ目のISAKMPメッセージを待つ制限時間が経過した後に、両通信装置ともに１つ目のISAKMPメッセージを再送する。この再送処理が、あらかじめそれぞれの通信装置にて設定された再送間隔ごとおよび再送回数分送信することになる。この再送間隔は、１つ目のISAKMPメッセージを送信した後、対向する通信装置からの２つ目のISAKMPメッセージの受信を待つ制限時間であり、これを２つ目のISAKMPメッセージの待ちタイマと呼ぶ。
【０００９】
２つ目のISAKMPメッセージの待ちタイマの経過前に、対向の通信装置から２つ目のISAKMPメッセージを受信できなかった場合、この待ちタイマの経過をトリガにして、再度１つ目のISAKMPメッセージを対向の通信装置に送出する。この待ちタイマの間隔や再送回数が両通信装置で同じ値が設定される場合、IKEによるメッセージのすれ違いを繰り返すことになって、IKEを成功させることができず、通信路を確立することができない。このようなすれ違い時における処理は、RFC (Request For Comments)では規定されておらず、すれ違いを防止することができなかった。
【００１０】
本発明はこのような課題に鑑み、通信路を確立することのできる通信路確立方法および方式、とくに暗号通信を行う際の通信路を確立することのできる通信路確立方法および方式を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は上述の課題を解決するために、第１の通信装置と対向する第２の通信装置との間の通信路を確立する通信路確立方法において、この方法は、第２の通信装置から第１の通信装置へ送信されたパケットを待つ待ち工程と、パケットを待つ時間を計時するパケット待ちタイマをランダムな間隔で持つ計時工程と、第２の通信装置から送信されることを期待するパケットの順番以外のパケットを受信する受信工程と、パケットを受け入れる受け入れ工程と、受け入れ工程にて受け入れたパケットに基づいて通信路を確立する確立工程とを含むことを特徴とする。
【００１２】
この場合、待ち工程は、第１の通信装置から第２の通信装置へ送信した第１のパケットと、第２の通信装置から第１の通信装置へ送信された第２のパケットとのパケットのすれ違いが発生した場合にも第１の通信装置は第２のパケットを待つとよい。また、パケットは、暗号通信を行うための通信路を確立するためのパケットであるとよい。
【００１３】
また、本発明は上述の課題を解決するために、第１の通信装置と対向する第２の通信装置との間の通信路を確立する通信路確立方法において、第２の通信装置から第１の通信装置へ送信されたパケットを待つ待ち工程と、第２の通信装置から送信されることを期待するパケットの順番以外のパケットを受信する受信工程と、第１の通信装置および第２の通信装置に設定されている互いに異なる値を大小比較する比較工程と、パケットを受け入れる受け入れ工程と、受け入れ工程にて受け入れたパケットに基づいて通信路を確立する確立工程とを含み、受信工程にて第２の通信装置から送信されることを期待するパケットの順番以外のパケットを第１の通信装置にて受信すると、受け入れ工程は、比較工程の大小比較の結果に基づいてパケットを受け付けるか否かを判断することを特徴とする。
【００１４】
この場合、受け入れ工程は、前記パケットを受け付けるか否かをパケットのやり取り開始時、パケットのやり取り中およびパケットのやり取り終了後に判断するとよい。
【発明の効果】
【００１５】
本発明によれば、第１および第２の通信装置が同じタイミングでイニシエータとして動作し、１つ目のパケットであるISAKMPメッセージがすれ違った場合に、対向する通信装置から、送信されることを期待する以外のメッセージを受けても、そのメッセージに応答する状態を持たせる構成により、パケットのすれ違いが発生した場合の対処の実装方法に関わらず、対向通信装置が期待するメッセージを送信し、IKEを成功し、SAを確立することができる。
【００１６】
また、第１および第２の通信装置が同じタイミングでイニシエータとして動作し、１つ目のISAKMPメッセージがすれ違った場合に、対向する通信装置が、すれ違いが起こった場合の対処として同じ実装をする装置であれば、MACアドレスやIPアドレス等の装置に固有の値の大小を比較し、この比較の結果に基づいてすれ違い発生後すぐにイニシエータとなる装置を決定することができるので、IKEを成功し、SAを確立することができる。
【００１７】
また、どちらの通信装置がイニシエータであったIKEを有効とするかをあらかじめ決めておき、双方向のIKEが終了した後に、２つのSAのいずれを使用するかを決定することができる。
【発明を実施するための最良の形態】
【００１８】
次に添付図面を参照して本発明による通信路確立方法の実施例を詳細に説明する。図１を参照すると、２つの通信装置10、12間にて暗号通信を開始する際の通信路を確立する通信システム14における通信手順が示されている。本実施例における通信装置10と通信装置12とは、IPネットワークを介してIPsec (Security Architecture for Internet Protocol)通信を行う際に暗号通信のための通信路を形成する。なおIPネットワークは、有線および無線によるものであってよい。
【００１９】
通信装置10、12は、暗号通信を開始する際にISAKMP (Internet Security Association And Key Management Protocol)パケットを対向する通信装置12へ送信する機能を有している。このパケットの送受信を行うことによってIKE (Internet Key Exchange)用のSA (Security Association)、つまりIKE SAを生成する。IKEは、SAを用いる暗号通信にて使用する暗号方式、認証方式、暗号鍵および認証鍵等を決定する手順である。
【００２０】
通信装置10、12は、生成されたIKE SA上にて送受信用の鍵をそれぞれ生成して、生成した鍵を通信装置間で交換する。鍵の交換が行われてIKEが成功すると通信装置10、12間のSAが確立される。このIKEによって確立したSAによって通信装置10、12は、IPsec通信を開始する。このとき通信装置10、12の一方は、IPsec用の送信用SAを生成し、他方はIPsec用の受信用SAを生成して、IPsecによるパケット通信が実行される。
【００２１】
本実施例では通信装置10側に以下の機能を備える。なお、対向する通信装置12側にも同様の機能を備える。
【００２２】
通信装置10は、１つ目のISAKMPメッセージを送信に続いて２つ目のISAKMPメッセージを送信するまでの時間を設定し、その時間を計時する待ちタイマ20を有する。なお、通信装置12にも同様の待ちタイマ22を備える。
【００２３】
通信装置10は、２つ目のISAKMPメッセージの待ちタイマの計時値にランダム値を加算または減算するかのいずれかの処理を行って、この待ちタイマの長さ、つまり設定時間を変化させる。このランダム値は、自身の通信装置10のMAC (Media Access Control)アドレスやIPアドレス等のような対向の通信装置12の待ちタイマに設定される値と同じ値になりえない値を乱数発生の種として、乱数発生関数等により生成される値を採用する。通信装置12の待ちタイマ22にはこのようなランダム値を加減算しなくてもよい。
【００２４】
通信機器10は、さらに１つ目のISAKMPメッセージを送信し、イニシエータとして対向の通信装置12からの２つ目のISAKMPメッセージを待っている状態にあるときに、通信装置12から１つ目のISAKMPメッセージを受信した場合、すれ違いが発生したと判断する機能を有している。通信機器10は、すれ違いの発生を認識すると、１つ目のISAKMPメッセージまたは２つ目のISAKMPメッセージを待っている状態であるとして自己の通信装置10の状態を変更する状態管理機能を有している。
【００２５】
１つ目および２つ目の両方のISAKMPメッセージを受信できる状態で、通信装置10は、対向の通信装置12の次の動作を待つ待機状態となる待機機能を有している。この待機状態とき通信装置10は、待ちタイマ20の計時動作は停止せず、カウントを継続する。
【００２６】
以上のような構成で、本実施例における通信システムの動作を説明する。まず、通信装置10が、１つ目のISAKMPメッセージを送信し、イニシエータとして２つ目のISAKMPメッセージを待っている状態であるときに、対向の通信装置12から１つ目のISAKMPメッセージを通信装置10が受信し、このために、１つ目のISAKMPメッセージまたは２つ目のISAKMPメッセージを待っている状態に通信装置10がなった場合、対向の通信装置12から送信されるメッセージまたは通信装置10が設定している２つ目のISAKMPメッセージの待ちタイマ20のタイムアウトによって、以下の第１ないし第３の動作の動作が実行される。
【００２７】
第１の動作は、図２のステップS200に示すように、通信装置10、12間のSAが未確立である状態から、通信装置10から通信装置12へのIPパケットの送信動作が開始され（ステップS202）、これとは逆に通信装置12から通信装置10へのIPパケットの送信動作が開始される（ステップS204）。
【００２８】
通信装置10から通信装置12宛の１パケット目のISAKMPメッセージがステップS206にて送信され、その後、通信装置10は２つ目のISAKMPメッセージを待つ状態となる（ステップS208）。このISAKMPメッセージが送信完了すると通信装置10は、２つ目のISAKMPメッセージの待ちタイマ20の計時を開始する。この待ちタイマ20には、ランダム値が加算または減算されている。
【００２９】
また、通信装置12から通信装置10宛の１パケット目のISAKMPメッセージがステップS210にて送信され、その後、通信装置12は２つ目のISAKMPメッセージを待つ状態となる（ステップS212）。このISAKMPメッセージが送信完了すると通信装置12は、２つ目のISAKMPメッセージの待ちタイマ22の計時を開始する。
【００３０】
通信装置10では、２つ目のISAKMPメッセージを待つ状態を変更して、１つ目および２つ目のISAKMPメッセージを待つ状態になる（ステップS214）。この状態のときに、対向の通信装置12から１つ目のISAKMPメッセージを受信した場合（ステップS216）、通信機器10は、イニシエータからレスポンダに変更し（ステップS218）、２パケット目のISAKPメッセージを通信装置12へ送信し（ステップS220）、３つ目のISAKMPメッセージを待っている状態に遷移する（ステップS222）。次いでステップS224に進んで、対向の通信装置12から３パケット目のISAKMPメッセージが送信されて、通信装置10にて受信される。この結果、通信装置10、12間のIKEが成功して、イニシエータである通信装置12とレスポンダとなった通信装置10との間にてSAが確立し（ステップS226）、その後IPsec通信が行われる。
【００３１】
以上のように、通信装置10に対向する通信機器12が待ちタイマ22にランダム値を加減算するという構成を実装していない場合で、ステップS216のように、１つ目のISAKMPメッセージを通信装置10へ再送してきた場合でも、通信装置10自身がレスポンダとして動作するように切り替えてることにより、IKEを成功させることが可能になる。
【００３２】
次に、第２の動作を図３を参照して説明する。第２の動作は、通信装置10が１つ目のISAKMPメッセージまたは２つ目のISAKMPメッセージを待っている状態にあるときに、対向の通信装置12から２つ目のISAKMPメッセージを受信する場合の動作である。
【００３３】
第２の動作は、図２に示したステップS200〜ステップS214の動作と同様の動作でよいので同じ参照符号にて示す。図３に示すように、通信装置10に対向する通信装置12の動作であるステップS212に続いてステップS300に進むと、通信装置12に対向している通信装置10を尊重し、通信装置12自身をイニシエータからレスポンダに切り替えて変更する。その後、通信装置12は、２パケット目のISAKMPメッセージを通信装置10へ送信し（ステップS302）、３つ目のISAKMPメッセージを待つ状態に遷移する（ステップS304）。次いでステップS306に進んで、通信装置10から３パケット目のISAKMPメッセージが送信されて、通信装置12にて受信される。次いで通信機器10は、イニシエータの状態のままで、３つ目のISAKPメッセージを送出し、４つ目のISAKMPメッセージを待つ状態に遷移する（ステップS308）。
【００３４】
この結果、通信装置10、12間のIKEが成功して、イニシエータである通信装置10とレスポンダとなった通信装置12との間にてSAが確立し（ステップS308）、その後IPsec通信が行われる。
【００３５】
以上のように、通信機器12が、２つ目のISAKMPメッセージを待つ状態で、対向する通信機器10から、１つ目のISAKMPメッセージを受信した場合、通信装置12に対向する通信装置10を尊重し、通信機器12がレスポンダとなって２つ目のISAKMPメッセージを送信するという実装を行っている場合、レスポンダである通信機器12の動作に合わせて通信機器10が動作することにより、IKEを成功することが可能になる。
【００３６】
次に、第３の動作を図４を参照して説明する。第３の動作は、たとえば、２つ目のISAKMPメッセージを待ちタイマ20の値からランダム値を減算し、この演算結果を待ちタイマに設定した場合などのように、通信装置12側の待ちタイマ22の設定値よりも通信装置10側の待ちタイマ20の設定値が短い時間に設定されている場合である。この場合に、待ちタイマ20による計時が設定時間を経過して終了するとタイムアウトになる。このタイムアウトの際に待ちタイマ20は、計時を再度繰り返す。
【００３７】
図４において、図３に示したステップS200〜ステップS214の動作と同様の動作でよいので同じ参照符号にて示す。図４に示すように、１つ目または２つ目のISAKMPメッセージを待つ状態であるときに（ステップS214）、通信装置10は、待ちタイマ20が対向の通信装置12よりも先にタイムアウトすると、イニシエータの状態のままで１パケット目のISAKMPメッセージを送信装置12へ再送信する（ステップS400）。また、待ちタイマ20の計時を再開させる。この場合、通信装置10は、イニシエータの状態を維持するとともに、１つ目または２つ目のISAKMPメッセージを待つ状態のままであり、状態は変更されない（ステップS402）。
【００３８】
次いでステップS404に進み、対向の通信装置12が、１パケット目のISAKMPメッセージを送信すると、通信機器10は、上述した第１の動作と同様の動作を行い、対向の通信装置12が、２パケット目のISAKMPメッセージを送信した場合には、通信装置10は上述した第２の動作と同様の動作を行うことにより、IKEを成功することが可能になる（ステップS406）。
【００３９】
以上説明したように、両方の通信装置10、12が同じタイミングでイニシエータとして動作し、１つ目のISAKMPメッセージが通信路上にてすれ違った場合に、対向する通信装置からパケットを送信されることを期待する旨のメッセージ以外のメッセージを受信しても、そのメッセージに応答できる状態を少なくとも一方の通信装置に持たせることで、互いに対向する通信装置によるパケットのすれ違いが起こった場合の対処の実装方法に関わらず、対向の通信装置が期待するメッセージを送信し、IKEを成功し、SAを確立することが可能である。
【００４０】
とくに、対向する通信装置からのパケットを待つ状態のときに、自己の通信装置のパケット待ちタイマにランダムな値によってランダムな間隔で持たせ、かつ、対向の通信装置から送信されることを期待するパケットの順番以外のパケットも自己の通信装置にて受けられる状態を持つ手順を実装することにより、パケットのすれ違いが発生した場合にも、最終的にパケットのやりとりを成功させることができる。
【００４１】
次に本発明が適用された通信システムの他の実施例を説明する。本実施例における通信システムでは、パケットのすれ違いが発生したときに、対向する通信装置10、12のMACアドレスやIPアドレス等のような対向装置とは異なる値をそれぞれ比較し、それら値の大小により、通信装置をイニシエータのままか、レスポンダに変更して動作するかを決定する。
【００４２】
本実施例では、通信装置10のMACアドレス（またはIPアドレス）が通信装置12のMACアドレス（またはIPアドレス）よりも大きい場合の動作例について説明する。
【００４３】
図５に示すように、ステップS200〜ステップS212までの動作は図２に示した同じ参照符号の動作と同じ動作でよい。ステップS208、S212における通信装置10、12が、それぞれ１パケット目のISAKMPメッセージを送信し、イニシエータとして２つ目のISAKMPメッセージを待つ状態にあるときに、１つ目のISAKMPメッセージを対向する通信装置から受信した場合、通信装置10、12はそれぞれ、対向装置のMACアドレスまたはIPアドレスの大きさ等を比較する。
【００４４】
対向する装置より大きい値を有する通信装置10は、イニシエータのままで２つ目のISAKMPメッセージを待つ（ステップS500）。逆に、対向装置よりも小さい値を有する通信機器12は、レスポンダに変更し、２パケット目のISAKPメッセージを通信装置10へ送信する（ステップS504）。次いで通信装置12は、３つ目のISAKMPメッセージを待つ状態に遷移する（ステップS506）。
【００４５】
次に通信装置10は、３パケット目のISAKMPメッセージを通信装置12へ送信し（ステップS508）、４つ目のISAKMPメッセージを待つ状態に遷移する（ステップS510）。
【００４６】
以上のように１パケット目のISAKMPメッセージのすれ違いは解消され、IKEを成功することが可能になる。
【００４７】
通信装置10、12の両方が同じタイミングでイニシエータとして動作し、１パケット目のISAKMPメッセージがすれ違った場合に、相手通信装置が、すれ違いが起こった場合の対処として同じ動作を行う実装をする装置であれば、自装置のMACアドレスやIPアドレス等の機器に固有の値の大小を比較することで、すれ違いの発生後すぐにイニシエータとなる機器を決定することができ、IKEを成功し、SAを確立することが可能である。
【００４８】
このようにMACアドレス、IPアドレス等、互いに同じ値になり得ない異なる値を対向通信装置と自己の通信装置とで大小比較することで、対向装置から送信されることが期待されるパケットの順番以外のパケットを受信した場合、それを受け付けるか否かをパケットのやり取り開始時に判断する手順を実装している。この結果、パケットのすれ違いが発生した場合であっても、パケットのやり取りを成功させることができる。
【００４９】
上記実施例では、MACアドレスまたはIPアドレスの大きい方の通信装置がレスポンダに変更し、小さい方がイニシエータのままとする例を説明したが、これに限らず、MACアドレスまたはIPアドレスの大きい方がレスポンダに変更し、小さい方がイニシエータのままであるという決まりでもよい。このように、両通信装置10、12同士で同じ決まりの実装方法であればよい。
【００５０】
次に本発明が適用された通信システムのさらに他の実施例を説明する。本実施例における通信システムでは、パケットのすれ違いが発生したときに、双方向のIKEを実施し、IKEのパケットのやり取りの途中または終了時に、対向する通信装置のMACアドレスやIPアドレス等の対向装置とは異なる値を比較して値の大小を判断し、その判断結果に応じてどちらかの通信装置をイニシエータ(またはレスポンダ)としたIKEをIPsec通信路として有効にするかを決めるように形成されている。
【００５１】
図６に示すように、ステップS200〜ステップS212までの動作は図２に示した同じ参照符号の動作と同じ動作でよい。ステップS208、S212における通信装置10、12が、それぞれ１パケット目のISAKMPメッセージを送信した後に、それぞれが２つ目のISAKMPメッセージを待つ状態に遷移する。このとき通信装置10、12はともにイニシエータとして動作する。
【００５２】
１パケット目のISAKMPメッセージ受信した送信装置10、12は、それぞれレスポンダとして動作を開始する。通信装置10、12からそれぞれ２パケット目のISAKMPメッセージを送信し（ステップS600、S602）、通信装置10、12はそれぞれ、３つ目のISAKMPメッセージを待つ状態に遷移する（ステップS604、S606）。
【００５３】
２パケット目のISAKMPメッセージ受信した送信装置10、12は、それぞれイニシエータとして動作を開始する。通信装置10、12からそれぞれ３パケット目のISAKMPメッセージを送信し（ステップS608、S610）、通信装置10、12はそれぞれ、４つ目のISAKMPメッセージを待つ状態に遷移する（ステップS612、S614）。
【００５４】
次に、３パケット目のISAKMPメッセージ受信した送信装置10、12は、それぞれレスポンダとして動作を開始する。通信装置10、12からそれぞれ４パケット目のISAKMPメッセージを送信し（ステップS616、S618）、通信装置10、12はそれぞれ、５つ目のISAKMPメッセージを待つ状態に遷移する（ステップS620、S622）。
【００５５】
このようにして、両通信装置10、12間で、１つ目のISAKMPメッセージがすれ違った場合、両方向のIKEを実施する。両方向のIKEをやり取りする途中または両方向のIKEが成功後２つのSAが確立して（ステップS624）から、どちらの機器がイニシエータまたはレスポンダとして確立したSAをIPsec通信に使用するかを決定する。この決定の際には、対向する通信装置のMACアドレスや、Pアドレス等の対向装置とは互いに同じ値になり得ない異なる値を用いて判断することができる。
【００５６】
図示の例では、対向する通信装置のたとえばMACアドレスを比較して、大きい方の通信装置10がイニシエータとして動作したIKEで確立したSAを有効とし、そのSAをIPsec通信に使用することができる。
【００５７】
以上のように、両方の通信装置が同じタイミングでイニシエータとして動作し、１つ目のISAKMPメッセージがすれ違った場合に、相手の通信装置が、すれ違いが起こった場合の対処として自己の通信装置と同じ実装をする機器である場合に、MACアドレス等のような機器に付された固有の値の大小を比較することで、どちらの通信装置がイニシエータであった際のIKEを有効とするかをあかじめ決めておき、双方向のIKE終了後に、２つのSAのどちらか選択して使用するかを決めることができる。
【００５８】
このように、MACアドレス、IPアドレス等のような異なる値を自通信装置と対向する通信装置とで大小比較することにより、対向装置から送信されることを期待するパケットの順番以外のパケットを自装置にて受信した場合、それを受け付けるか否かを、パケットのやり取り中、あるいはパケットのやり取り終了後に判断する手順を実装している。この結果、パケットのすれ違いが発生した場合にも、最終的にパケットのやり取りを成功させることができる。
【００５９】
以上説明した各実施例では、IPパケットを暗号化して通信するIPsec通信で使用する通信路をIKEで確立する方法を説明したが、本発明はこれらに限られるものでない。たとえば暗号通信を行う通信装置で、対向装置とのネゴシエーション等の手順により通信路を生成するすべての装置に本発明を適用することができる。
【図面の簡単な説明】
【００６０】
【図１】本発明が適用された通信システムの構成例を示す図である。
【図２】通信装置の第１の動作例を示す図である。
【図３】通信装置の第２の動作例を示す図である。
【図４】通信装置の第３の動作例を示す図である。
【図５】通信装置の他の動作例を示す図である。
【図６】通信装置の他の動作例を示す図である。
【符号の説明】
【００６１】
10、12  通信装置
20、22  待ちタイマ
【図１】
2009081779.tif 000003
【図２】
2009081779.tif 000004
【図３】
2009081779.tif 000005
【図４】
2009081779.tif 000006
【図５】
2009081779.tif 000007
【図６】
2009081779.tif 000008