(57)【要約】外部デバイス又は外部ソフトウェアプログラムによるハードウェアコンポーネントデバイスへのアクセスを制限する手法。フィルタデバイスは、アクセスルールに基づいて、ハードウェアコンポーネントデバイスのコアロジックへのアクセスリクエストをフィルタリングする目的で用いられても良い。アクセスルールは、ハードウェアコンポーネントデバイスの局面、コアロジックの要求動作、又はコアロジックのターゲット領域に基づいてコアロジックに対するアクセスを制限することができる。【選択図】なし
2008525871.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアコンポーネントにおいて、アクセスルールを格納する工程と、
前記ハードウェアコンポーネントにおいて、前記アクセスルールに基づいて、前記ハードウェアコンポーネントのコアロジックへのアクセスリクエストを選択的にフィルタリングする工程とを含む方法。
【請求項２】
前記アクセスルールを格納する工程は、外部ソースからアクセスルールを受信する工程を含む請求項１に記載の方法。
【請求項３】
前記ハードウェアコンポーネントはメモリを含み、
前記ルールは、前記メモリの特定の内容に対するアクセスを制限するルールを含む請求項１に記載の方法。
【請求項４】
前記ハードウェアコンポーネントは、ネットワークとの相互通信を提供する能力を含み、
前記ハードウェアコンポーネントは、前記ネットワークとの相互通信を提供する目的で、
コンフィギュレーション及びステータスレジスタを格納し、
前記ルールは、前記ハードウェアコンポーネントと、前記ネットワーク内のノードとの間の通信リンクが確立された後には、コンフィギュレーション及びステータスレジスタの変更を制限する請求項１に記載の方法。
【請求項５】
前記ハードウェアコンポーネントは、ネットワークとの相互通信を提供する能力、及びホストコンピュータとインターフェースを行う能力を含み、
前記ルールは、前記ハードウェアコンポーネントによる格納の目的で、前記インターフェースを用いることによって、特定の局面の間は前記ホストコンピュータのアセット情報及びブートアップレコードを送信することを、前記ホストコンピュータに許可する請求項１に記載の方法。
【請求項６】
前記ハードウェアコンポーネントは、コンフィギュレーション及びステータスレジスタを格納し、
前記ルールは、コンフィギュレーション及びステータスレジスタの特定の部分の変更を制限することを含む請求項１に記載の方法。
【請求項７】
前記選択的にリクエストをフィルタリングする工程は、容認できない読み出しリクエストに対して、予め定められた応答を提供する工程を含む請求項１に記載の方法。
【請求項８】
前記選択的にリクエストをフィルタリングする工程は、容認できない書き込みリクエストを前記ハードウェアコンポーネントのコアロジックに送信しない工程を含む請求項１に記載の方法。
【請求項９】
Ｉ／Ｏデバイスと、コアロジックと、アクセスルールを格納するプロテクションルールデバイスと、前記Ｉ／Ｏデバイスから送信されたアクセスリクエストを受け取り、前記アクセスルールの一部に基づき、前記コアロジックへのアクセスリクエストを選択的にフィルタリングするフィルタデバイスとを含むハードウェアコンポーネントを含む装置。
【請求項１０】
アクセスルールを格納する前記プロテクションルールデバイスは、前記ハードウェアコンポーネントの外部のソースからアクセスルールを受信する請求項９に記載の装置。
【請求項１１】
前記コアロジックはメモリデバイスを含み、前記ルールは前記メモリデバイスの特定の内容に対するアクセスを制限することを含む請求項９に記載の装置。
【請求項１２】
前記コアロジックはメモリを含み、
前記コアロジックは、ネットワークとの相互通信を提供する能力を含み、
前記メモリは、前記ネットワークとの相互通信を提供する目的で、コンフィギュレーション及びステータスレジスタを格納し、
前記ルールは、前記ハードウェアコンポーネントと、前記ネットワーク内のノードとの間の通信リンクが確立された後には、コンフィギュレーション及びステータスレジスタの変更を制限する請求項９に記載の装置。
【請求項１３】
前記コアロジックはメモリを含み、
前記コアロジックは、ネットワークとの相互通信を提供する能力、及びホストコンピュータとインターフェースを行う能力を含み、
前記ルールは、前記メモリによる格納の目的で、前記インターフェースを用いることによって、特定の局面の間は前記ホストコンピュータのアセット情報及びブートアップレコードを送信することを、前記ホストコンピュータに許可する請求項９に記載の装置。
【請求項１４】
前記コアロジックはメモリを含み、
前記メモリは、コンフィギュレーション及びステータスレジスタを格納し、
前記ルールは、コンフィギュレーション及びステータスレジスタの特定の部分の変更を制限する請求項９に記載の装置。
【請求項１５】
前記フィルタデバイスは、容認できない読み出しリクエストに対して予め定められた応答を提供する請求項９に記載の装置。
【請求項１６】
前記フィルタデバイスは、容認できない書き込みリクエストをコアロジックに送信しない請求項９に記載の装置。
【請求項１７】
ネットワークインターフェースにおいて、ネットワークを介してマネージメントコンソールから、ホストシステムに関連した情報のリクエストを受信する工程と、
前記ネットワークインターフェースにおいて、アクセスルールを格納する工程と、
前記ネットワークインターフェースにおいて、前記アクセスルールに基づいて、前記コアロジックへのアクセスリクエストを選択的にフィルタリングする工程と、
前記ネットワークインターフェースにおいて、前記コアロジック内に前記ホストシステムに関連した情報を格納する工程と、
前記ネットワークを介して、前記マネージメントコンソールに前記情報を送信する工程とを含み、
前記ネットワークインターフェースは、前記ホストシステムと相互通信することができ、
前記アクセスルールは、前記ホストシステムからの、前記ネットワークインターフェースのコアロジックへのアクセスリクエストを、前記ネットワークインターフェースが送信する範囲を規制し、
前記アクセスルールは、前記ホストシステムに関連した情報を前記コアロジック内に格納することを特定の局面の間許可する方法。
【請求項１８】
前記マネージメントコンソールは、少なくとも１つのマネージドクライアントデバイスの情報をユーザに見せるためのコンピュータを含み、
少なくとも１つのマネージドクライアントデバイスは前記ホストシステムを含む請求項１７に記載の方法。
【請求項１９】
前記情報は、前記ホストコンピュータのアセット情報を含む請求項１７に記載の方法。
【請求項２０】
前記情報は、前記ホストコンピュータのブートアップレコードを含む請求項１７に記載の方法。
【請求項２１】
ネットワークとホストシステムとの間の相互通信を提供するネットワークインターフェースを含み、
前記ネットワークインターフェースは、Ｉ／Ｏデバイスと、コアロジックと、アクセスルールを格納するプロテクションルールデバイスと、前記Ｉ／Ｏデバイスから送信されたアクセスリクエストを受け取り、前記アクセスルールの一部に基づき、前記コアロジックへのアクセスリクエストを選択的にフィルタリングするフィルタデバイスと、前記ホストシステムと前記ネットワークインターフェースとの間の相互通信を可能とするバスインターフェースとを含むシステム。
【請求項２２】
前記バスインターフェースは、ＰＣＩに適合した請求項２１に記載のシステム。
【請求項２３】
前記バスインターフェースは、ＰＣＩエクスプレスに適合した請求項２１に記載のシステム。
【請求項２４】
少なくとも１つのマネージドクライアントデバイスと
ネットワークを用いることによって、前記少なくとも１つのマネージドクライアントデバイスと通信する目的で構成されたマネージメントコンソールとを含み、
前記マネージドクライアントデバイスは、Ｉ／Ｏデバイスと、コアロジックと、アクセスルールを格納するプロテクションルールデバイスと、前記Ｉ／Ｏデバイスから送信されたアクセスリクエストを受け取り、前記アクセスルールの一部に基づき、前記コアロジックへのアクセスリクエストを選択的にフィルタリングするフィルタデバイスとを含むシステム。
【請求項２５】
前記アクセスルールによって規定された局面の間に、前記フィルタデバイスは、        前記メモリデバイスに格納する目的で、ホストシステムの情報を送信する請求項２４のシステム。
【請求項２６】
前記情報は、ホストシステムのアセット情報を含む請求項２５に記載のシステム。
【請求項２７】
前記情報は、ホストシステムのブートレコードを含む請求項２５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに記した発明主題は、コンピュータシステムのハードウェア周辺機器におけるセキュリティを確保するための手法に関する。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
コンピューティング環境においては、ウイルス及びワーム等の悪質なソフトウェアが流行している。悪質なソフトウェアは概して、コンピュータ又はその周辺機器のハードウェアコンポーネントの動作の支配権を握ること、又は混乱させることを試みる。例えば、ＰＣＩ互換性バスを介してコマンドを受け取ることができるハードウェアコンポーネントは、それらのコンフィギュレーション及びステータスレジスタを、そのバスに接続されたデバイスによって操作される危険性を持つが、許可されたトランザクションのサブセットに対する保護機能を有していない。悪質なソフトウェアによって、ハードウェアコンポーネントの動作及びコンフィギュレーションが操作されることを防ぐことが望まれている。  
【図面の簡単な説明】
【０００３】
【図１】本発明の幾つかの実施形態が用いられるであろう１つのシステムである。
【０００４】
【図２】本発明の実施形態を用いることができるコンピュータシステムの一例である。
【０００５】
【図３】本発明の１つの実施形態における、外部デバイスからの読み出し又は書き込みリクエストをフィルタリングする能力を含むＨＷコンポーネントの１つの実施形態である。
【０００６】
【図４】本発明の１つの実施形態における、コンフィギュレーション及びステータスレジスタにアクセスできるかどうかを示すアクセスマップの一例である。
【０００７】
【図５】本発明の１つの実施形態における、ネットワークインターフェースの１つの実施形態である。
【０００８】
【図６】本発明の１つの実施形態における、外部デバイス又はルーティンに、コンピュータシステムのハードウェアコンポーネントのコアロジックへのアクセスを許可するかどうかを規制する目的で用いることができるプロセスの一例である。
【０００９】
異なる図面における同一の参照番号は、同一又は同様の要素を表す。
【発明を実施するための最良の形態】
【００１０】
本発明を通して用いる記載「１つの実施形態」又は「ある実施形態」とは、実施形態に関連して記載された特定の特徴、構造又は特性が、本発明の少なくとも１つの実施形態に含まれることを意図する。したがって、本明細書を通してさまざまな場所で用いられる記載「１つの実施形態における」又は「ある実施形態」は、必ずしも全て同一の実施形態を指すものではない。更に、特定の特徴、構造又は特性が１つ以上の実施形態において組み合わされても良い。
【００１１】
例として、本発明の幾つかの実施形態が用いられるであろう１つのシステムを図１に示す。システムは、マネージドクライアントデバイス１０２‐０〜１０２‐Ｎ、コンフィギュレーションデバイス１０４、及びマネージメントコンソール１０６を含んでも良い。マネージドクライアントデバイス１０２‐０〜１０２‐Ｎ、コンフィギュレーションデバイス１０４、及びマネージメントコンソール１０６はネットワーク１５０を用いることによって通信しても良い。
【００１２】
ネットワーク１５０は、インターネット、イントラネット、ローカルエリアネットワーク(ＬＡＮ)、ストレージエリアネットワーク（ＳＡＮ）、広域エリアネットワーク（ＷＡＮ）、又は無線ネットワーク等の如何なるネットワークであっても良い。ネットワーク１５０は、イーサネット標準規格、ＳＯＮＥＴ／ＳＤＨ、ＡＴＭ、又はあらゆる通信標準規格を用いることによって、コンピュータシステムとトラフィックをやり取りしても良い。
【００１３】
例えば、マネージドクライアントデバイス１０２‐０〜１０２‐Ｎのいずれかは、パーソナルコンピュータ又はサーバコンピュータ等の如何なるコンピュータとして実現しても良い。１つの実施形態において、マネージドクライアントデバイス１０２‐０〜１０２‐Ｎのいずれかは、マネージメントコンソール１０６に対して、マネージドクライアントデバイス１０２‐０〜１０２‐Ｎのそれぞれにおけるデータ又はインベントリ（ハードウェア又はソフトウェア等）等（これらに限定されない）の情報、及び、疑わしいハードウェア不具合及びブートアップレコードに関連したその他の情報を提供しても良い。１つの実施形態においては、マネージドクライアントデバイス１０２‐０〜１０２‐Ｎのいずれかは、ソフトウェアルーティン又はハードウェアデバイスがそれらの使用をコントロールできる範囲、又はそれらに格納された情報にアクセスすることができる範囲を制限する能力を含んでも良い。
【００１４】
コンフィギュレーションデバイス１０４は、マネージドクライアントデバイスのディレクトリ、及び、マネージドクライアントデバイス１０２‐０〜１０２‐Ｎのいずれかとマネージメントコンソール１０６との間の通信用プロトコルを提供しても良い。例えば、通信を提供する目的で、コンフィギュレーションデバイス１０４は、ダイナミックホストコンフィギュレーションプロトコル（ＤＨＣＰ）及び／又はドメイン名システム（ＤＮＳ）プロトコルを利用しても良いが、他のプロトコルを用いても良い。１つの実施形態においては、マネージメントコンソール１０６及びコンフィギュレーションデバイス１０４は１つのデバイスに組み合わされても良い。
【００１５】
マネージメントコンソール１０６は、マネージドクライアントデバイス１０２‐０〜１０２‐Ｎのそれぞれにおけるデータ又はインベントリ（ハードウェア又はソフトウェア等）等（これらに限定されない）の情報、及び疑わしいハードウェア不具合及びブートアップレコードに関連したその他の情報をユーザに見ることができるようにする機能を含んでも良い。マネージメントコンソール１０６は、マネージドクライアントデバイス１０２‐０〜１０２‐Ｎのいずれかのパワーモード、又はオペレーティングシステムの状態にかかわらず、マネージドクライアントデバイス１０２‐０〜１０２‐Ｎのいずれかをユーザがモニタリングできるようにする能力を含んでも良い。１つの実施形態においては、マネージメントコンソール１０６は、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ）スクリプトを介して、マネージドクライアントデバイス１０２‐０〜１０２‐Ｎのそれぞれと相互通信しても良いが、他のプロトコルを用いても良い。１つの実施形態においては、コンフィギュレーションデバイス１０４及びマネージメントコンソール１０６は１つのデバイスに組み合わされても良い。
【００１６】
コンピュータシステム２００におけるマネージドクライアントデバイス１０２‐０〜１０２‐Ｎの好適な実施形態を図２に示す。コンピュータシステム２００は、チップセット２０５、プロセッサ２１０、ホストメモリ２１２、システムメモリ２１４、ブートアップメモリ２１６、バス２２０、及びハードウェア（ＨＷ）コンポーネント２２２‐０〜２２２‐Ｎを含んでも良い。
【００１７】
チップセット２０５は、プロセッサ２１０とホストメモリ２１２との間での相互通信を提供しても良いメモリコントローラハブ（ＭＣＨ）２０５Ａ、及び、ディスプレイデバイス上に表示するための情報及びグラフィックスの送信のために用いられるグラフィックスアダプタを含んでも良い（共に図示せず）。チップセット２０５は更に、ＭＣＨ２０５Ａとの相互通信を行っても良いＩ／Ｏコントロールハブ（ＩＣＨ）２０５Ｂを含んでも良く、システムメモリ２１４、ブートアップメモリ２１６、及びバス２２０との間の相互通信を提供しても良い。
【００１８】
プロセッサ２１０は、複合命令セットコンピュータ（ＣＩＳＣ）プロセッサ又は縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、マルチコア又はその他のマイクロプロセッサ、又は中央処理ユニットとして実現されても良い。ホストメモリ２１２は、揮発性メモリデバイス（ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）又はスタテックＲＡＭ（ＳＲＡＭ）等）として実現されても良い。システムメモリ２１４は、磁気ディスクドライブ、光学ディスクドライブ、テープドライブ、内部ストレージデバイス、付属ストレージデバイス、及び／又はネットワークアクセス可能ストレージデバイス等の不揮発性ストレージデバイスとして実現されても良い。システムメモリ２１４内に格納されたルーティン及び情報はホストメモリ２１２にロードされても良く、プロセッサ２１０によって実行されても良い。例えば、システムメモリ２１４は、オペレーティングシステム、及び、システム２００によって用いられるアプリケーションを格納しても良い。
【００１９】
ブートアップメモリ２１６は、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、マスクドＲＯＭ、又はフラッシュメモリ等の不揮発性メモリとして実現されても良い。ブートアップメモリ２１６は、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）、及びマネージドクライアントデバイスのアセット記述を少なくとも格納しても良い。１つの実施形態においては、システム２００のブートアップ中、ＢＩＯＳはブートレコードに加え、アセット記述を確定しても良い。例えば、アセット記述はマネージドクライアントデバイスのメーカ／モデル、プロセッサ２１０のシリアル番号、ホストメモリのストレージサイズ、システムメモリ２１４のストレージサイズ、プラグアンドプレイＩＤリスト（シリアル番号又は一般名によるハードウェア周辺機器のリスト等）に限定されないが、それらを含んでも良い。アセット記述の幾つかはハードコード化されても良く、幾つかはブートアップ時に測定されても良い（ホストメモリのストレージサイズ、システムメモリ２１４のストレージサイズ、プラグアンドプレイＩＤリスト等）。システム２００のブートレコードは、疑わしいハードウェア不具合又はブートアッププロセス中に測定される指標（ホストメモリチェック、ストレージデバイスチェック、及び、ストレージデバイス内の無効ブートセクタの指標）を含んでも良い。
【００２０】
バス２２０は、ホストシステム２０２とＨＷコンポーネント２２２‐０〜２２２‐Ｎとの間の相互通信を提供しても良い。バス２２０はノード・トゥ・ノード又はノード・トゥ・マルチノード通信をサポートしても良い。バス２２０は、例えば、ＵＳＡ、オレゴン、ポートランドのＰＣＩスペシャル・インタレスト・グループから入手できるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ Ｃｏｍｐｏｎｅｎｔ Ｉｎｔｅｒｃｏｎｎｅｃｔ）ローカルバス仕様書改訂版２．２（他の改訂版も同様）、１９９８年１２月１８日、において記載されたＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ Ｃｏｍｐｏｎｅｎｔ Ｉｎｔｅｒｃｏｎｎｅｃｔ）、ＰＣＩスペシャル・インタレスト・グループのＰＣＩエクスプレス・ベース仕様書改定版１．０ａ（他の改訂版も同様）に記載されたＰＣＩエクスプレス、ＵＳＡ、オレゴン、ポートランドの上記ＰＣＩスペシャル・インタレスト・グループから入手できるＰＣＩ‐Ｘ仕様書改訂版１．０ａ（他の改訂版も同様）、２０００年７月２４日、に記載されたＰＣＩ‐ｘ、例えば、シリアルＡＴＡワーキンググループによって２００１年８月２９日に刊行された「シリアルＡＴＡ：高速シリアル化ＡＴアタッチメント」改訂版１．０、に記載されたシリアルＡＴＡ（及び関連する標準規格）、ユニバーサル・シリアル・バス（ＵＳＢ）（及び関連する標準規格）、及びその他の相互接続標準規格と互換性があっても良い。
【００２１】
ＨＷコンポーネント２２２‐０〜２２２‐Ｎは、ホストシステム２０２から情報又は命令を受け取ること、又はホストシステム２０２に情報又は命令を提供することができる如何なるデバイスであっても良い。ＨＷコンポーネント２２２‐０〜２２２‐Ｎのいずれかは、ＨＷコンポーネント２２２‐０〜２２２‐Ｎの別の１つに情報又は命令を提供すること、又はＨＷコンポーネント２２２‐０〜２２２‐Ｎの別の１つから情報又は命令を受け取ることができても良い。本発明の１つの実施形態においては、ＨＷコンポーネント２２２‐０〜２２２‐Ｎのいずれかは、ホストシステム２０２等の外部デバイスからのアクセスリクエスト（命令、読み出し又は書き込みリクエスト）がＨＷコンポーネントのコアロジックに送られることを防ぐ能力を含んでも良い。ＨＷコンポーネント２２２‐０〜２２２‐Ｎのコアロジックは、マザーボードの導電性リードを用いることによって相互接続されたマイクロチップ又は集積回路、ハードワイヤードロジック、メモリデバイスによって格納されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途集積回路（ＡＳＩＣ）、メモリ又はストレージデバイス、及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含んでも良い。
【００２２】
コンピュータシステム２００は、マザーボードの導電性リードを用いることによって相互接続されたマイクロチップ又は集積回路、ハードワイヤードロジック、メモリデバイスによって格納されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途集積回路（ＡＳＩＣ）、及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のいずれか又は組み合わせによって実現されても良い。
【００２３】
本発明の１つの形態における、ホストシステム２０２等（それに限定されない）の外部デバイスからの読み出し又は書き込みリクエストをフィルタリングする能力を含むＨＷコンポーネント３００の１つの実施形態を図３に示す。ＨＷコンポーネント３００は、Ｉ／Ｏデバイス３０５、フィルタデバイス３１０、ＨＷコアロジック３１５及びプロテクションルールデバイス３２０を含んでも良い。
【００２４】
Ｉ／Ｏデバイス３０５は、付属メディアの提供、及びインターフェースの関連プロトコルのサポートによって、フィルタデバイス３１０と、バス２２０等（それに限定されない）のホストシステムインターフェースとの間の相互通信を提供しても良い。
【００２５】
フィルタデバイス３１０は、プロテクションルールデバイス３２０によって提供されたルールに基づいて、Ｉ/Ｏデバイス３０５（例えば、インターフェースから）によって送られる、ＨＷコアロジック３１５へのアクセス試みをフィルタリングしても良い。例えば、アクセス試みは、命令タイプ（読み出し又は書き込み等）、ターゲットのＨＷコンポーネントのアドレス、ターゲットのＨＷコンポーネントにおけるアクセス機能、及びアクセスされるＨＷコンポーネント３００のメモリ内のアドレスを含んでも良い。例えば、プロテクションルールデバイス３２０は、ＨＷコアロジック３１５に送られるべき、又は送られるべきではないアクセス試みを認識する目的で、フィルタデバイス３１０をプログラムしても良い。従って、フィルタデバイス３１０は、欠陥ドライバ又はウイルスによるコンフィギュレーション等の間違った又は有害な方法で、ＨＷコアロジック３１５がコンフィギュアされることを防いでも良い。
【００２６】
１つの形態においては、プロテクションルールデバイス３２０は、他の基準を用いることもできるが、アクセスの試みのタイプ（読み出し又は書き込み等）、アクセスのリクエストがされたＨＷコアロジック３１５のメモリ内のメモリセクタ（コンフィギュレーション及びステータスレジスタ空間、Ｉ／Ｏ空間又はメモリ空間）、及び／又は（場合によっては）アクセスの試みの発信元（キャッシュ等）に基づいて、アクセスの試みをフィルタリングすることをフィルタデバイス３１０に指示しても良い。
【００２７】
１つの形態においては、複数の局面（信頼できる、できない等）に対応する目的で、プロテクションルールデバイス３２０は、フィルタデバイス３１０をコンフィギュアしても良い。それによって、それぞれの局面において、フィルタデバイス３１０がＨＷコアロジック３１５に命令を送れる範囲が調整される。例えば、信頼できる局面では、フィルタデバイス３１０は、Ｉ／Ｏデバイス３０５から受け取った、又は外部の信頼できるソースによって提供された如何なる命令もＨＷコアロジック３１５に送っても良い。例えば、信頼できない局面では、フィルタデバイス３１０は、Ｉ／Ｏデバイス３０５から受信した如何なる命令もＨＷコアロジック３１５に送らなくても良い。従って、信頼できない局面中の、ＨＷコアロジック３１５の支配権を握ろうとする悪質な試みと考えられるコードである限り、そのＨＷコアロジック３１５へのアクセスを拒否しても良い。例えば、ＨＷコアロジック３１５は、信頼できない局面中に受信した命令に対しては、その命令を無視すること、又は予めプログラムされた包括的な応答を提供することによって対応しても良い。
【００２８】
１つの形態においては、トリガイベントに伴い、信頼できる局面から信頼できない局面に、又はその逆に、フィルタデバイス３１０の状態を変更しても良い。信頼できる局面に移行させる、フィルタデバイス３１０によって検知できるトリガイベントは、ソフトウェアコンポーネントが誘発できず、その次のステップを信頼できるソースから実行させるプラットフォームイベントであっても良い。例えば、フィルタデバイス３１０を信頼できる局面に移行させるトリガイベントは、ホストシステムにおけるＰＣＩリセット・デアサーションイベントであっても良い。ＰＣＩ環境下においては、ＰＣＩリセット・デアサーションイベントが発生した後で、プロセッサはリセットされて、その次のステップで、プロセッサのためにＢＩＯＳコードが実行される。例えば、ホストシステムの起動又はフルパワーへの復帰がＰＣＩリセット・デアサーションイベントのトリガとなっても良い。他のトリガイベントが用いられても良い。例えば、信頼できない局面への移行を引き起こすトリガイベントは、信頼できるソース（ＢＩＯＳ等）が、信頼できないソースが次に実行されることを通知することであっても良い。例えば、ＢＩＯＳ以外のコードの実行に先立つＢＩＯＳの通知が、信頼できない局面への移行のトリガとなっても良い。
【００２９】
例えば、信頼できるソースとは、ＢＩＯＳ以外のコードの実行のリクエストに先立つ、ＢＩＯＳコードであっても良い。ＢＩＯＳ以外のコードとは、ブートアップメモリ２１６以外のメモリ内のコード、オペレーティングシステム（Ｌｉｎｕｘ、ＤＯＳ又はＷｉｎｄｏｗｓ等）、又は、ＢＩＯＳが実行のリクエストができるサードパーティの「ＲＯＭ拡張」コードであっても良い。しかしながら、それらに限定されない。サードパーティのＲＯＭ拡張コードの例としては、ＳＣＳＩアダプタを初期化する目的で、スモールコンピュータシステムインターフェース（ＳＣＳＩ）アダプタによって用いられるコード、及び、オペレーティングシステム（ＯＳ）がネットワークインターフェースを用いることによってネットワークからロードされることを可能にするＰＸＥ（Ｐｒｅ-ｂｏｏｔ Ｅｘｅｃｕｔｉｏｎ Ｅｎｖｉｒｏｎｍｅｎｔ）コードであっても良い。しかしながら、それらに限定されない。他の信頼できるソースとしては、信頼できるソース又は権限のある人以外によっては付加することができず、付加された後では、信頼できるソース又は権限のある人以外によってはその後に変更できないソフトウェアであっても良い。
【００３０】
１つの実施形態においては、フィルタデバイス３１０は、複数の信頼レベルに移行することができても良い。例えば、信頼できる局面、やや信頼できる局面、及び信頼できない局面が存在しても良い。やや信頼できる局面の間では、ＨＷコンポーネントは、制限された命令のセットを実行しても、又は、限られたソースのセットによって発行された命令を実行しても良い。例えば、リンク「アップ」シナリオ（後で説明あり）は、やや信頼できる局面に対応しても良い。例えば、ソースは、アクセスリクエストにおいて、ソース識別子によって自身を特定しても良い。
【００３１】
信頼できる又はやや信頼できる局面への移行を引き起こすトリガの他の例としては、ノンマスカブルインターラプト（ＮＭＩ）及びシステムマネージメントインターラプト（ＳＭＩ）であっても良い。ＮＭＩは、ホストプロセッサにＢＩＯＳを次に実行させることのトリガとなっても良く、それによって、信頼できる局面に移行される。ＮＭＩは、ＯＳカーネル等のＢＩＯＳに比べて信頼できないコードをホストプロセッサに次に実行させることのトリガとなっても良く、それによってやや信頼できる局面に移行されても良い。そこでは、ＯＳカーネルからの制限された命令のセットが実行の目的でＨＷコアロジックに送られても良い。ＳＭＩはホストプロセッサにＢＩＯＳを次に実行させることのトリガとなっても良く、それにより、信頼できる局面に移行されても良い。コアロジックに送られても良いＯＳ及びＢＩＯＳ命令の更なる例としては、ログイン中にユーザ鍵ストロークを格納する場合であっても良い。
【００３２】
１つの実施形態においては、リモートサーバ等のリモートエンティティ（マネージメントコンソール等）、又は、ホストシステム内の信頼できるソースは、フィルタデバイス３１０に適用されるプロテクションルールデバイス３２０におけるルールを設定しても良い。例えば、リモートサーバはＨＷコンポーネントのシステム状態に基づいてルールを変更しても良い。ＨＷコンポーネントのシステム状態の例としては、ＨＷコンポーネントのパワー使用状態であっても良い。例えば、リモートサーバは、ホストシステムのシステム状態に基づいてルールを変更しても良い。ホストシステム状態の例としては、ＡＣＰＩ（Ａｄｖａｎｃｅｄ Ｃｏｎｆｉｇｕｒａｔｉｏｎ ａｎｄ Ｐｏｗｅｒ Ｉｎｔｅｒｆａｃｅ）仕様書に準じた、ホストシステムのパワー使用状態（例を挙げると、オン、オフ、スリープ、ハイバネイト又はスタンバイ）、又は、ホストシステムプロセッサのパワー使用状態等の、ホストシステムのコンポーネントのそれぞれのパワー状態であっても良い。
【００３３】
１つの形態においては、プロテクションルールデバイス３２０は、（やや信頼できる局面又は信頼できない局面等の）局面中又は時間枠において、ＨＷコアロジック３１５の特定のファンクション（ホストインターフェース能力等、後に説明あり）に対する外部命令のアクセスを制限しても良い。
【００３４】
例として、ＨＷコンポーネントのコンフィギュレーション及びステータスレジスタ（ＣＳＲ１）に関連したアクセスマップの一例を図４に示す。本発明の１つの実施形態においては、１ビットレベルでＣＳＲ１へのアクセスを許可又は拒否する目的で、アクセスマップは構成されても良い。例えば、ＣＳＲ１は８ビット（０〜７）を含み、それぞれのビットは、アクセスリクエストによってアクセスできるか否かを表す。例えば、ビット１、４、５及び７は如何なるアクセス試みによってもアクセスできないことを表しても良い。ビット０及び６においては、信頼できない局面以外のときにアクセスができるようにしても良い。ビット２においては、ネットワークノードとのリンクが有効になった等の、特定のＨＷコンポーネント状態の後を除いて、アクセスできるようにしても良い。ビット３においては、如何なる状態であろうとアクセスできるようにしても良い。従って、コンフィギュレーションレジスタは、ＨＷコンポーネント又はホストシステム内のイベントに対して条件付きで、又は無条件でアクセスから守られても良い。これは、アクセスマップの単なる一例に過ぎず、他の多くの形式及び構成を用いることができる。アクセスマップは、プロテクションルールデバイス３２０内に格納されても良い。従って、フィルタデバイス３１０は、アクセスマップに基づいてＣＳＲ１へのアクセスリクエストをフィルタリングしても良い。例えば、ＨＷコアロジック３１５は、それぞれのファンクションが自身に関連したＣＳＲ及びアクセスマップを有す、複数のファンクションを含んでも良く、それにより、アクセスマップがそれぞれのファンクションと関連したＣＳＲのアクセスを特定できるようになる。
【００３５】
例えば、容認できない読み出しリクエストに対する考えられる１つの応答は、実際のデータの代わりに予め定められたデータを提供することである。例えば、容認できないアクセス試みが、データ値０ｘ１０１０１０１０を保持した特定のレジスタを読み出すリクエストをした場合、フィルタデバイス３１０はその容認できないアクセス試みの応答として、予め定められた応答値０ｘ００００００００を提供しても良い。例えば、容認できない書き込みリクエストに対する考えられる１つの応答は、その書き込みリクエストを無視することである。例えば、ＰＣＩ互換性バス上で送られた書き込み処理に対しては、その書き込み処理を無視しても、エラー状態を引き起こさない。容認できない書き込み処理のソースは、ＨＷコンポーネントが容認できない書き込みリクエストに応じないにもかかわらず、ＨＷコンポーネントがその容認できない書き込みリクエストに応じることに確信を持っているかもしれない。１つの形態においては、ある容認できないリスエストが発生したとき、フィルタデバイス３１０は、容認できないリクエスト及びその容認できないリクエストの性質をマネージメントコンソールに通知する目的で、マネージメントコンソール等の外部デバイスに送られる警告メッセージを生成しても良い。
【００３６】
ＨＷコアロジック３１５は、ＨＷコンポーネントのコアファンクションを提供しても良い。ＨＷコアロジック３１５は、マザーボードの導電性リードを用いることによって相互接続されたマイクロチップ又は集積回路、ハードワイヤードロジック、メモリデバイスによって格納されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途集積回路（ＡＳＩＣ）、メモリ又はストレージデバイス、及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含んでも良い。例えば、メモリデバイスは、コンフィギュレーション及びステータスレジスタ（ＣＳＲ）を格納しても良い。コンフィギュレーション及びステータスレジスタ（ＣＳＲ）は概して、ＨＷコアロジック３１５又はＨＷコンポーネント３００が実行することができるファンクションの動作をコンフィギュアする目的で用いられても良い。例えば、コンフィギュレーション及びステータスレジスタの選択されたコンテンツは（ビットレベルにおいてさえも）、アクセス試みによってアクセルできるか否かをアクセスマップにおいて示すものであっても良い。例えば、ＨＷコンポーネント３００によって実行することができるファンクションは、ホストインターフェース、リンク接続、及びホストシステムアセット情報受信又は送信能力（図５に関連して記載）であっても良い。しかしながら、これらには限定されない。
【００３７】
ＨＷコンポーネント３００は、マザーボードの導電性リードを用いることによって相互接続されたマイクロチップ又は集積回路、ハードワイヤードロジック、メモリデバイスによって格納されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途集積回路（ＡＳＩＣ）、及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）によって、又はそれらの組み合わせによって実現されても良い。
【００３８】
１つの形態においては、ＨＷコンポーネント２２２‐０〜２２２‐Ｎの少なくとも１つは、ネットワークインターフェースとして実現されても良い。例えば、ネットワークインターフェースは、イーサネット又はＳＯＮＥＴ／ＳＤＨ等（これらには限定されない）の関連したネットワーク標準規格に準じたネットワーク（ネットワーク１５０等、これに限定されない）とコンピュータシステム（コンピュータシステム２００を含むがそれに限定されない）との間での相互通信を提供することができても良い。
【００３９】
例として、本発明の１つの実施形態における、ネットワークインターフェース５００の１つの実施形態を図５に示す。ネットワークインターフェース５００は、Ｉ／Ｏデバイス５０２、コアロジック５０４及び物理層インターフェース（ＰＨＹ）５０６を含んでも良い。Ｉ／Ｏデバイス５０２は、ホストシステムバス（バス２２０を含むがそれに限定されない）とネットワークインターフェース５００との間の相互通信を提供しても良い。例えば、Ｉ/Ｏデバイス５０２は、バスによって使用される標準規格に準じて、通信をエンコードしてバスに提供しても良く、バスによって提供される通信を受信してデコードしても良い。Ｉ／Ｏデバイス５０２は、フィルタデバイス３１０及びプロテクションルールデバイス３２０に関して記載した方法と同様の方法によって、バスからのリクエストをフィルタリングする目的で、フィルタ５０３を活用しても良い。
【００４０】
１つの実施形態においては、図に記したとおり、コアロジック５０４は、命令を実行することができるプロセッサ、及びメモリデバイスを含んでも良い。１つの実施形態においては、コアロジック５０４は、マザーボードの導電性リードを用いることによって相互接続されたマイクロチップ又は集積回路、ハードワイヤードロジック、メモリデバイスによって格納されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途集積回路（ＡＳＩＣ）、メモリ又はストレージデバイス、及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含んでも良い。
【００４１】
コアロジック５０４は、ネットワークインターフェース５００と、ホストシステムによって活用される少なくとも１つのＢＩＯＳとの間での相互通信を提供するホストインターフェースを提供する能力を含んでも良い。インターフェースは、ＰＣＩ互換性バス上で実行されるＩＰＭＩ（Ｉｎｔｅｌｌｉｇｅｎｔ Ｐｌａｔｆｏｒｍ Ｍａｎａｇｅｍｅｎｔ Ｉｎｔｅｒｆａｃｅ）標準規格において定義されたＫＣＳインターフェースとして実現されても良い。１つの実施形態においては、ネットワークインターフェース５００のホストインターフェース能力は、信頼できる局面の間のアクセスに対して利用できるものであっても良い。
【００４２】
例として、信頼できる局面の間は、フィルタ５０３は、ホストシステム内のＢＩＯＳがＩ/Ｏデバイス５０２のホストインターフェース能力にアクセスすることを許可しても良い。従って、フィルタ５０３は、ハードウェア又はソフトウェアアセット情報、又はブートアップレコードに関連した情報等の、ホストシステムのＢＩＯＳによって提供される情報を、信頼できる局面の間、メモリが受信する事を許可しても良い。従って、信頼できる局面の間に送られる情報は悪質なものではないとして信頼しても良い。例えば、マネージメントコンソール１０６等のデバイスは、ネットワークインターフェース５００にリクエストを提供することによって、ホストシステム（ホストシステム２０２等であるがこれに限定されない）から情報をリクエストしても良い。１つの実施形態においては、マネージメントコンソール１０６は、ＸＭＬ互換性通信を用いたネットワークインターフェース５００から、ホストシステムのブートアップレコード、又は、ハードウェア又はソフトウェアアセット記述情報をリスクエストしても良い。従って、ホストシステムのオペレーティングシステム又はパワー使用状態に関係なく、格納及び伝達の目的でネットワークインターフェース５００に情報を提供することによって、ホストシステムに関連した情報は、マネージメントコンソール１０６等のデバイスに送られても良い。
【００４３】
１つの形態においては、コアロジック５０４のメモリ内に格納されたコンフィギュレーション及びステータスレジスタは、ネットワーク内の１つ以上の特定のノードアドレスとの通信を許可するべく、ネットワークインターフェース５００をコンフィギュアする目的で用いることができる。特定のノードアドレスとの通信が確立された後には、特定のソースによってなされる変更以外は、コンフィギュレーションに対する変更を許さないようフィルタ５０３がコンフィギュアされても良い。例えば、ステータスレジスタは、特定のノードアドレスとの通信がアクティブであるかどうかを示しても良く、フィルタ５０３は、特定のノードアドレスとの通信がアクティブであるかどうか（リンクアップ／リンクダウン状態）を判定する目的で、ステータスレジスタをモニタリングしても良い。例えば、リンク状態が「ダウン」である場合、外部デバイス又はソフトウェアルーティンは、そのリンクをリコンフィギュアすることが許されても良い。例えば、リンクのリコンフィギュアは、特定のノードアドレスの変更に関連しても良い。例えば、リンク状態が「アップ」の場合、フィルタ５０３は特定のソースによる変更以外は、リンクコンフィギュレーションに対する変更を禁止しても良い。リンク状態が「アップ」とは、特定のノードアドレスと通信する目的の、ＰＨＹ５０８のコンフィギュレーションに関連しても良い。従って、特定のノードアドレスがマネージメントコンソールである場合、リンクが「アップ」になった後での、マネージメントコンソールとネットワークインターフェース５００との間のリンクに対する特定ソース以外からの妨害及び改ざんを防いでも良い。従って、ホストシステムのアセット情報及びブートアップレコード等の情報を送信する目的で、安全なリンクが提供されても良い。
【００４４】
コアロジック５０４内のメモリは、マネージメントコンソール１０６等（これに限定されない）の外部のデバイスと通信する目的で、ネットワークインターフェース５００によって使用されるプロトコル及びアプリケーションを格納しても良い。メモリは、ネットワークに送られるパケット及びフレームの内容、及びネットワークから受信したパケット及びフレームの内容を格納しても良い。例えば、メモリは、ホストシステムに送られる情報、又は、ホストシステムから外部デバイスに送られるアウトバウンド情報を格納しても良い。例えば、情報は、ホストシステムのアセット情報、ブートアップレコード、キーストローク情報（ログインリクエストに応じて提供されるキーストローク等）を含んでも良い。しかしながら、これらには限定されない。
【００４５】
コアロジック５０４のプロセッサは、イーサネット又はＳＯＮＥＴ／ＳＤＨ等の関連ネットワークプロトコルに適合したネットワーク（他のプロトコルをサポートしても良い）へ送られるパケット又はフレームをエンコードしても良い。同様に、プロセッサは、イーサネット又はＳＯＮＥＴ／ＳＤＨ等の関連ネットワークプロトコルに適合したネットワーク（他のプロトコルをサポートしても良い）から受信したパケット又はフレームをデコードしても良い。
【００４６】
ネットワークとネットワークインターフェース５００との間で、パケット及びフレームを送受信することをサポートする目的で、ＰＨＹ５０６は、ネットワーク内のネットワークメディアに対するネットワークインターフェース５００のアクセスを提供しても良い。ネットワークは、インターネット、イントラネット、ローカルエリアネットワーク、（ＬＡＮ）、ストレージエリアネットワーク（ＳＡＮ）、広域エリアネットワーク（ＷＡＮ）又は無線ネットワーク等の如何なるネットワークであっても良い。ネットワークは、イーサネット標準規格、ＳＯＮＥＴ／ＳＤＨ、ＡＴＭ、又は他の通信標準規格に適合したネットワークインターフェース５００とトラフィックのやり取りをしても良い。
【００４７】
ネットワークインターフェース５００は、マザーボードの導電性リードを用いることによって相互接続されたマイクロチップ又は集積回路、ハードワイヤードロジック、メモリデバイスによって格納されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途集積回路（ＡＳＩＣ）、及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のいずれか又は組み合わせによって実施されても良い。例えば、ネットワークインターフェース５００は、マザーボード上にＬＡＮを実装する形態、コンピュータシステム（チップセット２０５等であるが、これに限定されない）との相互通信を提供するマザーボードプラットフォーム内のバスインターフェースに接続できるネットワークインターフェースカードとして実現した形態、及び／又は、部分的にホストプロセッサを用いて実現された形態において、チップセット（チップセット２０５等であるが、これに限定されない）内に組み込まれても良い。
【００４８】
外部デバイス又はルーティンが、コンピュータシステムにおけるハードウェアコンポーネントのコアロジックへのアクセスが許されるかどうかをコントロールする目的で、本発明の実施形態に用いることができるプロセスの一例を図６に示す。ブロック６０２において、ＨＷコンポーネント外部の許可されたルールプロバイダは、ＨＷコンポーネントがＨＷコンポーネントのコアロジックへのアクセスリクエストを送信できるかどうかを規定するプロテクションルールをプログラムしても良い。例えば、リモートサーバ、又はホストシステム内の信頼できるソースは、プロテクションルールをプログラムすることが許されても良い。ブロック６０２において、プロテクションルールデバイス３２０に関連して記載したルールと同様なルールを適用しても良いが、他のルールを適用しても良い。
【００４９】
ブロック６０４において、ＨＷコンポーネントはＨＷコンポーネントへのアクセスリクエストを外部から受信しても良い。例えば、ＨＷコンポーネントへのアクセスリクエストは、ＨＷコンポーネントコアロジックから情報を読み出すリクエスト、ＨＷコンポーネントコアロジックへ情報を書き込むリクエスト、あるいは、ＨＷコンポーネントコアロジックに命令を行うリクエストであっても良い。ＨＷコンポーネントコアロジックの考えられる１つの例は、図３に関連して説明したＨＷコアロジック３１５であるが、ＨＷコンポーネントコアロジックの他の考えられる形態を用いても良い。
【００５０】
ブロック６０６において、ＨＷコンポーネントのフィルタデバイスは、リクエストをＨＷコンポーネントコアロジックに送信するかどうかを決定しても良い。例えば、フィルタデバイスはブロック６０２においてプログラムされたルールに基づいてリクエストを送信することを決定しても良い。ＨＷコンポーネントがリクエストを送信することを決定した場合、ブロック６０６の次はブロック６０８に進んでも良い。ＨＷコンポーネントがリクエストを送信しないことを決定した場合、ブロック６０６の次はブロック６１０に進んでも良い。
【００５１】
ブロック６０８において、ＨＷコンポーネントデバイスのコアロジックは、外部のリクエストに応じても良い。ブロック６１０においては、フィルタデバイスは、リクエストをコアロジックに送信しなくても良い。例えば、フィルタデバイスは、リクエスト応答用の適用ルール（応答時間、又は無応答時のエラーデダクション）に従って、リクエストを無視しても良く、又は、予め定められたダミー応答を発行しても良い。例えば、容認できない読み出しリクエストに対する１つの考えられる応答として、実際のデータの代わりに予め定められたデータを提供することが挙げられる。例えば、容認できないアクセスが、データ値０ｘ１０１０１０１０を保持した特定のレジスタの読み出しを試みた場合、ブロック６１０において、その容認できないアクセス試みの応答として、予め定められた応答値０ｘ００００００００が提供されても良い。
【００５２】
図面及び上記記載は、本発明の例を示しているに過ぎない。多くのさまざまな機能項目を記してきたが、当業者であれば、そのような１つ以上の要素は、１つの機能ブロックに組み合わせられることができることが理解できるであろう。或いは、ある要素を複数の機能項目に分ける事も可能であろう。しかしながら、本発明の範囲は、これらの特定の例に限定されるものではない。明細書に明確に示されていようがなかろうが、構造上、大きさ上、及び材料の使用上の差異等、多くの変更が可能である。本発明の範囲は、以下の請求項によって定義された範囲と少なくとも同じ広さを有する。
【図１】
2008525871.tif 000003
【図２】
2008525871.tif 000004
【図３】
2008525871.tif 000005
【図４】
2008525871.tif 000006
【図５】
2008525871.tif 000007
【図６】
2008525871.tif 000008
【国際調査報告】
2008525871.tif 000009
2008525871.tif 000010