(57)【要約】暗号化や復号化や認証などのセキュリティ機能を実行するのに必要なセキュリティ関係のパラメータを維持するための、新規で有用な仮想プライベートネットワーク（ＶＰＮ）機構及び関連のセキュリティ・アソシエーション・プロセッサ。セキュリティ・アソシエーション・データベース（ＳＡＤ）及び関連の回路は、暗号化／復号化及び認証のためのセキュリティ規格のＩＰＳｅｃグループを実現するのに必要なパラメータを提供する。そのようなデータベース中のセキュリティ・アソシエーション（ＳＡ）のエントリは、ＩＰＳｅｃ規格に従ってＶＰＮパケットを送受信するのに必要なすべてのパラメータを含む。
2005508585.tif 000002
【特許請求の範囲】
【請求項１】
複数のセキュリティ・アソシエーションについてセキュリティ関係のデータを記憶するためのセキュリティ・アソシエーション・データベースであって、各エントリが固有のソケットに対応したセキュリティ・アソシエーション関係のデータを含む前記セキュリティ・アソシエーション・データベース；
前記セキュリティ・アソシエーション・データベース中に見いだせないソケットを受け取ると新しいセキュリティ・アソシエーションを開く手段；
パケットに関連したセキュリティ・アソシエーションをそのソケットに従ってサーチし認識する手段；
複数のセキュリティ関係のパラメータを前記セキュリティ・アソシエーション・データベースから検索する手段；及び
前記複数のセキュリティ関係のパラメータを仮想プライベートネットワーキング（ＶＰＮ）のセキュリティ・プロセッサに送ってそれを用いて１以上のセキュリティ処理を実行する手段
を備えたセキュリティ・アソシエーション・プロセッサ回路。
【請求項２】
前記セキュリティ処理の結果に従って前記セキュリティ・アソシエーション・データベースの内容を更新する手段をさらに備える、請求項１に記載の回路。
【請求項３】
前記セキュリティ・アソシエーションに関連したパラメータが、前記回路の外部のエンティティによって構成され、前記回路が、前記セキュリティ・アソシエーション・データベース中の前記新しいセキュリティ・アソシエーションに対応したセキュリティ関係のデータと、前記新しいセキュリティ・アソシエーションに関連したソケットについて計算されたハッシュ値とを前記セキュリティ・アソシエーション・データベースに記憶する手段を備える、請求項１に記載の回路。
【請求項４】
前記セキュリティ・アソシエーションが、前記回路の外部のエンティティによって開かれ、前記回路が、前記新しいセキュリティ・アソシエーションに対するポインタを最低使用頻度（ＬＲＵ）のリンクリストに挿入する手段を備える、請求項１に記載の回路。
【請求項５】
前記セキュリティ・アソシエーション・データベースから未使用のセキュリティ・アソシエーションを除去する手段をさらに備える、請求項１に記載の回路。
【請求項６】
最大タイムアウトを超えると未使用のセキュリティ・アソシエーションを前記セキュリティ・アソシエーション・データベースから除去する手段をさらに備える、請求項１に記載の回路。
【請求項７】
最大バイトカウントを超えると未使用のセキュリティ・アソシエーションを前記セキュリティ・アソシエーション・データベースから除去する手段をさらに備える、請求項１に記載の回路。
【請求項８】
セキュリティ・アソシエーションをサーチし認識する前記手段が、
認識すべきセキュリティ・アソシエーションに関連したソケットについてのハッチ値を計算する手段；
ハッシュ結果をインデックスとして用いてハッシュテーブル中のハッシュポインタを探す手段；
前記ハッシュポインタに従って前記セキュリティ・アソシエーション・データベースからデータを検索する手段；及び
もし検索したデータがパケットに関連したソケットに一致するならば前記セキュリティ・アソシエーションを認識する手段
を備える請求項１に記載の回路。
【請求項９】
前記ＶＰＮセキュリティ・プロセッサが、暗号化を行う手段を備える、請求項１に記載の回路。
【請求項１０】
前記ＶＰＮセキュリティ・プロセッサが、復号化を行う手段を備える、請求項１に記載の回路。
【請求項１１】
前記ＶＰＮセキュリティ・プロセッサが、認証を行う手段を備える、請求項１に記載の回路。
【請求項１２】
前記ＶＰＮセキュリティ・プロセッサが、特定ＩＰＳｅｃのサービスを行う手段を備える、請求項１に記載の回路。
【請求項１３】
入ってくるパケットにアンチ・リプライ機構を適用する手段をさらに備える、請求項１に記載の回路。
【請求項１４】
入ってくるパケットのシーケンス番号を追跡する手段をさらに備える、請求項１に記載の回路。
【請求項１５】
先頭と末尾を有する最低使用頻度（ＬＲＵ）の二重リンクリストを作成及び維持する手段をさらに含み、最高使用頻度のセキュリティ・アソシエーションが末尾に記憶され、最低使用頻度のセキュリティ・アソシエーションが先頭に記憶される、請求項１に記載の回路。
【請求項１６】
前記ＬＲＵリストがいっぱいの場合、先頭のセキュリティ・アソシエーションが削除され、新しいセキュリティ・アソシエーションが末尾に加えられる、請求項１５に記載の回路。
【請求項１７】
前記ソケットが、セキュリティ・パラメータ・インデックス（ＳＰＩ）、リモートＩＰ及びプロトコル構成要素を含む、請求項１に記載の回路。
【請求項１８】
前記セキュリティ・アソシエーション関係のデータが、以下の値、すなわちＩＰＳｅｃモード、暗号化アルゴリズム、暗号化キーのいずれか一つ又はその組合わせを含む、請求項１に記載の回路。
【請求項１９】
前記セキュリティ・アソシエーション関係のデータが、以下の値、すなわちＩＰＳｅｃモード、認証アルゴリズム、認証キーのいずれか一つ又はその組合わせを含む、請求項１に記載の回路。
【請求項２０】
もし前記ＶＰＮセキュリティ・プロセッサからエラーを受け取ったならば前記パケットを拒絶する手段をさらに備える、請求項１に記載の回路。
【請求項２１】
前記回路が特定用途向け集積回路（ＡＳＩＣ）にて実現される、請求項１に記載の回路。
【請求項２２】
前記回路がフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）にて実現される、請求項１に記載の回路。
【請求項２３】
前記回路がデジタル・シグナル・プロセッサ（ＤＳＰ）にて実現される、請求項１に記載の回路。
【請求項２４】
複数のセキュリティ・アソシエーションについてセキュリティ関係のデータを記憶するセキュリティ・アソシエーション・データベース手段であって、各エントリが固有のソケットに対応するセキュリティ・アソシエーション関係のデータを含む前記セキュリティ・アソシエーション・データベース手段；
各々がセキュリティ処理を実行する複数のセキュリティ・エンジン；
前記セキュリティ・アソシエーション・データベース手段において見いだせないソケットを受け取ると新しいセキュリティ・アソシエーションを開く手段；
入力パケットに関連したセキュリティ・アソシエーションをそのソケットに従ってサーチし認識する手段；
前記セキュリティ・アソシエーション・データベース手段から複数のセキュリティ関係のパラメータを検索する手段；
前記複数のセキュリティ関係のパラメータを前記セキュリティ・エンジンの少なくとも１つに送ってそれを用いてセキュリティ処理を実行する手段；及び
前記入力パケットと前記セキュリティ処理の結果を用いて特定のセキュリティ・モードに従って出力パケットを構成するパケット構築手段
を備える仮想プライベートネットワーク（ＶＰＮ）回路。
【請求項２５】
前記セキュリティ・エンジンの少なくとも１つがＩＰＳｅｃトンネルモードのサービスを実行する、請求項２４に記載の回路。
【請求項２６】
前記セキュリティ・エンジンの少なくとも１つがＩＰＳｅｃトランスポートモードのサービスを実行する、請求項２４に記載の回路。
【請求項２７】
少なくとも１つの前記セキュリティ・エンジンが暗号化を実行する、請求項２４に記載の回路。
【請求項２８】
少なくとも１つの前記セキュリティ・エンジンが復号化を実行する、請求項２４に記載の回路。
【請求項２８】
少なくとも１つの前記セキュリティ・エンジンが認証を実行する、請求項２４に記載の回路。
【請求項２９】
少なくとも１つの前記セキュリティ・エンジンが１以上のＩＰＳｅｃサービスを実行する、請求項２４に記載の回路。
【請求項３０】
前記回路が特定用途向け集積回路（ＡＳＩＣ）にて実現される、請求項２４に記載の回路。
【請求項３１】
前記回路がフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）にて実現される、請求項２４に記載の回路。
【請求項３２】
前記回路がデジタル・シグナル・プロセッサ（ＤＳＰ）にて実現される、請求項２４に記載の回路。
【請求項３３】
携帯式コンピューティング装置であって、
前記装置を通信ネットワークに接続する通信手段；
揮発性及び不揮発性メモリからなり、前記不揮発性メモリがプログラムコードを記憶するメモリ手段；
前記メモリ手段と前記通信手段に接続されて前記プログラムコードを実行するプロセッサ；及び
仮想プライベートネットワーク（ＶＰＮ）回路
を備え、前記仮想プライベートネットワーク（ＶＰＮ）回路が、
複数のセキュリティ・アソシエーションについてセキュリティ関係のデータを記憶するセキュリティ・アソシエーション・データベース手段であって、各エントリが固有のソケットに対応するセキュリティ・アソシエーション関係のデータを含む前記セキュリティ・アソシエーション・データベース手段；
各々がセキュリティ処理を実行する複数のセキュリティ・エンジン；
前記セキュリティ・アソシエーション・データベース手段において見いだせないソケットを受け取ると新しいセキュリティ・アソシエーションを開く手段；
入力パケットに関連したセキュリティ・アソシエーションをそのソケットに従ってサーチし認識する手段；
前記セキュリティ・アソシエーション・データベース手段から複数のセキュリティ関係のパラメータを検索する手段；
前記複数のセキュリティ関係のパラメータを前記セキュリティ・エンジンの少なくとも１つに送ってそれを用いてセキュリティ処理を実行する手段；及び
前記入力パケットと前記セキュリティ処理の結果を用いて特定のセキュリティ・モードに従って出力パケットを構成するパケット構築手段
を備える前記携帯式コンピューティング装置。
【請求項３４】
前記通信ネットワークが広域ネットワーク（ＷＡＮ）からなる、請求項３３に記載の装置。
【請求項３５】
前記通信ネットワークがローカル・エリア・ネットワーク（ＬＡＮ）からなる、請求項３３に記載の装置。
【請求項３６】
前記通信ネットワークがインターネットからなる、請求項３３に記載の装置。
【請求項３７】
前記通信ネットワークが公衆交換電話網（ＰＳＴＮ）からなる、請求項３３に記載の装置。
【請求項３８】
前記セキュリティ・エンジンの少なくとも１つが暗号化を実行する、請求項３３に記載の回路。
【請求項３９】
前記セキュリティ・エンジンの少なくとも１つが復号化を実行する、請求項３３に記載の回路。
【請求項４０】
前記セキュリティ・エンジンの少なくとも１つが認証を実行する、請求項３３に記載の回路。
【請求項４１】
前記セキュリティ・エンジンの少なくとも１つがＩＰＳｅｃサービスを実行する、請求項３３に記載の回路。
【請求項４２】
前記ＶＰＮ回路が特定用途向け集積回路（ＡＳＩＣ）にて実現される、請求項３３に記載の回路。
【請求項４３】
前記ＶＰＮ回路がフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）にて実現される、請求項３３に記載の回路。
【請求項４４】
前記ＶＰＮ回路がデジタル・シグナル・プロセッサ（ＤＳＰ）にて実現される、請求項３３に記載の回路。
【請求項４５】
複数のセキュリティ・アソシエーションについてセキュリティ関係のデータを記憶するためのセキュリティ・アソシエーション・データベースであって、各エントリが固有のソケットに対応したセキュリティ・アソシエーション関係のデータを含む前記セキュリティ・アソシエーション・データベース；
前記セキュリティ・アソシエーション・データベースにおいて見いだせないソケットを受け取ると新しいセキュリティ・アソシエーションを開く管理ユニット；
入力パケットに関連したセキュリティ・アソシエーションをそのソケットに従ってサーチし認識する認識ユニット；
前記セキュリティ・アソシエーション・データベースから複数のセキュリティ関係のパラメータを検索し、それらを仮想プライベートネットワーキング（ＶＰＮ）セキュリティ・プロセッサに送ってそれを用いて１以上のセキュリティ処理を行う主プロセッサユニット；及び
記憶されたセキュリティ・アソシエーションのサーチを容易にするためのハッシュ関数と関連のハッシュテーブルとを含んだハッシュユニット
を備えたセキュリティ・アソシエーション・プロセッサ回路。
【請求項４６】
前記セキュリティ・アソシエーション・データベースに記憶された前記セキュリティ・アソシエーションの使用頻度のリストを与える最低使用頻度（ＬＲＵ）のリンクリストをさらに備えた、請求項４５に記載の回路。
【請求項４７】
前記入力パケットと前記１以上のセキュリティ処理の結果を利用して特定のセキュリティモードに従って出力パケットを構成するパケットビルダーをさらに備える、請求項４５に記載の回路。
【請求項４８】
前記ＶＰＮセキュリティ・プロセッサが暗号化を実行する手段を備える、請求項４５に記載の回路。
【請求項４９】
前記ＶＰＮセキュリティ・プロセッサが復号化を実行する手段を備える、請求項４５に記載の回路。
【請求項５０】
前記ＶＰＮセキュリティ・プロセッサが認証を実行する手段を備える、請求項４５に記載の回路。
【請求項５１】
前記ＶＰＮセキュリティ・プロセッサがＩＰＳｅｃサービスを実行する手段を備える、請求項４５に記載の回路。
【請求項５２】
前記回路が特定用途向け集積回路（ＡＳＩＣ）にて実現される、請求項４５に記載の回路。
【請求項５３】
前記回路がフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）にて実現される、請求項４５に記載の回路。
【請求項５４】
前記回路がデジタル・シグナル・プロセッサ（ＤＳＰ）にて実現される、請求項４５に記載の回路。
【請求項５５】
複数のセキュリティ・アソシエーションについてセキュリティ関係のデータを記憶するセキュリティ・アソシエーション・データベースであって、前記セキュリティ・アソシエーション・データベース内の各エントリがソケットに対応している前記セキュリティ・アソシエーション・データベースを設けるステップ；
前記セキュリティ・アソシエーション・データベースにおいて見いだせないソケットを受け取ると新しいセキュリティ・アソシエーションを開くステップ；
パケットに関連したセキュリティ・アソシエーションをそのソケットに従ってサーチし認識するステップ；
前記セキュリティ・アソシエーション・データベースから複数のセキュリティ関係のパラメータを検索するステップ、及び
前記複数のセキュリティ関係のパラメータを仮想プライベートネットワーキング（ＶＰＮ）セキュリティ・プロセッサに送ってそれを用いて１以上のセキュリティ処理を行うステップ
を含むセキュリティ・アソシエーション方法。
【請求項５６】
前記セキュリティ処理の結果に従って前記セキュリティ・アソシエーション・データベースの内容を更新するステップをさらに含む、請求項５５に記載の方法。
【請求項５７】
新しいセキュリティ・アソシエーションを開く前記ステップが、
前記新しいセキュリティ・アソシエーションに対応するセキュリティ関係のデータを前記セキュリティ・アソシエーション・データベースに記憶するステップ；
前記新しいセキュリティ・アソシエーションに関連したソケットについてハッシュ値を計算するステップ；及び
前記ハッシュ値をハッシュテーブルに記憶するステップ
を含む請求項５５に記載の方法。
【請求項５８】
新しいセキュリティ・アソシエーションを開く前記ステップが、前記新しいセキュリティ・アソシエーションに対するポインタを最低使用頻度（ＬＲＵ）のリンクリストに挿入することを含む、請求項５５に記載の方法。
【請求項５９】
前記セキュリティ・アソシエーション・データベースから未使用のセキュリティ・アソシエーションを除去するステップをさらに含む、請求項５５に記載の方法。
【請求項６０】
最大タイムアウトを超えると前記セキュリティ・アソシエーション・データベースから未使用のセキュリティ・アソシエーションを除去するステップをさらに含む、請求項５５に記載の方法。
【請求項６１】
最大バイトカウントを超えると前記セキュリティ・アソシエーション・データベースから未使用のセキュリティ・アソシエーションを除去するステップをさらに含む、請求項５５に記載の方法。
【請求項６２】
セキュリティ・アソシエーションをサーチし認識する前記ステップが、
認識すべきセキュリティ・アソシエーションに関連したソケットについてハッシュ値を計算するステップ；
ハッシュ結果をインデックスとして用いてハッシュテーブル中のハッシュポインタを探すステップ；
前記ハッシュポインタに従って前記セキュリティ・アソシエーション・データベースからデータを検索するステップ；及び
もし受信データがパケットに関連したソケットに一致するならば前記セキュリティ・アソシエーションを認識するステップ
を含む請求項５５に記載の方法。
【請求項６３】
前記ＶＰＮセキュリティ・プロセッサが暗号化を実行する、請求項５５に記載の方法。
【請求項６４】
前記ＶＰＮセキュリティ・プロセッサが復号化を実行する、請求項５５に記載の方法。
【請求項６５】
前記ＶＰＮセキュリティ・プロセッサが認証を実行する、請求項５５に記載の方法。
【請求項６６】
前記ＶＰＮセキュリティ・プロセッサが特定ＩＰＳｅｃのサービスを実行する、請求項５５に記載の方法。
【請求項６７】
リモートネットワークから受信したパケットにアンチ・リプライ機構を適用するステップをさらに含む、請求項５５に記載の方法。
【請求項６８】
リモートネットワークから受信したパケットのシーケンス番号を追跡するステップをさらに含む、請求項５５に記載の方法。
【請求項６９】
先頭と末尾を有する最低使用頻度（ＬＲＵ）の二重リンクリストを作成及び維持するステップをさらに含み、最高使用頻度のセキュリティ・アソシエーションが末尾に記憶され、最低使用頻度のセキュリティ・アソシエーションが先頭に記憶される、請求項５５に記載の方法。
【請求項７０】
前記ＬＲＵリストがいっぱいの場合、先頭のセキュリティ・アソシエーションが削除され、新しいセキュリティ・アソシエーションが末尾に加えられる、請求項６９に記載の方法。
【請求項７１】
前記ソケットが、セキュリティ・パラメータ・インデックス（ＳＰＩ）、リモートＩＰ及びプロトコル構成要素を含む、請求項５５に記載の方法。
【請求項７２】
前記セキュリティ・アソシエーション関係のデータが、以下の値、すなわちＩＰＳｅｃモード、暗号化アルゴリズム、暗号化キーのいずれか一つ又はその組合わせを含む、請求項５５に記載の方法。
【請求項７３】
前記セキュリティ・アソシエーション関係のデータが、以下の値、すなわちＩＰＳｅｃモード、認証アルゴリズム、認証キーのいずれか一つ又はその組合わせを含む、請求項５５に記載の方法。
【請求項７４】
もし前記ＶＰＮセキュリティ・プロセッサからエラーを受け取ったならば前記パケットを拒絶するステップをさらに含む、請求項５５に記載の方法。
【請求項７５】
前記方法が特定用途向け集積回路（ＡＳＩＣ）にて実施される、請求項５５に記載の方法。
【請求項７６】
前記方法がフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）にて実施される、請求項５５に記載の方法。
【請求項７７】
前記方法がデジタル・シグナル・プロセッサ（ＤＳＰ）にて実施される、請求項５５に記載の方法。
【請求項７８】
適切にプログラミングされたコンピュータ上にてプログラムが実行される際に該コンピュータにセキュリティ・アソシエーション機構を付与すべく、コンピュータ読取可能プログラムコード手段を含んだコンピュータ読取可能記憶媒体であって、
各エントリが固有のソケットに対応したセキュリティ・アソシエーション関係のデータを含んだ複数のセキュリティ・アソシエーションに対してセキュリティ関係のデータを記憶するためのセキュリティ・アソシエーション・データベースを前記コンピュータに作成させるコンピュータ読取可能プログラムコード手段；
前記セキュリティ・アソシエーション・データベース中に見つからないソケットを受け取ると前記コンピュータに新しいセキュリティ・アソシエーションを開かせるコンピュータ読取可能プログラムコード手段；
パケットに関連したセキュリティ・アソシエーションをそのソケットに従って前記コンピュータにサーチ及び認識させるコンピュータ読取可能プログラムコード手段；
複数のセキュリティ関係のパラメータを前記セキュリティ・アソシエーション・データベースから前記コンピュータに検索させるコンピュータ読取可能プログラムコード手段；及び
前記コンピュータが前記複数のセキュリティ関係のパラメータを仮想プライベートネットワーキング（ＶＰＮ）セキュリティ・プロセッサに送るようにさせ、それを用いて１以上のセキュリティ処理を実行させるコンピュータ読取可能プログラムコード手段
を含む前記コンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は一般にデータ通信システムに関し、特に、セキュリティ・アソシエーション・データベースと関連のプロセッサとを組み込んだ仮想プライベートネットワーク（ＶＰＮ）を実現するための機構に関する。
【背景技術】
【０００２】
発明の背景
近年、世界はインターネットの爆発的な成長を経験した。ユーザーの数が限りなく増えつつあるように見える間にも、年を追ってはるかに多くのホストが加えらている。インターネットは、リモート・コンピュータ・ログイン、ファイル転送、ワールド・ワイド・ウエブ（ＷＷＷ）ブラウジング、電子メールなどを含めて、異なる技術を用いた通信を可能にする。様々な種類の通信に対処するために、種々のプロトコルが作られてインターネット上で使用されている。例えば、ファイル転送のためのファイル転送プロトコル（ＦＴＰ）、ウエブトラヒックのためのハイパーテキスト・マークアップ言語（ＨＴＭＬ）などがある。一般に、インターネット通信に関係したプロトコルは、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）一式の傘下で分類される。ＴＣＰ／ＩＰ一式は、ＯＳＩ通信スタックの種々のレイヤのプロトコルを含んだプロトコルからなる。
【０００３】
インターネットの重要な特徴は、それがコンピュータと電話回線とインターネット・サービス・プロバイダー（ＩＳＰ）アカウントを持っているほとんど誰でもアクセスできる公衆ネットワークであることである。この幅広い規模での公衆のアクセス可能性のマイナス面は、インターネット上の１以上のホストに対する悪意ある活動を企んでいるハッカーやその他の者の容易なアクセスを許してしまうことである。悪意あるユーザーによる機密情報の盗み取りや重要なファイルの消去などの違法行為は、リモートネットワークのコンピュータになんとか侵入して通信データを引き出すことに成功するハッカーによれば可能である。安全性の要求は、インターネットを介しての確実なトランザクションを可能にするＩＰｖ６における暗号化や認証などのセキュリティ機構を含ませることにより対処すべく、インターネット・アーキテクチャ委員会（ＩＡＢ）によって取り組まれた。
【０００４】
ハッカーの脅威と闘いプライベート・ネットワークを守るために、今日では、会社や組織内のプライベート・ネットワークの入口にファイアウォールを配置するのが一般的である。このファイアウォールは、ユーザー定義のセキュリティ・ポリシーを強化するよう機能する何らかの形態のパケットフィルターを用いる。ファイアウォールは、組織のローカル・ネットワークと全世界的なインターネットとの間の境界に存在するシステムである。このファイアウォールは、外部のネットワークへの情報の漏出を防ぎ、外部から内部のネットワークへの無許可のアクセスを防止するために、すべてのデータ通信のフィルタリングを実施する。
【０００５】
同時に、世界は、無線サービス（すなわち携帯電話、双方向ポケットベル、コードレス装置など）やパーソナルコンピュータ装置（ノート型パソコン、ＰＤＡなど）に対する増大する需要に直面している。これらのパーソナルコンピュータ装置の多くは、無線ネットワーク（例えば携帯電話又は他のブロードバンドの機構）を介してインターネットなどのＷＡＮネットワークとの通信を可能にするために、無線通信回路を組み込んでいる。このようにして、ますます多くのＰＤＡや携帯電話がインターネットに接続されつつあり、よってこれらの装置は安全性についての危険にさらされている。好ましくは、これらの装置は、該装置への無許可のアクセスに対して保護すべく何らかの種類のファイアウォールを使用する。しかしながら、今日たいていのファイアウォールは、ソフトウエアにて実現されており、デスクトップコンピュータ全体のコンピューティング資源を必要とし、携帯電話やＰＤＡなどの携帯式のコンピュータ装置におけるファイアウォールの使用は費用が高くつくか又は実際的でなくなっている。
【０００６】
従って、携帯電話や無線接続されるＰＤＡなどの小型の携帯式電子計算装置に組み込むのに適当な小サイズのハードウエアにて容易に実現し得るファイアウォール又はパケットフィルターが必要とされる。
【特許文献１】
米国特許出願公開第０９／８５１，７６８号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
発明の概要
本発明は、必要なセキュリティ関係のパラメータを与えて暗号化／復号化及び認証を行うための新規かつ有用な仮想プライベートネットワーク（ＶＰＮ）機構を提供する。このＶＰＮ機構は、相対的に低コストでハードウエアにて実現するのに適し、よって、インターネット又は他の広域ネットワークに接続する携帯電話、パーソナル・デジタル・アシスタント（ＰＤＡ）、ラップトップコンピュータなどの携帯式の電子通信装置に本発明を費用上効果的に組み込むことが可能である。
【０００８】
本発明は、インターネットとの接続に適応した携帯電話や無線接続ＰＤＡなどの携帯式のコンピューティング装置においてハードウエア又はソフトウエアベースのファイアウォールと共に使用し得る。本発明のＶＰＮ機構はまた、ソフトウエアにて又はハードウエアとソフトウエアの組合わせにて実現することもできる。
【０００９】
従って、このＶＰＮ機構は、例えばＷＡＮ上での安全な支社との接続性、ＷＡＮ上での安全なリモートアクセス、又はＷＡＮ上での電子商取引の安全を達成するのに使用できる。
【００１０】
ＶＰＮ機構は、セキュリティ・アソシエーション・データベース（ＳＡＤ）及び関連の回路を含み、これは暗号化／復号化及び認証のためのセキュリティ規格のＩＰＳｅｃグループを実現するのに必要なパラメータを与える。データベース中の各セキュリティ・アソシエーション（ＳＡ）のエントリは、ＩＰＳｅｃ規格に従ってＶＰＮパケットを送受信するのに必要な総てのパラメータを含む。
【００１１】
本発明は、入力パケットストリームについてセキュリティ・アソシエーション（ＳＡ）関係の処理を行う。入力パケットストリームは入ってくるパケットと出ていくパケットの両方を含み得ることに留意されたい。一般に、本発明は、ＷＡＮ（すなわちインターネット）とローカルＬＡＮの間に配置される。この場合、ＶＰＮ機構は、ＷＡＮからＬＡＮに送られて入ってくるパケットとＬＡＮからＷＡＮに送られて出て行くパケットの両方に対してフィルタリングするよう機能する。
【００１２】
本発明のＶＰＮ機構は、一方向接続に関係するセキュリティ関係のパラメータを記憶するためにセキュリティ・パラメータ・テーブル（ＳＡＤと称する）を維持するよう機能する。双方向接続では、２つのＳＡを作る必要がある。新しいセキュリティ・アソシエーションがＳＡデータベースに加えられ、一旦作られると、このＳＡに関連した後続のパケットが、特定のＳＡのためにデータベースに記憶されたパラメータに従って処理される。当該パケットとＳＡパラメータに依存して、該パケットが暗号化、復号化、認証又は放棄され得る。もしパケットがＳＡデータベース中に規定されたセキュリティに準拠しているならば、そのパケットは許可されることに留意されたい。
【００１３】
本発明はハードウエアにて実現するのに特に適しているけれども、ソフトウエアにて実現することもできる。ある実施態様では、プロセッサやメモリなどを備えたコンピュータが、本発明のＶＰＮ機構及びセキュリティ・アソシエーション処理を行うソフトウエアを実行すべく機能する。
【課題を解決するための手段】
【００１４】
本発明により、複数のセキュリティ・アソシエーションについてセキュリティ関係のデータを記憶するためのセキュリティ・アソシエーション・データベースであって、各エントリが固有のソケットに対応したセキュリティ・アソシエーション関係のデータを含む前記セキュリティ・アソシエーション・データベース；前記セキュリティ・アソシエーション・データベース中に見いだせないソケットを受け取ると新しいセキュリティ・アソシエーションを開く手段；パケットに関連したセキュリティ・アソシエーションをそのソケットに従ってサーチし認識する手段；複数のセキュリティ関係のパラメータを前記セキュリティ・アソシエーション・データベースから検索する手段；及び前記複数のセキュリティ関係のパラメータを仮想プライベートネットワーキング（ＶＰＮ）のセキュリティ・プロセッサに送ってそれを用いて１以上のセキュリティ処理を実行する手段を備えたセキュリティ・アソシエーション・プロセッサ回路が提供される。
【００１５】
また、本発明により、複数のセキュリティ・アソシエーションについてセキュリティ関係のデータを記憶するセキュリティ・アソシエーション・データベース手段であって、各エントリが固有のソケットに対応するセキュリティ・アソシエーション関係のデータを含む前記セキュリティ・アソシエーション・データベース手段；各々がセキュリティ処理を実行する複数のセキュリティ・エンジン；前記セキュリティ・アソシエーション・データベース手段において見いだせないソケットを受け取ると新しいセキュリティ・アソシエーションを開く手段；入力パケットに関連したセキュリティ・アソシエーションをそのソケットに従ってサーチし認識する手段；前記セキュリティ・アソシエーション・データベース手段から複数のセキュリティ関係のパラメータを検索する手段；前記複数のセキュリティ関係のパラメータを前記セキュリティ・エンジンの少なくとも１つに送ってそれを用いてセキュリティ処理を実行する手段；及び前記入力パケットと前記セキュリティ処理の結果を用いて特定のセキュリティ・モードに従って出力パケットを構成するパケット構築手段を備える仮想プライベートネットワーク（ＶＰＮ）回路が提供される。
【００１６】
また、本発明により、携帯式コンピューティング装置であって、前記装置を通信ネットワークに接続する通信手段；
揮発性及び不揮発性メモリからなり、前記不揮発性メモリがプログラムコードを記憶するメモリ手段；前記メモリ手段と前記通信手段に接続されて前記プログラムコードを実行するプロセッサ；及び仮想プライベートネットワーク（ＶＰＮ）回路を備え、前記仮想プライベートネットワーク（ＶＰＮ）回路が、複数のセキュリティ・アソシエーションについてセキュリティ関係のデータを記憶するセキュリティ・アソシエーション・データベース手段であって、各エントリが固有のソケットに対応するセキュリティ・アソシエーション関係のデータを含む前記セキュリティ・アソシエーション・データベース手段；各々がセキュリティ処理を実行する複数のセキュリティ・エンジン；前記セキュリティ・アソシエーション・データベース手段において見いだせないソケットを受け取ると新しいセキュリティ・アソシエーションを開く手段；入力パケットに関連したセキュリティ・アソシエーションをそのソケットに従ってサーチし認識する手段；前記セキュリティ・アソシエーション・データベース手段から複数のセキュリティ関係のパラメータを検索する手段；前記複数のセキュリティ関係のパラメータを前記セキュリティ・エンジンの少なくとも１つに送ってそれを用いてセキュリティ処理を実行する手段；及び前記入力パケットと前記セキュリティ処理の結果を用いて特定のセキュリティ・モードに従って出力パケットを構成するパケット構築手段を備える前記携帯式コンピューティング装置が提供される。
【００１７】
また、本発明により、複数のセキュリティ・アソシエーションについてセキュリティ関係のデータを記憶するためのセキュリティ・アソシエーション・データベースであって、各エントリが固有のソケットに対応したセキュリティ・アソシエーション関係のデータを含む前記セキュリティ・アソシエーション・データベース；前記セキュリティ・アソシエーション・データベースにおいて見いだせないソケットを受け取ると新しいセキュリティ・アソシエーションを開く管理ユニット；入力パケットに関連したセキュリティ・アソシエーションをそのソケットに従ってサーチし認識する認識ユニット；前記セキュリティ・アソシエーション・データベースから複数のセキュリティ関係のパラメータを検索し、それらを仮想プライベートネットワーキング（ＶＰＮ）セキュリティ・プロセッサに送ってそれを用いて１以上のセキュリティ処理を行う主プロセッサユニット；及び記憶されたセキュリティ・アソシエーションのサーチを容易にするためのハッシュ関数と関連のハッシュテーブルとを含んだハッシュユニットを備えたセキュリティ・アソシエーション・プロセッサ回路が提供される。
【００１８】
また、本発明により、複数のセキュリティ・アソシエーションについてセキュリティ関係のデータを記憶するセキュリティ・アソシエーション・データベースであって、前記セキュリティ・アソシエーション・データベース内の各エントリがソケットに対応している前記セキュリティ・アソシエーション・データベースを設けるステップ；前記セキュリティ・アソシエーション・データベースにおいて見いだせないソケットを受け取ると新しいセキュリティ・アソシエーションを開くステップ；パケットに関連したセキュリティ・アソシエーションをそのソケットに従ってサーチし認識するステップ；前記セキュリティ・アソシエーション・データベースから複数のセキュリティ関係のパラメータを検索するステップ、及び前記複数のセキュリティ関係のパラメータを仮想プライベートネットワーキング（ＶＰＮ）セキュリティ・プロセッサに送ってそれを用いて１以上のセキュリティ処理を行うステップを含むセキュリティ・アソシエーション方法が提供される。
【００１９】
また、本発明により、適切にプログラミングされたコンピュータ上にてプログラムが実行される際に該コンピュータにセキュリティ・アソシエーション機構を付与すべく、コンピュータ読取可能プログラムコード手段を含んだコンピュータ読取可能記憶媒体であって、各エントリが固有のソケットに対応したセキュリティ・アソシエーション関係のデータを含んだ複数のセキュリティ・アソシエーションに対してセキュリティ関係のデータを記憶するためのセキュリティ・アソシエーション・データベースを前記コンピュータに作成させるコンピュータ読取可能プログラムコード手段；前記セキュリティ・アソシエーション・データベース中に見つからないソケットを受け取ると前記コンピュータに新しいセキュリティ・アソシエーションを開かせるコンピュータ読取可能プログラムコード手段；パケットに関連したセキュリティ・アソシエーションをそのソケットに従って前記コンピュータにサーチ及び認識させるコンピュータ読取可能プログラムコード手段；複数のセキュリティ関係のパラメータを前記セキュリティ・アソシエーション・データベースから前記コンピュータに検索させるコンピュータ読取可能プログラムコード手段；及び前記コンピュータが前記複数のセキュリティ関係のパラメータを仮想プライベートネットワーキング（ＶＰＮ）セキュリティ・プロセッサに送るようにさせ、それを用いて１以上のセキュリティ処理を実行させるコンピュータ読取可能プログラムコード手段を含む前記コンピュータ読取可能記憶媒体が提供される。
【００２０】
図面の簡単な説明
ここでは、添付図面に関し、単なる例として本発明を記載する。
図１は、ＷＡＮ又はインターネットの場合における本発明の仮想プライベートネットワーク機構のいくつかの適用例を示すブロック図である。
図２は、本発明の仮想プライベートネットワーク機構と通信するローカル及びリモートのＬＡＮとＷＡＮとダイアルアップのユーザーとを含んだネットワーク例を示すブロック図である。
図３は、本発明の仮想プライベートネットワーク機構をさらに詳細に示したブロック図である。
図４Ａと図４Ｂは、本発明の主ＳＡプロセッサ方法を説明するフローチャートである。
図５は、入力パケットに関連したＳＡを決めるハッシング技術の説明図である。
図６は、本発明のＳＡ認識プロセスのハッシング方法を説明するフローチャートである。
図７は、主ＳＡプロセッサによるチェック中に実行されるアンチ・リプライ・ウインドウ機構の説明図である。
図８は、本発明のアンチ・リプライ・ウインドウ方法を説明するフローチャートである。
図９は、ＳＡ古さを追跡するのに用いられる最低使用頻度のリンクリスト構造の説明図である。
図１０は、入力パケットに関連したＳＡの認識に応じてＬＲＵリンクリストを更新する方法を説明するフローチャートである。
図１１は、本発明のＳＡ管理モジュールの処理を説明するフローチャートである。
図１２は、ＳＡを開くために本発明のＳＡ管理モジュールによって実行される処理を説明するフローチャートである。
図１３は、ＳＡを閉じるために本発明のＳＡ管理モジュールによって実行される処理を説明するフローチャートである。
図１４は、各ＳＡレコードに関連した最終開設セッションポインタの説明図である。
図１５は、各セッションレコードに関連した前及び次のセッションポインタ並びに一致ＳＡポインタの説明図である。
図１６は、単一のセッションと単一のＳＡレコードの間の関係例の説明図である。
図１７は、複数のセッションと単一のＳＡレコードの間の関係例の説明図である。
図１８は、本発明のＶＰＮ機構及び関係するセキュリティ・アソシエーション処理を実行するプラットフォームに対するコンピュータ処理システムの例を示すブロック図である。
【発明を実施するための最良の形態】
【００２１】
発明の詳細な説明
全体を通して用いられる表記
この文書全体を通して以下の表記を用いる。
2005508585.tif 000003
2005508585.tif 000004
2005508585.tif 000005
【００２２】
発明の詳細な説明
本発明は、必要なセキュリティ関係のパラメータを与えて暗号化／復号化及び認証を行うための新規かつ有用な仮想プライベートネットワーク（ＶＰＮ）機構を提供する。このＶＰＮ機構は、相対的に低コストでハードウエアにて実現するのに適し、よって、インターネット又は他の広域ネットワークに接続する携帯電話、パーソナル・デジタル・アシスタント（ＰＤＡ）、ラップトップコンピュータなどの携帯式の電子通信装置に本発明を費用上効果的に組み込むことが可能である。本発明は、インターネットとの接続に適応した携帯電話や無線接続ＰＤＡなどの携帯式のコンピューティング装置においてハードウエア又はソフトウエアベースのファイアウォールと共に使用し得る。本発明のＶＰＮ機構はまた、ソフトウエアにて又はハードウエアとソフトウエアの組合わせにて実現することもできる。
【００２３】
ＶＰＮ機構は、セキュリティ・アソシエーション・データベース（ＳＡＤ）及び関連の回路を含み、これは暗号化／復号化及び認証のためのセキュリティ規格のＩＰＳｅｃグループを実現するのに必要なパラメータを与える。データベース中の各セキュリティ・アソシエーション（ＳＡ）のエントリは、ＩＰＳｅｃ規格に従ってＶＰＮパケットを送受信するのに必要な総てのパラメータを含む。ＳＡはインターネット・キー交換（ＩＫＥ）手順中にて初期に取り決められることに留意されたい。本発明はソフトウエアにて実現し得るけれども、本機構は、セキュリティ処理を多いに加速し得るハードウエアにて実現するのに特に適応している。ＳＡＤ及び関係する処理をハードウエアにて実現すると、すべてのＩＰＳｅｃ暗号化／復号化及び認証処理をハードウエアにて実行することが可能となる。このことはＳＡが既に確立されているＶＰＮセッションに当てはまることに留意されたい。ＳＡを確立していないＶＰＮセッションは非常にまれであるのでシステム性能への影響は無視しうることに留意されたい。
【００２４】
ＩＰＳｅｃは、システムが必要なセキュリティプロトコルを選択し、使用するアルゴリズムを選び、そして提供サービスに必要なキーを使用することを可能にすることによって、ＩＰ層にセキュリティサービスを提供する。認証ヘッダー（ＡＨ）で示される認証プロトコルとカプセル化セキュリティ・ペイロード（ＥＳＰ）で示される結合した暗号化／認証プロトコルとを含めて、セキュリティを提供するために２つのプロトコルがＩＰＳｅｃにおいて使用される。セキュリティ・アソシエーションすなわちＳＡは、ＡＨとＥＳＰ機構の両方において使用される。ＳＡは、その上で運ばれるトラヒックにセキュリティサービスを提供する送り手と受け手間の一方向の関係として定められる。双方向の安全な交換のためには、２つのＳＡが要求されることに留意されたい。
【００２５】
本発明は、入力パケットストリームについてセキュリティ・アソシエーション（ＳＡ）関係の処理を行う。入力パケットストリームは入ってくるパケットと出ていくパケットの両方を含み得ることに留意されたい。一般に、本発明は、ＷＡＮ（すなわちインターネット）とローカルＬＡＮの間に配置される。この場合、ＶＰＮ機構は、ＷＡＮからＬＡＮに送られて入ってくるパケットとＬＡＮからＷＡＮに送られて出て行くパケットの両方に対してフィルタリングするよう機能する。
【００２６】
入力ストリームは、特定の用途に従った任意のタイプの入力データ、例えばフレーム、パケット、バイト、ＰＤＵなどを含み得る。説明のためにのみ、入力データストリームを一連のパケットとして考える。
【００２７】
示されたＶＰＮ機構と関連モジュールは例としてのみ提示されており、本発明の範囲を限定する意図ではないことに留意されたい。電気技術における熟達者ならば、ここに記載の本発明の範囲を逸脱することなく本発明の原理を用いてセキュリティ関連処理とＶＰＮの実現を為すために、ハードウエア、ソフトウエア、又はその両方の組合わせにて他のＶＰＮモジュールを構成することが可能である。
【００２８】
本発明のＶＰＮ機構は、一方向接続に関係するセキュリティ関係のパラメータを記憶するためにセキュリティ・パラメータ・テーブル（セキュリティ・アソシエーション・データベース（ＳＡＤ）と称する）を維持するよう機能する。双方向接続では、２つのＳＡを作る必要がある。新しいセキュリティ・アソシエーションがＳＡデータベースに加えられ、一旦作られると、このＳＡに関連した後続のパケットが、特定のＳＡのためにデータベースに記憶されたパラメータに従って処理される。当該パケットとＳＡパラメータに依存して、該パケットが暗号化、復号化、認証又は放棄され得る。もしパケットがＳＡデータベース中に規定されたセキュリティに準拠しているならば、そのパケットは許可されることに留意されたい。
【００２９】
本発明のＶＰＮ機構は、多くの異なるタイプのシステムにおいて幅広い用途を有する。図１には、ＷＡＮ又はインターネットに関連して、本発明のＶＰＮ機構のいくつかの用途例を示すブロック図が示される。ここに図示された３例の各々に示されているように、一般にＶＰＮ機構は、保護されたネットワークへの無許可アクセスを防ぐために、ファイアウォールと組み合わされて構成及び使用される。
【００３０】
第１の例では、ＶＰＮ機構１４は、ファイアウォール１６と共に用いられ、このファイアウォール１６は、例えばＷＡＮやインターネットであり得るネットワーク１０と有線又は無線通信するパーソナルコンピューティング式装置１２内にて実現される。このパーソナルコンピューティング装置は、パーソナル・デジタル・アシスタント（ＰＤＡ）、例えばパーム・ハンドヘルド(Palm handheld) 、携帯電話、無線受話器(wireless handset)などのような任意の装置でよい。この例では、ＶＰＮ機構と関連のファイアウォールは、ＷＡＮ／インターネットと該装置との間を流れるパケットを双方向にてセキュリティ処理する機能を有する。
【００３１】
第２の例では、ＶＰＮ機構２０は、ファイアウォール２２と組み合わされて用いられ、それによってその両方が、ＷＡＮ又はインターネット１０と有線又は無線通信するケーブル・プラグ・アダプタ１８内にて実現される。通常この装置１８は、ＷＡＮ／インターネットと、ＬＡＮ２６をＷＡＮ／インターネットに接続する機能を有するブロードバンドモデム２４との間に置かれる。ケーブル・プラグ・アダプタ中のＶＰＮ機構は、ＷＡＮ／インターネットからＬＡＮ及びその逆に送られるパケットをセキュリティ処理する機能を有する。ブロードバンドモデムは、ｘＤＳＬ（例えばＡＤＳＬ、ＨＤＳＬ、ＶＤＳＬなど）、衛星、地上ベースのＲＦ、マイクロ波などのようなブロードバンド信号を変調及び復調する。
【００３２】
第３の例では、ＶＰＮ機構３０は、ファイアウォール３２と共に用いられ、その両方が、ＷＡＮ又はインターネットと有線又は無線通信するスタンドアローンのコンピュータ２８、例えばパーソナルコンピュータ（ＰＣ）、ラップトップなどにおいて実現される。ファイアウォールを含んだこのコンピュータは、ＷＡＮ／インターネットと保護すべきＬＡＮ３４との間に配置される。ＶＰＮ機構は、ＷＡＮ／インターネットからＬＡＮ及びその逆に送られるパケットをセキュリティ処理する機能を有する。
【００３３】
図２は、本発明の仮想プライベートネットワーク機構と通信するローカル及びリモートＬＡＮと、ＷＡＮと、ダイアルアップのユーザーとを含んだネットワーク例を示すブロック図である。全体として符号４０で示されたこのネットワーク例のシナリオ(scenario)は、２つのＬＡＮ、すなわち１つのローカルＬＡＮ４２と１つのリモートＬＡＮ５２を含む。３つのコンピュータＡ、Ｂ及びＣは当該ネットワークに接続され、互いに通信する。Ａ、Ｂ及びＣは、ホスト、ステーション、ユーザーなどから成り得る。ＶＰＮゲートウエイ４８とファイアウォール４６は、ローカルＬＡＮの入口に置かれ、ＶＰＮゲートウエイ５６とファイアウォール５８もまた、リモートＬＡＮへの入口に置かれる。これら２つのＬＡＮは、ＷＡＮ／インターネット５０を介して接続される。
【００３４】
ユーザーＣもまた、ダイアルアップ・モデム、ｘＤＳＬモデムアクセスなどの適当な手段を介してＷＡＮ／インターネットに接続され、また、ＶＰＮゲートウエイを組み込んだＶＰＮエンドユーザーから成り得、又は非ＶＰＮ接続であり得る。
【００３５】
本発明に従って、ＶＰＮ機構は、暗号化、復号化、認証などの実行において１以上のセキュリティプロセッサにより必要とされるセキュリティパラメータを作成、記憶及び管理することを含めて、セキュリティ処理を実行する。ＶＰＮ機構は、ＷＡＮ／インターネットからＬＡＮに向かって受信された入来パケットと、ＬＡＮにて始まりＷＡＮ／インターネットに向かって出ていくパケットとの両方を処理する。
【００３６】
動作中、ＬＡＮから出ていくプレーンテキスト(plaintext) が、ＶＰＮにより暗号化され、ＷＡＮ上に送信される。同様に、ＷＡＮから入ってくる暗号テキストは、ＶＰＮによりプレーンテキストに復号化され、ＬＡＮ上に受取人に送られる。本発明に従って、ＶＰＮ機構は、ＩＰＳｅｃ規格を実現するのに必要なセキュリティパラメータを提供する。
【００３７】
本発明は、ＶＰＮ機構を実現すべく共に機能する複数の要素から構成されたＶＰＮモジュールを備える。図３は、本発明のＶＰＮモジュールをさらに詳細に示したブロック図である。全体を符号７０で示したＶＰＮモジュールは、バス・インターフェース７２、バッファ／レジスタ７４、セキュリティ・アソシエーション・プロセッサ（ＳＡＰ）７５、ＶＰＮセキュリティ・プロセッサ８８、及びパケットビルダー(builder) ９２を備える。
【００３８】
セキュリティ・アソシエーション・プロセッサは、ＳＡ認識モジュール７６、ＣＰＵインターフェース７９を組み込んだ主ＳＡ処理モジュール７８、ＳＡ管理モジュール８０、ハッシュテーブル８２、ＳＡ最低使用頻度（ＬＲＵ）回路８４、及びＳＡデータベース８６を備え、これら総ては、ＶＰＮセキュリティ・プロセッサ内のセキュリティ・エンジン及びパケットビルダーとバス上にて通信する。
【００３９】
ＶＰＮセキュリティ・プロセッサは、複数のセキュリティ・エンジン９０を備え、その各々は、特定のセキュリティ関係の操作を実行すべく適応かつ構成されている。例えば、ＶＰＮセキュリティ・プロセッサは、暗号化、復号化、認証、ＤＥＳアルゴリズム、ヘッダー・メッセージ・認証コード（ＨＭＡＣ）などを実行するための個々のセキュリティ・エンジンを備える。
【００４０】
ＶＰＮモジュールは、ホスト装置／ＣＰＵ９６、ヘッダー復号器１００、静的フィルター１０２、動的フィルター１０４及びコンテンツ・サーチ・ユニット１０６とバス１０７上にてバスインターフェースを介して通信する。
【００４１】
この文書全体を通して、ＶＰＮモジュールは通常はＷＡＮとＬＡＮの間に配置され、入ってくるパケットと出ていくパケットの両方に対してセキュリティ処理を実行することに留意されたい。入ってくるパケットとは、ＷＡＮからＬＡＮに向かって受信されたパケットをいい、出ていくパケットとは、ＬＡＮからＷＡＮに向かって受信されたパケットをいう。よって、入力パケットストリームは、入ってくるパケットと出ていくパケットの両方を含み得る。
【００４２】
入力パケットストリーム９８がホスト装置／ＣＰＵにより受信され、その内容がヘッダー復号器に送られる。ヘッダー復号器は、パケットのヘッダー部分を復号（又は構文解析）する機能を有する。ヘッダー復号器は、ＶＰＮモジュールにより使用される関心あるフィールドを抽出するよう機能する。ヘッダー復号器により抽出されたデータは、バス上にて静的フィルター、動的フィルター及びＶＰＮモジュールを含めた他のモジュールに送られる。このデータは、２つのハッシュ値、２つのソケット（各々が動的フィルターとＳＡ処理に対するもの）、及びパケットの種類、例えばＩＣＭＰ、ＡＲＰ、ＴＣＰ、ＵＤＰなどを含む。ＳＡとＶＰＮ処理のソケットは、ＳＰＩ、ＲＩＰ及び当該プロトコルを含む。動的フィルターのソケットは、ソースと宛先のＩＰアドレス、ソースと宛先のポート、及びプロトコルを含む。場合によっては、ヘッダー復号器は外部モジュールとして構成することもできるし、ＶＰＮモジュールに一体化することもできることに留意されたい。
【００４３】
動作中、ＶＰＮモジュールは、ＬＲＵとハッシュリンクリストの接続を確立すること、どのＳＡに入力パケットが対応するかを決めること、パケットの成功した処理の後にＳＡの状態を更新すること、及び接続テーブルから未使用のＳＡを除去することを含めて、新しいＳＡを開くよう機能する。ＳＡ認識とポインタ管理を容易かつ迅速に実行できるように、ＳＡデータベースが実現され構成されることに留意されたい。
【００４４】
主ＳＡ処理モジュールは、セキュリティ・アソシエーション・プロセッサの主処理ブロックとして機能する。これは新しいＳＡを開き、既存のＳＡを処理し、ＳＡの状態を追跡する。これはまた、入ってくるパケットに対するアンチ・リプライ・ウインドウを更新すること、出ていくパケットについてシーケンス番号をインクリメントすること／入ってくるパケットにつき更新すること、シーケンス番号のオーバーフローを検出することを含めて、アンチ・リプライ機構を実現する回路を備える。
【００４５】
主ＳＡ処理モジュールはまた、１組のフラグを維持すること、シーケンス番号付け、寿命変数をデクリメントすること、各パケットの処理後にステータスレジスタを更新することを含めて、ＳＡに関連したステータスを更新する。主ＳＡプロセッサは、各受信パケットに対して循環式にて作用する。このサイクルは、ＳＡデータベースからＳＡパラメータを検索すること、パケットを処理すること、すなわち暗号化、復号化など、及び一旦処理が完了したならＳＡデータベースを更新することを含む。パケットのセキュリティ処理がエラーとならず且つそのパケットが拒絶されない場合にのみＳＡデータベースが更新されることに留意されたい。
【００４６】
主ＳＡ処理モジュールはまた、パケットごとに各ＳＡにつき転送されるバイト数をカウントし、ＳＡの寿命がオーバーフローすると通知を行う。オーバーフローが検出されると、マネージャーがＳＡを閉じる（すなわち廃棄する）。
【００４７】
ＳＡ認識モジュールは、ソケットを受け取り、ＳＡデータベース中にて該ソケットに一致するＳＡをサーチする機能を有する。このソケットは、ＳＡを識別するのに用いられ、セキュリティ・パラメータ・インデックス（ＳＰＩ）、リモートＩＰ（ＲＩＰ）、及びセキュリティ・プロトコル識別子を含む。ＳＰＩは、特定のＳＡを参照するＩＫＥプロセス後にＣＰＵによって発生される３２ビットのランダム数を含む。ＳＰＩは、ＡＨ及びＥＳＰヘッダー内に運ばれ、受信ステーションがＳＡ（その下で受信パケットが処理される）を選択することを可能にする。リモートＩＰは、ＳＡの宛先終点のＩＰアドレスであり、これはエンドユーザー若しくはＶＰＮゲートウェイ又はＶＰＮ能力を有する任意の装置であり得る。セキュリティ・プロトコル識別子は、例えばＳＡがＡＨであるかＥＳＰ  ＳＡであるかを示す。
【００４８】
ＳＡ管理モジュールは、ＳＡデータベースを維持するよう機能する。ＳＡデータベースは、最低使用頻度（ＬＲＵ）の二重リンクリストを用いて管理され、ハッシュテーブルを用いてアクセスされる。加えて、マネージャーは、入ってくるパケットフローと出ていくパケットフローにつき新しいＳＡをデータベースに挿入する機能を有する。マネージャーはまた、一致パケットに関連したＳＡをＭＲＵにし、要求に応じていくつかの未使用のＳＡをＣＰＵに利用可能にし、ＳＡを削除する際に１以上のＳＡにつき時間の観点から寿命をチェックし、ＬＲＵとハッシュリンクリストを更新し、削除されるべきＳＡに関連したセッションを動的フィルターに知らせる機能を有する。
【００４９】
ＳＡデータベースは、ＶＰＮモジュールの種々の処理モジュールによる使用のために、ＳＡ状態と現在のステータスを含めて、ソケット及び他のＳＡ関係のデータを記憶する機能を有する。ハッシュテーブルは、ＳＡの認識を加速するのに用いられる。これらの構成要素は、後にさらに詳細に説明する。
【００５０】
主ＳＡ処理
以下、主ＳＡ処理をさらに詳細に説明する。図４Ａ及び４Ｂは、本発明の主ＳＡプロセッサ方法を説明するフローチャートである。ＶＰＮモジュールとセキュリティ・アソシエーション・プロセッサは、３つの段階にてパケットデータを処理するように構成される。その第１段階では、パケットに関連するＳＡデータがＳＡデータベースから読み出され、次に第２段階ではそのデータが処理され、第３段階では、処理の結果がＳＡデータベースの元の場所に書き込まれる(written back)。処理段階の間、１以上のセキュリティ手順が当該パケットにつき実行され、処理に従ってＳＡ状態が追跡される。
【００５１】
まず、受信パケットが入ってくるパケットか出ていくパケットかがチェックされる（ステップ１１０）。もしそれが出ていくパケットであるならば、ＳＡが動的フィルターによって見つけられたか否かがチェックされる（ステップ１５４）。通常、動的フィルターは、受信パケットのソケットに一致するソケットを有するセッションをそのデータベースにおいてサーチする。各セッションに対し、対応するＳＡが動的フィルターにおけるセッションデータベース中に記憶される。一致セッションが見つかれば、ＳＡが読み出されてＳＡプロセッサに入力される。動的フィルターの動作については、米国出願第０９／８５１，７６８号、２００１年５月９日提出、標題「セッション追跡を用いた動的パケットフィルター(Dynamic Packet Filter Using Session Tracking)」にさらに詳しく記載されており、これは同様に譲渡されており、その全体をここに援用する。
【００５２】
もしパケットに対してＳＡが見つからなかったなら（ステップ１５４）、そのパケットはＳＡなしでは処理できないし、ステータスレジスタは更新される（ステップ１４６）ので、当該パケットは拒絶される（ステップ１６８）。この場合、ＣＰＵは、新しいＳＡを開き、ＳＡに対するポインタを動的フィルター内のセッションデータベースに記憶するよう作用する。次に、当該パケットは再び入れられるが、今度は動的フィルターがセッションを認識し、ＳＡをＳＡプロセッサに送る。
【００５３】
もしＳＡが見つかったなら、１以上のセキュリティ・パラメータがＳＡデータベースから検索され、パケット最大転送ユニット（ＭＴＵ）と上位フラグがＶＰＮセキュリティ・プロセッサ内の１以上のセキュリティ・エンジンに転送される（ステップ１５６）。ＭＴＵは、分割なしに転送するのが許可されたパケットの最大サイズを表す。
【００５４】
暗号化／復号化（ＥＤ）とヘッダーメッセージ認証コード（ＨＭＡＣ）は、パケットデータに対してセキュリティ機能を実行するセキュリティ・エンジンの例である。ＥＤセキュリティ・エンジンに転送されるデータは、ＩＰＳｅｃモード、特定の暗号化アルゴリズム（例えばＤＥＳ、３ＤＥＳなど）、ＣＢＣ若しくはＥＣＢ、パディング(padding) ストリームタイプ（例えばゼロ又はインクリメント）、３ＤＥＳにおける各ＤＥＳのクラス、暗号化初期ベクトル（ＩＶ）（ＣＢＣモードに対してのみ）、暗号化キー、及びヘッダー復号器からの暗号化／復号化命令を含む。
【００５５】
ＨＭＡＣセキュリティ・エンジンに転送されるデータは、ＩＰＳｅｃモード、認証アルゴリズム（例えばＳＨＡ１、ＭＤ５など）、認証ヘッダーサイズ（例えば９６又は１６０ビット）、及び認証キーを含む。
【００５６】
次に、ソケットが、パケットとして組み立てるためにパケット・ビルダー（ＰＢ）に送られる（ステップ１５８）。ＰＢに送られるデータは、特定のＩＰＳｅｃモード、リモートＩＰ（もしトンネルモードが実現されるならばゲートウェイ）、ＳＰＩ、１だけインクリメントされたシーケンス番号、及び経路ＭＴＵを含む。
【００５７】
次に、シーケンス番号と寿命のフィールドがＳＡデータベースから読み出される（ステップ１６０）。そして、シーケンス番号と寿命の両方のチェックが実行される（ステップ１６２）。シーケンス番号に対しては、オーバーフローが発生したか否かがチェックされる。シーケンス番号のオーバーフローはハード又はソフトであり得る。もしハードオーバーフローが発生したならば、ＳＡは閉じられ（ステップ１６４）、パケットは拒絶され（ステップ１６８）、よってステータスレジスタが更新される（ステップ１４６）。もしソフトオーバーフローが発生したならば、下位フラグ中のソフトシーケンス（ＳＥＱ）ビットを修正することによってＣＰＵに知らされ、処理はステップ１２０に続く。もしシーケンス番号のオーバフローが発生しなければ、制御はステップ１２０に進む。
【００５８】
寿命に対しては、寿命のオーバーフローが発生したか否かがチェックされる。主ＳＡ処理はバイトによって寿命をチェックするのみであることに留意されたい。時間による寿命のチェックは、ＳＡ管理によって実行される。受信パケットのサイズが寿命の現在値から減じられ、その結果のオーバーフローがチェックされる。ゼロより小さい結果はオーバーフローを示す。オーバーフローはハード又はソフトであり得る。もしハードオーバーフローが発生したならば、ＳＡが閉じられ（ステップ１６４）、パケットは拒絶され（ステップ１６８）、よってステータスレジスタが更新される（ステップ１４６）。もしソフトオーバーフローが発生したならば、下位フラグ中のソフト寿命（ＳＬＴ）ビットを修正することによりＣＰＵに知らされ、処理はステップ１２０を続ける。もし寿命のオーバーフローが発生しなければ、制御はステップ１２０に進む。
【００５９】
もし受信パケットが入ってくるパケットであるならば（ステップ１１０）、後に詳細に説明するように、そのパケットについてセキュリティ・アソシエーション認識が実行される（ステップ１１２）。ＳＡは、ＳＰＩ、リモートＩＰ／ゲートウェイＩＰ及びプロトコルのハッシング(hashing) によって識別される。認識の結果は、主ＳＡプロセッサに戻される。もし認識処理中に一致するＳＡエントリが見つからなければ、パケットは拒絶される（ＳＡがまだ存在しないような場合）。もし認識処理で一致するＳＡを見つければ、パケットは復号化される。動的フィルターは、そのパケットを第１パケットとして認識し、新しいセッションを開き、そのセッションをＳＡに接続する。
【００６０】
もしＩＰＳｅｃモードが失敗したならば（ステップ１１４）、パケットは拒絶され（ステップ１５２）、ステータスレジスタが更新される（ステップ１４６）。もし失敗しなかったならば、上位フラグがセキュリティ・エンジン、例えばＥＤ、ＨＭＡＣ及びパケットビルダーに送られる（ステップ１１６）。パケットビルダーは、ＬＡＮ上に送出するためにプレーンテキスト・バージョンのパケットを組み立てる機能を有する。
【００６１】
ＥＤセキュリティ・エンジンに転送されるデータは、ＩＰＳｅｃモード、暗号化アルゴリズム（例えばＤＥＳ、３ＤＥＳなど）、ＣＢＣ若しくはＥＣＢ、パディングストリームタイプ、３ＤＥＳの場合における各ＤＥＳのクラス、暗号化キー、及びヘッダー復号器からの暗号化／復号化命令（すなわち暗号化又は復号化のどちらが実行されるべきか）を含む。
【００６２】
ＨＭＡＣセキュリティ・エンジンに転送されるデータは、ＩＰＳｅｃモード、認証アルゴリズム（例えばＳＨＡ１、ＭＤ５など）、認証ヘッダー及び認証キーを含む。
【００６３】
もしエラーがセキュリティ・エンジンのどれかによって発生されたならば（例えばＥＤからもしパディングが失敗したなら、又はＨＭＡＣからもし認証が失敗したなら等）、パケットは拒絶される（ステップ１１４）。
【００６４】
次に、後に詳細に説明するように、アンチ・リプライ・ウインドウ方法が実行される（ステップ１１８）。もし受信したシーケンス番号がアンチ・リプライ・ウインドウ（ＡＲＷ）を超えているならば、受信シーケンス番号を調整すべく更新されシフトされる。
【００６５】
もしＳＡがＡＨであるならば（ステップ１２０）、ＡＨキーが認証セキュリティ・エンジンに転送され（ステップ１４８）、制御はステップ１４０に進む。ＳＡは、（１）ＡＨオンリー・シングルＳＡ、又は（２）ＥＳＰとＡＨ  ＳＡバンドルの一部であるＡＨ  ＳＡであり得る。後者の場合、本方法の第１パス中、ポインタはバンドルのＥＳＰ部分を指示し、第２パス中、バンドルのＡＨ部分に設定される。
【００６６】
もしＳＡがＡＨ  ＳＡ以外であるならば、パケットが入ってきているか否か（ステップ１２２）及びＣＢＣか否か（ステップ１２４）がチェックされる。もしそうならば、ＩＶがＥＤセキュリティ・エンジンに送られる（ステップ１２６）。もしパケットが入ってくるものではないか又はＣＢＣでないならば、ＥＳＰキーがＥＤセキュリティ・エンジンに転送される（ステップ１２８）。
【００６７】
もし受信パケットがＥＳＰ／ＡＵパケット（認証を有するＥＳＰ）であるならば（ステップ１３０）、ＡＨキーが認証セキュリティ・エンジンに転送される（ステップ１４８）。もしそうでなく、かつパケットがＥＳＰでなく（ステップ１３２）、入ってくるパケットである（ステップ１３６）ならば、ＥＳＰ及びＡＨタイプのパケットに対して、ＡＨ  ＳＡ部分が指示され（ステップ１３７）、続いて制御はステップ１１８に進む。もしパケットが出ていくものならば、制御はステップ１６２に進む。もし受信パケットがＥＳＰ／ＡＵパケットでなく（ステップ１３０）、ＥＳＰパケット（ステップ１３２）、出ていくパケット（ステップ１３４）及びＣＢＣパケット（ステップ１３８）ならば、暗号化ＩＶがＳＡデータベースに記憶される（ステップ１３９）。
【００６８】
もしパケットが入ってくるパケットであるならば（ステップ１３４）、ＡＲＷがＳＡデータベースに記憶され（ステップ１４０）、更新されたシーケンス番号がＳＡデータベースに記憶され（ステップ１４２）、下位フラグが更新され（ステップ１４４）、そしてステータスレジスタが更新される（ステップ１４６）。ステータスレジスタの更新に続いて、主ＳＡ処理の完了をＣＰＵ又は他のホスト装置に知らせて、割り込みが発生し得る。
【００６９】
セキュリティ・アソシエーション認識
以下、ＳＡ認識プロセスを詳細に説明する。図５は、入力パケットに関連したＳＡを決めるハッシング技術の説明図である。各々のＳＡは固有のソケットに対応する。ＳＡは、受信パケットのソケットと、ＳＡデータベースに記憶され前に開かれたＳＡに関連するソケットとを比較することにより識別される。ＳＡの認識を速めるため、ＳＡレコードへのハッシュポインタをＳＡデータベースに記憶し、かつ受信ソケットに対応したＳＡの素早い検索が可能なハッシュテーブルが用いられる。
【００７０】
新しいＳＡはＳＡデータベースに記憶され、ＶＰＮモジュール、ＳＡプロセッサ又はＣＰＵによってソケットのハッシュが計算される。ハッシュポインタは、ハッシュ結果により示されたハッシュテーブル１７０（図５）中の場所に記憶される。もし１より多いＳＡがその場所に記憶されるならば、該ＳＡはリンクリストに加えられる。最初にハッシュテーブル中の各エントリがヌルに初期化されることに留意されたい。
【００７１】
パケットを受信すると、ソケット１７２が、ハッシュ計算器１７６に入力される。ハッシュ計算器１７６は、ハッシュ結果１７８を発生し出力する機能を有する。ハッシュ結果は、ハッシュテーブル１７０に対するインデックスとして用いられる。ハッシュテーブル１７０は、複数のエントリ１８０を含み、その各々がハッシュポインタを含む。ハッシュポインタは、ＳＡデータベースにおけるＳＡ１８２のリンクリストを指示する。データベース中の各ＳＡレコードは、前のポインタ１８６と次のポインタ１８４を含み、よって二重リンクリストを実現している。もしソケットのヒット(hit) が生じたならば、リンクリスト中の各ＳＡは、受信パケットのソケットとの一致が見つかるまでチェックされなければならない。
【００７２】
好ましくは、ハッシュテーブル全体においてハッシュ結果のできるだけ均一な広がりを作るべく、ハッシュ関数が選択される。ハッシュ関数は、ＸＯＲ関数やＣＲＣなどの任意の適当な関数とし得る。一実施態様では、次式に従ってハッシュ結果を計算する際にランダムベクトル１７４を用いることによって、単純なＸＯＲハッシュ関数を越えて性能を改善し得る。
【数１】
2005508585.tif 000006
よって、入力ソケットデータは、ランダムベクトルと入力ソケットデータとを用いて生成される。
【００７３】
図６は、本発明のＳＡ認識プロセスにおけるハッシング方法を説明したフローチャートである。最初のステップは、ハッシュポインタ（一般にはヘッダー復号器により与えられる）、受信パケットのソケット、及びシーケンス番号をヘッダー復号器から得ることである（ステップ１９０）。ハッシュ値はハッシュ計算機１７６により生成される。別法として、ヘッダー復号器又は他のエンティティ(entity)がハッシュポインタを計算し得る。ハッシュテーブル上で検索が実行され、該テーブルからハッシュポインタが読み出される（ステップ１９１）。もしハッシュポインタがヌルに等しいならば（ステップ１９２）、パケットは拒絶される（ステップ２００）。
【００７４】
もしハッシュポインタがヌルでないならば、ハッシュポインタに関連したリンクリスト中の最初のＳＡと該ＳＡに対応したソケットを読み出すために、このハッシュポインタが用いられる（ステップ１９４）。ＳＡのソケットは、受信パケットのソケットと比較される（ステップ１９６）。もしこれらのソケットが一致するならば（ステップ１９７）、ＳＡ一致が見つけられ（ステップ２０２）、主ＳＡプロセスに報告される。もしこれらのソケットが一致しないならば（ステップ１９７）、次のハッシュポインタがリンクリストから読み出され（ステップ１９８）、最後のハッシュポインタがヌルを示すか又はＳＡ一致が見つけられるまで、該方法がステップ１９２から繰り返される。
【００７５】
ただ１つのＳＡがリンクリストに記憶されている場合においてさえ、ソケットの完全な比較が常に実施されることに留意されたい。また、本発明の範囲は、どのエンティティすなわちＳＡプロセッサ又はＣＰＵがリンクリストを更新し維持するかによっては制限されないことに留意されたい。ハッシュテーブルの深さは、任意の所望値とし得る。しかしながら、一般には、この深さは、同時に維持されるＳＡ数に従って設定される。好ましくは、ハッシュエントリ数は、ＳＡ数の１又は２倍である。というのは、ソケットの完全比較では時間がかかるゆえに、多くの複製を持つのは望ましくないからである。
【００７６】
セキュリティ・アソシエーション・データベース
以下、ＳＡデータベース８６（図３）を詳細に説明する。上述のように、ＳＡデータベースは、複数のセキュリティ・アソシエーションに対してセキュリティ関係のデータを記憶する機能を有する。ＳＡデータベースの大きさは、運用及びシステム要求に依存して変わり得る。データベースの各レコードを作るフィールドを次の表１に掲げる。
表１：ＳＡデータベースのレコードフィールド
2005508585.tif 000007
【００７７】
フィールド１及び１１は、それぞれ上位フラグと下位フラグを記憶し、これらは後に詳細に説明する複数のステータスビットを含む。経路ＭＴＵは、フィールド２に記憶され、すべてのヘッダーを含めてパケットに対して許容される最大サイズを表す。フィールド３中のリモートＩＰ／ゲートウェイＩＰとフィールド４中のＳＰＩは、セキュリティ・プロトコル識別子と共にＳＡソケットを形成する。次及び前のＳＡポインタ（フィールド５及び６）は、同一のセキュリティ・ポリシー・データベース（ＳＰＤ）にすべて関連しているＳＡの二重リンクリストを構成するのに用いられる。フィールド７及び８は、上述のハッシュリンクリスト内の次及び前のハッシュポインタを記憶する。ハッシュリンクリストは、パケットのＳＡ認識中に用いられる。フィールド９及び１０は、古さ(staleness) の観点からＳＡを順序付けるのに用いられるＬＲＵリンクリスト中の次及び前のＬＲＵポインタを記憶する。ＬＲＵリンクリストの動作は、後に詳細に説明する。
【００７８】
このＳＡを有する最終開設セッションへのポインタは、フィールド１２に記憶される。ＳＡに対する現在のシーケンス番号は、フィールド１３に記憶される。フィールド１４は、リプライパケットを拒絶するためにＡＲＷ機構において用いられる１２８ビットのアンチ・リプライ・ウインドウを記憶する。フィールド１５は、６４ビットの暗号化初期値（ＩＶ）を記憶し、フィールド１６は、１９２ビットの暗号化キーを記憶し、フィールド１７は、１６０ビットの認証キー／ハッシュド(Hashed)キー入力（ＨＫＩ）を記憶する。フィールド１８は、１６０ビットのハッシュドキー出力（ＨＫＯ）値を記憶する。フィールド１９は、いつ特定のＳＡを閉じるかを決めるのに用いられるＳＡのソフト／ハード寿命を記憶する。
【００７９】
ＨＫＩ及びＨＫＯ値は、認証プロセス中に生成される中間の結果である。これらは、後続のパケットの受信の際に処理時間を節約すべく両方ともテーブルに記憶される。ＨＫＩ及びＨＫＯ値の両方とも、認証キーのハッシュと所定のパッド値から計算される。ＨＫＩ値は、認証キーの代わりにＳＡデータベースに記憶される。というのは、一旦それが計算されると、もはや元のキーは不要だからである。別法として、認証キー、ＨＫＩ及びＨＫＯの値が、別々にデータベースに記憶され得る。ＳＡデータベースは、ＨＭＡＣセキュリティ・エンジンからのＳＡの最初の使用の際にＨＫＩとＨＫＯを受け取る。
【００８０】
上述のように、ＳＡデータベースは、ステータス関係の情報をＣＰＵに送りかつＣＰＵから送るために上位フラグと下位フラグを含む。上位フラグのステータスは、次の表２に示すように複数のビットを含む。
表２：上位フラグのビット
2005508585.tif 000008
2005508585.tif 000009
2005508585.tif 000010
【００８１】
上位フラグのすべては、ＣＰＵにより設定され、ＳＡプロセッサにより読み出される。ＥＭＰフラグもまた、ＳＡプロセッサにより設定し得る。ＳＡプロセッサは、ＳＡが空、すなわち無効のときにこのビットを１に設定する。ＣＰＵは、ＳＡが有効なときにこのビットをゼロに設定する。ＩＰＭビットは、特定のＩＰＳｅｃモード、すなわちＥＳＰ、ＥＳＰ／ＡＵ、ＡＵオンリー、トランスポート、トンネルなどを示す。最後の３つのＩＰＳｅｃモードは、一定のファイル等を暗号化するための別のセキュリティ規格（例えばセキュリティ・ソケット・レイヤ（ＳＳＬ））を実現するのにオプションで用いることができる。これらのモードでは、ＶＰＮエンジンは、パケット構築機能なしにて単独で用いられる。よって、ＶＰＮエンジンは、ＤＥＳ／３ＤＥＳ暗号化／復号化エンジンモード（ＩＰＭ＝１１００）、ＳＨＡ−１／ＭＤ−５認証エンジンモード（ＩＰＭ＝１０１１）又は暗号化と認証の両方のエンジンモード（ＩＰＭ＝１１０１）を実現するソフトウエア加速器として機能する。
【００８２】
ＤＥＴビットは、ＤＥＳのタイプ、すなわちＤＥＳ又は３ＤＥＳのどちらか一方を示す。ＤＥＭビットは、ＤＥＳモード、すなわちＥＣＢ又はＣＢＣのどちらか一方を示す。ＰＡＭビットは、ゼロ又はインクリメント値のどちらかを有するＥＳＰパディングを示す。３ＤＥビットは、特定の３ＤＥＳクラスを示す。ＡＨＴビットは、ＡＨ認証のタイプ、すなわちＭＤ５又はＳＨＡ１のどちらか一方を示す。ＡＨＳビットは、ＡＨのサイズ、すなわち９６又は１６０ビットのどちらか一方を示し、ＡＨビットは、ＳＡがＥＳＰ又はＡＨのどちらかであるかを示し、ＤＩＲビットは、ＳＡが出ていくパケット用か入ってくるパケット用のどちらであるかを示す。
【００８３】
ＳＡデータベースもまた、ステータス関係の情報をＣＰＵに送りかつＣＰＵから送るために下位フラグステータスレジスタを含む。下位フラグステータスは、次の表３に示すような複数のビットを含む。
表３：下位フラグビット
2005508585.tif 000011
2005508585.tif 000012
【００８４】
ＡＲＷビットは、もし存在すればアンチ・リプライ・ウインドウのサイズを示す。ＨＬＤビットは、特定のＳＡを削除しないことを示す。このフラグは、ＳＡエントリがＳＡプロセッサ・ハードウエアによって削除されることを防ぐ。ＭＡＮビットは、ＳＡのための手動キーイング(keying)が存在するか否かを示す。もし手動キーイングが構成されるならば、0xFFFFFFFFに到達するとシーケンスはロールオーバー(roll over) する。というのは、手動キーイングは、ＳＡプロセッサによって削除されることが許可されていないからである。ＳＡＬビットは、ＳＡ寿命が時間又はデータ、すなわち秒又は６４バイト単位のどちらによって測定されるかを示す。ＳＯＨビットは、寿命がソフト又はハード寿命のどちらであるかを示す。ＳＬＴビットは、ソフトオーバーフローがソフト寿命内にて発生したことを示す。ＳＥＱビットは、ソフトオーバーフローがＳＡシーケンス中にて発生したことを示す。ＡＲＷ、ＨＬＤ、ＭＡＮ、ＳＡＬ及びＳＯＨフラグは、ＣＰＵにより設定され、ＳＡプロセッサにより読み出されることに留意されたい。ＳＬＴ及びＳＥＱフラグは、ＳＡプロセッサにより設定され、ＣＰＵにより読み出される。もしＨＬＤ又はＭＡＮフラグが設定されないならば、シーケンスオーバーフロー（0xFFFFFFFF) に際してＳＡが削除される。
【００８５】
アンチ・リプライ・ウインドウ機構
本発明によると、主ＳＡ処理は、リプライ・パケットを拒絶するアンチ・リプライ機構を実現する。この機構は、パケット中のシーケンス番号を追跡し、許容される最小値より小さいシーケンス番号を有するパケットを拒絶するよう機能する。図７は、主ＳＡプロセッサによるチェック中に実行されるアンチ・リプライ・ウインドウ機構を示す図である。
【００８６】
ｘ軸はＳＡシーケンス番号を表し、最小シーケンス番号は0x00000000であり、最大シーケンス番号は0xFFFFFFFFである。アンチ・リプライ・ウインドウ（ＡＲＷ）（セグメント２１２）と称されるウインドウが作成され、これは許容されるシーケンス番号を表す。ウインドウより下のシーケンス番号を有する受信パケットは拒絶される（セグメント２１０）。加えて、１シーケンス番号当たり１つだけのパケットが許可される。よって、ＡＲＷは、その中に存在するシーケンス番号の各々に対して１ビットを含む。パケットが受信される際に、対応するシーケンス番号のビットが設定される。既に設定されたシーケンス番号のビットを有する受信パケットは、拒絶される。
【００８７】
図８は、本発明のアンチ・リプライ・ウインドウ方法を説明するフローチャートである。まず、シーケンス番号が受信パケットから読み出される（ステップ２８０）。アンチ・リプライ・ウインドウの現在の位置が、ＳＡデータベースから検索される（ステップ２８２）。もしシーケンス番号がウインドウ内にあれば（ステップ２８４）、そのシーケンス番号を有するパケットが既に受信されたか否かがチェックされる（ステップ２８６）。もしそうならば、そのパケットは拒絶される（ステップ２９０）。もしそうでないならば、ＡＲＷ機構はそのパケットを許可する。
【００８８】
もし受信パケット中のシーケンス番号がウインドウの外側にあるならば（ステップ２８４）、それがＡＲＷより下か上かがチェックされる（ステップ２８８）。もしウインドウよりも下ならば、当該パケットは拒絶される。もし上ならば、当該パケットは許可され、ＡＲＷがその新しいシーケンス番号まで調節される、すなわち右にシフトされる。
【００８９】
ＳＡ管理モジュール
本発明によると、ＳＡ管理モジュールは、最低使用頻度の順番にてＳＡを記憶すべく二重リンクリストを維持する機能を有する。ＳＡ管理モジュールは、ＳＡデータベースの維持及び制御に関係したいくつかの機能を実行する。ＳＡ管理モジュールは、ＣＰＵからの命令に応じて、ＳＡデータベースにおいてＳＡのＳＡエンティティの有効性（すなわち寿命）をチェックするよう機能する。寿命をチェックする命令が受信されると、ＳＡデータベース中の各レコードの寿命フィールドが調査される。ソフト寿命オーバーフローがＣＰＵに報告され、ハード寿命オーバーフローの場合には、対応するＳＡが削除される。古くなり且つ何らかの理由で正常に閉じられなかったＳＡを廃棄する(flush) ために、寿命のチェックがＳＡについて行われる。例えば、ＳＡは、もしそれがセキュリティ規則に違反したパケットに対応するならば、時間切れ(age out) し得る。
【００９０】
ＳＡが削除されるとき、ＳＡ管理モジュールは、ＬＲＵとハッシュポインタの関係を維持することによってＳＡバンドルを維持及び更新し、かつ、このＳＡを利用するセッションが閉じられることを保証するために対応するどのセッションを閉じるべきかを動的フィルターモジュールに知らせる機能を有する。
【００９１】
ＳＡ管理モジュールまたは、リクエストに応じて未使用（すなわち空で利用可能な）ＳＡをＣＰＵに与える機能を有する。動作中、ＣＰＵは１以上の新しいＳＡをリクエストし、ＳＡ管理モジュールはその１以上のインデックスをサーチしてＣＰＵに戻す。ＳＡは、最低使用頻度のＳＡバンドル（すなわち送受両方向用のＳＡ）とその接続された関連のセッション総てとを切り離すことにより、ＬＲＵリストから得られる。同様に、ＳＡ管理モジュールはまた、もはや使用されていないＳＡを潔く切り離す。ＳＡ管理モジュールはまた、新しいＳＡを開き、その際、ハッシュテーブル中のＬＲＵポインタとハッシュポインタ及びＳＡデータベースが更新される。
【００９２】
図９は、ＳＡ使用を追跡するのに用いられる最低使用頻度（ＬＲＵ）のリンクリスト構造の説明図である。セキュリティ・アソシエーション・エントリは、ＳＡが開かれるとき、ＣＰＵを介してＳＡデータベースに入れられる。ＣＰＵは、ＳＡ管理モジュールからＳＡインデックスを要求する。次及び前のＳＡバンドルポインタは、互いに関係するＳＡを接続するのに用いられる。ＳＡをデータベースに挿入するために、先頭ＳＡのインデックスを用いて新しいＳＡをＬＲＵに挿入する。加えて、ＣＰＵが、新しいＳＡのソケットに対するハッシュ値を計算し、そのハッシュ値を記録するレジスタに該ハッシュ値を書き込む。
【００９３】
ここに提示された実施態様例では、ホスト又は外部ＣＰＵが、ＩＫＥプロセス中にＳＡのセキュリティ関係のパラメータ、例えばキー割り当て、ＨＭＡＣパディングの長さなどを構成する。ＳＡの実際の挿入は、ＣＰＵ又はホストのコマンドに応じてＳＡ管理によって実行される。
【００９４】
ＳＡが認識（すなわちアクセス）され、かつ対応するパケットがＳＡプロセッサによって拒絶されない度に、ＳＡは、最高使用頻度のＳＡを表すＬＲＵリンクリストの末尾に配置される。全体として符号２２０で示された二重リンクリストは複数のＳＡ２２６を含み、その各々が次のポインタ２２２と前のポインタ２２４を有する。ＬＲＵリンクリストの末尾のＳＡは、ｔａｉｌ＿ＬＲＵ＿ｉｎｄｅｘ＿ｒｅｇレジスタ２２８の内容によって指示される。このレジスタにより指示されたＳＡは、最高使用頻度のＳＡを表す。ＬＲＵリンクリストの先頭のＳＡは、ｈｅａｄ＿ＬＲＵ＿ｉｎｄｅｘ＿ｒｅｇレジスタ２２７の内容によって指示される。
【００９５】
ＳＡデータベースがいっぱいの場合において、新しいＳＡが加えられたときにどのＳＡを除去するかを決めるために、ＬＲＵリンクリストが用いられる。この場合、最低使用頻度のＳＡが閉じられ、新しいＳＡを記憶するのにそのスペースが用いられる。
【００９６】
図１０は、入力パケットに関連したＳＡを認識した際にＬＲＵリンクリストを更新する方法を示すフローチャートである。一致ＳＡがアクセスされかつ対応するパケットが許可される度に、この更新方法が実行される。図９に関し、特に前のＳＡ、一致ＳＡ及び次のＳＡとラベル付けされたＳＡに関し、一致ＳＡがリスト中のその位置から末尾に移されて最高使用頻度のＳＡとなる。一致ＳＡは、（１）前のＳＡの次のＬＲＵポインタを一致ＳＡの次のＬＲＵポインタに設定すること、及び（２）次のＳＡの前のＬＲＵポインタを一致ＳＡの前のＬＲＵポインタに設定することによって除去される（ステップ２３０）。
【００９７】
次に、一致ＳＡは、（１）一致ＳＡの次のＬＲＵポインタをヌルに設定すること、（２）一致ＳＡの前のＬＲＵポインタをｔａｉｌ＿ＬＲＵ＿ｉｎｄｅｘ＿ｒｅｇレジスタの内容に設定すること、及び（３）ｔａｉｌ＿ＬＲＵ＿ｉｎｄｅｘ＿ｒｅｇレジスタを一致ＳＡのインデックスに設定することによって、最高使用頻度のものとされる（ステップ２３２）。
【００９８】
図１１は、本発明のＳＡ管理モジュールの処理を示すフローチャートである。ＳＡ管理処理はアイドルステップ２４１にて始まり、事象に依存して次のステップに移動する。ＣＰＵからの「未使用を得る(get unused)」命令の場合、最低使用頻度のＳＡのステータスがフェッチされる（ステップ２４２）。もしＳＡが使用中であるならば（ステップ２４６）、そのＳＡと関連する総ての接続されたセッションとが閉じられる（ステップ２４４）。もしＳＡが使用中でないならば、ｈｅａｄ＿ＬＲＵ＿ｉｎｄｅｘ＿ｒｅｇは、最低使用頻度のＳＡの次のＬＲＵポインタに設定され、次の（前のＬＲＵポインタ）(next(previous LRU pointer))はヌルに設定される（ステップ２４８）。次に、除去されたＳＡの次のＬＲＵポインタと前のＬＲＵポインタが、ヌルに設定され、それにより、最低使用頻度のＳＡをＬＲＵリンクリストから除去する（ステップ２５０）。ｕｎｕｓｅｄ＿ｓａ変数は、ちょうど切り離されたＳＡに設定され、従って、ＣＰＵに知らせるフラグは、「１」に設定される（ステップ２５２）。次に、プロセスはアイドルに戻る（ステップ２５４）。
【００９９】
ＣＰＵからの「タイムアウトをチェック(check timeout) 」コマンドは、ＳＡマネージャにアクティブな総てのＳＡの寿命のチェックを開始させる。ｉｎｄｅｘ＿ｃｏｕｎｔｅｒがインクリメントされ（ステップ２６０）、ＳＡのステータスがフェッチされる（すなわちｉｎｄｅｘ＿ｃｏｕｎｔｅｒ）（ステップ２６２）。もしＳＡが現在使用中であるならば（ステップ２６４）、ＳＡ寿命がＳＡデータベースからフェッチされる（ステップ３７２）。もし時間又はバイト数のどちらかで測定して寿命がオーバーフローしていた（すなわちＳＡが時間切れしていた）ならば（ステップ２７２）、ＳＡと関連の総ての接続されたセッションとが閉じられる（ステップ２７４）。
【０１００】
もしＳＡが使用されていないか又はＳＡが時間切れしていないならば、ｉｎｄｅｘ＿ｃｏｕｎｔｅｒが最後のインデックスよりも小さいか否かがチェックされる（ステップ２６６）。もし肯ならば、ｉｎｄｅｘ＿ｃｏｕｎｔｅｒがインクリメントされ（ステップ２６８）、本方法はステップ２６２を続ける。もし否ならば、寿命チェックが完了したことが、主ＳＡ処理モジュールを介してＣＰＵに知らされ（ステップ２５８）、本方法はアイドルに戻る（ステップ２５４）。
【０１０１】
図１２は、ＳＡを開くために本発明のＳＡ管理モジュールによって実行される処理を示すフローチャートである。ＳＡが開かれるとき、それはＬＲＵリンクリストの末尾に配置される（ステップ３３０）。ＳＡはまた、ハッシュリンクリスト中の適当な場所にも配置される（ステップ３３２）。次に、本方法はアイドル状態に戻る（ステップ３３４）。
【０１０２】
図１３は、ＳＡを閉じるために本発明のＳＡ管理モジュールによって実行される処理を示すフローチャートである。もしＳＡが閉じることが可能であるか又はシーケンス番号のオーバーフローが生じたならば（ステップ３４０）、ＬＲＵポインタの変更なしにＳＡが消去される（ステップ３４２）。次にこのＳＡに関連した総てのセッションが閉じられる（ステップ３４４）。次に本方法はアイドル状態に戻る（ステップ３５９）。
【０１０３】
もしＳＡを閉じることができず、シーケンス番号のオーバーフローも生ぜず（ステップ３４０）、かつ閉鎖のリクエストが寿命のチェックに起因していたならば（ステップ３４６）、ＳＡは閉じられず（ステップ３５８）、本方法はアイドル状態に戻る（ステップ３５９）。もし閉鎖リクエストが寿命のチェックに起因したものでなかったならば、最低使用頻度のリストにより指示された次のＳＡがフェッチされる（ステップ３４８）。もしこのＳＡを閉じることができないならば（ステップ３５０）、本方法はステップ３４８を続け、本プロセスは、閉じられ得るＳＡが見つかるまで繰り返される。もし閉じられ得るＳＡが見つかれば、そのＳＡはＬＲＵとして構成される（ステップ３５２）。次に、ＳＡはＬＲＵポインタを除いて消去され（ステップ３５４）、このＳＡに関連した総てのセッションが消去され（ステップ３５６）、そして本方法はアイドル状態に戻る（ステップ３５９）。
【０１０４】
上述したように、ＳＡ管理モジュールもまた、ＳＡデータベース中のポインタであって、ＳＡ上にて用いられる最後の開設セッションを指示する該ポインタを維持する機能を有する。図１４は、各ＳＡレコードに関連した最後の開設セッションのポインタの説明図である。各ＳＡエントリは、異なる最後の開設セッションを指示するポインタを含み得る。セッションが開設される度にこのポインタが更新される。最後の開設セッションは常に関連セッションリストの先頭にあることに留意されたい。
【０１０５】
動的フィルターにおけるセッションデータベースは、ＬＲＵ、ハッシュ、ファミリ及びＳＡポインタを含めていくつかのポインタを記憶する。ＳＡポインタは、このセッションが使用するＳＡを指示する機能を有する。図１５は、各セッションレコードに関連した、前のポインタ及び次のポインタ並びに一致ＳＡポインタの説明図である。セッションデータベース中のセッションレコードは、そのセッションのために使用される一致ＳＡに対するポインタ、並びに同じＳＡを使用するセッションに対する前及び次のファミリポインタを含む。セッションエントリ中の次及び前のポインタは、ＳＡが閉じられ且つ該ＳＡに関連した総てのセッションが同様に閉じられるとき使用される。ＳＡエントリ中の最後の開設ポインタは、そのＳＡを使用する１以上のセッションのリストを指示するのに用いられる。ＳＡが閉じられるとき、関連のセッションも閉じられなければならない。ＳＡが閉じられるとき、送受両方のＳＡが削除され、接続された総てのセッションも、もしそれらがファミリの一部でないならば削除されることに留意されたい。この場合には、それらは廃棄される候補として記録される（すなわちセッション・データベース・フラグ中のＰＳＶビットがセットされる）。
【０１０６】
図１６は、単一のセッションと単一のＳＡレコードの間の関係例を示す図である。この例では、ただ１つのセッションエントリのみがＳＡを使用する。よって、前及び次のポインタはヌルを指示する。ＳＡエントリは、そのＳＡの最後の開設セッションに対するポインタを含む。
【０１０７】
図１７は、複数のセッションと単一のＳＡレコードの間の関係例を示す図である。この例では、３つのセッションが同じＳＡを使用する。よって、３つのセッション総ての一致ＳＡポインタが同じＳＡを指示する。各セッションの次及び前のポインタは、３つのセッションを含む二重リンクリストを形成するように構成される。このリンクリストは、同じＳＡを使用するセッションを論理的に接続する。ＳＡエントリは、当該ＳＡの最後の開設セッションに対するポインタを含み、このポインタは該リンクリストの先頭を指示する。
【０１０８】
コンピュータ実施態様
別の実施態様では、コンピュータは、本発明のＶＰＮ機構又はその一部（例えばセキュリティ・アソシエーション・プロセッサ）を実施するソフトウエアを実行する機能を有する。図１８は、本発明のＶＰＮ機構を実行するプラットフォームに対するコンピュータ処理システムの例を示すブロック図である。本システムは、ＰＤＡ、携帯電話、ケーブルモデム、ブロードバンドモデム、ラップトップ、ＰＣ、ネットワーク送信若しくは交換装置、ネットワーク装置、又は他の有線若しくは無線通信装置などの通信装置内に組み込むことができる。この通信装置は、ハードウエア及び／又はソフトウエアの任意の組合わせを用いて構成し得る。
【０１０９】
全体的に符号３００で示されたコンピュータシステムは、プロセッサ３０４を含み、このプロセッサ３０４は、マイクロコントローラ、マイクロプロセッサ、マイクロコンピュータ、ＡＳＩＣコア、ＦＰＧＡコア、中央処理装置（ＣＰＵ）又はデジタル信号プロセッサ（ＤＳＰ）として実現し得る。本システムは、スタティック読出し専用メモリ（ＲＯＭ）３０２とダイナミック主メモリ（例えばＲＡＭ）３０８とをさらに備え、これらはすべてプロセッサと通信する。プロセッサはまた、これもコンピュータシステム中に含まれるいくつかの周辺装置とバス３２６を介して通信する。
【０１１０】
この装置は、インターネットなどのＷＡＮ３１８にＷＡＮインターフェース３１６を介して接続される。別法として、ネットワーク３１８は、光イーサネットベースのＭＡＮや場所によっては他の種類のＭＡＮを含み得る。このインターフェースは、１以上のＷＡＮ通信チャンネルへの有線及び／又は無線インターフェースを備える。通信Ｉ／Ｏ処理３１４は、ＷＡＮインターフェースとプロセッサの間でデータを転送する。コンピュータシステムは、ネットワーク・インターフェース・カード（ＮＩＣ）３１０を介してＬＡＮ３１２にも接続される。このネットワーク・インターフェース・カード３１０は、使用されている特定のネットワークプロトコル、例えば種々の電線若しくは光学的なイーサネット、トークン・リングなどのうちの一つを取り扱う。動作中、コンピュータシステムは、上述のようにＷＡＮからＬＡＮに入ってくるパケット、及びＬＡＮからＷＡＮに出ていくパケットを動的にフィルタリングする機能を有する。
【０１１１】
オプションのユーザーインターフェース３２０は、ユーザー入力に応答し、フィードバックと他のステータス情報とを与える。ホストインターフェース３２２は、ホストコンピュータ装置３２４を本システムに接続する。ホストは、システムの動作を構成、制御及び維持する。システムはまた、アプリケーションプログラムとデータを記憶するための磁気記憶装置３０６を備える。システムは、コンピュータ読取可能な記憶媒体を備え、この記憶媒体としては、限定するものではないが磁気記憶装置、光記憶装置、ＣＤ−ＲＯＭドライブ、ＺＩＰドライブ、ＤＶＤドライブ、ＤＡＴカセット、半導体揮発性若しくは不揮発性メモリ、生体記憶装置、又は他の任意のメモリ記憶装置を含めて、任意の適当なメモリ手段が挙げられる。
【０１１２】
本発明のＶＰＮ機構やその一部（例えばセキュリティ・アソシエーション・プロセッサ）の機能を実現するよう動作するソフトウエアは、ディスクドライブ装置内の磁気ディスクや他の揮発性若しくは不揮発性メモリなどのコンピュータ読取可能な媒体上に存在し得る。別法として、コンピュータ読取可能な媒体として、フロッピーディスク、フラッシュメモリカード、ＥＰＲＯＭ、ＥＥＲＯＭ、ＥＥＰＲＯＭベースのメモリ、バブルメモリ記憶装置、ＲＯＭ記憶装置などが挙げられる。本発明のＶＰＮ機構やその一部（例えばセキュリティ・アソシエーション・プロセッサ）を実行するソフトウエアはまた、スタティック若しくはダイナミック主メモリ内、又はコンピュータシステムのプロセッサ内のファームウエア内（すなわち、マイクロコントローラ、マイクロプロセッサ、マイクロコンピュータ、ＤＳＰなどの内部メモリ内）に全部又は一部が存在し得る。
【０１１３】
別の実施態様では、本発明の方法は、集積回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、チップセット若しくは特定用途向け集積回路（ＡＳＩＣ）、ＤＳＰ回路、無線機器、及び他の通信システム製品において、本発明の実施に適用し得る。
【０１１４】
添付の特許請求の範囲は、本発明の思想及び範囲内にある本発明の特徴及び利点のすべてに及ぶものである。当該技術の習熟者ならば多くの変更を容易に行えるであろうから、本発明はここに記載の限定された数の実施態様に制限されるものではない。よって、適切なあらゆる変形物、修正物及び均等物が本発明の思想及び範囲内にあることが理解されよう。
【図面の簡単な説明】
【０１１５】
【図１】ＷＡＮ又はインターネットの場合における本発明の仮想プライベートネットワーク機構のいくつかの適用例を示すブロック図である。
【図２】本発明の仮想プライベートネットワーク機構と通信するローカル及びリモートのＬＡＮとＷＡＮとダイアルアップのユーザーとを含んだネットワーク例を示すブロック図である。
【図３】本発明の仮想プライベートネットワーク機構をさらに詳細に示したブロック図である。
【図４Ａ】本発明の主ＳＡプロセッサ方法を説明するフローチャートである。
【図４Ｂ】本発明の主ＳＡプロセッサ方法を説明するフローチャートである。
【図５】入力パケットに関連したＳＡを決めるハッシング技術の説明図である。
【図６】本発明のＳＡ認識プロセスのハッシング方法を説明するフローチャートである。
【図７】主ＳＡプロセッサによるチェック中に実行されるアンチ・リプライ・ウインドウ機構の説明図である。
【図８】本発明のアンチ・リプライ・ウインドウ方法を説明するフローチャートである。
【図９】ＳＡ古さを追跡するのに用いられる最低使用頻度のリンクリスト構造の説明図である。
【図１０】入力パケットに関連したＳＡの認識に応じてＬＲＵリンクリストを更新する方法を説明するフローチャートである。
【図１１】本発明のＳＡ管理モジュールの処理を説明するフローチャートである。
【図１２】ＳＡを開くために本発明のＳＡ管理モジュールによって実行される処理を説明するフローチャートである。
【図１３】ＳＡを閉じるために本発明のＳＡ管理モジュールによって実行される処理を説明するフローチャートである。
【図１４】各ＳＡレコードに関連した最終開設セッションポインタの説明図である。
【図１５】各セッションレコードに関連した前及び次のセッションポインタ並びに一致ＳＡポインタの説明図である。
【図１６】単一のセッションと単一のＳＡレコードの間の関係例の説明図である。
【図１７】複数のセッションと単一のＳＡレコードの間の関係例の説明図である。
【図１８】本発明のＶＰＮ機構及び関係するセキュリティ・アソシエーション処理を実行するプラットフォームに対するコンピュータ処理システムの例を示すブロック図である。
【符号の説明】
【０１１６】
１０    ＷＡＮ／インターネット
１２    ＰＤＡ
１４、２０、３０    ＶＰＮ機構
１６、２２、３２    ファイアウォール
１８    ケーブル・プラグ・アダプタ
２４    ブロードバンドモデム
２６、３４    ＬＡＮ
２８    コンピュータ
４２    ローカルＬＡＮ
４６、５８    ファイアウォール
４８、５６    ＶＰＮゲートウェイ
５０    ＷＡＮ／インターネット
５２    リモートＬＡＮ
７０    ＶＰＮモジュール
７２    バス・インターフェース
７４    バッファ／レジスタ
７５    セキュリティ・アソシエーション・プロセッサ（ＳＡＰ）
７６    ＳＡ認識モジュール
７８    主ＳＡ処理モジュール
７９    ＣＰＵインターフェース
８０    ＳＡ管理モジュール
８２    ハッシュテーブル
８４    ＳＡ最低使用頻度（ＬＲＵ）回路
８６    ＳＡデータベース
８８    ＶＰＮセキュリティ・プロセッサ
９０    セキュリティ・エンジン
９２    パケット・ビルダー
９６    ホスト装置／ＣＰＵ
９８    入力パケットストリーム
１００    ヘッダー復号器
１０２    静的フィルター
１０４    動的フィルター
１０６    コンテンツ・サーチ・ユニット
【図１】
2005508585.tif 000013
【図２】
2005508585.tif 000014
【図３】
2005508585.tif 000015
【図４Ａ】
2005508585.tif 000016
【図４Ｂ】
2005508585.tif 000017
【図５】
2005508585.tif 000018
【図６】
2005508585.tif 000019
【図７】
2005508585.tif 000020
【図８】
2005508585.tif 000021
【図９】
2005508585.tif 000022
【図１０】
2005508585.tif 000023
【図１１】
2005508585.tif 000024
【図１２】
2005508585.tif 000025
【図１３】
2005508585.tif 000026
【図１４】
2005508585.tif 000027
【図１５】
2005508585.tif 000028
【図１６】
2005508585.tif 000029
【図１７】
2005508585.tif 000030
【図１８】
2005508585.tif 000031
【国際公開パンフレット】
2005508585.tif 000032
2005508585.tif 000033
2005508585.tif 000034
2005508585.tif 000035
2005508585.tif 000036
2005508585.tif 000037
2005508585.tif 000038
2005508585.tif 000039
2005508585.tif 000040
2005508585.tif 000041
2005508585.tif 000042
2005508585.tif 000043
2005508585.tif 000044
2005508585.tif 000045
2005508585.tif 000046
2005508585.tif 000047
2005508585.tif 000048
2005508585.tif 000049
2005508585.tif 000050
2005508585.tif 000051
2005508585.tif 000052
2005508585.tif 000053
2005508585.tif 000054
2005508585.tif 000055
2005508585.tif 000056
2005508585.tif 000057
2005508585.tif 000058
2005508585.tif 000059
2005508585.tif 000060
2005508585.tif 000061
2005508585.tif 000062
2005508585.tif 000063
2005508585.tif 000064
2005508585.tif 000065
2005508585.tif 000066
2005508585.tif 000067
2005508585.tif 000068
2005508585.tif 000069
2005508585.tif 000070
2005508585.tif 000071
2005508585.tif 000072
2005508585.tif 000073
2005508585.tif 000074
2005508585.tif 000075
2005508585.tif 000076
2005508585.tif 000077
2005508585.tif 000078
2005508585.tif 000079
2005508585.tif 000080
2005508585.tif 000081
2005508585.tif 000082
2005508585.tif 000083
2005508585.tif 000084
2005508585.tif 000085
2005508585.tif 000086
2005508585.tif 000087
2005508585.tif 000088
2005508585.tif 000089
【国際公開パンフレット（コレクトバージョン）】
2005508585.tif 000090
【国際調査報告】
2005508585.tif 000091
2005508585.tif 000092
2005508585.tif 000093