(57)【特許請求の範囲】
【請求項１】
パケット交換ネットワークにおけるパケットフィルタリングを実行するダイナミックフィルタのためのキャッシュであって、
前記ダイナミックフィルタはルールベースに関連する少なくともひとつのルールベースバージョン番号を有するルールベースを含み、
前記キャッシュは記憶媒体を備え、
前記記憶媒体は、キャッシュキー、キャッシュ動作、およびキャッシュバージョン番号を有するキャッシュエントリの記憶を保持し、
前記キャッシュエントリはさらにどのルールベースから前記セッションエントリが導出されるかを示すルールベース標識を含むことを特徴とするキャッシュ。
【請求項２】
パケット識別データを有する情報のパケットを搬送するネットワーク上のピアレベルアクセス制御を提供するための方法であって、前記方法は、キャッシュキー、キャッシュバージョン番号、キャッシュ動作およびルールベース標識を有するキャッシュエントリを記憶するキャッシュを有するダイナミックフィルタを使用し、前記キャッシュエントリは少なくともひとつのルールから導出され少なくともひとつのルールベースのルールキーおよびルール動作を有し、前記方法は、
ａ．パケットを受け取るステップと、
ｂ．前記受領パケットの前記識別データに対応するキャッシュキーを有するキャッシュエントリを識別するためにキャッシュを探索するステップと、
ｃ．対応するキャッシュエントリが識別される場合およびキャッシュエントリのルールベース標識が前記キャッシュエントリはそれに関連するルールベースバージョン番号を有するルールベースから導出されたことを示す場合は、
ｉ．前記キャッシュエントリバージョン番号が、前記キャッシュエントリが導出された前記ルールベースの前記バージョン番号に対応するか否かを決定するステップと、
を含むことを特徴とする方法。
【請求項３】
請求項２に記載の方法において、ステップｃはさらに、
ｉｉ．前記キャッシュエントリバージョン番号が前記キャッシュエントリが導出された前記ルールベースの前記バージョン番号に一致する場合は、前記一致するキャッシュエントリのキャッシュ動作を実行するステップを含むことを特徴とする方法。
【請求項４】
請求項２に記載の方法において、ステップｃはさらに、
ｉｉ．前記キャッシュエントリバージョン番号が前記キャッシュエントリが導出された前記ルールベースの前記バージョン番号と一致しない場合は、前記フィルタの少なくともひとつのルールベースを探索し前記受け取られたパケットの前記識別データに一致する対応するルールを確認するステップと、
ｉｉｉ．対応するルールが確認される場合は、前記対応するルールの前記動作を実行するステップと、
ｉｖ．前記対応するルールから導出されるキャッシュエントリを記憶するステップとを含み、前記キャッシュエントリは、前記受領パケットの前記識別データと、前記対応するルールによって規定されステップｉｉｉにおいて前記パケットについて実行される前記動作と、前記キャッシュエントリが導出された前記対応するルールの前記ルールベースを示すルールベース標識とを含むことを特徴とする方法。
【請求項５】
請求項４に記載の方法において、さらに、
ｖ．ルールベースバージョン番号が前記対応するルールの前記ルールベースと対応づけられる場合は、前記ルールベースバージョン番号をステップｉｖの前記キャッシュエントリの前記キャッシュエントリバージョン番号として記憶するステップを含むことを特徴とする方法。
【請求項６】
請求項２に記載の方法において、さらに、
ｉｉ．前記ルールベース標識によって示されるように、前記キャッシュエントリバージョン番号が前記キャッシュエントリが導出された前記ルールの前記ルールベースの前記ルールベースバージョン番号と一致しない場合は、前記対応するキャッシュエントリを前記キャッシュから排出するステップを含むことを特徴とする方法。
【請求項７】
請求項２に記載の方法において、一致するキャッシュエントリが確認される場合および前記ルールベース標識が前記キャッシュエントリは広域ルールベースのルールから導出されたことを示す場合は、さらに、
ｉ．前記キャッシュエントリバージョン番号が前記キャッシュエントリが導出された前記ルールの前記広域ルールベースの前記広域ルールベースバージョン番号と一致するか否かを決定するステップと、
ｉｉ．前記キャッシュエントリバージョン番号が前記広域ルールベースバージョン番号と一致しない場合は、すべてのキャッシュエントリを前記キャッシュから削除するステップと、
を含むことを特徴とする方法。
【請求項８】
請求項７に記載の方法において、さらに、
ｉｉｉ．前記キャッシュエントリバージョン番号が前記広域ルールベースバージョン番号と一致する場合は、前記キャッシュエントリの前記キャッシュ動作を実行するステップを含むことを特徴とする方法。
【請求項９】
パケット交換ネットワークにおけるパケットフィルタリングを実行するダイナミックフィルタのためのキャッシュであって、前記ダイナミックフィルタはルールベース内にルールを含み、前記キャッシュはキャッシュエントリを有し、前記キャッシュは、
ａ．識別データを有するパケットを受け取るための手段と、
ｂ．前記キャッシュを探索し前記受領パケットの前記識別データと一致するキャッシュエントリを確認するための手段と、
ｃ．前記キャッシュが導出された前記ルールベースの前記バージョン番号と一致するバージョン番号を有する、ステップｂの対応するキャッシュエントリによって規定されるように、前記受領パケットに関する動作を実行するための手段と、
ｄ．対応するキャッシュエントリが全く存在しない場合または前記キャッシュエントリのバージョン番号が前記ルールが導出されたルールベースのバージョン番号と一致しない場合は、前記受領パケットの識別データと一致するルールによって規定されるように、前記受領パケットに関する動作を実行するための手段と、
を備えることを特徴とするキャッシュ。
【請求項１０】
請求項９に記載のキャッシュにおいて、さらに、
ｅ．前記エントリが導出された前記ルールベースの前記バージョン番号と一致しないバージョン番号を有するキャッシュエントリを排出するための手段を備えることを特徴とするキャッシュ。
【請求項１１】
請求項９に記載のキャッシュにおいて、さらに前記キャッシュは、
ｅ．キャッシュエントリを記憶するための手段を備え、前記キャッシュエントリは、前記受領パケットの前記識別データと、ステップｄにおいて前記パケットについて実行される前記動作と、どのルールベースから前記キャッシュエントリが導出されたかを示すルールベース標識とを含むことを特徴とするキャッシュ。
【請求項１２】
請求項１１に記載のキャッシュにおいて、さらに、
ｆ．ルールベースバージョン番号が前記キャッシュが導出された前記ルールの前記ルールベースと対応づけられる場合は、ステップｅの前記キャッシュエントリの前記キャッシュエントリバージョン番号としてルールベースバージョン番号を記憶するための手段を備えることを特徴とするキャッシュ。
【請求項１３】
その上に符号化されたコンピュータプログラムを有するコンピュータ読み取り可能媒体であって、
ａ．コンピュータネットワーク全域において識別データを有するパケットを受け取るための第一プログラムセグメントを有する前記媒体の第一部分と、
ｂ．キャッシュを探索し、前記受領パケットの前記識別データに対応するキャッシュキーを有するキャッシュエントリを確認するための第二プログラムセグメントを有する前記媒体の第二部分と、
ｃ．前記第二部分によって確認される対応するキャッシュエントリのキャッシュエントリバージョン番号が前記キャッシュが導出された前記ルールベースの前記バージョン番号と一致するか否かを決定するための第三プログラムセグメントを有する前記媒体の第三部分と、
を含むことを特徴とするコンピュータ読み取り可能媒体。
【請求項１４】
請求項１３に記載のキャッシュにおいて、さらに、
ｄ．前記受領パケットの識別データに対応するキャッシュキーを有し、また前記キャッシュが導出された前記ルールベースの前記バージョン番号と一致するキャッシュエントリバージョン番号を有する対応するキャッシュエントリの動作を実行するための第四プログラムセグメントを有する前記媒体の第四部分を含むことを特徴とするキャッシュ。
【請求項１５】
請求項１４に記載のキャッシュにおいて、さらに、
ｅ．対応するキャッシュエントリが全く確認されなかった場合、または対応するキャッシュエントリの前記キャッシュエントリバージョン番号が前記キャッシュエントリが導出された前記ルールベースの前記バージョン番号と一致しない場合は、フィルタルールベースを探索し前記受領パケットの前記識別データに対応するルールキーを有するルールを識別するための第五プログラムセグメントを有する前記媒体の第五部分を含むことを特徴とするキャッシュ。
【請求項１６】
請求項１５に記載のキャッシュにおいて、さらに、
ｆ．前記媒体の前記第五部分によって識別される対応するルールの前記動作を実行するための第六プログラムセグメントを有する前記媒体の第六部分を含むことを特徴とするキャッシュ。
【請求項１７】
請求項１６に記載のキャッシュにおいて、さらに、
ｇ．前記受領パケットの前記識別データと、対応するルールによって規定され前記媒体の前記第六部分によって実行される前記動作と、前記キャッシュエントリが導出された対応するルールの前記ルールベースを示すルールベース標識とを含むキャッシュエントリを記憶するための第七プログラムセグメントを有する前記媒体の第七部分を含むことを特徴とするキャッシュ。
【請求項１８】
請求項１７に記載のキャッシュにおいて、さらに、
ｈ．前記キャッシュエントリバージョン番号が前記キャッシュエントリが導出された前記ルールベースの前記バージョン番号と一致しない場合は、キャッシュエントリを前記キャッシュから削除するための第八プログラムセグメントを有する前記媒体の第八部分を含むことを特徴とするキャッシュ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報システムセキュリティに関し、特に、局所ルールベースが頻繁に変化するダイナミックフィルターに関し、さらに、特に、このようなダイナミックフィルタにおける冗長なルールベース探索を効果的に削除するセッションルールキャッシュに関する。
【０００２】
【従来の技術】
二つの自動情報システム（ＡＩＳ）間において情報の流れを統制する通常の情報システムセキュリティ手段は、フィルタである。ここで、術語「ＡＩＳ」は、コンピュータ、コンピュータのネットワーク、コンピュータのインターネットワーク、または何らかのその部分集合を指す。ネットワークアドレスを有するコンピュータは、「ホスト」として知られている。ホストは、固定または一時ネットワークアドレスのいずれを有するコンピュータであってもよい。情報の流れを統制するために、それ自体のルール（局所ルールベースとして知られる）を有するホストは、「ピア」と呼ばれる。ある一定のＡＩＳ上の情報は、「パケット」と呼ばれる離散的な大きさを取る量子の状態で流れる。ある一定のＡＩＳ上の各パケットは、ヘッダおよびペイロードを有する。ヘッダは、パケット識別データを含む。パケット識別データの一例は回路識別番号であり、回路識別番号は回路交換ネットワークを流れるパケット中に存在する。パケット識別データの別の例は、ネットワーク発信元アドレスおよび宛先アドレス、発信元ポートおよび宛先ポート、ならびにプロトコル識別子よりなる５タプルである。この５タプルは、無接続パケット交換ネットワークを流れるパケット中に存在する。
【０００３】
本出願と関連する米国特許出願であって、発明の名称が「ネットワーク上のピアレベルアクセス制御を提供するためのシステムおよび方法」によれば、ピアが認証されるとき、ダイナミックフィルタはピアの局所ルールベースをロードして記憶し、また、ピアが認証を喪失するときは、そのルールベースを削除する（または排出する）。フィルタは、ピアと他のＡＩＳとの間に位置し、その結果、ピアとＡＩＳとの間を流れるパケットはフィルタを通過する。フィルタはパケットを受け取り、次いでパケットに一致するルール（通常、広域および局所ルールベース）を求めてルールベースを探索する。ルールは、キーおよび動作を含む。キーは、各パケットのパケット識別データに基づいて、そのルールがどのパケットに適用されるかを識別する。動作は、通常、パス（ＰＡＳＳ）およびドロップ（ＤＲＯＰ）のいずれかであり、パケットがその予定宛先に送られるか、または削除されるかを意味する。一致するルールが見出されるときは、一致するルールによって規定される動作が、パケットに適用される。ダイナミックフィルタの新規な特徴のひとつは、ダイナミックフィルタの局所ルールベースの頻繁な変更を調整する機能である。
【０００４】
通常の設定におけるフィルタを、図１に示す。企業ネットワーク１０は、ピアＡ１１、Ｂ１２、およびＣ１３に、インタネット１４に対するアクセスを提供することを意図するが、インタネットホストＧ１５、Ｈ１６、およびＩ１７の企業秘密および資産情報を含むことがある企業ネットワーク１０に対するアクセスを限定することを意図することがある。企業ネットワーク１０は、フィルタ１８を企業ネットワーク１０とインタネット１４とのインタフェースに設置する。
【０００５】
フィルタは、パケットを受け取ることによってパケットに基づいて作動し、そのパケットの識別データと一致するキーを有するルールを探索する。受信されたパケット識別データがルールのキーと一致するときは、ルールの動作がそのパケット上において実行される。
【０００６】
ひとつの実施形態においては、フィルタは、５−タプルの形式、すなわちパケットのヘッダに類似の構造の形式をとるルール、および動作を記憶し、動作はパスまたはドロップのいずれかである。５−タプルは、使用上の利点があり、それは５−タプルを使用することによって、フィルタが、発信元および宛先に基づくのみでなくパケットが関係する特定の処理に基づいてパケットを識別することができるためである。その理由は、幾つかの公知の処理（ファイル転送プロトコル、電子メール、など）は、フィルタが認識することができる標準ポート番号を使用するためである。したがって、この実施形態によれば、フィルタはセキュリティ方策を有利に実施することが可能であり、セキュリティ方策によって、たとえば、ファイルをホストＡからホストＢに転送することは可能であるが、この同じホスト間における電子メールの交換は禁止することができる。
【０００７】
ピアＡ１１、Ｂ１２、およびＣ１３を有し、フィルタを経由してホストＧ１５、Ｈ１６、およびＩ１７を有するインタネット１４に接続される企業ネットワーク１０に対するルールベースの例を、以下に示す。
【０００８】
発信元                宛先                    プロトコル    動作
アドレス、ポート      アドレス、ポート        識別子
Ａ，２１              Ｇ，３２                ４            パス
Ａ，２２              Ｈ，１９                ３            ドロップ
Ｇ，１１              Ａ，６４                ４            ドロップ
Ｃ，９                Ｉ，２３                ４            パス
このルールベースは、ネットワーク上のホストのセキュリティ必要条件に従って、ネットワークシステム管理者によって規定される。
【０００９】
パケットがフィルタに着信すると、フィルタは、パケット５−タプルがいずれかのルール５−タプルに一致するかを決定する。ここで、ルール５−タプルは、ルールキーである。一致が得られるときは、フィルタは一致するルール動作、すなわちパスまたはドロップのいずれかを実行する。
【００１０】
フィルタは、通常、ルールベースにおいては明快には特定されないトランザクションに関するデフォルトルールを有する。したがって、ルールベースに一致するルールがない場合は、パケットはデフォルトルールと比較される。一致が得られるときは、次いで、デフォルト動作が実行され、デフォルト動作は通常パケットをドロップすることである。デフォルトルールに対して一致が得られないときは、次に、エラーメッセージが生成される。ひとつの実施形態においては、すべてのパケットがデフォルトルールと一致するようにデフォルトルールを構成することができるので、エラーメッセージは全然生成されない。
【００１１】
ピアとホストの間において、パケットをパスさせるかドロップさせるかを選択することによって、フィルタはＡＩＳに出入する情報の流れを統制し、ＡＩＳは、フィルタの「背後にある」またはフィルタによって「保護されている」といわれる。図１において、企業ネットワーク１０はフィルタ１８の背後にある。
【００１２】
従来のフィルタは、システム管理者の介入によってルールをロードし記憶することしかできず、緩慢であり扱いにくい処理である。実際、システム管理者は、通常、フィルタプラットフォームに特有のフォーマットでルールを手作業で符号化しなければならない。これらのルールは、保護されるＡＩＳによって公表されるセキュリティ方策を基礎としている。それ故、従来のルールベースは、柔軟性がなく、保護されるＡＩＳについて必要なセキュリティニーズの変化に容易に適応することができない。
【００１３】
この不可変性によって、所定の適用対象に対して過剰に広域であるルールベースが必要とされる場合が多い。容易に更新される可能性がないので、特定のホストに適用される局所ルールをロードすることよりも、フィルタの背後にあるすべてのＡＩＳに適用される広域ルールを採用することの方が簡単である。このような場合、フィルタの背後にあるすべてのＡＩＳは、このようなＡＩＳのいずれかの最も制約の厳しいセキュリティ必要条件に従う必要があるので、過剰に制約されるフィルタリングとなる。
【００１４】
ルールがファイアウォールの背後にある個別ホストに適用されるように定式化される場合においてさえも、このようなレベルのアクセス制御は不十分である場合がある。この状況の一例は、インタネットサービスプロバイダ（ＩＳＰ）の場合である。インタネットサービスプロバイダは、通常、モデムを有する独立型パーソナルコンピュータである加入者を有する。ＩＳＰは、ひとつ以上のホストを有し、各ホストはインタネットに接続され、インタネットプロトコル（ＩＰ）アドレスのプールを有する。加入者がＩＳＰホスト（存在点、またはＰＯＰと呼ばれる）にダイヤルインするとき、ＰＯＰは、そのＩＰアドレスのプールから一時ＩＰアドレスを加入者に割り当てる。この一時アドレスは、通常、接続性の単独セッションの間だけの発呼者に対応する。将来のセッションにおいては、その加入者に別のＩＰアドレスが割り当てられる可能性が高い。
【００１５】
これは問題である。それはルールというものは部分的にネットワーク発信元および宛先アドレスに基づくためである。したがって、公知のフィルタによって、加入者に対するアクセスを効果的に制御することは不可能である。その理由はそれらのＩＰアドレスはセッションごとに変わるためである。
【００１６】
本出願と関連する米国特許出願であって、発明の名称が「ネットワーク上のピアレベルアクセス制御を提供するためのシステムおよび方法」によれば、ホストが認証されるとき、加入者のルールをフィルタに動的にロードし、ホストが認証されなくなるとき、削除することができるシステムおよび方法を提供することによって、この欠陥が改良される。ルールがダイナミックフィルタに記憶されている間は、ルールは加入者の一次ＩＰアドレスに対応するので、実行することができる。
【００１７】
ダイナミックフィルタは、さらに広い適用対象を有し、それは、ダイナミックフィルタがＩＳＰ加入者に対するのみでなく、固定ＩＰアドレスを有するピアを含めて、いかなるピアに対してもフィルタのルールを容易に動的に変更することもできるためである。それ故、ダイナミックフィルタによって、特定のピアのセキュリティ要求に対応し、これらのセキュリティ要求の変化に適応できる一層良好なアクセス制御が提供されるためである。したがって、ダイナミックフィルタの新規な有用性は、局所ルールベースの頻繁な変更に適応し実行できるその機能から導き出される。
【００１８】
典型的な実施形態においては、ダイナミックフィルタは、パケットを受け取ることおよび一致するルールを求めて事前−広域ルールベースを探求することによって作動される。一致する広域事前ルールが全く見出されないときは、局所ルールベースが、一致するルールベースを求めてハッシュテーブル（ｈａｓｈ  ｔａｂｌｅ）を使用して探索される。一致する局所ルールが全く見出されないときは、広域事後ルールベースが一致ルールを求めて探索される。一致する広域事後ルールが全く見出されないときは、デフォルトルールがパケットに一致する場合はデフォルトルールが適用される。デフォルトルールがパケットに一致しない場合は、エラー状態が生成される。いずれかの一致するルールが見出され、そのルールの動作がドロップであるときは、パケットはドロップされ、それ以上、ルールは探索されない。
【００１９】
一致するルールを求めてルールベースを探索することは、時間を消費し、またプロセッサパワーも消費する。ダイナミックフィルタにおいては、局所ルールのためのハッシュテーブルによって、探索処理の効率が相当に改良される。しかし、ダイナミックフィルタは、ハッシュ機能を実行し、さらにフィルタが受け取る各パケットに対するルールベースの探索を行う必要がある。これは、相当な不必要な冗長性を含み、それは特定のメッセージ中のすべてのパケットは、通常、同じ５−タプルを有するためである。
【００２０】
たとえば、データファイルＡは３２０パケットに分割され、プロトコルＸを使用し、ホストＡからホストＡポート２０を経由して、ホストＢのポート２１を経てホストＢに転送されると仮定する。３２０パケットのそれぞれのヘッダは、下記の５−タプルを含む。
【００２１】
Ａ，２０，Ｂ，２１，Ｘ
このようなパケットの第一パケットがダイナミックフィルタに届くと、フィルタは一致するルールを求めてルールベースを探索し、一致するルールが適用される。次のパケットが届くと、ファイルは、再び同じ探索を実行し、一致するルールを見出し、それが適用される。
【００２２】
この問題に対する公知の解決法は、最近処理されたパケットのために、フィルタルールベースから導出されたルールのショートリスト（キャッシュとして知られる）を保持することである。キャッシュ内の各ルールは、キー（５−タプルのような）および動作を含むキャッシュエントリを記憶し、所定のメッセージの形で受け取られる第一パケットを求めるフィルタルールベース全域の探索から導出される。パケットが受け取られると、キャッシュは、最初に、一致するエントリを求めて探索される（たとえば、受領パケット識別データと一致するキーを有するエントリを求めて）。これは、同じキーを有する同じメッセージ中の次のパケットを求めてルールベースを探索することより、効率的である。キャッシュエントリが一致するときは、ルールベースを探索する必要なしに、エントリの動作がパケットに関して実行される。言い換えれば、次のパケットは、本質上、メッセージの最初のパケットについて実施された探索から利益を受ける。これによって、プロセッサ時間が節約され、またフィルタの処理能力が増加する。
【００２３】
この公知のキャッシング法は、固定され変更できないルールベースを有する従来のスタティックフィルタのために設計されていることに注意する必要がある。局所ルールが頻繁に変更されるダイナミックフィルタのためのキャッシュについて、この方法を効果的に使用することはできない。その理由は、この公知の方法によって、キャッシュエントリの通用を追跡し保証する手段が、全く提供されないためである。言い換えれば、ダイナミックフィルタにおいては、エントリが導出されるルールは頻繁に変化する場合がある。公知のキャッシング方法によって、旧式のエントリがパケットに適用されないことを保証することはできない。従来のフィルタキャッシュは、基礎となるルールベースに少しでも変化があるときは常に完全に空白とされ、その後、パケットが受け取られフィルタされるときに、新ルールベースに従って再構成される。これは非効率的であり、それは、極めて大多数のキャッシュルールがルール変更によって影響されず依然として正当である場合においても、キャッシュがフラッシュされるためであり、これが許容されるのは、従来のスタティックフィルタにおいてこのようなルール変更が非常にまれに発生する場合のみである。
【００２４】
【発明が解決しようとする課題】
ルールベースが変更される度ごとに、ダイナミックフィルタに対するキャッシュを空にすることは、局所ルールベースが非常に頻繁に変更されるので、効率が悪く許容できない。ダイナミックフィルタについて実現化される公知のキャッシュは、極めて頻繁に再構築される必要があるので、フィルタに関する効率の利益が、あったとしても、ほとんどなくなる。
【００２５】
【課題を解決するための手段】
本発明に係るキャッシュは、パケット交換ネットワークにおけるパケットフィルタリングを実行するダイナミックフィルタのためのキャッシュであって、前記ダイナミックフィルタはルールベースに関連する少なくともひとつのルールベースバージョン番号を有するルールベースを含み、前記キャッシュは記憶媒体を備え、前記記憶媒体は、キャッシュキー、キャッシュ動作、およびキャッシュバージョン番号を有するキャッシュエントリの記憶を保持し、前記キャッシュエントリはさらにどのルールベースから前記セッションエントリが導出されるかを示すルールベース標識を含むことを特徴とする。具体的には、「セッションキャッシュ」と呼ばれ、キャッシュルールバージョンおよびダイナミックフィルタルールバージョンを追跡するものであり、その方法は、旧式のキャッシュルールを検出してメモリから削除（排出）し、呼び出されてパケットに適用される前に更新し、一方、局所ルールベースの変更による影響を受けないルールは手を付けずにキャッシュ内に残すことによる。
【００２６】
セッションキャッシュの各ルールは、セッションエントリと呼ばれ、所定のパケットに関して行う必要がある動作を決定するために使用されるダイナミックフィルタルールベースの探索の結果から導出される。たとえば、ルールベース探索の結果、所定のキー（たとえば、５−タプル）を有するパケットに対して、ドロップ動作を実施する必要があることが示される場合がある。次に、５−タプルが、「セッションキー」と呼ばれるセッションエントリの一部分としてキャッシュに追加される。ドロップ動作は、そのセッションキーに対応する動作として記憶される。
【００２７】
ピアの局所ルールがフィルタに追加されるとき、およびフィルタから排出されるとき、局所ルールベースが変化する。セッションエントリが導出された局所ルールベースが変化するとき、排出されるフィルタルールベースから導出されたセッションエントリは、旧式となる。
【００２８】
本発明によれば、パケットに適用される前にルールが導出されるルールベースの現在のバージョンの代わりに、パケットの識別データ（たとえば、５−タプル）に一致する各セッションエントリの通用を検査するバージョントラッキングシステムが、有利に提供される。セッションエントリが更新される場合は、そのルールが適用される。セッションエントリが旧式である場合は、セッションエントリは排出され、フィルタルールベースは一致するルールを求めて探索される。探索の結果は、セッションキャッシュに記憶され、旧式ルールを代替する。
【００２９】
本発明によれば、各フィルタ局所ルールベースは、それがロードされる度ごとに増加されるバージョン番号を有する。各セッションエントリはセッションエントリバージョン番号を有し、この番号は、セッションエントリが導出される度ごとにフィルタ局所ルールベースバージョン番号からコピーされる。本発明によれば、パケットの５−タプルがセッションエントリのセッションキーと一致するとき、セッションエントリバージョン番号は、ルールが導出される局所ルールベースのバージョン番号と照合される。これらが同じであるときは、セッションエントリは現在であり、その動作がパケットに適用される。これらが一致しないときは、セッションエントリは旧式であり、そのセッションキャッシュから排出される。次に、ルールベースは、パケットに一致するルールを求めて探索される。
【００３０】
さらに、本発明によって、各セッションエントリに対するルールフラグが提供され、このフラグによって、セッションエントリが導出されるフィルタルールベースが識別される。
【００３１】
ルールフラグは、セッションエントリが、フィルタの広域事前ベースまたは広域事後ベースから導出されたことを示すことができる。局所ルールベースバージョン番号と同様な方法で、各広域ルールベースはバージョン番号を有し、好適には、広域ルールベースがロードされたときに、導出される時刻または日付−時刻スタンプを有する。
【００３２】
セッションエントリのバージョン番号がエントリが導出された広域ルールベースと一致しないときは、セッションキャッシュ全体が削除される（「フラッシュされる」）。広域ルールベースは非常に静的であるので、セッションキャッシュが広域ルールベースの変化のためにフラッシュされることは滅多にない。
【００３３】
ルールフラグが、セッションエントリが局所ルールベースから導出されることを示し、各局所ルールベースはピア−インおよびピア−アウトルールベースを含むときは、セッションバージョン番号は適切な局所ルールベースバージョン番号と照合される。関係するバージョン番号が一致するときは、セッションエントリは適用される。セッションバージョン番号が局所ルールベースバージョン番号と一致しないときは、そのセッションエントリは排出され、新たに探索が実施される。
【００３４】
本発明によれば、旧式セッションキャッシュルールは、呼び出されるとき（すなわち、パケット５−タプルと一致することが見出されるとき）および旧式であると認められるときのみ、有利にかつ効果的に排出されて代替される。これは、ルールベースに関するいかなる変更が実施されるときでも常にキャッシュ全体がフラッシュされる公知の処理より、遥かに効果的である。本発明によれば、局所ルールベースにおける変更は、セッションキャッシュの対応するルールにのみ影響を与える。局所ルールベース変更によって影響を受けないセッションエントリは、依然として正当であり、有利に保持される。それ故、それらは公知のキャッシュの場合のように再導出される必要はないので、プロセッサ時間およびフィルタ資源が節約される。このことは、局所ルールベースが頻繁に変更されるダイナミックフィルタの場合に、特に重要である。
【００３５】
要約すると、各セッションエントリは、セッションキー、動作、セッションエントリが導出される各局所ルールベースに対するセッションバージョン番号、およびルールフラグを含む。
【００３６】
本発明によれば、フィルタがセッションエントリのためのパケットを受け取り、セッションエントリの５−タプルがパケットの５−タプルと一致しないとき、セッションキャッシュは探索される。一致するセッションエントリが見出されるときは、ルールフラグは、セッションエントリが導出されるルールベースを識別する。フラグが局所ルールベースを識別すると、適切な局所ルールベースバージョン番号がセッションエントリバージョン番号と照合される。セッションバージョン番号が関係するルールベースバージョン番号と一致するときは、セッションエントリ動作が実行される。セッションバージョン番号が関係するルールベースバージョン番号と一致しないときは、そのセッションエントリはセッションキャッシュから排出され、フィルタルールベースは一致するルールを求めて探索される。
【００３７】
同様に、一致するセッションキーが見出されるときは、そのルールベースが一致するルールを求めて探索される。次に、ルールベース探索に由来しパケットのために規定される動作が、セッションキー（パケット５−タプルと等しい）、ルールベースバージョン番号および更新されたルールフラグと共に、セッションキャッシュに追加される。同時に、これらの要素は、セッションエントリを含む。最後に、規定される動作が、パケットについて実行される。
【００３８】
【発明の実施の形態】
図２に示すように、本発明によるセッションキャッシュ２１は、少なくともひとつのセッションエントリ２２を含む。各セッションエントリ２２は、セッションキー２３、セッション動作２４、およびセッションエントリが導出された局所ルールベースバージョン番号と一致するセッションエントリバージョン番号２５を含む。本発明の他の実施形態においては、エントリが導出された広域ルールベースに対応するセッションエントリバージョン番号が含まれる場合がある。また、各セッションエントリは、どのフィルタルールベースからセッションエントリが導出されたかを示すルールフラグ２６を含む。たとえば、ルールフラグは、セッションエントリが、広域事前ルールベース、特定の局所ルールベース、または広域事後ルールベースのどれから導出されたかを示す。
【００３９】
ルールフラグデータ構造の実施形態は下記の通りである。
【００４０】
0003875387.tif 000002
セッションキーデータ構造の実施形態は下記の通りである。
【００４１】
0003875387.tif 000003
セッションエントリに関するデータ構造は下記の通りである。
【００４２】
0003875387.tif 000004
ここで、局所ルールベースバージョン番号は、本発明に従って、ピア−インおよびピア−アウトバージョン番号に論理上分割される。ｐｆ__ｓｅｓｓｉｏｎ構造は、セッションキャッシュに対する単独のエントリを記述する。セッションキャッシュは、その特定の時点における活性状態のセッションの数に従属するｐｆ__ｓｅｓｓｉｏｎ構造の配列よりなる。
【００４３】
本発明によるセッションエントリの実施形態を、図３に示す。セッションエントリ３１１は、ネットワーク発信元アドレス３１３を含む５−タプルであるセッションキー３１２、発信元ポート３１４、ネットワーク宛先３１５、宛先ポート３１６、およびプロトコル識別子３１７を有する。また、セッションエントリ３１１は、ドロップセッション動作３１８、およびセッションエントリバージョン番号３１９を有する。セッションエントリルールフラグ３２５は、広域事前ルールベース３２１のための１ビット、ピア−インルールベース３２２のための１ビット、ピア−アウトルールベース３２３のための１ビット、および広域事後ルールベース３２４のための１ビットを有する。“０”は、セッションエントリが関係するルールベースから導出されないことを示し、一方、“１”は、セッションエントリが関係するルールベースから導出されることを示す。
【００４４】
本発明によれば、パケットが受け取られると、セッションキャッシュは、パケットの５−タプルと一致する５−タプルを有するセッションエントリを求めて探索される。一致するルールが見出されると、ルールフラグを使用してどのフィルタルールベースから一致するセッションエントリが導出されたかが識別される。
【００４５】
この処理の擬似コード実施形態は、下記の通りである。
【００４６】
0003875387.tif 000005
ここで、ｓｔａｇｅ１_ｐｒｏｃｅｓｓｉｎｇ（）は、パケット５−タプルと一致するセッションキーを有するセッションエントリが存在する場合に使用される方法を指す。ステージ２は、このような一致するセッションキーが見出されない場合に実行される。
【００４７】
図３に示す本発明の実施形態においては、５−タプルＡ、２０、Ｂ、２１、３を有するパケットがセッションエントリに一致することが見出される。ルールフラグ３２５（０１００）は、ルールがピア−インルールベースから導出されたことを示す。
【００４８】
本発明によれば、ルールベースバージョンテーブルは、フィルタ内に保持される。このようなテーブルに対するデータ構造の例は、下記の通りである。
【００４９】
ハッシュインデックス  セッションポインタ
１                    ｐｆ＿ｓｅｓｓｉｏｎ＊
２                    ｐｆ＿ｓｅｓｓｉｏｎ＊
３                    ｐｆ＿ｓｅｓｓｉｏｎ＊
４                    ｐｆ＿ｓｅｓｓｉｏｎ＊
ｐｆ＿ｓｅｓｓｉｏｎ＿ｈａｓｈ＿ｔａｂｌｅは、セッションキャッシュ内のすべての活動状態のセッションを記述する。ハッシュ機能は、ｐｆ＿ｓｅｓｓｉｏｎ構造について評価され、テーブルのためのインデックス値を生成する。次に、ｐｆ＿ｓｅｓｓｉｏｎ構造に対するポインタが、ｐｆ＿ｓｅｓｓｉｏｎ＿ｈａｓｈ＿ｔａｂｌｅ配列中のインデックス位置に置かれる。
【００５０】
局所ルールベースのためのこのようなバージョンテーブルの実施形態を、図４に４１として示す。ピアの局所ルールベースがフィルタにロードされるとき、ハッシュ機能ｈは、ピアのネットワークアドレスについて実行される。図４において、ｈ（Ａ）４２は、ネットワークアドレスＡを有するピアについて実行されたハッシュ機能ｈの結果を表す。次に、バージョン番号は、ハッシュされたピアネットワークアドレスに関連づけられる。バージョン番号の好適な実施形態は、日付−時刻スタンプであり、ピアの局所ルールベースがロードされたときに生成される。したがって、図４において、バージョン番号０９０９１５３２（４３）は、ルールベースが９月９日午後３時３２分にロードされたことを表し、ｈ（Ａ）に関連する。所定のピアに対するルールベースがロードされる度ごとに、バージョンテーブルのバージョン番号は新しい日付−時刻スタンプによって更新される。したがって、ピアＡが認証されなくなったときは、その局所ルールベースのバージョン番号０９０９１５３２は、フィルタから排出されることになる。ピアＡが後で再度認証されるときは、その局所ルールベースがロードされ、それがロードされた日付および時刻に対応する新バージョン番号がｈ（Ａ）４２と関連することになる。
【００５１】
一致するセッションエントリがｇｌｏｂａｌ＿ｐｒｅ−ｒｕｌｅ  ｂａｓｅまたはｇｌｏｂａｌ＿ｐｏｓｔ−ｒｕｌｅ  ｂａｓｅから導出されたときは、セッションエントリバージョン番号は、バージョンテーブルのルールベースバージョン番号と比較される。二つが異なるときは、セッションキャッシュはフラッシュされる。これは、本発明の効率を著しく減じることにはならず、それは広域ルールベースは、特に局所ルールベース、すなわち、ピア−インおよびピア−アウトルールベースに比較して、比較的静的であり、変更されることが滅多にないためである。
【００５２】
フラグが、一致するセッションエントリがピア−インまたはピア−アウトルールベースから導出されたことを示す場合は、突き合わせるセッションエントリバージョン番号は、バージョンテーブルに記憶される関連する局所ルールベースバージョン番号と照合される。
【００５３】
本発明によれば、ルールフラグおよび突き合わせるパケットの５−タプルを知ることのみによって、どのルールベースからセッションエントリが導出されたかを、決定することができる。これは、本発明の実施形態の場合は、以下のように例証される。
【００５４】
ルールフラグ３２２は、本発明によるセッションエントリがピア−インルールベースから導出されたことを示す。これは、適用できるフィルタルールは、保護されるピアに向かう情報の流れを統制することを示す。一致するパケット５−タプルから、一致するパケットはネットワークアドレスＢを有するピア宛であることを知ることできる。したがって、セッションエントリは、ピアＢの局所ルールベースに由来するピア−インルールから導出された。ハッシュ機能は、パケットのネットワーク宛先アドレスについて実行され、ｈ（Ｂ）を生成する。バージョンテーブルにおいてｈ（Ｂ）が指すバージョン番号は、２である。これは、セッションエントリピア−インバージョン番号３１９（図３）として記憶されるピア−インバージョン番号と一致する。それ故、図３に示すセッションエントリのドロップ動作は、パケットについて実行される。
【００５５】
どのセッションエントリバージョン番号も、その対応するフィルタ局所ルールベースバージョン番号と一致しない場合は、セッションエントリは旧式であり、キャッシュから排出され、フィルタルールベースが探索される。
【００５６】
たとえば、図３に示す実施形態のルールフラグは０１００と仮定すると、セッションエントリはピア−アウトルールベースから導出され、ピア−アウトルールベースは保護されるピアからのパケットの流れを統制することを示す。したがって、パケットネットワーク発信元アドレスは、セッションエントリを導出するために使用された局所ルールベースを有するピアを示す。ハッシュ機能ｈは、パケットネットワーク発信元アドレスＡについて実行され、また、バージョンテーブルは、ｈ（Ａ）が指すバージョン番号について検査される。図３に示すように、ｈ（Ａ）は、バージョン番号３に対応する。図３に示すセッションエントリに記憶される局所ルールベースバージョン番号は、１であると仮定する。このことは、ピアＡルールベースは、図３に示すセッションエントリがルールベースから導出されてから２回更新されたことを示す。それ故、ルールは旧式であり、排出される。次に、フィルタルールベースが探索される。パケットが受け取られ一致するセッションエントリがセッションキャッシュに見出されない場合、または一致するルールが旧式であり排出されていることが見出される場合は、フィルタルールベースが探索される。ひとつのフィルタ実施形態においては、広域事前ルールベースが、最初に探索される。一致するルールが見出されると、パケットのセッションキーおよびルール動作がセッションキャッシュに追加され、セッションエントリフラグが設定され、バージョン番号が記憶され、またルール動作が実行される。一致するルールが全く見出されない場合は、ピア−インおよびピア−アウトルールが探索される。
【００５７】
最低ひとつの一致するピア−インまたはピア−アウトルールの少なくとも一方が見出され、その動作がドロップである場合は、パケットセッションキーおよびドロップ動作が、セッションキャッシュ内のルールベースバージョン番号と共に、セッションエントリとして記憶される。また、ルールフラグも更新される。
【００５８】
すべての一致するピア−インおよびピア−アウトルールがパスである場合は、パケットセッションキーおよびパス動作が、セッションキャッシュ内のルールベースバージョン番号と共に、セッションエントリとして記憶される。ルールフラグも更新される。
【００５９】
一致するピア−インまたはピア−アウトルールが全く見出されない場合は、広域事後ルールベースが探索される。一致するルールが見出される場合は、パケットセッションキーおよび一致するルール動作が、ルールベースバージョン番号と共に、セッションエントリとして記憶される。ルールフラグも更新される。
【００６０】
デフォルトルールは、広域事後ルールベースの一部分である。他のルールが全くパケットと一致しない場合は、パケットはデフォルトルールと照合される。パケットがデフォルトルールと一致する場合は、デフォルト動作がパケットについて実行される。パケットがデフォルトルールと一致しない場合は、エラー状態が生成される。
【００６１】
ルールベース探索のための擬似コードによる実施形態は、以下に示す通りである。
【００６２】
0003875387.tif 000006
0003875387.tif 000007
0003875387.tif 000008
0003875387.tif 000009
本発明によるバージョントラッキングを有するセッションキャッシュは、セッションキャッシュにおいて正当なルールを保持し、そのルールはダイナミックフィルタに記憶される局所ルールベースの変更によって影響を受けない。これによって、フィルタプロセッサの負担が軽減され、処理能力が増加し、またその効率が向上する。
【００６３】
【発明の効果】
このように、本発明によれば、正当なルールは、キャッシュからフラッシュされず、その結果、プロセッサ時間が節約され、フィルタ効率が改良される。
【図面の簡単な説明】
【図１】  二つのネットワーク間のフィルタの従来技術による実施形態を示す図である。
【図２】  本発明によるセッションキャッシュを示す図である。
【図３】  本発明によるセッションエントリを示す図である。
【図４】  本発明によるフィルタルールベースバージョンテーブルを示す図である。
【符号の説明】
１０  企業ネットワーク、１１，１２，１３  ピア、１４  インタネット、１５，１６，１７  ホスト、１８  フィルタ、２１  セッションキャッシュ、２２，３１１  セッションエントリ、２３，３１２  セッションキー、２４，３１８セッション動作、２５，３１９  セッションエントリバージョン番号、４１  バージョンテーブル、４２  ハッシュ機能、４３  バージョン番号、３１３  値とワーク発信元アドレス、３１４  発信元ポート、３１５  ネットワーク宛先、３１６  宛先ポート、３１７  プロトコル識別子、３２１  広域事前ルールベース、３２２  ピア−インルールベース、３２３  ピア−アウトルールベース、３２４  広域事後ルールベース、３２５  セッションエントリルールフラグ。
【図１】
0003875387.tif 000010
【図２】
0003875387.tif 000011
【図３】
0003875387.tif 000012
【図４】
0003875387.tif 000013