(57)【要約】  コンピュータ・システム内のコンポーネント・ハードウェア装置が、外部装置または外部ソフトウェア・プログラムによって制御されることを制限する技術。
2008524722.tif 000002
【特許請求の範囲】
【請求項１】
トラスト・フェーズに入ることによって第１トリガ信号に応答する段階と、
前記トラスト・フェーズ中に受信したあらゆる外部ソースからのコマンドに応じる段階と、
アントラスト・フェーズに入ることによって第２トリガ事象に応答する段階と、
アントラスト・フェーズ中に受信したあらゆる外部ソースからのコマンドに応じない段階と、
から構成されることを特徴とする方法。
【請求項２】
前記トラスト・フェーズ中に格納すべき情報を提供する段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項３】
前記情報は、ホスト・システムの資産情報を含むことを特徴とする請求項２記載の方法。
【請求項４】
前記情報は、ホスト・システムのブート・レコードを含むことを特徴とする請求項２記載の方法。
【請求項５】
前記格納された情報に対してネットワークを通して提供される要求を受信する段階と、
前記ネットワークを通して前記要求を行なう者に前記格納された情報を転送する段階と、
をさらに含むことを特徴とする請求項２記載の方法。
【請求項６】
前記第１トリガ信号は、トラスト・ソースが次に実行されるという指示を含むことを特徴とする請求項１記載の方法。
【請求項７】
前記第２トリガ信号は、あらゆるアントラスト・ソースを実行する前の指示を含むことを特徴とする請求項１記載の方法。
【請求項８】
ハードウェア・コンポーネント・ロジックと、
フィルタ装置であって、
トラスト・フェーズに入ることによって第１トリガ信号に応答し、
前記トラスト・フェーズ中に受信したあらゆる外部ソースからのコマンドを前記ハードウェア・コンポーネント・ロジックへ転送し、
アントラスト・フェーズに入ることによって第２トリガ事象に応答し、
前記アントラスト・フェーズ中に受信したあらゆる外部ソースからのコマンドを前記ハードウェア・コンポーネント・ロジックへ転送する、
ために形成されたフィルタ装置と、
から構成されることを特徴とする装置。
【請求項９】
前記ハードウェア・コンポーネント・ロジックは記憶装置を含み、また、前記フィルタ装置は、前記記憶装置内に格納するために前記トラスト・フェーズ中に受信された情報を転送することを特徴とする請求項８記載の装置。
【請求項１０】
前記情報は、ホスト・システムの資産情報を含むことを特徴とする請求項９記載の装置。
【請求項１１】
前記情報は、ホスト・システムのブート・レコードを含むことを特徴とする請求項９記載の装置。
【請求項１２】
前記第１トリガ信号は、トラスト・ソースが次に実行されるという指示を含むことを特徴とする請求項８記載の装置。
【請求項１３】
前記第２トリガ信号は、あらゆるアントラスト・ソースを実行する前の指示を含むことを特徴とする請求項８記載の装置。
【請求項１４】
プロセッサ、記憶装置、格納装置、および相互通信プラットフォームを含むホスト・システムと、
前記相互通信プラットフォームに通信可能な状態で結合されたネットワーク・インターフェイスと、から構成され、
前記ネットワーク・インターフェイスは、
ハードウェア・コンポーネント・ロジック、および
入出力装置を含み、
前記入出力装置は、
トラスト・フェーズに入ることによって第１トリガ信号に応答し、
前記トラスト・フェーズ中にあらゆる外部ソースから受信したコマンドを前記ハードウェア・コンポーネントへ転送し、
アントラスト・フェーズに入ることによって第２トリガ事象に応答し、
前記アントラスト・フェーズ中に受信したあらゆる外部ソースからのコマンドを前記ハードウェア・コンポーネント・ロジックへ転送しない、
ために形成されることを特徴とするシステム。
【請求項１５】
前記相互通信プラットフォームは、ＰＣＩとの互換性を有するバスを含むことを特徴とする請求項１４記載のシステム。
【請求項１６】
前記相互通信プラットフォームは、ＰＣＩエクスプレスとの互換性を有するバスを含むことを特徴とする請求項１４記載のシステム。
【請求項１７】
少なくとも１つの管理されたクライアント装置であって、前記管理されたクライアント装置は、
ハードウェア・コンポーネント・ロジック、および
入出力装置を含み、前記入出力装置は、
トラスト・フェーズに入ることによって第１トリガ信号に応答し、
前記トラスト・フェーズ中にあらゆる外部ソースから受信したコマンドを前記ハードウェア・コンポーネントへ転送し、
アントラスト・フェーズに入ることによって第２トリガ事象に応答し、
前記アントラスト・フェーズ中に受信したあらゆる外部ソースからのコマンドを前記ハードウェア・コンポーネント・ロジックへ転送しない、
ために形成される、少なくとも１つの管理されたクライアント装置と、
ネットワークを使用して前記少なくとも１つの管理されたクライアント装置と通信するために形成された管理コンソールと、
から構成されることを特徴とするシステム。
【請求項１８】
前記ハードウェア・コンポーネント・ロジックはメモリを含み、前記トラスト・フェーズ中に、前記入出力装置は、格納のためのホスト・システムの資産情報を前記メモリへ転送することを特徴とする請求項１７記載のシステム。
【請求項１９】
前記情報は、ホスト・システムの資産情報を含むことを特徴とする請求項１８記載のシステム。
【請求項２０】
前記情報は、ホスト・システムのブート・レコードを含むことを特徴とする請求項１８記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
ここで開示される主題は、コンピュータ・システムにおけるセキュリティを維持するための技術に関する。
【背景技術】
【０００２】
コンピュータを使用する環境において、ウィルスおよびワームのような悪意あるソフトウェアが流行している。悪意あるソフトウェアは、典型的には、コンピュータの動作を混乱させ、あるいは制御しようとする。悪意あるソフトウェアによって、コンピュータ動作が操作されないようにすることが望ましい。
【発明の開示】
【０００３】
異なる図において同一の参照番号を使用する場合は、同一または類似の要素を示すことに注意されたい。
【０００４】
本明細書の全体にわたって、「一実施例」または「ある実施例」と称する場合は、当該実施例に関して記述された特定の機能、構造、または特性が、本発明の少なくとも１つの実施例に含まれることを意味する。したがって、「一実施例において」または「ある実施例において」という語句が本明細書全体にわたって多くの箇所で用いられるが、それらの全てが必ずしも同一の実施例を指すわけではない。さらに、特定の機能、構造、または特性は、１またはそれ以上の実施例において組み合わせることも可能である。
【０００５】
例えば、図１は、本発明のいくつかの実施例において使用することができるシステムを示す。システムは、１０２−０から１０２−Ｎまでの管理されたクライアント装置、構成装置１０４、および管理コンソール１０６を含む。管理されたクライアント装置１０２−０から１０２−Ｎ、構成装置１０４、および管理コンソール１０６は、ネットワーク１５０を使用して通信する。
【０００６】
ネットワーク１５０は、インターネット、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、記憶域ネットワーク（ＳＡＮ）、広域ネットワーク（ＷＡＮ）、またはワイヤレス・ネットワークのようなあらゆるネットワークである。ネットワーク１５０は、（ＩＥＥＥ８０２．３および関連する標準規格に記述された）イーサネット（登録商標）標準規格またはあらゆる通信標準規格を使用するコンピュータ・システムによってトラフィックを交換する。
【０００７】
例えば、管理されたクライアント装置１０２−０から１０２−Ｎは、いずれもパーソナル・コンピュータまたはサーバ・コンピュータのような任意のコンピュータとして提供される。一実施例では、管理されたクライアント装置１０２−０から１０２−Ｎのいずれも、それ自体の資産記述のような情報に加えて、疑わしいハードウェア障害およびログイン要求に応じてユーザによって入力されたキー・ストロークに関連する情報（ただし、これらの情報に制限されない。）を管理コンソール１０６に提供することができる。一実施例では、管理されたクライアント装置１０２−０から１０２−Ｎは、ネットワーク１５０によるアクセスおよびネットワーク１５０へのアクセスを防止するために、それ自体をネットワーク１５０から隔離することができる。
【０００８】
構成装置１０４は、管理されたクライアント装置のディレクトリ、および、管理されたクライアント装置１０２−０から１０２−Ｎと管理コンソール１０６との間の通信のためのプロトコルを提供する。例えば、通信を提供するために、構成装置１０４は、動的ホスト構成プロトコル（ＤＨＣＰ）および／またはドメイン・ネーム・システム（ＤＮＳ）プロトコルを使用するが、他のプロトコルを使用してもよい。一実施例では、管理コンソール１０６および構成装置１０４は、単一の装置として結合される。
【０００９】
管理コンソール１０６は、管理されたクライアント装置１０２−０から１０２−Ｎの資産（例えば、管理されたクライアント装置１０２−０から１０２−Ｎのそれぞれが有するハードウェア、ソフトウェア、および／またはデータ）に加えて、管理されたクライアント装置の他のステータス情報（例えば、ブートアップ・レコード）を見ることができる機能をユーザに提供する。管理コンソール１０６は、管理されたクライアント装置１０２−０から１０２−Ｎのオペレーティング・システムまたは電力モードの状態にかかわらず、管理されたクライアント装置１０２−０から１０２−Ｎを監視することができる機能をユーザに提供する。一実施例では、管理コンソール１０６は、他のプロトコルが使用されていても、拡張可能なマーク付け言語（ＸＭＬ）スクリプトを介して、管理されたクライアント装置１０２−０から１０２−Ｎのそれぞれと相互に通信することができる。
【００１０】
図２は、コンピュータ・システム２００における、管理されたクライアント装置１０２−０から１０２−Ｎの適切な実施例を示す。コンピュータ・システム２００は、チップセット２０５、プロセッサ２１０、ホスト・メモリ２１２、システム・メモリ２１４、ブートアップ・メモリ２１６、バス２２０、およびハードウェア（ＨＷ）コンポーネント２２２−０から２２２−Ｎを含む。
【００１１】
チップセット２０５は、プロセッサ２１０およびホスト・メモリ２１２間の相互通信を提供するメモリ・コントローラ・ハブ（ＭＣＨ）２０５Ａに加えて、表示装置上に表示するためにグラフィックおよび情報（両方とも図示せず）を送信するために使用可能なグラフィック・アダプタを含む。チップセット２０５はさらに、ＭＣＨ２０５Ａと相互通信し、かつ、システム・メモリ２１４、ブートアップ・メモリ２１６、およびバス２２０間に相互通信を提供する入出力コントロール・ハブ（ＩＣＨ）２０５Ｂを含む。
【００１２】
プロセッサ２１０は、複雑命令セット・コンピュータ（ＣＩＳＣ）または縮小命令セット・コンピュータ（ＲＩＳＣ）のプロセッサ、マルチコア、または他のあらゆるマイクロプロセッサまたは中央処理装置として提供される。ホスト・メモリ２１２は、揮発性メモリ装置（例えば、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ））として提供される。システム・メモリ２１４は、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ、内部格納装置、付加格納装置、および／またはネットワークアクセス可能な格納装置のような不揮発性格納装置として提供される。システム・メモリ２１４に格納されたルーチンおよび情報は、ホスト・メモリ２１２内にロードされ、プロセッサ２１０によって実行される。例えば、システム・メモリ２１４は、システム２００によって使用されるオペレーティング・システムおよびアプリケーションを格納する。
【００１３】
ブートアップ・メモリ２１６は、リード・オンリ・メモリ（ＲＯＭ）、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、マスクＲＯＭ、またはフラッシュ・メモリのような不揮発性メモリとして提供される。ブートアップ・メモリ２１６は、基本入出力システム（ＢＩＯＳ）および管理されたクライアント装置の資産記述を少なくとも格納する。一実施例において、システム２００のブートアップ中に、ＢＩＯＳは、資産記述に加えてブート・レコードを決定する。例えば、資産記述には、管理されたクライアント装置の型／モデル、プロセッサ２１０のシリアル番号、ホスト・メモリの格納サイズ、システム・メモリ２１４の格納サイズ、プラグ・アンド・プレイＩＤリスト（例えば、シリアル番号または一般名のいずれかによるハードウェア周辺装置のリスト）が含まれるが、これらに制限されない。いくらかの資産記述はハードコード化されているが、いくらかはブートアップ中に測定される（例えば、ホスト・メモリの格納サイズ、システム・メモリ２１４の格納サイズ、プラグ・アンド・プレイＩＤリスト）。システム２００のブート・レコードは、疑わしいハードウェア障害、またはブートアップ・プロセス中に測定されたインディケータ（例えばホスト・メモリ２１２チェック、ハードディスク・チェック／無効ブート・セクタ）を含む。
【００１４】
バス２２０は、ホスト・システム２０２とＨＷコンポーネント２２２−０から２２２−Ｎとの間の相互通信を提供する。バス２２０は、ノード対ノードまたはノード対マルチ・ノード通信をサポートする。バス２２０は、例えば、アメリカ合衆国オレゴン州ポートランドのＰＣＩ特別利益団体から入手可能な、１９９８年１２月１８日発行の周辺要素相互接続（ＰＣＩ）ローカルバス仕様書改定版２．２（その改定版も同様）に記述された周辺要素相互接続（ＰＣＩ）；ＰＣＩ特別利益団体のＰＣＩエクスプレス・ベース仕様書改訂版１．０ａ（その改定版も同様）に記述されたＰＣＩエクスプレス；アメリカ合衆国オレゴン州ポートランドの前述のＰＣＩ特別利益団体から入手可能な、２０００年７月２４日発行のＰＣＩ−Ｘ仕様書改訂版１．０ａ（その改定版も同様）に記述されたＰＣＩ−ｘ；例えば、シリアルＡＴＡワーキング・グループによって２００１年８月２９日に発行された「シリアルＡＴＡ：高速シリアルＡＴアタッチメント」改訂版１．０に記述されたシリアルＡＴＡ（関連する標準規格も同様）；ユニバーサル・シリアル・バス（ＵＳＢ）（および関連する標準規格）；その他の相互接続の標準規格と互換性を有する。
【００１５】
ＨＷコンポーネント２２２−０から２２２−Ｎは、ホスト・システム２０２から情報または命令を受信するか、あるいは、ホスト・システム２０２に情報または命令を提供することができる任意の装置である。ＨＷコンポーネント２２２−０から２２２−Ｎはいずれも、他のＨＷコンポーネント２２２−０から２２２−Ｎに情報または命令を提供することができ、あるいは、他のＨＷコンポーネント２２２−０から２２２−Ｎから情報または命令を受信することができる。ＨＷコンポーネント２２２−０から２２２−Ｎは、ホスト・システム２０２と同一のコンピュータ・プラットフォームに集積することができる。
【００１６】
例えば、ＨＷコンポーネント２２２−０から２２２−Ｎは、ディスプレイ・アダプタ、ハード・ドライブ（それは、最初はＢＩＯＳのみによって、またはそれ自体のＢＩＯＳ拡張によって形成される）、または、ホスト・システムが電力を供給し、その後ロックされたときにのみ形成され得るチップセット（ＩＣＨ／ＭＣＨ）の部分として提供されるが、他の実施例も可能である。
【００１７】
一実施例において、ＨＷコンポーネント２２２−０から２２２−Ｎの少なくとも１つは、コンピュータ・システム２００とネットワーク（例えばネットワーク１５０。ただし、これに制限されない。）との間の相互通信を提供することができるネットワーク・インターフェイスとして提供される。例えば、ネットワーク・インターフェイスは、バス２２０を介してチップセット２０５と相互通信することができる。
【００１８】
一実施例において、ＨＷコンポーネント２２２−０から２２２−Ｎは、複数のフェーズに入ることができ、そのために各フェーズにおいて、ＨＷコンポーネントは、ＨＷコンポーネントの外部にあるソース（例えば、他のＨＷコンポーネントまたはホスト・システム２０２）から提供される命令に応じる範囲が縮小される。例えば、トラスト・フェーズ(trusted phase)では、ＨＷコンポーネントは、ＨＷコンポーネントの外部にあるあらゆるソースによって提供されるどのような命令にも応じる。例えば、アントラスト・フェーズ(untrusted phase)では、ＨＷコンポーネントは、あらゆる外部ソースによって提供されるいかなる命令にも応じない。従って、アントラスト・フェーズでは、ＨＷコンポーネントを制御しようと試みる悪意あるコードがＨＷコンポーネントへアクセスする範囲については拒否される。例えば、ＨＷコンポーネントは、命令を無視するか、または予めプログラムされた一般的な応答を提供することによって、アントラスト・フェーズ中に受信した命令に応答する。
【００１９】
一実施例では、トリガ事象(triggering event)によって、ＨＷコンポーネント２２２−０から２２２−Ｎの状態が、トラスト・フェーズからアントラスト・フェーズに、またはその逆に変更される。ＨＷコンポーネントをトラスト・フェーズに入らせるような、ＨＷコンポーネントによって検出可能なトリガ事象には、ソフトウエア・コンポーネントがトリガすることができず、かつ、直後のステップがトラスト・ソース(trusted source)を実行させるプラットフォーム事象を含む。例えば、トラスト・ソースは、オフＢＩＯＳであるコードを実行することを要求する前のＢＩＯＳコードを含む。オフＢＩＯＳコードは、ブートアップ・メモリ２１６以外のメモリ中のコード、オペレーティング・システム（例えば、Ｌｉｎｕｘ、ＤＯＳ、またはＷｉｎｄｏｗｓ（登録商標）、またはＢＩＯＳが実行を要求することができるあらゆるサード・パーティの「ＲＯＭ拡張」コードを含むが、これらに制限されない。サード・パーティＲＯＭ拡張の例としては、スモール・コンピュータ・システムズ・インターフェイス（ＳＣＳＩ）アダプタを初期化するためにＳＣＳＩアダプタによって使用されるコード、およびネットワーク・インターフェイスを使用してネットワークからオペレーティング・システム（ＯＳ）をロードできるようにするプレブート実行環境（ＰＸＥ）コードが含まれるが、これらに制限されない。他のトラスト・ソースには、トラスト・ソースまたは許可された人間による場合以外は追加することができず、また、追加された後は、トラスト・ソースまたは許可された人間による場合以外は続けて変更することができないようなソフトウェアが含まれる。
【００２０】
例えば、ＨＷコンポーネントをトラスト・フェーズに入らせるトリガ事象には、ホスト・システム２０２内のＰＣＩリセット非表明事象が含まれる。ＰＣＩの下では、ＰＣＩリセット非表明事象が生じた後、プロセッサはリセットされ、そして次の段階は、プロセッサがＢＩＯＳコードを実行するための段階である。例えば、システムの電源投入または再始動は、ＰＣＩリセット非表明事象のトリガとなる。
【００２１】
例えば、アントラスト・フェーズへの入口となるトリガ事象には、アントラスト・ソースが次に実行されるであろうことを通知するトラスト・ソース（例えばＢＩＯＳ）、またはアントラスト・フェーズに入るという指示が含まれるが、他のトリガ事象が使用されてもよい。例えば、オフＢＩＯＳコードであるコードを実行する前のＢＩＯＳ通知は、アントラスト・フェーズに入るトリガとなる。
【００２２】
一実施例では、トラストには複数のレベルがある。例えば、トラスト・フェーズ、半トラスト・フェーズ(semi-trusted phase)、アントラスト・フェーズがある。半トラスト・フェーズの間は、ＨＷコンポーネントは、制限されたセットの命令を実行するか、あるいは制限されたセットのソースによって出された命令を実行する。例えば、ソースは、アクセス要求内のソース識別子によってそれ自体を識別する。
【００２３】
トラスト・フェーズまたは半トラスト・フェーズへの移動を引き起こすトリガの他の例には、マスク不可能割込み（ＮＭＩ）およびシステム管理割込み（ＳＭＩ）が含まれる。ＮＭＩは、ホスト・プロセッサがＢＩＯＳを次に実行するトリガとなり、それによってトラスト・フェーズへの移動を引き起こす。ＮＭＩは、ホスト・プロセッサが、ＯＳカーネルのようなＢＩＯＳよりも信用度が低いコードを次に実行するトリガとなり、それによって半トラスト・フェーズへの移動を引き起こし、そのために、ＯＳのカーネルからの制限された一組の命令は、実行されるためにＨＷコア・ロジックへ転送される。ＳＭＩは、ホスト・プロセッサがＢＩＯＳを次に実行するためのトリガとなり、これによってトラスト・フェーズへの移動を引き起こす。コア・ロジックへ転送されるＯＳおよびＢＩＯＳ命令のさらなる例としては、ログイン中にユーザのキー・ストロークを格納することが含まれる。
【００２４】
例えば、図３Ａは、本発明の実施例に従った、トラスト・フェーズまたはアントラスト・フェーズに入るための機能を含むＨＷコンポーネントの実施例を示す。ＨＷコンポーネントは、入出力装置３０５、フィルタ装置３１０、およびＨＷコンポーネント・ロジック３１５を含む。入出力装置３０５は、バス２２０のように、ＨＷコンポーネントと外部装置との間の相互通信を提供する。フィルタ装置３１０は、トリガ事象に応じてトラスト・フェーズおよびアントラスト・フェーズに入るためのコマンドに応答する。例えば、フィルタ装置３１０は、トラスト・フェーズまたはアントラスト・フェーズに入るきっかけとなるトリガ事象を認識するためにプログラムされる。フィルタ装置３１０は、トラスト・フェーズ中にＨＷコンポーネントに提供された命令についてはＨＷコンポーネント・ロジック３１５へ転送するが、アントラスト・フェーズ中にＨＷコンポーネントに提供された命令についてはＨＷコンポーネント・ロジック３１５への到達を阻止する。半トラスト・フェーズがサポートされているとき、フィルタ装置３１０は、予め識別された命令またはトラスト・ソースからの命令を、ＨＷコンポーネント・ロジック３１５に転送する。ＨＷコンポーネント・ロジック３１５は、一般に、ＨＷコンポーネントのコア知能を提供する。ＨＷコア・ロジック３１５は、マザーボードの導電性リードを使用して相互接続されたマイクロチップまたは集積回路、ハードワイヤード・ロジック、記憶装置によって格納されかつマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途向け集積回路（ＡＳＩＣ）、メモリまたは格納装置、および／または書替え可能ゲート・アレイ（ＦＰＧＡ）を含む。
【００２５】
一実施例において、ＨＷコンポーネント２２２−０から２２２−Ｎは、ハードワイヤード・ロジック、記憶装置によって格納されかつマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途向け集積回路（ＡＳＩＣ）、および／または、書替え可能ゲート・アレイ（ＦＰＧＡ）のいずれか、またはこれらの組み合わせとして提供される。
【００２６】
例えば、図３Ｂは、本発明の実施例に従って、ネットワーク・インターフェイス３００の実施例を示す。ネットワーク・インターフェイス３００は、物理層インターフェイス（ＰＨＹ）３０２、コントローラ３０４、メモリ３０６、および入出力装置３０８を含む。
【００２７】
ＰＨＹ３０２は、ネットワークのネットワーク媒体へのネットワーク・インターフェイス３００アクセスを提供し、それによって、ネットワークとネットワーク・インターフェイス３００との間におけるパケットおよびフレームの送信および受信がサポートされる。
【００２８】
コントローラ３０４は、イーサネット（登録商標）、ＳＯＮＥＴ／ＳＤＨ、および／またはＯＴＮのようなプロトコルに適合したネットワークに送信するために、パケットまたはフレームをコード化する。同様に、コントローラ３０４は、イーサネット（登録商標）、ＳＯＮＥＴ／ＳＤＨ、および／またはＯＴＮから受信したパケットまたはフレームを解読する。
【００２９】
メモリ３０６は、パケットおよびフレームのコード化および解読プロセスにおいて、コントローラ３０４によって使用される情報を格納する。メモリ３０６は、ネットワークに転送することができるパケットおよびフレームのコンテンツはもちろん、ネットワークから受信したパケットおよびフレームのコンテンツを格納する。例えば、メモリ３０６は、ホスト・システム２０２のような装置へ転送される情報、またはホスト・システム２０２のような装置からネットワーク上の装置（例えば管理コンソール）に転送される情報を格納する。メモリ３０６は、管理コンソールのような（ただし、これに制限されない）外部装置と通信するために、ネットワーク・インターフェイス３００によって使用されるアプリケーションおよびプロトコルを格納する。
【００３０】
入出力装置３０８は、バス（ホスト・システム２０２へのアクセスに使用することができる）とネットワーク・インターフェイス３００との間の相互通信を提供する。入出力装置３０８は、さらに、トラスト・フェーズまたはアントラスト・フェーズに入るためのトリガ事象を監視し、また、トラスト／アントラスト・フェーズに基づいてネットワーク・インターフェイス３００に提供される情報をフィルタする。
【００３１】
一実施例において、ＰＣＩ上で実行されるインテリジェント・プラットフォーム管理インターフェイス（ＩＰＭＩ）標準規格で定義されたＫＣＳインターフェイスは、（ホスト・システムによって実行された）ＢＩＯＳとネットワーク・インターフェイス３００との間の相互通信を提供するために使用される。例えば、ハードウェア資産情報またはブートアップ・レコードに関係する情報のようなＢＩＯＳによって決定された情報は、トラスト・フェーズ中にＫＣＳインターフェイスを使用して、ＢＩＯＳからネットワーク・インターフェイス３００へ転送される。トラスト・フェーズ中にネットワーク・インターフェイス３００に転送された情報は、メモリ３０６に格納される。例えば、トラスト・フェーズ中に、ネットワーク・インターフェイス３００は、ＫＣＳインターフェイスを使用してパスワードまたはキーのようなＢＩＯＳに情報を転送する。従って、トラスト・フェーズ中に転送される情報は、不正なものではないとして信頼できる。
【００３２】
例えば、管理コンソール１０６のような装置は、ネットワークを介してネットワーク・インターフェイス３００に要求を提供することにより、ホスト・システム２０２からの情報を要求する。一実施例において、管理コンソール１０６は、ＸＭＬと互換性を有する通信を使用して、資産記述情報またはブートアップ・レコードを要求する。従って、ホスト・システム２０２に関する情報は、ホスト・システム２０２のオペレーティング・システムまたは電力使用状態にかかわらず、格納および転送のためにネットワーク・インターフェイス３００へ情報を提供することにより、管理コンソール１０６のような装置に転送される。
【００３３】
ネットワーク・インターフェイス３００は、マザーボードの導電性リードを使用して相互接続されたマイクロチップまたは集積回路、ハードワイヤード・ロジック、記憶装置によって格納されかつマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途向け集積回路（ＡＳＩＣ）、および／またはフィールド・プログラム可能ゲート・アレイ（ＦＰＧＡ）のいずれか、またはそれらの組み合せとして提供される。例えば、ネットワーク・インターフェイス３００は、ＬＡＮオン・マザーボード(LAN-on-motherboard)の実施例におけるチップセット（例えばチップセット２０５。しかし、これに制限されない）に集積され；コンピュータ・システム（例えばチップセット２０５。しかし、これに制限されない）との相互通信を提供するためにマザーボード・プラットフォーム内でバス・インターフェイスに挿入できるＬＡＮ接続カードとして実行され；および／または、一部はホスト・プロセッサを使用して実施される。
【００３４】
図４は、本発明の実施例に従って、ＨＷコンポーネントの実施例において予測されるいくつかの状態の状態図を提供するが、他の状態もあり得る。状態４０２は、コンピュータ・システムの電力がオフまたは低減された電力状態であるか、または、コンピュータ・システムの次のオペレーティング・ステップがトラスト・ソースの実行（例えば、ＢＩＯＳの実行）であるような状態である。状態４０２は、冬眠のような低電力モードであり、これによって、ＰＣＩの下で、冬眠の後、ＰＣＩリセット非表明が生じ、ＢＩＯＳ実行がそれに続く。
【００３５】
状態４０２から状態４０４への変更を引き起こす、ＨＷコンポーネントによって検出可能なトリガ事象には、ソフトウエア・コンポーネントがトリガすることができず、かつ、直後のステップがトラスト・ソースを実行させるプラットフォーム事象を含む。例えば、ＨＷコンポーネントをトラスト・フェーズに入らせるためのトリガ事象は、ホスト・システム２０２内のＰＣＩリセット非表明事象を含む。
【００３６】
状態４０４はトラスト・フェーズであり、それによってＨＷコンポーネントは、外部ソースによって提供されるあらゆる命令に応じることができる。一実施例では、電力オフまたは電力減少事象によって、状態４０４から状態４０２への変更が引き起こされる。一実施例において、トラスト・ソースが実行を停止するというトラスト・ソースからの指示は、状態４０４から状態４０６への変更のトリガとなる。例えば、それがサード・パーティ「ＲＯＭ拡張」コードの実行を要求することを示すＢＩＯＳは、状態４０４からの状態４０６への変更のトリガとなる。
【００３７】
状態４０６はアントラスト・フェーズであり、それによってＨＷコンポーネントは、いずれの外部ソースによって提供されるいずれの命令にも応じない。一実施例において、電力オフまたは電力減少事象は、状態４０６から状態４０２への変更のトリガとなる。一実施例において、状態４０２から状態４０４への変更を引き起こすようなトリガ事象は、状態４０６から状態４０４への変更を引き起こす。
【００３８】
図５は、ハードウェア・コンポーネントが外部装置またはルーチンによって制御できる範囲を制御するために、本発明の実施例において使用可能な実施例を示す。
【００３９】
５０２で、ハードウェア・コンポーネントは、トラスト・フェーズに入るためのトリガ事象を検出する。例えば、プラットフォーム電力投入または全出力への復元に続くＰＣＩリセット非表明事象を検出することによって、トラスト・フェーズに入ることができる。ＨＷコンポーネントがトラスト・フェーズに入るために、ＨＷコンポーネントによって検出可能な他のトリガ事象には、いずれのソフトウエア・コンポーネントもトリガすることができないプラットフォーム事象が含まれる。他のトリガ事象としては、直後ステップがトラスト・ソースを実行となるようにするトリガ事象でもよい。
【００４０】
５０４で、トラスト・フェーズの間、ＨＷコンポーネントは外部ソースから命令を受信する。
【００４１】
５０６で、ＨＷコンポーネントは、アントラスト・フェーズに入るためにトリガ事象に応答する。例えば、アントラスト・フェーズへの入口を引き起こすトリガ事象には、アントラスト・ソースが次に実行されること、あるいはアントラスト・フェーズに入るということを通知するトラスト・ソース（例えばＢＩＯＳ）が含まれる。
【００４２】
５０８で、アントラスト・フェーズのＨＷコンポーネントは、再びトラスト・フェーズに入るための特定の指示を除き、外部ソースによって提供される命令を実行しない。
【００４３】
図６は、本発明の実施例に従って、トラスト・フェーズとアントラスト・フェーズとの間の移動を示すタイミング図を示す。６０２で、ハードウェア・コンポーネントは、ＰＣＩリセット非表明を検出し、トラスト・フェーズに入る。
【００４４】
６０４で、ＢＩＯＳは、トラスト・フェーズ中に動作を開始する。６０６で、ＢＩＯＳは、少なくとも１つのハードウェア・コンポーネントにコマンドを出す。例えば、コマンドには、ハードウェア資産情報のようなＢＩＯＳによって提供される情報を格納するというハードウェア・コンポーネントに対する要求が含まれる。少なくとも１つのハードウェア・コンポーネントの各々が、コマンドに応じる。
【００４５】
６０８で、ＢＩＯＳは、ＢＩＯＳが安全でないソフトウェアをロードすることを少なくとも１つのハードウェア・コンポーネントに通知する。各ハードウェア・コンポーネントは、ＢＩＯＳが安全でないソフトウェアをロードするという通知を受け取った後、トラスト・フェーズに入る。６１０で、ソフトウェア・ルーチンまたは装置は、アントラスト・フェーズにあるハードウェア・コンポーネントに、命令の実行を指示しようとする。ハードウェア・コンポーネントはアントラスト・フェーズにあるので、ハードウェア・コンポーネントは、コマンドを無視するか、そうでなければ偽の応答（例えば予め定義した応答）を出す。６１２で、プラットフォームはリセットし、ＰＣＩリセット非表明がハードウェア・コンポーネントに送出される。ハードウェア・コンポーネントは、それによって再びトラスト・フェーズに入る。
【００４６】
図面および上記記述は、本発明の実施例である。多数の要素から成る機能的な物として示されたものであっても、当業者は、かかる要素の１またはそれ以上を組み合わせて単一の機能的な物にすることができることを理解するであろう。あるいは、ある要素は、複数の要素に分割することができる。しかしながら、本発明の範囲は、これらの特定の実施例によって制限されない。明細書中に明示的に記述されているかどうかにかかわらず、構造、寸法、および使用する材料が異なるような、多数の変更が可能である。本発明の範囲は、少なくとも添付の請求項によって付与される発明の範囲と同様に広い。
【図面の簡単な説明】
【００４７】
【図１】本発明のいくつかの実施例を使用するシステムを示す。
【図２】本発明の実施例を使用するコンピュータ・システムの一例を示す。
【図３Ａ】本発明の実施例に従って、ＨＷコンポーネントの実施例を示す。
【図３Ｂ】本発明の実施例に従って、ネットワーク・インターフェイスの実施例を示す。
【図４】本発明の実施例に従って、ＨＷコンポーネントの実施例において予測されるいくつかの状態の状態図を提供する。
【図５】ハードウェア・コンポーネントが外部装置またはルーチンによって制御できる範囲を制御するために、本発明の実施例において使用可能なプロセスの一例を示す。
【図６】本発明の実施例に従って、トラスト・フェーズとアントラスト・フェーズとの間の移動を示すタイミング図を示す。
【図１】
2008524722.tif 000003
【図２】
2008524722.tif 000004
【図３Ａ】
2008524722.tif 000005
【図３Ｂ】
2008524722.tif 000006
【図４】
2008524722.tif 000007
【図５】
2008524722.tif 000008
【図６】
2008524722.tif 000009
【国際調査報告】
2008524722.tif 000010
2008524722.tif 000011