(57)【要約】【課題】メッセージ送受信時のセキュリティを向上させる通信装置を提供すること。【解決手段】クライアント２００から、第１の認証情報を含む第１のメッセージを受信するメッセージ受信部１０と、メッセージ受信部１０が受信した第１のメッセージから第１の認証情報を抽出し、抽出した第１の認証情報を予め定められた関数に入力した結果として出力される第２の認証情報を算出する検出情報算出部１３と、検出情報算出部１３が算出した第２の認証情報を含む第２のメッセージを生成する応答生成部１２と、応答生成部が生成した第２のメッセージをクライアント２００に送信するメッセージ送信部１５とを備えた。【選択図】        図２
2007258986.tif 000002
【特許請求の範囲】
【請求項１】
メッセージの認証に用いる認証情報を含むメッセージを、ネットワークを介して接続された端末装置に対して送信する通信装置であって、
前記端末装置から、第１の認証情報を含む第１のメッセージを受信する受信手段と、
前記受信手段が受信した前記第１のメッセージから前記第１の認証情報を抽出し、抽出した前記第１の認証情報を予め定められた関数に入力した結果として出力される第２の認証情報を算出する算出手段と、
前記認証情報算出手段が算出した前記第２の認証情報を含む第２のメッセージを生成する生成手段と、
前記生成手段が生成した前記第２のメッセージを前記端末装置に送信する送信手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記算出手段は、抽出した前記第１の認証情報を単調増加関数に入力した結果として出力される前記第２の認証情報を算出すること、
を特徴とする請求項１に記載の通信装置。
【請求項３】
前記算出手段は、入力された値と等しい値を出力する前記単調増加関数に、前記第１の認証情報を入力した結果として出力される前記第２の認証情報を算出すること、
を特徴とする請求項２に記載の通信装置。
【請求項４】
前記受信手段は、再送されたメッセージであることを検出する第１の検出情報を前記第１の認証情報として含む前記第１のメッセージを受信し、
前記算出手段は、前記受信手段が受信した前記第１のメッセージから前記第１の検出情報を抽出し、抽出した前記第１の検出情報を単調増加関数に入力した結果として出力された情報であって、再送されたメッセージであることを検出する第２の検出情報を前記第２の認証情報として算出すること、
を特徴とする請求項１に記載の通信装置。
【請求項５】
前記受信手段は、前記ネットワーク上での通信に関する設定情報を要求する前記第１のメッセージを受信し、
前記生成手段は、前記受信手段が受信した前記第１のメッセージで要求された前記設定情報をさらに含む前記第２のメッセージを生成すること、
を特徴とする請求項１に記載の通信装置。
【請求項６】
前記受信手段は、前記端末装置に依存しない情報である前記設定情報を要求する前記第１のメッセージを受信すること、
を特徴とする請求項５に記載の通信装置。
【請求項７】
前記受信手段は、ステートレレスＤＨＣＰｖ６（Ｄｙｎａｍｉｃ Ｈｏｓｔ Ｃｏｎｆｉｇｕｒａｔｉｏｎ Ｐｒｏｔｏｃｏｌ ｖｅｒｓｉｏｎ６）の情報要求メッセージである前記第１のメッセージを受信し、
前記生成手段は、前記受信手段が受信した前記第１のメッセージで要求された前記設定情報をさらに含み、ステートレレスＤＨＣＰｖ６の前記情報要求メッセージに対する応答メッセージである前記第２のメッセージを生成すること、
を特徴とする請求項５に記載の通信装置。
【請求項８】
メッセージの認証に用いる認証情報を含むメッセージを、ネットワークを介して接続された端末装置に対して送信する通信装置における通信方法であって、
前記端末装置から、第１の認証情報を含む第１のメッセージを受信する受信ステップと、
算出手段によって、前記受信ステップが受信した前記第１のメッセージから前記第１の認証情報を抽出し、抽出した前記第１の認証情報に対して減少しない値である第２の認証情報を算出する算出ステップと、
前記認証情報算出ステップが算出した前記第２の認証情報を含む第２のメッセージを生成する生成ステップと、
前記生成ステップが生成した前記第２のメッセージを前記端末装置に送信する送信ステップと、
を備えたことを特徴とする通信方法。
【請求項９】
メッセージの認証に用いる認証情報を含むメッセージを、ネットワークを介して接続された端末装置に対して送信する通信装置における通信プログラムであって、
前記端末装置から、第１の認証情報を含む第１のメッセージを受信する受信手順と、
前記受信手順が受信した前記第１のメッセージから前記第１の認証情報を抽出し、抽出した前記第１の認証情報に対して減少しない値である第２の認証情報を算出する算出手順と、
前記認証情報算出手順が算出した前記第２の認証情報を含む第２のメッセージを生成する生成手順と、
前記生成手順が生成した前記第２のメッセージを前記端末装置に送信する送信手順と、
をコンピュータに実行させる通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、再送攻撃を防止するための再送攻撃検出情報を含むメッセージを送信する通信装置、通信方法および通信プログラムに関するものである。
【背景技術】
【０００２】
次世代インターネット技術として注目されているＩＰｖ６（Internet Protocol Version 6）の特徴の一つとして、エンドホスト（クライアント）が複雑な設定作業をせずにネットワークに接続できるようにするための自動設定機能が挙げられる。自動設定機能のうち、ホストのＩＰアドレスおよびデフォルトルータの設定には、近隣探索機能と呼ばれる機能が利用される。
【０００３】
一方、ＤＮＳ（Domain Name System）サーバのアドレスのようなアプリケーションレベルの設定情報をクライアントに配布するためのプロトコルとして、ＤＨＣＰｖ６（Dynamic Host Configuration Protocol version6）が規定されている（非特許文献１）。
【０００４】
ＤＨＣＰｖ６には、アドレス設定のための機能も含まれているが、近隣探索機能を利用してアドレス設定を行うクライアントに対して、上記のようなアプリケーションレベルの設定情報をより簡便に配布するために、ＤＨＣＰｖ６の部分プロトコルであるステートレスＤＨＣＰｖ６が規定されている（非特許文献２）。
【０００５】
ステートレスＤＨＣＰｖ６では、情報要求（Information-request）および応答（Reply）という２つのメッセージを利用する。ＤＨＣＰｖ６クライアントは、情報要求メッセージをＤＨＣＰｖ６サーバに送信することにより、必要な設定情報を要求する。ＤＨＣＰｖ６サーバは応答メッセージによって情報要求メッセージに応答する。応答メッセージにはＤＮＳサーバアドレス等、個々のクライアントに依存しない設定情報が含まれる。すなわち、サーバ側ではクライアントに配布した情報の状態(state)を管理する必要がなく、その分サーバの実装を簡潔なものとすることができる。
【０００６】
ところで、インターネットの利用層が広がるにつれて、セキュリティに対する意識が高まっている。これに対応して、ＤＨＣＰｖ６などでは、セキュリティ機能をプロトコルの一部として規定している。ＤＨＣＰｖ６のセキュリティ機能は、クライアントとサーバで共有される秘密鍵を用いた電子署名による認証機能である。すなわち、クライアントおよびサーバは、交換するＤＨＣＰｖ６のメッセージに対して秘密鍵を用いて電子署名を付加し、受信した側ではその秘密鍵を利用して電子署名を検証することにより、正当な送信者からのパケットが途中で改竄されずに受信されたことを確認する。電子署名の部分を含む認証用の情報は、ＤＨＣＰｖ６のオプションの一つであるauthenticateオプションに含まれる。
【０００７】
プロトコル仕様の上では、この機能はステートレスＤＨＣＰｖ６にも適用できる。すなわち、情報要求メッセージまたは応答メッセージにauthentication(認証)オプションを挿入することで、ステートレスＤＨＣＰｖ６のセキュリティ機能を実現できる。
【０００８】
しかし、この認証機能を実現することにより、ステートレスＤＨＣＰｖ６の利点が損なわれる可能性がある。まず、個別のクライアントごとに認証のための鍵を管理する必要がある。さらに、上記の認証機能に組み込まれている再送攻撃防御の機能を実装するためには、個別のクライアントごとに、認証のために必要な前回そのクライアントから受信したメッセージの再送攻撃検出情報(replaydetection information)値と、そのクライアント宛に送信したメッセージの再送攻撃検出情報を記憶する必要が生じるためである。
【０００９】
これらの問題を解消するため、非特許文献３では、サーバのみが管理するクライアント非依存の秘密情報と、クライアントに固有の識別子(DUID, DHCP Unique Identifier)を用いて、動的、かつ決定的にクライアント固有の秘密鍵を生成し、各クライアントは自身の秘密鍵のみを保持するという方法を挙げている。この方法により、サーバがクライアントに固有の鍵を管理する必要はなくなる。また、非特許文献１では、再送攻撃検出情報の値として、システムの現在時刻を用いる方法を例として挙げている。時刻のように単一システム内で常に単調に増加する値を利用して再送攻撃検出情報を生成すれば、過去の履歴を記録することなく送信メッセージの再送攻撃検出情報の値が単調に増加することを保証できる。
【００１０】
一方、このような再送攻撃を防ぐための別な手法として、いわゆるチャレンジ・レスポンス方式が知られている（例えば、特許文献１）。チャレンジ・レスポンス方式では、例えば、クライアントからの送信メッセージには予測困難な乱数値を含む値を挿入し、サーバは、応答メッセージにその値をコピーした上で電子署名を付けて返送する。クライアントは、自身が送信したメッセージに挿入した値と、サーバからの応答に含まれる値とを比較し、これらが一致し、かつ電子署名の検証に成功すれば、そのメッセージが信用できると判断する。ここで、クライアントが挿入するメッセージが短期間のうちに繰り返し現れることがなければ、サーバからの応答メッセージに対する再送攻撃の防御法として成立する。
【００１１】
【特許文献１】特開２００４−２７４１３４号公報
【非特許文献１】R. Droms et al.、"RFC 3315、 Dynamic Host Configuration Protocol for IPv6     (DHCPv6)"、［online］、 July 2003、 retrieved from the Internet: ＜URL: http://www.ietf.org/rfc/rfc3315.txt＞
【非特許文献２】R. Droms.、"RFC 3736、 Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6"、［online］、 April 2004、 retrieved from the Internet: ＜URL: http://www.ietf.org/rfc/rfc3736.txt＞
【非特許文献３】R. Droms et al.、"RFC 3118、 Authentication for DHCP Messages"、［online］、 June 2001、 retrieved from the Internet: ＜URL: http://www.ietf.org/rfc/rfc3118.txt＞
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、非特許文献１の方法では、サーバ側にクライアント固有の情報を保存する必要はないが、後述するような、クライアントが送信したメッセージを第三者が再利用できるような環境では、当該クライアントに対する再送攻撃が防止できない場合があるという問題があった。
【００１３】
例えば、ある正当なクライアントがサーバにメッセージを送信し、サーバがそれに応答した場合であって、サーバからクライアントへの応答メッセージの再送攻撃検出情報の値が１００であったとする。ここで、悪意のある第三者がクライアントからサーバへのメッセージを再利用してサーバに送信したとすると、サーバはそれに対して応答を返すが、そのときの値は１００より大きくなる。
【００１４】
従って、第三者は、そのメッセージを保存しておけば、将来正当なクライアントに対する再送攻撃の材料として使うことが可能となる。クライアント側で記録している再送攻撃検出情報の値は１００であり、この第三者はそれより大きな値を持つ応答メッセージを保持しているからである。
【００１５】
また、特許文献１の方法では、チャレンジ・レスポンス方式により再送攻撃を回避することが可能となるが、標準プロトコルの拡張が必要になるという問題があった。すなわち、ＤＨＣＰｖ６のように既に単調増加型の再送攻撃検出情報による再送攻撃の回避方法を導入しているプロトコルでチャレンジ・レスポンス方式を実現するには、プロトコルを拡張し、その拡張の標準化の過程を経なければ利用できないためである。また、この場合はサーバ側、クライアント側ともに実装の変更が必要となる。
【００１６】
本発明は、上記に鑑みてなされたものであって、サーバ側にクライアント固有の情報を保存することなく、かつ、プロトコル仕様やクライアントの実装を変更せずに、メッセージ送受信時のセキュリティを向上させることができる通信装置、通信方法および通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述した課題を解決し、目的を達成するために、本発明は、メッセージの認証に用いる認証情報を含むメッセージを、ネットワークを介して接続された端末装置に対して送信する通信装置であって、前記端末装置から、第１の認証情報を含む第１のメッセージを受信する受信手段と、前記受信手段が受信した前記第１のメッセージから前記第１の認証情報を抽出し、抽出した前記第１の認証情報を予め定められた関数に入力した結果として出力される第２の認証情報を算出する算出手段と、前記認証情報算出手段が算出した前記第２の認証情報を含む第２のメッセージを生成する生成手段と、前記生成手段が生成した前記第２のメッセージを前記端末装置に送信する送信手段と、を備えることを特徴とする。
【００１８】
また、本発明は、上記装置を実行することができる通信方法および通信プログラムである。
【発明の効果】
【００１９】
本発明によれば、受信したメッセージから抽出したメッセージの認証情報を用いて単調増加する値である認証情報を算出し、算出した認証情報を含むメッセージを返信することができる。このため、サーバ側にクライアント固有の情報を保存する必要がなく、また、既存のプロトコルおよびクライアントの実装を変更することなく、メッセージ送受信時のセキュリティを向上させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明にかかる通信装置、通信方法および通信プログラムの最良な実施の形態を詳細に説明する。
【００２１】
本実施の形態にかかる通信装置は、クライアントから受信したメッセージから認証情報を抽出し、抽出した認証情報を単調増加関数に入力して得られた値を、返信するメッセージの認証情報として設定し、クライアントに送信するものである。ここで、認証情報とは、メッセージの認証に用いる情報をいい、再送攻撃を検出するための再送攻撃検出情報などが含まれる。
【００２２】
図１は、本実施の形態にかかる通信装置であるサーバ１００を含む通信システム全体の構成を示す説明図である。同図に示すように、通信システムは、ＤＨＣＰｖ６の情報要求メッセージを送信するクライアント２００ａ、２００ｂ（以下、単にクライアント２００という。）と、情報要求メッセージに対するＤＨＣＰｖ６の応答メッセージを返信するサーバ１００とが、ＬＡＮ（Local Area Network）３００を介して接続されて構成されている。
【００２３】
なお、以下では、ＬＡＮ３００はＩＰｖ６に従い構成されたネットワークであり、サーバ１００は、ステートレスＤＨＣＰｖ６に従ってＤＮＳサーバのアドレス情報等を提供するＤＨＣＰｖ６サーバであるものとして説明するが、ネットワークプロトコルはこれらに限られるものではなく、単調増加する識別子を用いて再送攻撃を検出するための情報を含んだメッセージを相互に送受信するものであれば、あらゆるプロトコルに本実施の形態の手法を適用できる。
【００２４】
また、サーバ１００とクライアント２００とは同一ＬＡＮ３００上に存在するものに限られず、リレーエージェントとよばれる中継装置を介して、インターネット上で接続できる異なるＬＡＮ上で接続するように構成してもよい。
【００２５】
ここで、再送攻撃を検出する一般的な方法について説明する。ステートレスＤＨＣＰｖ６の規格では、上述のようにauthenticateオプションにより認証機能を実現でき、再送攻撃検出機能は、この認証機能の中に組み込まれている。
【００２６】
再送攻撃を検出するために、メッセージを送信するクライアントおよびサーバは、再送攻撃を検出するための情報である再送攻撃検出情報をメッセージに付加する。具体的には、メッセージを送信するごとに、単調に増加する値を再送攻撃検出情報としてメッセージに付加する。メッセージを受信する側では、送信元のクライアントまたはサーバごとに前回の再送攻撃検出情報の値を記憶しておき、新たに受信したメッセージの再送攻撃検出情報の値と比較して、値が増加していれば、不正に再送されたものではないと判断する。
【００２７】
このように、再送攻撃防御の機能を実現するためには、受信したメッセージの再送攻撃検出情報の値と、送信したメッセージの再送攻撃検出情報を通信相手となる装置ごとに管理する必要がある。
【００２８】
再送攻撃検出情報のうち、クライアントから受信したメッセージについては、ステートレスＤＨＣＰｖ６での利用に限って再送攻撃の可能性を考慮しないという対応、すなわち、サーバ側では再送攻撃検出情報を管理しないという対応も成り立ちうる。
【００２９】
ステートレスＤＨＣＰｖ６で配布する情報は、共有ＤＮＳサーバのアドレスのようなクライアントに依存しない情報であることが普通であり、またクライアントごとに応答するか否かを制御する必要性も薄いため、このような対応であっても問題が生じる可能性は低い。一方、この場合には、個別のクライアントから過去に送られた再送攻撃検出情報をサーバにおいて管理する必要がなくなるという利点がある。以下の説明では、クライアントから受信したメッセージの再送攻撃検出情報については、このようにサーバ側では値を管理しないことを前提とする。
【００３０】
一方、クライアントに対して送信するメッセージの再送攻撃検出情報については、再送攻撃の対象とならないよう、その値が常に単調に増加するように保証する必要がある。クライアントに対する応答メッセージが不正な第三者に再利用できるようになっている場合には、例えば、すでに無効になった過去のメッセージをクライアントに送信して信用させるという攻撃が成立するからである。
【００３１】
このため、従来は、クライアントへの送信メッセージの再送攻撃検出情報を個別に記憶する方法や、システムの現在時刻を利用する方法が取られていたが、サーバのメモリ量の増大や実装の複雑化、クライアントに対する再送攻撃が防止できない場合があるなどの問題が生じていた。
【００３２】
本実施の形態にかかるサーバ１００では、以下に述べるように、クライアント・サーバ間での１対１パケット交換に基づくプロトコルで、単調増加型の再送攻撃検出情報による再送攻撃の回避方法が利用されている場合に、サーバ１００側にクライアント２００固有の状態を一切持たせず、また既存のプロトコル仕様やクライアント２００の実装を変更せずに、サーバメッセージの再利用による再送攻撃を防止することができる。
【００３３】
次に、サーバ１００の構成の詳細について説明する。図２は、本実施の形態にかかるサーバ１００の構成を示すブロック図である。
【００３４】
同図に示すように、サーバ１００は、メッセージ受信部１０と、メッセージ検証部１１と、応答生成部１２と、検出情報算出部１３と、メッセージ署名部１４と、メッセージ送信部１５と、記憶部２１とを備えている。
【００３５】
メッセージ受信部１０は、クライアント２００が送信したメッセージを受信し、メッセージ検証部１１に渡すものである。
【００３６】
メッセージ検証部１１は、受信したメッセージの正当性を検証するものである。具体的には、メッセージ検証部１１は、事前に入手したクライアント２００の秘密鍵を用いて、受信したメッセージに付加された電子署名の検証を行う。
【００３７】
応答生成部１２は、受信したメッセージに対応する応答メッセージを生成するものである。例えば、応答生成部１２は、クライアント２００がＤＮＳサーバアドレスなどの設定情報の提供を要求するＤＨＣＰｖ６の情報要求メッセージを送信した場合に、それに応じた設定情報を含むＤＨＣＰｖ６の応答（Reply）である応答メッセージを生成する。
【００３８】
検出情報算出部１３は、受信したメッセージの再送攻撃検出情報を基に応答メッセージの再送攻撃検出情報を算出するものである。具体的には、検出情報算出部１３は、受信したメッセージ内の再送攻撃検出情報を抽出し、抽出した再送攻撃検出情報の値を単調増加関数に入力して、当該関数の出力として得られる値を、応答メッセージの再送攻撃検出情報として算出する。
【００３９】
メッセージ署名部１４は、生成された再送攻撃検出情報を含む応答メッセージに、事前に入手したクライアント２００の秘密鍵を用いて電子署名を付加するものである。
【００４０】
メッセージ送信部１５は、電子署名が付加された応答メッセージをクライアント２００に送信するものである。
【００４１】
記憶部２１は、メッセージ検証部１１およびメッセージ署名部１４が利用するクライアント２００ごとの秘密鍵など、メッセージ送受信で用いる情報を記憶するものであり、ＨＤＤ（hard disk drive）、光ディスク、メモリカード、ＲＡＭ（Random Access Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００４２】
次に、このように構成された本実施の形態にかかるサーバ１００による通信処理について説明する。図３は、本実施の形態における通信処理の全体の流れを示すフローチャートである。なお、以下では、クライアント２００からＤＨＣＰｖ６の情報要求メッセージが送信され、それを受信したＤＨＣＰｖ６サーバであるサーバ１００から応答メッセージを返信する処理を例に説明する。
【００４３】
まず、メッセージ受信部１０が、クライアント２００が送信された情報要求メッセージを受信する（ステップＳ３０１）。次に、メッセージ検証部１１が、クライアント２００の秘密鍵を用いて、受信した情報要求メッセージの正当性を検証する（ステップＳ３０２）。
【００４４】
次に、メッセージ検証部１１は、検証に成功したか否かを判断し（ステップＳ３０３）、成功した場合は（ステップＳ３０３：ＹＥＳ）、応答生成部１２が、情報要求メッセージに対する応答メッセージを生成する（ステップＳ３０４）。
【００４５】
次に、検出情報算出部１３は、受信した情報要求メッセージ内の再送攻撃検出情報を抽出する（ステップＳ３０５）。ＤＨＣＰｖ６では、ＲＤＭ（Replay Detection Method）フィールドに再送攻撃検出情報が格納されているため、検出情報算出部１３は、当該フィールドから再送攻撃検出情報を抽出することができる。
【００４６】
次に、検出情報算出部１３は、抽出した再送攻撃検出情報を単調増加関数に入力し、関数の出力として得られる再送攻撃検出情報を算出する（ステップＳ３０６）。ここで、単調増加関数とは、以下の（１）式の条件を満たす関数ｆ（ｘ）をいう。
ｘ１≦ｘ２ならばｆ（ｘ１）≦ｆ（ｘ２）      ・・・（１）
【００４７】
例えば、入力された値と等しい値を出力する恒等関数（ｆ（ｘ）＝ｘ）や、恒等関数に正の整数を加えた関数（例えば、ｆ（ｘ）＝ｘ＋１）などが単調増加関数に該当する。なお、入力される再送攻撃検出情報の取りうる値の範囲は有限であるが、上限値に達した場合には０に戻って比較し直す方法を用いることが普通である。ここでもそのような方法を仮定するが、簡略化のため、単に「単調増加」と表現する。また、取りうる範囲が有限であることから、例えば、ｆ（ｘ）＝２ｘのように、算出される値が当該範囲を大きく超える可能性が高くなる関数は用いないことが望ましい。
【００４８】
クライアント２００から送信されるメッセージの再送攻撃検出情報は、クライアント２００側でメッセージごとに単調に増加する値が設定されているため、この値を単調増加関数に入力して得られる結果は、同様にメッセージごとに単調に増加する値となる。従って、サーバ１００側でこのように算出した値を応答メッセージの再送攻撃検出情報として設定すれば、クライアント２００での再送攻撃の検出処理に用いることができる。
【００４９】
このように、受信した再送攻撃検出情報を用いて応答メッセージの再送攻撃検出情報を算出することができるため、クライアント２００に送信した過去の再送攻撃検出情報を保存しておく必要がない。
【００５０】
なお、この効果は、ステートレスＤＨＣＰｖ６のように、サーバ１００側にクライアント２００固有の情報を持たせず、軽量に実装するのが望ましい場合に特に有益である。クライアント２００単位にアドレスを割り当ててその状態を管理する一般のＤＨＣＰｖ６では、サーバ１００は本質的にクライアント固有の情報を管理する必要があるので、メッセージの認証でも過去の再送攻撃検出情報を記録するという単純な方法が利用できるためである。
【００５１】
次に、メッセージ署名部１４が、ステップＳ３０４で生成された応答メッセージと、ステップＳ３０６で算出された再送攻撃検出情報の値とから、認証のための電子署名を行い、その結果を応答メッセージに付加する（ステップＳ３０７）。
【００５２】
次に、メッセージ送信部１５が、情報要求に対する応答、再送攻撃検出情報、および電子署名を含む応答メッセージをクライアント２００に送信する（ステップＳ３０８）。
【００５３】
ステップＳ３０３で、検証に成功しなかったと判断した場合は（ステップＳ３０３：ＮＯ）、メッセージ検証部１１は、受信した情報要求メッセージを破棄して通信処理を修了する（ステップＳ３０９）。
【００５４】
次に、本実施の形態にかかるサーバ１００による通信処理の具体例について説明する。まず、従来の技術による通信処理で生じる問題について説明する。
【００５５】
図４は、従来の技術による通信処理で送受信されるメッセージの一例を示す説明図である。同図は、非特許文献１のように、再送攻撃検出情報の値としてサーバのシステムの現在時刻を用いる方法によりメッセージを送受信する例を示している。
【００５６】
まず、クライアント２００から、再送攻撃検出情報として「１００」を含む情報要求メッセージを送信する（ステップＳ４０１）。これに対し、従来のサーバは、システムの現在時刻として例えば「１２：００」を含む応答メッセージをクライアント２００に送信する（ステップＳ４０２）。
【００５７】
ここで、不正なクライアントが、クライアント２００の情報要求メッセージを不正に入手してサーバに再送したとすると（ステップＳ４０３）、サーバでは再送攻撃検出をしないため、このメッセージを受理し、サーバはシステムの現在時刻として例えば「１２：０１」を含む応答メッセージを、不正なクライアントに対して送信する（ステップＳ４０４）。
【００５８】
このように、不正なクライアントは、最初にクライアント２００が返信されたメッセージの再送攻撃検出情報の値「１２：００」より大きい値を含む応答メッセージを入手することができる。この後、クライアント２００が、再度情報要求メッセージを送信した際(ステップＳ４０５)、不正なクライアントが、入手した応答メッセージをクライアント２００へ送信すると（ステップＳ４０６）、クライアント２００は、前回受信した値より大きい値の再送攻撃検出情報を含む応答メッセージであるため、不正なメッセージであることを検出できない。
【００５９】
次に、本実施の形態による通信処理で、このような問題が解決できることについて説明する。図５は、本実施の形態にかかるサーバ１００による通信処理で送受信されるメッセージの一例を示す説明図である。ここでは、サーバ１００は恒等関数により応答メッセージの再送攻撃検出情報を算出するものとする。
【００６０】
まず、クライアント２００から、再送攻撃検出情報として「１００」を含む情報要求メッセージを送信する（ステップＳ５０１）。サーバ１００は、受信した情報要求メッセージの再送攻撃検出情報と同じ値（１００）の再送攻撃検出情報を含む応答メッセージをクライアント２００に送信する（ステップＳ５０２）。
【００６１】
ここで、不正なクライアントが、クライアント２００の情報要求メッセージを不正に入手してサーバ１００に再送したとすると（ステップＳ５０３）、サーバ１００は、再度、受信した情報要求メッセージの再送攻撃検出情報と同じ値（１００）の再送攻撃検出情報を含む応答メッセージを生成し、不正なクライアントに対して送信する（ステップＳ５０４）。
【００６２】
この後、クライアント２００が、再度情報要求メッセージを送信した際(ステップＳ５０５)、たとえ不正なクライアントが、クライアント２００へこの応答メッセージを返信しても（ステップＳ５０６）、クライアント２００は、前回受信した値と同じ値の再送攻撃検出情報を含む応答メッセージであるため、不正なメッセージであることを検出することが可能となる。
【００６３】
なお、クライアント２００はＤＨＣＰｖ６認証仕様に従う装置であるから、送信される情報要求メッセージの再送攻撃検出情報の値はメッセージとともに単調に増加する値を設定している。従って、サーバ１００からの応答に含まれる再送攻撃検出情報の値も単調に増加する。すなわち、単純にサーバ１００からの応答を再利用する再送攻撃は成立しない。
【００６４】
また、サーバ１００では、クライアント２００から受信したメッセージ内の情報を所定の関数に入力して算出した値を、応答メッセージの再送攻撃検出情報として利用できるため、サーバ１００内に、クライアントごとの再送攻撃検出情報を保持する必要がない。
【００６５】
さらに、クライアント２００の動作として仮定されているのは、既存のＤＨＣＰｖ６の認証プロトコルに準拠することだけであるため、プロトコル仕様およびクライアント２００の実装を変更する必要がない。
【００６６】
このように、本実施の形態にかかる通信装置では、サーバ側にクライアント固有の状態を一切持たせず、また既存のＤＨＣＰｖ６のプロトコル仕様やクライアントの実装を変更せずに、サーバから送信されたメッセージの再利用による再送攻撃を防止できる。
【００６７】
図６は、本実施の形態にかかる通信装置のハードウェア構成を示す説明図である。
【００６８】
本実施の形態にかかる通信装置は、ＣＰＵ（Central Processing Unit）５１などの制御装置と、ＲＯＭ（Read Only Memory）５２やＲＡＭ５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、ＨＤＤ（Hard Disk Drive）、ＣＤ（Compact Disc）ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス６１を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００６９】
本実施の形態にかかる通信装置で実行される通信プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact Disk Recordable）、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００７０】
また、本実施の形態にかかる通信装置で実行される通信プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態にかかる通信装置で実行される通信プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００７１】
また、本実施の形態の通信プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００７２】
本実施の形態にかかる通信装置で実行される通信プログラムは、上述した各部（メッセージ受信部、メッセージ検証部、応答生成部、検出情報算出部、メッセージ署名部、メッセージ送信部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ５１（プロセッサ）が上記記憶媒体から通信プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【００７３】
以上のように、本発明にかかる通信装置、通信方法および通信プログラムは、再送攻撃を防止するための再送攻撃検出情報を含むメッセージを送信する通信装置に適している。
【図面の簡単な説明】
【００７４】
【図１】本実施の形態にかかる通信装置であるサーバを含む通信システム全体の構成を示す説明図である。
【図２】本実施の形態にかかるサーバの構成を示すブロック図である。
【図３】本実施の形態における通信処理の全体の流れを示すフローチャートである。
【図４】従来の技術による通信処理で送受信されるメッセージの一例を示す説明図である。
【図５】本実施の形態にかかるサーバによる通信処理で送受信されるメッセージの一例を示す説明図である。
【図６】本実施の形態にかかる通信装置のハードウェア構成を示す説明図である。
【符号の説明】
【００７５】
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  通信Ｉ／Ｆ
６１  バス
１０  メッセージ受信部
１１  メッセージ検証部
１２  応答生成部
１３  検出情報算出部
１４  メッセージ署名部
１５  メッセージ送信部
２１  記憶部
１００  サーバ
２００ａ、２００ｂ  クライアント
３００  ＬＡＮ
【図１】
2007258986.tif 000003
【図２】
2007258986.tif 000004
【図３】
2007258986.tif 000005
【図４】
2007258986.tif 000006
【図５】
2007258986.tif 000007
【図６】
2007258986.tif 000008