(57)【要約】  データやメッセージの送信側が受信側からの送信要求内の宛先アドレスを確認して、不正な第３者からの送信要求による攻撃を防止する技術が開示され、その技術によれば（１）ＭＮ１はＨｏＴＩメッセージをＨＡ３経由でＣＮ２に送信し、（２）ＣＮ２はＨｏＴＩメッセージに応答してＨｏＴメッセージをＨＡ３経由でＭＮ１に送信し、（３）ＭＮ１はＨｏＴメッセージ内のHome TokenからＣｏＡを生成して、ＣｏＡを含むＣｏＴＩβメッセージをＣＮ２に送信し、（４）ＣＮ２はＣｏＴＩβメッセージ内のＣｏＡを、ＭＮ１に送信したＨｏＴメッセージ内のHome Tokenから生成したＣｏＡと比較して確認する。
2009011120.tif 000002
【特許請求の範囲】
【請求項１】
第２の通信装置が、第１の通信装置に対して前記第１の通信装置が新しいアドレスを生成するためのアドレス生成情報を送信するステップと、
前記第１の通信装置が前記第２の通信装置から受信した前記アドレス生成情報に基づいて前記第１の通信装置の前記アドレスを生成して前記第２の通信装置に送信するステップと、
前記第２の通信装置が前記第１の通信装置から受信した前記第１の通信装置の前記アドレスを、前記第１の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較するステップとを、
備えたアドレス生成方法。
【請求項２】
前記第１及び第２の通信装置はそれぞれ、移動通信装置とその相手先通信装置であり、
前記第１の通信装置の前記アドレスは、前記移動通信装置の移動先アドレスであって、前記移動通信装置の前記移動先アドレスと前記相手先通信装置の間で経路最適化を行うステップを更に有することを特徴とする請求項１に記載のアドレス生成方法。
【請求項３】
前記アドレス生成情報は、前記経路最適化ステップにおける前記相手先通信装置から前記移動通信装置に送信するホームアドレステスト応答メッセージ内に含まれるホームトークンであることを特徴とする請求項２に記載のアドレス生成方法。
【請求項４】
第２の通信装置が、第１の通信装置に対して前記第１の通信装置が新しいアドレスを生成するためのアドレス生成情報を送信する手段と、
前記第１の通信装置が前記第２の通信装置から受信した前記アドレス生成情報に基づいて前記第１の通信装置の前記アドレスを生成して前記第２の通信装置に送信する手段と、
前記第２の通信装置が前記第１の通信装置から受信した前記第１の通信装置の前記アドレスを、前記第１の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較する手段とを、
備えたアドレス生成システム。
【請求項５】
新しいアドレスを生成するためのアドレス生成情報を相手先通信装置から受信する手段と、
前記アドレス生成情報に基づいて前記アドレスを生成し、前記相手先通信装置に対して前記相手先通信装置が前記アドレス生成情報に基づいて生成したアドレスと比較するための情報を送信する手段とを備えた通信装置。
【請求項６】
一方の通信装置に対して、前記一方の通信装置の新しいアドレスを生成するためのアドレス生成情報を送信する手段と、
前記一方の通信装置が前記アドレス生成情報に基づいて前記一方の通信装置のアドレスを生成して送信した場合、前記アドレスを受信して、前記一方の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較する手段とを、
備えた相手先通信装置。
【請求項７】
第２の通信装置が、第１の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを前記第１の通信装置の第１のアドレスに送信するアドレス生成情報送信ステップと、
前記第１の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答メッセージ送信先として指示する応答先指定要求メッセージを前記第１のアドレスから前記第２の通信装置に送信する応答先指定要求メッセージ送信ステップと、
前記第２の通信装置が前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記第１の通信装置の前記第２のアドレスに送信する応答先指定応答メッセージ送信ステップとを、
有することを特徴とする通信方法。
【請求項８】
前記アドレス生成情報が前記第２の通信装置のみが保持している秘密情報と前記第２の通信装置が一定時間間隔で生成する乱数から生成されることを特徴とする請求項７に記載する通信方法。
【請求項９】
前記アドレス生成情報が、モバイルＩＰで経路最適化を行う際のバインディング処理に使用されるホームトークンであることを特徴とする請求項８に記載する通信方法。
【請求項１０】
前記第２のアドレスが前記第１の通信装置の受信専用の片方向経路のアドレスであることを特徴とする請求項７に記載する通信方法。
【請求項１１】
第２の通信装置が、第１の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを第１の通信装置の第１のアドレスに送信するアドレス生成情報送信手段と、
前記第１の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答メッセージ送信先として指示する応答先指定要求メッセージを前記第１のアドレスから前記第２の通信装置に送信する応答先指定要求メッセージ送信手段と、
前記第２の通信装置が前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記第１の通信装置の前記第２のアドレスに送信する応答先指定応答メッセージ送信手段とを、
有することを特徴とする通信システム。
【請求項１２】
第２のアドレスを生成するために相手先通信装置によって作成されたアドレス生成情報を含む第１のアドレス宛に送信されたアドレス生成情報メッセージを受信する手段と、
受信した前記アドレス生成情報メッセージの前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答先として指定する応答先指定要求メッセージを前記第１のアドレスから前記相手先通信装置に送信する手段と、
前記相手先通信装置が前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、前記相手先通信装置から前記第２のアドレスに送信された応答先指定応答メッセージを受信する手段とを備えた通信装置。
【請求項１３】
一方の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを前記一方の通信装置の第１のアドレスに送信する手段と、
前記アドレス生成情報メッセージを受信した前記一方の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成し、前記第２のアドレスを応答先として指定する前記一方の通信装置から送信された応答先指定要求メッセージを受信する手段と、
前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記通信装置の前記第２のアドレスに送信する手段とを備えた相手先通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正な第３者からの送信要求による攻撃を防止するアドレス生成方法、アドレス生成システム、通信装置に関する。
本発明は特に、アドレステスト要求側通信装置が複数のアドレスを持ち、要求メッセージ内に応答メッセージの送信先を含めることができ、要求メッセージを送信する送信元アドレスと、その要求メッセージに対する応答メッセージの受信アドレスとが異なる場合に、不正な第３者からの送信要求による攻撃を防止する通信方法、通信システム、通信装置及び相手先通信装置に関する。
【背景技術】
【０００２】
従来、ＩＰネットワークを利用したプロトコルでは、メッセージやデータなどを要求する要求側通信装置から応答側通信装置に要求メッセージを送信し、応答側通信装置から要求側通信装置に応答メッセージを送信する場合、要求メッセージの送信元アドレスと応答メッセージの送信先アドレスとは同じアドレスであることが普通であった。しかしながら、一つの通信装置が複数の通信用インタフェースをもち、それぞれの通信インタフェースに別のアドレスを割り当てられることや、一つの通信用インタフェースであっても複数のアドレスを割り当てられるといった使用方法が用いられるようになっている。このような状況では、要求メッセージの送信元アドレスと、それに対する応答メッセージの送信先アドレスが異なるという通信方法も利用される機会が多くなると考えられる。【０００３】
また、通信網と放送網の相互利用が進んだ場合、双方向通信の可能な通信網経路と、片方向通信のみ可能な放送網経路が混在する環境が考えられる。この場合、片方向通信のみ可能な経路を効果的に活用しようとしたとき、その片方向経路ではどちらか一方向にしかメッセージを流せないため、要求メッセージと応答メッセージの両方が同じ経路を流れることができず、要求メッセージと応答メッセージのどちらか一方だけが、この片方向経路を流れるという状況が発生し得る。つまり、要求メッセージの送信元アドレスと応答メッセージの送信先アドレスが異なる状況が発生し得る。【０００４】
要求メッセージの送信元アドレスと応答メッセージの送信先アドレスが異なる場合に問題となることは、サービス妨害攻撃（Denial of Service Attack）に利用される可能性があることである。特に、要求メッセージ内に応答メッセージの送信先アドレスを含めるという方法をとった場合、攻撃者は、ターゲットのアドレスを要求メッセージの送信元アドレスにセットして、応答側通信装置に要求メッセージを送信すれば、応答側通信装置からターゲットに対して、ターゲットにとっては不要なメッセージを送りつけることが容易に可能となる。【０００５】
本発明は、この課題を解決するための技術である。本明細書では、特にモバイルＩＰの経路最適化（下記の非特許文献１）を片方向経路で使用できるように拡張した場合を例にして、従来技術と従来技術では解決できなかった課題とを詳細に説明する。
＜モバイルＩＰのバインディング更新処理とバインディング更新前処理＞
従来、通信装置が移動しても移動前と同じＩＰアドレスを使い続けることができる技術としてモバイルＩＰが存在する。モバイルＩＰでは、ホームエージェント（home agent：以下、ＨＡとも言う）が移動通信装置（mobile node：以下、ＭＮとも言う）のホームアドレス（home address：以下、ＨｏＡとも言う）宛のパケットを受信し、移動通信装置の気付アドレス（care-of address：以下、ＣｏＡとも言う。また本明細書内では移動先アドレスとも呼ぶ）に転送する。このため、移動通信装置は移動に伴うアドレス変更によらず、ホームアドレスを用いた通信を継続できる。【０００６】
また、パケットがホームエージェントを経由することによって移動通信装置と相手先通信装置（correspondent node：以下、ＣＮとも言う）の通信経路が遠回りになることを改善するために、移動通信装置と相手先通信装置の通信経路を直接結ぶ経路最適化（Route Optimization）技術が存在する。この経路最適化技術は、相手先通信装置に移動通信装置のホームアドレスと気付アドレスの対応関係を記憶させることによって、気付アドレスを用いて通信することを特徴とする。この相手先通信装置に移動通信装置のホームアドレスと気付アドレスの対応関係を記憶させる処理は、バインディング更新処理（Binding Update：以下、ＢＵとも言う）と呼ばれている。【０００７】
相手先通信装置に対するバインディング更新処理では、ホームエージェントに対するバインディング更新処理とは異なり、バインディング更新前処理（Return Routability Procedure）を必要としている。ホームエージェントと移動通信装置との間では、信頼関係をあらかじめ築いておくことができるため、このバインディング更新前処理を必要としない。この理由は、ホームエージェントに対するバインディング更新処理においては、移動通信装置が、ホームアドレスに対する新しい気付アドレスをホームエージェントに通知したとき、ホームエージェントは事前に確立しておいた信頼関係（IPsec ＳＡ（Security Association）など）によって移動通信装置からのバインディング更新要求であることを確認することができるからである。【０００８】
一方、相手先通信装置の場合、バインディング更新処理を行う前に、すべての接続可能性のある通信装置に対して信頼関係を確立しておくことは困難である。もし、信頼関係がない状態で相手先通信装置がバインディング更新の要求に従ってしまうならば、移動通信装置に成りすました攻撃が容易になる。これを防ぐ技術がバインディング更新前処理（Return Routability Procedure）である。バインディング更新前処理では、ホームアドレステスト処理（Home Test；以下、HoTともいう）と気付アドレステスト処理（Care-of Test；以下、CoTともいう）を行う。ホームアドレステストによってホームアドレスで送受信可能なこと、気付アドレステストを利用して気付アドレスで送受信可能なことを確認することによって、不正なバインディング更新処理を防いでいる。上記に従来技術として説明した、モバイルＩＰ、経路最適化（Route Optimization）、バインディング更新前処理（Return Routability Procedure）については、ＲＦＣ３７７５（下記の非特許文献１）に記載されている。また、バインディング更新前処理の設計思想については、ＲＦＣ４２２５（下記の非特許文献２）に記載されている。
【非特許文献１】RFC3775 "Mobility Support in IPv6"
【非特許文献２】RFC4225 "Mobile IP Version 6 Route Optimization Security Design Background"
【０００９】
＜モバイルＩＰの経路最適化の片方向経路対応＞
しかしながら、モバイルＩＰの経路最適化技術（Route Optimization）は、非対称ネットワークでは使えなかった。経路最適化（Route Optimization）を行うためには、双方向の経路到達性（Reachability）が必要であったため、衛星通信やデジタルテレビ放送などのような非対称な片方向だけデータが流れる経路では、バインディング更新処理が行えなかった。【００１０】
例えば移動通信装置から相手先通信装置の方向にだけ通信可能な場合、ＢＵ（Binding Update）メッセージは相手先通信装置に届くが、ＢＡ（Binding Acknowledgement）メッセージは移動通信装置に届かない。そのため、移動通信装置は相手先通信装置に対してバインディング更新処理を行うことができない。また、気付アドレステスト処理を開始するためのＣｏＴＩ（Care-of Test Init）メッセージは相手先通信装置に届くが、ＣｏＴ（Care-of Test）メッセージは移動通信装置に届かないため、バインディング更新前処理を行うことができないといった問題があった。逆に、相手先通信装置から移動通信装置の方向にだけ通信可能な場合、ＢＵメッセージが相手先通信装置に届かないため、バインディング更新処理を行うことができない。また、ＣｏＴＩメッセージが相手先通信装置に届かないため、バインディング更新前処理を行うことができないといった問題があった。このように片方向だけ通信可能な経路の場合には、バインディング更新前処理、バインディング更新処理を行うことができなかった。そのために通信可能な片方向経路を利用して経路最適化（Route Optimization）を行うことができなかった。【００１１】
ここで、移動通信装置から相手先通信装置の方向にのみ片方向通信可能な場合と、相手先通信装置から移動通信装置の方向にのみ片方向通信可能な場合について、それぞれ下記の解法（１）、（２）が考えられる。【００１２】
（１）移動通信装置から相手先通信装置の方向にのみ片方向通信可能な場合では、ホームアドレステスト処理の結果から生成される鍵を用いて、気付アドレステスト処理の要求メッセージＣｏＴＩ（以下ＣｏＴＩαと呼ぶ）に認証コードを付加する。この要求メッセージＣｏＴＩαを受信した相手先通信装置は、認証コードを確認することによって、この要求メッセージＣｏＴＩαの送信者がホームアドレステスト処理を行ったことを確認する。ホームアドレステスト処理は、ホームアドレス（ＨｏＡ）で送受信を行ったことを確認するためのテストである。相手先通信装置は、ホームアドレス宛に送信したメッセージを移動通信装置が正しく受信したことを、この認証コードによって確認できる。相手先通信装置は、気付アドレステスト処理の要求メッセージＣｏＴＩαを受信し、応答メッセージＣｏＴ（以下ＣｏＴαと呼ぶ）を返信する。要求メッセージＣｏＴＩαの送信元アドレスは、気付アドレスＣｏＡであり、応答メッセージの送信先アドレスはホームアドレスＨｏＡである。相手先通信装置は、要求メッセージの送信元アドレスＣｏＡと応答メッセージの送信先アドレスＨｏＡが異なるが、ホームアドレスＨｏＡでの送受信を確認するホームアドレステスト処理の結果を示す認証コードが要求メッセージに付加されていることから、応答メッセージＣｏＴαをホームアドレスＨｏＡに送信しても安全であると判断することができる。【００１３】
（２）次に、逆向きとなる相手先通信装置から移動通信装置の方向に片方向通信可能な場合には、上記の場合と同様、ホームアドレステスト処理の結果から生成される鍵を用いて、気付アドレステスト処理の要求メッセージＣｏＴＩ（以下ＣｏＴＩβと呼ぶ）に認証コードを付加し、さらに応答メッセージＣｏＴ（以下ＣｏＴβと呼ぶ）に要求メッセージの送信元アドレスを付加する。要求メッセージＣｏＴＩβの送信元アドレスはホームアドレスＨｏＡであり、応答メッセージＣｏＴβの送信先アドレスは気付アドレスＣｏＡである。要求メッセージＣｏＴＩβを受信した相手先通信装置は、要求メッセージの送信元アドレスがホームアドレスＨｏＡであることを確認し、さらに要求メッセージＣｏＴＩβに含まれる認証コードから、確かにホームアドレスＨｏＡで送受信を行っている端末から送信された要求メッセージＣｏＴＩであることを確認する。この確認したホームアドレスＨｏＡを応答メッセージＣｏＴβに付加し、気付アドレスＣｏＡに送信する。もし、他端末を攻撃しようと第三の端末（ターゲット）のアドレスを気付アドレスＣｏＡとして指定して、気付アドレステスト処理の応答メッセージＣｏＴβを第三の端末（ターゲット）に送信させたとしても、第三の端末（ターゲット）は即座に攻撃者のアドレスがＨｏＡであることを知ることができる。攻撃者のアドレスＨｏＡは、ホームアドレステスト処理により攻撃者が送受信したことが確認できているため、攻撃者を特定することが容易にでき、このためリフレクション攻撃に利用することを抑止する効果があると考えられる。【００１４】
上記の解法（１）、（２）は、不正なバインディング・キャッシュの設定を防ぎ、片方向経路においても経路最適化を可能にする。しかしながら、解法（２）では、応答メッセージＣｏＴβが攻撃に利用される可能性がある。２つの片方向経路のうち問題がないのは、片方向経路の向きが移動通信装置から相手先通信装置の向きの場合である。この場合には、応答側通信装置である相手先通信装置は、応答先アドレスを認証し確認してから応答メッセージを送信している。応答先アドレスはホームアドレステスト処理によって要求者に届くことが確認されている。【００１５】
一方、片方向経路の向きが逆の相手先通信装置から移動通信装置の向きの場合には、応答先アドレスの確認が行えていない。解法（２）では、応答メッセージＣｏＴβの中に要求メッセージＣｏＴＩβのアドレスを含むことによって、リフレクション攻撃に利用することを抑止しようと試みている。つまり、応答メッセージＣｏＴβを送信する前に防止することができていない。【００１６】
＜モバイルＩＰの経路最適化の片方向経路対応以外の場合の課題＞
上記ではモバイルＩＰの経路最適化の片方向経路対応の場合について説明したが、上述した課題はそれ以外の場合にも発生しうる。つまり、第１の通信装置が第２の通信装置に要求メッセージを送信し、その要求メッセージの中で応答メッセージの送信先を指示している場合である。第２の通信装置が指示された要求メッセージ内の応答メッセージ送信先に応答メッセージを送信したとき、その指示された応答メッセージの送信先に攻撃対象のターゲットが存在し、第２の通信装置は攻撃者（第１の通信装置）の指示に従ってターゲットに不要なメッセージを送信してしまう。ターゲットにされた端末は帯域を無駄に消費され、サービス妨害の被害を受ける。第２の通信装置はターゲットを攻撃するつもりはなかったにもかかわらず、攻撃者に利用されターゲットへの攻撃を助けてしまうという状況が発生しうる。
【発明の開示】
【００１７】
本発明は上記従来技術の問題点に鑑み、データやメッセージの送信側が受信側からの送信要求内の宛先アドレスを確認して、不正な第３者からの送信要求による攻撃を防止することができるアドレス生成方法、アドレス生成システム、通信装置を提供することを目的とする。
本発明はまた、上記従来技術の問題点に鑑みてなされたものであり、不正な第３者からの送信要求に対して従来技術と同等程度に安全性を保ちながら、経路最適化を可能とするバインディング更新前処理を行うことができる通信方法、通信システム、通信装置及び相手先通信装置を提供することを目的とする。
本発明はまた、アドレステスト要求側通信装置が複数のアドレスを持ち、要求メッセージ内に応答メッセージの送信先を含めることができ、要求メッセージを送信する送信元アドレスと、その要求メッセージに対する応答メッセージの受信アドレスとが異なる場合に、不正な第３者からの送信要求による攻撃を防止することができる通信方法、通信システム、通信装置及び相手先通信装置を提供することを目的とする。
【００１８】
本発明のアドレス生成方法は上記目的を達成するために、第２の通信装置が、第１の通信装置に対して前記第１の通信装置が新しいアドレスを生成するためのアドレス生成情報を送信するステップと、
前記第１の通信装置が前記第２の通信装置から受信した前記アドレス生成情報に基づいて前記第１の通信装置の前記アドレスを生成して前記第２の通信装置に送信するステップと、
前記第２の通信装置が前記第１の通信装置から受信した前記第１の通信装置の前記アドレスを、前記第１の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較するステップとを、
備えた。
この構成により、データやメッセージの送信側が受信側からの送信要求内の宛先アドレスを確認して、不正な第３者からの送信要求による攻撃を防止することができる。
【００１９】
また、前記第１及び第２の通信装置はそれぞれ、移動通信装置とその相手先通信装置であり、
前記第１の通信装置の前記アドレスは、前記移動通信装置の移動先アドレスであって、前記移動通信装置の前記移動先アドレスと前記相手先通信装置の間で経路最適化を行うステップを更に有することを特徴とする。
この構成により、不正な第３者からの送信要求に対して従来技術と同等程度に安全性を保ちながら、経路最適化を可能とするバインディング更新前処理を行うことができる。また、アドレステスト要求側通信装置が複数のアドレスを持ち、要求メッセージを送信する送信元アドレスと、その要求メッセージに対する応答メッセージの受信アドレスとが異なり、要求メッセージ内に応答メッセージの送信先を含む場合に、不正な第３者からの送信要求による攻撃を防止することができる。
【００２０】
また、前記アドレス生成情報は、前記経路最適化ステップにおける前記相手先通信装置から前記移動通信装置に送信するホームアドレステスト応答メッセージ内に含まれるホームトークンであることを特徴とする。
この構成により、経路最適化を可能とするバインディング更新前処理を行う場合、特別なアドレス生成情報を付加することなく、移動通信装置の気付アドレスを生成することができる。
【００２１】
また、本発明のアドレス生成システムは上記目的を達成するために、第２の通信装置が、第１の通信装置に対して前記第１の通信装置が新しいアドレスを生成するためのアドレス生成情報を送信する手段と、
前記第１の通信装置が前記第２の通信装置から受信した前記アドレス生成情報に基づいて前記第１の通信装置の前記アドレスを生成して前記第２の通信装置に送信する手段と、
前記第２の通信装置が前記第１の通信装置から受信した前記第１の通信装置の前記アドレスを、前記第１の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較する手段とを、
備えた構成とした。
【００２２】
また、本発明の通信装置は上記目的を達成するために、新しいアドレスを生成するためのアドレス生成情報を相手先通信装置から受信する手段と、
前記アドレス生成情報に基づいて前記アドレスを生成し、前記相手先通信装置に対して前記相手先通信装置が前記アドレス生成情報に基づいて生成したアドレスと比較するための情報を送信する手段とを備えた構成とした。
【００２３】
また、本発明の相手先通信装置は上記目的を達成するために、一方の通信装置に対して、前記一方の通信装置の新しいアドレスを生成するためのアドレス生成情報を送信する手段と、
前記一方の通信装置が前記アドレス生成情報に基づいて前記一方の通信装置のアドレスを生成して送信した場合、前記アドレスを受信して、前記一方の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較する手段とを、
備えた構成とした。
【００２４】
本発明の通信方法は上記目的を達成するために、第２の通信装置が、第１の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを前記第１の通信装置の第１のアドレスに送信するアドレス生成情報送信ステップと、
前記第１の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答メッセージ送信先として指示する応答先指定要求メッセージを前記第１のアドレスから前記第２の通信装置に送信する応答先指定要求メッセージ送信ステップと、
前記第２の通信装置が前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記第１の通信装置の前記第２のアドレスに送信する応答先指定応答メッセージ送信ステップとを、
有することを特徴とする。
【００２５】
また、前記アドレス生成情報が前記第２の通信装置のみが保持している秘密情報と前記第２の通信装置が一定時間間隔で生成する乱数から生成されることを特徴とする。このため、第１の通信装置が第２のアドレスがどのようなアドレスになるか予測できない。これによってＤｏＳ攻撃を行うことがさらに不可能になる。
また、前記アドレス生成情報が、モバイルＩＰで経路最適化を行う際のバインディング処理に使用されるホームトークンであることを特徴とする。
また、前記第２のアドレスが前記第１の通信装置の受信専用の片方向経路のアドレスであることを特徴とする。
【００２６】
本発明の通信システムは上記目的を達成するために、第２の通信装置が、第１の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを第１の通信装置の第１のアドレスに送信するアドレス生成情報送信手段と、
前記第１の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答メッセージ送信先として指示する応答先指定要求メッセージを前記第１のアドレスから前記第２の通信装置に送信する応答先指定要求メッセージ送信手段と、
前記第２の通信装置が前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記第１の通信装置の前記第２のアドレスに送信する応答先指定応答メッセージ送信手段とを、
有することを特徴とする。
【００２７】
また、本発明の通信装置は上記目的を達成するために、第２のアドレスを生成するために相手先通信装置によって作成されたアドレス生成情報を含む第１のアドレス宛に送信されたアドレス生成情報メッセージを受信する手段と、
受信した前記アドレス生成情報メッセージの前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答先として指定する応答先指定要求メッセージを前記第１のアドレスから前記相手先通信装置に送信する手段と、
前記相手先通信装置が前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、前記相手先通信装置から前記第２のアドレスに送信された応答先指定応答メッセージを受信する手段とを備えた構成とした。
【００２８】
また、本発明の相手先通信装置は上記目的を達成するために、一方の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを前記一方の通信装置の第１のアドレスに送信する手段と、
前記アドレス生成情報メッセージを受信した前記一方の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成し、前記第２のアドレスを応答先として指定する前記一方の通信装置から送信された応答先指定要求メッセージを受信する手段と、
前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記通信装置の前記第２のアドレスに送信する手段とを備えた構成とした。
【００２９】
本発明によれば、データやメッセージの送信側が受信側からの送信要求内の宛先アドレスを確認して、不正な第３者からの送信要求による攻撃を防止することができる。
また、不正な第３者からの送信要求に対して従来技術と同等程度に安全性を保ちながら、経路最適化を可能とするバインディング更新前処理を行うことができる。
また、アドレステスト要求側通信装置が複数のアドレスを持ち、要求メッセージを送信する送信元アドレスと、その要求メッセージに対する応答メッセージの受信アドレスとが異なり、要求メッセージ内に応答メッセージの送信先を含む場合に、不正な第３者からの送信要求による攻撃を防止することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の第１の実施の形態において相手先通信装置から移動通信装置への方向への片方向直接経路で通信を行う場合を示す説明図
【図２】本発明の第１の実施の形態において相手先通信装置から移動通信装置への方向への片方向の直接経路と迂回経路で通信を行う場合を示す説明図
【図３】不正なバインディング・キャッシュが攻撃に利用される例を示す説明図
【図４】モバイルＩＰのバインディング更新方法を示す説明図
【図５Ａ】本発明の第１の実施の形態におけるバインディング更新方法を示す説明図であって、ＨｏＴＩ及びＨｏＴメッセージの経路を示す説明図
【図５Ｂ】本発明の第１の実施の形態におけるバインディング更新方法を示す説明図であって、ＣｏＴＩβ及びＣｏＴβメッセージの経路を示す説明図
【図５Ｃ】本発明の第１の実施の形態におけるバインディング更新方法を示す説明図であって、ＢＵβ及びＢＡβメッセージの経路を示す説明図
【図６】気付アドレステスト処理がサービス攻撃に利用される例を示す説明図
【図７】本発明の一実施の形態におけるメッセージシーケンスを示す説明図
【図８】従来技術のモバイルＩＰのメッセージシーケンスを示す説明図
【図９】モバイルＩＰのメッセージフォーマットを示す説明図
【図１０】本発明の第１の実施の形態におけるメッセージシーケンスを示す説明図
【図１１】本発明の第１の実施の形態においてHome nonce idを格納するメッセージフォーマットを示す説明図
【図１２】本発明の第１の実施の形態においてprefix lengthを格納するメッセージフォーマットを示す説明図
【図１３】本発明の第１の実施の形態においてCare-of addressを格納するメッセージフォーマットを示す説明図
【図１４】本発明の第１の実施の形態において相手先通信装置の構成を示すブロック図
【図１５】本発明の第１の実施の形態において移動通信装置の構成を示すブロック図
【図１６】本発明の他の実施の形態におけるメッセージシーケンスを示す説明図
【図１７Ａ】本発明の第２の実施の形態を示す説明図であって、ＨｏＴＩ及びＨｏＴメッセージの経路を示す説明図
【図１７Ｂ】本発明の第２の実施の形態を示す説明図であって、ＢＵβ及びＢＡβメッセージの経路を示す説明図
【図１８】本発明の第２の実施の形態におけるメッセージシーケンスを示す説明図
【発明を実施するための最良の形態】
【００３１】
以下、図面を参照して本発明の実施の形態について説明する。
＜第１の実施の形態＞
本技術は、移動通信装置（ＭＮ）が移動先でもホームエージェント（ＨＡ）に対しては双方向の通信が可能であり、かつ通信相手（ＣＮ）に対してはＣＮからＭＮの方向の片方向のみの通信が可能である場合に、ＣＮからＭＮの向きの片方向経路を有効に利用可能にする。図１に示すように、ホームエージェント３と相手先通信装置２の間と移動通信装置１とホームエージェント３の間の経路５、４は、双方向に通信可能な経路であるが、相手先通信装置１と移動通信装置２の間の経路は片方向だけ通信可能な経路６である。その方向は、相手先通信装置２から移動通信装置１の向きだけデータが流れることができる。移動通信装置１から相手先通信装置２にメッセージを送信する場合には、移動通信装置１はホームエージェント３を介してメッセージを送信する必要がある。【００３２】
従来技術のモバイルＩＰ（Mobile IPv6）では、ＭＮ１とＣＮ２の間の経路が双方向に通信可能でなければ経路最適化を行うことができなかった。つまり、必ず遠回りとなるＨＡ３経由でなければデータの通信ができなかった。本技術は、このようなＣＮ３とＭＮ１の間の経路が片方向の経路６の場合であっても、ＣＮ３からＭＮ１にパケットを送信する場合に、ＣＮ３はＨｏＡ宛ではなくＣｏＡ宛にデータを送信するようにバインディング・キャッシュの設定を可能にする。【００３３】
なお、以下ではＭＮ１が移動ノードでＨＡ３が存在する場合について説明するが、例えば図２に示すようにアドレス生成情報要求側の通信装置１ａがマルチインタフェースを持つ通信装置で、双方向な通信経路４ａ（携帯電話網、ＷＬＡＮ、ＬＡＮなど）に接続可能なインタフェースと、片方向な通信経路６ａ（放送網など）からデータを受信するインタフェースを持つ場合にも同様の技術を用いることが可能である。図２では、要求側の通信装置１ａは、双方向に通信可能なアドレスAddr1（モバイルＩＰの場合のＨｏＡに相当）と、受信のみ可能なアドレスAddr2（モバイルＩＰの場合のＣｏＡに相当の両方を持っている。【００３４】
モバイルＩＰの経路最適化を行うと、ＭＮ１はＣＮ２から片方向経路６でデータを受信できる。モバイルＩＰの経路最適化では、ＭＮ１はＣＮ２にバインディング・キャッシュを設定する。このバインディング・キャッシュには、ＨｏＡとＣｏＡがともにＭＮのアドレスであることと、ＣＮ２にＨｏＡではなくＣｏＡにデータを送信するように記載されている。モバイルＩＰの経路最適化では、このバインディング・キャッシュを攻撃者に不正に設定されないように工夫を施している。しかし、その工夫はＭＮ１とＣＮ２の間が双方向通信可能な経路の場合にしか使うことができない方法である。モバイルＩＰが採用している「不正にバインディング・キャッシュを設定されないための方法」は図４で後述する。【００３５】
まず、バインディング・キャッシュが不正に設定された場合にどうなるか、図３を用いて説明する。図３のアドレス生成情報応答側の通信装置２ａを、映像データサーバのような大量のデータを送信するサーバと想定してみる。攻撃者７がネットワーク５ａを介して通信装置２ａに対して、自身のアドレス（ＨｏＡ）宛のパケットをターゲット１ｂのアドレス（ＣｏＡ）に送信するように、不正にバインディング・キャッシュを設定したとする。攻撃者７が通信装置２ａにデータの送信を要求すれば、通信装置２ａはバインディング・キャッシュの設定に従って、ターゲット１ｂ（ＣｏＡあて）に大量のデータを送りつける。このように攻撃者７は、応答側通信装置２ａを用いてターゲット７にサービス妨害攻撃（ＤｏＳ攻撃）を容易に行うことが可能となる。【００３６】
バインディング・キャッシュの不正な設定を防ぐ方法として、モバイルＩＰで採用している方法を図４に示す。モバイルＩＰ（ＭＩＰｖ６）ではＨｏＡとＣｏＡが正しくＭＮ１のアドレスであることをそれぞれ確認するホームアドレステスト処理と気付アドレステスト処理を行う。ホームアドレステスト処理では、
（１）移動通信装置（ＭＮ）１がＨｏＡを送信元アドレスとしてＨｏＴＩメッセージを相手先通信装置（ＣＮ）２に送信し、
（２）相手先通信装置２からＨｏＡ宛にＨｏＴメッセージを送信する。
ホームアドレステスト処理を行うことによって移動通信装置１がＨｏＡを送信元としてメッセージを送信し、ＨｏＡで応答メッセージを受信したことが分かる。【００３７】
気付アドレステスト処理では、
（３）移動通信装置（ＭＮ）１がＣｏＡを送信元アドレスとしてＣｏＴＩメッセージを直接経路で相手先通信装置（ＣＮ）２に送信し、
（４）相手先通信装置２からＣｏＡ宛にＣｏＴメッセージを直接経路で送信する。
気付アドレステスト処理を行うことによって移動通信装置がＣｏＡを送信元としてメッセージを送信し、ＣｏＡで応答メッセージを受信したことが分かる。
（５）移動通信装置１は、ホームアドレステスト処理と気付アドレステスト処理の結果をＢＵメッセージに含めて相手先通信装置２に直接経路で送信する。ＢＵメッセージはＣｏＡを送信元アドレスとして送出される。
（６）通信相手装置２は、ＢＵメッセージに含まれるホームアドレステスト処理と気付アドレステスト処理の結果を確認（認証）し、移動通信装置１がＨｏＡとＣｏＡの両方で通信可能であることを確認する。相手先通信装置２はＢＵメッセージの認証後、移動通信装置１のバインディング・キャッシュを設定し、ＢＡメッセージを応答として直接経路で送信する。
以上がモバイルＩＰの経路最適化のためのバインディング・キャッシュ設定の処理である。【００３８】
しかしながら、移動通信装置１と相手先通信装置２の間の直接の経路が、片方向のみ通信可能な経路である場合には、モバイルＩＰのバインディング更新方法は用いることができない。片方向の向きとして、相手先通信装置２から移動通信装置１の向きだけ通信可能な場合、ＣｏＴメッセージとＢＡメッセージは流れることができるが、ＣｏＴＩメッセージとＢＵメッセージは流れることができない。そこで、図５Ｂ、図５Ｃに示すようにＣｏＴＩメッセージ及びＢＵメッセージを、ＨｏＡを送信元アドレスにしてホームエージェント３経由で送信する方法が考えられる。以下では、ホームエージェント３経由で送信するＣｏＴＩメッセージ、ＢＵメッセージをそれぞれＣｏＴＩβメッセージ、ＢＵβメッセージと呼ぶ。またこれらの要求メッセージの応答メッセージをそれぞれＣｏＴβメッセージ、ＢＡβメッセージと呼ぶ。【００３９】
図５Ａに示すホームアドレステスト処理では、モバイルＩＰと同様に
（１）移動通信装置（ＭＮ）がＨｏＡを送信元アドレスとしてＨｏＴＩメッセージを相手先通信装置（ＣＮ）２に送信し、
（２）相手先通信装置２がＨｏＡ宛にＨｏＴメッセージを送信する。
ホームアドレステスト処理を行うことによって移動通信装置１がＨｏＡを送信元としてＨｏＴＩメッセージを送信し、ＨｏＡで応答メッセージを受信したことが分かる。【００４０】
図５Ｂに示す気付アドレステスト処理（β）では、
（３）移動通信装置１がＣｏＡを送信元アドレスとしてＣｏＴＩβメッセージをホームエージェント（ＨＡ）３経由で相手先通信装置（ＣＮ）２に送信し、
（４）相手先通信装置２がＣｏＡ宛にＣｏＴβメッセージを送信する（直接経路）。
気付アドレステストを行うことによって移動通信装置１がＨｏＡを送信元としてメッセージを送信し、ＣｏＡで応答メッセージを受信したことが分かる。【００４１】
次いで図５Ｃに示すように、
（５）移動通信装置１はホームアドレステスト処理と気付アドレステスト処理（β）を行うと、その結果をＢＵβメッセージに含めて相手先通信装置２にＨＡ３経由で送信する。（６）相手先通信装置２は、それぞれのテスト結果を確認し、ＣｏＡに送信しても移動通信装置が受信していることを確かめ、バインディング・キャッシュを設定する。そして相手先通信装置２は、応答としてＢＡβメッセージを直接経路で移動通信装置１に送信する。【００４２】
この方法によって、相手先通信装置２に不正なバインディング・キャッシュが設定されることを防止することができる。また、ＢＵβメッセージの送信元アドレスはＨｏＡであるのに対して、その応答メッセージ（ＢＡβメッセージ）の送信先アドレスはＣｏＡであるが、気付アドレステスト処理（β）によってＣｏＡに送信しても移動通信装置１に届くことが確認できているため問題はない。最後に残っている問題は、気付アドレステスト処理（β）である。移動通信装置１がＣｏＴＩβメッセージを送信する場合、そのＣｏＴＩβメッセージには応答の送信先アドレスとしてＣｏＡが記載されている。相手先通信装置２は、ＣｏＴＩβメッセージを受信し、移動通信装置１の指示どおりＣｏＴβメッセージをＣｏＡ宛に送信する。【００４３】
この気付アドレステスト処理（β）を攻撃者が利用するところを図６を用いて説明する。攻撃者７は、ＣｏＴＩβメッセージに応答先としてターゲット１ｂのアドレス（ＣｏＡ）を指定して、通信装置２ａにＣｏＴＩβメッセージを送信する。通信装置２ａは、ＣｏＴＩβメッセージの指示に従って、ＣｏＡにＣｏＴβメッセージを送信する。この応答先アドレスのＣｏＡは、ＣｏＴＩβメッセージを受信したとき通信装置２ａが初めて知るアドレスであるため、ＣｏＡにターゲット７がいるのか正規の移動通信装置１が応答メッセージを待っているのか、通信装置２ａには分からない。事前にＣｏＡを通知しておくことも考えられるが、攻撃者７が事前に通知しておくことも考えられるため、防ぐ手立てとはなり得ない。通信装置２にとっては一度ＣｏＡに送信してみないと移動通信装置１に届くかどうか分からない。攻撃者７は、この「通信装置２が一度試しに送信してみる」という処理を攻撃に利用する可能性がある。特に、このようなサービス妨害攻撃（ＤｏＳ攻撃）は、サービスを提供していてアドレスを公開しているサーバが攻撃の対象になりやすい。【００４４】
本技術は、以上のような問題を解決する。図７を用いて概略を説明する。移動通信装置１は、モバイルＩＰのホームアドレステスト処理を行う。つまり、
（１）移動通信装置１は相手先通信装置２にＨｏＴＩメッセージを送信する。
（２）相手先通信装置は通常のモバイルＩＰのホームアドレステスト処理を行う。つまり、以下のようにＨｏＴＩメッセージの送信元アドレスであるＨｏＡと、相手先通信装置２の秘密鍵（Secret Key）、それと相手先通信装置２が決めた乱数nonceを用いて、HMAC_SHA1によるHash計算を行い、Home Keygen Token（以下ではHome Tokenと記す。）を算出する。
Home Token = SHA1 （HoA, Secret Key, nonce）
相手先通信装置２は、算出したHome Tokenの値とnonceを呼び出すための識別情報nonce-idを応答メッセージのＨｏＴメッセージに含めて送信する。ここまでは通常のモバイルＩＰと同じである。但し、Home Tokenが移動通信装置１のＣｏＡ生成情報として用いられる点が異なる。【００４５】
＜ＣｏＡの生成＞
次に、移動通信装置１は、受信したＨｏＴメッセージに含まれる情報を用いてＣｏＡの設定を行う。従来の方法では移動通信装置１は、ＨｏＴＩメッセージを送信する前にＣｏＡを決定していた。本技術のポイントは、移動通信装置１がＨｏＴメッセージを受信してから、ＨｏＴメッセージに含まれるHome Tokenを元にしてＣｏＡを生成することである。移動通信装置１は、生成するＣｏＡのネットワークプレフィックスの領域は、変更することができないため、それ以外のホスト識別情報の領域をHome Tokenを用いて生成する。また、生成したＣｏＡと同じアドレスがすでに使用されている場合には、移動通信装置１はそのアドレスを使用することができないため、アドレスの重複が発生した場合に、そのアドレスの衝突を回避するための自由度を与えるデータαを用いてＣｏＡを生成する。つまり、ＨｏＴメッセージに含まれていたHome Tokenと自由度を持たせるためのαを用いて、HMAC_SHA1によるHash計算を行い、以下のようにＣｏＡを生成する。
CoA = SHA1 （Home Token, α）【００４６】
次に移動通信装置１は気付アドレステスト処理（β）を行う。つまり、
（３）移動通信装置１は、生成したＣｏＡと、ＣｏＡの生成に用いた情報αをＣｏＴＩβメッセージに含めて相手先通信装置２に送信する。また、このＣｏＴＩβメッセージには、（２）ＨｏＴメッセージで送信されたnonce-idも含まれる。【００４７】
＜ＣｏＡの確認＞
相手先通信装置２はＣｏＴＩβメッセージを受信すると、まず以下のように、Home Tokenの計算を行う。ＣｏＴＩβメッセージの送信元アドレスはＨｏＡであるため、ＨｏＡと、ＣｏＴＩβメッセージに含まれているnonce-idからnonceを呼び出す。また、相手先通信装置２の秘密鍵を用いる。
Home Token = SHA1 （HoA, Secret Key, nonce）
さらに、生成したHome TokenとＣｏＴＩβメッセージに含まれる情報αを用いて、ＣｏＡを生成する。
CoA = SHA1 （Home Token, α）
生成したＣｏＡがＣｏＴＩβメッセージに含まれるＣｏＡと等しい場合には、相手先通信装置２は、応答メッセージをＣｏＡに送信してよいと判断する。【００４８】
相手先通信装置２は、ＣｏＴＩβメッセージの応答としてＣｏＴβメッセージを送信する場合、Care-of keygen token（以下ではCare-of Tokenと記す。）の計算を行う。Care-of Tokenの計算には、ＣｏＡと、相手先通信装置２の秘密鍵と、相手先通信装置２が決めた乱数nonce'を用いて、HMAC_SHA1によるHash計算を行う。
Care-of Token = SHA1 （CoA, Secret Key, nonce'）
（４）相手先通信装置は、算出したCare-of Tokenの値とnonce'を呼び出すための識別情報nonce'-idを応答メッセージであるＣｏＴβメッセージに含めて送信する。【００４９】
移動通信装置１は、ホームアドレステスト処理によってHome Tokenを取得する。また、気付アドレステスト処理（β）によってCare-of Tokenを取得する。移動通信装置１は、これらのTokenをもとに鍵データを生成する。
Key  = SHA1 （Home Token, Care-of Token）
そして、この鍵データを用いて送信するＢＵβメッセージのメッセージ認証コード（MAC : Message Authentication Code）を生成する。
MAC = SHA1 （Key, Message Data）
（５）移動通信装置１は、ＢＵβメッセージに応答メッセージの送信先のCoA、Tokenを生成するための情報としてnonce-id, nonce'-id、さらにメッセージ認証コード（ＭＡＣ）を含めて、相手先通信装置２に送信する。【００５０】
相手先通信装置２は、ＢＵβメッセージを受信すると、メッセージが正しいかどうか確認処理を行う。まず、Home TokenとCare-of Tokenの計算を行う。ＢＵβメッセージの送信元アドレスはＨｏＡであり、Home Tokenの計算に用いる。また、ＣｏＡは応答送信先アドレスとしてＢＵβメッセージに含まれるため、Care-of Tokenの計算に用いる。
Home Token = SHA1 （HoA, Secret Key, nonce）
Care-of Token = SHA1 （CoA, Secret Key, nonce'）
次にこれらのTokenから鍵データ（Key）を生成し、ＢＵβメッセージのメッセージデータとKeyからメッセージ認証コード（ＭＡＣ）を生成し、ＢＵβメッセージに含まれるメッセージ認証コードと一致するかどうか確かめる。
Key = SHA1 （Home Token, Care-of Token）
MAC = SHA1 （Key, Message Data）【００５１】
（６）相手先通信装置２は、ＢＵβメッセージに含まれるメッセージ認証コードと、相手先通信装置２が計算した値とが一致した場合には、正しいＢＵβメッセージであると判断し、ＨｏＡとＣｏＡの組であるバインディング・キャッシュを設定し、ＢＵβメッセージの応答メッセージであるＢＡβメッセージを移動通信装置１に送信する。
以上がホームアドレステスト処理、気付アドレステスト処理（β）及び片方向経路・経路最適化処理の流れの説明である。【００５２】
上記の応答先アドレス（ＣｏＡ）の生成方法によって、攻撃者７が気付アドレステスト処理（ＣｏＴＩβ・ＣｏＴβ）を用いて、サービス妨害攻撃を行うことを防ぐことができる。つまり、攻撃者７があるサーバを攻撃しようとして、応答先アドレスとしてサーバのアドレスを指定したとしても、応答側通信装置２ａは、その応答先アドレスがHome Tokenから生成できるかどうか確認することによって、応答メッセージを送信する前に止めることができる。【００５３】
また、攻撃者７は、応答側通信装置２ａから返されるHome Tokenを予測することができないため、ターゲットのサーバのアドレスを意図的に生成することは不可能である。Home Tokenは応答側通信装置２ａの秘密鍵をもとに生成されていることと、応答側通信装置２ａが生成する乱数nonceを用いて生成されていることによって、要求側通信装置には予測不可能である。さらに、乱数nonceはLife Timeをもっており、定期的に異なる値に変更されるため、要求側通信装置にはターゲットのサーバのアドレスを応答先アドレスになるように意図的に操作することは不可能である。【００５４】
以下では、さらに詳細に技術内容を説明する。最初に、比較のために従来技術であるモバイルＩＰの方法を図８を用いて簡単に説明する。
＜ＨｏＴＩ／ＣｏＴＩ＞
まず、図８（１）、（３）にそれぞれ示すように、移動通信装置１は相手先通信装置２にＨｏＴＩ（Home Test Init）メッセージとＣｏＴＩ（Care-of Test Init）を送信する。
＜ＨｏＴ／ＣｏＴ＞
相手先通信装置２はＨｏＴＩメッセージを受信すると、Home Tokenの計算を次のように行う。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
Kcnは相手先通信装置２のみが知っている鍵データである。Home addressは、ＨｏＴＩメッセージの送信元アドレスである。Nonceは相手先通信装置２が独自に決めてよい値である。Nonceにどの値を用いたか分かるように、図８（２）に示すように、相手先通信装置２は、nonceの値を識別するための識別情報（home nonce-id）をＨｏＴメッセージに含めて移動通信装置１に通知する。ＨｏＴメッセージには、さらにHome Tokenを含める。【００５５】
同様に、相手先通信装置２はＣｏＴＩメッセージを受信すると、Care-of Tokenの計算を次のように行う。
Care-of Token :=
First（64, HMAC_SHA1 （Kcn, （care-of address | nonce | 1）））
相手先通信装置２は図８（４）に示すように、ＣｏＴメッセージにCare-of Token、care-of nonce-idを含めて移動通信装置１に送信する。【００５６】
＜ＢＵ＞
移動通信装置１は、ＨｏＴメッセージとＣｏＴメッセージを受信すると、Home TokenとCare-of Tokenを用いて次のように鍵（Kbm）を生成する。
Kbm = SHA1 （Home Token | Care-of Token）
移動通信装置１は、この生成した鍵Kbmを用いてＢＵメッセージのメッセージ認証コード（ＭＡＣ）を生成してＢＵメッセージに付加し、図８（５）に示すように相手先通信装置２に送信する。メッセージ認証コードは次のように生成する。
Authenticator = First （96, HMAC_SHA1 （Kbm, Mobility Data））
Mobility Data = care-of address | correspondent | MH Data
Authenticatorがメッセージ認証コードである。Care-of addressはＢＵメッセージの送信元アドレスであり、correspondentは相手先通信装置２のアドレスであり、ＢＵメッセージの送信先アドレスである。MH DataはＢＵメッセージの本体である。【００５７】
＜ＢＵの認証／ＢＡ＞
移動通信装置１はＢＵメッセージに、home nonce id、care-of nonce id、home addressを付加して送信する。ＢＵメッセージを受信した相手先通信装置２は、ＢＵメッセージの送信元アドレス（care-of address）と、home nonce idからhome nonceを呼び出し、Home Tokenを生成する。また相手先通信装置２は同様にしてCare-of Tokenを生成する。さらに相手先通信装置２は、これら２つのtokenから鍵（Kbm）を生成する。そしてＢＵメッセージと鍵（Kbm）を用いてメッセージ認証コードを生成し、移動通信装置１がＢＵメッセージに付加したメッセージ認証コードと一致するか確認する。メッセージ認証コードが一致することによって、相手先通信装置２はHome Test（ＨｏＴＩメッセージを送信し、ＨｏＴメッセージを受信したこと）と、Care-of Test（ＣｏＴＩメッセージを送信し、ＣｏＴメッセージを受信したこと）との両方を実行した通信装置からの適切なＢＵメッセージであるとみなし、図８（６）に示すようにバインディング確認（ＢＡ）メッセージを移動通信装置１に送信する。【００５８】
この従来技術におけるモバイルＩＰのホームアドレステスト処理及び気付アドレステスト処理の設計思想は非特許文献２に記載されている。そのポイントとなるところは次の３点である。
（１）相手先通信装置にステート（State）を持たせないこと。
（２）応答メッセージを倍増させないこと（Amplificationの禁止）。
（３）メッセージの反射を行わないこと（Reflectionの禁止）。【００５９】
上記（１）の相手先通信装置２にStateを持たせないことは、相手先通信装置２に対するＤｏＳ攻撃への防御策である。相手先通信装置２はＨｏＴＩメッセージを受信し、ＨｏＴメッセージを応答として返す処理では、単純にtokenを計算しているだけである。ＨｏＴメッセージを返したあと 、相手先通信装置２が記憶しておかなければならない情報はない。Kcnの値やnonceの値は、複数のＨｏＴＩメッセージに対して同じ値を用いることができるため、相手先通信装置２が複数の移動通信装置１から同時にＨｏＴＩメッセージを受信したとしても、そのために保持しておかなければならない情報が増えるわけではない。ＣｏＴＩメッセージを受信し、ＣｏＴメッセージを送信する場合においても同様である。相手先通信装置２はＢＵメッセージを受信すると、ＢＵメッセージに含まれる情報だけを用いてHome Token及びCare-of Tokenを生成し、これら２つのtokenから鍵（Kbm）を生成し、ＢＵメッセージのメッセージ認証コードを生成し、さらにはＢＵメッセージに付加されているメッセージ認証コードと一致するか確認する。【００６０】
上記（２）の応答メッセージを倍増させないこと（Amplificationの禁止）は、Home TestとCare-of Testに分けることによって実現している。例えば、移動通信装置１から相手先通信装置２へ１つの要求メッセージを送信して、相手先通信装置２からＨｏＡとＣｏＡに別々の応答メッセージを送信させる方法が思いつくが、この方法の場合、ＤｏＳ攻撃を行おうとする攻撃者７に、攻撃メッセージを２倍にする装置を提供することになる可能性がある。そのため、モバイルＩＰでは１つの要求メッセージに１つの応答メッセージを返すように設計されている。【００６１】
上記（３）のメッセージの反射を行わないこと（Reflectionの禁止）は、応答メッセージを要求メッセージの送信元アドレスに送信することによって実現している。すなわち、ＨｏＴメッセージはＨｏＴＩメッセージの送信元に返し、ＣｏＴメッセージはＣｏＴＩメッセージの送信元に返している。要求メッセージの送信元以外のアドレスに応答メッセージを送信することは、攻撃者７が他の通信装置を攻撃するために相手先通信装置２を利用することを可能にする。【００６２】
本実施の形態は、従来技術のモバイルＩＰでは不可能だった片方向経路での経路最適化を実現する技術であると同時に、上記３点のセキュリティ対策の維持を目的とする。このうち、相手先通信装置２にStateを持たせないこと、Amplificationを行わないこと、の２点は維持している。また、Reflectionを攻撃に利用できないようにしている。【００６３】
＜メッセージシーケンス＞
次に本実施の形態のバインディング・キャッシュ設定のメッセージシーケンスについて説明する。従来のモバイルＩＰと区別するために、新たにＣｏＴＩβメッセージ、ＣｏＴβメッセージ、ＢＵβメッセージ、ＢＡβメッセージを定義している。これらのメッセージは従来のモバイルＩＰのメッセージとは容易に区別できることが望ましい。従来のモバイルＩＰでは、ＣｏＴＩメッセージ、ＣｏＴメッセージ、ＢＵメッセージ、ＢＡメッセージを図９に示すフォーマットのＭＨ Type を用いて識別している。ＭＨ Typeは８bitの情報要素で、０から７までの値が既に次のように割り当てられている（非特許文献１参照）。
0  Binding Refresh Request
1  Home Test Init
2  Care-of Test Init
3  Home Test
4  Care-of Test
5  Binding Update
6  Binding Acknowledgement
7  Binding Error【００６４】
このため、本技術のために新しく定義したメッセージにも、新しくＭＨ Typeの値を割り当てることによって、それぞれのメッセージを識別できるようにする方法が適していると考えられる。もちろん新しくMH Typeの値を定義することなく、ＣｏＴＩβメッセージにはＣｏＴＩメッセージ（MH Type = ２）、ＣｏＴβメッセージにはＣｏＴメッセージ（MH Type = 4）、ＢＵβメッセージにはＢＵメッセージ（MH Type = 5）、ＢＡβメッセージにはＢＡメッセージ（MH Type = 6）を用い、宛先アドレスや送信元アドレスまたはメッセージ内の情報要素によって識別することも可能である。またメッセージのヘッダに識別するためのフラグを設けることも可能である。【００６５】
次に、図１０を参照して本発明の処理の流れを説明する。
＜ＨｏＴＩ、ＨｏＴ＞
移動通信装置１は、図１０（１）に示すようにＨｏＴＩメッセージを相手先通信装置２に送信する。
相手先通信装置２はＨｏＴＩメッセージを受信すると、Home Tokenの計算を次のように行う。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
相手先通信装置２は図１０（２）に示すように、ＨｏＴメッセージに、Home Token、home nonce-idを含めて移動通信装置１に送信する。ＨｏＴＩ及びＨｏＴメッセージを用いたホームアドレステストの処理は、モバイルＩＰと同様の処理である。但し、次のＣｏＡ生成処理でHome Tokenが用いられる点が異なる。【００６６】
＜ＣｏＡ生成処理＞
移動通信装置１は、ＨｏＴメッセージを受信すると、応答先アドレスとなる気付アドレス（ＣｏＡ：Care-of Address）を次のように計算する。
Care-of Address :=
First（64, HMAC_SHA1 （Home Token | α））
上記はネットワークプレフィックスのサイズが６４ビットの場合の式である。ＩＰｖ６のアドレスサイズが１２８ビットであるため、ホスト識別領域は６４ビットとなる。上記のCare-of Addressはホスト識別領域のデータである。【００６７】
移動通信装置１は、ＣｏＡを生成したあと、ネットワーク上で同じアドレスを用いた端末がすでに存在しないか、アドレス重複確認処理を行う。このアドレス重複確認処理は、この生成したアドレス宛にメッセージを送信することによって、すでにこのアドレスを使用している端末がいる場合には、応答が返ってくることを利用して、アドレスがすでに他の端末によって使用されていないか確認する。もし、生成したＣｏＡが別の端末によってすでに使用されている場合には、αの値を変更して、再度ＣｏＡを生成し、アドレス重複確認処理を行う。この処理は、他の端末によって使用されていないＣｏＡを生成できるまで行う。【００６８】
＜ＣｏＴＩβ＞
図１０（３）に示すようにＣｏＴＩβメッセージには、ＣｏＴメッセージと異なり、ＣｏＡ、α、home nonce-idが新しく含まれる。ＣｏＡは、ＣｏＡ生成処理によってHome Tokenから生成した応答先アドレスである。αは、ＣｏＡを生成するために用いた値である。home nonce-idは、移動通信装置が受信したＨｏＴメッセージに含まれていた値である。【００６９】
＜ＣｏＴＩβ受信及び応答先アドレスＣｏＡの確認＞
ＣｏＴＩβメッセージを受信した相手先通信装置２は、ＣｏＴＩβメッセージに含まれるhome nonce-idからhome nonceを呼び出し、ＣｏＴＩβメッセージの送信元アドレスであるＨｏＡと 併せてHome Tokenを生成する。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
さらに、Home TokenとＣｏＴＩβメッセージに含まれていたαを用いて応答先アドレス（care-of address）を生成する。
Care-of Address :=
First（64, HMAC_SHA1 （Home Token | α））【００７０】
この生成したCare-of Addressが、ＣｏＴＩβメッセージに含まれる応答先アドレスと一致しない場合には、相手先通信装置２は処理をここで終了し、ＣｏＴＩβメッセージを破棄する。応答先アドレスと一致する場合には、応答メッセージであるＣｏＴβメッセージの作成を行う。この応答先アドレスの確認処理によって、ＣｏＴＩβメッセージを送信した端末がホームアドレステスト処理を行い、相手先通信装置２から送られたHome Tokenを用いて応答先アドレスを生成したことを確認する。これによって、相手先通信装置２が攻撃者７に利用されてターゲット１ｂにＣｏＴβメッセージを送信することを未然に防ぐ。【００７１】
＜ＣｏＴβ＞
相手先通信装置２は図１０（４）に示すように、ＣｏＴβメッセージを移動通信装置１のＣｏＡに送信する。ＣｏＴβメッセージには、Care-of Tokenとtoken生成に用いたnonceを呼び出すためのcare-of nonce-idが含まれる。Care-of Tokenの計算は次のように行う。
Care-of Token :=
First（64, HMAC_SHA1 （Kcn, （care-of address | nonce | 1）））【００７２】
＜ＢＵβ＞
移動通信装置１は、ＣｏＴβメッセージを受信し、ＣｏＴβメッセージに含まれているCare-of Tokenの値とＨｏＴメッセージに含まれていたHome Tokenの値から鍵データ（Kbm）を生成する。
Kbm = SHA1 （Home Token | Care-of Token）
さらに、この鍵データKbmを用いて、ＢＵβメッセージのメッセージ認証コードを生成し、 図１０（５）に示すようにＢＵβメッセージに付加して相手先通信装置２に送信する。メッセージ認証コードは次のように計算する。
Authenticator = First （96, HMAC_SHA1 （Kbm, Mobility Data））
Mobility Data = care-of address | correspondent | MH Data
Authenticatorはメッセージ認証コードである。home addressはＢＵβメッセージの送信元アドレスであり、correspondentは送信先アドレスである。MH DataはＢＵβメッセージの本体である。ＢＵβメッセージには、メッセージ認証コードのほかに、応答先アドレスであるＣｏＡ、ＨｏＴメッセージに含まれていたhome nonce id、ＣｏＴβメッセージに含まれていたcare-of nonce idが含まれる。【００７３】
＜ＢＵβの認証及びＢＡβの送信＞
相手先通信装置２は、ＢＵβメッセージを受信し、home nonce-idと送信元アドレスのhome addressからHome Tokenを生成し、care-of nonce-idとＢＵβメッセージに含まれるcare-of addressを用いてCare-of Tokenを生成する。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
Care-of Token :=
First（64, HMAC_SHA1 （Kcn, （care-of address | nonce | 1）））
次に、２つのtokenを用いてKbmを生成し、ＢＵβメッセージのメッセージ認証コードを生成し、付加されていたメッセージ認証コードと一致するか確認する。
Kbm = SHA1 （Home Token | Care-of Token）
Authenticator = First （96, HMAC_SHA1 （Kbm, Mobility Data））
Mobility Data = care-of address | correspondent | MH Data
メッセージ認証コードが一致したならば、相手先通信装置２はバインディング・キャッシュの設定を行い、移動通信装置１のＣｏＡに向けて応答メッセージであるＢＡβメッセージを送信する。一致しない場合には、受信したＢＵβメッセージを破棄し、受信処理を終了する。以上が本発明の片方向経路での経路最適化を行うバインディング更新処理である。【００７４】
＜メッセージフォーマット＞
次に、メッセージフォーマットについて説明する。本発明のＣｏＴＩβ、ＣｏＴβのメッセージは、従来技術のモバイルＩＰのＣｏＴＩやＣｏＴのメッセージに新しく情報要素を追加している。追加している情報要素は、home nonce id, prefix length, care-of addressである 。これらを格納するためのフォーマットは、従来のモバイルＩＰ（ＲＦＣ３７７５）で定義されているメッセージフォーマットをそのまま、又は少し変更することによって利用することができる。
・Home nonce id：ＲＦＣ３７７５ではHome Nonce Indexだけを運ぶMobility Optionが定義されていないため、図１１に示すように新たにOption Typeを定義する必要がある。
・prefix lengthは、相手先通信装置が２Care-of Addressの比較を行うときに、Care-of Addressをネットワークプレフィックスの領域とホスト識別情報の領域と分離するために必要な情報である。ネットワークプレフィックスのサイズを運ぶ情報要素を図１２に示す。
・Care-of address：ＲＦＣ３７７５には、Care-of Address Optionが存在しないため、図１３に示すように新たにOption Typeを定義する必要がある。Alternate CoA Optionを転用する方法も考えられる。【００７５】
＜バインディング・キャッシュ＞
相手先通信装置２が設定するバインディング・キャッシュは、モバイルＩＰと同じものでかまわない。相手先通信装置２は、従来のモバイルＩＰと同様、ＨｏＡ宛のパケットをＣｏＡ宛に変更するとともに、拡張ヘッダのルーティングヘッダ（Type 2）を付加する。相手先通信装置２が移動通信装置１から受信するパケットは、ＨｏＡを送信元アドレスとする通常のパケットである。一方、移動通信装置１が持つバインディング・キャッシュには、送信元アドレスをＣｏＡに変換してはいけないことを示す情報が必要である。移動通信装置１はホームエージェント３経由でパケットを送信しなければ、相手先通信装置２にパケットが届かないからである。【００７６】
＜相手先通信装置（応答側通信装置）の構成＞
図１４は相手先通信装置（応答側通信装置）２のメッセージ処理部の構成を示すブロック図である。相手先通信装置２は、次のようなメッセージの送受信を行う。
（１）ＨｏＴＩメッセージを受信し、ＣｏＡ生成情報（Home Token）を含むＨｏＴメッセージを送信する。
（２）ＣｏＴＩメッセージを受信し、ＣｏＴメッセージを送信する。
（３）ＣｏＴＩβメッセージを受信してメッセージ内のＣｏＡを認証し、ＣｏＴβメッセージを送信する。
（４）ＢＵメッセージを受信してメッセージ内のメッセージ認証コードを認証し、ＢＡメッセージを送信する。
（５）ＢＵβメッセージを受信してメッセージ内のメッセージ認証コードを認証し、ＢＡβメッセージを送信する。【００７７】
（１）、（２）、（４）のメッセージ送受信処理は、ＭＩＰ ＢＵ/RR処理部１３（及びメッセージ受信部１１、メッセージ送信部１２）において行う。（３）、（５）のメッセージ送受信処理は、片方向ＢＵ/RR拡張処理部１３ａ（及びメッセージ受信部１１、メッセージ送信部１２）において行う。ＨｏＴ、ＣｏＴ、ＣｏＴβメッセージの送信処理においてtoken, nonce idをメッセージに付加する場合、Nonce管理部１４及びToken生成部１５よりデータを取得する。Token生成部１５は、Nonce管理部１４よりNonceの値を取得し、受信した要求メッセージから取得したアドレスと鍵データKcnよりTokenの値を計算する。Nonce管理部１４は、Token管理部１４に渡したNonceの値に対応するNonce IDの値をＭＩＰ ＢＵ/RR処理部１３に渡す。Token生成部１５は、要求側通信装置１からの応答先アドレス生成情報の要求に応えてHome tokenを生成しているため、応答先アドレス生成情報生成部として機能している。【００７８】
ＣｏＴＩβメッセージの受信処理において、応答先アドレスの確認処理を行う場合、ＣｏＴＩβメッセージに含まれるhome nonce-idをNonce管理部１４に渡し、Nonceの値を取得する。取得したNonceの値とＣｏＴＩβメッセージの送信元アドレスであるＨｏＡをToken生成部１５に渡し、Tokenの値を取得する。取得したTokenの値とＣｏＴＩβメッセージに含まれる情報αを応答先アドレス確認部２０に渡し応答先アドレス（ＣｏＡ）を生成し、その生成したアドレスとＣｏＴＩβメッセージに含まれる応答先アドレスと一致するか比較する。比較する領域は、応答先アドレスからネットワークプレフィックスの領域を除いたホスト識別子の領域である。【００７９】
ＢＵ、ＢＵβメッセージの受信処理においてメッセージ認証コードの作成と確認（認証）を行う場合、ＢＵ、ＢＵβメッセージに含まれるhome nonce-idとcare-of nonce-idをNonce管理部１４に渡し、home nonce, care-of nonceの値をそれぞれ取得する。取得したNonceの値とＢＵ、ＢＵβメッセージ内に含まれるHome Address及びCare-of AddressをToken生成部１５にそれぞれ渡し、Home Token及びCare-of Tokenを生成する。取得した２つのtokenをKbm生成部１６に渡し、Kbmを生成する。生成したKbm及び受信したメッセージをメッセージ認証コード（ＭＡＣ）確認部１８に渡し、ＭＡＣの値を計算する。そしてＢＵ、ＢＵβメッセージ内に含まれているＭＡＣの値と比較し、一致するかどうかチェックする。ＭＡＣのチェックに成功した場合には、Home AddressとCare-of Addressの対応関係をバインディング・キャッシュ（Binding Cache）１９（及び片方向ＲＯ拡張部１９ａ）に登録する。【００８０】
＜移動通信装置（要求側通信装置）の構成＞
図１５は移動通信装置（要求側通信装置）１のメッセージ処理部の構成を示すブロック図である。移動通信装置１は、次のようなメッセージの送受信を行う。
（１）ＨｏＴＩメッセージを送信し、ＣｏＡ生成情報（Home Token）を含むＨｏＴメッセージを受信する。
（２）ＣｏＴＩメッセージを送信し、ＣｏＴメッセージを受信する。
（３）ＣｏＡ生成情報（Home Token）からＣｏＡを生成して、ＣｏＡを含むＣｏＴＩβメッセージを送信し、ＣｏＴβメッセージを受信する。
（４） メッセージ認証コードを含むＢＵメッセージを送信し、ＢＡメッセージを受信する。
（５）メッセージ認証コードを含むＢＵβメッセージを送信し、ＢＡβメッセージを受信する。【００８１】
（１）、（２）、（４）のメッセージ送受信処理は、ＭＩＰ ＢＵ/RR処理部２３（及びメッセージ受信部２１、メッセージ送信部２２）において行う。（３）、（５）のメッセージ送受信処理は、片方向ＢＵ/RR拡張処理部２３ａにおいて行う。ＨｏＴＩ、ＣｏＴＩ、ＣｏＴＩβメッセージの送信処理では、Cookie生成部２４により作成したCookieの値をＨｏＴＩ、ＣｏＴＩ、ＣｏＴＩβメッセージに入れる。メッセージに含めるCookieは、相手先通信装置２が応答メッセージに同じ値を含めて移動通信装置１に返すことになっている。これによって移動通信装置１は、要求メッセージと応答メッセージの対応づけを行うことができる。応答先アドレス生成情報要求部２９は、（１）のＨｏＴＩメッセージ送信で要求し、また、応答先アドレス生成部３０は、（３）においてＣｏＡ生成情報（Home Token）からＣｏＡを生成する。【００８２】
ＨｏＴＩメッセージの送信処理では、Home Tokenを要求する処理が、応答先アドレス生成情報（Home Token）を応答側通信装置２に要求するための処理であり、応答先アドレス生成情報要求部２９が存在していると見ることができる。ＨｏＴメッセージの受信処理では、移動通信装置１はＨｏＴメッセージに含まれるHome Tokenを応答先アドレス生成部３０に渡して、応答先アドレス（ＣｏＡ）を生成する。ＣｏＴＩβメッセージの送信処理では、応答先アドレス生成部３０より作成した応答先アドレスと応答先アドレス生成に用いた情報αを取得し、ＣｏＴＩβメッセージに付加して送信する。【００８３】
ＢＵ、ＢＵβメッセージ送信処理においては、受信したＨｏＴメッセージ及びＣｏＴβメッセージから取得したHome Token及びCare-of TokenをKbm生成部２５に渡し、Kbmを生成する。さらに送信するＢＵ、ＢＵβメッセージと作成したKbmをメッセージ認証コード生成部２６に渡し、メッセージ認証コードを作成する。作成したメッセージ認証コードはＢＵ、ＢＵβメッセージに付加し送信する。Binding Cache管理部２７（及び片方向ＲＯ拡張部２８）は、相手先通信装置２のBinding Cache１９を管理する。【００８４】
＜その他の使用例１＞
なお、本明細書では、移動通信装置１が最初から片方向経路最適化を行うことを想定して動作する場合について説明したが、移動通信装置１が片方向経路であるかどうか知らない場合についても利用可能である。移動通信装置１は、従来のモバイルＩＰの処理を行い、ＨｏＴＩメッセージとＣｏＴＩメッセージを送信する。移動通信装置１は、ＨｏＴメッセージは受信するが、ＣｏＴメッセージを受信できない場合、再度ＣｏＴＩメッセージを送信しなおすといった処理を行うことが考えられる。このとき移動通信装置１は、片方向経路（相手先通信装置２から移動通信装置１の向きに片方向だけ通信可能な経路の場合）であっても経路最適化を行うかどうか判定を行い、片方向経路最適化を行う場合には、ＣｏＴＩβメッセージを送信する。この後の処理は、本明細書で説明した処理と同じである。【００８５】
＜その他の使用例２＞
図２に示すように移動通信装置（ＭＮ）１が複数のインタフェースを持つ端末のときには、ホームエージェント３が存在しないときにでも片方向経路最適化を実行してもよい。移動通信装置１が２種類のインタフェースを持っているとする。２種類のインタフェースは例えば、携帯電話網に接続するインタフェースと地上波デジタルテレビ放送を受信するインタフェースとする。そして、携帯電話網側のインタフェースに割り当てられたアドレスをＩＰ（携帯）とし、地上波デジタル放送側のインタフェースをＩＰ（放送）とする。ＩＰ（携帯）は双方向通信可能なアドレスである。一方、ＩＰ（放送）はダウンリンクのみ通信可能なアドレスである。このとき、移動通信装置１である携帯電話は、ＩＰ（携帯）をＨｏＡとして、ＩＰ（放送）をＣｏＡとみなして片方向経路最適化手順を実行することができる。【００８６】
なお、本明細書ではＣｏＴＩβメッセージに対して応答メッセージを送信するかどうかのチェックに応答先アドレスが正しく生成されているかどうか確認する方法について説明したが、これは応答側通信装置（相手先通信装置）２がＨｏＡとＣｏＡの組合せを知らない場合にも使える方法である。例えば、すでに相手先通信装置２が移動通信装置１のバインディング・キャッシュを設定されている場合には、相手先通信装置２はＣｏＡ宛に送信しても移動通信装置１にパケットが届くことがわかっている。このような場合には、相手先通信装置２は、応答先アドレスを確認するのではなく、すでに移動通信装置１のバインディング・キャッシュが設定されているかどうか確認し、その登録されているＨｏＡとＣｏＡの組と一致しているかどうか確認する方法も可能である。このようにバインディング・キャッシュが設定されているかどうかを確認する方法も併用する場合には、ＣｏＴＩβメッセージにフラグを設けて、すでにバインディング・キャッシュに登録しているかどうか、相手先通信装置２が即座にバインディング・キャッシュをチェック開始できるようにしてもよい。【００８７】
モバイルＩＰではバインディング・キャッシュにLife Timeを設けているため、移動通信装置１は一定間隔ごとにＣｏＴＩβメッセージを相手先通信装置２に送信しなければならない。このため、バインディング・キャッシュに登録されているかどうか確認する方法と、応答先アドレスが正しく生成されているかどうか確認する方法との併用は、ＣｏＴＩβメッセージ受信時にＣｏＴβメッセージを応答としてＣｏＡに送信してよいかどうか判定する方法として利用効果がある。【００８８】
また、本発明は、移動通信装置と相手先通信装置との間で移動通信装置のホームエージェントを介さない両方向の直接経路で通信を行う経路最適化を行う場合にも適用することができる。この場合の通信方法、通信システム、移動通信装置及び相手先通信装置の構成を以下に示す。
（１）通信方法：
移動通信装置と相手先通信装置との間で前記移動通信装置のホームエージェントを介さない直接経路で通信を行う経路最適化を行う通信方法において、
前記移動通信装置が前記ホームエージェントを介して、ホームアドレステスト要求（ＨｏＴＩ）メッセージを前記相手先通信装置に送信し、前記相手先通信装置が前記ホームアドレステスト要求メッセージに応答して、前記移動通信装置の気付アドレスを生成するためのアドレス生成情報を含むホームアドレステスト応答（ＨｏＴ）メッセージを前記ホームエージェントを介して前記移動通信装置に送信するホームアドレステストステップと、
前記移動通信装置が前記ホームアドレステスト応答メッセージ内の前記アドレス生成情報に基づいて気付アドレスを生成して、前記気付アドレスを含む気付アドレステスト要求（ＣｏＴＩβ）メッセージを前記直接経路で前記相手先通信装置に送信し、前記相手先通信装置が前記気付アドレステスト要求メッセージ内の前記気付アドレスを、前記ホームアドレステスト応答（ＣｏＴβ）メッセージで送信した前記アドレス生成情報に基づいて生成した気付アドレスと比較して、一致すると確認した場合に気付アドレステスト応答メッセージを前記直接経路で前記移動通信装置に送信する気付アドレステストステップとを、
有することを特徴とする通信方法。【００８９】
（２）通信システム：
移動通信装置と相手先通信装置との間で前記移動通信装置のホームエージェントを介さない直接経路で通信を行う経路最適化を行う通信システムにおいて、
前記移動通信装置がホームアドレステスト要求メッセージを前記ホームエージェントを介して前記相手先通信装置に送信し、前記相手先通信装置が前記ホームアドレステスト要求メッセージに応答して、前記移動通信装置の気付アドレスを生成するためのアドレス生成情報を含むホームアドレステスト応答メッセージを前記ホームエージェントを介して前記移動通信装置に送信するホームアドレステスト手段と、
前記移動通信装置が前記ホームアドレステスト応答メッセージ内の前記アドレス生成情報に基づいて気付アドレスを生成して、前記気付アドレスを含む気付アドレステスト要求メッセージを前記直接経路で前記相手先通信装置に送信し、前記相手先通信装置が前記気付アドレステスト要求メッセージ内の前記気付アドレスを、前記ホームアドレステスト応答メッセージで送信した前記アドレス生成情報に基づいて生成した気付アドレスと比較して、一致すると確認した場合に気付アドレステスト応答メッセージを前記直接経路で前記移動通信装置に送信する気付アドレステスト手段とを、
有することを特徴とする通信システム。【００９０】
（３）移動通信装置：
移動通信装置と相手先通信装置との間で前記移動通信装置のホームエージェントを介さない直接経路で通信を行う経路最適化を行う通信システムにおける前記移動通信装置であって、
ホームアドレステスト要求メッセージを前記ホームエージェントを介して前記相手先通信装置に送信する手段と、
前記相手先通信装置が前記ホームアドレステスト要求メッセージに応答して、前記移動通信装置の気付アドレスを生成するためのアドレス生成情報を含むホームアドレステスト応答メッセージを前記ホームエージェントを介して前記移動通信装置に送信した場合、前記ホームアドレステスト応答メッセージを受信する手段と、
前記受信した前記ホームアドレステスト応答メッセージ内の前記アドレス生成情報に基づいて気付アドレスを生成して、前記気付アドレスを含む気付アドレステスト要求メッセージを前記直接経路で前記相手先通信装置に送信する手段とを備え、
前記相手先通信装置が前記気付アドレステスト要求メッセージ内の前記気付アドレスを、前記ホームアドレステスト応答メッセージで送信した前記アドレス生成情報に基づいて生成した気付アドレスと比較して、一致すると確認した場合に気付アドレステスト応答メッセージを前記直接経路で前記移動通信装置に送信するようにした移動通信装置。【００９１】
（４）相手先通信装置：
移動通信装置と相手先通信装置との間で前記移動通信装置のホームエージェントを介さない直接経路で通信を行う経路最適化を行う通信システムにおける前記相手先通信装置であって、
前記移動通信装置がホームアドレステスト要求メッセージを前記ホームエージェントを介して前記相手先通信装置に送信した場合、前記ホームアドレステスト要求メッセージを受信する手段と、
前記受信した前記ホームアドレステスト要求メッセージに応答して、前記移動通信装置の気付アドレスを生成するためのアドレス生成情報を含むホームアドレステスト応答メッセージを前記ホームエージェントを介して前記移動通信装置に送信する手段と、
前記移動通信装置が前記ホームアドレステスト応答メッセージ内の前記アドレス生成情報に基づいて気付アドレスを生成して、前記気付アドレスを含む気付アドレステスト要求メッセージを前記直接経路で前記相手先通信装置に送信した場合、前記気付アドレステスト要求メッセージを受信する手段と、
前記受信した前記気付アドレステスト要求メッセージ内の前記気付アドレスを、前記ホームアドレステスト応答メッセージで送信した前記アドレス生成情報に基づいて生成した気付アドレスと比較して、一致すると確認した場合に気付アドレステスト応答メッセージを前記直接経路で前記移動通信装置に送信する手段とを、
有する相手先通信装置。【００９２】
なお、上記実施の形態の説明では移動通信装置を一つの装置として説明したが、複数の近距離通信可能な装置の集合であってもよい。例えば携帯テレビ受像機と携帯電話の組み合わせで、携帯テレビ受像機と携帯電話の間では相互通信を行い、あたかも一つの装置として動作し本発明の処理を行うといった実現方法も考えられる。【００９３】
次に、上記ではモバイルＩＰの経路最適化の片方向経路対応の場合について説明したが、他の状況でも利用することができる。図１６を用いて処理手順を説明する。要求側の通信装置（第１の通信装置）１０１と応答側の通信装置（第２の通信装置）１０２が通信しているとする。要求側通信装置１０１は、あるアドレス（第１のアドレス）を使って、メッセージを送受信し、応答側通信装置１０２と通信している。このように通信しているときに、要求側通信装置１０１が別の新しいアドレス（第２のアドレス）を使って受信したいと希望する。例えばデジタル放送網や衛星通信網などを用いて受信したいといった場合が想定される。モバイルＩＰの経路最適化を例とした場合にはバインディング・キャッシュを設定して、設定後に新しいアドレスを受信用のアドレスとして使用した。それ以外の使い方として、応答として返されるメッセージが大きく、別のインタフェースの別のアドレスで受信したほうが効率的に通信できるといった使い方が考えられる。要求メッセージの送信元と異なるアドレスに応答メッセージを返して欲しい場合に、要求メッセージに応答先を含めて送信し、応答先の通信装置１０２がその要求に従って応答メッセージを送信してしまうと、課題のところで述べたように攻撃に利用される危険性がある。【００９４】
図１６において、
（１）要求側通信装置１０１が新しいアドレスでの応答の受信を希望し、要求側通信装置１０１は応答側通信装置１０２にアドレス生成情報を要求するアドレス生成情報要求メッセージ（第１の要求メッセージ）を送信する。
（２）応答側通信装置１０２はアドレス生成情報の要求を受信し、アドレス生成情報を作成し、応答としてアドレス生成情報メッセージ（第１の応答メッセージ）を要求側送信装置１０１に送信する。【００９５】
アドレス生成情報は、要求側送信装置１０１が予測できない情報であることが望ましい。つまり予測可能な値の場合、攻撃者（第１の通信装置１０１）がターゲットを決め、そのターゲットを攻撃可能なアドレスを生成できる応答側通信装置１０２を選び、アドレス生成情報を要求することが考えられるからである。アドレス生成情報を、応答側通信装置１０２の秘密鍵を用いて生成することは予測を困難にする効果がある。また、定期的に変更する乱数を利用して生成することも予測を困難にする効果がある。【００９６】
応答側通信装置（第２の通信装置）１０２からのアドレス生成情報の送信は、要求メッセージの応答として送信するだけではなく、他の理由により送信する場合でもかまわない。例えば定期的にアドレス（第２のアドレス）を変更するような場合、その都度、要求側通信装置１０１が要求メッセージを送信するのではなく、定期的に応答側通信装置１０２がアドレス生成情報を送信したほうが効率的である。また、応答側通信装置１０２の都合によって新しく応答を受信するアドレス（第２のアドレス）を変更させることも考えられる。また、例えば他の第３の通信装置からの指示に従って新しく応答を受信するアドレス（第２のアドレス）を変更させることも考えられる。さらに言えば、ネットワーク環境の変化や通信装置以外からの入力情報によって、アドレス生成情報を送信することも考えられる。【００９７】
（３）要求側通信装置（第１の通信装置）１０１は、アドレス生成情報を受信し、アドレス生成情報を用いて応答を受信するためのアドレスを生成する。必要ならば、つまりアドレスの重複が発生する可能性があるならば、生成したアドレスがすでに他の端末に使用されていないか確認する。アドレスの重複が発生する場合には、自由度を与える。例えばαという情報を追加して、次のように第２のアドレスを生成する。
応答先アドレス（第２のアドレス）＝ＳＨＡ１（アドレス生成情報、α）
応答先アドレスにネットワークプレフィックス部が必要ならば、ネットワークプレフィックス部を付加する。この場合にはホスト識別部を、アドレス生成情報を用いて生成する。【００９８】
要求側通信装置１０１は、生成した応答を受信するアドレス（第２のアドレス）を応答側通信装置（第２の通信装置）１０２に応答先指定要求メッセージ（第２の要求メッセージ）に含めて送信する。この応答先指定要求メッセージには、応答側通信装置１０２が応答先アドレスをアドレス生成情報から生成できるように必要な情報を含める。例えば、第２のアドレス生成に重複を回避するために情報αを用いたのであれば、αを含める。ネットワークプレフィックスを付加したのであれば、ネットワークプレフィックスの長さ、及び／またはネットワークプレフィックスの値を含める。【００９９】
（４）応答側通信装置（第２の通信装置）１０２は、応答先指定要求メッセージ（第２の要求メッセージ）を受信し、応答メッセージの送信先に新しいアドレス（第２のアドレス）が指示されている場合には、そのアドレスがアドレス生成情報から生成できるか確認する。必要ならば情報αやネットワークプレフィックスの情報を加えて、アドレスを生成し比較する。【０１００】
アドレス生成情報は、応答側通信装置（第２の通信装置）１０２が記憶しておいてもよい。応答先指定要求メッセージ（第２の要求メッセージ）にアドレス生成情報が含まれていてもよい。ただし、応答側通信装置１０２は自装置が生成したアドレス生成情報であるか確認できる必要がある。そのためにアドレス生成情報を記憶しておいてもよい。また、要求側通信装置（第１の通信装置）１０１のアドレス（第１のアドレス）を用いて生成しておいてもよい。この場合には応答先指定メッセージ（第２の要求メッセージ）の送信元アドレス（第１のアドレス）からアドレス生成情報を生成することができる。また、アドレス生成情報を記憶するのではなく、その生成に用いた情報を記憶しておいてもよい。例えば、アドレス生成情報の生成に秘密鍵を用いた場合にはその秘密鍵を記憶しておく。また例えば、乱数を生成し、その乱数をアドレス生成情報の生成に用いた場合にはその乱数を記憶しておく。乱数の場合には、アドレス生成情報メッセージ（第１の応答メッセージ）に含めて第１の通信装置１０１に送信し、応答先指定要求メッセージ（第２の要求メッセージ）に含めて送信してもらうことも考えられる。この場合には、応答側通信装置１０２は乱数の値を記憶しておく必要はない。【０１０１】
応答先のアドレス（第２のアドレス）がアドレス生成情報から生成できることが確認できた場合には、応答側通信装置１０２は応答先指定応答メッセージ（第２の応答メッセージ）を指示されたアドレス（第２のアドレス）に送信する。つまり応答先アドレス（第２のアドレス）は、攻撃者（第１の通信装置１０１）がターゲットをねらって決めたアドレスではなく、応答側通信装置（第２の通信装置）１０２が生成したアドレス生成情報から作成したアドレスであるため、応答先指定応答メッセージ（第２の応答メッセージ）がターゲットの攻撃に利用される可能性がほとんどないからである。【０１０２】
応答先のアドレス（第２のアドレス）として指定されたアドレスが、アドレス生成情報から生成できなかった場合には、破棄する。または、要求側通信装置（第１の通信装置）１０１の送信元のアドレス（第１のアドレス）にエラーがあったことを通知してもよい。
以上、モバイルＩＰの経路最適化の片方向経路対応ではない場合について説明した。【０１０３】
なお上記とモバイルＩＰの経路最適化の片方向経路対応の場合において、アドレス生成情報要求メッセージ（第１の要求メッセージ）はモバイルＩＰのＨｏＴＩメッセージと、アドレス生成情報メッセージ（第１の応答メッセージ）はモバイルＩＰのＨｏＴメッセージと、応答先指定要求メッセージ（第２の要求メッセージ）は本発明によるＣｏＴＩβメッセージと、応答先指定応答メッセージ（第２の応答メッセージ）は本発明によるＣｏＴβメッセージ、それぞれ対応している。【０１０４】
＜第２の実施の形態＞
第１の実施の形態では図７（３）に示すように、生成したアドレスＣｏＡ（Care-of Address）をＣｏＴＩβメッセージによって通知しているが、第２の実施の形態では、ＣｏＴＩβ／ＣｏＴβメッセージを省略し、生成したアドレスＣｏＡをバインディング更新（ＢＵβ）メッセージによって通知する。図１７Ａ、図１７Ｂは、気付アドレステスト処理を省略した第２の実施の形態におけるホームアドレステスト処理、ＢＵ処理をそれぞれ示す。【０１０５】
図１７Ａに示すホームアドレステスト処理では、モバイルＩＰと同様に、
（１）移動通信装置（ＭＮ）がＨｏＡを送信元アドレスとしてＨｏＴＩメッセージを相手先通信装置（ＣＮ）２に送信し、
（２）相手先通信装置２がＨｏＡ宛にＨｏＴメッセージを送信する。
ホームアドレステスト処理を行うことによって、移動通信装置１がＨｏＡを送信元としてＨｏＴＩメッセージを送信し、ＨｏＡで応答メッセージを受信したことがわかる。【０１０６】
図１７Ｂに示すＢＵ処理では、
（３）移動通信装置１がＨｏＡを送信元アドレスとしてＢＵβメッセージをホームエージェント（ＨＡ）３経由で相手先通信装置（ＣＮ）２に送信し、
（４）相手先通信装置２がＣｏＡ宛にＢＡβメッセージを送信する（直接経路）。【０１０７】
次に、図１８を用いて第２の実施の形態におけるメッセージ処理の概略を説明する。まず、移動通信装置１は、モバイルＩＰのホームアドレステスト処理を行う。具体的には、次のような処理を行う。
＜ホームアドレステスト処理＞
（１）移動通信装置１は相手先通信装置２にＨｏＴＩメッセージを送信する。
（２）相手先通信装置２は通常のモバイルＩＰのホームアドレステスト処理を行う。つまり、以下のようにＨｏＴＩメッセージの送信元アドレスであるＨｏＡ（home address）と、相手先通信装置２の秘密鍵（Kcn）と、相手先通信装置２が決めた乱数nonceを用いて、HMAC_SHA1によるHash計算を行い、Home Keygen Token（以下ではHome Tokenと記す。）を算出する。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
相手先通信装置２は、算出したHome Tokenの値とnonceを呼び出すための識別情報nonce-idを応答メッセージ（ＨｏＴメッセージ）に含めて送信する。【０１０８】
＜ＣｏＡの生成＞
次に、移動通信装置１は、受信したＨｏＴメッセージに含まれる情報を用いてＣｏＡの生成を行う。移動通信装置１は、生成するＣｏＡのネットワークプレフィックスの領域は、変更することができないため、それ以外のホスト識別情報の領域をHome Tokenを用いて生成する。また、他のホストが既にアドレスを使用していて、アドレスの重複が発生した場合に、そのアドレスの衝突を回避するためにデータαを用いてＣｏＡ（Care-of Address）を生成する。
Care-of Address :=
First（64, HMAC_SHA1 （Home Token | α））【０１０９】
＜バインディング更新処理＞
（３）移動通信装置１は、生成したＣｏＡと、ＣｏＡの生成に用いた情報αと、nonce-idとメッセージ認証コード（ＭＡＣ: Message Authentication Code）をＢＵβメッセージに付加して、相手先通信装置２に送信する。ＭＡＣの生成のために、バインディング管理キーKbmを次のように生成する。ＣｏＡの生成ではαを用いているため、KbmとＣｏＡが同一の値になることはない。
Kbm = HMAC_SHA1 （Home Token）【０１１０】
メッセージ認証コードの生成では、ＢＵβメッセージの送信元アドレス（home address）と、宛先アドレス（correspondent node's address）と、メッセージデータ（MH Data）と、生成した鍵データ(Kbm)を用いる。
MAC = First （96, HMAC_SHA1 （Kbm, Mobility Data））
Mobility Data = home address | correspondent | MH Data【０１１１】
＜ＣｏＡの確認とバインディング・キャッシュの設定＞
相手先通信装置２はＢＵβメッセージを受信すると、まず以下のように、Home Tokenの計算を行う。ＢＵβメッセージに含まれているnonce-idからnonceを呼び出す。ＢＵβメッセージの送信元アドレスＨｏＡと、呼び出したnonceと、相手先通信装置２の秘密鍵（Kcn）を用いてHome Tokenを計算する。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
さらに、生成したHome TokenとＢＵβメッセージに含まれる情報αを用いて、ＣｏＡ(Care-of Address)を生成する。
Care-of Address :=
First（64, HMAC_SHA1 （Home Token | α））
生成したＣｏＡがＢＵβメッセージに含まれるＣｏＡと等しい場合には、相手先通信装置２は、応答メッセージをＣｏＡに送信してよいと判断する。【０１１２】
さらに、相手先通信装置２は、メッセージ認証コードを次のように確認する。まず、生成したHome Tokenを用いて鍵データ（Kbm）を生成する。そして生成した鍵データ（Kbm）とメッセージデータ(Mobility Data)からメッセージ認証コード(MAC)を生成し、ＢＵβメッセージに含まれる認証コードと比較する。
Kbm = HMAC_SHA1 (Home Token)
MAC = First （96, HMAC_SHA1 （Kbm, Mobility Data））
Mobility Data = home address | correspondent | MH Data【０１１３】
ここで、相手先通信装置２は、移動通信装置１のＨｏＡとＣｏＡの組のバインディング・キャッシュを登録するが、ＣｏＡ宛に送信して移動通信装置１に届くかどうかを確認していない。ＣｏＡ宛に送信することが、第三の端末に対するリフレクション攻撃とはならないため、相手先通信装置２は攻撃の踏み台に利用されることがない。そのため移動通信装置１が正しくＣｏＡを設定してＢＵβメッセージに設定すれば、ＣｏＡへの到達確認を省略することも可能といえる。また、悪意ある端末がＨｏＴメッセージを盗聴し、ＢＵβメッセージに不正なＣｏＡを設定して相手先通信装置２に送信するという危険に対しては、ＢＵβメッセージの送信元アドレスの改ざんを防ぐことや、盗聴を防ぐネットワーク環境を構築することなどで防ぐことが可能である。アドレスの改ざんを防ぐ方法としてはルータにおいて送信元アドレスをチェックするイングレス・フィルタリングといった技術がある。盗聴を防ぐネットワークとしては、リンクレイヤの暗号化や、ネットワークアクセス時に認証をとり、不特定の端末がネットワークに接続しないようにするなどの方法が考えられる。
（４）相手先通信装置２は、ＢＵβメッセージに対する応答として、ＢＡβメッセージを送信する。【０１１４】
以上が図１８を用いたメッセージ処理の概略の説明である。次に、図１４及び図１５を用いて、第２の実施の形態における相手先通信装置（応答側通信装置）２及び移動通信装置（要求側通信装置）１の動作を説明する。
＜相手先通信装置（応答側通信装置）の構成＞
図１４は相手先通信装置（応答側通信装置）２のメッセージ処理部の構成を示すブロック図である。相手先通信装置２は、次のようなメッセージの送受信を行う。
（１）ＨｏＴＩメッセージを受信し、ＣｏＡ生成情報（Home Token）を含むＨｏＴメッセージを送信する。
（２）ＢＵβメッセージを受信してメッセージ内のメッセージ認証コードを認証し、ＢＡβメッセージを送信する。【０１１５】
（１）のメッセージ送受信処理は、ＭＩＰ ＢＵ/RR処理部１３（及びメッセージ受信部１１、メッセージ 送信部１２）において行う。（２）のメッセージ送受信処理は、片方向ＢＵ/RR拡張処理部１３ａ（及びメッセージ受信部１１、メッセージ送信部１２）において行う。ＨｏＴメッセージの送信処理においてtoken, nonce idをメッセージに付加する場合、Nonce管理部１４及びToken生成部１５よりデータを取得する。Token生成部１５は、Nonce管理部１４よりNonceの値を取得し、受信した要求メッセージから取得したアドレスと鍵データKcnよりTokenの値を計算する。Nonce管理部１４は、Token管理部１４に渡したNonceの値に対応するNonce IDの値をＭＩＰ ＢＵ/RR処理部１３に渡す。Token生成部１５は、要求側通信装置１からの応答先アドレス生成情報の要求に応えてHome tokenを生成しているため、応答先アドレス生成情報生成部として機能している。【０１１６】
ＢＵβメッセージの受信処理において、応答先アドレスの確認処理を行う場合、ＢＵβメッセージに含まれるhome nonce-idをNonce管理部１４に渡し、Nonceの値を取得する。取得したNonceの値とＢＵβメッセージの送信元アドレスであるＨｏＡをToken生成部１５に渡し、Tokenの値を取得する。取得したTokenの値とＢＵβメッセージに含まれる情報αを応答先アドレス確認部２０に渡し応答先アドレス（ＣｏＡ）を生成し、その生成したアドレスとＢＵβメッセージに含まれる応答先アドレスと一致するか比較する。比較する領域は、応答先アドレスからネットワークプレフィックスの領域を除いたホスト識別子の領域である。【０１１７】
さらに、ＢＵβメッセージの受信処理においてメッセージ認証コードの作成と確認（認証）を行う場合、ＢＵβメッセージに含まれるhome nonce-idをNonce管理部１４に渡し、home nonceの値をそれぞれ取得する。取得したNonceの値とＢＵβメッセージ内に含まれるHome AddressをToken生成部１５にそれぞれ渡し、Home Tokenを生成する。取得した２つのtokenをKbm生成部１６に渡し、Kbmを生成する。生成したKbm及び受信したメッセージをメッセージ認証コード（ＭＡＣ）確認部１８に渡し、ＭＡＣの値を計算する。そしてＢＵβメッセージ内に含まれているＭＡＣの値と比較し、一致するかどうかチェックする。ＭＡＣのチェックに成功した場合には、Home AddressとCare-of Addressの対応関係をバインディング・キャッシュ（Binding Cache）１９（及び片方向ＲＯ拡張部１９ａ）に登録する。【０１１８】
＜移動通信装置（要求側通信装置）の構成＞
図１５は移動通信装置（要求側通信装置）１のメッセージ処理部の構成を示すブロック図である。移動通信装置１は、次のようなメッセージの送受信を行う。
（１）ＨｏＴＩメッセージを送信し、ＣｏＡ生成情報（Home Token）を含むＨｏＴメッセージを受信する。
（２）ＣｏＡ生成情報（Home Token）からＣｏＡを生成して、ＣｏＡ及びメッセージ認証コードを含むＢＵβメッセージを送信し、ＢＡβメッセージを受信する。【０１１９】
（１）のメッセージ送受信処理は、ＭＩＰ ＢＵ/RR処理部２３（及びメッセージ受信部２１、メッセージ 送信部２２）において行う。（２）のメッセージ送受信処理は、片方向ＢＵ/RR拡張処理部２３ａにおいて行う。ＨｏＴＩメッセージの送信処理では、Cookie生成部２４により作成したCookieの値をＨｏＴＩメッセージに入れる。メッセージに含めるCookieは、相手先通信装置２が応答メッセージに同じ値を含めて移動通信装置１に返すことになっている。これによって移動通信装置１は、要求メッセージと応答メッセージの対応づけを行うことができる。応答先アドレス生成情報要求部２９は、（１）のＨｏＴＩメッセージ送信で要求し、また、応答先アドレス生成部３０は、（２）においてＣｏＡ生成情報（Home Token）からＣｏＡを生成する。【０１２０】
ＨｏＴＩメッセージの送信処理では、Home Tokenを要求する処理が、応答先アドレス生成情報（Home Token）を応答側通信装置２に要求するための処理であり、応答先アドレス生成情報要求部２９が存在していると見ることができる。ＨｏＴメッセージの受信処理では、移動通信装置１はＨｏＴメッセージに含まれるHome Tokenを応答先アドレス生成部３０に渡して、応答先アドレス（ＣｏＡ）を生成する。【０１２１】
ＢＵβメッセージの送信処理では、応答先アドレス生成部３０より作成した応答先アドレスと応答先アドレス生成に用いた情報αを取得し、ＢＵβメッセージに付加する。また、ＢＵβメッセージ送信処理においては、受信したＨｏＴメッセージから取得したHome TokenをKbm生成部２５に渡し、Kbmを生成する。さらに送信するＢＵβメッセージと作成したKbmをメッセージ認証コード生成部２６に渡し、メッセージ認証コードを作成する。作成したメッセージ認証コードはＢＵβメッセージに付加し送信する。Binding Cache管理部２７（及び片方向ＲＯ拡張部２８）は、相手先通信装置２のBinding Cache１９を管理する。【０１２２】
なお、上記実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されてもよいし、一部又はすべてを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブ ル・プロセッサーを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオ技術の適用などが可能性としてあり得る。
【産業上の利用可能性】
【０１２３】
本発明は、データやメッセージの送信側が受信側からの送信要求内の宛先アドレスを確認して、不正な第３者からの送信要求による攻撃を防止することに利用できる。また、片方向経路及び非対称経路においても従来技術と同等程度に安全性を保ちながら、経路最適化を実現可能とするためのバインディング更新前処理などに利用することができる。
【図１】
2009011120.tif 000003
【図２】
2009011120.tif 000004
【図３】
2009011120.tif 000005
【図４】
2009011120.tif 000006
【図５Ａ】
2009011120.tif 000007
【図５Ｂ】
2009011120.tif 000008
【図５Ｃ】
2009011120.tif 000009
【図６】
2009011120.tif 000010
【図７】
2009011120.tif 000011
【図８】
2009011120.tif 000012
【図９】
2009011120.tif 000013
【図１０】
2009011120.tif 000014
【図１１】
2009011120.tif 000015
【図１２】
2009011120.tif 000016
【図１３】
2009011120.tif 000017
【図１４】
2009011120.tif 000018
【図１５】
2009011120.tif 000019
【図１６】
2009011120.tif 000020
【図１７Ａ】
2009011120.tif 000021
【図１７Ｂ】
2009011120.tif 000022
【図１８】
2009011120.tif 000023
【手続補正書】
【提出日】平成22年1月14日(2010.1.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第２の通信装置が、第１の通信装置に対して前記第１の通信装置が新しいアドレスを生成するためのアドレス生成情報を送信するステップと、
前記第１の通信装置が前記第２の通信装置から受信した前記アドレス生成情報に基づいて前記第１の通信装置の前記アドレスを生成して前記第２の通信装置に送信するステップと、
前記第２の通信装置が前記第１の通信装置から受信した前記第１の通信装置の前記アドレスを、前記第１の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較するステップとを、
備えたアドレス生成方法。
【請求項２】
前記第１及び第２の通信装置はそれぞれ、移動通信装置とその相手先通信装置であり、
前記第１の通信装置の前記アドレスは、前記移動通信装置と前記相手先通信装置の間で経路最適化を行うステップを更に有することを特徴とする請求項１に記載のアドレス生成方法。
【請求項３】
前記アドレス生成情報は、前記経路最適化ステップにおける前記相手先通信装置から前記移動通信装置に送信するホームアドレステスト応答メッセージ内に含まれるホームトークンであることを特徴とする請求項２に記載のアドレス生成方法。
【請求項４】
第２の通信装置が、第１の通信装置に対して前記第１の通信装置が新しいアドレスを生成するためのアドレス生成情報を送信するユニットと、
前記第１の通信装置が前記第２の通信装置から受信した前記アドレス生成情報に基づいて前記第１の通信装置の前記アドレスを生成して前記第２の通信装置に送信するユニットと、
前記第２の通信装置が前記第１の通信装置から受信した前記第１の通信装置の前記アドレスを、前記第１の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較するユニットとを、
備えたアドレス生成システム。
【請求項５】
新しいアドレスを生成するためのアドレス生成情報を相手先通信装置から受信するユニットと、
前記アドレス生成情報に基づいて前記アドレスを生成し、前記相手先通信装置に対して前記相手先通信装置が前記アドレス生成情報に基づいて生成したアドレスと比較するための情報を送信するユニットとを備えた通信装置。
【請求項６】
一方の通信装置に対して、前記一方の通信装置の新しいアドレスを生成するためのアドレス生成情報を送信するユニットと、
前記一方の通信装置が前記アドレス生成情報に基づいて前記一方の通信装置のアドレスを生成して送信した場合、前記アドレスを受信して、前記一方の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較するユニットとを、
備えた相手先通信装置。
【請求項７】
第２の通信装置が、第１の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを前記第１の通信装置の第１のアドレスに送信するアドレス生成情報送信ステップと、
前記第１の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答メッセージ送信先として指示する応答先指定要求メッセージを前記第１のアドレスから前記第２の通信装置に送信する応答先指定要求メッセージ送信ステップと、
前記第２の通信装置が前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記第１の通信装置の前記第２のアドレスに送信する応答先指定応答メッセージ送信ステップとを、
有することを特徴とする通信方法。
【請求項８】
前記アドレス生成情報が前記第２の通信装置のみが保持している秘密情報と前記第２の通信装置が一定時間間隔で生成する乱数から生成されることを特徴とする請求項７に記載する通信方法。
【請求項９】
前記アドレス生成情報が、モバイルＩＰで経路最適化を行う際のバインディング処理に使用されるホームトークンであることを特徴とする請求項８に記載する通信方法。
【請求項１０】
前記第２のアドレスが前記第１の通信装置の受信専用の片方向経路のアドレスであることを特徴とする請求項７に記載する通信方法。
【請求項１１】
第２の通信装置が、第１の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを第１の通信装置の第１のアドレスに送信するアドレス生成情報送信ユニットと、
前記第１の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答メッセージ送信先として指示する応答先指定要求メッセージを前記第１のアドレスから前記第２の通信装置に送信する応答先指定要求メッセージ送信ユニットと、
前記第２の通信装置が前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記第１の通信装置の前記第２のアドレスに送信する応答先指定応答メッセージ送信ユニットとを、
有することを特徴とする通信システム。
【請求項１２】
第２のアドレスを生成するために相手先通信装置によって作成されたアドレス生成情報を含む第１のアドレス宛に送信されたアドレス生成情報メッセージを受信するユニットと、
受信した前記アドレス生成情報メッセージの前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答先として指定する応答先指定要求メッセージを前記第１のアドレスから前記相手先通信装置に送信するユニットと、
前記相手先通信装置が前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、前記相手先通信装置から前記第２のアドレスに送信された応答先指定応答メッセージを受信するユニットとを備えた通信装置。
【請求項１３】
一方の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを前記一方の通信装置の第１のアドレスに送信するユニットと、
前記アドレス生成情報メッセージを受信した前記一方の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成し、前記第２のアドレスを応答先として指定する前記一方の通信装置から送信された応答先指定要求メッセージを受信するユニットと、
前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記通信装置の前記第２のアドレスに送信するユニットとを備えた相手先通信装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正な第３者からの送信要求による攻撃を防止するアドレス生成方法、アドレス生成システム、通信装置に関する。
本発明は特に、アドレステスト要求側通信装置が複数のアドレスを持ち、要求メッセージ内に応答メッセージの送信先を含めることができ、要求メッセージを送信する送信元アドレスと、その要求メッセージに対する応答メッセージの受信アドレスとが異なる場合に、不正な第３者からの送信要求による攻撃を防止する通信方法、通信システム、通信装置及び相手先通信装置に関する。
【背景技術】
【０００２】
従来、ＩＰネットワークを利用したプロトコルでは、メッセージやデータなどを要求する要求側通信装置から応答側通信装置に要求メッセージを送信し、応答側通信装置から要求側通信装置に応答メッセージを送信する場合、要求メッセージの送信元アドレスと応答メッセージの送信先アドレスとは同じアドレスであることが普通であった。しかしながら、一つの通信装置が複数の通信用インタフェースをもち、それぞれの通信インタフェースに別のアドレスを割り当てられることや、一つの通信用インタフェースであっても複数のアドレスを割り当てられるといった使用方法が用いられるようになっている。このような状況では、要求メッセージの送信元アドレスと、それに対する応答メッセージの送信先アドレスが異なるという通信方法も利用される機会が多くなると考えられる。
【０００３】
また、通信網と放送網の相互利用が進んだ場合、双方向通信の可能な通信網経路と、片方向通信のみ可能な放送網経路が混在する環境が考えられる。この場合、片方向通信のみ可能な経路を効果的に活用しようとしたとき、その片方向経路ではどちらか一方向にしかメッセージを流せないため、要求メッセージと応答メッセージの両方が同じ経路を流れることができず、要求メッセージと応答メッセージのどちらか一方だけが、この片方向経路を流れるという状況が発生し得る。つまり、要求メッセージの送信元アドレスと応答メッセージの送信先アドレスが異なる状況が発生し得る。
【０００４】
要求メッセージの送信元アドレスと応答メッセージの送信先アドレスが異なる場合に問題となることは、サービス妨害攻撃（Denial of Service Attack）に利用される可能性があることである。特に、要求メッセージ内に応答メッセージの送信先アドレスを含めるという方法をとった場合、攻撃者は、ターゲットのアドレスを要求メッセージの送信元アドレスにセットして、応答側通信装置に要求メッセージを送信すれば、応答側通信装置からターゲットに対して、ターゲットにとっては不要なメッセージを送りつけることが容易に可能となる。
【０００５】
本発明は、この課題を解決するための技術である。本明細書では、特にモバイルＩＰの経路最適化（下記の非特許文献１）を片方向経路で使用できるように拡張した場合を例にして、従来技術と従来技術では解決できなかった課題とを詳細に説明する。
＜モバイルＩＰのバインディング更新処理とバインディング更新前処理＞
従来、通信装置が移動しても移動前と同じＩＰアドレスを使い続けることができる技術としてモバイルＩＰが存在する。モバイルＩＰでは、ホームエージェント（home agent：以下、ＨＡとも言う）が移動通信装置（mobile node：以下、ＭＮとも言う）のホームアドレス（home address：以下、ＨｏＡとも言う）宛のパケットを受信し、移動通信装置の気付アドレス（care-of address：以下、ＣｏＡとも言う。また本明細書内では移動先アドレスとも呼ぶ）に転送する。このため、移動通信装置は移動に伴うアドレス変更によらず、ホームアドレスを用いた通信を継続できる。
【０００６】
また、パケットがホームエージェントを経由することによって移動通信装置と相手先通信装置（correspondent node：以下、ＣＮとも言う）の通信経路が遠回りになることを改善するために、移動通信装置と相手先通信装置の通信経路を直接結ぶ経路最適化（Route Optimization）技術が存在する。この経路最適化技術は、相手先通信装置に移動通信装置のホームアドレスと気付アドレスの対応関係を記憶させることによって、気付アドレスを用いて通信することを特徴とする。この相手先通信装置に移動通信装置のホームアドレスと気付アドレスの対応関係を記憶させる処理は、バインディング更新処理（Binding Update：以下、ＢＵとも言う）と呼ばれている。
【０００７】
相手先通信装置に対するバインディング更新処理では、ホームエージェントに対するバインディング更新処理とは異なり、バインディング更新前処理（Return Routability Procedure）を必要としている。ホームエージェントと移動通信装置との間では、信頼関係をあらかじめ築いておくことができるため、このバインディング更新前処理を必要としない。この理由は、ホームエージェントに対するバインディング更新処理においては、移動通信装置が、ホームアドレスに対する新しい気付アドレスをホームエージェントに通知したとき、ホームエージェントは事前に確立しておいた信頼関係（IPsec ＳＡ（Security Association）など）によって移動通信装置からのバインディング更新要求であることを確認することができるからである。
【０００８】
一方、相手先通信装置の場合、バインディング更新処理を行う前に、すべての接続可能性のある通信装置に対して信頼関係を確立しておくことは困難である。もし、信頼関係がない状態で相手先通信装置がバインディング更新の要求に従ってしまうならば、移動通信装置に成りすました攻撃が容易になる。これを防ぐ技術がバインディング更新前処理（Return Routability Procedure）である。バインディング更新前処理では、ホームアドレステスト処理（Home Test；以下、HoTともいう）と気付アドレステスト処理（Care-of Test；以下、CoTともいう）を行う。ホームアドレステストによってホームアドレスで送受信可能なこと、気付アドレステストを利用して気付アドレスで送受信可能なことを確認することによって、不正なバインディング更新処理を防いでいる。上記に従来技術として説明した、モバイルＩＰ、経路最適化（Route Optimization）、バインディング更新前処理（Return Routability Procedure）については、ＲＦＣ３７７５（下記の非特許文献１）に記載されている。また、バインディング更新前処理の設計思想については、ＲＦＣ４２２５（下記の非特許文献２）に記載されている。
【非特許文献１】RFC3775 "Mobility Support in IPv6"
【非特許文献２】RFC4225 "Mobile IP Version 6 Route Optimization Security Design Background"
【発明の開示】
【発明が解決しようとする課題】
【０００９】
＜モバイルＩＰの経路最適化の片方向経路対応＞
しかしながら、モバイルＩＰの経路最適化技術（Route Optimization）は、非対称ネットワークでは使えなかった。経路最適化（Route Optimization）を行うためには、双方向の経路到達性（Reachability）が必要であったため、衛星通信やデジタルテレビ放送などのような非対称な片方向だけデータが流れる経路では、バインディング更新処理が行えなかった。
【００１０】
例えば移動通信装置から相手先通信装置の方向にだけ通信可能な場合、ＢＵ（Binding Update）メッセージは相手先通信装置に届くが、ＢＡ（Binding Acknowledgement）メッセージは移動通信装置に届かない。そのため、移動通信装置は相手先通信装置に対してバインディング更新処理を行うことができない。また、気付アドレステスト処理を開始するためのＣｏＴＩ（Care-of Test Init）メッセージは相手先通信装置に届くが、ＣｏＴ（Care-of Test）メッセージは移動通信装置に届かないため、バインディング更新前処理を行うことができないといった問題があった。逆に、相手先通信装置から移動通信装置の方向にだけ通信可能な場合、ＢＵメッセージが相手先通信装置に届かないため、バインディング更新処理を行うことができない。また、ＣｏＴＩメッセージが相手先通信装置に届かないため、バインディング更新前処理を行うことができないといった問題があった。このように片方向だけ通信可能な経路の場合には、バインディング更新前処理、バインディング更新処理を行うことができなかった。そのために通信可能な片方向経路を利用して経路最適化（Route Optimization）を行うことができなかった。
【００１１】
ここで、移動通信装置から相手先通信装置の方向にのみ片方向通信可能な場合と、相手先通信装置から移動通信装置の方向にのみ片方向通信可能な場合について、それぞれ下記の解法（１）、（２）が考えられる。
【００１２】
（１）移動通信装置から相手先通信装置の方向にのみ片方向通信可能な場合では、ホームアドレステスト処理の結果から生成される鍵を用いて、気付アドレステスト処理の要求メッセージＣｏＴＩ（以下ＣｏＴＩαと呼ぶ）に認証コードを付加する。この要求メッセージＣｏＴＩαを受信した相手先通信装置は、認証コードを確認することによって、この要求メッセージＣｏＴＩαの送信者がホームアドレステスト処理を行ったことを確認する。ホームアドレステスト処理は、ホームアドレス（ＨｏＡ）で送受信を行ったことを確認するためのテストである。相手先通信装置は、ホームアドレス宛に送信したメッセージを移動通信装置が正しく受信したことを、この認証コードによって確認できる。相手先通信装置は、気付アドレステスト処理の要求メッセージＣｏＴＩαを受信し、応答メッセージＣｏＴ（以下ＣｏＴαと呼ぶ）を返信する。要求メッセージＣｏＴＩαの送信元アドレスは、気付アドレスＣｏＡであり、応答メッセージの送信先アドレスはホームアドレスＨｏＡである。相手先通信装置は、要求メッセージの送信元アドレスＣｏＡと応答メッセージの送信先アドレスＨｏＡが異なるが、ホームアドレスＨｏＡでの送受信を確認するホームアドレステスト処理の結果を示す認証コードが要求メッセージに付加されていることから、応答メッセージＣｏＴαをホームアドレスＨｏＡに送信しても安全であると判断することができる。
【００１３】
（２）次に、逆向きとなる相手先通信装置から移動通信装置の方向に片方向通信可能な場合には、上記の場合と同様、ホームアドレステスト処理の結果から生成される鍵を用いて、気付アドレステスト処理の要求メッセージＣｏＴＩ（以下ＣｏＴＩβと呼ぶ）に認証コードを付加し、さらに応答メッセージＣｏＴ（以下ＣｏＴβと呼ぶ）に要求メッセージの送信元アドレスを付加する。要求メッセージＣｏＴＩβの送信元アドレスはホームアドレスＨｏＡであり、応答メッセージＣｏＴβの送信先アドレスは気付アドレスＣｏＡである。要求メッセージＣｏＴＩβを受信した相手先通信装置は、要求メッセージの送信元アドレスがホームアドレスＨｏＡであることを確認し、さらに要求メッセージＣｏＴＩβに含まれる認証コードから、確かにホームアドレスＨｏＡで送受信を行っている端末から送信された要求メッセージＣｏＴＩであることを確認する。この確認したホームアドレスＨｏＡを応答メッセージＣｏＴβに付加し、気付アドレスＣｏＡに送信する。もし、他端末を攻撃しようと第三の端末（ターゲット）のアドレスを気付アドレスＣｏＡとして指定して、気付アドレステスト処理の応答メッセージＣｏＴβを第三の端末（ターゲット）に送信させたとしても、第三の端末（ターゲット）は即座に攻撃者のアドレスがＨｏＡであることを知ることができる。攻撃者のアドレスＨｏＡは、ホームアドレステスト処理により攻撃者が送受信したことが確認できているため、攻撃者を特定することが容易にでき、このためリフレクション攻撃に利用することを抑止する効果があると考えられる。
【００１４】
上記の解法（１）、（２）は、不正なバインディング・キャッシュの設定を防ぎ、片方向経路においても経路最適化を可能にする。しかしながら、解法（２）では、応答メッセージＣｏＴβが攻撃に利用される可能性がある。２つの片方向経路のうち問題がないのは、片方向経路の向きが移動通信装置から相手先通信装置の向きの場合である。この場合には、応答側通信装置である相手先通信装置は、応答先アドレスを認証し確認してから応答メッセージを送信している。応答先アドレスはホームアドレステスト処理によって要求者に届くことが確認されている。
【００１５】
一方、片方向経路の向きが逆の相手先通信装置から移動通信装置の向きの場合には、応答先アドレスの確認が行えていない。解法（２）では、応答メッセージＣｏＴβの中に要求メッセージＣｏＴＩβのアドレスを含むことによって、リフレクション攻撃に利用することを抑止しようと試みている。つまり、応答メッセージＣｏＴβを送信する前に防止することができていない。
【００１６】
＜モバイルＩＰの経路最適化の片方向経路対応以外の場合の課題＞
上記ではモバイルＩＰの経路最適化の片方向経路対応の場合について説明したが、上述した課題はそれ以外の場合にも発生しうる。つまり、第１の通信装置が第２の通信装置に要求メッセージを送信し、その要求メッセージの中で応答メッセージの送信先を指示している場合である。第２の通信装置が指示された要求メッセージ内の応答メッセージ送信先に応答メッセージを送信したとき、その指示された応答メッセージの送信先に攻撃対象のターゲットが存在し、第２の通信装置は攻撃者（第１の通信装置）の指示に従ってターゲットに不要なメッセージを送信してしまう。ターゲットにされた端末は帯域を無駄に消費され、サービス妨害の被害を受ける。第２の通信装置はターゲットを攻撃するつもりはなかったにもかかわらず、攻撃者に利用されターゲットへの攻撃を助けてしまうという状況が発生しうる。
【００１７】
本発明は上記従来技術の問題点に鑑み、データやメッセージの送信側が受信側からの送信要求内の宛先アドレスを確認して、不正な第３者からの送信要求による攻撃を防止することができるアドレス生成方法、アドレス生成システム、通信装置を提供することを目的とする。
本発明はまた、上記従来技術の問題点に鑑みてなされたものであり、不正な第３者からの送信要求に対して従来技術と同等程度に安全性を保ちながら、経路最適化を可能とするバインディング更新前処理を行うことができる通信方法、通信システム、通信装置及び相手先通信装置を提供することを目的とする。
本発明はまた、アドレステスト要求側通信装置が複数のアドレスを持ち、要求メッセージ内に応答メッセージの送信先を含めることができ、要求メッセージを送信する送信元アドレスと、その要求メッセージに対する応答メッセージの受信アドレスとが異なる場合に、不正な第３者からの送信要求による攻撃を防止することができる通信方法、通信システム、通信装置及び相手先通信装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明のアドレス生成方法は上記目的を達成するために、第２の通信装置が、第１の通信装置に対して前記第１の通信装置が新しいアドレスを生成するためのアドレス生成情報を送信するステップと、
前記第１の通信装置が前記第２の通信装置から受信した前記アドレス生成情報に基づいて前記第１の通信装置の前記アドレスを生成して前記第２の通信装置に送信するステップと、
前記第２の通信装置が前記第１の通信装置から受信した前記第１の通信装置の前記アドレスを、前記第１の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較するステップとを、
備えた。
この構成により、データやメッセージの送信側が受信側からの送信要求内の宛先アドレスを確認して、不正な第３者からの送信要求による攻撃を防止することができる。
【００１９】
また、前記第１及び第２の通信装置はそれぞれ、移動通信装置とその相手先通信装置であり、
前記第１の通信装置の前記アドレスは、前記移動通信装置と前記相手先通信装置の間で経路最適化を行うステップを更に有することを特徴とする。
この構成により、不正な第３者からの送信要求に対して従来技術と同等程度に安全性を保ちながら、経路最適化を可能とするバインディング更新前処理を行うことができる。また、アドレステスト要求側通信装置が複数のアドレスを持ち、要求メッセージを送信する送信元アドレスと、その要求メッセージに対する応答メッセージの受信アドレスとが異なり、要求メッセージ内に応答メッセージの送信先を含む場合に、不正な第３者からの送信要求による攻撃を防止することができる。
【００２０】
また、前記アドレス生成情報は、前記経路最適化ステップにおける前記相手先通信装置から前記移動通信装置に送信するホームアドレステスト応答メッセージ内に含まれるホームトークンであることを特徴とする。
この構成により、経路最適化を可能とするバインディング更新前処理を行う場合、特別なアドレス生成情報を付加することなく、移動通信装置の気付アドレスを生成することができる。
【００２１】
また、本発明のアドレス生成システムは上記目的を達成するために、第２の通信装置が、第１の通信装置に対して前記第１の通信装置が新しいアドレスを生成するためのアドレス生成情報を送信するユニットと、
前記第１の通信装置が前記第２の通信装置から受信した前記アドレス生成情報に基づいて前記第１の通信装置の前記アドレスを生成して前記第２の通信装置に送信するユニットと、
前記第２の通信装置が前記第１の通信装置から受信した前記第１の通信装置の前記アドレスを、前記第１の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較するユニットとを、
備えた構成とした。
【００２２】
また、本発明の通信装置は上記目的を達成するために、新しいアドレスを生成するためのアドレス生成情報を相手先通信装置から受信するユニットと、
前記アドレス生成情報に基づいて前記アドレスを生成し、前記相手先通信装置に対して前記相手先通信装置が前記アドレス生成情報に基づいて生成したアドレスと比較するための情報を送信するユニットとを備えた構成とした。
【００２３】
また、本発明の相手先通信装置は上記目的を達成するために、一方の通信装置に対して、前記一方の通信装置の新しいアドレスを生成するためのアドレス生成情報を送信するユニットと、
前記一方の通信装置が前記アドレス生成情報に基づいて前記一方の通信装置のアドレスを生成して送信した場合、前記アドレスを受信して、前記一方の通信装置に送信した前記アドレス生成情報に基づいて生成したアドレスと比較するユニットとを、
備えた構成とした。
【００２４】
本発明の通信方法は上記目的を達成するために、第２の通信装置が、第１の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを前記第１の通信装置の第１のアドレスに送信するアドレス生成情報送信ステップと、
前記第１の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答メッセージ送信先として指示する応答先指定要求メッセージを前記第１のアドレスから前記第２の通信装置に送信する応答先指定要求メッセージ送信ステップと、
前記第２の通信装置が前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記第１の通信装置の前記第２のアドレスに送信する応答先指定応答メッセージ送信ステップとを、
有することを特徴とする。
【００２５】
また、前記アドレス生成情報が前記第２の通信装置のみが保持している秘密情報と前記第２の通信装置が一定時間間隔で生成する乱数から生成されることを特徴とする。このため、第１の通信装置が第２のアドレスがどのようなアドレスになるか予測できない。これによってＤｏＳ攻撃を行うことがさらに不可能になる。
また、前記アドレス生成情報が、モバイルＩＰで経路最適化を行う際のバインディング処理に使用されるホームトークンであることを特徴とする。
また、前記第２のアドレスが前記第１の通信装置の受信専用の片方向経路のアドレスであることを特徴とする。
【００２６】
本発明の通信システムは上記目的を達成するために、第２の通信装置が、第１の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを第１の通信装置の第１のアドレスに送信するアドレス生成情報送信ユニットと、
前記第１の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答メッセージ送信先として指示する応答先指定要求メッセージを前記第１のアドレスから前記第２の通信装置に送信する応答先指定要求メッセージ送信ユニットと、
前記第２の通信装置が前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記第１の通信装置の前記第２のアドレスに送信する応答先指定応答メッセージ送信ユニットとを、
有することを特徴とする。
【００２７】
また、本発明の通信装置は上記目的を達成するために、第２のアドレスを生成するために相手先通信装置によって作成されたアドレス生成情報を含む第１のアドレス宛に送信されたアドレス生成情報メッセージを受信するユニットと、
受信した前記アドレス生成情報メッセージの前記アドレス生成情報に基づいて前記第２のアドレスを生成して、前記第２のアドレスを応答先として指定する応答先指定要求メッセージを前記第１のアドレスから前記相手先通信装置に送信するユニットと、
前記相手先通信装置が前記応答先指定要求メッセージ内の前記第２のアドレスを、前記アドレス生成情報に基づいて生成されるアドレスと比較して、前記相手先通信装置から前記第２のアドレスに送信された応答先指定応答メッセージを受信するユニットとを備えた構成とした。
【００２８】
また、本発明の相手先通信装置は上記目的を達成するために、一方の通信装置の第２のアドレスを生成するためのアドレス生成情報を作成し、前記アドレス生成情報を含むアドレス生成情報メッセージを前記一方の通信装置の第１のアドレスに送信するユニットと、
前記アドレス生成情報メッセージを受信した前記一方の通信装置が前記アドレス生成情報メッセージ内の前記アドレス生成情報に基づいて前記第２のアドレスを生成し、前記第２のアドレスを応答先として指定する前記一方の通信装置から送信された応答先指定要求メッセージを受信するユニットと、
前記応答先指定要求メッセージを受信して、前記応答先指定要求メッセージ内の前記第２のアドレスを前記アドレス生成情報に基づいて生成されるアドレスと比較して、応答先指定応答メッセージを前記通信装置の前記第２のアドレスに送信するユニットとを備えた構成とした。
【発明の効果】
【００２９】
本発明によれば、データやメッセージの送信側が受信側からの送信要求内の宛先アドレスを確認して、不正な第３者からの送信要求による攻撃を防止することができる。
また、不正な第３者からの送信要求に対して従来技術と同等程度に安全性を保ちながら、経路最適化を可能とするバインディング更新前処理を行うことができる。
また、アドレステスト要求側通信装置が複数のアドレスを持ち、要求メッセージを送信する送信元アドレスと、その要求メッセージに対する応答メッセージの受信アドレスとが異なり、要求メッセージ内に応答メッセージの送信先を含む場合に、不正な第３者からの送信要求による攻撃を防止することができる。
【発明を実施するための最良の形態】
【００３０】
以下、図面を参照して本発明の実施の形態について説明する。
＜第１の実施の形態＞
本技術は、移動通信装置（ＭＮ）が移動先でもホームエージェント（ＨＡ）に対しては双方向の通信が可能であり、かつ通信相手（ＣＮ）に対してはＣＮからＭＮの方向の片方向のみの通信が可能である場合に、ＣＮからＭＮの向きの片方向経路を有効に利用可能にする。図１に示すように、ホームエージェント３と相手先通信装置２の間と移動通信装置１とホームエージェント３の間の経路５、４は、双方向に通信可能な経路であるが、相手先通信装置１と移動通信装置２の間の経路は片方向だけ通信可能な経路６である。その方向は、相手先通信装置２から移動通信装置１の向きだけデータが流れることができる。移動通信装置１から相手先通信装置２にメッセージを送信する場合には、移動通信装置１はホームエージェント３を介してメッセージを送信する必要がある。
【００３１】
従来技術のモバイルＩＰ（Mobile IPv6）では、ＭＮ１とＣＮ２の間の経路が双方向に通信可能でなければ経路最適化を行うことができなかった。つまり、必ず遠回りとなるＨＡ３経由でなければデータの通信ができなかった。本技術は、このようなＣＮ３とＭＮ１の間の経路が片方向の経路６の場合であっても、ＣＮ３からＭＮ１にパケットを送信する場合に、ＣＮ３はＨｏＡ宛ではなくＣｏＡ宛にデータを送信するようにバインディング・キャッシュの設定を可能にする。
【００３２】
なお、以下ではＭＮ１が移動ノードでＨＡ３が存在する場合について説明するが、例えば図２に示すようにアドレス生成情報要求側の通信装置１ａがマルチインタフェースを持つ通信装置で、双方向な通信経路４ａ（携帯電話網、ＷＬＡＮ、ＬＡＮなど）に接続可能なインタフェースと、片方向な通信経路６ａ（放送網など）からデータを受信するインタフェースを持つ場合にも同様の技術を用いることが可能である。図２では、要求側の通信装置１ａは、双方向に通信可能なアドレスAddr1（モバイルＩＰの場合のＨｏＡに相当）と、受信のみ可能なアドレスAddr2（モバイルＩＰの場合のＣｏＡに相当の両方を持っている。
【００３３】
モバイルＩＰの経路最適化を行うと、ＭＮ１はＣＮ２から片方向経路６でデータを受信できる。モバイルＩＰの経路最適化では、ＭＮ１はＣＮ２にバインディング・キャッシュを設定する。このバインディング・キャッシュには、ＨｏＡとＣｏＡがともにＭＮのアドレスであることと、ＣＮ２にＨｏＡではなくＣｏＡにデータを送信するように記載されている。モバイルＩＰの経路最適化では、このバインディング・キャッシュを攻撃者に不正に設定されないように工夫を施している。しかし、その工夫はＭＮ１とＣＮ２の間が双方向通信可能な経路の場合にしか使うことができない方法である。モバイルＩＰが採用している「不正にバインディング・キャッシュを設定されないための方法」は図４で後述する。
【００３４】
まず、バインディング・キャッシュが不正に設定された場合にどうなるか、図３を用いて説明する。図３のアドレス生成情報応答側の通信装置２ａを、映像データサーバのような大量のデータを送信するサーバと想定してみる。攻撃者７がネットワーク５ａを介して通信装置２ａに対して、自身のアドレス（ＨｏＡ）宛のパケットをターゲット１ｂのアドレス（ＣｏＡ）に送信するように、不正にバインディング・キャッシュを設定したとする。攻撃者７が通信装置２ａにデータの送信を要求すれば、通信装置２ａはバインディング・キャッシュの設定に従って、ターゲット１ｂ（ＣｏＡあて）に大量のデータを送りつける。このように攻撃者７は、応答側通信装置２ａを用いてターゲット１ｂにサービス妨害攻撃（ＤｏＳ攻撃）を容易に行うことが可能となる。
【００３５】
バインディング・キャッシュの不正な設定を防ぐ方法として、モバイルＩＰで採用している方法を図４に示す。モバイルＩＰ（ＭＩＰｖ６）ではＨｏＡとＣｏＡが正しくＭＮ１のアドレスであることをそれぞれ確認するホームアドレステスト処理と気付アドレステスト処理を行う。ホームアドレステスト処理では、
（１）移動通信装置（ＭＮ）１がＨｏＡを送信元アドレスとしてＨｏＴＩメッセージを相手先通信装置（ＣＮ）２に送信し、
（２）相手先通信装置２からＨｏＡ宛にＨｏＴメッセージを送信する。
ホームアドレステスト処理を行うことによって移動通信装置１がＨｏＡを送信元としてメッセージを送信し、ＨｏＡで応答メッセージを受信したことが分かる。
【００３６】
気付アドレステスト処理では、
（３）移動通信装置（ＭＮ）１がＣｏＡを送信元アドレスとしてＣｏＴＩメッセージを直接経路で相手先通信装置（ＣＮ）２に送信し、
（４）相手先通信装置２からＣｏＡ宛にＣｏＴメッセージを直接経路で送信する。
気付アドレステスト処理を行うことによって移動通信装置がＣｏＡを送信元としてメッセージを送信し、ＣｏＡで応答メッセージを受信したことが分かる。
（５）移動通信装置１は、ホームアドレステスト処理と気付アドレステスト処理の結果をＢＵメッセージに含めて相手先通信装置２に直接経路で送信する。ＢＵメッセージはＣｏＡを送信元アドレスとして送出される。
（６）通信相手装置２は、ＢＵメッセージに含まれるホームアドレステスト処理と気付アドレステスト処理の結果を確認（認証）し、移動通信装置１がＨｏＡとＣｏＡの両方で通信可能であることを確認する。相手先通信装置２はＢＵメッセージの認証後、移動通信装置１のバインディング・キャッシュを設定し、ＢＡメッセージを応答として直接経路で送信する。
以上がモバイルＩＰの経路最適化のためのバインディング・キャッシュ設定の処理である。
【００３７】
しかしながら、移動通信装置１と相手先通信装置２の間の直接の経路が、片方向のみ通信可能な経路である場合には、モバイルＩＰのバインディング更新方法は用いることができない。片方向の向きとして、相手先通信装置２から移動通信装置１の向きだけ通信可能な場合、ＣｏＴメッセージとＢＡメッセージは流れることができるが、ＣｏＴＩメッセージとＢＵメッセージは流れることができない。そこで、図５Ｂ、図５Ｃに示すようにＣｏＴＩメッセージ及びＢＵメッセージを、ＨｏＡを送信元アドレスにしてホームエージェント３経由で送信する方法が考えられる。以下では、ホームエージェント３経由で送信するＣｏＴＩメッセージ、ＢＵメッセージをそれぞれＣｏＴＩβメッセージ、ＢＵβメッセージと呼ぶ。またこれらの要求メッセージの応答メッセージをそれぞれＣｏＴβメッセージ、ＢＡβメッセージと呼ぶ。
【００３８】
図５Ａに示すホームアドレステスト処理では、モバイルＩＰと同様に
（１）移動通信装置（ＭＮ）がＨｏＡを送信元アドレスとしてＨｏＴＩメッセージを相手先通信装置（ＣＮ）２に送信し、
（２）相手先通信装置２がＨｏＡ宛にＨｏＴメッセージを送信する。
ホームアドレステスト処理を行うことによって移動通信装置１がＨｏＡを送信元としてＨｏＴＩメッセージを送信し、ＨｏＡで応答メッセージを受信したことが分かる。
【００３９】
図５Ｂに示す気付アドレステスト処理（β）では、
（３）移動通信装置１がＣｏＡを送信元アドレスとしてＣｏＴＩβメッセージをホームエージェント（ＨＡ）３経由で相手先通信装置（ＣＮ）２に送信し、
（４）相手先通信装置２がＣｏＡ宛にＣｏＴβメッセージを送信する（直接経路）。
気付アドレステストを行うことによって移動通信装置１がＨｏＡを送信元としてメッセージを送信し、ＣｏＡで応答メッセージを受信したことが分かる。
【００４０】
次いで図５Ｃに示すように、
（５）移動通信装置１はホームアドレステスト処理と気付アドレステスト処理（β）を行うと、その結果をＢＵβメッセージに含めて相手先通信装置２にＨＡ３経由で送信する。（６）相手先通信装置２は、それぞれのテスト結果を確認し、ＣｏＡに送信しても移動通信装置が受信していることを確かめ、バインディング・キャッシュを設定する。そして相手先通信装置２は、応答としてＢＡβメッセージを直接経路で移動通信装置１に送信する。
【００４１】
この方法によって、相手先通信装置２に不正なバインディング・キャッシュが設定されることを防止することができる。また、ＢＵβメッセージの送信元アドレスはＨｏＡであるのに対して、その応答メッセージ（ＢＡβメッセージ）の送信先アドレスはＣｏＡであるが、気付アドレステスト処理（β）によってＣｏＡに送信しても移動通信装置１に届くことが確認できているため問題はない。最後に残っている問題は、気付アドレステスト処理（β）である。移動通信装置１がＣｏＴＩβメッセージを送信する場合、そのＣｏＴＩβメッセージには応答の送信先アドレスとしてＣｏＡが記載されている。相手先通信装置２は、ＣｏＴＩβメッセージを受信し、移動通信装置１の指示どおりＣｏＴβメッセージをＣｏＡ宛に送信する。
【００４２】
この気付アドレステスト処理（β）を攻撃者が利用するところを図６を用いて説明する。攻撃者７は、ＣｏＴＩβメッセージに応答先としてターゲット１ｂのアドレス（ＣｏＡ）を指定して、通信装置２ａにＣｏＴＩβメッセージを送信する。通信装置２ａは、ＣｏＴＩβメッセージの指示に従って、ＣｏＡにＣｏＴβメッセージを送信する。この応答先アドレスのＣｏＡは、ＣｏＴＩβメッセージを受信したとき通信装置２ａが初めて知るアドレスであるため、ＣｏＡにターゲット７がいるのか正規の移動通信装置１が応答メッセージを待っているのか、通信装置２ａには分からない。事前にＣｏＡを通知しておくことも考えられるが、攻撃者７が事前に通知しておくことも考えられるため、防ぐ手立てとはなり得ない。通信装置２にとっては一度ＣｏＡに送信してみないと移動通信装置１に届くかどうか分からない。攻撃者７は、この「通信装置２が一度試しに送信してみる」という処理を攻撃に利用する可能性がある。特に、このようなサービス妨害攻撃（ＤｏＳ攻撃）は、サービスを提供していてアドレスを公開しているサーバが攻撃の対象になりやすい。
【００４３】
本技術は、以上のような問題を解決する。図７を用いて概略を説明する。移動通信装置１は、モバイルＩＰのホームアドレステスト処理を行う。つまり、
（１）移動通信装置１は相手先通信装置２にＨｏＴＩメッセージを送信する。
（２）相手先通信装置は通常のモバイルＩＰのホームアドレステスト処理を行う。つまり、以下のようにＨｏＴＩメッセージの送信元アドレスであるＨｏＡと、相手先通信装置２の秘密鍵（Secret Key）、それと相手先通信装置２が決めた乱数nonceを用いて、HMAC_SHA1によるHash計算を行い、Home Keygen Token（以下ではHome Tokenと記す。）を算出する。
Home Token = SHA1 （HoA, Secret Key, nonce）
相手先通信装置２は、算出したHome Tokenの値とnonceを呼び出すための識別情報nonce-idを応答メッセージのＨｏＴメッセージに含めて送信する。ここまでは通常のモバイルＩＰと同じである。但し、Home Tokenが移動通信装置１のＣｏＡ生成情報として用いられる点が異なる。
【００４４】
＜ＣｏＡの生成＞
次に、移動通信装置１は、受信したＨｏＴメッセージに含まれる情報を用いてＣｏＡの設定を行う。従来の方法では移動通信装置１は、ＨｏＴＩメッセージを送信する前にＣｏＡを決定していた。本技術のポイントは、移動通信装置１がＨｏＴメッセージを受信してから、ＨｏＴメッセージに含まれるHome Tokenを元にしてＣｏＡを生成することである。移動通信装置１は、生成するＣｏＡのネットワークプレフィックスの領域は、変更することができないため、それ以外のホスト識別情報の領域をHome Tokenを用いて生成する。また、生成したＣｏＡと同じアドレスがすでに使用されている場合には、移動通信装置１はそのアドレスを使用することができないため、アドレスの重複が発生した場合に、そのアドレスの衝突を回避するための自由度を与えるデータαを用いてＣｏＡを生成する。つまり、ＨｏＴメッセージに含まれていたHome Tokenと自由度を持たせるためのαを用いて、HMAC_SHA1によるHash計算を行い、以下のようにＣｏＡを生成する。
CoA = SHA1 （Home Token, α）
【００４５】
次に移動通信装置１は気付アドレステスト処理（β）を行う。つまり、
（３）移動通信装置１は、生成したＣｏＡと、ＣｏＡの生成に用いた情報αをＣｏＴＩβメッセージに含めて相手先通信装置２に送信する。また、このＣｏＴＩβメッセージには、（２）ＨｏＴメッセージで送信されたnonce-idも含まれる。
【００４６】
＜ＣｏＡの確認＞
相手先通信装置２はＣｏＴＩβメッセージを受信すると、まず以下のように、Home Tokenの計算を行う。ＣｏＴＩβメッセージの送信元アドレスはＨｏＡであるため、ＨｏＡと、ＣｏＴＩβメッセージに含まれているnonce-idからnonceを呼び出す。また、相手先通信装置２の秘密鍵を用いる。
Home Token = SHA1 （HoA, Secret Key, nonce）
さらに、生成したHome TokenとＣｏＴＩβメッセージに含まれる情報αを用いて、ＣｏＡを生成する。
CoA = SHA1 （Home Token, α）
生成したＣｏＡがＣｏＴＩβメッセージに含まれるＣｏＡと等しい場合には、相手先通信装置２は、応答メッセージをＣｏＡに送信してよいと判断する。
【００４７】
相手先通信装置２は、ＣｏＴＩβメッセージの応答としてＣｏＴβメッセージを送信する場合、Care-of keygen token（以下ではCare-of Tokenと記す。）の計算を行う。Care-of Tokenの計算には、ＣｏＡと、相手先通信装置２の秘密鍵と、相手先通信装置２が決めた乱数nonce'を用いて、HMAC_SHA1によるHash計算を行う。
Care-of Token = SHA1 （CoA, Secret Key, nonce'）
（４）相手先通信装置は、算出したCare-of Tokenの値とnonce'を呼び出すための識別情報nonce'-idを応答メッセージであるＣｏＴβメッセージに含めて送信する。
【００４８】
移動通信装置１は、ホームアドレステスト処理によってHome Tokenを取得する。また、気付アドレステスト処理（β）によってCare-of Tokenを取得する。移動通信装置１は、これらのTokenをもとに鍵データを生成する。
Key  = SHA1 （Home Token, Care-of Token）
そして、この鍵データを用いて送信するＢＵβメッセージのメッセージ認証コード（MAC : Message Authentication Code）を生成する。
MAC = SHA1 （Key, Message Data）
（５）移動通信装置１は、ＢＵβメッセージに応答メッセージの送信先のCoA、Tokenを生成するための情報としてnonce-id, nonce'-id、さらにメッセージ認証コード（ＭＡＣ）を含めて、相手先通信装置２に送信する。
【００４９】
相手先通信装置２は、ＢＵβメッセージを受信すると、メッセージが正しいかどうか確認処理を行う。まず、Home TokenとCare-of Tokenの計算を行う。ＢＵβメッセージの送信元アドレスはＨｏＡであり、Home Tokenの計算に用いる。また、ＣｏＡは応答送信先アドレスとしてＢＵβメッセージに含まれるため、Care-of Tokenの計算に用いる。
Home Token = SHA1 （HoA, Secret Key, nonce）
Care-of Token = SHA1 （CoA, Secret Key, nonce'）
次にこれらのTokenから鍵データ（Key）を生成し、ＢＵβメッセージのメッセージデータとKeyからメッセージ認証コード（ＭＡＣ）を生成し、ＢＵβメッセージに含まれるメッセージ認証コードと一致するかどうか確かめる。
Key = SHA1 （Home Token, Care-of Token）
MAC = SHA1 （Key, Message Data）
【００５０】
（６）相手先通信装置２は、ＢＵβメッセージに含まれるメッセージ認証コードと、相手先通信装置２が計算した値とが一致した場合には、正しいＢＵβメッセージであると判断し、ＨｏＡとＣｏＡの組であるバインディング・キャッシュを設定し、ＢＵβメッセージの応答メッセージであるＢＡβメッセージを移動通信装置１に送信する。
以上がホームアドレステスト処理、気付アドレステスト処理（β）及び片方向経路・経路最適化処理の流れの説明である。
【００５１】
上記の応答先アドレス（ＣｏＡ）の生成方法によって、攻撃者７が気付アドレステスト処理（ＣｏＴＩβ・ＣｏＴβ）を用いて、サービス妨害攻撃を行うことを防ぐことができる。つまり、攻撃者７があるサーバを攻撃しようとして、応答先アドレスとしてサーバのアドレスを指定したとしても、応答側通信装置２ａは、その応答先アドレスがHome Tokenから生成できるかどうか確認することによって、応答メッセージを送信する前に止めることができる。
【００５２】
また、攻撃者７は、応答側通信装置２ａから返されるHome Tokenを予測することができないため、ターゲットのサーバのアドレスを意図的に生成することは不可能である。Home Tokenは応答側通信装置２ａの秘密鍵をもとに生成されていることと、応答側通信装置２ａが生成する乱数nonceを用いて生成されていることによって、要求側通信装置には予測不可能である。さらに、乱数nonceはLife Timeをもっており、定期的に異なる値に変更されるため、要求側通信装置にはターゲットのサーバのアドレスを応答先アドレスになるように意図的に操作することは不可能である。
【００５３】
以下では、さらに詳細に技術内容を説明する。最初に、比較のために従来技術であるモバイルＩＰの方法を図８を用いて簡単に説明する。
＜ＨｏＴＩ／ＣｏＴＩ＞
まず、図８（１）、（３）にそれぞれ示すように、移動通信装置１は相手先通信装置２にＨｏＴＩ（Home Test Init）メッセージとＣｏＴＩ（Care-of Test Init）を送信する。
＜ＨｏＴ／ＣｏＴ＞
相手先通信装置２はＨｏＴＩメッセージを受信すると、Home Tokenの計算を次のように行う。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
Kcnは相手先通信装置２のみが知っている鍵データである。Home addressは、ＨｏＴＩメッセージの送信元アドレスである。Nonceは相手先通信装置２が独自に決めてよい値である。Nonceにどの値を用いたか分かるように、図８（２）に示すように、相手先通信装置２は、nonceの値を識別するための識別情報（home nonce-id）をＨｏＴメッセージに含めて移動通信装置１に通知する。ＨｏＴメッセージには、さらにHome Tokenを含める。
【００５４】
同様に、相手先通信装置２はＣｏＴＩメッセージを受信すると、Care-of Tokenの計算を次のように行う。
Care-of Token :=
First（64, HMAC_SHA1 （Kcn, （care-of address | nonce | 1）））
相手先通信装置２は図８（４）に示すように、ＣｏＴメッセージにCare-of Token、care-of nonce-idを含めて移動通信装置１に送信する。
【００５５】
＜ＢＵ＞
移動通信装置１は、ＨｏＴメッセージとＣｏＴメッセージを受信すると、Home TokenとCare-of Tokenを用いて次のように鍵（Kbm）を生成する。
Kbm = SHA1 （Home Token | Care-of Token）
移動通信装置１は、この生成した鍵Kbmを用いてＢＵメッセージのメッセージ認証コード（ＭＡＣ）を生成してＢＵメッセージに付加し、図８（５）に示すように相手先通信装置２に送信する。メッセージ認証コードは次のように生成する。
Authenticator = First （96, HMAC_SHA1 （Kbm, Mobility Data））
Mobility Data = care-of address | correspondent | MH Data
Authenticatorがメッセージ認証コードである。Care-of addressはＢＵメッセージの送信元アドレスであり、correspondentは相手先通信装置２のアドレスであり、ＢＵメッセージの送信先アドレスである。MH DataはＢＵメッセージの本体である。
【００５６】
＜ＢＵの認証／ＢＡ＞
移動通信装置１はＢＵメッセージに、home nonce id、care-of nonce id、home addressを付加して送信する。ＢＵメッセージを受信した相手先通信装置２は、ＢＵメッセージの送信元アドレス（care-of address）と、home nonce idからhome nonceを呼び出し、Home Tokenを生成する。また相手先通信装置２は同様にしてCare-of Tokenを生成する。さらに相手先通信装置２は、これら２つのtokenから鍵（Kbm）を生成する。そしてＢＵメッセージと鍵（Kbm）を用いてメッセージ認証コードを生成し、移動通信装置１がＢＵメッセージに付加したメッセージ認証コードと一致するか確認する。メッセージ認証コードが一致することによって、相手先通信装置２はHome Test（ＨｏＴＩメッセージを送信し、ＨｏＴメッセージを受信したこと）と、Care-of Test（ＣｏＴＩメッセージを送信し、ＣｏＴメッセージを受信したこと）との両方を実行した通信装置からの適切なＢＵメッセージであるとみなし、図８（６）に示すようにバインディング確認（ＢＡ）メッセージを移動通信装置１に送信する。
【００５７】
この従来技術におけるモバイルＩＰのホームアドレステスト処理及び気付アドレステスト処理の設計思想は非特許文献２に記載されている。そのポイントとなるところは次の３点である。
（１）相手先通信装置にステート（State）を持たせないこと。
（２）応答メッセージを倍増させないこと（Amplificationの禁止）。
（３）メッセージの反射を行わないこと（Reflectionの禁止）。
【００５８】
上記（１）の相手先通信装置２にStateを持たせないことは、相手先通信装置２に対するＤｏＳ攻撃への防御策である。相手先通信装置２はＨｏＴＩメッセージを受信し、ＨｏＴメッセージを応答として返す処理では、単純にtokenを計算しているだけである。ＨｏＴメッセージを返したあと 、相手先通信装置２が記憶しておかなければならない情報はない。Kcnの値やnonceの値は、複数のＨｏＴＩメッセージに対して同じ値を用いることができるため、相手先通信装置２が複数の移動通信装置１から同時にＨｏＴＩメッセージを受信したとしても、そのために保持しておかなければならない情報が増えるわけではない。ＣｏＴＩメッセージを受信し、ＣｏＴメッセージを送信する場合においても同様である。相手先通信装置２はＢＵメッセージを受信すると、ＢＵメッセージに含まれる情報だけを用いてHome Token及びCare-of Tokenを生成し、これら２つのtokenから鍵（Kbm）を生成し、ＢＵメッセージのメッセージ認証コードを生成し、さらにはＢＵメッセージに付加されているメッセージ認証コードと一致するか確認する。
【００５９】
上記（２）の応答メッセージを倍増させないこと（Amplificationの禁止）は、Home TestとCare-of Testに分けることによって実現している。例えば、移動通信装置１から相手先通信装置２へ１つの要求メッセージを送信して、相手先通信装置２からＨｏＡとＣｏＡに別々の応答メッセージを送信させる方法が思いつくが、この方法の場合、ＤｏＳ攻撃を行おうとする攻撃者７に、攻撃メッセージを２倍にする装置を提供することになる可能性がある。そのため、モバイルＩＰでは１つの要求メッセージに１つの応答メッセージを返すように設計されている。
【００６０】
上記（３）のメッセージの反射を行わないこと（Reflectionの禁止）は、応答メッセージを要求メッセージの送信元アドレスに送信することによって実現している。すなわち、ＨｏＴメッセージはＨｏＴＩメッセージの送信元に返し、ＣｏＴメッセージはＣｏＴＩメッセージの送信元に返している。要求メッセージの送信元以外のアドレスに応答メッセージを送信することは、攻撃者７が他の通信装置を攻撃するために相手先通信装置２を利用することを可能にする。
【００６１】
本実施の形態は、従来技術のモバイルＩＰでは不可能だった片方向経路での経路最適化を実現する技術であると同時に、上記３点のセキュリティ対策の維持を目的とする。このうち、相手先通信装置２にStateを持たせないこと、Amplificationを行わないこと、の２点は維持している。また、Reflectionを攻撃に利用できないようにしている。
【００６２】
＜メッセージシーケンス＞
次に本実施の形態のバインディング・キャッシュ設定のメッセージシーケンスについて説明する。従来のモバイルＩＰと区別するために、新たにＣｏＴＩβメッセージ、ＣｏＴβメッセージ、ＢＵβメッセージ、ＢＡβメッセージを定義している。これらのメッセージは従来のモバイルＩＰのメッセージとは容易に区別できることが望ましい。従来のモバイルＩＰでは、ＣｏＴＩメッセージ、ＣｏＴメッセージ、ＢＵメッセージ、ＢＡメッセージを図９に示すフォーマットのＭＨ Type を用いて識別している。ＭＨ Typeは８bitの情報要素で、０から７までの値が既に次のように割り当てられている（非特許文献１参照）。
0  Binding Refresh Request
1  Home Test Init
2  Care-of Test Init
3  Home Test
4  Care-of Test
5  Binding Update
6  Binding Acknowledgement
7  Binding Error
【００６３】
このため、本技術のために新しく定義したメッセージにも、新しくＭＨ Typeの値を割り当てることによって、それぞれのメッセージを識別できるようにする方法が適していると考えられる。もちろん新しくMH Typeの値を定義することなく、ＣｏＴＩβメッセージにはＣｏＴＩメッセージ（MH Type = ２）、ＣｏＴβメッセージにはＣｏＴメッセージ（MH Type = 4）、ＢＵβメッセージにはＢＵメッセージ（MH Type = 5）、ＢＡβメッセージにはＢＡメッセージ（MH Type = 6）を用い、宛先アドレスや送信元アドレスまたはメッセージ内の情報要素によって識別することも可能である。またメッセージのヘッダに識別するためのフラグを設けることも可能である。
【００６４】
次に、図１０を参照して本発明の処理の流れを説明する。
＜ＨｏＴＩ、ＨｏＴ＞
移動通信装置１は、図１０（１）に示すようにＨｏＴＩメッセージを相手先通信装置２に送信する。
相手先通信装置２はＨｏＴＩメッセージを受信すると、Home Tokenの計算を次のように行う。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
相手先通信装置２は図１０（２）に示すように、ＨｏＴメッセージに、Home Token、home nonce-idを含めて移動通信装置１に送信する。ＨｏＴＩ及びＨｏＴメッセージを用いたホームアドレステストの処理は、モバイルＩＰと同様の処理である。但し、次のＣｏＡ生成処理でHome Tokenが用いられる点が異なる。
【００６５】
＜ＣｏＡ生成処理＞
移動通信装置１は、ＨｏＴメッセージを受信すると、応答先アドレスとなる気付アドレス（ＣｏＡ：Care-of Address）を次のように計算する。
Care-of Address :=
First（64, HMAC_SHA1 （Home Token | α））
上記はネットワークプレフィックスのサイズが６４ビットの場合の式である。ＩＰｖ６のアドレスサイズが１２８ビットであるため、ホスト識別領域は６４ビットとなる。上記のCare-of Addressはホスト識別領域のデータである。
【００６６】
移動通信装置１は、ＣｏＡを生成したあと、ネットワーク上で同じアドレスを用いた端末がすでに存在しないか、アドレス重複確認処理を行う。このアドレス重複確認処理は、この生成したアドレス宛にメッセージを送信することによって、すでにこのアドレスを使用している端末がいる場合には、応答が返ってくることを利用して、アドレスがすでに他の端末によって使用されていないか確認する。もし、生成したＣｏＡが別の端末によってすでに使用されている場合には、αの値を変更して、再度ＣｏＡを生成し、アドレス重複確認処理を行う。この処理は、他の端末によって使用されていないＣｏＡを生成できるまで行う。
【００６７】
＜ＣｏＴＩβ＞
図１０（３）に示すようにＣｏＴＩβメッセージには、ＣｏＴメッセージと異なり、ＣｏＡ、α、home nonce-idが新しく含まれる。ＣｏＡは、ＣｏＡ生成処理によってHome Tokenから生成した応答先アドレスである。αは、ＣｏＡを生成するために用いた値である。home nonce-idは、移動通信装置が受信したＨｏＴメッセージに含まれていた値である。
【００６８】
＜ＣｏＴＩβ受信及び応答先アドレスＣｏＡの確認＞
ＣｏＴＩβメッセージを受信した相手先通信装置２は、ＣｏＴＩβメッセージに含まれるhome nonce-idからhome nonceを呼び出し、ＣｏＴＩβメッセージの送信元アドレスであるＨｏＡと 併せてHome Tokenを生成する。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
さらに、Home TokenとＣｏＴＩβメッセージに含まれていたαを用いて応答先アドレス（care-of address）を生成する。
Care-of Address :=
First（64, HMAC_SHA1 （Home Token | α））
【００６９】
この生成したCare-of Addressが、ＣｏＴＩβメッセージに含まれる応答先アドレスと一致しない場合には、相手先通信装置２は処理をここで終了し、ＣｏＴＩβメッセージを破棄する。応答先アドレスと一致する場合には、応答メッセージであるＣｏＴβメッセージの作成を行う。この応答先アドレスの確認処理によって、ＣｏＴＩβメッセージを送信した端末がホームアドレステスト処理を行い、相手先通信装置２から送られたHome Tokenを用いて応答先アドレスを生成したことを確認する。これによって、相手先通信装置２が攻撃者７に利用されてターゲット１ｂにＣｏＴβメッセージを送信することを未然に防ぐ。
【００７０】
＜ＣｏＴβ＞
相手先通信装置２は図１０（４）に示すように、ＣｏＴβメッセージを移動通信装置１のＣｏＡに送信する。ＣｏＴβメッセージには、Care-of Tokenとtoken生成に用いたnonceを呼び出すためのcare-of nonce-idが含まれる。Care-of Tokenの計算は次のように行う。
Care-of Token :=
First（64, HMAC_SHA1 （Kcn, （care-of address | nonce | 1）））
【００７１】
＜ＢＵβ＞
移動通信装置１は、ＣｏＴβメッセージを受信し、ＣｏＴβメッセージに含まれているCare-of Tokenの値とＨｏＴメッセージに含まれていたHome Tokenの値から鍵データ（Kbm）を生成する。
Kbm = SHA1 （Home Token | Care-of Token）
さらに、この鍵データKbmを用いて、ＢＵβメッセージのメッセージ認証コードを生成し、 図１０（５）に示すようにＢＵβメッセージに付加して相手先通信装置２に送信する。メッセージ認証コードは次のように計算する。
Authenticator = First （96, HMAC_SHA1 （Kbm, Mobility Data））
Mobility Data = care-of address | correspondent | MH Data
Authenticatorはメッセージ認証コードである。home addressはＢＵβメッセージの送信元アドレスであり、correspondentは送信先アドレスである。MH DataはＢＵβメッセージの本体である。ＢＵβメッセージには、メッセージ認証コードのほかに、応答先アドレスであるＣｏＡ、ＨｏＴメッセージに含まれていたhome nonce id、ＣｏＴβメッセージに含まれていたcare-of nonce idが含まれる。
【００７２】
＜ＢＵβの認証及びＢＡβの送信＞
相手先通信装置２は、ＢＵβメッセージを受信し、home nonce-idと送信元アドレスのhome addressからHome Tokenを生成し、care-of nonce-idとＢＵβメッセージに含まれるcare-of addressを用いてCare-of Tokenを生成する。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
Care-of Token :=
First（64, HMAC_SHA1 （Kcn, （care-of address | nonce | 1）））
次に、２つのtokenを用いてKbmを生成し、ＢＵβメッセージのメッセージ認証コードを生成し、付加されていたメッセージ認証コードと一致するか確認する。
Kbm = SHA1 （Home Token | Care-of Token）
Authenticator = First （96, HMAC_SHA1 （Kbm, Mobility Data））
Mobility Data = care-of address | correspondent | MH Data
メッセージ認証コードが一致したならば、相手先通信装置２はバインディング・キャッシュの設定を行い、移動通信装置１のＣｏＡに向けて応答メッセージであるＢＡβメッセージを送信する。一致しない場合には、受信したＢＵβメッセージを破棄し、受信処理を終了する。以上が本発明の片方向経路での経路最適化を行うバインディング更新処理である。
【００７３】
＜メッセージフォーマット＞
次に、メッセージフォーマットについて説明する。本発明のＣｏＴＩβ、ＣｏＴβのメッセージは、従来技術のモバイルＩＰのＣｏＴＩやＣｏＴのメッセージに新しく情報要素を追加している。追加している情報要素は、home nonce id, prefix length, care-of addressである 。これらを格納するためのフォーマットは、従来のモバイルＩＰ（ＲＦＣ３７７５）で定義されているメッセージフォーマットをそのまま、又は少し変更することによって利用することができる。
・Home nonce id：ＲＦＣ３７７５ではHome Nonce Indexだけを運ぶMobility Optionが定義されていないため、図１１に示すように新たにOption Typeを定義する必要がある。
・prefix lengthは、相手先通信装置が２Care-of Addressの比較を行うときに、Care-of Addressをネットワークプレフィックスの領域とホスト識別情報の領域と分離するために必要な情報である。ネットワークプレフィックスのサイズを運ぶ情報要素を図１２に示す。
・Care-of address：ＲＦＣ３７７５には、Care-of Address Optionが存在しないため、図１３に示すように新たにOption Typeを定義する必要がある。Alternate CoA Optionを転用する方法も考えられる。
【００７４】
＜バインディング・キャッシュ＞
相手先通信装置２が設定するバインディング・キャッシュは、モバイルＩＰと同じものでかまわない。相手先通信装置２は、従来のモバイルＩＰと同様、ＨｏＡ宛のパケットをＣｏＡ宛に変更するとともに、拡張ヘッダのルーティングヘッダ（Type 2）を付加する。相手先通信装置２が移動通信装置１から受信するパケットは、ＨｏＡを送信元アドレスとする通常のパケットである。一方、移動通信装置１が持つバインディング・キャッシュには、送信元アドレスをＣｏＡに変換してはいけないことを示す情報が必要である。移動通信装置１はホームエージェント３経由でパケットを送信しなければ、相手先通信装置２にパケットが届かないからである。
【００７５】
＜相手先通信装置（応答側通信装置）の構成＞
図１４は相手先通信装置（応答側通信装置）２のメッセージ処理部の構成を示すブロック図である。相手先通信装置２は、次のようなメッセージの送受信を行う。
（１）ＨｏＴＩメッセージを受信し、ＣｏＡ生成情報（Home Token）を含むＨｏＴメッセージを送信する。
（２）ＣｏＴＩメッセージを受信し、ＣｏＴメッセージを送信する。
（３）ＣｏＴＩβメッセージを受信してメッセージ内のＣｏＡを認証し、ＣｏＴβメッセージを送信する。
（４）ＢＵメッセージを受信してメッセージ内のメッセージ認証コードを認証し、ＢＡメッセージを送信する。
（５）ＢＵβメッセージを受信してメッセージ内のメッセージ認証コードを認証し、ＢＡβメッセージを送信する。
【００７６】
（１）、（２）、（４）のメッセージ送受信処理は、ＭＩＰ ＢＵ/RR処理部１３（及びメッセージ受信部１１、メッセージ送信部１２）において行う。（３）、（５）のメッセージ送受信処理は、片方向ＢＵ/RR拡張処理部１３ａ（及びメッセージ受信部１１、メッセージ送信部１２）において行う。ＨｏＴ、ＣｏＴ、ＣｏＴβメッセージの送信処理においてtoken, nonce idをメッセージに付加する場合、Nonce管理部１４及びToken生成部１５よりデータを取得する。Token生成部１５は、Nonce管理部１４よりNonceの値を取得し、受信した要求メッセージから取得したアドレスと鍵データKcnよりTokenの値を計算する。Nonce管理部１４は、Token管理部１４に渡したNonceの値に対応するNonce IDの値をＭＩＰ ＢＵ/RR処理部１３に渡す。Token生成部１５は、要求側通信装置１からの応答先アドレス生成情報の要求に応えてHome tokenを生成しているため、応答先アドレス生成情報生成部として機能している。
【００７７】
ＣｏＴＩβメッセージの受信処理において、応答先アドレスの確認処理を行う場合、ＣｏＴＩβメッセージに含まれるhome nonce-idをNonce管理部１４に渡し、Nonceの値を取得する。取得したNonceの値とＣｏＴＩβメッセージの送信元アドレスであるＨｏＡをToken生成部１５に渡し、Tokenの値を取得する。取得したTokenの値とＣｏＴＩβメッセージに含まれる情報αを応答先アドレス確認部２０に渡し応答先アドレス（ＣｏＡ）を生成し、その生成したアドレスとＣｏＴＩβメッセージに含まれる応答先アドレスと一致するか比較する。比較する領域は、応答先アドレスからネットワークプレフィックスの領域を除いたホスト識別子の領域である。
【００７８】
ＢＵ、ＢＵβメッセージの受信処理においてメッセージ認証コードの作成と確認（認証）を行う場合、ＢＵ、ＢＵβメッセージに含まれるhome nonce-idとcare-of nonce-idをNonce管理部１４に渡し、home nonce, care-of nonceの値をそれぞれ取得する。取得したNonceの値とＢＵ、ＢＵβメッセージ内に含まれるHome Address及びCare-of AddressをToken生成部１５にそれぞれ渡し、Home Token及びCare-of Tokenを生成する。取得した２つのtokenをKbm生成部１６に渡し、Kbmを生成する。生成したKbm及び受信したメッセージをメッセージ認証コード（ＭＡＣ）確認部１８に渡し、ＭＡＣの値を計算する。そしてＢＵ、ＢＵβメッセージ内に含まれているＭＡＣの値と比較し、一致するかどうかチェックする。ＭＡＣのチェックに成功した場合には、Home AddressとCare-of Addressの対応関係をバインディング・キャッシュ（Binding Cache）１９（及び片方向ＲＯ拡張部１９ａ）に登録する。
【００７９】
＜移動通信装置（要求側通信装置）の構成＞
図１５は移動通信装置（要求側通信装置）１のメッセージ処理部の構成を示すブロック図である。移動通信装置１は、次のようなメッセージの送受信を行う。
（１）ＨｏＴＩメッセージを送信し、ＣｏＡ生成情報（Home Token）を含むＨｏＴメッセージを受信する。
（２）ＣｏＴＩメッセージを送信し、ＣｏＴメッセージを受信する。
（３）ＣｏＡ生成情報（Home Token）からＣｏＡを生成して、ＣｏＡを含むＣｏＴＩβメッセージを送信し、ＣｏＴβメッセージを受信する。
（４） メッセージ認証コードを含むＢＵメッセージを送信し、ＢＡメッセージを受信する。
（５）メッセージ認証コードを含むＢＵβメッセージを送信し、ＢＡβメッセージを受信する。
【００８０】
（１）、（２）、（４）のメッセージ送受信処理は、ＭＩＰ ＢＵ/RR処理部２３（及びメッセージ受信部２１、メッセージ送信部２２）において行う。（３）、（５）のメッセージ送受信処理は、片方向ＢＵ/RR拡張処理部２３ａにおいて行う。ＨｏＴＩ、ＣｏＴＩ、ＣｏＴＩβメッセージの送信処理では、Cookie生成部２４により作成したCookieの値をＨｏＴＩ、ＣｏＴＩ、ＣｏＴＩβメッセージに入れる。メッセージに含めるCookieは、相手先通信装置２が応答メッセージに同じ値を含めて移動通信装置１に返すことになっている。これによって移動通信装置１は、要求メッセージと応答メッセージの対応づけを行うことができる。応答先アドレス生成情報要求部２９は、（１）のＨｏＴＩメッセージ送信で要求し、また、応答先アドレス生成部３０は、（３）においてＣｏＡ生成情報（Home Token）からＣｏＡを生成する。
【００８１】
ＨｏＴＩメッセージの送信処理では、Home Tokenを要求する処理が、応答先アドレス生成情報（Home Token）を応答側通信装置２に要求するための処理であり、応答先アドレス生成情報要求部２９が存在していると見ることができる。ＨｏＴメッセージの受信処理では、移動通信装置１はＨｏＴメッセージに含まれるHome Tokenを応答先アドレス生成部３０に渡して、応答先アドレス（ＣｏＡ）を生成する。ＣｏＴＩβメッセージの送信処理では、応答先アドレス生成部３０より作成した応答先アドレスと応答先アドレス生成に用いた情報αを取得し、ＣｏＴＩβメッセージに付加して送信する。
【００８２】
ＢＵ、ＢＵβメッセージ送信処理においては、受信したＨｏＴメッセージ及びＣｏＴβメッセージから取得したHome Token及びCare-of TokenをKbm生成部２５に渡し、Kbmを生成する。さらに送信するＢＵ、ＢＵβメッセージと作成したKbmをメッセージ認証コード生成部２６に渡し、メッセージ認証コードを作成する。作成したメッセージ認証コードはＢＵ、ＢＵβメッセージに付加し送信する。Binding Cache管理部２７（及び片方向ＲＯ拡張部２８）は、相手先通信装置２のBinding Cache１９を管理する。
【００８３】
＜その他の使用例１＞
なお、本明細書では、移動通信装置１が最初から片方向経路最適化を行うことを想定して動作する場合について説明したが、移動通信装置１が片方向経路であるかどうか知らない場合についても利用可能である。移動通信装置１は、従来のモバイルＩＰの処理を行い、ＨｏＴＩメッセージとＣｏＴＩメッセージを送信する。移動通信装置１は、ＨｏＴメッセージは受信するが、ＣｏＴメッセージを受信できない場合、再度ＣｏＴＩメッセージを送信しなおすといった処理を行うことが考えられる。このとき移動通信装置１は、片方向経路（相手先通信装置２から移動通信装置１の向きに片方向だけ通信可能な経路の場合）であっても経路最適化を行うかどうか判定を行い、片方向経路最適化を行う場合には、ＣｏＴＩβメッセージを送信する。この後の処理は、本明細書で説明した処理と同じである。
【００８４】
＜その他の使用例２＞
図２に示すように移動通信装置（ＭＮ）１が複数のインタフェースを持つ端末のときには、ホームエージェント３が存在しないときにでも片方向経路最適化を実行してもよい。移動通信装置１が２種類のインタフェースを持っているとする。２種類のインタフェースは例えば、携帯電話網に接続するインタフェースと地上波デジタルテレビ放送を受信するインタフェースとする。そして、携帯電話網側のインタフェースに割り当てられたアドレスをＩＰ（携帯）とし、地上波デジタル放送側のインタフェースをＩＰ（放送）とする。ＩＰ（携帯）は双方向通信可能なアドレスである。一方、ＩＰ（放送）はダウンリンクのみ通信可能なアドレスである。このとき、移動通信装置１である携帯電話は、ＩＰ（携帯）をＨｏＡとして、ＩＰ（放送）をＣｏＡとみなして片方向経路最適化手順を実行することができる。
【００８５】
なお、本明細書ではＣｏＴＩβメッセージに対して応答メッセージを送信するかどうかのチェックに応答先アドレスが正しく生成されているかどうか確認する方法について説明したが、これは応答側通信装置（相手先通信装置）２がＨｏＡとＣｏＡの組合せを知らない場合にも使える方法である。例えば、すでに相手先通信装置２が移動通信装置１のバインディング・キャッシュを設定されている場合には、相手先通信装置２はＣｏＡ宛に送信しても移動通信装置１にパケットが届くことがわかっている。このような場合には、相手先通信装置２は、応答先アドレスを確認するのではなく、すでに移動通信装置１のバインディング・キャッシュが設定されているかどうか確認し、その登録されているＨｏＡとＣｏＡの組と一致しているかどうか確認する方法も可能である。このようにバインディング・キャッシュが設定されているかどうかを確認する方法も併用する場合には、ＣｏＴＩβメッセージにフラグを設けて、すでにバインディング・キャッシュに登録しているかどうか、相手先通信装置２が即座にバインディング・キャッシュをチェック開始できるようにしてもよい。
【００８６】
モバイルＩＰではバインディング・キャッシュにLife Timeを設けているため、移動通信装置１は一定間隔ごとにＣｏＴＩβメッセージを相手先通信装置２に送信しなければならない。このため、バインディング・キャッシュに登録されているかどうか確認する方法と、応答先アドレスが正しく生成されているかどうか確認する方法との併用は、ＣｏＴＩβメッセージ受信時にＣｏＴβメッセージを応答としてＣｏＡに送信してよいかどうか判定する方法として利用効果がある。
【００８７】
また、本発明は、移動通信装置と相手先通信装置との間で移動通信装置のホームエージェントを介さない両方向の直接経路で通信を行う経路最適化を行う場合にも適用することができる。この場合の通信方法、通信システム、移動通信装置及び相手先通信装置の構成を以下に示す。
（１）通信方法：
移動通信装置と相手先通信装置との間で前記移動通信装置のホームエージェントを介さない直接経路で通信を行う経路最適化を行う通信方法において、
前記移動通信装置が前記ホームエージェントを介して、ホームアドレステスト要求（ＨｏＴＩ）メッセージを前記相手先通信装置に送信し、前記相手先通信装置が前記ホームアドレステスト要求メッセージに応答して、前記移動通信装置の気付アドレスを生成するためのアドレス生成情報を含むホームアドレステスト応答（ＨｏＴ）メッセージを前記ホームエージェントを介して前記移動通信装置に送信するホームアドレステストステップと、
前記移動通信装置が前記ホームアドレステスト応答メッセージ内の前記アドレス生成情報に基づいて気付アドレスを生成して、前記気付アドレスを含む気付アドレステスト要求（ＣｏＴＩβ）メッセージを前記直接経路で前記相手先通信装置に送信し、前記相手先通信装置が前記気付アドレステスト要求メッセージ内の前記気付アドレスを、前記ホームアドレステスト応答（ＣｏＴβ）メッセージで送信した前記アドレス生成情報に基づいて生成した気付アドレスと比較して、一致すると確認した場合に気付アドレステスト応答メッセージを前記直接経路で前記移動通信装置に送信する気付アドレステストステップとを、
有することを特徴とする通信方法。
【００８８】
（２）通信システム：
移動通信装置と相手先通信装置との間で前記移動通信装置のホームエージェントを介さない直接経路で通信を行う経路最適化を行う通信システムにおいて、
前記移動通信装置がホームアドレステスト要求メッセージを前記ホームエージェントを介して前記相手先通信装置に送信し、前記相手先通信装置が前記ホームアドレステスト要求メッセージに応答して、前記移動通信装置の気付アドレスを生成するためのアドレス生成情報を含むホームアドレステスト応答メッセージを前記ホームエージェントを介して前記移動通信装置に送信するホームアドレステストユニットと、
前記移動通信装置が前記ホームアドレステスト応答メッセージ内の前記アドレス生成情報に基づいて気付アドレスを生成して、前記気付アドレスを含む気付アドレステスト要求メッセージを前記直接経路で前記相手先通信装置に送信し、前記相手先通信装置が前記気付アドレステスト要求メッセージ内の前記気付アドレスを、前記ホームアドレステスト応答メッセージで送信した前記アドレス生成情報に基づいて生成した気付アドレスと比較して、一致すると確認した場合に気付アドレステスト応答メッセージを前記直接経路で前記移動通信装置に送信する気付アドレステストユニットとを、
有することを特徴とする通信システム。
【００８９】
（３）移動通信装置：
移動通信装置と相手先通信装置との間で前記移動通信装置のホームエージェントを介さない直接経路で通信を行う経路最適化を行う通信システムにおける前記移動通信装置であって、
ホームアドレステスト要求メッセージを前記ホームエージェントを介して前記相手先通信装置に送信するユニットと、
前記相手先通信装置が前記ホームアドレステスト要求メッセージに応答して、前記移動通信装置の気付アドレスを生成するためのアドレス生成情報を含むホームアドレステスト応答メッセージを前記ホームエージェントを介して前記移動通信装置に送信した場合、前記ホームアドレステスト応答メッセージを受信するユニットと、
前記受信した前記ホームアドレステスト応答メッセージ内の前記アドレス生成情報に基づいて気付アドレスを生成して、前記気付アドレスを含む気付アドレステスト要求メッセージを前記直接経路で前記相手先通信装置に送信するユニットとを備え、
前記相手先通信装置が前記気付アドレステスト要求メッセージ内の前記気付アドレスを、前記ホームアドレステスト応答メッセージで送信した前記アドレス生成情報に基づいて生成した気付アドレスと比較して、一致すると確認した場合に気付アドレステスト応答メッセージを前記直接経路で前記移動通信装置に送信するようにした移動通信装置。
【００９０】
（４）相手先通信装置：
移動通信装置と相手先通信装置との間で前記移動通信装置のホームエージェントを介さない直接経路で通信を行う経路最適化を行う通信システムにおける前記相手先通信装置であって、
前記移動通信装置がホームアドレステスト要求メッセージを前記ホームエージェントを介して前記相手先通信装置に送信した場合、前記ホームアドレステスト要求メッセージを受信するユニットと、
前記受信した前記ホームアドレステスト要求メッセージに応答して、前記移動通信装置の気付アドレスを生成するためのアドレス生成情報を含むホームアドレステスト応答メッセージを前記ホームエージェントを介して前記移動通信装置に送信するユニットと、
前記移動通信装置が前記ホームアドレステスト応答メッセージ内の前記アドレス生成情報に基づいて気付アドレスを生成して、前記気付アドレスを含む気付アドレステスト要求メッセージを前記直接経路で前記相手先通信装置に送信した場合、前記気付アドレステスト要求メッセージを受信するユニットと、
前記受信した前記気付アドレステスト要求メッセージ内の前記気付アドレスを、前記ホームアドレステスト応答メッセージで送信した前記アドレス生成情報に基づいて生成した気付アドレスと比較して、一致すると確認した場合に気付アドレステスト応答メッセージを前記直接経路で前記移動通信装置に送信するユニットとを、
有する相手先通信装置。
【００９１】
なお、上記実施の形態の説明では移動通信装置を一つの装置として説明したが、複数の近距離通信可能な装置の集合であってもよい。例えば携帯テレビ受像機と携帯電話の組み合わせで、携帯テレビ受像機と携帯電話の間では相互通信を行い、あたかも一つの装置として動作し本発明の処理を行うといった実現方法も考えられる。
【００９２】
次に、上記ではモバイルＩＰの経路最適化の片方向経路対応の場合について説明したが、他の状況でも利用することができる。図１６を用いて処理手順を説明する。要求側の通信装置（第１の通信装置）１０１と応答側の通信装置（第２の通信装置）１０２が通信しているとする。要求側通信装置１０１は、あるアドレス（第１のアドレス）を使って、メッセージを送受信し、応答側通信装置１０２と通信している。このように通信しているときに、要求側通信装置１０１が別の新しいアドレス（第２のアドレス）を使って受信したいと希望する。例えばデジタル放送網や衛星通信網などを用いて受信したいといった場合が想定される。モバイルＩＰの経路最適化を例とした場合にはバインディング・キャッシュを設定して、設定後に新しいアドレスを受信用のアドレスとして使用した。それ以外の使い方として、応答として返されるメッセージが大きく、別のインタフェースの別のアドレスで受信したほうが効率的に通信できるといった使い方が考えられる。要求メッセージの送信元と異なるアドレスに応答メッセージを返して欲しい場合に、要求メッセージに応答先を含めて送信し、応答先の通信装置１０２がその要求に従って応答メッセージを送信してしまうと、課題のところで述べたように攻撃に利用される危険性がある。
【００９３】
図１６において、
（１）要求側通信装置１０１が新しいアドレスでの応答の受信を希望し、要求側通信装置１０１は応答側通信装置１０２にアドレス生成情報を要求するアドレス生成情報要求メッセージ（第１の要求メッセージ）を送信する。
（２）応答側通信装置１０２はアドレス生成情報の要求を受信し、アドレス生成情報を作成し、応答としてアドレス生成情報メッセージ（第１の応答メッセージ）を要求側送信装置１０１に送信する。
【００９４】
アドレス生成情報は、要求側送信装置１０１が予測できない情報であることが望ましい。つまり予測可能な値の場合、攻撃者（第１の通信装置１０１）がターゲットを決め、そのターゲットを攻撃可能なアドレスを生成できる応答側通信装置１０２を選び、アドレス生成情報を要求することが考えられるからである。アドレス生成情報を、応答側通信装置１０２の秘密鍵を用いて生成することは予測を困難にする効果がある。また、定期的に変更する乱数を利用して生成することも予測を困難にする効果がある。
【００９５】
応答側通信装置（第２の通信装置）１０２からのアドレス生成情報の送信は、要求メッセージの応答として送信するだけではなく、他の理由により送信する場合でもかまわない。例えば定期的にアドレス（第２のアドレス）を変更するような場合、その都度、要求側通信装置１０１が要求メッセージを送信するのではなく、定期的に応答側通信装置１０２がアドレス生成情報を送信したほうが効率的である。また、応答側通信装置１０２の都合によって新しく応答を受信するアドレス（第２のアドレス）を変更させることも考えられる。また、例えば他の第３の通信装置からの指示に従って新しく応答を受信するアドレス（第２のアドレス）を変更させることも考えられる。さらに言えば、ネットワーク環境の変化や通信装置以外からの入力情報によって、アドレス生成情報を送信することも考えられる。
【００９６】
（３）要求側通信装置（第１の通信装置）１０１は、アドレス生成情報を受信し、アドレス生成情報を用いて応答を受信するためのアドレスを生成する。必要ならば、つまりアドレスの重複が発生する可能性があるならば、生成したアドレスがすでに他の端末に使用されていないか確認する。アドレスの重複が発生する場合には、自由度を与える。例えばαという情報を追加して、次のように第２のアドレスを生成する。
応答先アドレス（第２のアドレス）＝ＳＨＡ１（アドレス生成情報、α）
応答先アドレスにネットワークプレフィックス部が必要ならば、ネットワークプレフィックス部を付加する。この場合にはホスト識別部を、アドレス生成情報を用いて生成する。
【００９７】
要求側通信装置１０１は、生成した応答を受信するアドレス（第２のアドレス）を応答側通信装置（第２の通信装置）１０２に応答先指定要求メッセージ（第２の要求メッセージ）に含めて送信する。この応答先指定要求メッセージには、応答側通信装置１０２が応答先アドレスをアドレス生成情報から生成できるように必要な情報を含める。例えば、第２のアドレス生成に重複を回避するために情報αを用いたのであれば、αを含める。ネットワークプレフィックスを付加したのであれば、ネットワークプレフィックスの長さ、及び／またはネットワークプレフィックスの値を含める。
【００９８】
（４）応答側通信装置（第２の通信装置）１０２は、応答先指定要求メッセージ（第２の要求メッセージ）を受信し、応答メッセージの送信先に新しいアドレス（第２のアドレス）が指示されている場合には、そのアドレスがアドレス生成情報から生成できるか確認する。必要ならば情報αやネットワークプレフィックスの情報を加えて、アドレスを生成し比較する。
【００９９】
アドレス生成情報は、応答側通信装置（第２の通信装置）１０２が記憶しておいてもよい。応答先指定要求メッセージ（第２の要求メッセージ）にアドレス生成情報が含まれていてもよい。ただし、応答側通信装置１０２は自装置が生成したアドレス生成情報であるか確認できる必要がある。そのためにアドレス生成情報を記憶しておいてもよい。また、要求側通信装置（第１の通信装置）１０１のアドレス（第１のアドレス）を用いて生成しておいてもよい。この場合には応答先指定メッセージ（第２の要求メッセージ）の送信元アドレス（第１のアドレス）からアドレス生成情報を生成することができる。また、アドレス生成情報を記憶するのではなく、その生成に用いた情報を記憶しておいてもよい。例えば、アドレス生成情報の生成に秘密鍵を用いた場合にはその秘密鍵を記憶しておく。また例えば、乱数を生成し、その乱数をアドレス生成情報の生成に用いた場合にはその乱数を記憶しておく。乱数の場合には、アドレス生成情報メッセージ（第１の応答メッセージ）に含めて第１の通信装置１０１に送信し、応答先指定要求メッセージ（第２の要求メッセージ）に含めて送信してもらうことも考えられる。この場合には、応答側通信装置１０２は乱数の値を記憶しておく必要はない。
【０１００】
応答先のアドレス（第２のアドレス）がアドレス生成情報から生成できることが確認できた場合には、応答側通信装置１０２は応答先指定応答メッセージ（第２の応答メッセージ）を指示されたアドレス（第２のアドレス）に送信する。つまり応答先アドレス（第２のアドレス）は、攻撃者（第１の通信装置１０１）がターゲットをねらって決めたアドレスではなく、応答側通信装置（第２の通信装置）１０２が生成したアドレス生成情報から作成したアドレスであるため、応答先指定応答メッセージ（第２の応答メッセージ）がターゲットの攻撃に利用される可能性がほとんどないからである。
【０１０１】
応答先のアドレス（第２のアドレス）として指定されたアドレスが、アドレス生成情報から生成できなかった場合には、破棄する。または、要求側通信装置（第１の通信装置）１０１の送信元のアドレス（第１のアドレス）にエラーがあったことを通知してもよい。
以上、モバイルＩＰの経路最適化の片方向経路対応ではない場合について説明した。
【０１０２】
なお上記とモバイルＩＰの経路最適化の片方向経路対応の場合において、アドレス生成情報要求メッセージ（第１の要求メッセージ）はモバイルＩＰのＨｏＴＩメッセージと、アドレス生成情報メッセージ（第１の応答メッセージ）はモバイルＩＰのＨｏＴメッセージと、応答先指定要求メッセージ（第２の要求メッセージ）は本発明によるＣｏＴＩβメッセージと、応答先指定応答メッセージ（第２の応答メッセージ）は本発明によるＣｏＴβメッセージ、それぞれ対応している。
【０１０３】
＜第２の実施の形態＞
第１の実施の形態では図７（３）に示すように、生成したアドレスＣｏＡ（Care-of Address）をＣｏＴＩβメッセージによって通知しているが、第２の実施の形態では、ＣｏＴＩβ／ＣｏＴβメッセージを省略し、生成したアドレスＣｏＡをバインディング更新（ＢＵβ）メッセージによって通知する。図１７Ａ、図１７Ｂは、気付アドレステスト処理を省略した第２の実施の形態におけるホームアドレステスト処理、ＢＵ処理をそれぞれ示す。
【０１０４】
図１７Ａに示すホームアドレステスト処理では、モバイルＩＰと同様に、
（１）移動通信装置（ＭＮ）がＨｏＡを送信元アドレスとしてＨｏＴＩメッセージを相手先通信装置（ＣＮ）２に送信し、
（２）相手先通信装置２がＨｏＡ宛にＨｏＴメッセージを送信する。
ホームアドレステスト処理を行うことによって、移動通信装置１がＨｏＡを送信元としてＨｏＴＩメッセージを送信し、ＨｏＡで応答メッセージを受信したことがわかる。
【０１０５】
図１７Ｂに示すＢＵ処理では、
（３）移動通信装置１がＨｏＡを送信元アドレスとしてＢＵβメッセージをホームエージェント（ＨＡ）３経由で相手先通信装置（ＣＮ）２に送信し、
（４）相手先通信装置２がＣｏＡ宛にＢＡβメッセージを送信する（直接経路）。
【０１０６】
次に、図１８を用いて第２の実施の形態におけるメッセージ処理の概略を説明する。まず、移動通信装置１は、モバイルＩＰのホームアドレステスト処理を行う。具体的には、次のような処理を行う。
＜ホームアドレステスト処理＞
（１）移動通信装置１は相手先通信装置２にＨｏＴＩメッセージを送信する。
（２）相手先通信装置２は通常のモバイルＩＰのホームアドレステスト処理を行う。つまり、以下のようにＨｏＴＩメッセージの送信元アドレスであるＨｏＡ（home address）と、相手先通信装置２の秘密鍵（Kcn）と、相手先通信装置２が決めた乱数nonceを用いて、HMAC_SHA1によるHash計算を行い、Home Keygen Token（以下ではHome Tokenと記す。）を算出する。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
相手先通信装置２は、算出したHome Tokenの値とnonceを呼び出すための識別情報nonce-idを応答メッセージ（ＨｏＴメッセージ）に含めて送信する。
【０１０７】
＜ＣｏＡの生成＞
次に、移動通信装置１は、受信したＨｏＴメッセージに含まれる情報を用いてＣｏＡの生成を行う。移動通信装置１は、生成するＣｏＡのネットワークプレフィックスの領域は、変更することができないため、それ以外のホスト識別情報の領域をHome Tokenを用いて生成する。また、他のホストが既にアドレスを使用していて、アドレスの重複が発生した場合に、そのアドレスの衝突を回避するためにデータαを用いてＣｏＡ（Care-of Address）を生成する。
Care-of Address :=
First（64, HMAC_SHA1 （Home Token | α））
【０１０８】
＜バインディング更新処理＞
（３）移動通信装置１は、生成したＣｏＡと、ＣｏＡの生成に用いた情報αと、nonce-idとメッセージ認証コード（ＭＡＣ: Message Authentication Code）をＢＵβメッセージに付加して、相手先通信装置２に送信する。ＭＡＣの生成のために、バインディング管理キーKbmを次のように生成する。ＣｏＡの生成ではαを用いているため、KbmとＣｏＡが同一の値になることはない。
Kbm = HMAC_SHA1 （Home Token）
【０１０９】
メッセージ認証コードの生成では、ＢＵβメッセージの送信元アドレス（home address）と、宛先アドレス（correspondent node's address）と、メッセージデータ（MH Data）と、生成した鍵データ(Kbm)を用いる。
MAC = First （96, HMAC_SHA1 （Kbm, Mobility Data））
Mobility Data = home address | correspondent | MH Data
【０１１０】
＜ＣｏＡの確認とバインディング・キャッシュの設定＞
相手先通信装置２はＢＵβメッセージを受信すると、まず以下のように、Home Tokenの計算を行う。ＢＵβメッセージに含まれているnonce-idからnonceを呼び出す。ＢＵβメッセージの送信元アドレスＨｏＡと、呼び出したnonceと、相手先通信装置２の秘密鍵（Kcn）を用いてHome Tokenを計算する。
Home Token :=
First（64, HMAC_SHA1 （Kcn, （home address | nonce | 0）））
さらに、生成したHome TokenとＢＵβメッセージに含まれる情報αを用いて、ＣｏＡ(Care-of Address)を生成する。
Care-of Address :=
First（64, HMAC_SHA1 （Home Token | α））
生成したＣｏＡがＢＵβメッセージに含まれるＣｏＡと等しい場合には、相手先通信装置２は、応答メッセージをＣｏＡに送信してよいと判断する。
【０１１１】
さらに、相手先通信装置２は、メッセージ認証コードを次のように確認する。まず、生成したHome Tokenを用いて鍵データ（Kbm）を生成する。そして生成した鍵データ（Kbm）とメッセージデータ(Mobility Data)からメッセージ認証コード(MAC)を生成し、ＢＵβメッセージに含まれる認証コードと比較する。
Kbm = HMAC_SHA1 (Home Token)
MAC = First （96, HMAC_SHA1 （Kbm, Mobility Data））
Mobility Data = home address | correspondent | MH Data
【０１１２】
ここで、相手先通信装置２は、移動通信装置１のＨｏＡとＣｏＡの組のバインディング・キャッシュを登録するが、ＣｏＡ宛に送信して移動通信装置１に届くかどうかを確認していない。ＣｏＡ宛に送信することが、第三の端末に対するリフレクション攻撃とはならないため、相手先通信装置２は攻撃の踏み台に利用されることがない。そのため移動通信装置１が正しくＣｏＡを設定してＢＵβメッセージに設定すれば、ＣｏＡへの到達確認を省略することも可能といえる。また、悪意ある端末がＨｏＴメッセージを盗聴し、ＢＵβメッセージに不正なＣｏＡを設定して相手先通信装置２に送信するという危険に対しては、ＢＵβメッセージの送信元アドレスの改ざんを防ぐことや、盗聴を防ぐネットワーク環境を構築することなどで防ぐことが可能である。アドレスの改ざんを防ぐ方法としてはルータにおいて送信元アドレスをチェックするイングレス・フィルタリングといった技術がある。盗聴を防ぐネットワークとしては、リンクレイヤの暗号化や、ネットワークアクセス時に認証をとり、不特定の端末がネットワークに接続しないようにするなどの方法が考えられる。
（４）相手先通信装置２は、ＢＵβメッセージに対する応答として、ＢＡβメッセージを送信する。
【０１１３】
以上が図１８を用いたメッセージ処理の概略の説明である。次に、図１４及び図１５を用いて、第２の実施の形態における相手先通信装置（応答側通信装置）２及び移動通信装置（要求側通信装置）１の動作を説明する。
＜相手先通信装置（応答側通信装置）の構成＞
図１４は相手先通信装置（応答側通信装置）２のメッセージ処理部の構成を示すブロック図である。相手先通信装置２は、次のようなメッセージの送受信を行う。
（１）ＨｏＴＩメッセージを受信し、ＣｏＡ生成情報（Home Token）を含むＨｏＴメッセージを送信する。
（２）ＢＵβメッセージを受信してメッセージ内のメッセージ認証コードを認証し、ＢＡβメッセージを送信する。
【０１１４】
（１）のメッセージ送受信処理は、ＭＩＰ ＢＵ/RR処理部１３（及びメッセージ受信部１１、メッセージ 送信部１２）において行う。（２）のメッセージ送受信処理は、片方向ＢＵ/RR拡張処理部１３ａ（及びメッセージ受信部１１、メッセージ送信部１２）において行う。ＨｏＴメッセージの送信処理においてtoken, nonce idをメッセージに付加する場合、Nonce管理部１４及びToken生成部１５よりデータを取得する。Token生成部１５は、Nonce管理部１４よりNonceの値を取得し、受信した要求メッセージから取得したアドレスと鍵データKcnよりTokenの値を計算する。Nonce管理部１４は、Token管理部１４に渡したNonceの値に対応するNonce IDの値をＭＩＰ ＢＵ/RR処理部１３に渡す。Token生成部１５は、要求側通信装置１からの応答先アドレス生成情報の要求に応えてHome tokenを生成しているため、応答先アドレス生成情報生成部として機能している。
【０１１５】
ＢＵβメッセージの受信処理において、応答先アドレスの確認処理を行う場合、ＢＵβメッセージに含まれるhome nonce-idをNonce管理部１４に渡し、Nonceの値を取得する。取得したNonceの値とＢＵβメッセージの送信元アドレスであるＨｏＡをToken生成部１５に渡し、Tokenの値を取得する。取得したTokenの値とＢＵβメッセージに含まれる情報αを応答先アドレス確認部２０に渡し応答先アドレス（ＣｏＡ）を生成し、その生成したアドレスとＢＵβメッセージに含まれる応答先アドレスと一致するか比較する。比較する領域は、応答先アドレスからネットワークプレフィックスの領域を除いたホスト識別子の領域である。
【０１１６】
さらに、ＢＵβメッセージの受信処理においてメッセージ認証コードの作成と確認（認証）を行う場合、ＢＵβメッセージに含まれるhome nonce-idをNonce管理部１４に渡し、home nonceの値をそれぞれ取得する。取得したNonceの値とＢＵβメッセージ内に含まれるHome AddressをToken生成部１５にそれぞれ渡し、Home Tokenを生成する。取得した２つのtokenをKbm生成部１６に渡し、Kbmを生成する。生成したKbm及び受信したメッセージをメッセージ認証コード（ＭＡＣ）確認部１８に渡し、ＭＡＣの値を計算する。そしてＢＵβメッセージ内に含まれているＭＡＣの値と比較し、一致するかどうかチェックする。ＭＡＣのチェックに成功した場合には、Home AddressとCare-of Addressの対応関係をバインディング・キャッシュ（Binding Cache）１９（及び片方向ＲＯ拡張部１９ａ）に登録する。
【０１１７】
＜移動通信装置（要求側通信装置）の構成＞
図１５は移動通信装置（要求側通信装置）１のメッセージ処理部の構成を示すブロック図である。移動通信装置１は、次のようなメッセージの送受信を行う。
（１）ＨｏＴＩメッセージを送信し、ＣｏＡ生成情報（Home Token）を含むＨｏＴメッセージを受信する。
（２）ＣｏＡ生成情報（Home Token）からＣｏＡを生成して、ＣｏＡ及びメッセージ認証コードを含むＢＵβメッセージを送信し、ＢＡβメッセージを受信する。
【０１１８】
（１）のメッセージ送受信処理は、ＭＩＰ ＢＵ/RR処理部２３（及びメッセージ受信部２１、メッセージ 送信部２２）において行う。（２）のメッセージ送受信処理は、片方向ＢＵ/RR拡張処理部２３ａにおいて行う。ＨｏＴＩメッセージの送信処理では、Cookie生成部２４により作成したCookieの値をＨｏＴＩメッセージに入れる。メッセージに含めるCookieは、相手先通信装置２が応答メッセージに同じ値を含めて移動通信装置１に返すことになっている。これによって移動通信装置１は、要求メッセージと応答メッセージの対応づけを行うことができる。応答先アドレス生成情報要求部２９は、（１）のＨｏＴＩメッセージ送信で要求し、また、応答先アドレス生成部３０は、（２）においてＣｏＡ生成情報（Home Token）からＣｏＡを生成する。
【０１１９】
ＨｏＴＩメッセージの送信処理では、Home Tokenを要求する処理が、応答先アドレス生成情報（Home Token）を応答側通信装置２に要求するための処理であり、応答先アドレス生成情報要求部２９が存在していると見ることができる。ＨｏＴメッセージの受信処理では、移動通信装置１はＨｏＴメッセージに含まれるHome Tokenを応答先アドレス生成部３０に渡して、応答先アドレス（ＣｏＡ）を生成する。
【０１２０】
ＢＵβメッセージの送信処理では、応答先アドレス生成部３０より作成した応答先アドレスと応答先アドレス生成に用いた情報αを取得し、ＢＵβメッセージに付加する。また、ＢＵβメッセージ送信処理においては、受信したＨｏＴメッセージから取得したHome TokenをKbm生成部２５に渡し、Kbmを生成する。さらに送信するＢＵβメッセージと作成したKbmをメッセージ認証コード生成部２６に渡し、メッセージ認証コードを作成する。作成したメッセージ認証コードはＢＵβメッセージに付加し送信する。Binding Cache管理部２７（及び片方向ＲＯ拡張部２８）は、相手先通信装置２のBinding Cache１９を管理する。
【０１２１】
なお、上記実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されてもよいし、一部又はすべてを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブ ル・プロセッサーを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオ技術の適用などが可能性としてあり得る。
【産業上の利用可能性】
【０１２２】
本発明は、データやメッセージの送信側が受信側からの送信要求内の宛先アドレスを確認して、不正な第３者からの送信要求による攻撃を防止することに利用できる。また、片方向経路及び非対称経路においても従来技術と同等程度に安全性を保ちながら、経路最適化を実現可能とするためのバインディング更新前処理などに利用することができる。
【図面の簡単な説明】
【０１２３】
【図１】本発明の第１の実施の形態において相手先通信装置から移動通信装置への方向への片方向直接経路で通信を行う場合を示す説明図
【図２】本発明の第１の実施の形態において相手先通信装置から移動通信装置への方向への片方向の直接経路と迂回経路で通信を行う場合を示す説明図
【図３】不正なバインディング・キャッシュが攻撃に利用される例を示す説明図
【図４】モバイルＩＰのバインディング更新方法を示す説明図
【図５Ａ】本発明の第１の実施の形態におけるバインディング更新方法を示す説明図であって、ＨｏＴＩ及びＨｏＴメッセージの経路を示す説明図
【図５Ｂ】本発明の第１の実施の形態におけるバインディング更新方法を示す説明図であって、ＣｏＴＩβ及びＣｏＴβメッセージの経路を示す説明図
【図５Ｃ】本発明の第１の実施の形態におけるバインディング更新方法を示す説明図であって、ＢＵβ及びＢＡβメッセージの経路を示す説明図
【図６】気付アドレステスト処理がサービス攻撃に利用される例を示す説明図
【図７】本発明の一実施の形態におけるメッセージシーケンスを示す説明図
【図８】従来技術のモバイルＩＰのメッセージシーケンスを示す説明図
【図９】モバイルＩＰのメッセージフォーマットを示す説明図
【図１０】本発明の第１の実施の形態におけるメッセージシーケンスを示す説明図
【図１１】本発明の第１の実施の形態においてHome nonce idを格納するメッセージフォーマットを示す説明図
【図１２】本発明の第１の実施の形態においてprefix lengthを格納するメッセージフォーマットを示す説明図
【図１３】本発明の第１の実施の形態においてCare-of addressを格納するメッセージフォーマットを示す説明図
【図１４】本発明の第１の実施の形態において相手先通信装置の構成を示すブロック図
【図１５】本発明の第１の実施の形態において移動通信装置の構成を示すブロック図
【図１６】本発明の他の実施の形態におけるメッセージシーケンスを示す説明図
【図１７Ａ】本発明の第２の実施の形態を示す説明図であって、ＨｏＴＩ及びＨｏＴメッセージの経路を示す説明図
【図１７Ｂ】本発明の第２の実施の形態を示す説明図であって、ＢＵβ及びＢＡβメッセージの経路を示す説明図
【図１８】本発明の第２の実施の形態におけるメッセージシーケンスを示す説明図
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009011120.tif 000024
【図２】
2009011120.tif 000025
【図３】
2009011120.tif 000026
【図４】
2009011120.tif 000027
【図５Ａ】
2009011120.tif 000028
【図５Ｂ】
2009011120.tif 000029
【図５Ｃ】
2009011120.tif 000030
【図６】
2009011120.tif 000031
【図７】
2009011120.tif 000032
【図８】
2009011120.tif 000033
【図９】
2009011120.tif 000034
【図１０】
2009011120.tif 000035
【図１１】
2009011120.tif 000036
【図１２】
2009011120.tif 000037
【図１３】
2009011120.tif 000038
【図１４】
2009011120.tif 000039
【図１５】
2009011120.tif 000040
【図１６】
2009011120.tif 000041
【図１７Ａ】
2009011120.tif 000042
【図１７Ｂ】
2009011120.tif 000043
【図１８】
2009011120.tif 000044
【国際調査報告】
2009011120.tif 000045
2009011120.tif 000046
2009011120.tif 000047
2009011120.tif 000048