(57)【要約】【課題】  データの盗聴や改竄などに対するパケットの秘匿性を確実に保持する。【解決手段】  ＥＳＰプロトコルに従ってデータ及びトレーラを暗号化すると共に、当該暗号化されたデータにヘッダを付加してパケットを生成するサーバ側ＶＰＮ機器２により外部ネットワークＮ２で通信されるパケットが暗号化されているかを暗号パケット判定装置４により判定するに際して、サーバ側ＶＰＮ機器２からパケットを受信し、外部ネットワークＮ２で通信される暗号化されるべきパケットに含まれるヘッダのうちＥＳＰプロトコルに従って作成されたヘッダ、暗号化されたフィールドのデータ長、トレーラを参照して、パケットが暗号化されているかを判定し、暗号化されていないと判定した場合に、暗号化されるべきパケットが暗号化されていないことを管理端末５に通知する。【選択図】      図１
2005117246.tif 000002
【特許請求の範囲】
【請求項１】
セキュリティプロトコルに従って、暗号化されたデータにヘッダが付加されたパケットが構成され、そのパケットを通信するネットワークに接続されたパケット判定装置において、
前記ネットワークで通信されるパケットに含まれるヘッダを参照して、前記セキュリティプロトコルに従って作成されたパケットかを判定し、前記セキュリティプロトコルに従って作成したパケットでないと判定した場合に、暗号化されるべきパケットが暗号化されていない旨の通知をするパケット判定装置。
【請求項２】
セキュリティプロトコルに従って、暗号化されたデータにヘッダが付加されたパケットが構成され、そのパケットを通信するネットワークに接続されたパケット判定装置において、
前記ネットワークで通信されるパケットに含まれるヘッダを参照して、前記セキュリティプロトコルに従って暗号化されたフィールドのデータ長を検出し、その検出したデータ長が前記セキュリティプロトコルに従った暗号化処理のブロック長の倍数でない場合に、暗号化されるべきパケットが暗号化されていない旨の通知をするパケット判定装置。
【請求項３】
セキュリティプロトコルに従って、暗号化されたデータにヘッダが付加されたパケットが構成され、そのパケットを通信するネットワークに接続されたパケット判定装置において、
前記ネットワークで通信されるパケットのうち、前記セキュリティプロトコルに従って付加されるトレーラを参照して、当該トレーラに含まれた前記セキュリティプロトコルの上位層プロトコルを示すプロトコル番号が、予め設定したプロトコル番号であると判定した場合に、暗号化されるべきパケットが暗号化されていない旨の検出をするパケット判定装置。
【請求項４】
セキュリティプロトコルに従って、暗号化されたデータにヘッダが付加されたパケットが構成され、そのパケットを通信するネットワークに接続されたパケット判定装置において、
前記ネットワークで通信されるパケットのうち、前記セキュリティプロトコルに従って付加されるトレーラを参照して、当該トレーラに含まれたパディングフィールドのデータ長を示すパディング長が、暗号化されたデータ及びトレーラのデータ長からパディングフィールドを除くトレーラ部分を減算したデータ長よりも小さいと判定した場合に、暗号化されるべきパケットが暗号化されていない旨の検出をするパケット判定装置。
【請求項５】
前記パケット判定手段は、前記トレーラを参照して暗号化されるべきパケットが暗号化されていないことを判定する処理を複数回に亘って行い、暗号化されるべきパケットが暗号化されていないと所定回数以上検出した場合に、暗号化されるべきパケットが暗号化されていない旨の通知をすることを特徴とする請求項３又は請求項４に記載のパケット判定装置。
【請求項６】
前記ネットワークで通信されるパケットのうち、暗号化の判定をする必要のあるパケットを選定するパケットフィルタを更に備え、そのパケットフィルタにより選定されたパケットについて、暗号化の判定を行うことを特徴とする請求項１乃至５の何れかに記載のパケット判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットに暗号化処理等が施されているかを判定して、そのパケットの盗聴や改竄を防止するためのパケット判定装置に関する。
【背景技術】
【０００２】
従来より、例えばインターネット等の公衆ネットワークを利用してパケットを通信するに際には、当該パケットの秘匿性を保持するために、ＩＰｓｅｃ（IP(Internet Protocol) security protocol）等のトンネリングプロトコルに従った処理を行う通信システムが知られている。この通信システムでは、サーバ側及びクライアント側にＶＰＮ（Virtual Private Network）機器を設けて、両者に共通したトンネリング処理を行うことにより、仮想的に閉ざされたネットワーク（ＶＰＮ）を構築している。
【０００３】
上述のＩＰｓｅｃとしては、暗号ペイロードを作成するためのＲＦＣ（Request For Comments）２４０６にて定義されたＥＳＰ（IP Encapsulating Security Payload）プロトコルが知られており、このＥＳＰプロトコルによって、ＥＳＰヘッダに続くペイロードデータを暗号化したり、認証データを使用した送信パケットと受信パケットとの整合性を保証したりしている。
【０００４】
ところで、従来のＶＰＮの通信システムでは、ＩＰヘッダとＩＰデータグラムとからなるＩＰパケットをカプセル化する手法として、以下に詳述するトランスポートモード、若しくはトンネルモードの何れかのモードを使用した処理を行ってパケット通信をするようになっている。
【０００５】
前者のトランスポートモードでは、データ送信側において、ＩＰパケットのうち、ＩＰデータグラムを暗号化してＥＳＰペイロードを作成し、当該ＥＳＰペイロードに続いて認証データを付加して送信する。一方、後者のトンネルモードでは、データ送信側において、ＩＰヘッダ及びＩＰデータグラムの双方を暗号化してＥＳＰペイロードを作成し、当該ＥＳＰペイロードに新たなヘッダを付加すると共にＥＳＰペイロードに認証データを付加して送信するようになっている。
【０００６】
尚、このＥＳＰプロトコルにて使用される暗号化アルゴリズムは、一般的に、暗号化するデータ長の単位が決定されているブロック暗号化であり、当該暗号化するデータ長の単位が８バイト又は１６バイトとなっている。したがって、このＥＳＰプロトコルにおいては、暗号化処理を施したデータにパディングデータを付加して、暗号化データのデータ長を調整して、当該暗号化データのデータ長を８バイト又は１６バイトの倍数とする必要がある。
【０００７】
これに対し、ＲＦＣ２４１０にて定義されている暗号化を行わない無暗号アルゴリズムでは、処理対象となるデータのブロック長が１バイトであり、データ長を調整するためのパディングデータの必要が無い。
【０００８】
また、ＥＳＰプロトコルにおいて、暗号化データに続いて付加されるメッセージ認証データは、オプションとなっておりデータ長が任意のサイズとなっているが、一般的に、データ長が１２バイトのＲＦＣ２４０３にて定義されたＨＭＡＣ−ＭＤ５−９６又はＲＦＣ２４０４にて定義されたＨＭＡＣ−ＳＨＡ−１−９６が使用される。
【０００９】
このような暗号化処理や認証処理を行うＶＰＮ機器では、例えばサーバからクライアントにパケットを送信するに際して、当該パケットを監視する監視機能を備えている。この監視機能を使用することにより、ＶＰＮ機器では、トンネル数やスループット等の統計情報、例えばサーバ−クライアント間の接続又は非接続を示すネゴシエーション情報を取得することにより、クライアントに送信するパケットを監視している。
【００１０】
また、従来において、例えばサーバと接続された内部ネットワークと、インターネット網等を介してクライアントと接続するための外部ネットワークとの間に、パケットのセキュリティを強固とするための暗号ゲートウェイを備えた技術が、下記の特許文献１にて知られている。
【００１１】
この特許文献１に記載された技術では、パケットデータのヘッダ情報を解析して暗号化、復号化、無処理の何れかを選択する暗号化方式が記載されている。
【特許文献１】特開平１０−３２７１９３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上述した従来の技術では、ＶＰＮ機器にて通信対象となるパケットを監視しているが、クライアントとサーバ間でのＶＰＮセッションが安全な状態、即ちパケットの盗聴などを防ぐために暗号化されているか否かを判定していなかった。
【００１３】
つまり、クライアントとサーバとの間でＶＰＮを構築するためには、サーバ側のＶＰＮ機器に正しい処理設定がなされていることが必要となるが、サーバ側のＶＰＮ機器に正しい設定がなされてない場合、暗号化されるべきパケットデータが暗号化されずに送信されてしまう可能性があった。また、サーバ側のＶＰＮ機器に正しい設定がなされていても、ＶＰＮ機器内に実装したプログラムデータ等のバグが発生した場合には、暗号化されるべきパケットデータが暗号化されずに送信されてしまう可能性がある。
【００１４】
より具体的に説明すると、サーバ側によってクライアント側に提供するサービス（ファイル転送サービスやＷｅｂページ閲覧サービス）に応じて暗号化又は非暗号化を区別している場合や、サーバ側のＶＰＮ機器が複数のクライアントと通信可能な状態である場合にクライアントごとに暗号化又は非暗号化を区別している場合に、設定ミスやバグ等によって、本来暗号化してデータ送信をするクライアントに対して非暗号化データを送信してしまう可能性があった。
【００１５】
そこで、本発明は、上述した実情に鑑みて提案されたものであり、パケットの盗聴や改竄などに対するパケットの秘匿性を確実に保持することができるパケット判定装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明は、セキュリティプロトコルによって、暗号化されたデータにヘッダが付加されたパケットが構成され、そのパケットを通信するネットワークに接続されたパケット判定装置に適用される。
【００１７】
このパケット判定装置では、ネットワークで通信されるパケットを受信すると、ネットワークで通信されるパケットに含まれるヘッダを参照して、セキュリティプロトコルに従って作成されたパケットかを判定し、セキュリティプロトコルに従って作成したパケットでないと判定した場合に、暗号化されるべきパケットが暗号化されていない旨の通知をすることにより、上述の課題を解決する。
【００１８】
また、本発明に係る他のパケット判定装置では、ネットワークで通信されるパケットを受信すると、ネットワークで通信されるパケットに含まれるヘッダを参照して、前記セキュリティプロトコルに従って暗号化されたフィールドのデータ長を検出し、その検出したデータ長がセキュリティプロトコルに従った暗号化処理のブロック長の倍数でない場合に、暗号化されるべきパケットが暗号化されていない旨の通知をすることにより、上述の課題を解決する。
【００１９】
更に、本発明に係る他のパケット判定装置では、ネットワークで通信されるパケットのうち、セキュリティプロトコルに従って付加されるトレーラを参照して、当該トレーラに含まれたセキュリティプロトコルの上位層プロトコルを示すプロトコル番号が、予め設定したプロトコル番号であると判定した場合に、暗号化されるべきパケットが暗号化されていない旨の検出をすることにより、上述の課題を解決する。
【００２０】
更にまた、本発明に係る他のパケット判定装置では、ネットワークで通信されるパケットのうち、セキュリティプロトコルに従って付加されるトレーラを参照して、当該トレーラに含まれたパディングフィールドのデータ長を示すパディング長が、暗号化されたデータ及びトレーラのデータ長からパディングフィールドを除くトレーラ部分を減算したデータ長よりも小さいと判定した場合に、暗号化されるべきパケットが暗号化されていない旨の検出をすることにより、上述の課題を解決する。
【発明の効果】
【００２１】
本発明によれば、パケット生成装置により通信するパケットの秘匿性が保持されているかを判定するに際して、暗号化されるべきパケットに含まれるヘッダのうちセキュリティプロトコルに従って作成されたヘッダ、暗号化されたフィールドのデータ長、トレーラを参照して、パケットが暗号化されているかを判定し、暗号化されていないと判定した場合に、暗号化されるべきパケットが暗号化されていない旨の通知や検出をするので、データの盗聴や改竄などに対するパケットの秘匿性を確実に保持することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について図面を参照して説明する。
【００２３】
本発明は、例えば図１や図２に示すように、ＶＰＮ（Virtual Private Network）が構築されたデータ通信システムに適用される。
【００２４】
［データ通信システムの構成］
まず、図１に示すデータ通信システムについて説明すると、当該システムは、各種のサーバ１から、内部ネットワークＮ１、サーバ側ＶＰＮ機器２及び外部ネットワークＮ２を介して、ＶＰＮ対応クライアント３にデータを送信するようになっている。本例において、内部ネットワークＮ１は、ＩＰ（Internet Protocol）ベースのローカルエリアネットワークであり、外部ネットワークＮ２は、公衆で利用可能なＩＰネットワークである。
【００２５】
サーバ１は、例えばＷｅｂサーバ、ＦＴＰ（File Transfer Protocol）サーバ等からなり、ＶＰＮ対応クライアント３に送信するアプリケーションデータを生成する。具体的には、サーバ１は、ＶＰＮ対応クライアント３からデータ送信要求を受けて、当該要求に応じたアプリケーションデータを取得し、内部ネットワークＮ１を介してサーバ側ＶＰＮ機器２に送信するようになっている。
【００２６】
サーバ側ＶＰＮ機器２は、サーバ１から受信したパケットのＩＰアドレス等を参照して暗号化処理を行うか否かを判定して、暗号化処理を行う必要がない場合にはそのまま外部ネットワークＮ２に送信する。
【００２７】
一方、サーバ側ＶＰＮ機器２は、暗号化処理をしてパケットを送信する必要がある場合、ＶＰＮ対応クライアント３との間でＶＰＮを構築するため、ＩＰパケットに対してトンネリングプロトコルに従った処理を行う。具体的には、サーバ側ＶＰＮ機器２は、トンネリングプロトコルのうち、ネットワーク層におけるセキュリティプロトコルであるＩＰｓｅｃ（IP security protocol）に準拠した処理を行って、ＶＰＮ対応クライアント３に送信するパケットを作成する。また、サーバ側ＶＰＮ機器２は、ＩＰｓｅｃに含まれるプロトコルのうち、セキュリティプロトコル、例えば暗号ペイロード（ＥＳＰ：IP Encapsulating Security Payload）を作成するＥＳＰプロトコルに従った処理を行う。
【００２８】
このとき、サーバ側ＶＰＮ機器２では、ＩＰヘッダとＩＰデータグラムからなるＩＰパケットをカプセル化するに際して、トンネルモード処理を行う。具体的に説明すると、まずサーバ側ＶＰＮ機器２は、サーバ１から図３（ａ）に示すパケットを受信する。そのパケットは、サーバ１が作成したアプリケーションデータ及びＴＣＰヘッダやＵＤＰヘッダ等が格納されたＩＰデータグラム１０２と、当該ＩＰデータグラムの先頭に付加されるＩＰヘッダ１０１とから構成され、そのヘッダには送信元のサーバ１のアドレスと、宛先のＶＰＮ対応クライアント３のアドレスが格納されている。
【００２９】
サーバ側ＶＰＮ機器２では、サーバ１から当該パケットを受信すると、図３（ｂ）に示すように、ＩＰヘッダ１０１及びＩＰデータグラム１０２に続くＥＳＰトレーラとして、パディングフィールド１０３、パディング長フィールド１０４、次ヘッダ番号フィールド１０５を設けるようになっている。
【００３０】
このとき、サーバ側ＶＰＮ機器２では、ＩＰヘッダ１０１及びＩＰデータグラム１０２、パディングフィールド１０３、パディング長フィールド１０４及び次ヘッダ番号フィールド１０５の合計データ長が予め設定したブロック長（８バイト又は１６バイト）の整数倍となるように、パディングフィールド１０３のデータ長を決定する。また、サーバ側ＶＰＮ機器２では、パディングフィールド１０３のデータ長を示す８ビットデータをパディング長フィールド１０４に格納し、次ヘッダフィールドには、ＩＰを示すプロトコル番号である「４」を格納するようになっている。
【００３１】
更に、サーバ側ＶＰＮ機器２では、ＩＰヘッダ１０１及びＩＰデータグラム１０２、パディングフィールド１０３、パディング長フィールド１０４及び次ヘッダ番号フィールド１０５からなるデータを暗号化し、ＥＳＰペイロードフィールド（セキュリティプロトコルにより暗号化されたフィールド）１０７に格納するＥＳＰペイロードデータを作成する。このとき、サーバ側ＶＰＮ機器２では、予めＶＰＮ対応クライアント３との間で決定された暗号化方式に従った処理を行う。
【００３２】
更にまた、サーバ側ＶＰＮ機器２では、図３（ｃ）に示すように、ＥＳＰペイロードフィールド１０７の先頭にＥＳＰヘッダ１０６を付加すると共に、当該ＥＳＰヘッダフィールド１０６の先頭にＩＰヘッダ１０１を付加し、更にＥＳＰペイロードフィールド１０７に続くフィールドにＥＳＰ認証データフィールド１０８を付加する。なお、ＩＰヘッダ１０１には、送信元のサーバ側ＶＰＮ機器２のアドレスと宛先のＶＰＮ対応クライアント３のアドレスとが格納されている。
【００３３】
このとき、サーバ側ＶＰＮ機器２では、ＩＰヘッダ１０１のプロトコル番号フィールドに格納するプロトコル番号を、ＥＳＰプロトコルを示す番号「５０」に書き換えて、ＩＰヘッダ１０１に格納する。
【００３４】
また、サーバ側ＶＰＮ機器２では、ＥＳＰヘッダ１０６として、図４に示すように、セキュリティパラメータインデックスフィールド（ＳＰＩ）１２１を付加し、続いて、ＥＳＰペイロードフィールド１０７の先頭にシーケンス番号フィールド１２２を付加する。セキュリティパラメータインデックス１２１には、ＥＳＰプロトコルを実行するに際してのセキュリティアソシエーションを検索するためのセキュリティパラメータの値が格納される。また、シーケンス番号フィールド１２２には、同一セッション内にてＶＰＮ対応クライアント３にパケットデータを送信する際にインクリメントされるシーケンス番号が格納される。
【００３５】
また、ＥＳＰ認証データフィールド１０８には、ＥＳＰヘッダフィールド１０６及びＥＳＰペイロードフィールド１０７に対して認証処理を行うための認証データが格納される。この認証データは、通常１２バイトのデータが使用される。なお、ＥＳＰプロトコルにおいては、ＥＳＰ認証データフィールド１０８を付加するか否かを任意（オプション）としており、認証機能を有効にした場合にのみＥＳＰペイロードフィールド１０７に続いてＥＳＰ認証データフィールド１０８を付加するようになっている。
【００３６】
以上、図３〜図４を参照して説明したように、サーバ側ＶＰＮ機器２では、ＶＰＮ対応クライアント３にデータを送信するに際して、データをパケット化する。このように処理されたパケットは、ＶＰＮ対応クライアント３によってＩＰｓｅｃに準じた復号化処理、認証処理が施されることによりサーバ１が生成したアプリケーションデータが取り出される。また、ＶＰＮ対応クライアント３も、サーバ側ＶＰＮ機器２と同様に暗号化処理等を行って、サーバ側ＶＰＮ機器２に送信するパケットを作成する。
【００３７】
また、このデータ通信システムでは、図１に示すように、サーバ側に、サーバ側ＶＰＮ機器２から外部ネットワークＮ２に送られるパケットを監視するための暗号パケット判定装置４、当該暗号パケット判定装置４及びサーバ側ＶＰＮ機器２の処理を管理するための管理端末５を備える。
【００３８】
管理端末５は、例えばサーバ１の管理者等により操作され、サーバ側ＶＰＮ機器２や暗号パケット判定装置４の処理設定をする。また、この管理端末５は、本来であれば暗号化されてサーバ側ＶＰＮ機器２からＶＰＮ対応クライアント３に送出されるべきパケットが暗号化されていない場合には、例えば警告表示等を行うことによりその旨を提示する。
【００３９】
暗号パケット判定装置４は、サーバ側ＶＰＮ機器２により通信されるパケットを監視することにより、暗号化されるべきパケットが暗号化されているか否かを判定する。この暗号パケット判定装置４は、その機能的な構成を図５に示すように、外部ネットワークＮ２と接続された外部ネットワーク側インターフェイス１１、内部ネットワークＮ１と接続された内部ネットワーク側インターフェイス１２を備える。
【００４０】
内部ネットワーク側インターフェイス１２は、予め内部ネットワークＮ１に規定された通信プロトコルに従った処理を行うことにより管理端末５との間で通信を行う。また、外部ネットワーク側インターフェイス１１は、ＩＰに従った処理を行うことによりサーバ側ＶＰＮ機器２からＶＰＮ対応クライアント３に送られるパケットを検出する。
【００４１】
この暗号パケット判定装置４では、サーバ側ＶＰＮ機器２により通信されるパケットを選別するための設定情報が管理端末５から内部ネットワーク側インターフェイス１２に送られると、当該設定情報をパケットフィルタ条件設定部１３に送る。パケットフィルタ条件設定部１３は、外部ネットワーク側インターフェイス１１により受信したパケットが暗号化されているかを判定する対象となるパケットか否かを選別するパケットフィルタ１４の設定を行う。
【００４２】
具体的には、パケットフィルタ条件設定部１３は、管理端末５からの設定情報として、送信元ＩＰアドレスや宛先ＩＰアドレス等が送られる。そして、パケットフィルタ条件設定部１３は、当該設定情報をキーとしてパケットフィルタ１４にフィルタリング処理を行わせる。また、パケットフィルタ条件設定部１３は、サーバ１に公開サーバが含まれている場合には、当該公開サーバから外部ネットワークＮ２に送出するパケットを暗号化する必要がないので、暗号判定の対象とさせないようにパケットフィルタ１４のフィルタリング処理を設定する。これにより、パケットフィルタ１４は、パケットフィルタ条件設定部１３により設定された条件に従ってパケットを破棄する処理又は暗号パケット判定部１５に送るフィルタリング処理を行う。
【００４３】
暗号パケット判定部１５では、パケットフィルタ１４から送られたパケットが、図３〜図４を用いて説明したＩＰｓｅｃに準じた処理が施されることにより暗号化されているか否かを判定する暗号パケット判定処理を行う。暗号パケット判定部１５では、暗号化されていない場合には通知部１６を制御して、当該通知部１６から内部ネットワーク側インターフェイス１２を介して管理端末５に、サーバ側ＶＰＮ機器２からＶＰＮ対応クライアント３に送られるパケットが正常に暗号化されていない旨を示す情報を送信させる。なお、この暗号パケット判定部１５の暗号パケット判定処理の内容については後述する。
【００４４】
［データ通信システムの別の構成］
次に、図２に示すデータ通信システムについて説明すると、当該システムは、ＶＰＮ対応サーバ１’から、外部ネットワークＮ２を介して、ＶＰＮ対応クライアント３にデータを送信するようになっている。当該ＶＰＮ対応サーバ１’は、上述したサーバ１とサーバ側ＶＰＮ機器２との機能を具備しており、ＶＰＮ対応クライアント３に送信するアプリケーションデータを作成し、そのデータを暗号化する必要がある場合には、その処理を行う。ここで、暗号化処理を行う必要がある場合、ＶＰＮ対応サーバ１’は、ＩＰヘッダとＩＰデータグラムからなるＩＰパケットをカプセル化するに際して、トランスポートモード処理を行うようになっている。
【００４５】
具体的に説明すると、図６（ａ）に示すように、ＩＰヘッダ１０１及びＩＰデータグラム１０２からなるＩＰパケットに、パディングフィールド１０３、パディング長フィールド１０４及び次ヘッダ番号フィールド１０５からなるＥＳＰトレーラを付加するようになっている（図６（ｂ））。次ヘッダ番号フィールド１０５には、ＥＳＰペイロードデータを復号した際に先頭に現れるヘッダのＩＰプロトコル番号としてＩＰヘッダ１０１に含まれるプロトコルフィールドの８ビットデータがコピーされて格納されており、例えばＩＣＭＰ（Internet Control Message Protocol）を示すプロトコル番号「１」や、ＴＣＰ（Transmission Control Protocol）を示すプロトコル番号「６」、ＵＤＰ（User Datagram Protocol）を示すプロトコル番号「１７」が格納される。そして、ＶＰＮ対応サーバ１’では、トンネルモードとは異なり、ＩＰデータグラム１０２とＥＳＰトレーラのみを暗号化してＥＳＰペイロードフィールド１０７に格納する。
【００４６】
また、ＩＰヘッダ１０１と当該ＥＳＰペイロードフィールド１０７との間にＥＳＰヘッダフィールド１０６を付加し、ＩＰヘッダ１０１にプロトコル番号「５０」を格納して、更に、ＥＳＰペイロードフィールド１０７に続いてＥＳＰ認証データフィールド１０８を付加するようになっている（図６（ｃ））。尚、トランスポートモードにおけるＩＰヘッダ１０１には、送信元ＩＰアドレスとしてＶＰＮ対応サーバ１’のＩＰアドレスを格納し、宛先ＩＰアドレスとしてＶＰＮ対応クライアント３のＩＰアドレスを格納するようになっている。
【００４７】
以上のように、ＶＰＮ対応サーバ１’では、ＶＰＮ対応クライアント３にデータを送信するに際して、データをパケット化する。このように処理されたパケットは、ＶＰＮ対応クライアント３によってＩＰｓｅｃに準じた復号化処理、認証処理が施されることにより同ＶＰＮ対応サーバ１’が生成したアプリケーションデータが取り出される。また、ＶＰＮ対応クライアント３も、ＶＰＮ対応サーバ１’と同様に暗号化処理等を行って、ＶＰＮ対応サーバ１’に送信するパケットを作成する。
【００４８】
また、このデータ通信システムでは、図６に示すように、ＶＰＮ対応サーバ１’から外部ネットワークＮ２に送られるパケットを監視するための暗号パケット判定装置４と、当該暗号パケット判定装置４の処理を管理するための管理端末５とを備えている。この管理端末５は、内部ネットワークＮ１を介して暗号パケット判定装置４と接続されており、例えばサーバ１の管理者等により操作され、サーバ側ＶＰＮ機器２や暗号パケット判定装置４の処理設定をするようになっている。そして、当該管理端末５は、本来であれば暗号化されてＶＰＮ対応サーバ１’からＶＰＮ対応クライアント３に送出されるべきパケットが暗号化されていない場合に、上述システムと同様にして、警告表示等を行うようになっている。
【００４９】
一方、暗号パケット判定装置４は、ＶＰＮ対応サーバ１’により通信されるパケットを監視することにより、暗号化されるべきパケットが暗号化されているか否かを判定する。、その機能的な構成は、上述のシステムと略同様であるので（図５参照）、ここでは詳細な説明を省略する。
【００５０】
また、暗号パケット判定部１５では、パケットフィルタ１４から送られたパケットが、図６、図４を用いて説明したＩＰｓｅｃに準じた処理が施されることにより暗号化されているか否かを判定する暗号パケット判定処理を行うようになっている。そして、暗号パケット判定部１５では、暗号化されていない場合には通知部１６を制御して、当該通知部１６から内部ネットワーク側インターフェイス１２を介して管理端末５に、ＶＰＮ対応サーバ１’からＶＰＮ対応クライアント３に送られるパケットが正常に暗号化されていない旨を示す情報を送信させるようになっている。
【００５１】
尚、この暗号パケット判定部１５の暗号パケット判定処理の内容については後述する。また、その他の構成については、上述したシステムと同様であるので、ここでは説明を省略する。
【００５２】
［暗号パケット判定処理］
つぎに、上述したように構成されたデータ通信システムにおいて、暗号パケット判定部１５による暗号パケット判定処理の処理手順について図７のフローチャートを参照して説明する。
【００５３】
暗号パケット判定装置４では、外部ネットワーク側インターフェイス１１によりＶＰＮ対応サーバ１’若しくはサーバ側ＶＰＮ機器２（以下、ＶＰＮ対応サーバ１’等という）による通信対象となっていたパケットを検出し、パケットフィルタ１４から暗号化されるべきパケットを暗号パケット判定部１５により入力すると、ステップＳ１以降の処理を開始する。
【００５４】
先ずステップＳ１においては、暗号パケット判定部１５により、パケットフィルタ１４から送られたパケットに、サーバ１にて生成したアプリケーションデータが暗号化されて格納されたＥＳＰペイロードフィールド１０７が含まれているか否かを判定する。このとき、暗号パケット判定部１５では、ＩＰヘッダ１０１に含まれるプロトコル番号フィールドを参照して、当該プロトコル番号フィールドに格納されたプロトコル番号がＥＳＰプロトコルによりＥＳＰペイロードを作成したことを示す「５０」であるか否かを判定する。そして、暗号パケット判定部１５では、ＥＳＰペイロードフィールド１０７が含まれているパケットであると判定した場合にはステップＳ２に処理を進め、ＥＳＰペイロードフィールド１０７が含まれているパケットでないと判定した場合にはステップＳ１１に処理を進める。
【００５５】
ステップＳ２においては、暗号パケット判定部１５により、ＥＳＰヘッダフィールド１０６より後のデータ長（Ｌｅｎｇｔｈ）を検出して、ステップＳ３に処理を進める。すなわち、ステップＳ２では、ＥＳＰペイロードフィールド１０７及びＥＳＰ認証データフィールド１０８のデータ領域を判定対象とする。
【００５６】
ステップＳ３においては、暗号パケット判定部１５により、ステップＳ２にて検出したデータ長が、８バイトの整数倍のデータ長に１２バイトを加算したデータ長であるか否かを判定する。すなわち、暗号パケット判定部１５では、ＥＳＰプロトコルに従ってＩＰパケットが８バイトのブロック暗号化が行われることにより、ＥＳＰペイロードフィールド１０７が８バイトの整数倍であってＥＳＰペイロードフィールド１０７に続いて１２バイトのＥＳＰ認証データフィールド１０８が付加されているか否かを判定する。これにより、暗号パケット判定部１５は、ＥＳＰペイロードフィールド１０７に暗号化されたデータが格納されているか否か、ＥＳＰ認証データフィールド１０８にＥＳＰ認証データが格納されているか否かを判定する。
【００５７】
そして、暗号パケット判定部１５では、データ長が８バイトの整数倍のデータ長に１２バイトを加算したデータ長であると判定した場合には、ＥＳＰペイロードフィールド１０７に暗号化されたデータが格納されており、且つＥＳＰ認証データフィールド１０８にＥＳＰ認証データが格納されていると判定してステップＳ４に処理を進め、そうでない場合には、ＥＳＰペイロードフィールド１０７及びＥＳＰ認証データフィールド１０８のデータ領域を判定対象にしてステップＳ５に処理を進める。
【００５８】
ステップＳ４においては、暗号パケット判定部１５により、ＥＳＰペイロードフィールド１０７に格納されたＥＳＰペイロードを判定対象とするために、ステップＳ２にて検出したデータ長から、ＥＳＰ認証データのデータ長（１２バイト）を減算して、ステップＳ６に処理を進める。
【００５９】
ステップＳ５においては、暗号パケット判定部１５により、ステップＳ２にて検出したデータ長が８バイトの整数倍のデータ長であるか否かを判定することにより、ＥＳＰ認証データフィールド１０８にＥＳＰ認証データが格納されていないが、ＥＳＰペイロードフィールド１０７に暗号化されたデータが格納されているか否かを判定する。すなわち、暗号パケット判定部１５では、ＶＰＮ対応サーバ１’等の設定により認証機能が無効とされている場合にＥＳＰペイロードがブロック暗号化されているか否かを判定する。
【００６０】
そして、暗号パケット判定部１５では、ＥＳＰヘッダフィールド１０６以降のデータ長が８バイトの整数倍であると判定した場合にはＥＳＰペイロードが暗号化されていると判定してステップＳ６に処理を進め、ＥＳＰヘッダフィールド１０６以降のデータ長が８バイトの整数倍でないと判定した場合には、ＥＳＰペイロードフィールド１０７に格納されているデータが暗号化されていないと判定してステップＳ１１に処理を進める。
【００６１】
次のステップＳ６及びステップＳ７においては、暗号パケット判定部１５により、処理対象をＥＳＰトレーラとし、当該ＥＳＰトレーラに含まれる次ヘッダ番号フィールド１０５及びパディング長フィールド１０４を使用した処理を行う。
【００６２】
先ずステップＳ６においては、暗号パケット判定部１５により、ＥＳＰトレーラの末尾の１バイトのデータを取り出すことにより次ヘッダ番号フィールド１０５に格納されているプロトコル番号を参照して、当該プロトコル番号が予め設定した値であるか否かを判定する。
【００６３】
ここで、次ヘッダ番号フィールド１０５には、上述したように、ＥＳＰペイロードデータを復号した際に先頭に現れるヘッダのプロトコル番号が格納されている。したがって、暗号パケット判定部１５には、次ヘッダ番号フィールド１０５から取り出したプロトコル番号と照合するプロトコル番号として、ＩＣＭＰを示すプロトコル番号「１」、ＩＰを示すプロトコル番号「４」、ＴＣＰを示すプロトコル番号「６」、ＵＤＰを示すプロトコル番号「１７」を設定しておく。なお、トランスポートモードのパケットに含まれる次ヘッダ番号フィールド１０５には、ＩＣＭＰとＴＣＰ又はＵＤＰを示すプロトコル番号が格納され、トンネルモードのパケットに含まれる次ヘッダ番号フィールド１０５には、ＩＰを示すプロトコル番号が格納される。
【００６４】
そしてステップＳ６において、暗号パケット判定部１５により、次ヘッダ番号フィールド１０５に格納されているデータが予め設定した値でないと判定した場合には暗号化されたパケットであると判定してステップＳ８に処理を進め、次ヘッダ番号フィールド１０５に格納されているデータが予め設定した値であると判定した場合にはステップＳ７に処理を進める。
【００６５】
ステップＳ７においては、暗号パケット判定部１５により、ＥＳＰトレーラの末尾から２バイト目のデータを取り出すことによりパディング長フィールド１０４に格納されているパディングフィールド１０３のデータ長（Ｐａｄｄｉｎｇ  Ｌｅｎｇｔｈ）が、ＥＳＰペイロードフィールド１０７のデータ長（Ｌｅｎｇｔｈ）から２バイト減算したデータ長よりも小さいか否かを判定する。ここで、パディングフィールド１０３のデータ長は、暗号化前にはＥＳＰペイロードフィールド１０７のデータ長から２バイト減算したデータ長よりも短い値となり、パディングフィールド１０３に格納されたデータの暗号化後にはＥＳＰペイロードフィールド１０７のデータ長から２バイト減算したデータ長よりも長くなる場合がある。
【００６６】
したがって、暗号パケット判定部１５では、パディングフィールド１０３に格納されたデータ長が、ＥＳＰペイロードフィールド１０７のデータ長から２バイト減算したデータ長よりも小さくないと判定した場合には、暗号化されていると判定してステップＳ８に処理を進め、そうでない場合にはステップＳ９に処理を進める。
【００６７】
ステップＳ８においては、暗号パケット判定部１５により、ＶＰＮ対応サーバ１’等から送信されるパケットが正常に暗号化されたパケットであると判定したので、管理端末５への通知を行わずに処理を終了する。
【００６８】
一方、ステップＳ９においては、暗号パケット判定部１５により、ステップＳ１〜ステップＳ７の処理を行ってもパケットが暗号化されているか否かの判定が未確定であるとし、当該未確定と判定した回数を計数するカウンタ値をインクリメントしてステップＳ１０に処理を進める。
【００６９】
ここで、暗号化されたデータは、ＥＳＰペイロードを暗号化するために使用する鍵データの値によって値が異なり、パディング長フィールド１０４及び次ヘッダ番号フィールド１０５のデータを用いたステップＳ６及びステップＳ７の判定において暗号化されていないと判定する場合がある。したがって、暗号パケット判定部１５では、パディング長フィールド１０４のデータを用いた判定、次ヘッダ番号フィールド１０５のデータを用いた判定によって暗号化されていると判定されなかった場合には、暗号化されていないとの判定をせずに未確定とする。
【００７０】
次のステップＳ１０においては、暗号パケット判定部１５により、ステップＳ９にてインクリメントしたカウンタ値が、予め設定した所定以上か否かを判定する。
【００７１】
ここで、ステップＳ６において次ヘッダ番号フィールド１０５に格納された暗号化データが予め設定した値となる確率は、４／２５６である。また、ステップＳ７においてパディング長フィールド１０４に格納された暗号化データがＥＳＰペイロードから２バイト減算した値となる確率は、ＥＳＰペイロードのデータ長が２５８バイトよりも短い場合には（ＥＳＰペイロードのデータ長−２）／２５６となり、ＥＳＰペイロードのデータ長が２５８バイト以上である場合には１となる。
【００７２】
したがって、ステップＳ６及びステップＳ７の双方の処理において未確定となる確率は、最大で１／６４となり、当該未確定となる確率を考慮してステップＳ１０における所定値を設定しておく。これにより、暗号パケット判定部１５では、所定値をｎとすると、暗号化されているにも拘わらず、パケットが暗号化されていないと誤判定する確率を１／（６４ｎ）とする。
【００７３】
また、このステップＳ１０においては、暗号パケット判定部１５により、同一セッション内での複数のパケットをＶＰＮ対応サーバ１’等から取り込んで、各パケットについてステップＳ１〜ステップＳ７の処理を行う。このとき、暗号パケット判定部１５では、パケットフィルタ１４から送られたパケットから、ＩＰヘッダ１０１に含まれる宛先アドレス及び送信元アドレス、ＥＳＰヘッダフィールド１０６に含まれるセキュリティパラメータインデックスフィールド１２１に格納されたデータを取り出し、当該各データが各パケット間で一致した場合に同一セッション内のパケットであると判定する。
【００７４】
そして、暗号パケット判定部１５では、同一セッション内の全パケットについて未確定と判定した場合、又はカウンタ値が所定値以上となった場合に、暗号化されていないと判定して、ステップＳ１１の処理を行う。
【００７５】
このステップＳ１１においては、暗号パケット判定部１５により、暗号化されるべきパケットが暗号化されていないことを管理端末５に通知するように通知部１６を制御して、通知部１６から内部ネットワーク側インターフェイス１２を介して通知情報を管理端末５に送信する。
【００７６】
［実施形態の効果］
以上詳細に説明したように、本発明を適用したデータ通信システムによれば、暗号化されるべきパケットに含まれるヘッダのうちＥＳＰプロトコルに従ってプロトコル番号が変更されたデータを参照して、ＥＳＰヘッダフィールド１０６に続くＥＳＰペイロードフィールド１０７が暗号化されているかを判定し、暗号化されていないと判定した場合に、暗号化されるべきパケットが暗号化されていないことを管理端末５に通知するので、例えばＶＰＮ対応サーバ１’等の設定ミスやバグが発生して、暗号化すべきデータが暗号化されずに通信される場合であっても、確実に管理端末５に通知して暗号化処理の再設定等を促すことができ、データの盗聴や改竄などに対するパケットの秘匿性を確実に保持することができる。したがって、このデータ通信システムによれば、ＶＰＮ対応サーバ１’等の管理者のみならず、ＶＰＮ対応クライアント３のユーザにとっても、ネットワークセキュリティが確実に実施されているという安心感を与えることができる。
【００７７】
また、このデータ通信システムによれば、ＥＳＰヘッダフィールド１０６以降のデータ長を検出し、当該検出したデータ長がＥＳＰプロトコルに従った暗号化処理のブロック長の倍数でない場合に、暗号化されるべきパケットが暗号化されていないことを管理端末５に通知するので、ＥＳＰペイロードフィールド１０７に対する暗号化処理がブロック暗号化であることを利用して、データの盗聴や改竄などに対するパケットの秘匿性を確実に保持することができる。
【００７８】
更に、このデータ通信システムによれば、ＥＳＰトレーラの次ヘッダ番号フィールド１０５を参照して、当該次ヘッダ番号フィールド１０５に格納されたプロトコル番号が、予め設定したプロトコル番号であると判定した場合に、暗号化されるべきパケットが暗号化されていないことを検出するので、ＥＳＰトレーラを暗号化することにより暗号化前のプロトコル番号が変更することを利用して、データの盗聴や改竄などに対するパケットの秘匿性を確実に保持することができる。
【００７９】
更にまた、このデータ通信システムによれば、ＥＳＰトレーラのパディング長フィールド１０４を参照して、当該パディング長フィールド１０４に格納されたパディングフィールドのデータ長を示すパディング長が、暗号化されたデータ及びトレーラのデータ長からパディングフィールドを除くトレーラ部分（２バイト）を減算したデータ長よりも小さいと判定した場合に、暗号化されるべきパケットが暗号化されていないことを検出するので、パディング長フィールド１０４のデータが暗号化により変更することを利用して、データの盗聴や改竄などに対するパケットの秘匿性を確実に保持することができる。
【００８０】
更にまた、このデータ通信システムによれば、ステップＳ６及びステップＳ７のように、トレーラを参照して暗号化されるべきパケットが暗号化されていないことを判定する処理を複数回に亘って行い、暗号化されていると判定できない未確定と所定回数以上判定した場合には管理端末５に通知するので、ＥＳＰトレーラの暗号化により確実に値が変更されているかを判定することができ、データの盗聴や改竄などに対するパケットの秘匿性を確実に保持することができる。
【００８１】
更にまた、このデータ通信システムによれば、暗号化されていないことを判定する必要のあるパケットをパケットフィルタ１４により選定するので、サーバ１が公開サーバである場合のように暗号化の必要がないパケットと、暗号化する必要があるパケットとを管理端末５によって設定することができる。
【００８２】
更にまた、このデータ通信システムによれば、先ずＥＳＰプロトコルに従って作成されたヘッダを参照して暗号化されていないかを判定し、次にＥＳＰプロトコルに従って付加されたヘッダ以降のデータ長を検出して暗号化されるべきパケットが暗号化されていないかを判定し、次にＥＳＰプロトコルに従って付加されたトレーラを参照してパケットが暗号化されているかを判定するので、暗号化されたＥＳＰペイロードフィールド１０７の内部を参照する前にＥＳＰヘッダやデータ長のみによって暗号化されていないことを判定することができ、暗号化されていないパケットを少ない処理量且つ短時間で検出することができる。また、このデータ通信システムによれば、ＥＳＰヘッダやデータ長によって暗号化されていないと判定できない場合であっても、ＥＳＰペイロードフィールド１０７に格納されたデータを参照して、暗号化されているか否かを確実に判定することができ、更にデータの盗聴や改竄などに対するパケットの秘匿性を確実に保持することができる。
【００８３】
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【００８４】
すなわち、上述した実施形態では、ＶＰＮ対応サーバ１’等からＶＰＮ対応クライアント３に送信されるパケットについて暗号化されているかを判定する場合について説明したが、ＶＰＮ対応クライアント３からＶＰＮ対応サーバ１’等に送られるパケットについても図７に示した暗号パケット判定処理を行っても良いことは勿論である。
【図面の簡単な説明】
【００８５】
【図１】本発明を適用した暗号パケット判定装置を含むデータ通信システムの構成を示すブロック図である。
【図２】本発明を適用した暗号パケット判定装置を含むデータ通信システムの他の構成を示すブロック図である。
【図３】トンネルモードによってデータを暗号化する処理を説明するための図である。
【図４】ＥＳＰプロトコルに従って生成されるデータのデータ構造を示す図である。
【図５】本発明を適用した暗号パケット判定装置の機能的な構成を示すブロック図である。
【図６】トランスポートモードによってデータを暗号化する処理を説明するための図である。
【図７】暗号パケット判定部による暗号パケット判定処理の処理手順を示すフローチャートである。
【符号の説明】
【００８６】
１  サーバ
１’  ＶＰＮ対応サーバ
２  サーバ側ＶＰＮ機器
３  ＶＰＮ対応クライアント
４  暗号パケット判定装置
５  管理端末
１１  外部ネットワーク側インターフェイス
１２  内部ネットワーク側インターフェイス
１３  パケットフィルタ条件設定部
１４  パケットフィルタ
１５  暗号パケット判定部
１６  通知部
１０１  ＩＰヘッダ
１０２  ＩＰデータグラム
１０３  パディングフィールド
１０４  パディング長フィールド
１０５  次ヘッダ番号フィールド
１０６  ＥＳＰヘッダフィールド
１０７  ＥＳＰペイロードフィールド
１０８  ＥＳＰ認証データフィールド
１２１  セキュリティパラメータインデックスフィールド
１２２  シーケンス番号フィールド
【図１】
2005117246.tif 000003
【図２】
2005117246.tif 000004
【図３】
2005117246.tif 000005
【図４】
2005117246.tif 000006
【図５】
2005117246.tif 000007
【図６】
2005117246.tif 000008
【図７】
2005117246.tif 000009