(57)【特許請求の範囲】
【請求項１】
コネクションの設定先通信装置が使用するポート番号である宛先ポート番号と、自装置が使用するポート番号である送信元ポート番号との組をコネクション識別子とし、コネクション識別子を、コネクションの設定先通信装置のアドレスと関連付けて管理し、
コネクション設定時にコネクションの設定先通信装置と交渉し、既に設定している他のコネクションのコネクション識別子と重複しないコネクション識別子を、設定するコネクションのコネクション識別子として決定し、
コネクションの設定先通信装置へ送信するパケットには、該コネクションのコネクション識別子に関連付けられているアドレスを宛先アドレスとして使用し、
受信パケットの送信元アドレスが、受信パケットに含まれるコネクション識別子に関連付けられているアドレスと異なる場合には、関連付けられているアドレスを、受信パケットの送信元アドレスに更新すること、
を特徴とする通信装置。
【請求項２】
コネクション設定時に、コネクションの設定先通信装置と共有する秘密鍵を決定して、該コネクションのコネクション識別子に関連付けて保存し、
パケットを送信する場合には、少なくとも送信パケットに含まれるコネクション識別子に対する認証子を、該コネクション識別子に関連付けられた秘密鍵を用いて生成し、生成した認証子を送信パケットに付加し、
パケットを受信した場合には、受信パケットに含まれるコネクション識別子に関連付けられている秘密鍵と、受信パケットに付加された認証子に基づき、受信パケットの改竄を検査すること、
を特徴とする請求項１に記載の通信装置。
【請求項３】
請求項１又は２に記載の通信装置と、ドメインネームサーバとを有するシステムであって、
ドメインネームサーバは、通信装置のアドレスと名前を関連付けて保存し、
通信装置は、コネクション設定時に、コネクションの設定先通信装置とそれぞれの名前を交換し、アドレスを変更した場合には、ドメインネームサーバに新しいアドレスを通知し、コネクションの設定先通信装置から所定の時間以上パケットを受信しない場合には、設定先通信装置の名前に基づき、ドメインネームサーバから設定先通信装置のアドレスを取得すること、
を特徴とするシステム。
【請求項４】
請求項１又は２に記載の通信装置と、ネットワーク毎に配置された転送装置を有するシステムであって、
通信装置は、現在接続しているネットワークに配置された転送装置に、自装置のアドレスを登録し、接続するネットワークを変更した場合には、変更前に接続していたネットワークに配置された転送装置に新しいアドレスを登録し、
転送装置は、通信装置より新しいアドレスの登録があった場合、新しいアドレスの登録を行った通信装置の変更前のアドレスを宛先アドレスとするパケットを捕捉して、捕捉したパケットを、新しいアドレスの登録を行った通信装置に転送すること、
を特徴とするシステム。
【請求項５】
コネクションの設定先通信装置が使用するポート番号である宛先ポート番号と、自装置が使用するポート番号である送信元ポート番号との組をコネクション識別子とし、コネクション識別子を、コネクションの設定先通信装置のアドレスと関連付けて管理している通信装置における通信方法であって、
受信パケットの送信元アドレスと、受信パケットに含まれるコネクション識別子に関連付けられているアドレスと、を比較するステップと、
受信パケットの送信元アドレスが、受信パケットに含まれるコネクション識別子に関連付けられているアドレスと異なる場合には、関連付けられているアドレスを、受信パケットの送信元アドレスに更新するステップと、
を有することを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信中に接続するネットワークを切り替えたことにより、使用するアドレスが変更になった場合においても、通信を継続できる通信装置、システム及び通信方法に関する。
【背景技術】
【０００２】
無線技術の進展にともない、空港や駅等に無線アクセスポイントが設けられ、外出先においても、ラップトップコンピュータや、携帯端末等といった無線インタフェースを有する通信装置から気軽にネットワークへのアクセスが可能となっている。
【０００３】
通常、通信装置が使用する通信用のアドレスは、接続先のネットワークが付与するため、接続先のネットワークの変更に伴い、通信装置には新しいアドレスが付与されることになる。
【０００４】
一方、インターネットで用いられる、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）は、送信元通信装置のアドレス及びポート番号と、宛先通信装置のアドレス及びポート番号との組で、同一コネクションに属するパケットを判定しているため、通信中に使用するアドレスを変更した場合には、以後送受信されるパケットが属するコネクションの判定ができず、通信が断となってしまう。
【０００５】
図１１は、通信途中で使用するアドレスを変更した場合の問題点を説明する図である。図１１によると、通信装置Ｘと通信装置Ｙ間の通信において、通信装置ＸはアドレスＡｘ及びポート番号Ｐｘを使用し、通信装置ＹはアドレスＡｙ及びポート番号Ｐｙを使用している。通信装置Ａｘが、例えば、ネットワークの移動によりそのアドレスをＡｘ’に変更した場合、通信装置Ａｘが送信するパケットは、通信装置Ｙに到達するが、送信元アドレスがＡｘ’であることから、通信装置Ｙは既にコネクションを確立している通信装置Ｘからのパケットであるとは認識できず、また、アドレスＡｘ’を有する通信装置とはコネクションを設定していないため、受信したパケットを廃棄する。一方、通信装置Ｙが送信する宛先アドレスをＡｘとしたパケットは、通信装置Ｘのアドレスではないため、通信装置Ｘには到達しない。
【０００６】
上記問題を解決するために、例えば、通信装置のホームネットワーク上にホームエージェント装置を設け、通信装置がホームネットワーク以外のネットワークである外部ネットワークから接続している場合、外部ネットワークから取得するアドレスである気付アドレスを、ホームエージェント装置に登録しておき、ホームエージェント装置が、通信装置宛てのパケットを捕捉して、気付アドレスでカプセル化して転送する構成が開示されている（例えば、非特許文献１参照。）。
【０００７】
【非特許文献１】Ｃ.Ｐｅｒｋｉｎｓ、“ＩＰ  Ｍｏｂｉｌｉｔｙ  Ｓｕｐｐｏｒｔ  ｆｏｒ  ＩＰｖ４”、ＩＥＴＦ  ＲＦＣ３３４４、２００２年８月
【発明の開示】
【発明が解決しようとする課題】
【０００８】
非特許文献１による構成では、各ネットワークにホームエージェント装置を設置し、総ての通信をホームエージェント装置経由としなければならないという問題がある。また、ホームエージェント装置と通信装置間はカプセル化を使用するため、通信装置での処理負担が重くなるという問題もある。
【０００９】
従って、本発明は、通信装置の移動のために、ネットワークに設けた特別な装置経由で通信することなく、より簡易な処理で、通信途中で使用するアドレスを変更できる通信装置、システム及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明における通信装置によれば、
コネクションの設定先通信装置が使用するポート番号である宛先ポート番号と、自装置が使用するポート番号である送信元ポート番号との組をコネクション識別子とし、コネクション識別子を、コネクションの設定先通信装置のアドレスと関連付けて管理し、コネクション設定時にコネクションの設定先通信装置と交渉し、既に設定している他のコネクションのコネクション識別子と重複しないコネクション識別子を、設定するコネクションのコネクション識別子として決定し、コネクションの設定先通信装置へ送信するパケットには、該コネクションのコネクション識別子に関連付けられているアドレスを宛先アドレスとして使用し、受信パケットの送信元アドレスが、受信パケットに含まれるコネクション識別子に関連付けられているアドレスと異なる場合には、関連付けられているアドレスを、受信パケットの送信元アドレスに更新することを特徴とする。
【００１２】
また、本発明の通信装置における他の実施形態によれば、
コネクション設定時に、コネクションの設定先通信装置と共有する秘密鍵を決定して、該コネクションのコネクション識別子に関連付けて保存し、パケットを送信する場合には、少なくとも送信パケットに含まれるコネクション識別子に対する認証子を、該コネクション識別子に関連付けられた秘密鍵を用いて生成し、生成した認証子を送信パケットに付加し、パケットを受信した場合には、受信パケットに含まれるコネクション識別子に関連付けられている秘密鍵と、受信パケットに付加された認証子に基づき、受信パケットの改竄を検査することも好ましい。
【００１３】
本発明の通信システムによれば、
前記通信装置と、ドメインネームサーバとを有するシステムであって、ドメインネームサーバは、通信装置のアドレスと名前を関連付けて保存し、通信装置は、コネクション設定時に、コネクションの設定先通信装置とそれぞれの名前を交換し、アドレスを変更した場合には、ドメインネームサーバに新しいアドレスを通知し、コネクションの設定先通信装置から所定の時間以上パケットを受信しない場合には、設定先通信装置の名前に基づき、ドメインネームサーバから設定先通信装置のアドレスを取得することを特徴とする。
【００１４】
本発明の通信システムによれば、
前記通信装置と、ネットワーク毎に配置された転送装置を有するシステムであって、通信装置は、現在接続しているネットワークに配置された転送装置に、自装置のアドレスを登録し、接続するネットワークを変更した場合には、変更前に接続していたネットワークに配置された転送装置に新しいアドレスを登録し、転送装置は、通信装置より新しいアドレスの登録があった場合、新しいアドレスの登録を行った通信装置の変更前のアドレスを宛先アドレスとするパケットを捕捉して、捕捉したパケットを、新しいアドレスの登録を行った通信装置に転送することを特徴とする。
【００１５】
本発明の通信方法によれば、
コネクションの設定先通信装置が使用するポート番号である宛先ポート番号と、自装置が使用するポート番号である送信元ポート番号との組をコネクション識別子とし、コネクション識別子を、コネクションの設定先通信装置のアドレスと関連付けて管理している通信装置における通信方法であって、受信パケットの送信元アドレスと、受信パケットに含まれるコネクション識別子に関連付けられているアドレスと、を比較するステップと、受信パケットの送信元アドレスが、受信パケットに含まれるコネクション識別子に関連付けられているアドレスと異なる場合には、関連付けられているアドレスを、受信パケットの送信元アドレスに更新するステップとを有することを特徴とする。
【発明の効果】
【００１６】
コネクションの設定先通信装置が使用するポート番号である宛先ポート番号と、自装置が使用するポート番号である送信元ポート番号との組によりコネクションを特定することで、通信中にアドレスを変更した場合であってもアドレスの変更を認識でき、通信を継続することができる。また、コネクション毎に秘密鍵を設け、少なくとも送信するパケットのコネクション識別子に対しての認証子を計算して送信パケットに付加することで、通信の安全性を高めることができる。
【００１７】
ドメインネームサーバを利用し、或いは、転送装置を設けることで、通信を行なっている両通信装置がほぼ同時に使用するアドレスを変更したとしても、通信を継続することができる。
【発明を実施するための最良の形態】
【００１８】
本発明を実施するための最良の実施形態について、以下では図面を用いて詳細に説明する。
【００１９】
図１は、本発明の通信方法を説明するためのシステム構成図である。図１によると、ネットワーク１０、２０、３０及び４０が、ネットワークを相互に接続するバックボーン１００と接続している。また、ネットワーク１０には本発明による通信装置１が接続し、ネットワーク２０には本発明による通信装置２が接続している。
【００２０】
本発明による通信装置１及び２は、コネクションをポート番号のみで特定できるように、即ち、通信装置１及び２が現在設定している各コネクションについて、自装置が使用するポート番号である送信元ポート番号と、コネクションの設定先である通信装置が使用するポート番号である宛先ポート番号の組が重複しないように、通信開始時に、コネクション設定先の通信装置と使用するポート番号の交渉を行う。尚、以下の説明において、コネクションに使用する送信元ポート番号と宛先ポート番号の組をコネクション識別子と呼ぶ。
【００２１】
図２は、ネットワーク１０に接続している通信装置１と、ネットワーク２０に接続している通信装置２が通信を開始するときの手順を示すシーケンス図である。簡単のため、通信装置１は、例えば、ウェブサーバといったＷｅｌｌ−ｋｎｏｗｎポートで通信の待ち受けを行っている通信装置であり、通信装置２は、無線インタフェースを有し、ネットワークへの接続ポイントとなる図示しない基地局やアクセスポイントとの接続を、通信中においても切り替えることができる通信装置であるものとする。また、初期状態において通信装置１のアドレスをＡ１、通信装置２のアドレスをＡ２とする。
【００２２】
（Ｓ２１）通信装置２は、通信装置１に対して開始メッセージを送信する。開始メッセージの宛先アドレスはＡ１であり、宛先ポート番号は、Ｗｅｌｌ−ｋｎｏｗｎポートであるＰ１であり、送信元アドレスはＡ２であり、送信元ポート番号は、通信装置２が選択するＰ２である。また、開始メッセージには、通信装置２が、使用可能であるポート番号の候補が含まれている。ポート番号の候補は、通信装置１のＷｅｌｌ−ｋｎｏｗｎポートであるＰ１とコネクション識別子を構成したとしても、現在通信装置２が設定している他のコネクションのコネクション識別子と重複しない番号が選択される。尚、通信装置２が開始メッセージの送信で使用する送信元ポート番号、つまり図２の例でのＰ２は、ポート番号の候補に含まれるものを使用する。
【００２３】
（Ｓ２２）通信装置１は、開始メッセージに含まれるポート番号の候補から１つ選択して、選択したポート番号と通信装置１が使用しているポート番号の組を、通信装置２とのコネクション識別子として、通信装置２のアドレスと関連付けして登録する。尚、選択するポート番号は、通信装置１が設定している他のコネクションのコネクション識別子と重複しないポート番号である。また、選択したポート番号を通信装置２に通知するため、応答メッセージを通信装置２に送信する。図２においては、ポート番号としてＰ２１を選択し、宛先ポート番号を選択したＰ２１として応答メッセージを送信している。しかしながら、応答メッセージの宛先ポート番号は、開始メッセージで送信元として使用されていたＰ２として、応答メッセージ内で選択したポート番号であるＰ２１を通知し、以後の通信でポート番号Ｐ２１を使用する構成でもよい。
【００２４】
（Ｓ２３）通信装置２も、コネクションの登録処理を、即ち、自装置が使用するポート番号Ｐ２１と通信装置１が使用するポート番号Ｐ１の組を、通信装置１とのコネクション識別子とし、通信装置１のアドレスに関連付けて登録する。
【００２５】
図３は、開始メッセージを受信した通信装置１が、開始メッセージに含まれるポート番号の候補のいずれを選択しても、現在設定している他のコネクションのコネクション識別子と重複する場合のシーケンス図を示している。
（Ｓ３１）Ｓ２１と同様、通信装置２は開始メッセージを通信装置１に送信する。
（Ｓ３２）通信装置１は、開始メッセージに含まれるポート番号の候補のいずれを選択しても、現在設定している他のコネクションのコネクション識別子と重複するため、応答メッセージにおいて、通信装置１が選択できる、通信装置２のポート番号の候補を指定する。
（Ｓ３３）通信装置２は、通信装置１が指定するポート番号の候補から、通信装置２が現在設定している他のコネクションのコネクション識別子と重複しないポート番号を選択して通信装置１に再度開始メッセージを送信する。尚、ここでは送信元ポート番号を、選択したポート番号Ｐ５１として開始メッセージを送信している。しかしながら、開始メッセージの送信元ポート番号を、最初に使用していたＰ２とし、開始メッセージ内で選択したポート番号であるＰ５１を通知する構成であってもよい。
（Ｓ３４）通信装置１は、再受信した開始メッセージに含まれるポート番号と自装置が使用しているポート番号の組に基づき、コネクション識別子の登録処理を行う。その後の処理は、図２と同じである。
【００２６】
図２及び図３のシーケンスでは、通信装置１は、Ｗｅｌｌ−ｋｎｏｗｎポートであるＰ１を固定的に使用しているが、通信装置１もＷｅｌｌ−ｋｎｏｗｎポート以外のポート番号を選択的に使用することで、コネクション識別子の重複が回避しやすくなる。図４は、通信装置１が、Ｗｅｌｌ−ｋｎｏｗｎポート以外のポート番号を使用する場合のシーケンス図である。
（Ｓ４１）Ｓ２１と同様、通信装置２は開始メッセージを通信装置１に送信する。
（Ｓ４２）通信装置１は、通信装置２からの開始メッセージに含まれる通信装置２が使用するポート番号の候補から１つポート番号を選択すると共に、選択したポート番号と組で使用したときに、通信装置１が現在設定している他のコネクションのコネクション識別子と重複しないポート番号の候補を含む応答メッセージを通信装置２に送信する。
（Ｓ４３）通信装置２は、通信装置１が選択した、通信装置２が使用するポート番号と組で使用したときに、通信装置２が現在設定している他のコネクションのコネクション識別子と重複しないポート番号を、応答メッセージに含まれるポート番号の候補から選択して、選択したポート番号を宛先ポート番号とする開始メッセージを送信する。尚、通信装置２は、宛先ポート番号を前の開始メッセージと同一とし、選択したポート番号を含む開始メッセージを通信装置１に送信して、選択したポート番号を通信装置１に通知し、以後のデータ通信等のメッセージから選択したポート番号を宛先ポート番号として使用する構成であってもよい。
（Ｓ４４）通信装置１は、開始メッセージの受信により、決定したコネクション識別子を登録すると共に、応答メッセージを通信装置２に送信する。通信装置２は、応答メッセージの受信により、コネクションの登録処理を行う。
【００２７】
Ｓ４２において、応答メッセージに含まれるいずれのポート番号を使用したとしても、通信装置２が現在設定している他のコネクションのコネクション識別子と重複する場合は、コネクション識別子が重複しない通信装置１のポート番号の候補を、通信装置２は次の開始メッセージで送信する。
【００２８】
尚、本発明によれば、新たなコネクション設定時に、設定するコネクションのコネクション識別子として、コネクションの設定を行う通信装置が既に設定しているコネクションのコネクション識別子と重複しない値を設定できればよく、その決定方法は上述した方法以外であってもよい。
【００２９】
図５は、本発明による通信装置が、通信中に使用するアドレスを変更した場合のシーケンス図である。図５においては、通信装置２と通信装置１は、それぞれポート番号Ｐ２１とＰ１を使用して通信を行っており、通信装置２のアドレスはＡ２であり、通信装置１のアドレスはＡ１である（Ｓ５１）。
【００３０】
通信装置２の接続先のネットワークがネットワーク３０に変更されたことにより、通信装置２のアドレスがＡ３に変更され、その結果、通信装置１が送信する宛先アドレスがＡ２のパケットは、通信装置２には到達しない（Ｓ５２）。
【００３１】
しかしながら、通信装置２が送信する宛先アドレスがＡ１のパケットは、通信装置１には到達する。本発明による通信装置では、宛先ポート番号と送信元ポート番号の組は、通信装置内において一意であるため、受信パケットの宛先ポート番号であるＰ１と、送信元ポート番号であるＰ２１の組から、通信装置１は、このパケットが通信装置２により送信されたものであることを認識し、また、このパケットの受信により通信装置２のアドレスがＡ２からＡ３に変更されたことも認識する（Ｓ５３）。
【００３２】
従って、通信装置１は、管理しているコネクション識別子に関連付けられている通信装置２のアドレスをＡ２からＡ３へ更新し（Ｓ５４）、以後、通信装置２に送信するパケットの宛先アドレスをＡ３とする（Ｓ５５）。
【００３３】
尚、アドレス変更時に、変更した通信装置は必ずコネクションを設定している通信装置にパケットを送信して、アドレス変更を認識させることが好ましい。
【００３４】
以上説明したように、通信の開始時に、両通信装置が交渉して、ポート番号の組のみでコネクションを識別できるように、即ち、両通信装置が使用するポート番号が、各通信装置においてそれぞれ一意となるように使用するポート番号を決定することで、通信途中にそのアドレスを変更した場合でも通信を継続することができる。尚、上記説明において、通信装置１は、Ｗｅｌｌ−ｋｎｏｗｎポートで待ち受けている通信装置であるものとして説明したが、通信を行う通信装置間で明示的又は暗示的に合意しているポート番号があり、通信の開始を要求するパケットが、要求先である通信装置に受信され、要求に対する処理が行われれば、特殊なアプリケーションが使用する特別なポート番号であっても本発明は当然に適用可能である。
【００３５】
ポート番号の交渉のための開始メッセージ及び応答メッセージの形態は任意であり、例えば、ＴＣＰ又はＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）で送信することも、専用のプロトコルを使用することも可能である。しかしながら、実際の通信でＴＣＰを使用する場合はＴＣＰを、ＵＤＰを使用する場合はＵＤＰといった具合に、実際の通信に使用するプロトコルと同じものを使用することが好ましい。これは、通信経路上にファイアウォールが存在する場合、ポート番号の交渉のための開始メッセージ及び応答メッセージ用のパケットのポート番号と、実際の通信に使用するデータパケットのポート番号を同じとすることで、ファイアウォールを問題なく通過させることができるからである。また、ＴＣＰを使用する場合には、コネクションの確立のために、いわゆる、３ウェイハンドシェークが行われるが、これらパケットに開始メッセージ及び応答メッセージを乗せることができ、メッセージのために送受信するパケット数を削減することができる。
【００３６】
尚、経路上にＮＡＰＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ）ノードが存在する場合、ＮＡＰＴノードが一方の通信装置が送信したパケットの送信元ポート番号を書き換えるため、一方の通信装置において、交渉により決定したポート番号と、受信パケットのポート番号が乖離し、コネクションの識別ができなくなってしまう。
【００３７】
上記問題を解決するためには、例えば、ＴＣＰヘッダやＵＤＰヘッダといった、トランスポート層のヘッダに拡張領域を追加する。図６は、ＮＡＰＴノードが存在する場合の問題を回避するパケットの構造を示す図である。図６によると、トランスポート層ヘッダに拡張領域を設け、拡張領域に、送信元ポート番号及び宛先ポート番号を設定している。通信装置は、トランスポート層ヘッダに含まれ、ＮＡＰＴノードにより書き換えられる送信元ポート番号及び宛先ポート番号の組ではなく、トランスポート層ヘッダの拡張領域に含まれ、ＮＡＰＴノードは変更しない送信元ポート番号及び宛先ポート番号の組によりコネクションの識別を行うことでＮＡＰＴノードの存在による問題を回避できる。
【００３８】
尚、経路上にＮＡＰＴノードが存在しているか否かは、開始メッセージ又は応答メッセージで、例えば、図６に示す、トランスポート層ヘッダの拡張領域のようなＮＡＰＴノードが変更しない領域に、使用するポート番号と同じポート番号を設定しておき、受信側の通信装置が受信パケットのポート番号と、ＮＡＰＴノードが変更しない領域に設定されているポート番号を比較することで確認できる。更に、拡張領域の使用については、例えば、トランスポート層のヘッダ領域に、使用又は未使用を示すフラグを設けて対向通信装置に通知する。
【００３９】
続いて、本発明による通信装置による通信方法での安全性の確保について述べる。本発明による通信装置は、ポート番号の組をコネクション識別子としているため、使用しているコネクション識別子と同じポート番号の組を有するパケットを、第３者から受信した場合、通信相手である通信装置のアドレスが変更されたものとして、以後、第３者と通信を継続してしまうことになる。このような通信の乗っ取りを防ぐため、通信開始時の開始及び応答メッセージで、共有する秘密鍵を決定し、決定した秘密鍵により送受信するパケットにメッセージ認証子を付加し、受信側において、メッセージ認証子を検査して、通信相手により生成されたパケットであることの確認を行うことが望ましい。
【００４０】
共有する秘密鍵の決定には、例えば、Ｄｉｆｆｉｅ‐Ｈｅｌｌｍａｎ鍵交換アルゴリズムの利用が可能であり、通信装置Ａ及び通信装置Ｂ間で秘密鍵を決定する場合の概略を以下に示す。
（１）通信装置Ａは、大きな素数ｐ（位数）及び原始根ｇを決定する。
（２）通信装置Ａは、秘密の整数ａを選びＫａ＝ｇ＾ａ  ｍｏｄ  ｐを計算する。
（３）通信装置Ａは、ｐ、ｇ及びＫａを通信装置Ｂに送信する。
（４）通信装置Ｂは、秘密の整数ｂを選びＫｂ＝ｇ＾ｂ  ｍｏｄ  ｐを計算する。
（５）通信装置Ｂは、Ｋｂを通信装置Ｂに送信する。
（６）通信装置Ｂは、Ｋａ＾ｂ  ｍｏｄ  ｐを計算する。
（７）通信装置Ａは、Ｋｂ＾ａ  ｍｏｄ  ｐを計算する。
Ｋａ＾ｂ  ｍｏｄ  ｐ＝（ｇ＾ａ）＾ｂ  ｍｏｄ  ｐ＝ｇ＾（ａ×ｂ）  ｍｏｄ  ｐ
Ｋｂ＾ａ  ｍｏｄ  ｐ＝（ｇ＾ｂ）＾ａ  ｍｏｄ  ｐ＝ｇ＾（ａ×ｂ）  ｍｏｄ  ｐ
であるため、Ｋａ＾ｂ  ｍｏｄ  ｐ＝Ｋｂ＾ａ  ｍｏｄ  ｐであり、これを秘密鍵Ｓとすることで、Ｓの値そのものを通信装置Ａと通信装置Ｂ間で送受することなく秘密鍵Ｓを決定できる。
【００４１】
パケットに対する署名は、ＨＭＡＣ（ｋｅｙｅｄ  Ｈａｓｈｉｎｇ  ｆｏｒ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）−ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）や、ＨＭＡＣ−ＳＨＡ１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）等を使用する。図７にメッセージ認証子の付加方法を示す。図７（ａ）によると、メッセージ認証子は、トランスポート層ヘッダの拡張領域に付加されている。
【００４２】
認証子の計算範囲としては、少なくともコネクション識別子を含むことが必要である。ここでコネクション識別子は、トランスポート層ヘッダにある送信元と宛先ポート番号の組、又は、ＮＡＰＴノード対策のためにトランスポート層ヘッダの拡張領域を使用する場合には、トランスポート層ヘッダの拡張領域に設定される送信元と宛先ポート番号の組である。図７（ａ）においては、トランスポート層ヘッダ、トランスポート層ヘッダ拡張領域及びトランスポート層ペイロードを認証子の計算範囲としている。尚、メッセージ認証子の計算に当たり、メッセージ認証子を付加する部分は総て０であるものとして計算を行う。また、ＮＡＰＴの存在によりポート番号が書き換えられる場合には、トランスポート層ヘッダのポート番号も総て０であるものとして計算を行う。
【００４３】
図７（ｂ）は、トランスポート層ヘッダのチェックサムフィールドに、メッセージ認証子を格納する方法を示している。認証子の計算範囲は、トランスポート層ヘッダ及びトランスポート層ペイロードとし、メッセージ認証子の計算に当たり、メッセージ認証子を付加する部分は総て０であるものとして計算を行う。この場合には、メッセージ認証子のビット数を大きくとることができないため、図７（ａ）の方法に較べて安全度は低くなる。いずれにしても、受信側において、メッセージ認証子を検査して、受信パケットが改竄されているか否かを確認し、改竄されている場合には廃棄する。尚、図７においてはＴＣＰヘッダを用いて説明を行っているが、トランスポート層ヘッダをＴＣＰに限定するものではない。
【００４４】
続いて、通信を行っている両方の通信装置が移動する場合について説明する。通信装置の両方が移動する場合であっても、一方の通信装置がアドレスを変更した後、変更したアドレスを送信元アドレスとするパケットが、他方の通信装置のアドレス変更前に到達する限りにおいては、上述した方法で問題の発生はない。しかしながら、変更したアドレスを送信元アドレスとするパケットが、他方の通信装置のアドレス変更前に到達しなかった場合、即ち、両通信装置がほぼ同時にアドレスを変更した場合には、両通信装置共にその送信パケットが相手側通信装置に到達しなくなるという問題が生じる。
【００４５】
この問題を解決するための第１の方法としては、Ｄｙｎａｍｉｃ  ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｅｒｖｅｒ）を利用する。図８は、同時移動の問題を解決する第１の方法のシーケンス図である。図５と同様、通信装置２と通信装置１は、それぞれポート番号Ｐ２１とＰ１を使用して通信を行っており、通信装置２のアドレスはＡ２であり、通信装置１のアドレスはＡ１であるものとする。
【００４６】
（Ｓ８１）両通信装置は、開始及び応答メッセージでそれぞれの完全修飾ドメイン名（ＦＱＤＮ：Ｆｕｌｌｙ  Ｑｕａｌｉｆｉｅｄ  Ｄｏｍａｉｎ  Ｎａｍｅ）を相手側に通知しておく。
【００４７】
（Ｓ８２）通信装置２は、ネットワーク３０に接続先を変更したことによりアドレスがＡ３となり、通信装置１は、ネットワーク４０に接続先を変更したことによりアドレスがＡ４となったため、通信装置１及び２は、ＤＮＳに対してＤＮＳアップデートメッセージを送信する。ＤＮＳアップデートメッセージには、通信装置１及び２のＦＱＤＮと変更前及び変更後のアドレスが含まれており、ＤＮＳは、通信装置１及び２のレコードを更新する。
【００４８】
（Ｓ８３）通信装置１及び２がほぼ同時にアドレスを変更したため、通信装置１及び２が送信するパケットは共に相手側には到達しない。通信装置１及び２は、例えば、ある一定期間相手側通信装置からパケットを受信しない場合、或いは、送信したパケットに対する応答が無い場合には、ＤＮＳに対して相手側通信装置のＦＱＤＮを送信し、相手側通信装置のアドレスをＤＮＳより取得する。図８においては、通信装置１が通信装置２の変更後のアドレスをＤＮＳより取得し、これにより通信装置１は、通信装置２のアドレス変更を認識して、管理しているコネクションに関連付けられているアドレスの更新処理を行っている。
【００４９】
以後は、既に説明したのと同じ処理で、通信装置２も通信装置１のアドレス変更を認識して、自装置で管理しているコネクションに関連付けられたアドレスを更新する。尚、両通信装置は、コネクション設定後、一定期間以上送信すべきデータがない場合には、キープアライブ信号を送信する構成とすることで、同時移動の検出を素早く行うことができる。
【００５０】
同時移動の問題を解決するための第２の方法としては、各ネットワークに転送装置を設ける方法もある。図９は、同時移動の問題を解決する第２の方法でのシステム構成図である。
【００５１】
図９によると、図１の構成に加え、ネットワーク１０には転送装置１１が設置され、ネットワーク２０には転送装置２１が設置され、ネットワーク３０には転送装置３１が設置され、ネットワーク４０には転送装置４１が設置されている。図１０は、同時移動の問題を解決する第２の方法のシーケンス図であり、図８と同様、通信装置２と通信装置１は、それぞれポート番号Ｐ２１とＰ１を使用して通信を行っており、通信装置２のアドレスはＡ２であり、通信装置１のアドレスはＡ１であるものとする。
【００５２】
（Ｓ１０１）各通信装置は、接続しているネットワーク内にある転送装置に、登録要求を送信し、転送装置は、登録要求に含まれるアドレスを登録して、登録要求を行った通信装置に装置識別子と登録鍵を含む登録応答を、ＳＳＬ等の安全な通信方法を用いて送信する。
【００５３】
（Ｓ１０２）通信中でのネットワークの変更により、通信装置２はアドレスをＡ３に、通信装置１はアドレスをＡ４に変更したため、それぞれの通信装置は、変更前のネットワークにある転送装置、即ち、Ｓ１０１においてアドレスの登録を行った転送装置に対して、新しいアドレスを通知する移動登録を行う。通信装置の識別は、アドレスの登録を行ったときに転送装置が発行する装置識別子により行い、移動登録に含まれる種々の情報は、登録鍵により暗号化される。
【００５４】
（Ｓ１０３）通信装置が送信したパケットは、相手側通信装置が前に接続していたネットワークに到達するが、移動登録が行われた転送装置は、登録処理を行った通信装置宛てであるこのパケットを捕捉して、移動登録により通知されたアドレスに転送を行う。図１０においては、通信装置１が送信した宛先アドレスがＡ２であるパケットを、転送装置２１が捕捉して、通信装置２の新しいアドレスであるＡ３に宛先アドレスを変更して転送している。通信装置２は、転送装置２１が転送するパケットを受信することで、通信装置１のアドレス変更を認識して、管理しているコネクションに関連付けられたアドレスの更新処理を行う。
【００５５】
以後は、既に説明したのと同じ処理で、通信装置１も通信装置２のアドレス変更を認識して更新処理を行う。
【００５６】
転送装置は、周期的に、転送装置のアドレス、転送のためのポート番号、ネットワークのドメイン名を含む広告メッセージを送信し、各通信装置は、広告メッセージにより、個々の転送装置を認識する。また、通信装置が転送装置を発見するためにネットワーク内にブロードキャストメッセージを送信し、転送装置に応答させる構成とすることも可能である。広告メッセージやブロードキャストメッセージにはＩＣＭＰや、その他のプロトコルを用いることができる。
【００５７】
移動登録において、変更後のアドレス以外にも、設定しているコネクションのポート番号の組と、通信相手である通信装置のアドレスも登録し、登録したポート番号の組及びアドレスに該当するパケットのみを転送させる構成とすることも可能であり、これら情報は、安全のため登録時に配布された登録鍵で暗号化して送信する。
【００５８】
移動登録を受け付けた転送装置は、以後、移動登録を行った通信装置宛てのパケットを捕捉する必要があるため、例えば、ネットワーク内にｇｒａｔｕｉｔｏｕｓ  ＡＲＰ信号を送信し、移動登録を行った通信装置宛てのパケットを、転送装置に送信させる。
【００５９】
転送装置になされた移動登録は、通信中の両ノードがお互いのアドレス変更を認識すればもはや必要がないため、比較的短い所定の時間だけ有効にすればよく、所定の時間を経過した移動登録は転送装置から削除することができる。
【００６０】
尚、通信の安全のため、通信装置はメッセージ認証子を送受信するパケットに付加し、また、転送装置を使用する場合には、転送装置への移動登録を暗号化する形態で説明を行ったが、通信装置間及び／又は通信装置と転送装置間に、ＩＰＳｅｃ等の安全性の高い通信を使用して代用することも可能である。
【図面の簡単な説明】
【００６１】
【図１】本発明の通信方法を説明するためのシステム構成図である。
【図２】通信開始時のポート番号決定手順を示すシーケンス図である。
【図３】通信開始時のポート番号決定手順を示すシーケンス図である。
【図４】通信開始時のポート番号決定手順を示すシーケンス図である。
【図５】本発明による通信装置が、通信中に使用するアドレスを変更した場合のシーケンス図である。
【図６】ＮＡＰＴノードが存在する場合の問題を回避するパケットの構造を示す図である。
【図７】メッセージ認証子の付加方法を示す図である。
【図８】同時移動の問題を解決する第１の方法のシーケンス図である。
【図９】同時移動の問題を解決する第２の方法でのシステム構成図である。
【図１０】同時移動の問題を解決する第２の方法のシーケンス図である。
【図１１】通信途中で使用するアドレスを変更した場合の問題点を説明する図である。
【符号の説明】
【００６２】
１、２  通信装置
１０、２０、３０、４０  ネットワーク
１１、２１、３１、４１  転送装置
１００  バックボーン
【図１】
0004586721.tif 000002
【図２】
0004586721.tif 000003
【図３】
0004586721.tif 000004
【図４】
0004586721.tif 000005
【図５】
0004586721.tif 000006
【図６】
0004586721.tif 000007
【図７】
0004586721.tif 000008
【図８】
0004586721.tif 000009
【図９】
0004586721.tif 000010
【図１０】
0004586721.tif 000011
【図１１】
0004586721.tif 000012