(57)【要約】【課題】パイプライン構成でＩＰＳｅｃ機能を実現するＶＰＮ装置において、性能を劣化することなくリプレイ攻撃を完全に遮断するＶＰＮ装置を提供すること。【解決手段】ＶＰＮ装置１０１は、ＩＰＳｅｃに基づくシーケンス番号が予め定められ認証対象となる入力パケットを入力し、入力パケットのシーケンス番号に基づき入力パケットを通過させるか判定し、通過させると判定した場合に入力パケットを通過させる第１シーケンス番号チェック部１０２と、通過した入力パケットを入力して認証し、認証の結果、合格と認証した場合に、入力パケットを認証合格パケットとして通過させるパケット認証部１０４と、通過した認証合格パケットを入力し、入力した認証合格パケットをそのシーケンス番号に基づき通過させるか判定し、通過させると判定した場合に認証合格パケットを通過させる第１シーケンス番号チェック部１０５とを備えた。【選択図】図１
2007135137.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）セキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして入力し、入力した入力パケットの予め定められているシーケンス番号に基づき入力パケットを通過させるかどうか判定し、通過させると判定した場合に入力パケットを通過させる入力パケット判定部と、
前記入力パケット判定部が通過させた入力パケットを入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させるパケット認証部と、
前記パケット認証部が通過させた認証合格パケットを入力し、入力した認証合格パケットを前記予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に認証合格パケットを通過させる認証合格パケット判定部と
を備えたことを特徴とするパケット通過判定装置。
【請求項２】
前記入力パケット判定部が入力する入力パケットは、
ＩＰセキュリティプロトコルにしたがってカプセル化されており、
前記認証合格パケット判定部が入力する認証合格パケットは、
ＩＰセキュリティプロトコルにしたがってデカプセル化されていることを特徴とする請求項１記載のパケット通過判定装置。
【請求項３】
ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして入力し、入力した入力パケットの予め定められているシーケンス番号に基づき入力パケットを通過させるかどうか判定し、通過させると判定した場合に入力パケットを通過させる入力パケット判定部と、
前記入力パケット判定部が通過させた入力パケットを入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させるパケット認証部と、
パケット認証部が通過させた認証合格パケットを入力し、入力した認証合格パケットを元にして、前記予め定められているシーケンス番号を引き継ぐとともに認証合格パケットに対応する対応パケットを生成して出力する対応パケット生成部と、
前記対応パケット生成部が出力した対応パケットを入力し、入力した対応パケットをこの対応パケットが引き継いだ前記予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に対応パケットを通過させる対応パケット判定部と
を備えたことを特徴とするパケット通過判定装置。
【請求項４】
前記入力パケット判定部が入力する入力パケットは、
ＩＰセキュリティプロトコルにしたがってカプセル化されており、
前記対応パケット判定部が入力する対応パケットは、
ＩＰセキュリティプロトコルにしたがってデカプセル化されていることを特徴とする請求項３記載のパケット通過判定装置。
【請求項５】
ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして所定のスループットのネットワークを介して入力して認証処理を実行し、認証処理の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させるとともに、認証処理のスループットが前記ネットワークのスループット以上であるパケット認証部と、
前記パケット認証部が通過させた認証合格パケットを入力し、入力した認証合格パケットを予め定められているシーケンス番号に基づき通過させるかどうかを判定し、通過させると判定した場合に認証合格パケットを通過させる認証合格パケット判定部と
を備えたことを特徴とするパケット通過判定装置。
【請求項６】
前記パケット認証部は、
複数のサブ認証部を備え、
前記複数のサブ認証部のそれぞれは、
入力パケットを前記ネットワークを介して入力して認証処理を実行し、認証処理の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させることを特徴とする請求項５記載のパケット通過判定装置。
【請求項７】
ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして所定のスループットのネットワークを介して入力して認証処理を実行し、認証処理の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させるとともに、認証処理のスループットが前記ネットワークのスループット以上であるパケット認証部と、
パケット認証部が通過させた認証合格パケットを入力し、入力した認証合格パケットを元にして、前記予め定められているシーケンス番号を引き継ぐとともに認証合格パケットに対応する対応パケットを生成して出力する対応パケット生成部と、
前記対応パケット生成部が出力した対応パケットを入力し、入力した対応パケットをこの対応パケットが引き継いだ前記予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に対応パケットを通過させる対応パケット判定部と
を備えたことを特徴とするパケット通過判定装置。
【請求項８】
ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして入力し、入力した入力パケットの予め定められているシーケンス番号に基づき入力パケットを通過させるかどうか判定し、通過させると判定した場合に入力パケットを通過させる処理と、
通過した入力パケットを入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させる処理と、
通過した認証合格パケットを入力し、入力した認証合格パケットを前記予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に認証合格パケットを通過させる処理と
をコンピュータに実行させることを特徴とするパケット通過判定プログラム。
【請求項９】
ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして入力し、入力した入力パケットの予め定められているシーケンス番号に基づき入力パケットを通過させるかどうか判定し、通過させると判定した場合に入力パケットを通過させる処理と、
通過した入力パケットを入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させる処理と、
通過した認証合格パケットを入力し、入力した認証合格パケットを元にして、前記予め定められているシーケンス番号を引き継ぐとともに認証合格パケットに対応する対応パケットを生成して出力する処理と、
出力された対応パケットを入力し、入力した対応パケットをこの対応パケットが引き継いだ前記予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に対応パケットを通過させる処理と
をコンピュータに実行させることを特徴とするパケット通過判定プログラム。
【請求項１０】
ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして所定のスループットのネットワークを介して入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させる処理であって、スループットが前記ネットワークのスループット以上である処理と、
通過した認証合格パケットを入力し、入力した認証合格パケットを予め定められているシーケンス番号に基づき通過させるかどうかを判定し、通過させると判定した場合に認証合格パケットを通過させる処理と
をコンピュータに実行させることを特徴とするパケット通過判定プログラム。
【請求項１１】
ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして所定のスループットのネットワークを介して入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させる処理であって、スループットが前記ネットワークのスループット以上である処理と、
通過した認証合格パケットを入力し、入力した認証合格パケットを元にして、前記予め定められているシーケンス番号を引き継ぐとともに認証合格パケットに対応する対応パケットを生成して出力する処理と、
出力された対応パケットを入力し、入力した対応パケットをこの対応パケットが引き継いだ前記予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に対応パケットを通過させる処理と
をコンピュータに実行させることを特徴とするパケット通過判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットの暗号化や認証およびシーケンス番号の付加によって、インターネット上において安全なパケット通信を可能とするＩＰＳｅｃ（Ｓｅｃｕｒｉｔｙ  ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）機能を実装するＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）装置において、シーケンス番号チェックを行うことでリプレイ攻撃を遮断し、かつＶＰＮ装置に対する処理負荷攻撃（以下Ｄｏｓ攻撃と記述する）を防止する方式に関する。
【背景技術】
【０００２】
パケットのＩＰＳｅｃ処理方式はＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）による仕様書ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ）２４０１にて記述されている。
【０００３】
まず、シーケンス番号チェックの概要について説明する。ＩＰＳｅｃにおけるシーケンス番号はリプレイ攻撃を防止するために使用される。ＩＰＳｅｃパケット送信側のＶＰＮ装置は、個々のＩＰＳｅｃパケットに３２ビットのシーケンス番号を付加して送信する。ＩＰＳｅｃパケット受信側のＶＰＮ装置は、シーケンス番号をチェックすることで、同一のＩＰＳｅｃパケットおよび受信が許容されているＩＰＳｅｃパケットよりも古いシーケンス番号（受信が許容されているＩＰＳｅｃパケットのシーケンス番号よりも値の小さいシーケンス番号）のＩＰＳｅｃパケットを廃棄する。
【０００４】
シーケンス番号は、ＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）単位で管理される。そして、同一のＳＡでＩＰＳｅｃパケットを送信する場合は、送信側は、シーケンス番号の初期値を０とし、ＩＰＳｅｃパケット送信ごとに、シーケンス番号を「１」ずつ増加させる。なお、同一ＳＡによるＩＰＳｅｃパケット転送では、３２ｂｉｔシーケンス番号の値が一周する前にＳＡを更新しなければならない。
【０００５】
続いて、ＩＰＳｅｃパケット受信側がシーケンス番号チェックにおいて使用するシーケンス番号ウィンドウメモリについて説明する。図１８は、一般的なシーケンス番号ウィンドウメモリ６０１を示す図である。図１８において、シーケンス番号ウィンドウメモリ６０１は、シーケンス番号を管理する単位となるＳＡ番号６０２、ＳＡ番号６０２ごとの最新のシーケンス番号６０３、及び最新のシーケンス番号６０３から遡り３２番前までの受信履歴を示す履歴ウィンドウ６０４から構成される。
【０００６】
履歴ウィンドウ６０４は、３２ｂｉｔで構成されている。図１８に示すように、履歴ウィンドウ６０４において、ビット３１は、
「最新のシーケンス番号−１」
のシーケンス番号に該当するＩＰＳｅｃパケットの受信履歴を表す。受信済みである場合は”１”とし、未受信である場合は”０”とする。
同様に、ビット３０は、
「最新のシーケンス番号−２」
のシーケンス番号に該当するＩＰＳｅｃパケットの受信履歴を示す。
以下同様であり、ビット０までにおいて、
「そのビットＸ」は、
「最新のシーケンス番号−（３２−Ｘ）」
のシーケンス番号に該当するＩＰＳｅｃパケットの受信履歴を表す。
【０００７】
次に図１８のシーケンス番号ウィンドウメモリ６０１を使用して行う一般的なＩＰＳｅｃシーケンス番号チェックのフローチャートを図１９に示す。図１９の動作主体は、図２０で後述するシーケンス番号チェック部７０２である。
（１）ＶＰＮ装置でシーケンス番号チェックを行う場合、まずパケット認証に合格したＩＰＳｅｃパケットのシーケンス番号が存在するかどうかをチェックする（Ｓ１）。
（２）存在する場合は（Ｓ１がＹＥＳ）、更新すべきシーケンス番号がそのＳＡ番号６０２の最新の番号であるかをチェックし（Ｓ２）、
（３）最新の場合は図１８の最新のシーケンス番号６０３を上書き（Ｓ３）し、
（４）更新前の最新のシーケンス番号との値の差分だけ履歴ウィンドウ６０４を右へシフトして更新する（Ｓ４）。
（５）また、更新すべきシーケンス番号が、そのＳＡ番号６０２の最新の番号でない場合は、履歴ウィンドウ６０４の該当するビットに１を立てて受信済みであることを記録する（Ｓ５）。
【０００８】
（６）続いてＩＰＳｅｃパケット受信後の動作を説明する。ＩＰＳｅｃパケットの受信を待つ（Ｓ６）。
（７）ＩＰＳｅｃパケットを受信した場合、受信パケット（ＩＰＳｅｃパケット）のＳＡに該当するシーケンス番号ウィンドウを参照し、シーケンス番号が最新であるかどうかをチェックする（Ｓ７）。
（８）最新である場合は受信パケットを転送し（Ｓ８）、
（９）最新でない場合は、受信履歴ウィンドウの幅である最新のシーケンス番号から３２番以内であるかをチェックする（Ｓ９）。
（１０）３２番以内である場合は、該当するシーケンス番号フラグが立っていないかどうかをチェックし（Ｓ１０）、シーケンス番号フラグが立っていない場合は、この受信パケットは未受信であるため転送する（Ｓ８）。
（１１）シーケンス番号フラグが立っている場合は、この受信パケットは受信済みであるため廃棄する。また、最新から３２番以内でない場合も、この受信パケットを廃棄する（Ｓ１１）。
【０００９】
次に、ＩＰＳｅｃ機能をパイプライン処理で実現する場合の一般的な構成を図２０に示す。図２０において、ＶＰＮ装置７０１は、シーケンス番号ウィンドウメモリ７０３を有するシーケンス番号チェック部７０２と、パケット認証部７０４と、他のＩＰＳｅｃ処理部７０５−１〜他のＩＰＳｅｃ処理部７０５−Ｎとを備える。ＶＰＮ装置７０１は、ＶＰＮ側ネットワーク７０６からＩＰＳｅｃパケットを入力する。そして処理を施したパケットを平文側ネットワーク７０７に出力する。なお、ＶＰＮ装置７０１中の実線の矢印はパケットの流れを示す。
【００１０】
図２０に示すようなＶＰＮ装置７０１では、シーケンス番号チェック部７０２とパケット認証部７０４とがパイプライン構成をとることで、ＩＰＳｅｃ処理の負荷を分散する方法が一般的である。またシーケンス番号チェック部７０２をパケット認証部７０４の前に設けることで、リプレイ攻撃によるＶＰＮ装置７０１の認証処理負荷の増加を抑制している。
【００１１】
続いて、図２０に示した構成の動作について説明する。図２０において、
（１）ＶＰＮ装置７０１は、ＶＰＮ側ネットワーク７０６よりＩＰＳｅｃパケットを受信し、シーケンス番号チェック部７０２が、シーケンス番号ウィンドウメモリ７０３を参照してシーケンス番号チェックを行う。
（２）次に、パケット認証部７０４は、シーケンス番号チェック部７０２を通過したＩＰＳｅｃパケットに対してパケット認証を行い、認証に合格した場合はＩＰＳｅｃパケットのシーケンス番号をシーケンス番号チェック部７０２に通知（破線の矢印）する。
（３）ここで、パケット認証部７０４からの合格通知に基づき、シーケンス番号チェック部７０２は、シーケンス番号ウィンドウメモリ７０３を更新する。
（４）続いて、他のＩＰＳｅｃ処理部７０５−１〜他のＩＰＳｅｃ処理部７０５−Ｎは、シーケンス番号チェックとパケット認証との処理以外の処理を行って、処理を施したパケットを平文側ネットワーク７０７へ送信する。
【００１２】
図２０の構成では、シーケンス番号チェック部７０２とパケット認証部７０４とがパイプライン化されている。このため、図２１に示すように、四角で示すシーケンス番号７０の「四角＃７０」のＩＰＳｅｃパケットと、三角で示すシーケンス番号７０の「三角＃７０」のＩＰＳｅｃパケットとを連続して受信した場合を考えると、シーケンス番号チェック部７０２が「三角＃７０」を処理している場合、パケット認証部７０４は「四角＃７０」を処理中である。このため、シーケンス番号チェック部７０２は、パケット認証部７０４が認証中の「四角＃７０」のシーケンス番号情報をシーケンス番号ウィンドウメモリ７０３に反映する前に、「三角＃７０」のシーケンス番号チェックを行うことになる。よって、シーケンス番号チェック部７０２は、シーケンス番号が同じ「＃７０」の「三角＃７０」を通過させてしまう。このように、図２０の構成では、図２１に示すように同一のシーケンス番号のＩＰＳｅｃパケットを２個連続で受信した場合、本来通過してはならないデカプセルされた２個目のＩＰＳｅｃパケット（図２１の三角＃７０）も平文側ネットワークに流れてしまうといった課題があった。
【００１３】
また、図２０の構成でシーケンス番号チェックを完璧に実現しようとすると、シーケンス番号チェック部７０２は、パケット認証部７０４の結果を待ってから次に受信したＩＰＳｅｃパケットのシーケンス番号チェックを行う必要がある。これではパイプライン構成による処理負荷分散による性能向上が図れず、シーケンシャルな処理を行った場合とスループットが同じになってしまう。
【非特許文献１】仕様書ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ）２４０１
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、パイプライン構成でＩＰＳｅｃ機能を実現するＶＰＮ装置において、性能を劣化することなくリプレイ攻撃を完全に遮断するＶＰＮ装置を提供する。
【課題を解決するための手段】
【００１５】
この発明のパケット通過判定装置は、
ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして入力し、入力した入力パケットの予め定められているシーケンス番号に基づき入力パケットを通過させるかどうか判定し、通過させると判定した場合に入力パケットを通過させる入力パケット判定部と、
前記入力パケット判定部が通過させた入力パケットを入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させるパケット認証部と、
前記パケット認証部が通過させた認証合格パケットを入力し、入力した認証合格パケットを前記予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に認証合格パケットを通過させる認証合格パケット判定部と
を備えたことを特徴とする。
【発明の効果】
【００１６】
本発明により、パイプライン構成でＩＰＳｅｃ機能を実現するＶＰＮ装置において、リプレイ攻撃に対する性能を向上できる。
【発明を実施するための最良の形態】
【００１７】
実施の形態１．
図１〜図４を参照して、実施の形態１を説明する。実施の形態１は、パケット認証部１０４の前段側に第１シーケンス番号チェック部１０２を備えるとともに、さらに、パケット認証部１０４の後段側に第２シーケンス番号チェック部１０５を備え、パイプライン構成によりＩＰＳｅｃ機能を実現するＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）装置１０１（パケット通過判定装置）に関する。
【００１８】
図１は、ＶＰＮ装置１０１の構成図である。図２は、ＶＰＮ装置１０１における第１シーケンス番号チェック部１０２（入力パケット判定部）とパケット認証部１０４とのやり取りを説明する図である。図３は、第１シーケンス番号チェック部１０２と、パケット認証部１０４と、第２シーケンス番号チェック部１０５（認証合格パケット判定部）との、パケットのパイプライン処理の様子を示す図である。図４は、ＶＰＮ装置１０１の第２シーケンス番号チェック部１０５の動作を示すフローチャートである。
【００１９】
まず、図１によりＶＰＮ装置１０１の構成を説明する。ＶＰＮ装置１０１は、図２０のＶＰＮ装置７０１に対して、第２シーケンス番号チェック部１０５を加えた構成である。図１に示すように、ＶＰＮ装置１０１は、シーケンス番号ウィンドウメモリ１０３を有する第１シーケンス番号チェック部１０２と、パケット認証部１０４と、シーケンス番号ウィンドウメモリ１０６を有する第２シーケンス番号チェック部１０５と、他のＩＰＳｅｃ処理部１０７−１〜他のＩＰＳｅｃ処理部１０７−Ｎとを備える。ＶＰＮ装置１０１は、ＶＰＮ側ネットワーク１０８からＩＰＳｅｃパケットを入力し、所定のパケットを生成して、このパケットを平文側ネットワーク１０９に出力する。
【００２０】
（１）第１シーケンス番号チェック部１０２は、図２０のシーケンス番号チェック部７０２と同様の機能を有する。また、シーケンス番号ウィンドウメモリ１０３は、図１８で説明したシーケンス番号ウィンドウメモリ６０１と同様の機能、構成である。すなわち、第１シーケンス番号チェック部１０２は、ＩＰセキュリティプロトコル（ＩＰＳｅｃ）に基づくシーケンス番号が予め定められているとともに認証対象となるＩＰＳｅｃパケット（入力パケット）を入力し、自己の有するシーケンス番号ウィンドウメモリ１０３を参照して、入力したＩＰＳｅｃパケットの予め定められているシーケンス番号に基づきそのＩＰＳｅｃパケットを通過させるかどうか判定し、通過させると判定した場合に通過させる。また、認証合格を第１シーケンス番号チェック部１０２に通知する。
（２）パケット認証部１０４は、第１シーケンス番号チェック部１０２が通過させたパケットを入力して認証し、認証の結果、パケットを合格と認証した場合に、合格と認証したパケットを認証合格パケットとして通過させる。
（３）第２シーケンス番号チェック部１０５は、パケット認証部１０４が通過させた認証合格パケットを入力する。そして、自己の有するシーケンス番号ウィンドウメモリ１０６を参照し、入力した認証合格パケットをこの認証合格パケットに予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に認証合格パケットを通過させて、他のＩＰＳｅｃ処理部１０７−１に出力する。第２シーケンス番号チェック部１０５が有するシーケンス番号ウィンドウメモリ１０６は、図１８で説明したシーケンス番号ウィンドウメモリ６０１と同様の機能、構成である。
【００２１】
次に図２を用いて、第１シーケンス番号チェック部１０２とパケット認証部１０４とのやり取りを説明する。図２のやり取りは、図１９のフローチャートで説明したのと同様の動作である。第１シーケンス番号チェック部１０２がパケット認証部１０４にパケットを転送するのは、チェックＯＫの場合である。「チェックＯＫの場合」とは、次の場合である。「第１シーケンス番号チェック部１０２が受信したＩＰＳｅｃパケットのシーケンス番号が最新である場合」と、「シーケンス番号が３２番以内であって履歴の該当ビットが０である場合」とのうち、いずれかの場合である。
【００２２】
図２において、ＶＰＮ装置１０１はＶＰＮ側ネットワーク１０８よりＩＰＳｅｃパケットを受信する。第１シーケンス番号チェック部１０２は、シーケンス番号ウィンドウメモリ１０３により受信したＩＰＳｅｃパケットのシーケンス番号チェックを行う。「チェックＯＫの場合」にＩＰＳｅｃパケットをパケット認証部１０４に出力する。「チェックＮＧ」の場合は、そのＩＰＳｅｃパケットを廃棄する。次に、パケット認証部１０４は第１シーケンス番号チェック部１０２を通過したＩＰＳｅｃパケットに対してパケット認証を行い、認証に合格した場合は、そのＩＰＳｅｃパケットのシーケンス番号を第１シーケンス番号チェック部１０２に通知する。この通知を受けて第１シーケンス番号チェック部１０２は、シーケンス番号ウィンドウメモリ１０３を更新する。図２により具体的に説明する。
【００２３】
ＶＰＮ装置１０１が、シーケンス番号が６４、６５、６８、６６、最初の７０（四角で表しているパケット）、２つ目の７０（三角で表しているパケット）、１０のＩＰＳｓｅｃパケットを受信する場合を想定する。これらのＩＰＳｓｅｃパケットは、以下、パケット＃６４、パケット＃６５、パケット＃６８、パケット＃６６、「四角＃７０」、「三角＃７０」、パケット＃１０と表記する。
【００２４】
（パケット＃６４について）
まずパケット＃６４を受信したとする。第１シーケンス番号チェック部１０２は、シーケンス番号ウィンドウメモリ１０３でシーケンス番号の「＃６４」をチェックする。現在、シーケンス番号ウィンドウメモリ１０３には記録はないとする。よって、第１シーケンス番号チェック部１０２は、パケット＃６４をパケット認証部１０４に転送する。パケット認証部１０４は、パケット＃６４を認証して合格と判定した場合、パケット＃６４の認証合格を第１シーケンス番号チェック部１０２に通知する（Ｓ１０１）。第１シーケンス番号チェック部１０２は、この通知を受けて、パケット＃６４のシーケンス番号「＃６４」を最新シーケンス番号として記録する（Ｓ１０２）。
【００２５】
（パケット＃６５について）
第１シーケンス番号チェック部１０２は、パケット＃６５を受信しシーケンス番号ウィンドウメモリ１０３でシーケンス番号をチェックする。パケット＃６５は最新シーケンス番号のパケットなので、パケット認証部１０４に転送する。パケット認証部１０４は、パケット＃６５を認証して合格と判定した場合、パケット＃６５の認証合格を第１シーケンス番号チェック部１０２に通知する（Ｓ１０３）。この通知を受けて、第１シーケンス番号チェック部１０２は、シーケンス番号ウィンドウメモリ１０３の「最新シーケンス番号」を「＃６４」から「＃６５」に上書きする（Ｓ１０４）。そして、履歴ウィンドウの０ビット目（＃６４に該当するビット）を「１」にする（Ｓ１０５）。
【００２６】
（パケット＃６８について）
第１シーケンス番号チェック部１０２は、パケット＃６８を受信しシーケンス番号ウィンドウメモリ１０３でチェックする。パケット＃６８は最新シーケンス番号なので、パケット認証部１０４に転送する。パケット認証部１０４は、パケット＃６８を認証して合格と判定した場合、パケット＃６８の認証合格を第１シーケンス番号チェック部１０２に通知する（Ｓ１０６）。この通知を受けて、第１シーケンス番号チェック部１０２は、シーケンス番号ウィンドウメモリ１０３の「最新シーケンス番号」を「＃６５」から「＃６８」に上書きする（Ｓ１０７）。そして、履歴ウィンドウを「６８−６５＝３」だけシフトするとともに、「＃６５」に対応するビット２を「１」にする（Ｓ１０８）。
【００２７】
（パケット＃６６について）
第１シーケンス番号チェック部１０２は、パケット＃６６を受信しシーケンス番号ウィンドウメモリ１０３でチェックする。パケット＃６６は最新シーケンス番号ではないのが、「３２番以内」かつ「履歴ウィンドウの該当ビット０」であるので、パケット認証部１０４に転送する。パケット認証部１０４は、パケット＃６６を認証して合格と判定した場合、パケット＃６６の認証合格を第１シーケンス番号チェック部に通知する（Ｓ１０９）。この通知を受けて、第１シーケンス番号チェック部１０２は、履歴ウィンドウにおいて「＃６６」に対応するビット１を「０」から「１」にする（Ｓ１１０）。
【００２８】
（「四角＃７０」について）
第１シーケンス番号チェック部１０２は、「四角＃７０」を受信しシーケンス番号ウィンドウメモリ１０３でチェックする。「四角＃７０」は最新シーケンス番号なので、パケット認証部１０４に転送する。パケット認証部１０４は、「四角＃７０」を認証して合格と判定した場合、「四角＃７０」の認証合格を第１シーケンス番号チェック部１０２に通知する（Ｓ１１１）。この通知を受けて、第１シーケンス番号チェック部１０２は、シーケンス番号ウィンドウメモリ１０３の「最新シーケンス番号」を「＃６８」から「＃７０」に上書きする（Ｓ１１２））。そして、履歴ウィンドウを「７０−６８＝２」だけシフトする。そして「＃６８」に対応するビット１を「０」から「１」にする（Ｓ１１３）。
【００２９】
（「三角＃７０」について）
第１シーケンス番号チェック部１０２は、「三角＃７０」を受信しシーケンス番号ウィンドウメモリ１０３でチェックする。図３は、第１シーケンス番号チェック部１０２と、パケット認証部１０４と、第２シーケンス番号チェック部１０５との、パケットのパイプライン処理の様子を示す図である。図３に示すように、第１シーケンス番号チェック部１０２が、「三角＃７０」のチェック処理を実行している「処理実行時間ｔ６」では、同時に、パケット認証部１０４が「四角＃７０」の認証処理を実行している。よって、第１シーケンス番号チェック部１０２が、「三角＃７０」のチェック処理を実行している「処理実行時間ｔ６」には、「四角＃７０」のシーケンス番号の情報が、第１シーケンス番号チェック部１０２のシーケンス番号ウィンドウメモリ１０３に反映されない。よって、シーケンス番号が「＃７０」である「三角＃７０」は、第１シーケンス番号チェック部１０２を通過する。この通過した「三角＃７０」は、図４で後述するように、第２シーケンス番号チェック部１０５が廃棄する。
【００３０】
（パケット＃１０について）
第１シーケンス番号チェック部１０２は、パケット＃１０を受信しシーケンス番号ウィンドウメモリ１０３でチェックする。パケット＃１０は、最新シーケンス番号＃７０から３２番以内ではないので、第１シーケンス番号チェック部１０２は、パケット＃１０を廃棄する。
【００３１】
以上が、第１シーケンス番号チェック部１０２とパケット認証部１０４とのやり取りの動作である。
【００３２】
次に、図４を用いて第２シーケンス番号チェック部１０５の動作を説明する。
【００３３】
Ｓ２０１において、第２シーケンス番号チェック部１０５は、パケット認証部１０４からの認証合格パケットの受信待ち状態となる。第２シーケンス番号チェック部１０５が、認証合格パケットを受信したとする。
【００３４】
Ｓ２０２において、第２シーケンス番号チェック部１０５は、パケット認証部１０４からの認証合格パケットを受信した場合、シーケンス番号ウィンドウメモリ１０６を参照して、受信した認証合格パケットのシーケンス番号が最新かどうかを判定する。最新と判定した場合（Ｓ２０２がＹｅｓ）は、Ｓ２０３の処理に進む。最新ではないと判定した場合（Ｓ２０２がＮｏ）は、Ｓ２０５の処理に進む。
【００３５】
まず、最新と判定した場合（Ｓ２０２がＹｅｓ）について説明する。図４のＳ２０２、Ｓ２０３、Ｓ２０４、Ｓ２０８の過程である。
【００３６】
Ｓ２０３において、第２シーケンス番号チェック部１０５は、シーケンス番号ウィンドウメモリ１０６の最新シーケンス番号を上書きする（Ｓ２０３）。例えば図３において、第２シーケンス番号チェック部１０５が「四角＃７０」を受信する直前の状態（処理時間ｔ６からｔ７に移る状態）では、シーケンス番号ウィンドウメモリ１０６の最新のシーケンス番号は「＃６８」となっている。そして、第２シーケンス番号チェック部１０５が「四角＃７０」を受信した場合は、第２シーケンス番号チェック部１０５は、シーケンス番号ウィンドウメモリ１０６の最新シーケンス番号を「＃６８」から「＃７０」に上書きする。「＃６８」の情報は、図２のＳ１１３で説明した場合と同様に、履歴ウィンドウに記録される。
【００３７】
Ｓ２０４において、「＃６８」の情報は、図２のＳ１１３で説明した場合と同様に、第２シーケンス番号チェック部１０５が履歴ウィンドウをシフトし、該当するするビットに「１」を立てることにより、履歴ウィンドウに記録される。
【００３８】
Ｓ２０８において、第２シーケンス番号チェック部１０５は、Ｓ２０１で受信した、シーケンス番号が最新であるパケット（第２シーケンス番号チェック部１０５が同一のＳＡにおいていまだに入力していないシーケンス番号のパケット）を他のＩＰＳｅｃ処理部１０７−１に転送（出力）する。
【００３９】
次に、第２シーケンス番号チェック部１０５が、自己の受信したＩＰＳｅｃパケットのシーケンス番号が最新ではないと判定した場合（Ｓ２０２がＮｏ）について説明する。
【００４０】
Ｓ２０５において、第２シーケンス番号チェック部１０５は、受信したＩＰＳｅｃパケットのシーケンス番号が「最新から３２番以内かどうか」を判定する。
【００４１】
「最新から３２番以内である」と判定した場合（Ｓ２０５がＹｅｓ）を説明する。この場合には、第２シーケンス番号チェック部１０５は、シーケンス番号ウィンドウメモリ１０６の履歴ウィンドウの該当ビットが「０」かどうかをチェックする。該当ビットが「０」の場合（Ｓ２０６がＹｅｓ）、第２シーケンス番号チェック部１０５は、該当ビットに「１」を立てる（Ｓ２０７）。一方、該当ビットが「０」でない場合（Ｓ２０６がＮｏ）には、第２シーケンス番号チェック部１０５は、Ｓ２０１で受信した認証合格パケットを廃棄する（Ｓ２０９）。例えば、図３の「処理時間ｔ８」の場合を考える。この場合は、第２シーケンス番号チェック部１０５が「三角＃７０」を受信した状態である。この場合、第２シーケンス番号チェック部１０５は、「三角＃７０」を、「最新から３２番以内」と判断し、Ｓ２０５の処理に進む。Ｓ２０６では、該当ビット「０」は存在しないため、第２シーケンス番号チェック部１０５は、「三角＃７０」を廃棄する。これにより、「四角＃７０」と「三角＃７０」とを連続して受信した場合でも、後の「三角＃７０」を廃棄することが可能となる。
【００４２】
一方、「最新から３２番以内ではない」と判定した場合（Ｓ２０５がＮｏ）、第２シーケンス番号チェック部１０５は、Ｓ２０１で受信した認証合格パケットを廃棄する（Ｓ２０９）。
【００４３】
本実施の形態１のＶＰＮ装置１０１は、パケット認証後に第２シーケンス番号チェック部１０５がシーケンス番号チェックを行うので、同一のシーケンス番号のＩＰパケットが通過することを防止できる。また、パケット認証前に第１シーケンス番号チェック部１０２がシーケンス番号チェックを行うので、リプレイ攻撃用パケットを廃棄することができ、パケット認証部１０４の処理負荷増大を狙ったＶＰＮ装置１０１に対するＤｏｓ攻撃を防止できる。
【００４４】
実施の形態２．
図５を参照して実施の形態２を説明する。実施の形態１のＶＰＮ装置１０１は、第１シーケンス番号チェック部１０２、第２シーケンス番号チェック部１０５という、２つのチェック部を設けた。実施の形態２は、図１のパケット認証部１０４のスループットが、ＶＰＮ側ネットワーク１０８のスループットと同等以上である場合に適用可能なＶＰＮ装置２０１（パケット通過判定装置）に関する。実施の形態２におけるＶＰＮ装置２０１は、パケット認証部のスループットがＶＰＮ側ネットワーク１０８のスループットと同等以上であることを前提として、実施の形態１のＶＰＮ装置１０１に対して、第１シーケンス番号チェック部１０２に対応するチェック部を削除した構成となっている。
【００４５】
図５において、ＶＰＮ装置２０１は、パケット認証部２０２と、シーケンス番号ウィンドウメモリ２０４を有するシーケンス番号チェック部２０３（認証合格パケット判定部）と、他のＩＰＳｅｃ処理部２０５−１〜他のＩＰＳｅｃ処理部２０５−Ｎとを備える。ＶＰＮ装置２０１は、ＶＰＮ側ネットワーク２０６からＩＰＳｅｃパケットを入力し、平文側ネットワーク２０７に処理したパケットを出力する。
【００４６】
ＶＰＮ装置２０１において、パケット認証部２０２とシーケンス番号チェック部２０３とのやり取りの動作は、実施の形態１のＶＰＮ装置１０１におけるパケット認証部１０４と第２シーケンス番号チェック部１０５とのやり取りの動作と同様である。
【００４７】
実施の形態３．
図６を参照して、実施の形態３におけるＶＰＮ装置３０１（パケット通過判定装置）を説明する。ＶＰＮ装置３０１は、実施の形態２のパケット認証部２０２を複数のサブ認証部で並列化した構成である。
「それぞれのサブ認証部のスループット」＜「ＶＰＮ側ネットワーク３０６のスループット」
であるが、
並列化により
「パケット認証部３０２のスループット」≧「ＶＰＮ側ネットワーク３０６のスループット」
とした実施形態である。
【００４８】
実施の形態２にけるＶＰＮ装置２０１では、パケット認証部２０２のスループットがＶＰＮ側ネットワーク２０６のスループット以上であることを前提とする実施形態であった。実施の形態３では、個々のサブ認証部一つあたりのスループットがＶＰＮ側ネットワーク３０６のスループット未満であっても、これを並列化し、合計でＶＰＮ側ネットワーク３０６のスループット以上の性能となるようにした実施形態である。
【００４９】
図６は、パケット認証部を並列化したＶＰＮ装置３０１の構成図である。
【００５０】
図６に示すように、ＶＰＮ装置３０１は、サブ認証部３０２−１〜サブ認証部３０２−Ｎから構成されるパケット認証部３０２と、シーケンス番号ウィンドウメモリ３０４を有するシーケンス番号チェック部３０３（認証合格パケット判定部）と、他のＩＰＳｅｃ処理部３０５−１〜他のＩＰＳｅｃ処理部３０５−Ｎとを備えている。これら構成要素の機能は、実施の形態２におけるＶＰＮ装置２０１の対応する構成要素の機能と同様である。
【００５１】
図６では、パケット認証部３０２において、個々のサブ認証部一つあたりのスループットがＶＰＮ側ネットワーク３０６のスループット未満であっても、これを並列化し、合計でＶＰＮ側ネットワーク２０６のスループット以上の性能となるようした。よって、ＶＰＮ装置に対するＤｏｓ攻撃に対抗することができる。
【００５２】
実施の形態４．
図７〜図１１を参照して、実施の形態４を説明する。実施の形態４は、パケット認証部の後段のシーケンス番号チェック部が、ＩＰＳｅｃパケットのデカプセル処理が完了されたパケットを対象としてそのパケットのシーケンス番号をチェックするＶＰＮ装置（パケット通過判定装置）に関する。
【００５３】
一般的にＩＰＳｅｃ機能を実現する場合には、ＩＰＳｅｃパケットのデカプセル処理で行う認証処理や復号処理に必要な鍵配送の面から、ＩＰＳｅｃパケットの認証処理と復号処理（他のＩＰＳｅｃ処理部の行う処理）とは連続で処理する方式が取られる。この場合、パケット認証後にシーケンス番号チェックを行う方式では、パケット認証後であれば、シーケンス番号チェックを行うのは平文側ネットワークに送信する前であればどのタイミングでも構わない。よって、本実施の形態４は、認証及びデカプセル処理が完了してからシーケンス番号チェックを行う実施例１〜実施例３の３つの方式を説明する。
【００５４】
（実施例１）
図７を用いて実施の形態４における実施例１として、ＶＰＮ装置４０１を説明する。ＶＰＮ装置４０１は、図１に示した実施の形態１のＶＰＮ装置１０１の構成に対して、第２シーケンス番号チェック部４０６が、他のＩＰＳｅｃ処理部４０５−１〜他のＩＰＳｅｃ処理部４０５−１により構成される対応パケット生成部４０５の後段に配置されている。
【００５５】
ＶＰＮ装置４０１は、シーケンス番号ウィンドウメモリ４０３を有する第１シーケンス番号チェック部４０２（入力パケット判定部）と、パケット認証部４０４と、他のＩＰＳｅｃ処理部４０５−１〜他のＩＰＳｅｃ処理部４０５−Ｎによって構成される対応パケット生成部４０５と、シーケンス番号ウィンドウメモリ４０７を有する第２シーケンス番号チェック部４０６（対応パケット判定部）とを備える。
【００５６】
第１シーケンス番号チェック部４０２は、シーケンス番号が予め定められているとともに認証対象となるＩＰＳｅｃパケット（入力パケット）を入力する。そして、自己の有するシーケンス番号ウィンドウメモリ４０３を参照し、入力したＩＰＳｅｃパケットの予め定められているシーケンス番号に基づきそのＩＰＳｅｃパケットを通過させるかどうか判定し、通過させると判定した場合に通過させる。ここで、第１シーケンス番号チェック部４０２が入力するＩＰＳｅｃパケットは、ＩＰセキュリティプロトコルにしたがってカプセル化されている。
【００５７】
パケット認証部４０４は、第１シーケンス番号チェック部４０２が通過させたＩＰＳｅｃパケットを入力して認証し、認証の結果、ＩＰＳｅｃパケットを合格と認証した場合に、合格と認証したＩＰＳｅｃパケットを認証合格パケットとして通過させる。
【００５８】
対応パケット生成部４０５は、パケット認証部４０４が通過させた認証合格パケットを入力し、入力した認証合格パケットを元にして、予め定められているシーケンス番号を引き継ぐとともに認証合格パケットに対応する対応パケットを生成して第２シーケンス番号チェック部４０６に出力する。
【００５９】
第２シーケンス番号チェック部４０６（対応パケット判定部）は、対応パケット生成部４０５が出力した対応パケットを入力する。第２シーケンス番号チェック部４０６が入力する対応パケットは、ＩＰセキュリティプロトコルにしたがってデカプセル化されている。第２シーケンス番号チェック部４０６は、自己の有するシーケンス番号ウィンドウメモリ４０７を参照し、入力した対応パケットをこの対応パケットが引き継いだ予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に対応パケットを通過させ、これを平文側ネットワーク４０９に出力する。この場合において、第２シーケンス番号チェック部４０６及びシーケンス番号ウィンドウメモリ４０７の機能、動作は、実施の形態１における第２シーケンス番号チェック部１０５及びシーケンス番号ウィンドウメモリ１０６と同様である。
【００６０】
ただし、図７の構成では、通常、ＩＰＳｅｃパケットのデカプセル後にシーケンス番号チェックを行うにあたり、デカプセル後のＩＰパケットはＩＰＳｅｃシーケンス番号を持っていない。図８は、ＩＰＳｅｃパケットの形式を示す図である。図９は、ＩＰＳｅｃパケットをデカプセルしてＩＰパケットにしたパケットである装置内パケットの形式を示している。他のＩＰＳｅｃ処理部４０５−１を通過すると、図８に示すＩＰＳｅｃパケットは、図９の「装置内パケット形式」となる。ＩＰＳｅｃパケット（デカプセル前）は、ＩＰＳｅｃヘッダの中にシーケンス番号を含んでいる。これをデカプセルしてＩＰパケットにした場合、通常、シーケンス番号も削除される。このため、ＶＰＮ装置４０１内では、図９に示すように、ＩＰＳｅｃパケットの有するシーケンス番号をＩＰパケットヘッダの前に付与してＶＰＮ装置４０１内を流す。よって、デカプセル後でも、ＩＰパケットごとにシーケンス番号を引き継ぐことが可能となる。これにより、第２シーケンス番号チェック部４０６は、シーケンス番号をチェックすることができる。
【００６１】
このように、図７においては、デカプセル後のＩＰパケットにシーケンス番号（さらには図示していないＳＡ番号をも付加）を付加し、このＩＰパケット（対応パケット）を第２シーケンス番号チェック部４０６まで転送する方式である。この方式とは別に、ＩＰパケットを付加せずとも、別パスでパケット認証部４０４から、認証に合格した認証合格パケットのシーケンス番号を第２シーケンス番号チェック部４０６までＦＩＦＯメモリ等を用いて転送する方式でも構わない。
【００６２】
（実施例２）
図１０は、実施の形態４における実施例２として、ＶＰＮ装置４２０（パケット通過判定装置）の構成を示す図である。実施の形態４の冒頭で述べたように、パケット認証後にシーケンス番号チェックを行う方式では、パケット認証後であれば、シーケンス番号チェックを行うのは平文側ネットワークに送信する前であればどのタイミングでも構わない。実施例２のＶＰＮ装置４２０は、実施例１のＶＰＮ装置４０１に対して、第２シーケンス番号チェック部４０６を他のＩＰＳｅｃ処理部の中間に配置した構成である。図１０では、他のＩＰＳｅｃ処理部４０５−１と他のＩＰＳｅｃ処理部４０５−２とが対応パケット生成部４０５を構成している。
【００６３】
（実施例３）
図１１は、実施の形態４における実施例３として、ＶＰＮ装置５０１の構成を示す図である。実施例３のＶＰＮ装置５０１は、図５に示す実施の形態２のＶＰＮ装置２０１に対して、シーケンス番号チェック部２０３を他のＩＰＳｅｃ処理部２０５−１〜他のＩＰＳｅｃ処理部２０５−Ｎにより構成される対応パケット生成部２０５の後段に配置した構成である。なお、実施例３のＶＰＮ装置５０１についても、実施例２と同様に、シーケンス番号チェック部２０３を他のＩＰＳｅｃ処理部の中間に配置した構成としても構わない。
【００６４】
以上のように本実施の形態１〜実施の形態４によれば、パケット認証部の後段にシーケンス番号チェック部を設けたので、ＩＰＳｅｃ機能を実現するパイプライン構成において性能劣化を起こすことなくシーケンス番号チェック機能を実現し、リプレイ攻撃を完全に遮断することが可能である。またパケット認証部のスループットがＶＰＮ側ネットワークのスループットより劣る場合は、パケット認証部の前にシーケンス番号チェック部を設けることでＶＰＮ装置に対するＤｏｓ攻撃を防止できる。
【００６５】
実施の形態５．
図１２〜図１７を用いて実施の形態５を説明する。実施の形態５は、実施の形態１〜実施の形態４で説明したＶＰＮ装置の動作を、プログラム及びプログラムを記録した記録媒体により実施する実施形態である。
【００６６】
実施の形態１〜実施の形態４においては、ＶＰＮ装置における「〜部」として示した各構成要素の一連の動作は互いに関連しており、これら一連の動作は、コンピュータに実施させるプログラムによる処理に置き換えることができる。各構成要素の動作をプログラムによる処理に置き換えることにより、パケット通過判定プログラムの実施形態とすることができる。また、このパケット通過判定プログラムを、コンピュータ読み取り可能な記録媒体に記録させることで、パケット通過判定プログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
【００６７】
図１２は、図１に示した実施の形態１のＶＰＮ装置１０１の第１シーケンス番号チェック部１０２（入力パケット判定部）の動作、パケット認証部１０４の動作、第２シーケンス番号チェック部１０５（認証合格パケット判定部）の動作という一連の動作をコンピュータに実施させる一連の処理に置き換えてパケット通過判定プログラムの実施形態としたフローチャートを示す。
【００６８】
Ｓ３０１は、ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして入力し、入力した入力パケットの予め定められているシーケンス番号に基づき入力パケットを通過させるかどうか判定し、通過させると判定した場合に入力パケットを通過させる処理である。
【００６９】
Ｓ３０２は、通過した入力パケットを入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させる処理である。
【００７０】
Ｓ３０３は、通過した認証合格パケットを入力し、入力した認証合格パケットを前記予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に認証合格パケットを通過させる処理である。
【００７１】
図１３は、図７に示した実施の形態４のＶＰＮ装置４０１の第１シーケンス番号チェック部４０２（入力パケット判定部）の動作、パケット認証部４０４の動作、対応パケット生成部４０５の動作、第２シーケンス番号チェック部４０６（対応パケット判定部）の動作という一連の動作をコンピュータに実施させる一連の処理に置き換えてパケット通過判定プログラムの実施形態としたフローチャートを示す。
【００７２】
Ｓ４０１は、ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして入力し、入力した入力パケットの予め定められているシーケンス番号に基づき入力パケットを通過させるかどうか判定し、通過させると判定した場合に入力パケットを通過させる処理である。
【００７３】
Ｓ４０２は、通過した入力パケットを入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させる処理である。
【００７４】
Ｓ４０３は、通過した認証合格パケットを入力し、入力した認証合格パケットを元にして、前記予め定められているシーケンス番号を引き継ぐとともに認証合格パケットに対応する対応パケットを生成して出力する処理である。
【００７５】
Ｓ４０４は、出力された対応パケットを入力し、入力した対応パケットをこの対応パケットが引き継いだ前記予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に対応パケットを通過させる処理である。
【００７６】
図１４は、図５に示した実施の形態２のＶＰＮ装置２０１のパケット認証部２０２の動作、シーケンス番号チェック部２０３（認証合格パケット判定部）の動作という一連の動作をコンピュータに実施させる一連の処理に置き換えてパケット通過判定プログラムの実施形態としたフローチャートを示す。
【００７７】
Ｓ５０１は、ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして所定のスループットのネットワークを介して入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させる処理であって、スループットが前記ネットワークのスループット以上である処理である。
【００７８】
Ｓ５０２は、通過した認証合格パケットを入力し、入力した認証合格パケットを予め定められているシーケンス番号に基づき通過させるかどうかを判定し、通過させると判定した場合に認証合格パケットを通過させる処理である。
【００７９】
図１５は、図１１に示した実施の形態４のＶＰＮ装置５０１の対応パケット生成部２０５の動作、パケット認証部２０２の動作、シーケンス番号チェック部２０３（対応パケット判定部）の動作という一連の動作をコンピュータに実施させる一連の処理に置き換えてパケット通過判定プログラムの実施形態としたフローチャートを示す。
【００８０】
Ｓ６０１は、ＩＰセキュリティプロトコルに基づくシーケンス番号が予め定められているとともに認証対象となるパケットを入力パケットとして所定のスループットのネットワークを介して入力して認証し、認証の結果、入力パケットを合格と認証した場合に、合格と認証した入力パケットを認証合格パケットとして通過させる処理であって、スループットが前記ネットワークのスループット以上である処理である。
【００８１】
Ｓ６０２は、通過した認証合格パケットを入力し、入力した認証合格パケットを元にして、前記予め定められているシーケンス番号を引き継ぐとともに認証合格パケットに対応する対応パケットを生成して出力する処理である。
【００８２】
Ｓ６０３は、出力された対応パケットを入力し、入力した対応パケットをこの対応パケットが引き継いだ前記予め定められているシーケンス番号に基づき通過させるかどうか判定し、通過させると判定した場合に対応パケットを通過させる処理である。
【００８３】
プログラムの実施の形態及びプログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態は、すべてコンピュータで動作可能なプログラムにより構成することができる。
【００８４】
図１６は、図１２〜図１５のフローチャートに示したプログラムを実行するコンピュータシステム８００の外観を示す。図１６において、コンピュータシステム８００は、システムユニット８３０、液晶ディスプレイ８１３、キーボード（Ｋ／Ｂ）８１４、マウス８１５、コンパクトディスク装置（ＣＤＤ）８１８、プリンタ８１９を備え、これらはケーブルで接続されている。また、コンピュータシステム８００は、インターネット９１０を介して、他のＶＰＮ装置９００ｂと接続している。
【００８５】
図１７は、図１６のコンピュータシステム８００のハードウェア構成図である。図１７において、コンピュータシステム８００は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８１０を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ８１１、ＲＡＭ８１２、液晶ディスプレイ８１３、Ｋ／Ｂ８１４、マウス８１５、通信ボード８１６、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）８１７、ＣＤＤ８１８、プリンタ８１９、及び磁気ディスク装置８２０と接続されている。
【００８６】
磁気ディスク装置８２０には、オペレーティングシステム（ＯＳ）８２１、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３は、ＣＰＵ８１０、ＯＳ８２１、ウィンドウシステム８２２により実行される。
【００８７】
上記プログラム群８２３には、実施の形態１〜実施の形態４の説明において「〜部」として説明した機能を実行するパケット通過判定プログラム等が記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。
【００８８】
また、ファイル群８２４には１以上の「シーケンス番号ウィンドウ」が格納される。
【００８９】
実施の形態１〜実施の形態４において「〜部」として説明したものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
【００９０】
プログラムの実施の形態及びプログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態における各処理は、プログラムで実行されるが、このプログラムは、前述のようにプログラム群８２３に記録されている。そして、プログラム群８２３からＣＰＵ８１０に読み込まれ、ＣＰＵ８１０によって、プログラムの各処理が実行される。
【００９１】
また、ソフトウェア、あるいはプログラムは、ＲＯＭ８１１に記憶されたファームウェアで実行されても構わない。あるいは、ソフトウェアとファームウェアとハードウェアの組み合わせでプログラムを実行しても構わない。
【００９２】
実施の形態５のパケット通過判定プログラムは、パケットの認証処理の後に、認証合格パケットのシーケンス番号をチェックする処理をコンピュータに実行させるので、パイプライン構成において、同じシーケンス番号のパケットを平文側ネットワークに通過させることなく、廃棄することができる。
【００９３】
以上の実施の形態では、パイプライン構成でＩＰＳｅｃ機能を実現するＶＰＮ装置において、認証処理の前と後でシーケンス番号チェックを行ってリプレイ攻撃を完全に遮断することを特徴とするシーケンス番号チェック方式を説明した。
【００９４】
以上の実施の形態では、パイプライン構成でＩＰＳｅｃ機能を実現するＶＰＮ装置において、認証処理の後でのみシーケンス番号チェックを行ってリプレイ攻撃を完全に遮断することを特徴とするシーケンス番号チェック方式を説明した。
【００９５】
以上の実施の形態では、パイプライン構成でＩＰＳｅｃ機能を実現するＶＰＮ装置において、認証処理負荷の増大を狙ったリプレイ攻撃対して、認証処理部を並列化して、認証処理部の後でのみシーケンス番号チェックを行ってリプレイ攻撃を完全に遮断することを特徴とするシーケンス番号チェック方式を説明した。
【００９６】
以上の実施の形態では、パイプライン構成でＩＰＳｅｃ機能を実現するＶＰＮ装置において、ＩＰＳｅｃデカプセル処理の前と後でシーケンス番号チェックを行ってリプレイ攻撃を完全に遮断することを特徴とするシーケンス番号チェック方式を説明した。
【図面の簡単な説明】
【００９７】
【図１】実施の形態１におけるＶＰＮ装置１０１の構成図である。
【図２】実施の形態１における第１シーケンス番号チェック部１０２とパケット認証部１０４とのやり取りを示す。
【図３】実施の形態１における第１シーケンス番号チェック部１０２、パケット認証部１０４、第２シーケンス番号チェック部１０５のパイプライン処理を示す。
【図４】実施の形態１における第２シーケンス番号チェック部１０５の動作のフローチャートである。
【図５】実施の形態２におけるＶＰＮ装置２０１の構成図である。
【図６】実施の形態３におけるＶＰＮ装置３０１の構成図である。
【図７】実施の形態４におけるＶＰＮ装置４０１の構成図である。
【図８】実施の形態４におけるＩＰＳｅｃパケット形式を示す。
【図９】実施の形態４における装置内パケット形式を示す。
【図１０】実施の形態４におけるＶＰＮ装置４２０の構成図である。
【図１１】実施の形態４におけるＶＰＮ装置５０１の構成図である。
【図１２】実施の形態５における図１のＶＰＮ装置１０１に対応するパケット通過判定プログラムのフローチャートである。
【図１３】実施の形態５における図７のＶＰＮ装置１０１に対応するパケット通過判定プログラムのフローチャートである。
【図１４】実施の形態５における図５のＶＰＮ装置２０１に対応するパケット通過判定プログラムのフローチャートである。
【図１５】実施の形態５における図１１のＶＰＮ装置５０１に対応するパケット通過判定プログラムのフローチャートである。
【図１６】実施の形態５におけるコンピュータシステム８００の外観を示す。
【図１７】実施の形態５におけるコンピュータシステム８００のハードウェア構成を示す。
【図１８】従来のシーケンス番号ウィンドウの構成図である。
【図１９】従来のシーケンス番号チェックの処理フローチャート図である。
【図２０】従来の、ＩＰＳｅｃ機能をパイプライン構成で実現するＶＰＮ装置の構成図である。
【図２１】従来の技術を示す図である。
【符号の説明】
【００９８】
１０１  ＶＰＮ装置、１０２  第１シーケンス番号チェック部、１０３  シーケンス番号ウィンドウメモリ、１０４  パケット認証部、１０５  第２シーケンス番号チェック部、１０６  シーケンス番号ウィンドウメモリ、１０７−１，１０７−Ｎ  他のＩＰＳｅｃ処理部、１０８  ＶＰＮ側ネットワーク、１０９  平文側ネットワーク、２０１  ＶＰＮ装置、２０２  パケット認証部、２０３  シーケンス番号チェック部、２０４  シーケンス番号ウィンドウメモリ、２０５−１，２０５−Ｎ  他のＩＰＳｅｃ処理部、２０６  ＶＰＮ側ネットワーク、２０７  平文側ネットワーク、３０１  ＶＰＮ装置、３０２  パケット認証部、３０２−１，３０２−２，３０２−Ｎ  サブ認証部、３０３  シーケンス番号チェック部、３０４  シーケンス番号ウィンドウメモリ、３０５−１，３０５−Ｎ  他のＩＰＳｅｃ処理部、３０６  ＶＰＮ側ネットワーク、３０７  平文側ネットワーク、４０１  ＶＰＮ装置、４０２  第１シーケンス番号チェック部、４０３  シーケンス番号ウィンドウメモリ、４０４  パケット認証部、４０５  対応パケット生成部、４０５−１，４０５−Ｎ  他のＩＰＳｅｃ処理部、４０６  第２シーケンス番号チェック部、４０７  シーケンス番号ウィンドウメモリ、４０８  ＶＰＮ側ネットワーク、４０９  平文側ネットワーク、４２０  ＶＰＮ装置、４１０  他のＩＰＳｅｃ処理部、５０１  ＶＰＮ装置、５０３  対応パケット生成部、６０１  シーケンス番号ウィンドウメモリ、６０２  メモリアドレス、６０３  最新シーケンス番号、６０４  履歴ウィンドウ、７０１  ＶＰＮ装置、７０２  シーケンス番号チェック部、７０３  シーケンス番号ウィンドウメモリ、７０４  パケット認証部、７０５−１，７０５−Ｎ  他のＩＰＳｅｃ処理部、７０６  ＶＰＮ側ネットワーク、７０７  平文側ネットワーク、８００  コンピュータシステム、８１０  ＣＰＵ、８１１  ＲＯＭ、８１２  ＲＡＭ、８１３  ＤＳＰ、８１４  Ｋ／Ｂ、８１５  マウス、８１６  通信ボード、８１７  ＦＤＤ、８１８  ＣＤＤ、８１９  プリンタ、８２０  磁気ディスク装置、８２１  ＯＳ、８２２  ウィンドウシステム、８２３  プログラム群、８２４  ファイル群、８２５  バス、８３０  システムユニット。
【図１】
2007135137.tif 000003
【図２】
2007135137.tif 000004
【図３】
2007135137.tif 000005
【図４】
2007135137.tif 000006
【図５】
2007135137.tif 000007
【図６】
2007135137.tif 000008
【図７】
2007135137.tif 000009
【図８】
2007135137.tif 000010
【図９】
2007135137.tif 000011
【図１０】
2007135137.tif 000012
【図１１】
2007135137.tif 000013
【図１２】
2007135137.tif 000014
【図１３】
2007135137.tif 000015
【図１４】
2007135137.tif 000016
【図１５】
2007135137.tif 000017
【図１６】
2007135137.tif 000018
【図１７】
2007135137.tif 000019
【図１８】
2007135137.tif 000020
【図１９】
2007135137.tif 000021
【図２０】
2007135137.tif 000022
【図２１】
2007135137.tif 000023