(57)【要約】【課題】  ファイアウォールサービス群などのネットワークサービス群を管理するための一般的なフレームワークとしてオブジェクトモデルを提供する。【解決手段】  コンピュータのユーザまたは管理者が、オブジェクトモデルを利用してファイアウォールサービス群を管理し、構成することができる。オブジェクトモデルは、サービス群の構成することに絡む多くの考え得る問題にユーザおよび／または管理者の対処する労力を削減する。オブジェクトモデルは、２つの主要な名前空間、すなわち、ポリシーエンジンプラットフォームおよびポリシーオブジェクトモデルを含む。ポリシーエンジンプラットフォームは、サービス群に関するポリシー、およびサービス群を実際に実行するカーネルコンポーネント群と対話するためのセントラルポイントである。ポリシーオブジェクトモデルは、サービス群がサポートするポリシー群を指定するために使用される。【選択図】  図４
2005184836.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションについてファイアウォールポリシーを設定するための方法であって、
アプリケーションに関する情報を含む第１のパラメータを受け取るステップと、
前記アプリケーションのユーザに関する情報を含む第２のパラメータを受け取るステップと、
前記第１のパラメータおよび前記第２のパラメータに関連するセキュリティレベル情報をアクセスするステップと、
前記セキュリティレベル情報を利用して前記アプリケーションおよび前記ユーザについてファイアウォールポリシーを設定するステップと
を備えたことを特徴とする方法。
【請求項２】
前記セキュリティレベル情報にアクセスするステップは、ＧｅｔＲｕｌｅｓメソッドを呼び出して、前記アプリケーションおよび前記ユーザに関して選択可能な規則テンプレート群を返すステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
信頼できる接点群に関する第３のパラメータを受け取るステップをさらに含み、ならびにファイアウォールポリシーを設定するステップは、前記セキュリティレベル情報を利用して、前記アプリケーション、前記ユーザ、および前記信頼できる接点群について前記ファイアウォールポリシーを設定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記ファイアウォールポリシーを設定するステップは、
前記アプリケーションについて既定の設定を設定するステップと、
前記ユーザについて前記既定の設定を選択するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項５】
アプリケーションを表示する第１のデータフィールドと、
前記アプリケーションのユーザを表示する第２のデータフィールドと、
前記アプリケーションを利用する前記ユーザについて選択可能なセキュリティ設定を表示する第３のデータフィールドとを含むデータ構造を記憶していることを特徴とするコンピュータ読取り可能な媒体。
【請求項６】
前記データ構造は、データオブジェクトを含むことを特徴とする請求項５に記載のコンピュータ読取り可能な媒体。
【請求項７】
コンピュータ上のサービスを管理するオブジェクトモデルであって、
前記サービスがサポートする１つまたは複数のポリシーを指定するために使用されるポリシーオブジェクトモデルと、
前記サービスに関する前記１つまたは複数のポリシー、および前記サービスを実際に実行する少なくとも１つのコンポーネントと対話し、ならびに前記１つまたは複数のポリシーを前記少なくとも１つコンポーネントに提供するポリシーエンジンプラットフォームと
を備えたことを特徴とするオブジェクトモデル。
【請求項８】
前記ポリシーエンジンプラットフォームは、前記ポリシーオブジェクトモデルに従って追加のポリシーを追加する規則エディタを含むことを特徴とする請求項７に記載のオブジェクトモデル。
【請求項９】
前記規則エディタは、ポリシーを削除するようにさらに構成されることを特徴とする請求項８に記載のオブジェクトモデル。
【請求項１０】
前記規則エディタは、ポリシーを編集するようにさらに構成されることを特徴とする請求項８に記載のオブジェクトモデル。
【請求項１１】
前記ポリシーエンジンプラットフォームは、アプリケーションとユーザとの組み合わせに基づいてポリシーを自動的に生成するように構成された設定エディタを含むことを特徴とする請求項７に記載のオブジェクトモデル。
【請求項１２】
前記設定エディタは、複数のポリシーを生成し、およびユーザが前記複数から選択できるようにさらに構成されることを特徴とする請求項１１に記載のオブジェクトモデル。
【請求項１３】
前記設定エディタは、前記複数のポリシーの１つを既定のポリシーとして設定することを可能にするようにさらに構成されることを特徴とする請求項１２に記載のオブジェクトモデル。
【請求項１４】
前記ポリシーエンジンプラットフォームは、前記１つまたは複数のポリシーの表示を提供するための規則エクスプローラを含むことを特徴とする請求項７に記載のオブジェクトモデル。
【請求項１５】
前記ポリシーオブジェクトモデルは、ＣｏｎｄｉｔｉｏｎプロパティとＡｃｔｉｏｎプロパティとを有する、ポリシーを生成するために使用可能なＰｏｌｉｃｙＲｕｌｅオブジェクトをさらに含み、前記ＰｏｌｉｃｙＲｕｌｅオブジェクトによって生成されたポリシーは、前記Ｃｏｎｄｉｔｉｏｎプロパティの中の条件が満たされたことに応答して前記Ａｃｔｉｏｎプロパティの中のアクションを実行するように構成されることを特徴とする請求項７に記載のオブジェクトモデル。
【請求項１６】
前記サービスは、ファイアウォールサービスであることを特徴とする請求項７に記載のオブジェクトモデル。
【請求項１７】
前記ポリシーエンジンプラットフォームは、要求者が許可を受けていない場合、前記１つまたは複数のポリシーを前記コンポーネントに提供することを拒否するように構成されることを特徴とする請求項７に記載のオブジェクトモデル。
【請求項１８】
要求者が許可を受けているか否かを判定するステップは、前記要求者のプロバイダランクを許可されたランクと比較し、前記要求者の前記プロバイダランクが、前記許可されたランク以上でない場合、前記要求者を拒否するステップを含むことを特徴とする請求項１７に記載のオブジェクトモデル。
【請求項１９】
コンピュータ上のサービスを管理する方法であって、
ポリシーオブジェクトモデルを介して、前記サービスがサポートする１つまたは複数のポリシーを指定するステップと、
ポリシーエンジンプラットフォームを介して、前記サービスに関する前記１つまたは複数のポリシー、および前記サービスを実際に実行する少なくとも１つのコンポーネントと対話するステップと、
前記ポリシーエンジンプラットフォームを介して、前記１つまたは複数のポリシーを前記少なくとも１つのコンポーネントに提供するステップと
を備えたことを特徴とする方法。
【請求項２０】
アプリケーションとユーザとの組み合わせに基づいてポリシーを自動的に生成するステップをさらに備えたことを特徴とする請求項１９に記載の方法。
【請求項２１】
複数のポリシーを生成し、ユーザが前記複数のポリシーから選択できるようにするステップをさらに備えたことを特徴とする請求項２０に記載の方法。
【請求項２２】
前記複数のポリシーの１つを既定のポリシーとして設定するステップをさらに備えたことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記提供するステップに先立ってユーザに許可を与えるステップをさらに備えたことを特徴とする請求項２２に記載の方法。
【請求項２４】
コンピュータ上のファイアウォールサービスを管理するためのオブジェクトモデルであって、
前記オブジェクトモデルは、前記ファイアウォールサービスがサポートする１つまたは複数のポリシーを指定するために用いられるポリシーオブジェクトモデルを含み、前記ポリシーモデルは、ポリシーを生成するために用いられるＰｏｌｉｃｙＲｕｌｅオブジェクトを含み、前記ＰｏｌｉｃｙＲｕｌｅオブジェクトは、ＣｏｎｄｉｔｉｏｎプロパティとＡｃｔｉｏｎプロパティとを含み、前記ＰｏｌｉｃｙＲｕｌｅオブジェクトによって生成されたポリシーは、前記Ｃｏｎｄｉｔｉｏｎプロパティ内の条件が満たされたことに応答して前記Ａｃｔｉｏｎプロパティの中のアクションを実行するように構成されることを特徴とするオブジェクトモデル。
【請求項２５】
前記ＰｏｌｉｃｙＲｕｌｅオブジェクトから派生したＩＰＳｅｃＲｕｌｅをさらに備え、前記ＩＰＳｅｃＲｕｌｅは、ＩＰＳｅｃ条件が満たされた場合にＩＰＳｅｃコールアウトをトリガし、および前記コールアウトに関連するトラフィックを保護するための構成パラメータ群を示すように構成されることを特徴とする請求項２４に記載のオブジェクトモデル。
【請求項２６】
前記ＩＰＳｅｃＲｕｌｅは、標準の５組を評価して、条件が満たされたか否かを判定することを特徴とする請求項２５に記載のオブジェクトモデル。
【請求項２７】
前記ＰｏｌｉｃｙＲｕｌｅオブジェクトから派生したＫｅｙｉｎｇＭｏｄｕｌｅＲｕｌｅをさらに備え、前記ＫｅｙｉｎｇＭｏｄｕｌｅＲｕｌｅは、リモートピアへの既存の保護されたチャネルが全く存在しない場合、どのキーネゴシエーションモジュールを使用するかを選択するように構成されることを特徴とする請求項２４に記載のオブジェクトモデル。
【請求項２８】
前記ＫｅｙｉｎｇＭｏｄｕｌｅＲｕｌｅは、標準の５組を評価して、条件が満たされたか否かを判定することを特徴とする請求項２７に記載のオブジェクトモデル。
【請求項２９】
前記ＰｏｌｉｃｙＲｕｌｅオブジェクトから派生し、インターネットキー交換キーネゴシエーションプロトコルを実行するためのパラメータ群を指定するように構成されるＩＫＥＲｕｌｅをさらに備えたことを特徴とする請求項２４に記載のオブジェクトモデル。
【請求項３０】
前記ＩＫＥＲｕｌｅは、ローカルアドレスおよびリモートアドレスを評価して、条件が満たされたか否かを判定することを特徴とする請求項２９に記載のオブジェクトモデル。
【請求項３１】
前記ＩＫＥＲｕｌｅは、インターネットキー交換キーネゴシエーションプロトコルを実行するための認証メソッド群を定義するＩＫＥＡｃｔｉｏｎアクションプロパティを含むことを特徴とする請求項２９に記載のオブジェクトモデル。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータ上またはネットワーク上のセキュリティに関し、より詳細には、ファイアウォールおよびファイアウォールの管理に関する。
【背景技術】
【０００２】
一般に、ファイアウォールは、無許可のユーザがネットワーク上またはコンピュータ上の一部のファイルにアクセスすることを防止する電子的境界線である。ファイアウォールは、ユーザのコンピュータにおいてファイアウォールコードとして提供することができる（「ホストファイアウォール」）。またはこれに代えて、ネットワーク外部のコンピュータ群とインタフェースを取り、ネットワーク内のコンピュータ群上の機密ファイルを保護するために特殊なセキュリティ上の予防策を有するネットワークのエッジ（「エッジファイアウォール」）において、専用のファイアウォールマシンを提供することができる。これは、エッジファイアウォールの背後により緩く管理されるマシンのクラスタを隠してネットワーク外部のコンピュータユーザから保護するという概念によるものである。エッジファイアウォールが配置されるマシンは、多くの場合、「ゲートウェイ」または「専用ゲートウェイ」と呼ばれる。ネットワークをインターネットから守るように構成されている場合、マシンは、多くの場合、「インターネットゲートウェイ装置」と呼ばれる。
【０００３】
ファイアウォールは、少なくとも３つの異なるセキュリティ対策の１つまたはこれらを組み合わせてを使用して、ネットワークに出入りするトラフィックを制御する。静的パケットフィルタリングと呼ばれる第１の方法で、パケットは、フィルタの集合に照らして分析される。フィルタ群によって承認されたパケットは、要求側のシステムに送信され、他のすべてのパケットは、破棄される。プロキシサービスと呼ばれる第２の方法では、インターネットからの情報は、ファイアウォールによって検索され、ポリシーに照らして評価された後、要求側のシステムに送信され、またその逆が行われる。ステートフル（ｓｔａｔｅｆｕｌ）検査と呼ばれる第３のより新しい方法では、パケットの内容は検査されず、代わりに、パケットの重要な部分だけが、信頼される情報のデータベースと比較される。ファイアウォール内部から外部に伝送される情報は、特別な特性を定めるためについて監視され、次に、着信する情報は、その特性と比較される。この比較により妥当な一致が確認された場合、その情報は、通ることを許される。それ以外の場合、情報は破棄される。その他のトラフィック制御を使用することもできるが、上記の３つの方法を、例として挙げておく。
【０００４】
ファイアウォールは、多くの場合、カスタマイズ可能であり、カスタマイズ可能とは、例えば、いくつかの条件に基づいてフィルタ群を追加すること、または除去することができることを意味する。例えば、インターネットプロトコル（「ＩＰ」）アドレスを使用して、トラフィックを制限する、またはブロックすることができる。ＩＰアドレスが使用される場合、一例では、ネットワーク外部のあるＩＰアドレスが余りに多くのファイルをサーバから読み取っている場合、ファイアウォールは、そのアドレスに向かうすべてのトラフィックおよび／またはそのアドレスからのすべてのトラフィックをブロックすることができる。別の例として、ファイアウォールは、あるドメイン名へのすべてのアクセスをブロックすること、または特定のドメイン名へのアクセスだけを許すことができる。さらに別の例として、企業は、１つまたは２つのマシンだけが特定の１つまたは複数のプロトコルを扱い、他のすべてのマシン上でそれらのプロトコルを禁止するようにネットワークをセットアップすることも可能である。さらに別の例は、ポートを使用してトラフィックを制限することである。例えば、サーバマシンがＷｅｂ（ＨＴＴＰ）サーバおよびＦＴＰサーバを稼動している場合、Ｗｅｂサーバは、通常、ポート上で利用可能であり、ＦＴＰサーバは、ポート上で利用可能である。企業は、ネットワーク上の１つのマシンを除き、すべてのマシン上でポートのアクセスをブロックすることが可能である。
【０００５】
【特許文献１】米国特許出願第１０／６０３，６４８号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、ファイアウォールは、ネットワーク通信を点検し、ファイアウォールのファイアウォールサービス内に設定されているポリシーに適合する通信だけを許すことにより、セキュリティを確保する。上述したトラフィック制御方法は、トラフィックをフィルタ処理することに関してうまく機能するが、ファイアウォールを管理することは、困難である可能性がある。例えば、ユーザが、あるマシンに関して特定のアクセスポリシーを設定することを所望するが、ポート、パケット、および／またはフィルタについて全く理解していない可能性がある。ファイアウォールを構成するファイアウォールポリシーを指定するために使用される現在の方法は、多くの場合、直観的でなく、かつ／またはネットワーキングプロトコルおよび実装の深い知識を要する場合がある。
【課題を解決するための手段】
【０００７】
本発明の基本的な理解を提供するために、本発明のいくつかの実施形態の簡単な概要を下記に説明する。この説明は、本発明の外延的な概観ではない。この説明は、本発明の重要な／不可欠な要素を特定する、または本発明の範囲を画定することを意図するものではない。この説明は、後に提示するより詳細な説明の前置きとして、本発明のいくつかの実施形態を簡略化した形態で提示することを唯一の目的とする。
【０００８】
本発明の一態様によれば、限定さえない例であるが、ファイアウォールサービス、ネットワークサービス品質、ペアレンタルコントロール、およびネットワーク侵入検出などのネットワークサービス群を管理するための一般的なフレームワークとして、オブジェクトモデルが提供される。
【０００９】
コンピュータのユーザまたは管理者は、このオブジェクトモデルを利用してサービス群を管理することができる。例えば、ユーザが、ユーザインタフェースにアクセスすることができ、このインタフェースがオブジェクトモデルにアクセスし、このインタフェースを介してユーザが、サービス群に関するポリシーを設定することができる。さらに、オブジェクトモデルは、リモート管理ツールにより、例えば、ネットワーク管理者によってアクセスされることも可能である。このようにして、オブジェクトモデルを使用して、サービス群に関するポリシーを遠隔から設定することができ、単独の管理者が、多くのコンピュータのサービス群を管理することができる。
【００１０】
オブジェクトモデルは、ユーザおよび／または管理者を、サービス群の構成することに絡む多くの考え得る問題に対処する労力を削減する。オブジェクトモデルは、２つの主な名前空間（ｍａｉｎ  ｎａｍｅ  ｓｐａｃｅ）、すなわち、ポリシーエンジンプラットフォームおよびポリシーオブジェクトモデルを含む。ポリシーエンジンプラットフォームは、サービス群に関するポリシー、およびサービス群を実際に実行するカーネルコンポーネント群と対話するためのセントラルポイント（ｃｅｎｔｒａｌ  ｐｏｉｎｔ）である。ポリシーエンジンプラットフォームは、ポリシーを確立する動作、およびポリシーをプラットフォームカーネルコンポーネント群まで下ろす（ｐｌｕｍｂ）動作を実行する。
【００１１】
ポリシーオブジェクトモデルは、サービス群がサポートするポリシー群を指定するのに使用される。ポリシーオブジェクトモデルは、上級ユーザが、従来のパケット中心タイプのフィルタリングポリシーを定義することを許可し、それほど上級でないユーザが、サービス群を使用するアプリケーション、およびそのアプリケーションのユーザに基づくより単純化された規則を使用して、ポリシーを開発することができるようにする。
【００１２】
本発明のその他の特徴は、下記の詳細な説明を図面と併せて理解することで、より明白となろう。
【発明を実施するための最良の形態】
【００１３】
下記の説明では、本発明の様々な実施形態を説明する。説明では、実施形態の徹底的な理解を提供するため、特定の構成および詳細を提示する。しかし、本発明は、それらの特定の詳細なしに実施することができることも、当業者には明らかとなろう。さらに、説明する実施形態を不明瞭にしないため、周知の特徴は省略する、または簡略化する場合がある。
【００１４】
本発明の様々な実施形態を説明するに先立って、本発明の様々な実施形態を実施することができるコンピュータおよびネットワーキング環境の説明を下記に提供する。必須ではないが、本発明は、コンピュータによって実行されている、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明する。一般に、プログラムには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、オブジェクト、コンポーネント、データ構造などが含まれる。本明細書で使用する「プログラム」または「モジュール」という用語は、単一のプログラムモジュールを意味することも、協調して動作する複数のプログラムモジュールを示唆することもできる。本明細書で使用する「コンピュータ」という用語、および「コンピューティング装置」という用語には、パーソナルコンピュータ（ＰＣ）、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースのプログラマブル家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、タブレットＰＣ、ラップトップコンピュータ、マイクロプロセッサまたはマイクロコントローラを有する家庭用機器、ルータ、ゲートウェイ、ハブなど、１つまたは複数のプログラムを電子的に実行するあらゆる装置が含まれる。また、本発明は、通信ネットワークを介してリンクされたリモート処理装置群によってタスクが実行される分散コンピューティング環境において使用することもできる。分散コンピューティング環境では、プログラム群は、ローカルメモリ記憶装置とリモートメモリ記憶装置の両方の中に配置することが可能である。
【００１５】
本発明の態様を組み込むのに適したコンピュータネットワーキング環境の一例を、図１を参照して説明する。例示的なコンピュータネットワーキング環境は、雲で示した安全なネットワーク１０４を介して互いに通信する、いくつかのコンピュータ１０２を含む。安全なネットワーク１０４は、ルータ、ゲートウェイ、ハブなどの多くの周知のコンポーネント群を含むことが可能であり、コンピュータ群１０２が、有線媒体および／または無線媒体を介して通信することを可能にする。安全なネットワーク１０４を介して互いに通信している場合、コンピュータ１０２の１つまたは複数が、その他のコンピュータ群１０２に対してクライアント、サーバ、またはピアとして動作することが可能である。したがって、本発明の様々な実施形態は、本明細書に含まれる特定の例が、それらのタイプのコンピュータのすべてに言及していなくても、クライアント上、サーバ上、ピア上、または以上の組み合わせにおいて実施することができる。
【００１６】
この例における安全なネットワーク１０４は、コンピュータ群１０２が、この例ではインターネットゲートウェイ装置１０６として示される一般的なファイアウォールによって保護されているという点で、「安全な」ネットワークと考えられる。インターネットゲートウェイ装置１０６は、この例では雲で示される公共ネットワークまたは安全でないネットワーク１１０上に配置されたリモートコンピュータ群１０８から、コンピュータ群１０２を保護する。インターネットゲートウェイ装置１０６として説明するが、ゲートウェイ装置は、必ずしもインターネットでない、ＬＡＮ、ＷＡＮ、または別のネットワークを含む他のタイプの安全でないネットワークからも安全なネットワークを保護することができる。
【００１７】
複数のコンピュータを有するものとして示しているが、安全なネットワーク１０４は、単一のコンピュータ１０２だけを含むことも可能である。さらに、安全でないネットワーク１１０は、複数のリモートコンピュータ１０８を有するものとして示しているが、代わりに、１つだけのコンピュータ１０８を有していてもよい。さらに、図１に示したネットワークは、安全なネットワーク１０４と安全でないネットワーク１１０をともに含むが、コンピュータ１０２の１つのようなコンピュータが、安全なネットワーク１０４および／またはインターネットゲートウェイ装置１０６を使用して、または使用せずに、安全でないネットワーク１１０と直接に接続することも可能である。
【００１８】
図２を参照すると、本明細書で説明する本発明の実施形態を実施することができるコンピュータ１０２の基本的な構成の例が示されている。この基本的な構成は、インターネットゲートウェイ装置１０６にも使用することができる。ただし、説明を簡単にするため、本発明の実施形態は、通常、コンピュータ１０２に関連して説明する。
【００１９】
最も基本的な構成では、コンピュータ１０２は、通常、少なくとも１つの処理装置２０２、およびメモリ２０４を含む。処理装置２０２は、命令を実行して、本発明の様々な実施形態に従ってタスクを実行する。そのようなタスクを実行する際、処理装置２０２は、コンピュータ１０２の他の部分、およびコンピュータ１０２外部の装置群に電子信号を伝送して、何らかの結果をもたらすことができる。コンピュータ１０２の正確な構成およびタイプに依存して、メモリ２０４は、（ＲＡＭのように）揮発性であることも、（ＲＯＭまたはフラッシュメモリのように）不揮発性であることも、またはこの２つの何らかの組み合わせであることも可能である。この最も基本的な構成を図２に破線２０６で示す。
【００２０】
コンピュータ１０２は、さらなる特徴／機能も有することが可能である。例えば、コンピュータ１０２は、磁気式または光学式のディスクまたはテープを含むが、以上には限定されない追加のストレージ（リムーバブルストレージ２０８および／または固定のストレージ２１０）も含むことが可能である。コンピュータ記憶媒体には、コンピュータ実行可能命令、データ構造、プログラムモジュール、またはその他のデータを含む情報を格納するために任意の方法または技術で実装された揮発性媒体および不揮発性媒体、リムーバブルな媒体および固定の媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ磁気記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、コンピュータ１０２がアクセスすることができる他のあらゆる媒体が含まれるが、これに限定されない。いかなるそのようなコンピュータ記憶媒体も、コンピュータ１０２の一部であることが可能である。
【００２１】
コンピュータ１０２は、好ましくは、装置が、安全なネットワーク１０４上の他のコンピュータ群１０２、または安全でないネットワーク１１０上のリモートコンピュータ群１０８（図２では、単一のリモートコンピュータ１０８だけを示す）のような、他の装置群と通信することを可能にする通信接続２１２も含む。通信接続は、通信媒体の例である。通信媒体は、通常、搬送波などの変調されたデータ信号、またはその他のトランスポート機構でコンピュータ読取り可能な命令、データ構造、プログラムモジュール、またはその他のデータを実体化し、任意の情報配信媒体が含まれる。限定ではなく例として、「通信媒体」という用語には、音響媒体、ＲＦ媒体、赤外線媒体、またはその他の無線媒体などの無線媒体が含まれる。本明細書で使用する「コンピュータ読取り可能な」という用語には、コンピュータ記憶媒体と通信媒体がともに含まれる。
【００２２】
コンピュータ１０２は、キーボード／キーパッド、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置群を有することが可能である。また、ディスプレイ２２０、スピーカ、プリンタなどの出力装置群２１８も含むことができる。以上の装置群は、当技術分野で周知であり、本願明細書で詳細に説明する必要はない。
【００２３】
下記の説明では、本発明は、特に明記しない限り、１つまたは複数のコンピューティング装置によって実行される動作、および操作の記号表現に関連して説明する。このため、コンピュータが実行するものとして、ときとして述べるそのような動作および操作には、コンピュータ１０２の処理装置による、構造化された形態のデータを表す電気信号の操作が含まれることを理解されたい。この操作は、データを変換するか、またはコンピュータ１０２のメモリシステムの中の場所にデータを保持し、この変換または保持により、コンピュータ１０２の動作が、当業者はよく理解されている形で再構成されるか、または別の仕方で変更される。データが保持されるデータ構造は、そのデータのフォーマットによって定義された特定のプロパティを有するメモリの物理的な場所である。ただし、本発明を以上の文脈で説明しているが、限定することを意図するものではない。というのは、後述する動作および操作のいくつかは、ハードウェアで実施することも可能であることが、当業者には認められるからである。
【００２４】
図３は、本発明の実施形態に従って使用することができるコンピュータ１０２のアーキテクチャの詳細を示すブロック図である。コンピュータ１０２は、符号３０２で示したホストファイアウォールサービス群を含む。ファイアウォールサービス群３０２は、コンピュータ１０２上で実行される、または別の形でコンピュータ１０２に関連するオペレーティングシステムのコンポーネント、または別個のファイアウォールアプリケーションまたはファイアウォールプログラムであることが可能である。一般に、本明細書で使用する「ファイアウォールサービス」とは、ファイアウォールポリシーを管理すること、および実施のためにポリシー群をカーネルコンポーネント群に下ろさせる（ｐｌｕｍｂ  ｄｏｗｎ）ことを担うユーザモードサービスである。図示した例では、ファイアウォールサービス群３０２は、ファイアウォールサービス群が、ファイアウォールサービス群が実行されているコンピュータ１０２を保護するという点で、ホストファイアウォールサービス群として作用する。ファイアウォールサービス群３０２は、コンピュータ１０２にゲートウェイ装置として動作させるように構成することもできる。
【００２５】
本発明の一実施形態では、図３にファイアウォールオブジェクトモデル３００として示したオブジェクトモデルが、図３に示した実施形態では、ファイアウォールサービス群３０２であるネットワークサービス群を管理するための一般的なフレームワークとして提供される。本発明の実施形態は、ファイアウォールサービス群３０２のようなファイアウォールサービス群を管理するためのオブジェクトモデルに関して説明するが、本発明の態様、および本発明の実施形態を利用して、限定されない例として、ネットワークサービス品質、保護者による制限、ネットワーク侵入検出など、コンピュータのための他のネットワーキングサービス群を管理することもできる。
【００２６】
簡単に説明すると、ファイアウォールオブジェクトモデル３００は、ファイアウォールサービス群３０２を構成すること、および管理することに絡む多くの考え得る問題に対処するユーザおよび／または管理者の労力を削減する。コンピュータ１０２のユーザ、あるいはコンピュータまたは安全なネットワークの管理者は、ファイアウォールオブジェクトモデル３００を利用して、ファイアウォールサービス群３０２を管理することができる。例えば、ユーザが、ファイアウォールユーザインタフェース３０４にアクセスすることができ、インタフェース３０４は、ファイアウォールオブジェクトモデル３００にアクセスし、インタフェース３０４を介してユーザは、ファイアウォールサービス群３０２に関するファイアウォールポリシー３０８を設定することができる。ファイアウォールユーザインタフェース３０４は、例えば、ファイアウォールサービス群３０２によって提供されても、あるいは、例えば、アプリケーションにより、またはオペレーティングシステムの一部として提供されてもよい。さらに、ファイアウォールオブジェクトモデル３００は、リモート管理ツール３０６により、例えば、ネットワーク管理者によってアクセスされることも可能である。このようにして、ファイアウォールオブジェクトモデル３００を使用して、ファイアウォールサービス群３０２に関するポリシー群を遠隔から設定することができ、単独の管理者が、多数のコンピュータ上のサービス群を管理することが可能になる。
【００２７】
ファイアウォールポリシー３０８は、コンピュータ１０２上に保持されるか、またはコンピュータ１０２に関連付けられる。図示した実施形態では、ファイアウォールポリシー３０８は、データベースとして示されるが、ファイアウォールポリシー３０８は、いくつかのデータベースの中に保持しても、別の適切な形で格納してもよい。
【００２８】
ファイアウォールオブジェクトモデル３００は、２つの主要な名前空間、すなわち、ファイアウォールポリシーエンジンプラットフォーム３１０およびポリシーオブジェクトモデル３１２を含む。簡単に説明すると、ファイアウォールポリシーエンジンプラットフォーム３１０は、ファイアウォールポリシー３０８およびファイアウォールプラットフォームカーネルコンポーネント群３１４と対話するためのセントラルポイントである。ＴＣＰ／ＩＰスタック、つまりネットワークスタックなどのファイアウォールプラットフォームカーネルコンポーネント群３１４は、コンピュータ１０２からのパケット、またはその他の情報をフィルタ処理する機能を実際に実行するカーネルのコンポーネント群である。ファイアウォールポリシーエンジンプラットフォーム３１０は、以下にさらに説明するとおり、ポリシーを作成する動作、およびポリシーを構成する動作を実行する。
【００２９】
ポリシーオブジェクトモデル３１２は、ファイアウォールサービス群３０２がサポートするファイアウォールポリシー群を指定するのに使用される。ポリシーオブジェクトモデル３１２は、以下にされに説明するとおり、上級ユーザが、従来のパケット中心タイプのフィルタリングポリシーを定義することを可能にするか、またはそれほど上級でないユーザが、アプリケーション、およびアプリケーションのユーザに基づいてポリシーを定義することを可能にする。
【００３０】
ファイアウォールオブジェクトモデル３００は、扱いやすいオブジェクトがクラスおよびインスタンスの概念を使用してモデル化される、オブジェクト指向パラダイムを使用する。ファイアウォールオブジェクトモデル３００の中に存在するオブジェクト群は、クラス、インスタンス、プロパティ、および限定子である。クラスは、オブジェクトのためのモデルまたはテンプレートであり、インスタンスは、クラスの発生（ｏｃｃｕｒｒｅｎｃｅ）であり、プロパティは、クラスまたはインスタンスの個々のフィールドであり、限定子は、以上のいずれかの修飾子である。ポリシーオブジェクトモデル３１２を使用して、ファイアウォールサービス群のセキュリティ措置を指定する規則であるポリシーオブジェクト群を定義することができる。ファイアウォールポリシーエンジンプラットフォーム３１０は、ポリシーオブジェクト群に対して作成、削除、または変更などの動作を実行することができるアクティブなオブジェクト群を含む。
【００３１】
図４は、ファイアウォールポリシーオブジェクトモデル３１２の一実施形態に従って作成することができる、ファイアウォールサービスオブジェクト群を概ね表す図を示す。ＰｏｌｉｃｙＯｂｊｅｃｔオブジェクト４００は、ファイアウォールオブジェクトモデル３００の中で使用されるオブジェクト群の抽象基本クラスである。ＰｏｌｉｃｙＯｂｊｅｃｔオブジェクト４００は、３つの主要なサブクラス、すなわち、ＰｏｌｉｃｙＲｕｌｅ４０２、ＰｏｌｉｃｙＡｃｔｉｏｎ４０４、およびＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎ４０６を有する。ＰｏｌｉｃｙＲｕｌｅ４０２は、規則をモデル化し、提供した例では５つの異なるプロパティを含む。第１のプロパティ、Ｃｏｎｄｉｔｉｏｎは、その規則におけるアクションが行われるために適合すべき、１つまたは複数の条件を定義する。それらの条件は、下記でさらに説明するとおり、ＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎクラス群によって表すことができる。第２のプロパティ、Ａｃｔｉｏｎは、その規則において指定された条件に適合した場合に行われるべき１つまたは複数のアクションを定義する。それらのアクションは、下記でさらに説明するとおり、ＰｏｌｉｃｙＡｃｔｉｏｎクラスによって表すことができる。第３のプロパティ、ＴｉｍｅＣｏｎｓｔｒａｉｎｔは、その規則が有効になる曜日および時間帯、例えば、月曜から金曜の午前９時から午後５時までを指定する。第４のプロパティ、ＮｅｔｗｏｒｋＬｏｃａｔｉｏｎは、規則が有効であるネットワークの場所を指定する。第５のプロパティ、Ｗｅｉｇｈｔは、規則の重みを示し、規則の競合を解決するファイアウォールポリシーエンジンプラットフォーム３１０によって使用される。ユーザまたは管理者は、例えば、ファイアウォールユーザインタフェース３０４またはリモート管理ツール３０６を介して、ＴｉｍｅＣｏｎｓｔｒａｉｎｔプロパティ、ＮｅｔｗｏｒｋＬｏｃａｔｉｏｎプロパティ、およびＷｅｉｇｈｔプロパティを編集することができる。
【００３２】
ＰｏｌｉｃｙＲｕｌｅ４０２は、抽象クラスであり、ＰｏｌｉｃｙＲｕｌｅ４０２から基本抽象ファイアウォールポリシーオブジェクト群を派生させることができる。図５は、ＰｏｌｉｃｙＲｕｌｅ４０２から派生された５つの異なる基本ファイアウォールポリシーオブジェクトの例を示している。他のオブジェクトも、あるネットワークポリシー群によって、例えば、サービス品質（ＱｏＳ）ポリシー群またはペアレンタルコントロールポリシー群によって課されるさらなる制約を反映するように、必要に応じて派生させることができる。図５に示した５つの基本ファイアウォールポリシーオブジェクト群は、ＴｒａｎｓｐｏｒｔＲｕｌｅ５０２、ＫｅｙｉｎｇＭｏｄｕｌｅ５０４、ＩＫＥＲｕｌｅ５０６、ＩＰＳｅｃＲｕｌｅ５０８、およびＡｐｐｌｉｃａｔｉｏｎＲｕｌｅ５１０である。上記の例示的な派生したポリシー規則クラスに関する詳細を別紙Ａに含める。
【００３３】
本発明の一実施形態によれば、ファイアウォールサービス群３０２は、パケットがネットワークスタックの中を通るにつれ、いくつかの異なるレイヤにおいてパケットを検査することができる。例えば、ファイアウォールサービス群３０２は、ＩＰフレーミングレイヤフィルタ、ＴＣＰレイヤフィルタ、トランスポートレイヤフィルタ、アプリケーションレイヤフィルタ、リモートプロシージャコールレイヤフィルタ、およびアイテムがブロックされるまでに、スタック全体を通らなくてもよいようにより低いレベルのフィルタリングを提供する他の多くのフィルタを含むことが可能である。そのようなファイアウォールサービス群３０２は、まだリリースされていないマイクロソフトのＬＯＮＧＨＯＲＮオペレーティングシステムに実装されることが予定されている。第三者が様々なレイヤにおいて行われるフィルタ処理の判断に参加することを可能にするアプリケーションプログラミングインタフェース群を、第三者に提供することができる。フィルタ群の具体的な実装の詳細は、本発明の説明に必要ではない。しかし、基本抽象ファイアウォールポリシーオブジェクト群は、それぞれのレイヤにおいてこれらの特定のフィルタ群を使用して動作するように構成することができる。
【００３４】
ＴｒａｎｓｐｏｒｔＲｕｌｅ５０２は、標準の５組において主にフィルタ処理する従来のファイアウォール規則をモデル化する。ＩＰＳｅｃＲｕｌｅ５０８，ＫｅｙｉｎｇＭｏｄｕｌｅ規則５０４、およびＩＫＥＲｕｌｅ５０６は、ＩＰＳｅｃ関連ポリシー群を指定するための３つの異なる規則である。周知のとおり、ＩＰＳｅｃは、インターネットなどの保護されていないネットワークを介する機密情報の伝送に関してセキュリティを提供するプロトコルである。ＩＰＳｅｃは、ネットワークレイヤとして作用し、参加する装置の間でＩＰパケットを保護し、認証する。ＩＰＳｅｃＲｕｌｅ５０８、ＫｅｙｉｎｇＭｏｄｕｌｅ規則５０４、およびＩＫＥＲｕｌｅ５０６の詳細は、本明細書に添付した別紙Ａで提供している。
【００３５】
ＡｐｐｌｉｃａｔｉｏｎＲｕｌｅ５１０は、２００３年６月５日に出願した、「アプリケーションがファイアウォールを通過するのを支援する方法（Ｍｅｔｈｏｄ  ｏｆ  Ａｓｓｉｓｔｉｎｇ  ａｎ  Ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  Ｔｒａｖｅｒｓｅ  ａ  Ｆｉｒｅｗａｌｌ）」という名称の特許文献１で開示されている方法を利用する。簡単に説明すると、この出願は、ユーザが、単純なファイアウォールポリシー、またはネットワークアクセスポリシーを容易に作成して、ユーザのコンピュータ上のファイアウォールを認識していないアプリケーション群およびサービス群が、ネットワークに接続することを許可するか、または拒否することができるようにする、ネットワークスタックとともに利用することができるアプリケーションレイヤ（「ＡＬＥ」）について説明している。ポリシー群は、ユーザ別に、およびアプリケーション別に設定される。ユーザは、アプリケーションが、ファイアウォールを介して働くことができるようにするために、規則レポート、プロトコル、またはＩＰアドレスを知っている、または使用する必要がない。制約モジュールは、アプリケーション群およびサービス群によるネットワークスタックに対する接続の試み、およびリッスンの試みを監視するインターセプトモジュールを含む。インターセプトモジュールは、それらの試みを捕え、どのようなユーザがその試みを行っているか、どのようなアプリケーションまたはサービスがその試みを行っているかを判定した後、ファイアウォールポリシールックアップを実行して、そのユーザおよび／またはアプリケーションがネットワークに接続することが許されているか否かを判定する。許されている場合、インターセプトモジュールは、要求されている接続のために自らを構成するようにホストファイアウォールおよび／またはエッジファイアウォールに命令することができる。
【００３６】
ＰｏｌｉｃｙＣｏｎｄｉｔｏｎオブジェクト４０６は、ポリシー条件クラス群を派生させることができる抽象オブジェクトである。各ポリシー条件クラスは、ファイアウォールサービス群３０２が直面する可能性があるモードまたは状況を表す。図６は、本発明の一実施形態によるＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎオブジェクト４０６から派生させられることができるいくつかの異なるポリシー条件クラスを示す。これらのポリシー条件クラスの各々は、ＩＰ条件、トランスポート条件、アプリケーション条件、またはファイアウォールサービス群３０２を使用しようと試みた際に存在する可能性があるその他のモードなどの、異なるモードまたは条件を表す。ＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎ４０６から派生したクラスは、サブクラスを有することが可能である。例えば、トランスポート条件群には、例として、ＴＣＰ条件、ＩＣＭＰ条件、ＵＤＰ条件が含まれることが可能である。図６に示した条件クラス群の説明を別紙Ｂに含める。この場合も、前述したポリシーオブジェクト群の場合と同様に、条件群は、ファイアウォールサービス群３０２に利用可能なフィルタ群に関連することが可能である。
【００３７】
いくつかの異なるポリシーアクションをポリシーオブジェクトモデル３１２とともに利用することができる。ＰｏｌｉｃｙＡｃｔｉｏｎクラス４０４から派生した異なるポリシーアクションクラスの例を図７に示している。一般に、許されるアクションは、関連する条件に合致するパケットを許可するＰｅｒｍｉｔ、関連する条件に合致しないパケットをドロップするＤｅｎｙ、および関連する条件に合致するパケットをログ記録するＬｏｇである。上記の組み合わせも使用することができる。認証などのより複雑なアクション群も提供することができる。図７に示したアクションの多くの例の説明を別紙Ｃに含める。
【００３８】
図８で見ることができるとおり、本発明の一実施形態によれば、ファイアウォールポリシーエンジンプラットフォーム３１０は、４つの主要なクラス、すなわち、ファイアウォールクラスオブジェクト８０２、設定エディタクラスオブジェクト８０４、規則エディタクラスオブジェクト８０６、および規則エクスプローラクラスオブジェクト８０８を含む。ファイアウォールクラスオブジェクト８０２は、ファイアウォールサービス群３０２と対話するための主要なクラスである。ファイアウォールクラスオブジェクト８０２は、シングルトン（ｓｉｎｇｌｅｔｏｎ）パターンに従ってファイアウォールサービス群３０２を参照する。つまり、クラスは、単一のインスタンス、すなわち、コンピュータ１０２上で利用可能なファイアウォールサービス群３０２だけを一意に記述する。
【００３９】
ファイアウォールクラスオブジェクト８０２に関する例示的なプロパティ群およびメソッド群のリストを、図９にファイアウォールポリシーエンジンプラットフォーム３１０の一部として示す。ファイアウォールクラスオブジェクト８０２の場合、本発明の一実施形態によれば、ファイアウォールクラスオブジェクト８０２は、ＦｉｒｅｗａｌｌＭｏｄｅおよびＬｏｇＳｅｔｔｉｎｇｓのプロパティを含む。ＦｉｒｅｗａｌｌＭｏｄｅは、ファイアウォールサービス群３０２の現在のフィルタリングモードである。ＦｉｒｅｗａｌｌＭｏｄｅの値は、例えば、ファイアウォールサービス群３０２が実行されており、定義された設定を実施していることを表すＢｌｏｃｋＡｌｌＴｒａｆｆｉｃ、ＰｅｒｍｉｔＡｌｌＴｒａｆｉｃ、またはＦｉｌｔｅｒｉｎｇであることが可能である。ＬｏｇＳｅｔｔｉｎｇｓは、ログ記録されるべき事柄、ログ記録制限、およびオーバーフロー動作を含め、ログ記録設定を指定するグローバル設定を表すことが可能である。これらのプロパティの各々が、例えば、ファイアウォールユーザインタフェース３０４またはリモート管理ツール３０６を介して編集可能である。その他のプロパティ群もファイアウォールクラスオブジェクト８０２の一部として含めることができる。ファイアウォールクラスオブジェクト８０２は、ファイアウォールポリシーエンジンプラットフォーム３１０のその他３つのクラス、すなわち、設定エディタクラスオブジェクト８０４（ＡｃｑｕｉｒｅＳｅｔｔｉｎｇＥｄｉｔｏｒ）、規則エディタクラスオブジェクト８０６（ＡｃｑｕｉｒｅＲｕｌｅＥｄｉｔｏｒ）、および規則エクスプローラクラスオブジェクト８０８（ＡｃｑｕｉｒｅＲｕｌｅＥｘｐｌｏｒｅｒ）の新たなインスタンスをインスタンス化する、つまり作成するメソッドまたは操作も含むことが可能である。ファイアウォールクラスオブジェクトの構成の例を別紙Ｅに含める。
【００４０】
メソッドＡｃｑｕｉｒｅＳｅｔｔｉｎｇＥｄｉｔｏｒ、ＡｃｑｕｉｒｅＲｕｌｅＥｄｉｔｏｒ、およびＡｃｑｕｉｒｅＲｕｌｅＥｘｐｌｏｒｅｒの各々は、ポリシープロバイダをパラメータとして利用する。本発明の一実施形態によれば、ファイアウォールクラスオブジェクト８０２は、複数のポリシープロバイダのポリシー間で競合が存在する場合に、調停役（ａｒｂｉｔｒａｔｏｒ）として作用する。一般に、ポリシープロバイダは、ファイアウォールサービス群３０２に関するファイアウォールポリシー群のソースであり、好ましくは、安全に特定することができるソースである。ポリシープロバイダは、このプロバイダからのすべての規則が追加される特定の優先クラスまたは優先レベルに関連付けられる。例えば、ポリシープロバイダを個々の優先順位に従ってランク付けすることができる。リモートネットワークセキュリティ管理サーバ、例えば、付加価値サービスとしてユーザのコンピュータを管理するユーザのインターネットサービスプロバイダ（ＩＳＰ）が、最高の優先順位を示す「１」というランク付けを得ることが可能であり、ファイアウォールクラスオブジェクト８０２の中でＭａｎａｇｅｄＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒの定義を与えられることが可能である。ＬｏｃａｌＰｒｏｖｉｄｅｒには、「２」という優先順位が与えられ、コンピュータのローカルユーザまたはローカル管理者を表す。ＤｏｍａｉｎＰｒｏｖｉｄｅｒは、ユーザが接続されているドメインの管理者であり、「３」という優先順位を受ける。アプリケーションプロバイダには、「４」という優先順位が与えられることが可能である。アプリケーションプロバイダによる優先順位設定の例が、サーバへのすべてのトラフィックが保護されることを必要とする設定を有した財務サービスアプリケーションである。
【００４１】
設定エディタクラス８０４は、ＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇｓ、ＤｅｆａｕｌｔＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇ、ＤｅｆａｕｌｔＯＳＳｅｒｖｉｃｅＳｅｔｔｉｎｇ、ＴｒｕｓｔｅｄＺｏｎｅ、ＳｅｃｕｒｅＺｏｎｅ、およびＩｓＩＣＭＰＡｌｌｏｗｅｄを含め、いくつかのプロパティを含むことが可能である。ＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇｓプロパティは、システムの中に格納されているアプリケーションファイアウォール規則群を表す。ＤｅｆａｕｌｔＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇは、アプリケーションのファイアウォール設定が指定されていない場合に適用されるべき、既定のファイアウォール設定である。ＤｅｆａｕｌｔＯＳＳｅｒｖｉｃｅＳｅｔｔｉｎｇは、オペレーティングシステムサービスのファイアウォール設定が未指定である場合に適用されるべき既定のファイアウォール設定である。ＴｒｕｓｔｅｄＺｏｎｅプロパティは、アプリケーション設定が独自の信頼できるインターネットプロトコル（「ＩＰ」）アドレスを指定しない場合に使用されるべき信頼できるＩＰアドレスリストである。ＳｅｃｕｒｅＺｏｎｅプロパティは、アプリケーション設定が独自の信頼できる認証済みのリモートＩＤを指定しない場合に使用されるべき、既定の信頼できる認証済みのＩＤリストである。最後に、ＩｓＩＣＭＰＡｌｌｏｗｅｄプロパティは、インターネット制御メッセージプロトコル（「ＩＣＭＰ」）メッセージが許可されるか否か、例えば、ＴＣＰ／ＩＰスタックが、ｐｉｎｇに応答し、ＩＣＭＰエラーを生成するか否かを示す。許可されない場合、ＩＣＭＰメッセージはブロックされる。ＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇｓプロパティを除き、以上のプロパティのすべては、例えば、ファイアウォールユーザインタフェース３０４またはリモート管理ツール３０６を介して編集可能であり得る。
【００４２】
図９に示す設定エディタ８０４の例は、２つのメソッド、すなわち、ＳｅｔＤｅｆａｕｌｔＳｅｃｕｒｉｔｙＬｅｖｅｌおよびＧｅｔＳｅｃｕｒｉｔｙＬｅｖｅｌを含む。ＳｅｔＤｅｆａｕｌｔＳｅｃｕｒｉｔｙＬｅｖｅｌのパラメータは、ユーザおよびセキュリティレベルである。ＧｅｔＳｅｃｕｒｉｔｙＬｅｖｅｌのパラメータは、ユーザである。ＳｅｔＤｅｆａｕｌｔＳｅｃｕｒｉｔｙＬｅｖｅｌにより、ユーザまたは管理者は、パラメータによって指定されたユーザに関する既定のセキュリティレベルを設定することができるようになる。ＧｅｔＳｅｃｕｒｉｔｙＬｅｖｅｌにより、ユーザまたは管理者は、パラメータによって指定されたユーザに関する既定のセキュリティレベルを取得することができるようになる。
【００４３】
設定エディタクラスオブジェクト８０４は、ファイアウォール−ポリシー管理ソフトウェア開発者に、ファイアウォールポリシーを単純なアプリケーション中心、ユーザ中心の形で管理するプログラマティックインタフェースを提供する。設定エディタクラスオブジェクト８０４が操作する主要なオブジェクトは、ＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇ９０２およびＳｅｃｕｒｉｔｙＬｅｖｅｌ９０４である。ＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇ９０２は、セキュリティレベルをアプリケーションおよびユーザに関連付け、３つのプロパティ、すなわち、ＡｐｐｌｉｃａｔｉｏｎＩＤ、Ｕｓｅｒ、およびＳｅｃｕｒｉｔｙＬｅｖｅｌを含む。ＡｐｐｌｉｃａｔｉｏｎＩＤおよびＵｓｅｒは、そのＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇ９０２が関わるアプリケーション、およびそのＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇが指定されるユーザを表す。ＡｐｐｌｉｃａｔｉｏｎＩＤとＵｓｅｒが一緒に、ＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇ９０２に関する固有キーを形成する。ＳｅｃｕｒｉｔｙＬｅｖｅｌは、読み取り−書き込みプロパティであり、例えば、ファイアウォールユーザインタフェース３０４またはリモート管理ツール３０６を介して、ユーザまたは管理者によって編集されることが可能である。このプロパティは、特定のユーザ（Ｕｓｅｒ）が特定のアプリケーション（ＡｐｐｌｉｃａｔｉｏｎＩＤ）を使用する場合のセキュリティレベルを表す。
【００４４】
ＳｅｃｕｒｉｔｙＬｅｖｅｌは、ＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇ９０２のＧｅｔＲｕｌｅｓメソッドを利用してＳｅｃｕｒｉｔｙＬｅｖｅｌオブジェクト９０４によって供給されることが可能である。ＧｅｔＲｕｌｅｓオブジェクトは、Ａｐｐｌｉｃａｔｉｏｎ、Ｕｓｅｒ、およびＣｏｎｔａｃｔｓのパラメータを利用して、「このユーザがこのアプリケーションを使用する場合、これらの遠隔の接点（ｒｅｍｏｔｅ  ｃｏｎｔａｃｔ）に関してこのセキュリティレベルを使用する」という設定を課すアプリケーション規則群のリストを得る。本発明の一実施形態によれば、ＳｅｃｕｒｉｔｙＬｅｖｅｌオブジェクト９０４は、アプリケーション、ユーザ、および接点（ｃｏｎｔａｃｔ）の特定のセキュリティレベルに関するアプリケーション規則群のリストを含むテンプレートの集合を含む。ＳｅｃｕｒｉｔｙＬｅｖｅｌオブジェクト９０４およびＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇに関するさらなる情報を別紙Ｄで提供している。
【００４５】
ＲｕｌｅＥｄｉｔｏｒクラスオブジェクト８０６は、ポリシー追加、ポリシー削除、またはポリシー更新などのポリシーに関連する操作を実行するために、上級のポリシープロバイダによって使用されるアプリケーションプログラミングインタフェースである。前述したとおり、単一のホスト上に複数のポリシープロバイダが存在する場合がある。ＲｕｌｅＥｄｉｔｏｒクラスオブジェクト８０６は、管理者およびパワーユーザが、ファイアウォールサービス群３０２のポリシー規則群に関する特定のパラメータを定義することができるようにするシステムの高機能表示（ａｄｖａｎｃｅｄ  ｖｉｅｗ）を提供する。図９のＲｕｌｅＥｄｉｔｏｒクラスオブジェクト８０６の例は、２つのプロパティ、すなわち、ＰｒｉｏｒｉｔｙＣｌａｓｓおよびＰｒｏｖｉｄｅｒを含む。ＰｒｉｏｒｉｔｙＣｌａｓｓは、前述したとおり、特定のプロバイダに与えられる優先順位のクラスである。Ｐｒｏｖｉｄｅｒは、アクションを要求するプロバイダである。
【００４６】
図９のＲｕｌｅＥｄｉｔｏｒクラスオブジェクト８０６の例は、５つのメソッド、すなわち、ＡｄｄＲｕｌｅ、ＲｅｍｏｖｅＲｕｌｅ、ＵｐｄａｔｅＲｕｌｅ、ＧｅｔＲｕｌｅｓ、およびＲｅｍｏｖｅＡｌｌを含む。ＡｄｄＲｕｌｅは、ポリシーの集合をファイアウォールポリシーエンジンプラットフォーム３１０までプッシュダウンする（ｐｕｓｈ  ｄｏｗｎ）ために利用される。ＰｏｌｉｃｙＲｕｌｅを追加する要求は、ＰｏｌｉｃｙＲｕｌｅが無効である（例えば、ＰｏｌｉｃｙＡｃｔｉｏｎが、ＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎに合致しない）場合、ポリシーを追加しようとしているプロバイダが、（例えば、前述したランク付けに基づいて）それを行う特権を有さない場合、またはトランザクションが中止された場合、失敗する場合がある。ＰｏｌｉｃｙＲｕｌｅを追加する要求が失敗しなかった場合、ファイアウォールポリシーエンジンプラットフォーム３１０は、その新たなポリシーをファイアウォールプラットフォームカーネルコンポーネント群３１４まで下ろす（ｐｌｕｍｂ  ｄｏｗｎ）。
【００４７】
ＲｅｍｏｖｅＲｕｌｅは、指定済みのポリシーを削除するのに利用され、削除されるべき特定のポリシーのパラメータを含み、不適切な特権またはトランザクション失敗のために失敗する場合がある。ＵｐｄａｔｅＲｕｌｅは、以前に追加された指定済みのポリシーを変更するために使用され、パラメータとして、変更されるべきポリシーを利用する。ＵｐｄａｔｅＲｕｌｅは、ＡｄｄＲｕｌｅと同一の例外の対象となる。ＲｅｍｏｖｅＡｌｌは、この特定のポリシープロバイダが作成した規則のすべてを削除し、不十分な特権に起因して失敗する場合がある。ＲｅｍｏｖｅＡｌｌは、アトミック操作、すなわち、１回のトランザクションで行われる場合がある。
【００４８】
規則エクスプローラクラスオブジェクト８０８は、ユーザまたは管理者が、特権の対象となる、ファイアウォールプラットフォーム内に現在、存在するすべてのポリシーを閲覧することを可能にする。本発明の一実施形態によれば、表示（ｖｉｅｗ）は、読み取り専用である。図９の規則エクスプローラクラスオブジェクト８０８の例では、１つのイベント、すなわち、ＲｕｌｅＣｈａｎｇｅｄＥｖｅｎｔが存在する。ＲｕｌｅＣｈａｎｇｅｄＥｖｅｎｔとは、規則エクスプローラクラスオブジェクト８０８に見えるポリシー群が変わった場合に、オブジェクト８０８が通知を受け取ることである。図９の規則エクスプローラクラスオブジェクト８０８の例では、１つのプロパティが存在し、そのプロパティは、ＥｖｅｎｔＦｉｌｔｅｒである。ＥｖｅｎｔＦｉｌｔｅｒにより、ユーザまたは管理者は、表示されるべきポリシーの下位集合を定義することができるようになる。ＥｖｅｎｔＦｉｌｔｅｒに従ってファイアウォールプラットフォーム内で、現在課されている規則を得るＧｅｔＲｕｌｅｓの単一のメソッドが存在する。この操作は、単一のトランザクションで行うことが可能である。
【００４９】
図１０は、本発明の一実施形態によるＲｕｌｅＥｄｉｔｏｒオブジェクト８０６を利用してポリシー規則を作成するステップ、編集するステップ、または削除するステップを概ね表すフローチャートである。これらのステップは、例えば、ファイアウォールユーザインタフェース３０４またはリモート管理ツール３０６に関連するソフトウェアを介して実行することができる。
【００５０】
ステップ１０００において開始し、ファイアウォールクラス８０２が作成される。次に、ユーザは、ステップ１００２において、ファイアウォールクラス８０２の中のそれぞれのメソッドを使用して、ＲｕｌｅＥｄｉｔｏｒクラスを獲得することを要求する。ステップ１００４において、ユーザが、１つまたは複数のポリシーの削除を要求しているか否かの判定が行われる。ユーザがポリシーの削除を要求している場合、ステップ１００４は、ステップ１００６に分岐し、ユーザが、特定のポリシーをパラメータとして与える。ステップ１００８において、例えば、（前述した）ユーザのプロバイダランク付けを、その特定のポリシーの削除するために必要とされる最低限のランク付けと比較することにより、そのポリシーを削除する許可をユーザが有するか否かの判定が行われる。ユーザが許可を有さない場合、１００８は、ステップ１０１０に分岐し、トランザクションは失敗する。ユーザが許可を有する場合、ステップ１００８は、ステップ１０１２に分岐し、ポリシーが削除される。
【００５１】
ユーザが、ポリシーを編集する、または追加することを所望する場合、ステップ１００４は、ステップ１０１４に分岐する。ポリシーを編集するためのメソッドは、追加するためのメソッドとは多少異なるが、類似点は十分に多く、したがって、この２つを以下で合わせて説明する。図１０に１０１４から示すステップは、ポリシーを追加することを目的としており、編集することとの相違点が相当に大きい場合、以下にさらに説明する。例えば、ユーザは、ポリシーを編集している場合、ステップ１０１４に先立って、そのポリシーをパラメータとして与え、ポリシーを編集することができるようにする。
【００５２】
ステップ１０１４で、ユーザは、ポリシークラスを派生させるか、または図５に示した規則５０２〜５１０などの既存のポリシークラス群から選択する。ステップ１０１６で、ユーザは、選択可能なポリシー条件群から条件を選択するか、または新たなポリシー条件を派生させる。ステップ１０１８で、ユーザは、確立されているポリシー規則に関して、アクションを選択するか、または新たなポリシーアクションを派生させる。ユーザが、ポリシーを作成するのではなく、既存のポリシーを編集していたとすると、ステップ１０１４〜１０１８は、最初から始めるのではなく、異なるポリシークラス、異なる条件、および／または異なるアクションを選択するステップを含むことが可能である。
【００５３】
ステップ１０２０で、特定のユーザが、新たなポリシーにコミットする許可を有するか否かの判定が行われる。この判定は、ステップ１００８で行われる判定と同様に行うことができる。許可を有さない場合、ステップ１０２０は、ステップ１０２２に分岐し、トランザクションは失敗する。ユーザが許可を有する場合、ステップ１０２０は、ステップ１０２４に分岐し、その特定のポリシーが許可されるか否の判定が行われる。例えば、特定の条件が、ポリシークラスによって設定された規則群に準拠するアクションに合致するか否かの判定を行うことができる。合致しない場合、ステップ１０２４は、ステップ１０２６に分岐し、トランザクションは失敗する。合致する場合、ステップ１０２４は、ステップ１０２８に分岐し、ポリシーは、ファイアウォールポリシーエンジンプラットフォーム３１０によってファイアウォールプラットフォームカーネルコンポーネント群３１４まで下ろす。
【００５４】
図１０に示したメソッドにより、上級ユーザが、コンピュータ１０２に関するファイアウォールポリシーを確立することができるようになる。上級ユーザは、コンピュータ１０２のフィルタリングの必要性に応じてファイアウォールポリシー群を設定することができる。
【００５５】
図１１は、設定エディタオブジェクト８０４を利用してポリシー規則を作成するステップを概ね表すフローチャートである。ステップ１１００で開始して、ファイアウォールクラス８０２が作成される。ステップ１１０２で、設定エディタオブジェクトが、ファイアウォールクラス８０２の中で提供されるメソッドを介して獲得される。
【００５６】
アプリケーションおよびユーザが既知であり、アプリケーション設定９０２が、既知のアプリケーションおよび既知のユーザに関して選択可能なセキュリティレベルを与え、ステップ１１０４で、ユーザが、１つまたは複数のセキュリティレベルを選択できるようにされるため、ユーザは、ステップ１１０６で、そのセキュリティレベルの１つを選択する。ユーザが、そのようなセキュリティレベルの設定が許可されていない場合、ステップ１１０８は、ステップ１１１０に分岐し、トランザクションは失敗する。ユーザが許可を有する場合、ステップ１１０８は、ステップ１１１２に分岐し、ファイアウォールポリシーエンジンプラットフォーム３１０が、ポリシーをファイアウォールプラットフォームカーネルコンポーネント群３１４まで下ろす。
【００５７】
図面から理解できるように、図１１のメソッドは、上級でないユーザがコンピュータ１０２に関するファイアウォールポリシーを設定する比較的単純なメソッドを提供する。ポリシーは、ファイアウォールを構成するのに、通常、入力されなければならないポート、パケット、またはその他の項目の知識なしに設定することができる。
【００５８】
図１２は、本発明の実施形態による規則エクスプローラオブジェクト８０８を利用してポリシー規則群を表示するステップを概ね表すフローチャートである。ステップ１２００において開始し、ファイアウォールクラス８０２が作成される。ステップ１２０２において、ＲｕｌｅＥｘｐｌｏｒｅｒオブジェクト８０８が、ファイアウォールクラス８０２の中の関連するメソッドを使用して獲得される。ユーザが閲覧することを所望する規則群（例えば、特定のプロバイダが作成したすべての規則）に関する適切なパラメータが、ステップ１２０４で与えられる。ステップ１２０６で、規則群が、例えば、ファイアウォールユーザインタフェース３０４を介して、ユーザに表示されるように提供される。
【００５９】
図１２には示していないが、ＲｕｌｅＥｘｐｌｏｒｅｒオブジェクト８０８を介して規則群を閲覧することは、許可を要する場合があり、このため、特定のレベル以上のプロバイダに限定される場合がある。さらに、規則群に対して変更が行われた場合、それらの変更の通知を、ＲｕｌｅＣｈａｎｇｅＥｖｅｎｔプロパティを介してユーザに送ることが可能である。
【００６０】
本発明を説明する文脈における（特に添付の特許請求の範囲の文脈における）「ある（”ａ”  ａｎｄ  ”ａｎ”）」、「その（ｔｈｅ）」、および同様の指示語（ｒｅｆｅｒｅｎｔｓ）の使用は、本明細書に特に明記しない限り、または文脈と明らかに矛盾しない限り、単数形と複数形の両方を範囲に含むものと解釈されたい。「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、および「包含する（ｃｏｎｔａｉｎｉｎｇ）」という用語は、特に明記しない限り、制限のない用語（すなわち、「含むが、限定されない」を意味する）ものと解釈されたい。本明細書における値の範囲の記載は、特に明記しない限り、単に、その範囲内に含まれるそれぞれの別個の値を個々に指す略記法の役割をするものとし、それぞれの別個の値が、あたかも本明細書で個別に記載されているかのように本明細書に組み込まれる。本明細書で説明したすべての方法は、本明細書で特に明記しない限り、または文脈と明らかに矛盾しない限り、任意の適切な順序で実行することができる。本明細書で提供するあらゆる例、またはあらゆる典型的な言い回し（例えば、「などの（ｓｕｃｈ  ａｓ）」）の使用は、単に、本発明の実施形態をより明確にすることを目的としており、特に主張しない限り、本発明の範囲に制限を課すものではない。本明細書におけるいずれの言い回しも、主張されていない何らかの要素が、本発明の実施に不可欠であることを示しているものと解釈してはならない。
【００６１】
本発明を実施するための本発明者らが知る最良の形態を含め、本発明の好ましい実施形態を、本明細書で説明している。これらの好ましい実施形態の変種が、以上の説明を読むことで、当業者に明白となり得る。本発明者らは、当業者がそのような変種を適宜、使用するものと予期しており、本発明者らは、本発明が、本明細書で具体的に説明した以外の形で実施されることを企図している。したがって、本発明は、該当する法律によって許される、本明細書に添付した特許請求の範囲に記載する内容のすべての変形形態および等価形態を含む。さらに、本明細書に特に明記しない限り、または文脈と明らかに矛盾しない限り、前述した要素のあらゆる組み合わせが、可能なすべての変種において、本発明に包含される。
【００６２】
（別紙Ａ）
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＡｐｐｌｉｃａｔｉｏｎＲｕｌｅ
【００６３】
【表１】
2005184836.tif 000003
【００６４】
ＡｐｐｌｉｃａｔｉｏｎＲｕｌｅは、アプリケーションレイヤ実施によって課される規則である。ただし、その他のレイヤにおける規則群、例えば、トランスポートレイヤにおけるＩＰＳｅｃ規則のインスタンスを動的に生成して、あるアプリケーションまたはあるユーザによるすべてのトラフィックを保護することも可能である。
【００６５】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＴｒａｎｓｐｏｒｔＲｕｌｅ
【００６６】
【表２】
2005184836.tif 000004
【００６７】
ＴｒａｎｓｐｏｒｔＲｕｌｅは、主に標準の５組でフィルタ処理を行う従来のファイアウォール規則をモデル化する。
【００６８】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＩＫＥＲｕｌｅ
【００６９】
【表３】
2005184836.tif 000005
【００７０】
ＩＰＳｅｃ関連のポリシー群を指定するための３つの異なる規則、すなわち、ＩＰＳｅｃＲｕｌｅ、ＫｅｙｉｎｇＭｏｄｕｌｅＲｕｌｅ、およびＩＫＥＲｕｌｅが存在する。ＩＰＳｅｃＲｕｌｅは、合致するトラフィックがＩＰＳｅｃコールアウトをトリガするトランスポートレイヤにおいて追加される。ＩＰＳｅｃコールアウトは、パケット内にセキュリティコンテキストを設定し、既存のＳＡを探索してトラフィックを保護するようにＩＰＳｅｃモジュールが呼び出される。全く見つからない場合、ＫｅｙｉｎｇＭｏｄｕｌｅＲｕｌｅを照合して、キーネゴシエーションを実行すべき正しいキーイングモジュールを見つける。選択されたキーイングモジュールに依存して、対応するＩＫＥＲｕｌｅまたはＭａｍｉｅＲｕｌｅを照合して、キー交換を実行するのに適切な構成設定を見つける。次に、ＩＰＳｅｃＲｕｌｅを再び照合して、トラフィックを実際に保護するために使用される適切なＩＰＳｅｃ  ＳＡ、例えば、ＡＨまたはＥＳＰをセットアップする。
【００７１】
ＩＫＥＲｕｌｅは、ＩＫＥキーネゴシエーションプロトコルを実行するためのパラメータ群を指定する。ＩＫＥＲｕｌｅは、ローカルアドレスおよびリモートアドレスだけを条件としてとることができる。ＩＫＥＲｕｌｅに関するアクションが、ＩＫＥＡｃｔｉｏｎである。
【００７２】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＩＰＳｅｃＲｕｌｅ
【００７３】
【表４】
2005184836.tif 000006
【００７４】
概念上、ＩＰＳｅｃＲｕｌｅは、２つの別個の役割を果たし、１つは、関連付ける条件に合致した場合にＩＰＳｅｃコールアウトをトリガすることであり、もう１つは、合致するトラフィックを保護するための構成パラメータ群を示すことである。したがって、ＩＰＳｅｃＲｕｌｅは、どのようなパケットが保護される必要があるかということと、それらのパケットがどのように保護されるかということの両方を指定する。異なる５組が、異なるＩＰＳｅｃパラメータを有することが可能である。トランスポートレイヤにおいて、ファイアウォールプラットフォームは、標準の５組より多くのフィールド、例えば、ＴＣＰフラグ群を照合することができるが、ＩＰＳｅｃを実行する目的では、５組で十分である。したがって、ＩＰＳｅｃＲｕｌｅは、標準の５組、すなわち、送信元アドレス、宛先アドレス、プロトコル、送信元ポート、および宛先ポートだけを条件フィールド群としてリストアップする。その他のフィールドを追加することも、それらのフィールドに基づいて同一の５組に合致するトラフィックを異なる形で保護することを要する実際的なケースが存在する場合、可能である。
【００７５】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＫｅｙｉｎｇＭｏｄｕｌｅＲｕｌｅ
【００７６】
【表５】
2005184836.tif 000007
【００７７】
ＫｅｙｉｎｇＭｏｄｕｌｅＲｕｌｅは、ホストまたはユーザであることが可能なリモートピアへの既存の保護されたチャネル（関連付け）が全く存在しない場合、いずれのキーネゴシエーションモジュールが使用されるべきかを選択する。ＫｅｙｉｎｇＭｏｄｕｌｅＲｕｌｅも、標準の５組を条件としてとる。複数のモジュールが、例えば、従来のＩＫＥに加えてユーザ認証用にＭａｍｉｅが選択可能である場合、ＫｅｙｉｎｇＭｏｄｕｌｅＡｃｔｉｏｎは、それらのモジュールの１つが成功するか、すべてが失敗するまで、それらのモジュールが同時に、または順次に試みられる順序でモジュールをリストアップする。
【００７８】
（別紙Ｂ）
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎ
【００７９】
【表６】
2005184836.tif 000008
【００８０】
【表７】
2005184836.tif 000009
【００８１】
【表８】
2005184836.tif 000010
【００８２】
【表９】
2005184836.tif 000011
【００８３】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．Ｅｔｈｅｒｎｅｔ（登録商標）  Ｃｏｎｄｉｔｉｏｎ
【００８４】
【表１０】
2005184836.tif 000012
【００８５】
【表１１】
2005184836.tif 000013
【００８６】
【表１２】
2005184836.tif 000014
【００８７】
【表１３】
2005184836.tif 000015
【００８８】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＩＰＣｏｎｄｉｔｉｏｎ
【００８９】
【表１４】
2005184836.tif 000016
【００９０】
ＩＰＡｄｄｒｅｓｓクラスは、Ｓｙｓｔｅｍ．Ｎｅｔ名前空間から取得される。ＩＰＡｄｄｒｅｓｓクラスは、ｖ４のＩＰアドレスとｖ６のＩＰアドレスをともにサポートする。しかし、１つの特定の条件に関して、１つのアドレスファミリの文脈においてすべての条件フィールドが解釈されなければならない。つまり、ＩＰＡｄｄｒｅｓｓクラスは、送信元アドレスがｖ４のアドレスであるが、宛先アドレスがｖ６のアドレスである場合、ランタイム例外を生じさせる。
【００９１】
【表１５】
2005184836.tif 000017
【００９２】
【表１６】
2005184836.tif 000018
【００９３】
【表１７】
2005184836.tif 000019
【００９４】
【表１８】
2005184836.tif 000020
【００９５】
【表１９】
2005184836.tif 000021
【００９６】
【表２０】
2005184836.tif 000022
【００９７】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＴｒａｎｓｐｏｒｔＣｏｎｄｉｔｉｏｎ
【００９８】
【表２１−１】
2005184836.tif 000023
【００９９】
【表２１−２】
2005184836.tif 000024
【０１００】
【表２１−３】
2005184836.tif 000025
【０１０１】
ＩＣＭＰｖ６は、ＩＣＭＰｖ４とは異なる形でＩＣＭＰタイプおよびＩＣＭＰコードを定義する。送信元アドレスおよび宛先アドレスのアドレスファミリにより、ＩＣＭＰＣｏｎｄｉｔｉｏｎがＩＣＭＰｖ４として解釈されるか、ＩＣＭＰｖ６として解釈されるかが決まる。
【０１０２】
【表２２】
2005184836.tif 000026
【０１０３】
【表２３】
2005184836.tif 000027
【０１０４】
【表２４】
2005184836.tif 000028
【０１０５】
【表２５】
2005184836.tif 000029
【０１０６】
【表２６】
2005184836.tif 000030
【０１０７】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＩＰＳｅｃＡｕｔｈｏｒｉｚａｔｉｏｎＣｏｎｄｉｔｉｏｎ
【０１０８】
【表２７】
2005184836.tif 000031
【０１０９】
ＩＰＳｅｃＡｕｔｈｏｒｉｚａｔｉｏｎＣｏｎｄｉｔｉｏｎは、着信パケットＩＰＳｅｃコンテキストにも、発信パケットＩＰＳｅｃコンテキストにも照合される。検査は、ＩＰＳｅｃ認証が完了した直後に行われるものとされる。関連するアクションがＰｅｒｍｉｔである場合、ＩＰＳｅｃ  ＳＡが確立され、トラフィックは保護される。行われるアクションがＤｅｎｙである場合、ＳＡは全く作成されず、ＩＰＳｅｃメインモードネゴシエーションは失敗する。
【０１１０】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＡｐｐｌｉｃａｔｉｏｎＣｏｎｄｉｔｉｏｎ
【０１１１】
【表２８−１】
2005184836.tif 000032
【０１１２】
【表２８−２】
2005184836.tif 000033
【０１１３】
ＡｐｐｌｉｃａｔｉｏｎＣｏｎｄｉｔｉｏｎは、アプリケーションレイヤ制約によって公開される条件群と照合される。これは、アプリケーションベースのファイアウォールポリシーおよびユーザベースのファイアウォールポリシーを提供するための主要なエンジンである。
【０１１４】
【表２９】
2005184836.tif 000034
【０１１５】
【表３０】
2005184836.tif 000035
【０１１６】
（別紙Ｃ）
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＰｏｌｉｃｙＡｃｔｉｏｎ
【０１１７】
【表３１】
2005184836.tif 000036
【０１１８】
ＰｏｌｉｃｙＡｃｔｉｏｎは、すべての特定のアクションクラスのルートクラスの役割を果たす抽象クラスである。パケットをログ記録するかどうかは、空でないログ記録構成オブジェクトを指定することによって示唆される。
【０１１９】
（メソッド）
【０１２０】
【表３２】
2005184836.tif 000037
【０１２１】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＦｉｌｔｅｒＡｃｔｉｏｎ
【０１２２】
【表３３】
2005184836.tif 000038
【０１２３】
ＦｉｌｔｅｒＡｃｔｉｏｎは、以下のアクションシナリオをモデル化する。
・Ｐｅｒｍｉｔ：関連付けるＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎオブジェクトに合致するパケットを許す。
【０１２４】
【表３４】
2005184836.tif 000039
【０１２５】
・Ｄｅｎｙ：関連付けるＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎオブジェクトに合致するパケットをドロップする。
【０１２６】
【表３５】
2005184836.tif 000040
【０１２７】
・Ｐｅｒｍｉｔ  ａｎｄ  Ｌｏｇ：関連付けるＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎオブジェクトに合致するパケットを許可し、ログに記録する。
【０１２８】
【表３６】
2005184836.tif 000041
【０１２９】
・Ｄｅｎｙ  ａｎｄ  Ｌｏｇ：関連付けるＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎオブジェクトに合致するパケットをドロップし、ログに記録する。
【０１３０】
【表３７】
2005184836.tif 000042
【０１３１】
・Ｌｏｇ  Ｏｎｌｙ：関連付けるＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎオブジェクトに合致するパケットをログに記録する。
【０１３２】
【表３８】
2005184836.tif 000043
【０１３３】
ＦｉｌｔｅｒＡｃｔｉｏｎは、ファイアウォールプラットフォーム内のすべてのレイヤが少なくともＰｅｒｍｉｔアクション、Ｄｅｎｙアクション、およびＬｏｇアクションをサポートすることが要求されているので、任意のＰｏｌｉｃｙＣｏｎｄｉｔｉｏｎに関連付けることができることに留意されたい。
【０１３４】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＩｎｓｔａｎｔｉａｔｉｏｎＴｅｍｐｌａｔｅ
【０１３５】
【表３９−１】
2005184836.tif 000044
【０１３６】
【表３９−２】
2005184836.tif 000045
【０１３７】
インスタンス化テンプレートは、以下のテンプレートのいずれであることも可能である。すなわち、
−  ＴｒａｎｓｐｏｒｔＴｅｍｐｌａｔｅ：着信または発信のトランスポートレイヤにおいてインスタンス化されるテンプレート
−  ＩＰＳｅｃＬａｙｅｒ：ＩＰＳｅｃレイヤにおいてインスタンス化されるＩＰＳｅｃテンプレート
−  ＩＰＳｅｃ  Ａｕｔｈｏｒｉｚａｔｉｏｎ規則テンプレート：ＩＰＳｅｃ許可レイヤにおいてインスタンス化される許可テンプレート
以上のクラスの各々は、２つのコンストラクタを提供する。第１のコンストラクタは、クライアントインスタンス化を実行する関連するアプリケーション規則に合致した場合にインスタンス化される。クライアントインスタンス化が行われた場合、全５組が、テンプレートをインスタンス化するのに利用可能である。他方、クライアントインスタンス化ではない場合、ローカルの３組、すなわち、ローカルアドレス、プロトコル、およびローカルポートだけが利用可能である。これが、第２のコンストラクタが使用される目的である。したがって、暗に、第１のコンストラクタは、基本ＩｎｓｔａｎｔｉａｔｉｏｎＴｅｍｐｌａｔｅクラスの中のｉｓＣｌｉｅｎｔＩｎｓｔａｎｔｉａｔｉｏｎフラグを真に設定し、第２のコンストラクタは、そのフラグを偽に設定する。クライアントインスタンス化テンプレートは、全５組が利用可能である場合にだけインスタンス化され、サーバインスタンス化テンプレートは、ローカルの３組が利用可能である場合にだけインスタンス化される。
【０１３８】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＡｐｐｌｉｃａｔｉｏｎＡｃｔｉｏｎ
【０１３９】
【表４０】
2005184836.tif 000046
【０１４０】
可能なＡｐｐｌｉｃａｔｉｏｎＡｃｔｉｏｎシナリオは、以下のとおりである。すなわち、
・Ｐｅｒｍｉｔ：関連付けるＡｐｐｌｉｃａｔｉｏｎＣｏｎｄｉｔｉｏｎオブジェクトに合致したパケットを許可する。
・Ｄｅｎｙ：関連付けるＡｐｐｌｉｃａｔｉｏｎＣｏｎｄｉｔｉｏｎオブジェクトに合致するパケットをドロップする。
・Ａｓｋ：パケットが関連するＡｐｐｌｉｃａｔｉｏｎＣｏｎｄｉｔｉｏｎオブジェクトに合致する場合、ユーザの判断を求める。
・Ｌｏｇ  Ｏｎｌｙ：関連付けるＡｐｐｌｉｃａｔｉｏｎＣｏｎｄｉｔｉｏｎオブジェクトに合致するパケットをログに記録する。
【０１４１】
（メソッド）
【０１４２】
【表４１】
2005184836.tif 000047
【０１４３】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＣａｌｌｏｕｔＡｃｔｉｏｎ
【０１４４】
【表４２】
2005184836.tif 000048
【０１４５】
ＣａｌｌｏｕｔＡｃｔｉｏｎは、プラットフォームが提供するコールアウト拡張をモデル化する。関連付ける条件群に合致する場合、ＣａｌｌｏｕｔＡｃｔｉｏｎは、プラットフォームが呼び出す必要があるコールアウト拡張を指定する。ＣａｌｌｏｕｔＡｃｔｉｏｎは、侵入検出、ペアレンタルコントロールなどのような追加のセキュリティ機能を提供する拡張機構として使用される。
【０１４６】
【表４３】
2005184836.tif 000049
【０１４７】
【表４４】
2005184836.tif 000050
【０１４８】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＩＰＳｅｃＡｃｔｉｏｎ
【０１４９】
【表４５】
2005184836.tif 000051
【０１５０】
ＩＰＳｅｃＡｃｔｉｏｎにより、合致するパケット内にセキュリティコンテキストを設定するＩＰＳｅｃコールアウトがトリガされて、パケットが、ＩＰＳｅｃドライバによってさらに処理されるようになる。ＩＰＳｅｃＡｃｔｉｏｎは、ＡＨまたはＥＳＰ、あるいはその両方を含め、ネットワークトラフィックを保護するための実際のＩＰＳｅｃ構成パラメータ群、および対応する変換設定も指定する。
【０１５１】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＩＫＥＡｃｔｉｏｎ
【０１５２】
【表４６−１】
2005184836.tif 000052
【０１５３】
【表４６−２】
2005184836.tif 000053
【０１５４】
ＩＫＥＡｃｔｉｏｎは、事前共有キー、ケルベロス、または証明書であることが可能なＩＫＥキーネゴシエーションプロトコルを実行するための認証メソッドを定義し、認証アルゴリズムの提案も定義する。
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＫｅｙｉｎｇＭｏｄｕｌｅＡｃｔｉｏｎ
【０１５５】
【表４７】
2005184836.tif 000054
【０１５６】
ＫｅｙｉｎｇＭｏｄｕｌｅＡｃｔｉｏｎは、キーネゴシエーション交換を実行するように指定されたキーイングモジュールを選択する。複数が指定されている場合、リストアップされたキーイングモジュールの各々を、その１つが成功するか、またはすべてが失敗するまで順に試みる。
【０１５７】
（メソッド）
【０１５８】
【表４８】
2005184836.tif 000055
【０１５９】
（別紙Ｄ）
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＡｐｐｌｉｃａｔｉｏｎＳｅｔｔｉｎｇ
【０１６０】
【表４９】
2005184836.tif 000056
【０１６１】
【表５０】
2005184836.tif 000057
【０１６２】
【表５１】
2005184836.tif 000058
【０１６３】
【表５２】
2005184836.tif 000059
【０１６４】
【表５３】
2005184836.tif 000060
【０１６５】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．Ｐｏｌｉｃｙ．ＳｅｃｕｒｉｔｙＬｅｖｅｌ
【０１６６】
【表５４】
2005184836.tif 000061
【０１６７】
【表５５】
2005184836.tif 000062
【０１６８】
セキュリティレベルの中のリモートエンティティの参照により、ＩＰＳｅｃメインモードキー交換に関する設定が決まる。例えば、信頼できる接点がＸ５０９証明書である場合、その接点に関するＣＡ証明書は、ＩＫＥネゴシエーションにおいて使用される信頼されるルート証明書として扱われる。セキュリティ上の理由で、証明書、事前共有キー、およびその他の資格情報は、ＰＦＷサービスによって格納されない。代わりに、それらは、専用のＷｉｎｄｏｗｓ（登録商標）セキュリティストア、例えば、証明書用の保護された証明書ストアから来なければならない。
【０１６９】
（別紙Ｅ）
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．ＦｉｒｅｗａｌｌＳｅｒｖｉｃｅ
【０１７０】
【表５６】
2005184836.tif 000063
【０１７１】
（プロパティ）
【０１７２】
【表５７】
2005184836.tif 000064
【０１７３】
【表５８】
2005184836.tif 000065
【０１７４】
（メソッド）
【０１７５】
【表５９】
2005184836.tif 000066
【０１７６】
【表６０】
2005184836.tif 000067
【０１７７】
【表６１】
2005184836.tif 000068
【０１７８】
【表６２】
2005184836.tif 000069
【０１７９】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．ＳｅｔｔｉｎｇＥｄｉｔｏｒ
【０１８０】
【表６３】
2005184836.tif 000070
【０１８１】
（プロパティ）
【０１８２】
【表６４】
2005184836.tif 000071
【０１８３】
【表６５】
2005184836.tif 000072
【０１８４】
【表６６】
2005184836.tif 000073
【０１８５】
【表６７】
2005184836.tif 000074
【０１８６】
【表６８】
2005184836.tif 000075
【０１８７】
【表６９】
2005184836.tif 000076
【０１８８】
（メソッド）
【０１８９】
【表７０】
2005184836.tif 000077
【０１９０】
【表７１】
2005184836.tif 000078
【０１９１】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．ＲｕｌｅＥｘｐｌｏｒｅｒ
ＲｕｌｅＥｘｐｌｏｒｅｒオブジェクトは、ファイアウォールプラットフォーム内に現在、存在するすべてのポリシーの読み取り専用の表示をファイアウォールクライアントに与える（ただし、特権検査の対象となる）。
【０１９２】
【表７２−１】
2005184836.tif 000079
【０１９３】
【表７２−２】
2005184836.tif 000080
【０１９４】
（メソッド）
【０１９５】
【表７３】
2005184836.tif 000081
【０１９６】
（イベント）
【０１９７】
【表７４】
2005184836.tif 000082
【０１９８】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．ＲｕｌｅＥｄｉｔｏｒ
【０１９９】
【表７５】
2005184836.tif 000083
【０２００】
（メソッド）
【０２０１】
【表７６】
2005184836.tif 000084
【０２０２】
【表７７】
2005184836.tif 000085
【０２０３】
【表７８】
2005184836.tif 000086
【０２０４】
【表７９】
2005184836.tif 000087
【０２０５】
（プロパティ）
【０２０６】
【表８０】
2005184836.tif 000088
【０２０７】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．ＰｏｌｉｃｙＴｒａｎｓａｃｔｉｏｎ
【０２０８】
【表８１−１】
2005184836.tif 000089
【０２０９】
【表８１−２】
2005184836.tif 000090
【０２１０】
現在のファイアウォールプラットフォームは、ポリシートランザクションに関して１フェーズコミットだけをサポートする。規則の読み取り／追加／削除のような各トランザクション操作に関して、トランザクションが終了するまで、すなわち、コミットされるか、または中止されるまで、いくつかのロックが保持される。複数のエクスプローラおよびエディタがポリシーエンジンに同時にアクセスしようとすることがそれほど多くないことを考慮して、グローバルエンジンロックを使用する粗並行処理制御（ｃｏａｒｓｅ  ｇｒａｉｎｅｄ  ｃｏｎｃｕｒｒｅｎｃｙ  ｃｏｎｔｒｏｌ）スキームを現在、使用している。したがって、分離レベル、Ｓｅｒｉａｌｉｚａｂｌｅだけが、現在、サポートされている。
【０２１１】
デッドロックまたは長時間の停止状態を防止するため、各トランザクションは、タイムアウト間隔に関連付けられる。現在のトランザクションが終了するのを待っている他の何らかのトランザクションが存在する場合、現在のトランザクションは、タイムアウト間隔が切れるまでに終了しない場合、プラットフォームによって中止される。タイムアウトのためにトランザクションが中止された場合、ＲｕｌｅＥｄｉｔｏｒ上でＡｄｄＲｕｌｅを呼び出す、またはＰｏｌｉｃｙＴｒａｎｓａｃｔｉｏｎ上でＣｏｍｍｉｔを呼び出すような次のトランザクション操作は、ＴｒａｎｓａｃｔｉｏｎＥｘｃｅｐｔｉｏｎを生じさせる。
【０２１２】
規則検証およびアクセス許可検査は、例えば、ＲｕｌｅＥｘｐｌｏｒｅｒオブジェクト上でＧｅｔＲｕｌｅｓを呼び出して、またはＲｕｌｅＥｄｉｔｏｒ上でＵｐｄａｔｅＲｕｌｅを呼び出してポリシー操作が呼び出された時点で行われる。しかし、変更は、変更のあるトランザクションがコミットされるまで有効にならない。ポリシーエンジンは、すべての変更を一括して取り込み、その変更をカーネルモデルファイアウォールドライバにアトミックに適用する。
【０２１３】
（メソッド）
【０２１４】
【表８２】
2005184836.tif 000091
【０２１５】
【表８３】
2005184836.tif 000092
【０２１６】
（プロパティ）
【０２１７】
【表８４】
2005184836.tif 000093
【０２１８】
Ｓｙｓｔｅｍ．Ｆｉｒｅｗａｌｌ．ＲｕｌｅＲｅｆｅｒｅｎｃｅ
各ＲｕｌｅＲｅｆｅｒｅｎｃｅは、そのＲｕｌｅＲｅｆｅｒｅｎｃｅを所有する１つの対応するＲｕｌｅＥｄｉｔｏｒを有する。そのＲｕｌｅＥｄｉｔｏｒだけが、そのオブジェクトを変更することができる。
【０２１９】
【表８５−１】
2005184836.tif 000094
【０２２０】
【表８５−２】
2005184836.tif 000095
【０２２１】
（プロパティ）
【０２２２】
【表８６】
2005184836.tif 000096
【０２２３】
【表８７】
2005184836.tif 000097
【０２２４】
【表８８】
2005184836.tif 000098
【図面の簡単な説明】
【０２２５】
【図１】ネットワークで接続されたコンピュータ群を示す概略図である。
【図２】本発明の実施形態を実施するのに使用できる典型的なコンピュータシステムを概ね示す概略図である。
【図３】本発明の実施形態に従って使用することができる図２のコンピュータシステムのアーキテクチャの詳細を示すブロック図である。
【図４】ファイアウォールポリシーオブジェクトモデルの実施形態に従って作成することができるファイアウォールサービスオブジェクト群を概ね表す図である。
【図５】本発明の実施形態によるポリシーオブジェクトから派生させられた５つの異なる基本抽象ファイアウォールポリシーオブジェクトの例を示す図である。
【図６】本発明の実施形態によるポリシー条件オブジェクトから派生させることができるいくつかの異なるポリシー条件クラスを示す図である。
【図７】本発明の実施形態によるポリシーアクションオブジェクトから派生させることができるいくつかの異なるポリシーアクションクラスを示す図である。
【図８】本発明の実施形態によるファイアウォールポリシーエンジンプラットフォームのクラスを概ね表すブロック図である。
【図９】図８に示したクラスに関するさらなる詳細を示す図である。
【図１０】本発明の実施形態によるＲｕｌｅＥｄｉｔｏｒオブジェクトを利用してポリシーを作成するステップ、編集するステップ、または削除するステップを概ね表すフローチャートである。
【図１１】本発明の実施形態によるＳｅｔｔｉｎｇＥｄｉｔｏｒオブジェクトを利用してポリシー規則を作成するためのステップを概ね表すフローチャートである。
【図１２】本発明の実施形態によるＲｕｌｅＥｘｐｌｏｒｅｒオブジェクトを利用してポリシー規則群を表示するためのステップを概ね表すフローチャートである。
【図１】
2005184836.tif 000099
【図２】
2005184836.tif 000100
【図３】
2005184836.tif 000101
【図４】
2005184836.tif 000102
【図５】
2005184836.tif 000103
【図６】
2005184836.tif 000104
【図７】
2005184836.tif 000105
【図８】
2005184836.tif 000106
【図９】
2005184836.tif 000107
【図１０】
2005184836.tif 000108
【図１１】
2005184836.tif 000109
【図１２】
2005184836.tif 000110