(57)【特許請求の範囲】
【請求項１】
暗号化通信路外の複数の通信端末からユーザメッセージを受信すると、前記各ユーザメッセージを暗号化およびカプセル化して暗号化通信路上の対向装置に転送し、前記暗号化通信路上で前記ユーザメッセージを前記対向装置へ中継する中継装置から前記ユーザメッセージに基づいて送信される暗号化およびカプセル化された前記ユーザメッセージの少なくとも一部を含む通信制御用メッセージを受信すると、前記通信制御用メッセージを復号およびデカプセル化して前記暗号化通信路外の所定の送信先に転送する暗号化通信装置において、
前記各通信端末からの各ユーザメッセージを前記対向装置に転送する際に、前記各ユーザメッセージを転送する各暗号化通信路に関する暗号化通信路情報と前記各ユーザメッセージの送信元である各通信端末のアドレスとの対応付けに関するアドレス情報を記憶する記憶部と、
暗号化された前記ユーザメッセージに、当該ユーザメッセージに対応する暗号化通信路情報を暗号化せずに付加して前記対向装置に転送する送信部と、
前記送信部から送信されたユーザメッセージに暗号化せずに付加された暗号化通信路情報を含む前記通信制御用メッセージを前記中継装置から受信する受信部と、
前記受信部が受信した通信制御用メッセージを用いて当該通信制御用メッセージの送信先を判断する送信先判断部と、
前記受信部が受信した通信制御用メッセージ内から前記暗号化通信路情報を抽出し、当該抽出した暗号化通信路情報および前記記憶部が記憶するアドレス情報に基づいて、前記送信先判断部が判断した送信先に対応する前記通信制御用メッセージの送信先アドレスを決定する送信アドレス決定部と、
を備え、
前記暗号化通信路情報は、前記各暗号化通信路に転送されるユーザメッセージ毎に割り当てられるメッセージ識別情報および前記暗号化通信路を識別する通信路識別情報を含み、
前記メッセージ識別情報は、前記各暗号化通信路に転送されるユーザメッセージ毎にカウントアップされて、前記ユーザメッセージを暗号化する際に付加される暗号化ヘッダ内のシーケンス番号であり、
前記通信路識別情報は、前記各暗号化通信路を識別するＳＰＩ値であることを特徴とする暗号化通信装置。
【請求項２】
前記送信アドレス決定部は、
前記送信先判断部が前記通信制御用メッセージの送信先は当該通信制御用メッセージに対応するユーザメッセージを送信した通信端末であると判断した場合、前記通信制御用メッセージの送信先アドレスを前記通信路識別情報および前記メッセージ識別情報に対応した通信端末のアドレスに決定し、
前記送信先判断部が前記通信制御用メッセージの送信先は当該通信制御用メッセージに対応するユーザメッセージが転送された暗号化通信経路を用いる通信端末であると判断した場合、前記通信制御用メッセージの送信先アドレスを前記通信路識別情報に対応した暗号化通信経路を用いる通信端末のアドレスに決定することを特徴とする請求項１に記載の暗号化通信装置。
【請求項３】
前記記憶部は、前記アドレス情報を前記各ユーザメッセージ毎に所定のタイミングで消去することを特徴とする請求項１または２に記載の暗号化通信装置。
【請求項４】
前記送信部は、前記ユーザメッセージを暗号化した際に用いた暗号化のパラメータに関する暗号化パラメータ情報を、当該ユーザメッセージに付加して前記対向装置に送信するとともに、前記中継装置は前記暗号化パラメータ情報が付加された通信制御用メッセージを送信し、
前記受信部が前記暗号化パラメータ情報を付加された通信制御用メッセージを前記中継装置から受信すると、前記暗号化パラメータ情報を用いて前記通信制御用メッセージ内のユーザメッセージを復号する復号部をさらに備えることを特徴とする請求項１に記載の暗号化通信装置。
【請求項５】
前記送信部は、前記対向装置に送信するユーザメッセージに当該ユーザメッセージの送信元の通信端末を識別する端末識別情報を付加して送信するとともに、前記中継装置は、前記ユーザメッセージに付加された端末識別情報を前記通信制御用メッセージに含めたメッセージサイズで前記通信制御用メッセージを送信し、
前記復号部は、前記ユーザメッセージに付加された端末識別情報を復号し、
前記送信アドレス決定部は、前記復号された端末識別情報および前記記憶部が記憶するアドレス情報に基づいて、前記送信先判断部が判断した送信先に対応する前記通信制御用メッセージの送信先アドレスを決定することを特徴とする請求項４に記載の暗号化通信装置。
【請求項６】
前記送信アドレス決定部は、
前記送信先判断部が前記通信制御用メッセージの送信先は当該通信制御用メッセージに対応するユーザメッセージを送信した通信端末であると判断した場合、前記通信制御用メッセージの送信先アドレスを前記端末識別情報に対応した通信端末のアドレスに決定し、
前記送信先判断部が前記通信制御用メッセージの送信先は当該通信制御用メッセージに対応するユーザメッセージが転送された暗号化通信経路を用いる通信端末であると決定した場合、前記通信制御用メッセージの送信先アドレスを前記通信路識別情報に対応した暗号化通信経路を用いる通信端末のアドレスに決定することを特徴とする請求項５に記載の暗号化通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トンネル通信路上の通信制御用メッセージをトンネル通信路外の通信端末に転送する暗号化通信装置に関するものである。
【背景技術】
【０００２】
複数の通信ネットワークを接続してデータ転送する技術として、カプセル化トンネル通信がある。カプセル化トンネル通信は、データ送信元のユーザ端末やデータ受信先のユーザ端末が送受信するＩＰ（Internet Protocol）メッセージを、通信経路上の通信装置がＩＰを使用した他のプロトコルメッセージに内包（カプセル化）して通信網内をトンネルのように転送させている。このカプセル化トンネル通信では、カプセル化処理を終端する通信装置は、トンネル通信路上で発生したＩＣＭＰ（Internet Control Message Protocol）エラー通知メッセージをユーザ端末に通知するため、特別な中継動作を行う必要があった。
【０００３】
例えば、トンネルモードのＥＳＰ（Encapsulating Security Payload）暗号化を行うＩＰＳＥＣ（IP Security）環境では、ＩＰＳＥＣを終端する暗号化通信装置がＩＰＳＥＣメッセージにカプセル化処理を行い、トンネル通信路（ＩＰＳＥＣ＿ＳＡ（以下、ＳＡ（Security Association）という場合がある）を使用してカプセル化されたＩＰＳＥＣメッセージの送受信を行う。
【０００４】
このようなトンネル通信路においては、暗号化通信装置が送信するＩＰＳＥＣメッセージに対して、トンネル通信路上のルータが元のＩＰＳＥＣメッセージを含んだＩＣＭＰ＿ＭＴＵ（Maximum Transmission Unit）超過メッセージ等を応答通知する場合がある。
【０００５】
従来の暗号化通信装置は、このＩＣＭＰエラー通知メッセージを発信側のユーザ端末（発側端末）に送信するため、ＩＣＭＰエラー通知メッセージに含まれる元のＩＰＳＥＣメッセージの一部分を取り出している。そして、この元のＩＰＳＥＣメッセージの宛先アドレス（対向する暗号化通信装置のアドレス）、ＩＰＳＥＣプロトコルの種別、ＳＡを識別するためのＳＰＩ（Security Parameters Index）値をキーとして、暗号化通信装置が保持するＳＡに関するＤＢ（ＳＡＤＢ（SA DataBase））を検索し、発側端末のアドレス範囲を絞り込んでいる。
【０００６】
暗号化通信装置は、この動作によって発側端末のアドレスを所定の範囲まで絞り込めた場合には、ＩＰＳＥＣにより追加されるＩＰＳＥＣヘッダ長を考慮して経路ＭＴＵ値を計算し所定の発側端末へ送信していた。また、発側端末が複数考えられる場合は、その可能性の有る全ての発側端末（所定のアドレス範囲）にＩＣＭＰエラー通知メッセージを送信していた。
【０００７】
一方、発側端末のアドレス範囲を特定できない場合、暗号化通信装置、ＩＣＭＰエラー通知メッセージの情報（例えば経路ＭＴＵ値）を自身の保持するＳＡＤＢに保存しておく。その後、暗号化通信装置に後続の発側端末からのＩＰメッセージが到着し、そのＩＰメッセージ長が、該当するＳＡの経路ＭＴＵ値より大きい場合には、その発側端末へＩＣＭＰエラー通知メッセージを送信することでＩＣＭＰ応答を返す方法も提案されている（非特許文献１）。
【０００８】
また、トンネルモードＥＳＰ暗号化を行うＩＰＳＥＣ環境では、ＩＣＭＰエラー通知メッセージの正当性を確認するため、暗号化通信装置は対向する暗号化通信装置にＭＴＵ確認要求メッセージを送信し、対向する暗号化通信装置では確認要求メッセージが経路上で実際にフラグメントされたことを確認するＭＴＵ確認応答メッセージを応答する方法がある。この方法では、暗号化通信装置は、使用しているＳＡ上で実際にフラグメントが発生することを確認した上で、発側端末へＩＣＭＰエラー通知メッセージを送信しＩＣＭＰエラー通知メッセージに関するセキュリティ的防御を実現している（特許文献１）。
【０００９】
また、ＩＰメッセージを別のＩＰメッセージでカプセル化するようなＩＰ−ｉｎ−ＩＰ環境でもトンネルモードＥＳＰ暗号化を行うＩＰＳＥＣ環境と同様な問題は発生する。ＩＰ−ｉｎ−ＩＰ環境でのＩＰ−ｉｎ−ＩＰカプセル化装置は、ＩＰ−ｉｎ−ＩＰトンネル経路上のルータからＩＣＭＰエラー（ＭＴＵ超過など）通知メッセージを受信すると、このＩＣＭＰエラー通知メッセージに含まれる元のＩＰ−ｉｎ−ＩＰメッセージを取り出し、このＩＰ−ｉｎ−ＩＰメッセージのフローＩＤ（通信路用番号：ＩＰＳＥＣ環境に於けるＳＰＩ値）とＭＴＵ値とを対応付けて記憶しておき、ＩＣＭＰエラー通知メッセージ自体は廃棄している。
【００１０】
その後、ＩＰ−ｉｎ−ＩＰカプセル化装置は、発側装置から該当するフローＩＤのＩＰ−ｉｎ−ＩＰ通信路を使用する後続のＩＰメッセージを受信すると、ＩＰメッセージがＭＴＵ超過などにより送信できなければ、ＩＰメッセージの送信端末に向けてＩＣＭＰエラー（ＭＴＵ超過）メッセージを送信している（非特許文献２，３）。
【００１１】
【非特許文献１】馬場達也著  「マスタリングＩＰＳＥＣ」オライリー・ジャパン出版、２００４年２月１３日、Ｐ１０５〜Ｐ１０６
【非特許文献２】マルチメディア通信研究会編「インターネットＲＦＣ辞典」、アスキー出版、１９９８年１１月１日
【非特許文献３】R.Woodburn,D.Mills、RFC1241、「A Scheme for an Internet Encapsulation Protocol:Version 1」、IETF、July 1991、Appendix B.2.
【特許文献１】特開２００５−１５９６８８号公報  図１０
【発明の開示】
【発明が解決しようとする課題】
【００１２】
このように、発着ユーザ端末が送受信するＩＰメッセージを、中継路上で同じＩＰを使用した別のプロトコルでカプセル化し転送するトンネリング通信方式として、例えばＩＰ−ｉｎ−ＩＰカプセル化、トンネルモードＩＰＳＥＣ＿ＥＳＰカプセル化、ＧＲＥカプセル化、モバイルＩＰカプセル化などがあげられる。
【００１３】
しかしながら、上記１つめ〜４つめの従来技術によるトンネリング通信方式ではトンネル中継路上で発生したＩＣＭＰエラー通知メッセージを、発側端末に通知するのが難しいと言う問題点があった。
【００１４】
例えば、トンネル経路上で送受信されるトンネリングメッセージ（ＩＣＭＰエラー通知メッセージ）の発着アドレスは発着トンネル装置（暗号化通信装置）のアドレスとなり、発着端末のアドレスは内側メッセージに隠蔽されてしまう。このため、発側トンネル装置は、ＩＣＭＰエラー通知メッセージから発着端末のアドレスを直接解析できない場合が生じるといった問題があった。
【００１５】
また、トンネル経路に収容する発着端末アドレスとしてアドレスの範囲を指定し、複数の発着端末アドレスからのメッセージをまとめてこのトンネルに収容して転送する方法がある。このような収容アドレス範囲が指定されたＩＣＭＰエラー通知メッセージを暗号化通信装置が受信した場合、このＩＣＭＰエラー通知メッセージを単に発側端末に戻すだけではエラー通知の効率が悪くなる。すなわち、実際にこのトンネルを使用している発側端末数が、トンネルの発側アドレス範囲の端末数に比べて少ない場合、多くの不要なＩＣＭＰエラー通知メッセージが端末側に通知されることとなる。これにより、帯域を無駄に消費してしまうという問題がある。
【００１６】
一方、ＩＣＭＰエラー通知メッセージの要因となったメッセージを送信した発側端末にだけ、ＩＣＭＰエラー通知メッセージを送信すると、この発側端末と同じトンネルを使用する他の発側端末にはＩＣＭＰエラー通知メッセージが送信されない。このため、暗号化通信装置は、同じトンネルを使用する複数の発側端末の夫々に対して、ＩＣＭＰエラー通知メッセージに関する対応を行なわなければならない。これにより、発側端末へのＩＣＭＰエラー通知メッセージの遅延、帯域の無駄な消費、発側トンネル装置（暗号化通信装置）の処理負荷の増大といった問題が生じていた。
【００１７】
本発明は、上記に鑑みてなされたものであって、トンネル通信路上から通信制御用メッセージを受信した際に、帯域の無駄な消費を抑制しながら効率良くトンネル通信路外の通信端末に通信制御用メッセージを転送する暗号化通信装置を得ることを目的とする。
【課題を解決するための手段】
【００１８】
上述した課題を解決し、目的を達成するために、本発明は、暗号化通信路外の複数の通信端末からユーザメッセージを受信すると、前記各ユーザメッセージを暗号化およびカプセル化して暗号化通信路上の対向装置に転送し、前記暗号化通信路上で前記ユーザメッセージを前記対向装置へ中継する中継装置から前記ユーザメッセージに基づいて送信される暗号化およびカプセル化された前記ユーザメッセージの少なくとも一部を含む通信制御用メッセージを受信すると、前記通信制御用メッセージを復号およびデカプセル化して前記暗号化通信路外の所定の送信先に転送する暗号化通信装置において、前記各通信端末からの各ユーザメッセージを前記対向装置に転送する際に、前記各ユーザメッセージを転送する各暗号化通信路に関する暗号化通信路情報と前記各ユーザメッセージの送信元である各通信端末のアドレスとの対応付けに関するアドレス情報を記憶する記憶部と、暗号化された前記ユーザメッセージに、当該ユーザメッセージに対応する暗号化通信路情報を暗号化せずに付加して前記対向装置に転送する送信部と、前記送信部から送信されたユーザメッセージに暗号化せずに付加された暗号化通信路情報を含む前記通信制御用メッセージを前記中継装置から受信する受信部と、前記受信部が受信した通信制御用メッセージを用いて当該通信制御用メッセージの送信先を判断する送信先判断部と、前記受信部が受信した通信制御用メッセージ内から前記暗号化通信路情報を抽出し、当該抽出した暗号化通信路情報および前記記憶部が記憶するアドレス情報に基づいて、前記送信先判断部が判断した送信先に対応する前記通信制御用メッセージの送信先アドレスを決定する送信アドレス決定部と、を備え、前記暗号化通信路情報は、前記各暗号化通信路に転送されるユーザメッセージ毎に割り当てられるメッセージ識別情報および前記暗号化通信路を識別する通信路識別情報を含み、前記メッセージ識別情報は、前記各暗号化通信路に転送されるユーザメッセージ毎にカウントアップされて、前記ユーザメッセージを暗号化する際に付加される暗号化ヘッダ内のシーケンス番号であり、前記通信路識別情報は、前記各暗号化通信路を識別するＳＰＩ値であることを特徴とする。
【発明の効果】
【００１９】
この発明によれば、トンネル通信路にユーザメッセージを転送する際に、ユーザメッセージの暗号化通信路に関する情報と、ユーザメッセージの送信元アドレスを記憶しておくので、トンネル通信路内で送信された通信制御用メッセージが暗号化されている場合であっても、通信制御用メッセージを受信した際に、帯域の無駄な消費を抑制しながら効率良くトンネル通信路外の通信端末に通信制御用メッセージを転送することが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に、本発明にかかる暗号化通信装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００２１】
実施の形態１．
図１は、本発明に係る暗号化通信装置を含む通信ネットワークの構成を示す図である。通信システム１００は、ユーザ側の通信ネットワークであるＬＡＮ（Local Area Network）１〜３、ＬＡＮ１〜３を接続する通信ネットワークであるＷＡＮ（Wide Area Network）５、暗号化通信装置１０Ａ，１０Ｂを含んで構成されている。
【００２２】
ＬＡＮ１は、ユーザ側の通信端末である通信端末Ｘ１〜Ｘｎ（ｎは自然数）を含んで構成されている。また、ＬＡＮ２は通信端末Ｙ１〜Ｙｍ（ｍは自然数）を含んで構成され、ＬＡＮ３は通信端末Ｚ１〜Ｚｌ（ｌは自然数）を含んで構成されている。なお、ここでは説明の便宜上、データ送信側の通信端末を発側端末といい、データ受信側の通信端末を着側端末という場合がある。
【００２３】
暗号化通信装置（カプセル型暗号化通信装置）１０Ａは、ＬＡＮ１とＷＡＮ５を接続し、暗号化通信装置１０ＢはＬＡＮ２，３とＷＡＮ５を接続している。暗号化通信装置１０Ａ，１０Ｂは、発着端末（発側端末、着側端末）が送受信するＩＰメッセージを、中継路上で同じＩＰを使用した別のプロトコルでカプセル化し転送する機能（トンネリング通信機能）を有している。
【００２４】
暗号化通信装置１０Ａ，１０Ｂは、トンネリング通信として、例えば、ＩＰ−ｉｎ−ＩＰカプセル化、トンネルモードＩＰＳＥＣ＿ＥＳＰカプセル化、ＧＲＥ（Generic Routing Encapsulation）カプセル化、モバイルＩＰカプセル化などを行う。ここでの暗号化通信装置１０Ａは、ＬＡＮ１側から送信されたＩＰメッセージ（ユーザメッセージ）や通信制御用メッセージ（後述のＩＣＭＰエラー通知メッセージ７３）を、暗号化するとともにカプセル化してＷＡＮ５内に転送する。また、暗号化通信装置１０Ｂは、ＬＡＮ２，３から送信されたＩＰメッセージや通信制御メッセージを、暗号化するとともにカプセル化してＷＡＮ５内に転送する。
【００２５】
さらに、ここでの暗号化通信装置１０Ａは、他のルータ（中継装置）Ｒ１〜Ｒ３を介して受信したＩＰメッセージをデカプセル化するとともに、復号してＬＡＮ１側に転送する。また、暗号化通信装置１０Ｂは、他のルータＲ１〜Ｒ３を介して受信したＩＰメッセージをデカプセル化するとともに、復号してＬＡＮ２，３の何れかに転送する。
【００２６】
ＷＡＮ５は、データの中継装置であるルータＲ１〜Ｒ３を含んで構成されている。ルータＲ１〜Ｒ３は、暗号化通信装置１０Ａから送信されたＩＰメッセージを暗号化通信装置１０Ｂに転送するとともに、暗号化通信装置１０Ｂから送信されたＩＰメッセージを暗号化通信装置１０Ａに転送する。
【００２７】
例えば、発着端末は、ＩＥＴＦ（Internet Engineering Task Force）のＲＦＣ（Request For Comments）に記述されるＩＰｖ（Internet Protocol Version）４あるいはＩＰｖ６メッセージを、ユーザメッセージ（後述のＩＰメッセージ７１等）として用いる。
【００２８】
また、暗号化通信装置１０Ａ，１０Ｂは、例えばＩＥＴＦのＲＦＣ２４０１−ＲＦＣ２４１２等に記述されるＩＰＳＥＣ処理を実行し、暗号用通信路としてＩＰＳＥＣ＿ＳＡを使用する。また、暗号化通信装置１０Ａ，１０Ｂは、例えば暗号用通信メッセージとしてＲＦＣ２４０６に記述されるようなＩＰＳＥＣのＥＳＰ暗号化メッセージを使用してトンネルモードでＩＰＳＥＣ暗号化する手段を備えている。
【００２９】
また、ルータＲ１〜Ｒ３（暗号化に寄与しない通常の通信装置）が通知する通信制御用メッセージは、例えばＲＦＣに記述されるようなＩＣＭＰメッセージ（ＩＣＭＰ＿Ｄｅｓｔｉｎａｔｉｏｎ＿ＵｎｒｅａｃｈａｂｌｅメッセージやＰａｃｋｅｔ＿Ｔｏｏ＿ＢｉｇメッセージなどのＭＴＵ超過などの通知メッセージである。
【００３０】
ここで、通信システム１００内で送受信されるデータの構成について説明する。図２は、通信ネットワーク内で送受信されるデータの構成を説明するための図である。ここでは、通信端末Ｘ１（発側端末）から通信端末Ｙ１（着側端末）へデータ送信する場合であって、ルータＲ１がＭＴＵ超過を検出した場合に通信システム１００内で送受信されるデータの構成について説明する。
【００３１】
通信端末Ｘ１から暗号化通信装置１０Ａへ送信されるデータＤ１（ＩＰメッセージ）は、宛先アドレスである通信端末Ｙ１のアドレス、送信側アドレスである通信端末Ｘ１のアドレス、データ部等を含んで構成されている。
【００３２】
暗号化通信装置１０Ａは、通信端末Ｘ１からデータＤ１を受信すると、このデータＤ１にＥＳＰカプセル化処理を行ってデータＤ２を作成する。そして、暗号化通信装置１０Ａは、トンネル通信路１３０を使用してデータＤ２（ＩＰＳＥＣメッセージ）をＷＡＮ５内に転送する。
【００３３】
データＤ２は、トンネル通信路１３０内での受信側アドレスとして暗号化通信装置１０Ｂのアドレス（ＳＧ２）、送信側アドレスとして暗号化通信装置１０Ａのアドレス（ＳＧ１）、トンネリング用のカプセル化メッセージ（ＥＳＰヘッダ、データＤ１）等を含んで構成されている。
【００３４】
ルータＲ１がＭＴＵ超過を検出した場合、ルータＲ１から暗号化通信装置１０ＡにＩＣＭＰエラー通知（データＤ３）が送信される。このデータＤ３（後述するＩＣＭＰエラーメッセージ７３）は、トンネル通信路１３０内での受信側アドレスとして暗号化通信装置１０Ａのアドレス（ＳＧ１）、送信側アドレスとしてルータＲ１のアドレス（Ｒ１）、ＩＣＭＰヘッダ（ＭＴＵ超過）を有しており、これらの部分がＩＣＭＰエラー通知を行う際のトンネル通信に利用される。
【００３５】
また、データＤ３は、ＩＣＭＰエラーの原因となった元のメッセージ（データＤ２）（トンネル送信側アドレス（ＳＧ１）、トンネル受信側アドレス（ＳＧ２）、トンネル通信用のＩＰヘッダ）を有している。これらの部分は、暗号化通信装置１０ＡがＩＰＳＥＣメッセージを送信する際のトンネル通信に利用された情報である。
【００３６】
また、データＤ３は、ＥＳＰヘッダ、ＬＡＮ１内で送受信されたデータに関する情報（着側端末のアドレス（Ｙ１）、発側端末のアドレス（Ｘ１））、ＩＰヘッダを有しており、トンネル通信路１３０内でのデータＤ３においては、これらの部分がトンネリング用のカプセル化メッセージとして暗号化され隠蔽されている。このため、発着端末のアドレスは内側メッセージに隠蔽されている。
【００３７】
つぎに、暗号化通信装置１０Ａ，１０Ｂの構成について説明する。なお、暗号化通信装置１０Ａ，１０Ｂは同様の構成を有するので、ここでは暗号化通信装置１０Ａを例にとって説明する。また、以下では通信端末Ｘ１が発側端末であり、通信端末Ｙ１が着側端末である場合を例にとって説明する。
【００３８】
図３は、本発明に係る暗号化通信装置の実施の形態１の構成を示すブロック図である。暗号化通信装置１０Ａは、発側端末から受信したＩＰメッセージ７１に対応するシーケンス番号などと発側端末アドレスを記憶しておき、発側端末側にＩＣＭＰエラーを通知する際に発側端末アドレス等を再生する通信装置である。
【００３９】
暗号化通信装置１０Ａは、端末側Ｉ／Ｆ（インタフェース）１３、トンネル側Ｉ／Ｆ（受信部）１４、出力側ＳＡＤＢ１１、入力側ＳＡＤＢ１２、カプセル化処理部２０、デカプセル化処理部３０、ＩＣＭＰ受信処理部４０、ＩＣＭＰ中継再生処理部５０、ＩＣＭＰ再生データ管理部６０を備えている。
【００４０】
端末側Ｉ／Ｆ１３は、ＬＡＮ１側の通信インタフェースであり、トンネル側Ｉ／Ｆ１４は、ＷＡＮ５側（トンネル側）の通信インタフェースである。端末側Ｉ／Ｆ１３は、ＬＡＮ１〜３側の発側端末（通信端末Ｘ１など）からＩＰメッセージ７１を受信するとともに、発側端末へＩＣＭＰエラー通知メッセージ７４やＩＰメッセージ７６を送信する。
【００４１】
ＩＰメッセージ７１，７６は、発側端末のアドレス、着側端末のアドレス、ＩＰメッセージ部などを含んで構成されている。ＩＣＭＰエラー通知メッセージ７４は、暗号化通信装置１０Ａのアドレス、発側端末のアドレス、エラーメッセージなどを含んで構成されている。
【００４２】
トンネル側Ｉ／Ｆ１４は、トンネル側の対向する暗号化通信装置１０ＢにＩＰＳＥＣ＿ＥＳＰカプセル化メッセージ（以下、ＩＰＳＥＣメッセージ７２という）を送信し、トンネル側のルータＲ１〜Ｒ３からＩＣＭＰエラー通知メッセージ７３やＩＰメッセージ７５を受信する。
【００４３】
ＩＰＳＥＣメッセージ７２，７５は、暗号化通信装置１０Ａのアドレス、暗号化通信装置１０Ｂのアドレス、暗号化されたＩＰメッセージ部などを含んで構成されている。ＩＣＭＰエラー通知メッセージ７３は、エラー通知を行うルータＲ１などのアドレス、暗号化通信装置１０Ａのアドレス、エラーメッセージなどを含んで構成されている。
【００４４】
出力側ＳＡＤＢ１１は、ＩＰメッセージ７１が使用するＳＡを決定するための情報（後述する出力側ＳＡ情報１０１）を記憶する。入力側ＳＡＤＢ１２は、ＩＰＳＥＣメッセージ７５内の暗号化されたＩＰメッセージ部を復号するためのＳＡ毎の情報（後述する入力側ＳＡ情報）を記憶する。
【００４５】
カプセル化処理部２０は、安全な通信路（ＳＡ）を確立するための処理、ＩＰＳＥＣ＿ＥＳＰ暗号化処理、カプセル化処理等を行なう。カプセル化処理部２０は、ＳＡ検索部２１、ＳＡ使用許諾判定部２２、暗号化処理部２３、ＥＳＰヘッダ処理部（送信部）２４、認証値計算部２５、ＩＰヘッダ処理部２６を備えている。
【００４６】
ＳＡ検索部２１は、安全な通信路を確立するため、ＩＰメッセージ７１内の発着アドレス、プロトコル種別、発着ポート番号などに基づいて、出力側ＳＡＤＢ１１を検索し、ＩＰメッセージ７１が使用するＳＡ（通信路識別情報）を決定する。
【００４７】
ＳＡ使用許諾判定部２２は、ＳＡ検索部２１によって決定されたＳＡをＩＰメッセージ７１が使用できるか否かを判定する。ＳＡ使用許諾判定部２２は、ＩＰメッセージ７１がＳＡを使用可能である場合、使用するＳＰＩ値（暗号化通信路情報）をキーとして元のＩＰメッセージ７１の発着端末アドレスをＩＣＭＰ再生データ管理部６０（後述のＳＡ使用端末ＤＢ６１（後述の使用ＳＡ情報１０２））に登録する。
【００４８】
暗号化処理部２３は、ＩＰメッセージ７１のＩＰＳＥＣ＿ＥＳＰ暗号化処理を行なうため、ＩＰメッセージ７１全体を暗号化する。暗号化処理部２３は、出力側ＳＡＤＢ１１がＳＡ毎に持つ情報（出力側ＳＡ情報１０１）を用いて暗号化を行う。
【００４９】
ＥＳＰヘッダ処理部２４は、暗号化したＩＰメッセージ７１の前にＥＳＰヘッダを付与する。ＥＳＰヘッダ処理部２４は、ＥＳＰヘッダに、ＳＡ毎に異なるＳＰＩ値と、メッセージ毎にカウントアップされるシーケンス番号（メッセージ識別情報）を付与する。ＥＳＰヘッダ処理部２４は、ＩＣＭＰ再生データ管理部６０（後述のシーケンス使用端末ＤＢ６２（後述のシーケンス番号情報１０３）に、ＳＰＩ値とシーケンス番号をキーとして元のＩＰメッセージ７１の発着端末アドレスを登録する。
【００５０】
認証値計算部２５は、ＥＳＰヘッダと暗号化したＩＰメッセージ７１に対して、ＥＳＰ認証値を算出し末尾に付与する。ＩＰヘッダ処理部２６は、認証値計算部２５が生成したＥＳＰカプセル化メッセージがＳＡのＭＴＵを超えている場合、フラグメント等の処理を行ってＩＰヘッダを付与する。ＩＰヘッダ処理部２６が作成したデータは、ＩＰＳＥＣ＿ＥＳＰカプセル化メッセージ（ＩＰＳＥＣメッセージ７２）として、トンネル側Ｉ／Ｆ１４から対向する暗号化通信装置１０Ｂへ送信される。
【００５１】
ＩＣＭＰ再生データ管理部６０は、ＳＡ使用端末ＤＢ６１、シーケンス使用端末ＤＢ６２を有している。ＳＡ使用端末ＤＢ６１は、ＳＰＩ値に対応する発側端末のアドレス、着側端末のアドレスに関する情報（使用ＳＡ情報１０２）を記憶する。シーケンス使用端末ＤＢ６２は、ＳＰＩ値とシーケンス番号に対応する発側端末のアドレス、着側端末のアドレスに関する情報（シーケンス番号情報１０３）を記憶する。
【００５２】
デカプセル化処理部３０は、ＩＰＳＥＣ＿ＥＳＰ復号処理、デカプセル化処理等を行なう。デカプセル化処理部３０は、使用ＳＡ検索部３１、シーケンス検証部３２、認証値確認処理部３３、リプレイ防御処理部３４、復号処理部３５、出力前ＳＡＤＢ監査部３６を有している。
【００５３】
使用ＳＡ検索部３１は、受信したＩＰＳＥＣメッセージ７５内の暗号化通信装置１０ＢのアドレスとＳＰＩ値に基づいて、使用するＳＡを決定する。シーケンス検証部３２は、受信したＩＰＳＥＣメッセージ７５内のシーケンス番号を検査してリプレイ攻撃を監査し、ＩＰＳＥＣメッセージ７５の受け入れの可否を決定する。
【００５４】
認証値確認処理部３３は、受信したＩＰＳＥＣメッセージ７５のＥＳＰヘッダと暗号化されたＩＰメッセージ部に対してＥＳＰ認証値を算出する。認証値確認処理部３３は、算出したＥＳＰ認証値と、ＩＰＳＥＣメッセージ７５の末尾に付加されているＥＳＰ認証値と比較し、ＩＰＳＥＣメッセージ７５の改ざんの有無を検出する。
【００５５】
リプレイ防御処理部３４は、受信したＩＰＳＥＣメッセージ７５内のシーケンス番号に基づいて、内部で保持するリプレイ防御ウィンドウの操作を行い、リプレイ防御ウィンドウを更新する。
【００５６】
復号処理部３５は、受信したＩＰＳＥＣメッセージ７５内の暗号化されたＩＰメッセージ部を復号する。復号処理部３５は、入力側ＳＡＤＢ１２がＳＡ毎に持つ情報（入力側ＳＡ情報）を用いてＩＰメッセージ部の復号を行なう。
【００５７】
出力前ＳＡＤＢ監査部３６は、復号して得たＩＰメッセージ７６が図示しない入力側ＳＰＤ（Security Policy Database）の発着アドレス、プロトコル種別、発着ポートなどに基づく条件に合致しているか否かを監査する。出力前ＳＡＤＢ監査部３６に監査されて、所定の条件に合致したＩＰメッセージ７６は、端末側Ｉ／Ｆ１３からＬＡＮ１内に送信される。
【００５８】
ＩＣＭＰ受信処理部４０は、ＩＣＭＰ種別判定部４１、ＩＣＭＰ内部パケット抽出部４２、ＩＣＭＰ種別対応処理部４３を有している。ＩＣＭＰ種別判定部４１は、ＩＣＭＰ７３の種別を判定する。
【００５９】
ＩＣＭＰ内部パケット抽出部４２は、ＩＣＭＰエラー通知メッセージ７３のデータ部が内部メッセージを含む場合に、この内部メッセージを抽出する。ＩＣＭＰ内部パケット抽出部４２は、必要に応じて内部メッセージ自体を解析し、発着アドレス（暗号化通信装置１０Ａ，１０Ｂのアドレス）、プロトコル種別、発着ポート番号など、一般的なＩＰメッセージから取得可能な情報を抽出する。ＩＣＭＰ内部パケット抽出部４２は、内部メッセージがＩＰＳＥＣ＿ＥＳＰカプセル化メッセージである場合、さらに内部メッセージの内部まで解析し、ＥＳＰヘッダ内のＳＰＩ値、シーケンス番号などを抽出する。
【００６０】
ＩＣＭＰ種別対応処理部４３は、ＩＣＭＰ種別に応じてＩＣＭＰ処理（例えば暗号化通信装置１０Ａのルーティングテーブル更新など）や、出力側ＳＡＤＢ１１のＭＴＵ値（送信ＭＴＵ値）を更新する。
【００６１】
ＩＣＭＰ中継再生処理部５０は、ＩＣＭＰ中継処理判定部５１、ＩＣＭＰ再生部５２、ＩＣＭＰ送信端末決定部（送信先判断部、送信アドレス決定部）５３を有している。ＩＣＭＰ中継処理判定部５１は、ＩＣＭＰエラー通知メッセージ７３のメッセージ種別（以下、ＩＣＭＰメッセージ種別という）に基づいて、ＩＣＭＰエラー通知メッセージ７３の通信端末側へのデータ中継処理の要否（ＩＣＭＰエラー通知メッセージ７３を通信端末側へ転送する必要があるか否か）を判定する。
【００６２】
ＩＣＭＰ再生部５２は、受信したＩＣＭＰエラー通知メッセージ７３から、通信端末側に送信すべきＩＣＭＰエラー通知メッセージ７４を再生（作成）する。ＩＣＭＰ再生部５２は、使用ＳＡ情報１０２やシーケンス番号情報１０３内の発側端末アドレス、シーケンス番号等に基づいて、ＩＣＭＰエラー通知メッセージ７４を作成する。
【００６３】
ＩＣＭＰ送信端末決定部５３は、受信したＩＣＭＰエラー通知メッセージ７３のメッセージ種別と通信端末側へ送信する再生されたＩＣＭＰエラー通知メッセージ７４のＩＣＭＰメッセージ種別に基づいて、通信端末側へ送信するＩＣＭＰエラー通知メッセージ７４の送信先（送信先となる発側端末範囲）と、そのアドレスを決定する。ＩＣＭＰ送信端末決定部５３は、ＩＣＭＰエラー通知メッセージ７４を、例えば発側端末だけ又はＳＡ（ＳＰＩ値）を使用する全ての発側端末に送信することを決定する。
【００６４】
つぎに、実施の形態１に係る暗号化通信装置１０Ａの動作手順として、データ送信処理（暗号化処理）、復号処理、ＩＣＭＰ受信処理、本実施の形態１の主たる特徴であるＩＣＭＰ再生処理の各動作手順について説明する。
【００６５】
（送信処理）
まず、通信端末Ｘ１（発側端末）からトンネル側（ＷＡＮ５側）へのデータ送信処理（暗号化処理）について説明する。図４は、発側端末からトンネル側へのデータ送信処理の処理手順を示すフローチャートである。
【００６６】
暗号化通信装置１０Ａは、発側端末から端末側Ｉ／Ｆ１３を介してＩＰメッセージ７１を受信すると、一般的なルータ機能によってＩＰ受信処理、ルーティング処理を行い、ＩＰメッセージ７１の出力先Ｉ／Ｆ（トンネル側Ｉ／Ｆ１４）を決定する（ステップＳ１１０）。なお、図３に示す暗号化通信装置１０Ａでは、ＩＰ受信処理、ルーティング処理を行う手段の図示を省略している。
【００６７】
暗号化通信装置１０Ａは、ルーティング処理によってＩＰメッセージ７１をトンネル側Ｉ／Ｆ１４へ出力することを決定すると、このＩＰメッセージ７１をカプセル化処理部２０に渡す。
【００６８】
カプセル化処理部２０では、安全な通信路（ＳＡ）を確立するため、まず使用ＳＡ検索部２１がＩＰメッセージ７１内の発着アドレス、プロトコル種別、発着ポート番号などに基づいて、出力側ＳＡＤＢ１１を検索し、ＩＰメッセージ７１が使用するＳＡを決定する。使用ＳＡ検索部２１は、例えば出力側ＳＡＤＢ１１が記憶する出力側ＳＡ情報１０１を用いてＩＰメッセージ７１が使用するＳＡを決定する（ステップＳ１２０）。
【００６９】
図５は、出力側ＳＡ情報の構成の一例を示す図である。出力側ＳＡ情報１０１は、ＩＰメッセージ７１を暗号化してＳＡを確立するための情報であり、「発側端末」、「着側端末」、「暗号化手段」、「認証手段」、「対向装置」、「ＳＰＩ値」、「共有秘密鍵」、「現在の初期ベクトル値」、「送信ＭＴＵ値」、「プロトコル種別」、「発着ポート番号」がそれぞれ対応付けられている。
【００７０】
「発側端末」は、通信端末Ｘ１等の発側端末（アドレス）を示し、「着側端末」は、通信端末Ｙ１等の着側端末（アドレス）を示している。「暗号化手段」は、「３ＤＥＳ（Data Encryption Standard）」、「ＤＥＳ」等の暗号化を行う手段を示している。
【００７１】
「認証手段」は、「ＭＤ（Message Digest）５」や「ＳＨＡ（Secure Hash Algorithm）１」等の認証に使われるハッシュ関数（認証の手段）を示している。「対向装置」は、対向する暗号化通信装置を示している。なお、ここでのＳＧ（security gateway）２は暗号化通信装置１０Ｂを示し、ＳＧ３は暗号化通信装置１０Ａ，１０Ｂ以外の暗号化通信装置を示している。
【００７２】
「ＳＰＩ値」は、ＳＡを一意に識別するための任意の値（３２ビット）である。「共有秘密鍵」は、暗号化通信装置１０Ｂ等の対向装置との間で共有する暗号化／復号のための秘密鍵である。なお厳密にはＳＧ間の「共有秘密鍵」には暗号化に使用する共有暗号化秘密鍵と、認証に使用する共有認証秘密鍵があるが、以下「共有秘密鍵」はＳＧ間で暗号化に使用する共有暗号化秘密鍵を指す（非特許文献１）。
【００７３】
「現在の初期ベクトル値」は、ＩＰメッセージ７１を暗号化する際に用いる擬似乱数の初期ベクトル値（暗号化パラメータ情報）である。「現在の初期ベクトル値」は、１つ前の送信メッセージから生成しメッセージ毎に異なる値が設定される。「送信ＭＴＵ値」は、トンネル側へ１回の転送で送信できるデータの最大値を示す値（設定値）である。「プロトコル種別」は、発着通信端末が利用する通信プロトコルの種別を示し、「発着ポート番号」は、発着通信端末が利用するポートの番号を示している。
【００７４】
使用ＳＡ検索部２１が、ＩＰメッセージ７１の使用するＳＡを出力側ＳＡ情報１０１から抽出（発見）できない場合（ステップＳ１３０、Ｎｏ）、使用ＳＡ検索部２１はこのＩＰメッセージ７１を廃棄するか、又は発側端末にＩＣＭＰエラー通知メッセージ７４を送信（応答）する（ステップＳ１４０）。
【００７５】
一方、使用ＳＡ検索部２１がＩＰメッセージ７１の使用するＳＡを出力側ＳＡ情報１０１から抽出できた場合（ステップＳ１３０、Ｙｅｓ）、ＳＡ使用許諾判定部２２はＩＰメッセージ７１が前記抽出したＳＡを使用する条件を満たしているか否かを判定する（ステップＳ１５０）。
【００７６】
ここでの判定条件には、該当ＳＡは障害により使用不能であるか否か（条件１）、ＩＰメッセージ７１にＤＦ（Don't Fragment）フラグが設定されてフラグメント転送不可であるのにＳＡにはＥＳＰ処理後の暗号化メッセージ長より小さいＭＴＵが設定され、フラグメントする必要があるか否か（条件２）等の条件がある。例えば、（条件２）の場合、フラグメントする必要があれば、このＳＡは使用できないと判断される。
【００７７】
ＳＡ使用許諾判定部２２によってＳＡの使用不可と判断された場合（ステップＳ１５０、Ｎｏ）、暗号化通信装置１０Ａは発側端末にＩＣＭＰエラー通知メッセージ７４を応答する（ステップＳ１４０）。
【００７８】
一方、ＳＡ使用許諾判定部２２によってＳＡが使用可能であると判定された場合（ステップＳ１５０、Ｙｅｓ）、本実施の形態１に係るＳＡ使用許諾判定部２２は、使用するＳＰＩ値をキーとして元のＩＰメッセージ７１の発着端末アドレスをＳＡ使用端末ＤＢ６１（使用ＳＡ情報１０２）に登録する（ステップＳ１６０）。
【００７９】
図６は、ＳＡ使用端末ＤＢが記憶する使用ＳＡ情報の構成の一例を示す図である。ここでの使用ＳＡ情報１０２（アドレス情報）は、現在時刻が例えば１２３ｍｓｅｃである場合を一例として示している。使用ＳＡ情報１０２は、ＳＰＩ値（ＳＡ）に対応する発側端末のアドレス、着側端末のアドレスに関する情報であり、「対向装置」、「ＳＰＩ値」、「ＳＡ使用発アドレス」、「ＳＡ使用着アドレス」、「消去予定時刻」がそれぞれ対応付けされている。
【００８０】
「ＳＡ使用発アドレス」は、ＳＡを使用する発側端末のアドレスを示し、「ＳＡ使用着アドレス」はＳＡを使用する着側端末のアドレスを示す。「消去予定時刻」は、受信タイムアウトによってデータ消去される時刻を示す。
【００８１】
次に、暗号化処理部２３は、ＩＰメッセージ７１のＩＰＳＥＣ＿ＥＳＰ暗号化処理を行うため、ＩＰメッセージ７１全体を暗号化する（ステップＳ１７０）。ここでの暗号化には、出力側ＳＡＤＢ１１がＳＡ毎に持つ情報（図５に示した出力側ＳＡ情報１０１）を用いる。具体的には、出力側ＳＡ情報１０１の「対向装置」、「共有秘密鍵」、「暗号化手段」、１つ前の送信メッセージから生成しメッセージ毎に異なる現在の擬似乱数の初期ベクトル値（「現在の初期値ベクトル値」）を用いて暗号化を行う。
【００８２】
次に、ＥＳＰヘッダ処理部２４は暗号化したＩＰメッセージ７１の前にＥＳＰヘッダを付与する。ここでのＥＳＰヘッダには、ＳＡ毎に異なるＳＰＩ値と、メッセージ毎にカウントアップされるシーケンス番号が付与される（ステップＳ１８０）。
【００８３】
さらに、本実施の形態においては、ＥＳＰヘッダ処理部２４は、シーケンス使用端末ＤＢ６２（後述のシーケンス番号情報１０３）に、ＳＰＩ値とシーケンス番号をキーとして元のＩＰメッセージ７１の発着端末アドレスを登録する（ステップＳ１９０）。
【００８４】
図７は、シーケンス使用端末ＤＢが記憶するシーケンス番号情報の構成の一例を示す図である。シーケンス番号情報１０３（アドレス情報）は、ＳＰＩ値とシーケンス番号に対応する発側端末のアドレス、着側端末のアドレスに関する情報であり、「対向装置」、「ＳＰＩ値」、「シーケンス番号」、「ＳＡ使用発アドレス」、「ＳＡ使用着アドレス」がそれぞれ対応付けされている。
【００８５】
シーケンス使用端末ＤＢ６２は、所定のタイミングでシーケンス番号情報１０３内の所定の情報（一組の対応付け）を削除し、新たな情報（一組の対応付け）を記憶する。すなわち、シーケンス使用端末ＤＢ６２は、例えば所定の期間だけシーケンス番号情報１０３内の情報を記憶し、所定の期間経過後に古くなったシーケンス番号情報１０３内の情報を削除する。また、シーケンス使用端末ＤＢ６２は、シーケンス番号情報１０３内の情報を所定数だけ記憶し、所定数を超えて新たな情報を記憶する際には、古くなったシーケンス番号情報１０３内の情報を削除してもよい。
【００８６】
次に、認証値計算部２５はＥＳＰヘッダと暗号化したＩＰメッセージ７１に対して、ＥＳＰ認証値を算出し末尾に付与する。ＩＰヘッダ処理部２６は、認証値計算部２５が生成したＥＳＰカプセル化メッセージがＳＡのＭＴＵを越えている場合、フラグメント等の処理を行ってＩＰヘッダを付与する。ＩＰヘッダ処理部２６が作成したデータは、ＩＰＳＥＣ＿ＥＳＰカプセル化メッセージ（ＩＰＳＥＣメッセージ７２という）として、トンネル側Ｉ／Ｆ１４から対向する暗号化通信装置１０Ｂへ送信する（ステップＳ２００）。
【００８７】
（復号処理）
次に、ルータＲ１等のトンネル側（ＷＡＮ５側）から受信したデータの復号処理について説明する。図８は、トンネル側から受信したデータの復号処理の処理手順を示すフローチャートである。
【００８８】
トンネル側Ｉ／Ｆ１４は、トンネル側からＩＰＳＥＣ＿ＥＳＰカプセル化メッセージ（以下、ＩＰＳＥＣメッセージ７５という）を受信すると、一般的なルータ機能によってＩＰ受信処理、ルーティング処理を行う。この結果、ＩＰＳＥＣメッセージ７５の宛先が自らの暗号化通信装置１０Ａである場合、ＩＰＳＥＣメッセージ７５の着ポート番号、上位プロトコル種別を判定し、上位プロトコル種別がＩＰＳＥＣ＿ＥＳＰメッセージであった場合、ＩＰＳＥＣメッセージ７５をデカプセル化処理部３０に渡す。ここでは、ＩＰＳＥＣメッセージ７５の上位プロトコル種別がＩＰＳＥＣ＿ＥＳＰメッセージであるので、このＩＰＳＥＣメッセージ７５がデカプセル化処理部３０に入力される。
【００８９】
デカプセル化処理部３０では、まず使用ＳＡ検索部３１が、受信したＩＰＳＥＣメッセージ７５内の暗号化通信装置１０ＢのアドレスとＳＰＩ値に基づいて、使用するＳＡを検索し決定する（ステップＳ３１０）。
【００９０】
次に、シーケンス検証部３２は受信したＩＰＳＥＣメッセージ７５内のシーケンス番号を検査してリプレイ攻撃を監査し、ＩＰＳＥＣメッセージ７５の受け入れの可否を決定する（ステップＳ３２０）。シーケンス検証部３２がＩＰＳＥＣメッセージ７５の受け入れは不可であると決定すると（ステップＳ３２０、Ｎｏ）、このＩＰＳＥＣメッセージ７５は廃棄される（ステップＳ３３０）。
【００９１】
一方、シーケンス検証部３２がＩＰＳＥＣメッセージ７５の受け入れが可能であると決定すると（ステップＳ３２０、Ｙｅｓ）、認証値確認処理部３３は、受信したＩＰＳＥＣメッセージ７５のＥＳＰヘッダと暗号化されたＩＰメッセージ部に対してＥＳＰ認証値を算出する。そして、算出したＥＳＰ認証値と、ＩＰＳＥＣメッセージ７５の末尾に付加されているＥＳＰ認証値と比較し、ＩＰＳＥＣメッセージ７５の改ざんの有無を検出する（ステップＳ３４０）。
【００９２】
次に、リプレイ防御処理部３４は、受信したＩＰＳＥＣメッセージ７５内のシーケンス番号によって、内部で保持するリプレイ防御ウィンドウの操作を行い、リプレイ防御ウィンドウを更新する（ステップＳ３５０）。
【００９３】
次に、復号処理部３５は、受信したＩＰＳＥＣメッセージ７５内の暗号化されたＩＰメッセージ部を復号する（ステップＳ３６０）。ここでの復号には、入力側ＳＡＤＢ１２がＳＡ毎に持つ情報（入力側ＳＡ情報）を用いる。
【００９４】
なお、入力側ＳＡ情報（図示せず）は、出力側ＳＡ情報と同様の構成を有した情報であり、「発側端末」、「着側端末」、「暗号化手段」、「認証手段」、「対向装置」、「ＳＰＩ値」、「共有秘密鍵」、「現在の初期ベクトル値」、「送信ＭＴＵ値」がそれぞれ対応付けられている。
【００９５】
ここでは、入力側ＳＡ情報の「対向装置」、「共有秘密鍵」、「暗号化手段」、「現在の初期値ベクトル値」を用いてＩＰメッセージ部の復号を行う。復号されたＩＰメッセージ部は、ＩＰメッセージ７６として出力前ＳＡＤＢ監査部３６に入力する。
【００９６】
出力前ＳＡＤＢ監査部３６は、復号して得たＩＰメッセージ７６が入力側ＳＰＤの発着アドレス、プロトコル種別、発着ポートなどに基づく条件に合致しているか否かを監査する（ステップＳ３７０）。出力前ＳＡＤＢ監査部３６に監査されて、所定の条件に合致したＩＰメッセージ７６は、端末側Ｉ／Ｆ１３からＬＡＮ１内に送信される（ステップＳ３８０）。
【００９７】
（ＩＣＭＰ受信処理）
つぎに、ＩＣＭＰの受信処理、再生処理の処理手順について説明する。まず、ＩＣＭＰ受信処理の処理手順について説明する。図９は、ＩＣＭＰ受信処理の処理手順を示すフローチャートである。
【００９８】
トンネル側Ｉ／Ｆ１４が、トンネル側からＩＣＭＰエラー通知メッセージ７３を受信すると、通常のルータ機能によってＩＰ受信処理、ルーティング処理を行う。この結果、ＩＣＭＰエラー通知メッセージ７３の宛先が自らの暗号化通信装置１０Ａである場合、ＩＣＭＰエラー通知メッセージ７３はＩＣＭＰ受信処理部４０に渡される。
【００９９】
ＩＣＭＰ受信処理部４０は、まずＩＣＭＰ種別判定部４１により、ＩＣＭＰ７３の種別を判定する（ステップＳ４１０）。次に、ＩＣＭＰ内部パケット抽出部４２は、ＩＣＭＰエラー通知メッセージ７３のデータ部に内部メッセージを含む場合、この内部メッセージを抽出する。ＩＣＭＰ内部パケット抽出部４２は、必要に応じて内部メッセージ自体を解析し、発着アドレス（ここでは暗号化通信装置１０Ａ，１０Ｂのアドレス）、プロトコル種別、発着ポート番号など、一般的なＩＰメッセージから取得可能な情報を抽出する（ステップＳ４２０）。
【０１００】
ＩＣＭＰ内部パケット抽出部４２は、内部メッセージ自体の解析によって、例えば内部メッセージがＩＰＳＥＣ＿ＥＳＰカプセル化メッセージであると判定された場合、内部メッセージのさらに内部まで解析し、ＥＳＰヘッダ内のＳＰＩ値、シーケンス番号などを抽出しておく（ステップＳ４３０）。
【０１０１】
次に、ＩＣＭＰ種別対応処理部４３は、ＩＣＭＰ種別に応じて暗号化通信装置１０Ａが取るべき処理を行う。この取るべき処理としては、暗号化通信装置１０Ａ自体が対処すべきＩＣＭＰ処理（例えば暗号化通信装置１０Ａのルーティングテーブル更新など）（処理１）と、出力側ＳＡＤＢ１１の値を更新する処理（処理２）がある（ステップＳ４４０）。
【０１０２】
例えば、ＩＣＭＰ種別がＩＣＭＰリダイレクト通知メッセージである場合、ＩＣＭＰ種別対応処理部４３は暗号化通信装置１０Ａのルーティングテーブルで、該当する宛先アドレスへのネクストホップアドレスを更新（処理１）する。
【０１０３】
また、ＩＣＭＰ種別がＩＣＭＰ宛先到達不能メッセージである場合、ＩＣＭＰ種別対応処理部４３は、まず通知された宛先への転送不能（情報）を暗号化通信装置１０Ａのルーティングテーブルに登録する（処理１）。さらに、ＩＣＭＰエラー通知メッセージ７３がデータ部にＩＰＳＥＣ＿ＥＰＳカプセル化メッセージを含む場合、ＩＣＭＰ種別対応処理部４３は、抽出したＳＰＩ値と着側の暗号化通信装置１０Ｂのアドレスによって決定されるＳＡに対し、該当ＳＡの使用不可に関する情報を出力側ＳＡＤＢ１１に登録する（処理２）。
【０１０４】
また、ＩＣＭＰ種別がＩＣＭＰ＿ＭＴＵ超過通知メッセージの場合、ＩＣＭＰ種別対応処理部４３は、まず暗号化通信装置１０Ａのルーティングテーブルにおいて通知された宛先へのＭＴＵ値を更新する（処理１）。さらに、ＩＣＭＰ種別対応処理部４３は、ＩＣＭＰエラー通知メッセージ７３がデータ部にＩＰＳＥＣ＿ＥＰＳカプセル化メッセージを含む場合、抽出したＳＰＩ値と着側の暗号化通信装置１０Ｂのアドレスによって決定されるＳＡに対し、該当ＳＡに通知されたＭＴＵ値からＩＰＳＥＣ処理によるオーバヘッド分を差し引いた値を、ＳＡの更新ＭＴＵ値として出力側ＳＡＤＢ１１（出力側ＳＡ情報１０１の「送信ＭＴＵ値」）に登録する（処理２）。
【０１０５】
（ＩＣＭＰ再生処理）
この後、ＩＣＭＰエラー通知メッセージ７３は、本実施の形態１の特徴的な構成要素の１つであるＩＣＭＰ中継再生処理部５０に渡される。つぎに、ＩＣＭＰ中継再生処理部５０が行うＩＣＭＰの再生処理の処理手順について説明する。図１０は、実施の形態１に係るＩＣＭＰ再生処理の処理手順を示すフローチャートである。
【０１０６】
まず、ＩＣＭＰ中継処理判定部５１では、ＩＣＭＰエラー通知メッセージ７３のメッセージ種別（ＩＣＭＰメッセージ種別）に基づいて、このＩＣＭＰエラー通知メッセージ７３の通信端末側へのデータ中継処理の要否を判定する（ステップＳ５１０）。
【０１０７】
ＩＣＭＰ中継処理判定部５１で通信端末側へのデータ中継が必要であると判断された場合（ステップＳ５１０、Ｙｅｓ）、ＩＣＭＰ再生部５２は、受信したＩＣＭＰエラー通知メッセージ７３から、通信端末側に送信すべきＩＣＭＰエラー通知メッセージ７４の作成を開始する。このとき、ＩＣＭＰ再生部５２は、使用ＳＡ情報１０２やシーケンス番号情報１０３内の発側端末アドレス、シーケンス番号等に基づいて、ＩＣＭＰエラー通知メッセージ７４を作成する。
【０１０８】
ＩＣＭＰ再生部５２は、ＩＣＭＰエラー通知メッセージ７４を再生する際、例えば受信したＩＣＭＰメッセージ種別と端末側へ送信するＩＣＭＰメッセージ種別を同一のものとする。すなわち、ＩＣＭＰ再生部５２は、受信したＩＣＭＰメッセージ種別がＭＴＵ超過メッセージなら通信端末側に送信するＩＣＭＰメッセージ種別もＭＴＵ超過メッセージとする。また、ＩＣＭＰ再生部５２は、ＩＣＭＰエラー通知メッセージ７４を再生する際、状況によっては暗号化通信装置１０Ａの解釈に応じて異なるＩＣＭＰメッセージ種別に設定してもよい。
【０１０９】
再生されたＩＣＭＰエラー通知メッセージ７４は、ＩＣＭＰ送信端末決定部５３に渡される。ＩＣＭＰ送信端末決定部５３では、受信したＩＣＭＰエラー通知メッセージ７３のメッセージ種別と通信端末側へ送信するＩＣＭＰエラー通知メッセージ７４のメッセージ種別に基づいて、通信端末側へ送信するＩＣＭＰエラー通知メッセージ７４の送信先を決定する（ステップＳ５３０）。
【０１１０】
例えば、ＩＣＭＰメッセージ種別のタイプが「時間超過」であり、コードが「ＴＴＬ（Time To Live）超過」の場合、暗号化通信装置１０ＡはＩＰＳＥＣメッセージ７２の送信時に、元の通信端末からのメッセージのＴＴＬから１を引いて送信している。このため、このＩＣＭＰエラー通知メッセージ７３は発側端末が設定するＴＴＬ値に由来していると考えられる。この場合、ＩＣＭＰ送信端末決定部５３は、ＩＣＭＰエラー通知メッセージ７４を発側端末だけに通知すると判断する。
【０１１１】
また、ＩＣＭＰメッセージ種別のタイプが「宛先到達不能メッセージ」であり、コードが「フラグメント必要でＤＦ設定」の場合、ＩＣＭＰエラー通知メッセージ７４の送信先はさらに暗号化通信装置１０ＡのＤＦ設定ポリシーにも依存する。
【０１１２】
暗号化通信装置１０ＡのＤＦ設定ポリシーには３種類ある。すなわち、ＤＦ設定ポリシーには、送信するＩＰＳＥＣメッセージに必ずＤＦを設定しない（設定１）、必ずＤＦを設定する（設定２）、元の通信端末（発側端末）からのＤＦ値をコピーする（設定３）がある。
【０１１３】
例えば、設定１の場合、フラグメントが必要でＤＦ設定というエラー自体が発生しない。また、設定２の場合、ＳＡを使用する全ての発側端末は通知されたＭＴＵ値まで、送信ＭＴＵを下げる必要があり、ＩＣＭＰ送信端末決定処理部は５３は、このＳＡを使用している全通信端末にＩＣＭＰエラー通知メッセージ７４を通知すると判断する。
【０１１４】
また、設定３の場合、ＳＡを使用するＤＦを設定し送信する通信端末だけが、送信ＭＴＵを下げる必要があり、ＩＣＭＰ送信端末決定部５３は、ＤＦを設定して送信する通信端末（このＩＣＭＰエラー通知メッセージ７３に関連する発側端末）にだけＩＣＭＰエラー通知メッセージ７４を通知すると判断する。
【０１１５】
また、ＩＣＭＰメッセージ種別のタイプが「宛先到達不能メッセージ」であり、コードが「ネットワーク到達不能」またはコードが「ホスト到達不能」の場合には、該当ＳＡ自体が到達不能になっているので、ＩＣＭＰ送信端末決定部５３は、このＳＡを使用している全通信端末にＩＣＭＰエラー通知メッセージ７４を通知すると判断する。
【０１１６】
このようにしてＩＣＭＰ送信端末決定部５３は、ＳＡを使用している全通信端末にＩＣＭＰエラー通知メッセージ７４を通知するか、発側端末だけにＩＣＭＰエラー通知メッセージ７４を通知をするかを決定する。さらに、ＩＣＭＰ送信端末決定部５３は、再生したＩＣＭＰエラー通知メッセージ７４を送信する発側端末範囲（後述の発側端末範囲３０１，３０２）を決定する（ステップＳ５４０）。
【０１１７】
ここで、発側端末範囲について説明する。図１１は、発側端末範囲を説明するための図である。ここでは、ＩＣＭＰエラー通知メッセージ７４を発側端末だけに送信する場合の発側端末範囲を発側端末範囲３０１、ＩＣＭＰエラー通知メッセージ７４を、ＳＡを使用している通信端末に送信する場合の発側端末範囲を発側端末範囲３０２、ＩＣＭＰエラー通知メッセージ７４をＳＡの収容範囲全体に送信する場合の発側端末範囲を発側端末範囲３０３で示している。
【０１１８】
例えば、ＩＣＭＰメッセージ種別のタイプが「時間超過」であり、コードが「ＴＴＬ超過」の場合、ＩＣＭＰエラー通知メッセージ７４を発側端末だけに通知すればよいので、ＩＣＭＰエラー通知メッセージ７４は発側端末範囲３０１に送信する。
【０１１９】
また、ＩＣＭＰメッセージ種別のタイプが「宛先到達不能メッセージ」、コードが「フラグメント必要でＤＦ設定」の場合で、ＤＦ設定ポリシーが設定２の場合、ＳＡを使用している全通信端末にＩＣＭＰエラー通知メッセージ７４を通知する必要があるので、ＩＣＭＰエラー通知メッセージ７４は発側端末範囲３０２に送信する。
【０１２０】
また、ＩＣＭＰメッセージ種別のタイプが「宛先到達不能メッセージ」、コードが「フラグメント必要でＤＦ設定」の場合で、ＤＦ設定ポリシーが設定３の場合、ＤＦを設定して送信する通信端末にだけＩＣＭＰエラー通知メッセージ７４を通知すればよいので、ＩＣＭＰエラー通知メッセージ７４は発側端末範囲３０１に送信する。
【０１２１】
また、ＩＣＭＰメッセージ種別のタイプが「宛先到達不能メッセージ」であり、コードが「ネットワーク到達不能」または「ホスト到達不能」の場合、ＳＡを使用している全通信端末にＩＣＭＰエラー通知メッセージ７４を通知する必要があるので、ＩＣＭＰエラー通知メッセージ７４は発側端末範囲３０２に送信する。
【０１２２】
ＩＣＭＰエラー通知メッセージ７４を所定の発側端末（発側端末範囲３０１）だけに通知する場合、ＩＣＭＰ送信端末決定部５３は、ＩＣＭＰ内部パケット抽出部４２で抽出したＥＳＰヘッダ内のＳＰＩ値とシーケンス番号とをキーとして、シーケンス使用端末ＤＢ６２（シーケンス番号情報１０３）から元の発側端末アドレス（例えば通信端末Ｘ１のアドレス）を取得する。そして、再生されたＩＣＭＰエラー通知メッセージ７４は、端末側Ｉ／Ｆ１３を介して、この発側端末アドレスだけに送信される。
【０１２３】
また、ＩＣＭＰエラー通知メッセージ７４をＳＡを使用する全通信端末（発側端末範囲３０２）に通知する場合、ＩＣＭＰ内部パケット抽出部４２で抽出したＥＳＰヘッダ内のＳＰＩ値をキーとしてＳＡ使用端末ＤＢ６１（使用ＳＡ情報１０２）からＳＡを使用している全発側端末アドレス（発側端末範囲３０２内の全通信端末のアドレス）を取得する。そして、再生されたＩＣＭＰエラー通知メッセージ７４は、端末側Ｉ／Ｆ１３を介して、この全発側端末アドレスに送信される。
【０１２４】
ここで、本実施の形態１に係る暗号化通信装置１０Ａと従来の暗号化通信装置（発側トンネル装置）の差異を明確にするため従来の発側トンネル装置の問題点を説明する。ＩＣＭＰエラー通知メッセージ７４は、種別によって以下の種別１〜３の３つに分けることができる。すなわち、ＩＣＭＰエラー通知メッセージとしては、まず「Ｅｃｈｏ＿Ｒｅｐｌｙ」のように通信端末間又は暗号化通信装置間で直接やり取りされるカプセル化と関係無いＩＣＭＰメッセージ（種別１）がある。また、ＩＣＭＰエラー通知メッセージとして、ＩＣＭＰパラメタ不良・リダイレクト・宛先到達不能・時間超過メッセージのように、暗号化通信装置１０Ａなどのトンネル装置に返答されるメッセージで、中継路上でカプセル化されていることを知らない送信元ホストがそのまま受信しても意味が無いＩＣＭＰメッセージ（種別２）がある。さらに、ＩＣＭＰエラー通知メッセージとして、ＩＣＭＰ発信元送信抑制、ＩＣＭＰエラー通知メッセージのように発側端末に直接返答されるべきＩＣＭＰメッセージ（種別３）がある。
【０１２５】
ＩＣＭＰエラー通知メッセージ７３には、ＩＣＭＰ発信元送信抑制、ＩＣＭＰ＿ＭＴＵ超過（フラグメントが必要でＤＦ設定あり）、ＩＣＭＰ宛先到達不能、ＩＣＭＰパラメタ異常、ＩＣＭＰリダイレクト通知など、ＩＣＭＰエラー通知メッセージにエラーを検出する原因となった元メッセージの一部をデータとして付与するものがある。このため、元メッセージを内包するＩＣＭＰエラー通知メッセージ７３は、種別３のような発側端末に直接返答されるべきＩＣＭＰメッセージが多い。なぜなら、これらのＩＣＭＰメッセージは、発側端末に着側端末への到達不能という障害通知と、その障害の原因を発側端末が解析するために、元メッセージも通知する目的を持っているからである。
【０１２６】
このため、従来までの発側トンネル装置では、トンネル経路上ＩＰルータから自装置宛てのＩＣＭＰエラー通知メッセージ７３を受信すると、受信したＩＣＭＰエラー通知メッセージ７３の種別を調べ、種別３のようなトンネル経路上ＩＰルータから発側端末へ通知されるべきＩＣＭＰメッセージで、かつＩＣＭＰエラー通知メッセージ７３が元メッセージの一部をデータとして含んでいる場合、さらにＩＣＭＰエラー通知メッセージの内側まで深く解析して発着端末アドレスを判定し、所定の発側端末アドレスへＩＣＭＰエラー通知メッセージ７３を中継転送する必要があった。
【０１２７】
ところが、発側トンネル装置は、ＩＰＳＥＣ環境でのＩＣＭＰエラー通知メッセージ７３から発着端末アドレスを判定しようとすると、このデータ部に付与される元メッセージは発側トンネル装置自体が生成したトンネリング用のカプセル化メッセージになってしまっている。
【０１２８】
なぜなら、発側トンネル装置はＩＰメッセージの送信時に、発着端末間のＩＰメッセージを内側に隠蔽し、外側に発着トンネル装置アドレスを設定したトンネリング用の外側のカプセル化メッセージで送信しているからである。すなわち、実際の発側端末アドレスは、発側トンネル装置が受信したＩＣＭＰエラー通知メッセージ７３の、データ領域に付与されたエラーの原因となったカプセル化メッセージの、さらにその内側に存在している。
【０１２９】
ＩＣＭＰエラー通知メッセージ内に付与されるデータ領域の最低長は、ＲＦＣの規定では、元のメッセージ（この場合はカプセル化メッセージ）のＩＰヘッダ長＋６４Ｂｙｔｅ以上である。
【０１３０】
例えば、発側トンネル装置がＩＰメッセージをカプセル化して送信する際に、カプセル化に使用するパラメータが多い、あるいは各々のパラメータが使用するバイト数が大きい等の理由で、構成されるカプセル化ヘッダ長が大きくなる場合がある。このような場合、カプセル化ヘッダ長により実際に通信端末が使用する真のメッセージのＩＰヘッダ部を復元するのに必要な長さが、ＩＣＭＰエラー通知メッセージ内に付与されるデータ領域の最低長６４Ｂｙｔｅで収まらない場合がある。このとき、従来の発側トンネル装置では、内側に存在する発着端末アドレスを直接判定できないこととなる。
【０１３１】
また、トンネルモードのＩＰＳＥＣ＿ＥＳＰ処理を実行する場合、内側のメッセージ（実際に通信端末が使用する真のメッセージ部）はトンネル経路上で暗号化＋カプセル化して隠蔽される。これにより、発側トンネル装置はＩＣＭＰエラー通知メッセージ内に含まれる元メッセージ（発着トンネル装置アドレスを持った外側のカプセル化メッセージヘッダ）の内容は解析できるが、内側の通信端末が使用する真のメッセージ部は暗号化され、そのヘッダ部までは直接解析できないこととなる。このため、発側トンネル装置は、ＩＣＭＰエラー通知メッセージ７３を戻すべき発側端末アドレスを直接判定できないこととなる。
【０１３２】
さらに、従来の暗号化通信装置では、トンネル経路に収容する発着端末アドレスとしてアドレスの範囲を指定し、複数の発着端末アドレスからのメッセージをまとめてこのトンネルに収容して転送する場合に、収容アドレス範囲が指定されたＩＣＭＰエラー通知メッセージ７３を発側端末に戻すだけでは不十分な場合がある。これは、トンネル経路上のルータから受信したＩＣＭＰ宛先到達不能などのＩＣＭＰエラー通知メッセージ７３は、その障害を検出する要因となったメッセージを送信した発側端末だけに対処すべき問題があるのではなく、このメッセージが収容されたトンネルの発アドレス範囲内に存在する通信端末全てにとって、対処すべき問題が発生した障害だからである。
【０１３３】
つまり、この場合に問題となる障害はトンネルに関係しているので、発側トンネル装置はトンネル経路上ルータから受信したＩＣＭＰエラー通知メッセージ７３を、このトンネルを使用している（使用する可能性のある）発側端末にも通知することが望ましい。
【０１３４】
このような場合、ＩＣＭＰエラーを通知すべき発側端末は、障害が発生したトンネルに収容する発側アドレス範囲（発側端末範囲３０３）内に存在する。ところが、どの発側端末が現在、そのトンネルを使用している（使用する可能性がある）かを判断する情報がＩＣＭＰエラー通知メッセージ７３には含まれず、さらにカプセル化トンネリング装置自体も判断情報を持たないため、実際にそのトンネルを使用している発側端末範囲３０２の判定を行うことは難しい。
【０１３５】
トンネルの収容発側アドレス範囲の発側端末の全て（発側端末範囲３０３）にＩＣＭＰエラー通知メッセージ７３すると、実際にはこのトンネルを使用している発側端末数がトンネルの発側アドレス範囲の端末数に比べて小さい場合、多くの不要なＩＣＭＰエラー通知メッセージ７３が通信端末側に通知されることになる。例えば、トンネルの発側アドレス範囲＝（１９２．１６８．０．０／１６）の６５５３５台に対し、実際にこのトンネル使用する端末のアドレスが（１９２．１６８．０．１−１９２．１６８．０．１０）の１０台程度である場合、多くの不要なＩＣＭＰエラー通知メッセージ７３が通信端末側に通知されることになる。これにより、通信端末へのＩＣＭＰエラー通知メッセージ７４、あるいはこれに伴うＡＲＰ送受信などによって帯域の無駄な消費になる。
【０１３６】
一方、ＩＣＭＰエラー通知メッセージ７３をその障害を検出する要因となったメッセージの発側端末（発側端末範囲３０１）のみに通知すると、実際にはこのトンネルを使用している通信端末数が非常に多い場合、トンネルを使用する多くの通信端末へのＩＣＭＰエラー通知処理が複雑になる。例えば、トンネルの発側アドレス範囲＝（１９２．１６８．０．０／２４）に対し、実際にこのトンネル使用する通信端末のアドレスが（１９２．１６８．０．１−１９２．１６８．０．２５０）の２５０台と多い場合がある。
【０１３７】
このとき、トンネルを使用する多くの通信端末は、各々が通信端末からトンネルを使用するメッセージを送信し、発側トンネル装置はこの各々の通信端末が送信するメッセージを受信する。そして、発側トンネル装置は各々のメッセージに使用するトンネルを判定し、さらにこの障害が発生したトンネルを使用するのでＩＣＭＰエラー通知メッセージの転送不可と判定した後、ようやくＩＣＭＰエラー通知メッセージ７４をその通信端末だけに応答することとなる。
【０１３８】
すなわち、非特許文献１で説明した状況が各々の通信端末に対して大規模に発生し、発側端末は中継路上のトンネル使用不可による障害発生を、各々の通信端末が次のメッセージを送信しＩＣＭＰエラーが応答されるまで知ることは出来ないというタイムタグが発生する。さらに、各々の発側端末が個別にメッセージを送信し、それに伴い個別にＩＣＭＰエラー通知されることで、多くの不要な送信メッセージが発側トンネル装置に送信され、帯域の無駄な消費になるだけでなく、発側トンネル装置の処理負荷も増大する。
【０１３９】
一方、本実施の形態１に係る暗号通信装置１０Ａは、ＳＡ使用端末ＤＢ６１（使用ＳＡ情報１０２）とシーケンス使用端末ＤＢ６２（シーケンス番号情報１０３）を備え、ＩＰＳＥＣメッセージ７２の送信時に、ＳＡを使用する発着通信端末と、シーケンス番号毎の発着通信端末アドレスを記憶するようにしている。
【０１４０】
また、暗号通信装置１０Ａは、ＩＣＭＰ中継処理判定部５１、ＩＣＭＰ再生部５２、ＩＣＭＰ送信端末決定部５３を備え、ＩＣＭＰエラー通知メッセージ７３の受信時には、通知されたＩＣＭＰエラーの内容を解釈するとともに、ＩＣＭＰエラー通知メッセージ７４を再生している。さらに、受信したＩＣＭＰエラーの種別に応じて、ＩＣＭＰエラー通知メッセージ７４を通知する発側端末を決定し、使用ＳＡ情報１０２、シーケンス番号情報１０３に基づいて、ＩＣＭＰエラー通知メッセージ７４を通知する発側端末のアドレスを回復できるようにしている。
【０１４１】
これにより、ＩＣＭＰエラー通知メッセージ７３を受信した際の発着端末アドレスをＩＣＭＰエラー通知メッセージ７３から直接判定することが可能となる。したがって、暗号化通信装置１０Ａがトンネリング通信を利用し、トンネル経路上で送受信されるトンネリングメッセージの発着アドレスが発着トンネル装置（暗号化通信装置１０Ａ，１０Ｂ）のアドレスとなり、発着端末のアドレスが内側メッセージに隠蔽されてしまう場合であっても、適切な発側端末にＩＣＭＰエラー通知メッセージ７４を送信することが可能となる。
【０１４２】
このように実施の形態１によれば、暗号通信装置１０Ａは、発側端末から送信された元のＩＰメッセージの部分が暗号化されている場合であっても、暗号化通信路上（トンネル側）から送信ＩＰＳＥＣメッセージ７２を含むＩＣＭＰエラー通知メッセージ７３を受信した際に、ＩＣＭＰエラー通知メッセージ７３を必要とする発側端末を適切に判断することが可能となる。したがって、容易にＩＣＭＰエラー通知メッセージ７４を適切な発側端末に通知することが可能となる。
【０１４３】
また、暗号通信装置１０Ａは、ＩＣＭＰエラー通知メッセージ７３の必要な発側端末を絞り込んでＩＣＭＰエラーを通知するので、暗号通信装置１０Ａが通信端末に送信する不要なＩＣＭＰエラーの通知量（データ量）を削減できる。
【０１４４】
また、暗号通信装置１０Ａは、トンネル経路上のＩＰルータ（ルータＲ１〜Ｒ３）からＩＣＭＰエラー通知メッセージ７３を受信した際に、発側端末側にＩＣＭＰエラー通知メッセージ７３を行なうので、発側端末が、発側端末から送信したメッセージが暗号化通信路（トンネル経路）上で発生させた障害や状態変化を知るまでのタイムラグを短くさせることが可能となる。したがって、発側端末は、暗号化通信路を使用する不要なメッセージを送信することが無くなり、発側端末が暗号通信装置１０Ａに送信する不要な送信メッセージ量も削減できる。これにより、帯域の無駄な消費を抑制し、発側端末に効率良くＩＣＭＰエラー通知メッセージ７４を通知することが可能となる。
【０１４５】
また、暗号通信装置１０Ａは、ＳＡ使用端末ＤＢ６１（使用ＳＡ情報１０２）で受信タイムアウトとなったデータを削除（忘却）するので、ＳＡ使用端末ＤＢ６１を効率良く利用することができるとともに、メモリ容量を小さく構成することが可能になる。
【０１４６】
また、暗号通信装置１０Ａは、シーケンス使用端末ＤＢ６２（シーケンス番号情報１０３）で、所定時間の経過後等に古くなったデータを削除するので、シーケンス使用端末ＤＢ６２を効率良く利用することができるとともに、メモリ容量を小さく構成することが可能になる。
【０１４７】
実施の形態２．
つぎに、図１２〜図１５を用いてこの発明の実施の形態２について説明する。実施の形態２では、暗号化された元のＩＰメッセージの一部を復号して、ＩＣＭＰエラー通知メッセージ７４を送信すべき発側端末のアドレスを割り出す。
【０１４８】
図１２は、本発明に係る暗号化通信装置の実施の形態２の構成を示すブロック図である。図１２の各構成要素のうち図３に示す実施の形態１の暗号化通信装置１０Ａと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【０１４９】
ここでの暗号化通信装置１０Ａは、ＩＣＭＰ再生データ管理部６０にＳＡ使用端末ＤＢ６１を備えている。また、暗号化通信装置１０Ａは、ＩＣＭＰ中継再生処理部５０に、ＩＣＭＰ中継処理判定部５１、ＩＣＭＰ復号・再生処理部５５、ＩＣＭＰ送信端末決定部５３を有している。
【０１５０】
ＩＣＭＰ復号・再生処理部５５は、受信したＩＣＭＰエラー通知メッセージ７３（後述のメッセージＭ１１〜Ｍ１５）に付与されたＩＰＳＥＣメッセージから、ＩＰＳＥＣ＿ＥＳＰヘッダと初期ベクトル値を得て、元のＩＰメッセージヘッダを復号する。
【０１５１】
つぎに、実施の形態２に係る暗号化通信装置１０Ａの動作手順について説明する。なお、実施の形態１の暗号化通信装置１０Ａと同様の動作を行なう手順についてはその説明を省略する。
【０１５２】
（送信側での暗号化処理）
図１３は、送信側の暗号化通信装置の暗号化処理を説明するための図である。暗号化通信装置１０Ａの暗号化処理部２３は、発側端末からのＩＰメッセージ７１を受信して、対向する暗号化通信装置１０ＢへＩＰＳＥＣメッセージ７２を送信するため、ＩＰメッセージ７１の暗号化処理を行なう。
【０１５３】
このとき、暗号化処理部２３は、対抗する暗号化通信装置１０Ｂと共有する共有秘密鍵８１、最初の送信メッセージの時は初期ベクトル値の初期値８２、あるいは後続の送信メッセージではその１つ前の送信メッセージの暗号化データ（暗号ブロックの最終ブロック）から生成する初期ベクトル値１３１〜１３４を用いて、各メッセージＭ１〜Ｍ５（ＩＰメッセージ７１）を暗号化する。初期ベクトル値の初期値８２、初期ベクトル値１３１〜１３５は、メッセージ毎に異なる擬似乱数の初期ベクトルであり、暗号化処理部２３は、この初期ベクトル値の初期値８２、あるいは初期ベクトル値１３１〜１３４を用いて、暗号化に使用する暗号化ブロック長単位でＩＰメッセージ７１を暗号化する。
【０１５４】
これらの初期ベクトル値は、各パケット（メッセージＭ１〜Ｍ５）毎に、ＥＳＰデータ内の最初の部分に付与される。すなわち、初期ベクトル値は、ＥＳＰヘッダの直後の部分であって、暗号化するＩＰメッセージ７１の前（暗号化データの前）に付与される。すなわち、初期ベクトル値はＥＳＰヘッダと暗号化したＩＰメッセージの間に入れられている。なお、ここでの初期ベクトル値はＥＳＰヘッダには含まれずペイロード部に含まれている。
【０１５５】
（送信側でのＩＣＭＰ復号処理）
図１４は、送信側の暗号化通信装置のＩＣＭＰ復号処理を説明するための図である。暗号化通信装置１０ＡのＩＣＭＰ復号・再生処理部５５は、ルータＲ１〜Ｒ３からＩＣＭＰエラー通知メッセージ７３（メッセージＭ１〜Ｍ５に対応するメッセージＭ１１〜Ｍ１５）を受信すると、このメッセージＭ１１〜Ｍ１５の暗号化に使用した初期ベクトル値の再生と、メッセージＭ１１〜Ｍ１５の復号を行なう。
【０１５６】
ここでのメッセージＭ１１〜Ｍ１５の復号には、共有秘密鍵８１、初期ベクトル値の初期値８２、初期ベクトル値１３１〜１３４が必要となる。共有秘密鍵はＳＡが永続する限り不変であるが、各初期ベクトル値１３１〜１３５はメッセージ毎に可変となる。
【０１５７】
このためＩＣＭＰ復号・再生処理部５５は、受信したＩＣＭＰエラー通知メッセージ７３（メッセージＭ１１〜Ｍ１５）に付与されたＩＰＳＥＣメッセージから、ＩＰＳＥＣ＿ＥＳＰヘッダの初期ベクトル値を得て、元のＩＰメッセージヘッダ（ＩＰヘッダ）を復号する。
【０１５８】
この時、受信したＩＣＭＰエラー通知メッセージ７３に付与されるデータ長としては、ＩＰＳＥＣ＿ＥＳＰヘッダ長＋各暗号化アルゴリズムが使用する初期ベクトル長＋元のＩＰメッセージのヘッダ長分が必要となる。さらに、元のＩＰメッセージヘッダはブロック暗号のブロック暗号長単位で復号される。このため、ルータＲ１〜Ｒ３が応答するＩＣＭＰエラー通知メッセージ７３（メッセージＭ１１〜Ｍ１４）の付与メッセージ長は、暗号化通信装置１０Ａと暗号化通信装置１０Ｂの間で使用されるＩＰＳＥＣメッセージのＩＰヘッダ長に加え、以下のヘッダ長を用いて応答する。すなわち、ルータＲ１〜Ｒ３は、ＩＰＳＥＣメッセージのＩＰヘッダ長、ＩＰＳＥＣ＿ＥＳＰヘッダ長と各暗号化アルゴリズムが使用する初期ベクトル長（Ａ）、暗号化された元のオリジナルメッセージのＩＰヘッダ長（Ｂ）の合計値以上のデータ長で、メッセージＭ１１〜Ｍ１４を暗号化通信装置１０Ａに応答する。
【０１５９】
なお、（Ｂ）のデータの暗号化はＤＥＳ、３ＤＥＳ等のブロック暗号により行われるとともに、ブロック暗号は６４ｂｉｔや１２８ｂｉｔ等のブロック単位長毎でないと暗号化通信装置１０Ａで復号できないため、（Ｂ）のデータ長（オリジナルメッセージ長のＩＰヘッダ長）は、使用するブロック暗号化アルゴリズムの暗号化ブロック単位長で切り上げた長さとする。
【０１６０】
ここでは、メッセージＭ２，３，５に対応するメッセージＭ１２，１３，１５がルータＲ１〜Ｒ３の何れかからＩＣＭＰ応答なしの場合を示している。このような場合であっても、ＩＣＭＰ復号・再生処理部５５が、例えばメッセージＭ１４を復号する際には、メッセージＭ１４に付与されたＩＰＳＥＣメッセージから、ＩＰＳＥＣ＿ＥＳＰヘッダの直後の初期ベクトル値を得て、元のＩＰメッセージヘッダ（ＩＰヘッダ）を復号できる。
【０１６１】
（受信側でのメッセージ復号処理）
図１５は、受信側の暗号化通信装置のメッセージ復号処理を説明するための図である。ルータＲ１〜Ｒ３の何れかから暗号化通信装置１０ＢへＩＣＭＰエラー通知メッセージ７３が送られることなく、暗号化通信装置１０Ａから暗号化通信装置１０Ｂへ、ＩＰＳＥＣメッセージ７２が送信されると、暗号化通信装置１０Ｂの復号処理部３５は受信したＩＰＳＥＣメッセージ７２（メッセージＭ１〜Ｍ５に対応するメッセージＭ２１〜Ｍ２５）の復号を行なう。このとき、暗号化通信装置１０Ｂは、メッセージＭ２１〜Ｍ２５の暗号化に使用した初期ベクトル値を再生し、メッセージＭ２１〜Ｍ２５の復号を行なう。
【０１６２】
ここでは、メッセージＭ２に対応するメッセージＭ２２がルータＲ１〜Ｒ３の何れかによる廃棄処理によって欠落している場合を示している。このような場合であっても、復号処理部３５が、例えばメッセージＭ２３を復号する際には、ＩＰＳＥＣ＿ＥＳＰヘッダの直後の初期ベクトル値を得て、メッセージＭ２３に付与されたＩＰＳＥＣメッセージ部を復号する。
【０１６３】
なお、ここでは暗号化通信装置１０Ａから暗号化通信装置１０Ｂへ送信するメッセージがメッセージＭ１〜Ｍ５の５つである場合について説明したが、メッセージ数は５つに限られず４つ以下でもよいし６つ以上でもよい。
【０１６４】
このように実施の形態２によれば、ＩＣＭＰエラー通知メッセージ７３に付与するデータ長を、ＩＰＳＥＣメッセージのＩＰヘッダ長、ＩＰＳＥＣ＿ＥＳＰヘッダ長と各暗号化アルゴリズムが使用する初期ベクトル長（Ａ）、暗号化された元のオリジナルメッセージのＩＰヘッダ長（Ｂ）の合計値以上のデータ長（元のオリジナルメッセージ長のＩＰヘッダを復号できる十分なデータ長）としているので、ＩＣＭＰ復号・再生処理部５５は、所望の元のオリジナルメッセージのＩＰヘッダを復号することが可能となる。これにより、暗号化通信装置１０Ａは、ＩＣＭＰエラー通知メッセージ７３を送信すべき通信端末のアドレス（端末識別情報）を得ることができ、適切な通信端末にＩＣＭＰエラー通知メッセージ７４を送信することが可能となる。
【０１６５】
また、暗号化通信装置１０Ａは、ＩＣＭＰエラー通知メッセージ７３からＩＣＭＰエラー通知メッセージ７３を送信すべき通信端末のアドレスを得ることができるので、シーケンス番号等を記憶しておくシーケンス使用端末ＤＢ６２を用いることなく、簡易な構成で適切な通信端末にＩＣＭＰエラー通知メッセージ７４を送信することが可能となる。
【０１６６】
実施の形態３．
つぎに、図１６〜図１８を用いてこの発明の実施の形態３について説明する。実施の形態３では、ＩＰＳＥＣメッセージ７２を送信する際にＩＰＳＥＣメッセージ７２を識別するための情報を記憶しておき、ＩＣＭＰエラー通知メッセージ７３を受信した際には、記憶しておいた情報に基づいて、ＩＣＭＰエラー通知メッセージ７３が偽装したものであるか否かを判断する。これにより、偽装されたＩＰＳＥＣ＿ＥＳＰヘッダ部のシーケンス番号を持ったＩＣＭＰエラーを通知して通信を妨害するＤｏＳ攻撃に耐性を持たせる。
【０１６７】
図１６は、本発明に係る暗号化通信装置の実施の形態３の構成を示すブロック図である。図１６の各構成要素のうち図３に示す実施の形態１の暗号化通信装置１０Ａと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【０１６８】
ここでの暗号化通信装置１０Ａは、シーケンス認証値ＤＢ（記憶部）９１を備えている。また、暗号化通信装置１０Ａは、ＩＣＭＰ受信処理部４０に、ＩＣＭＰ内部パケット抽出・監査処理部４５を備えている。
【０１６９】
シーケンス認証値ＤＢ９１は、暗号化通信装置１０ＡがＩＰＳＥＣメッセージ７２を送信する際に算出される、独自のメッセージダイジェスト認証値（後述の偽装検出用認証値）に関する情報（後述の認証値情報１０４）を記憶する。
【０１７０】
ＩＣＭＰ復号・再生処理部５５は、暗号化通信装置１０ＡにＩＣＭＰエラー通知メッセージ７３や後述の偽装メッセージが通知された際、元のＩＰＳＥＣメッセージ７２のＩＰヘッダ＋６４Ｂｙｔｅに対して偽装検出用認証値を算出するとともにシーケンス番号を抽出する。ＩＣＭＰ内部パケット抽出・監査処理部４５は、抽出したシーケンス番号をキーとして、シーケンス認証値ＤＢ９１からシーケンス番号に対応する偽装検出用認証値を抽出し、シーケンス認証値ＤＢ９１から抽出した偽装検出用認証値と算出した偽装検出用認証値を比較して、偽装メッセージを検出する。
【０１７１】
つぎに、偽装されたＩＣＭＰエラー通知メッセージ７３の検出方法について説明する。正規のルータであるルータＲ１等が送信するＩＣＭＰエラー通知メッセージ７３と、偽物のルータ（以下、偽装ルータという）が送信するＩＣＭＰエラー通知メッセージ（以下、偽装メッセージという）は、ＥＳＰヘッダ＋データ部が僅かに異なっている。
【０１７２】
これは、偽装ルータが正規の元のＩＰＳＥＣメッセージ７２を知ることが出来ないため、偽装ルータが予測によって偽装メッセージに含める元のＩＰＳＥＣメッセージ７２の部分（データ部）を生成するからである。
【０１７３】
本実施の形態３に係る暗号化通信装置１０Ａは、通信システム１００内で、ルータＲ１等が送信するＩＣＭＰエラー通知メッセージ７３と、偽装ルータが送信する偽装メッセージとで異なる部分を抽出し、偽装メッセージを検出する。
【０１７４】
偽装ルータは、発側の暗号化通信装置１０Ａや着側の暗号化通信装置１０Ｂのアドレス、中継路上にある正規のルータＲ１〜Ｒ３のアドレス、ＥＳＰで使用するＳＰＩ値などは何らかの手段で入手できる可能性がある。また、ＥＳＰで使用するシーケンス番号は１から順に始まることなどを利用して、偽装メッセージを偽造できる場合がある。
【０１７５】
しかしながら、発側端末が実際に転送するＩＰメッセージ７１をさらに暗号化したＩＰＳＥＣメッセージ７２の内部パケットの部分まで偽造することは、実際のＩＰＳＥＣメッセージ７２を受信可能な正規の暗号化通信路上のルータＲ１〜Ｒ３以外には不可能である。
【０１７６】
正規のＩＣＭＰエラー通知メッセージ７３に含まれる元のＩＰＳＥＣ＿ＥＳＰメッセージと、偽装メッセージに含まれるＩＰＳＥＣ＿ＥＳＰメッセージの異なる部分（差異）として各バイト位置の値があげられる。ところが、この差異は全てのバイト位置で必ず発生するという分けではない。特定の１バイト同士でメッセージを比較する場合、例えば攻撃者はその特定のバイトを０ｘ００〜０ｘｆｆまでの全ての値を持った偽造したＩＣＭＰエラー通知を生成すれば、簡単に発側の暗号通信装置１０Ａの偽装検出を回避することができてしまう。
【０１７７】
一方、送信した真のＩＰＳＥＣメッセージ７２の元のＩＰＳＥＣ＿ＥＳＰメッセージの全バイトと、偽装メッセージが含むＩＰＳＥＣ＿ＥＳＰメッセージの全バイトについて異なる部分を検査し、１バイトでも違いが発生していれば、それは偽装メッセージであると判断できる。
【０１７８】
したがって、本実施の形態３においては、発側の暗号通信装置１０Ａは、送信する全てのＩＰＳＥＣメッセージ７２を所定の期間保存し、ＩＣＭＰエラー通知メッセージ７３や偽装メッセージが応答されると、メッセージ内に付与された元のＩＰＳＥＣ＿ＥＳＰメッセージの一部と保存しておいたＩＰＳＥＣメッセージ７２を比較する。そして、両者に差異があれば、この差異を検出してメッセージの受け入れを拒否する。
【０１７９】
また、本実施の形態３においては、発側の暗号通信装置１０Ａは、メッセージダイジェスト認証を用いて正当なメッセージと偽装メッセージの差異比較や差異点の抽出処理を行なう。
【０１８０】
元のＩＰＳＥＣメッセージ７１には図１３に示したように、メッセージダイジェスト認証値が付与され保護されている。しかしながら、このメッセージダイジェスト認証値は、元のＩＰＳＥＣ＿ＥＳＰメッセージの最後に付与されるので、通知されたＩＣＭＰエラー通知メッセージ７３からは、元のＩＰＳＥＣ＿ＥＳＰメッセージの正当性は検証できない。
【０１８１】
そこで、ここでの暗号化通信装置１０Ａの認証値計算部（第１の識別情報算出部）２５は、通常のＩＰＳＥＣ＿ＥＳＰメッセージ全体を保護する標準のメッセージダイジェスト認証値の他に、自身だけが使用する別のメッセージダイジェスト認証値（以下、偽装検出用認証値という）を計算して保持するようにする。
【０１８２】
図１７は、偽装検出用認証値の算出方法を説明するための図である。同図において上側のパケットは、暗号化通信装置１０Ａが送信するＩＰＳＥＣメッセージ７２（ＩＰＳＥＣ＿ＥＳＰパケット）を示し、下側のパケットは暗号化通信装置１０Ａが受信するＩＣＭＰエラー通知メッセージ７３を示している。
【０１８３】
暗号化通信装置１０ＡがＩＰＳＥＣメッセージ７２を送信する際、認証値計算部２５は、元のＩＰＳＥＣ＿ＥＳＰメッセージに付与される部分（送信するＩＰＳＥＣメッセージ７２のＩＰヘッダ＋６４Ｂｙｔｅ（ＥＳＰヘッダ＋一部のデータ部）に対して独自のメッセージダイジェスト認証である偽装検出用認証値を算出し、シーケンス認証値ＤＢ９１に記憶させておく。偽装検出用認証値は、後述の認証値情報１０４としてシーケンス認証値ＤＢ９１に記憶させておく。
【０１８４】
ここで、シーケンス認証値ＤＢ９１が記憶する偽装検出用認証値（認証値情報１０４）について説明する。図１８は、認証値情報の構成の一例を示す図である。認証値情報１０４は、偽装ルータから送信されてきた偽装メッセージを検出するための情報であり、「対向装置」（アドレス）、「ＳＰＩ値」、「シーケンス番号」、「偽装検出用認証値」がそれぞれ対応付けされている。すなわち、ここでの認証値情報１０４は、「シーケンス番号」と「偽装検出用認証値」が対応付けされており、ＩＰＳＥＣメッセージ７２を送信した際に記憶しておいた「偽装検出用認証値」を「シーケンス番号」に基づいて検索できる構成となっている。
【０１８５】
ここでは、暗号化通信装置１０ＡがＩＰＳＥＣメッセージ７２を送信する際に、認証値計算部２５がＩＣＭＰエラー通知メッセージ７３で応答される可能性のあるＩＰヘッダ＋６４Ｂｙｔｅ分を対象として偽装検出用認証値を算出し、シーケンス番号をキーとしてシーケンス認証値ＤＢ９１に保存しておく。
【０１８６】
暗号化通信装置１０ＡにＩＣＭＰエラー通知メッセージ７３や偽装メッセージが通知された際、ＩＣＭＰ内部パケット抽出・監査処理部（第２の識別情報算出部）４５は、元のＩＰＳＥＣメッセージ７２のＩＰヘッダ＋６４Ｂｙｔｅに対して偽装検出用認証値を算出するとともにシーケンス番号を抽出する。そして、ＩＣＭＰ内部パケット抽出・監査処理部４５は、抽出したシーケンス番号をキーとして、シーケンス認証値ＤＢ９１からシーケンス番号に対応する偽装検出用認証値を抽出する。さらに、ＩＣＭＰ内部パケット抽出・監査処理部（偽装判断部）４５は、シーケンス認証値ＤＢ９１から抽出した偽装検出用認証値と算出した偽装検出用認証値を比較する。
【０１８７】
算出した偽装検出用認証値が抽出した偽装検出用認証値と等しい場合、このメッセージは正当なＩＣＭＰエラー通知メッセージ７３であり、等しくない場合は偽装メッセージである。したがって、ＩＣＭＰ内部パケット抽出・監査処理部４５は、算出した偽装検出用認証値が抽出した偽装検出用認証値と等しい場合に、メッセージ（ＩＣＭＰエラー通知メッセージ７３）を受け入れる。一方、ＩＣＭＰ内部パケット抽出・監査処理部４５は、算出した偽装検出用認証値が抽出した偽装検出用認証値と等しくない場合に、メッセージ（偽装メッセージ）の受け入れを拒否する。
【０１８８】
なお、偽装検出用認証値の算出は、暗号化通信路上のルーティング処理によって変更される可能のある領域（例えば、ＩＰＳＥＣのＩＰヘッダ部のＴＯＳ（Type Of Service）領域、チェックサム領域、ＤＳ（Differentiated Services）フィールドなど）を除いて算出してもよい。
【０１８９】
これにより、暗号化通信路上の、ＩＣＭＰエラー通知メッセージ７３を応答するルータＲ１〜Ｒ３以外の偽装ルータが、これらの領域（ＴＯＳ領域やチェックサム領域など）を変更しても、暗号化通信装置１０Ａは、確実にＩＣＭＰエラー通知メッセージ７３の応答ルータが暗号化通信路上に存在する正規なルータＲ１〜Ｒ３なのか、偽装ルータなのかを判定できる。
【０１９０】
ここで、本実施の形態３に係る暗号化通信装置１０Ａと従来の暗号化通信装置（発側トンネル装置）の差異を明確にするため従来の発側トンネル装置の問題点を説明する。現実のＩＰネットワークでは、ＩＣＭＰエラー通知の多くをＩＰＳＥＣ非対応のルータが送信している。このため従来まではＩＣＭＰエラー通知の正当性を直接確認できなかった。
【０１９１】
したがって、従来までは、通知されたＩＣＭＰエラー通知あるいは偽装メッセージを全て受け入れるか、全て拒絶するか、あるいはＩＣＭＰエラー通知に所定のチェックを行なって正当なＩＣＭＰエラー通知だけを受け入れるかのいずれかである。
【０１９２】
ところが、ＩＣＭＰエラー通知を直接的にチェックをして受け入れる技術は従来までなかった。また、全て受け入れる場合には、ＩＣＭＰ＿ＭＴＵ超過やＩＣＭＰ宛先到達不能などネットワーク障害に関する重大な通知を、それが正当であるかとどうかをチェックすることなく受け入れることになり、容易にＤｏＳ攻撃が可能になってしまうという問題が発生する。
【０１９３】
また、全て拒絶する場合には、ＩＣＭＰ＿ＭＴＵ超過やＩＣＭＰ宛先到達不能などネットワーク障害に関する重大な通知を全く拒否することになり、重要な障害が検出できないという問題が発生する。
【０１９４】
一方、本実施の形態３に係る暗号通信装置１０Ａは、ＩＰＳＥＣメッセージ７２を送信する際にＩＰＳＥＣメッセージ７２に基づいて偽装検出用認証値を算出し、ＩＰＳＥＣメッセージ７２が必ず保持するパケット毎のシーケンス番号と関連付けて記憶している。そして、ＩＣＭＰエラー通知メッセージ７３を受信した際には、このＩＣＭＰエラー通知メッセージ７３に基づいて偽装検出用認証値を算出している。
【０１９５】
そして、ＩＰＳＥＣメッセージ７２から算出した偽装検出用認証値と、ＩＣＭＰエラー通知メッセージ７３から算出した偽装検出用認証値に基づいて、受信したＩＣＭＰエラー通知メッセージ７３が偽装したものであるか否かを判断している。
【０１９６】
これはシーケンス番号のカウントアップが保証され、それにより各ＩＰＳＥＣメッセージを一意に識別できるＩＰＳＥＣ固有の方法であり、シーケンス番号などを持たない既存のＩＰパケットなどでは、例え独自の認証値を計算してもそれがどの送信パケットに対応する認証値か、ＩＣＭＰエラー通知メッセージ受信時に比較することができないので、この方法は利用できないのである。
【０１９７】
また、ＩＣＭＰエラー通知の偽装に注目し、暗号化通信装置１０Ａは、自身は再生したＩＣＭＰエラー通知メッセージ７４を通信端末側に送信し、通信端末に暗号化通信路上の障害を通知を可能とする機能を持たせるとともに、暗号化通信路上の不正な偽装ルータから受信する偽装メッセージ（偽造したＩＣＭＰエラー通知）は受け入れないよう構成した。これにより、暗号化通信装置１０Ａは、ＩＰＳＥＣ＿ＥＳＰ環境下において柔軟なＩＣＭＰ制御が可能となる。
【０１９８】
このように実施の形態３によれば、発側の暗号化通信装置１０Ａは、ＩＣＭＰエラー通知時にこの通知メッセージが暗号経路上に存在する正規のルータＲ１〜Ｒ３からのＩＣＭＰエラー通知メッセージ７３であるか、偽装ルータからの偽装メッセージであるかを容易に判断でき、ＩＣＭＰエラー通知に起因するＤｏＳ攻撃を防御することが可能になる。
【０１９９】
また、ＩＰＳＥＣメッセージ７２の送信時に偽装検出用認証値を保存するので、ＩＰＳＥＣメッセージ７２全体、やＩＰＳＥＣメッセージ７２の必要な部分を保存するのと比べて、必要なメモリ量を大幅に削減できる。したがって、簡易な構成で偽装ルータからの偽装メッセージを検出でき、ＩＣＭＰエラー通知に起因するＤｏＳ攻撃を防御することが可能になる。
【０２００】
また、偽装検出用認証値をシーケンス番号に対応付けて保存しているので、偽装検出用認証値の比較計算量を削減でき、偽装検出用認証値の比較を容易かつ迅速に行なうことが可能となる。
【０２０１】
以上説明したように、実施の形態１〜３では、リプレイ攻撃の防御という目的を持つＩＰＳＥＣ＿ＥＳＰヘッダ内のシーケンス番号が、送信ＩＰＳＥＣパケットを一意に識別可能とするインデクッス機能を持つことに注目している。そして、このシーケンス番号を、発着端末アドレスの管理、初期ベクトル値の管理、送信メッセージ認証値（偽装検出用認証値）の管理に用いて実施の形態１〜３を実現している。また、１つのシーケンス番号でリプレイ攻撃の防御と発着端末アドレスの割り出し等を行なえるので、ＩＰＳＥＣ＿ＥＳＰ暗号化メッセージヘッダ長を削減することが可能となる。
【産業上の利用可能性】
【０２０２】
以上のように、本発明にかかる暗号化通信装置は、トンネル通信路上の通信制御用メッセージをトンネル通信路外の通信端末に転送する処理に適している。
【図面の簡単な説明】
【０２０３】
【図１】本発明に係る暗号化通信装置を含む通信ネットワークの構成を示す図である。
【図２】通信ネットワーク内で送受信されるデータの構成を説明するための図である。
【図３】本発明に係る暗号化通信装置の実施の形態１の構成を示すブロック図である。
【図４】発側端末からトンネル側へのデータ送信処理の処理手順を示すフローチャートである。
【図５】出力側ＳＡ情報の構成の一例を示す図である。
【図６】ＳＡ使用端末ＤＢが記憶する使用ＳＡ情報の構成の一例を示す図である。
【図７】シーケンス使用端末ＤＢが記憶するシーケンス番号情報の構成の一例を示す図である。
【図８】トンネル側から受信したデータの復号処理の処理手順を示すフローチャートである。
【図９】ＩＣＭＰ受信処理の処理手順を示すフローチャートである。
【図１０】実施の形態１に係るＩＣＭＰ再生処理の処理手順を示すフローチャートである。
【図１１】発側端末範囲を説明するための図である。
【図１２】本発明に係る暗号化通信装置の実施の形態２の構成を示すブロック図である。
【図１３】送信側の暗号化通信装置の暗号化処理を説明するための図である。
【図１４】送信側の暗号化通信装置のＩＣＭＰ復号処理を説明するための図である。
【図１５】受信側の暗号化通信装置のメッセージ復号処理を説明するための図である。
【図１６】本発明に係る暗号化通信装置の実施の形態３の構成を示すブロック図である。
【図１７】偽装検出用認証値の算出方方法を説明するための図である。
【図１８】認証値情報の構成の一例を示す図である。
【符号の説明】
【０２０４】
１〜３  ＬＡＮ
５  ＷＡＮ
１０Ａ，１０Ｂ  暗号化通信装置
１１  出力側ＳＡＤＢ
１２  入力側ＳＡＤＢ
１３  端末側Ｉ／Ｆ
１４  トンネル側Ｉ／Ｆ
２０  カプセル化処理部
２１  ＳＡ検索部
２２  ＳＡ使用許諾判定部
２３  暗号化処理部
２４  ＥＳＰヘッダ処理部
２５  認証値計算部
２６  ＩＰヘッダ処理部
３０  デカプセル化処理部
３１  使用ＳＡ検索部
３２  シーケンス検証部
３３  認証値確認処理部
３４  リプレイ防御処理部
３５  復号処理部
３６  出力前ＳＡＤＢ監査部３６
４０  ＩＣＭＰ受信処理部
４１  ＩＣＭＰ種別判定部
４２  ＩＣＭＰ内部パケット抽出部
４３  ＩＣＭＰ種別対応処理部
４５  ＩＣＭＰ内部パケット抽出・監査処理部
５０  ＩＣＭＰ中継再生処理部
５１  ＩＣＭＰ中継処理判定部
５２  ＩＣＭＰ再生部
５３  ＩＣＭＰ送信端末決定部５３
５５  ＩＣＭＰ復号・再生処理部
６０  ＩＣＭＰ再生データ管理部
６１  ＳＡ使用端末ＤＢ
６２  シーケンス使用端末ＤＢ
９１  シーケンス認証値ＤＢ
１００  通信システム
１０１  出力側ＳＡ情報
１０２  使用ＳＡ情報
１０３  シーケンス番号情報
１０４  認証値情報
３０１〜３０３  発側端末範囲
Ｄ１〜Ｄ３  データ
Ｍ１〜Ｍ５，Ｍ１１〜Ｍ１５，Ｍ２１〜Ｍ２５  メッセージ
Ｒ１〜Ｒ３  ルータ
Ｘ１〜Ｘｎ，Ｙ１〜Ｙｍ，Ｚ１〜Ｚｌ  通信端末
【図１】
0004647481.tif 000002
【図２】
0004647481.tif 000003
【図３】
0004647481.tif 000004
【図４】
0004647481.tif 000005
【図５】
0004647481.tif 000006
【図６】
0004647481.tif 000007
【図７】
0004647481.tif 000008
【図８】
0004647481.tif 000009
【図９】
0004647481.tif 000010
【図１０】
0004647481.tif 000011
【図１１】
0004647481.tif 000012
【図１２】
0004647481.tif 000013
【図１３】
0004647481.tif 000014
【図１４】
0004647481.tif 000015
【図１５】
0004647481.tif 000016
【図１６】
0004647481.tif 000017
【図１７】
0004647481.tif 000018
【図１８】
0004647481.tif 000019