(57)【要約】      （修正有）【課題】セキュアサーバシステム管理を行うための方法、装置、システムおよびコンピュータプログラム製品を提供する。【解決手段】システムソフトウェアおよび／またはファームウェアの更新を含むペイロードは、オンデマンド方式でセキュアなＩ／Ｏ処理によって分配される。このＩ／Ｏ処理は、エミュレートされたＵＳＢドライブに対して、サーバのオペレーティングシステムがアクセス不可能なセキュアな通信チャネルを用いて実行する。セキュアな通信チャネルは、ペイロードの受信者の認証が済んだ後でのみＩ／Ｏ処理について構築でき、感染している可能性があるサーバオペレーティングシステムによるアクセスからペイロードを保護する。さらに、ペイロードは、ＢＩＯＳ更新スケジュールに左右されることなくオンデマンド方式に分配し、ＵＳＢドライブへの書込処理の速度で分配する。【選択図】図１
2014194820.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
システム管理割り込み（ＳＭＩ）を生成可能なＩ／Ｏコントローラに結合されているプラットフォームコントローラを備えるシステムにおいて、
データへのセキュアアクセスを要求するイベントに応じて、ＳＭＩを生成して、前記システムをシステム管理モードに移行させる段階と、
前記プラットフォームコントローラのリソースを用いて、エミュレートされたＵＳＢドライブを作成する段階と
前記システムのオペレーティングシステムがアクセス不可能な接続を介して、前記データを前記エミュレートされたＵＳＢドライブから複製する段階と
前記システム管理モードから移行する前に、前記データを処理する段階と
を実行し、
前記リソースは前記データを格納している方法。
【請求項２】
前記システム管理モードの間に、前記データの受信者の認証を行う段階をさらに実行する請求項１に記載の方法。
【請求項３】
前記プラットフォームコントローラは、ベースボード管理コントローラである請求項１または２に記載の方法。
【請求項４】
前記プラットフォームコントローラは、前記システムのチップセットの管理エンジンによって供給される請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記データを企業用サーバから前記エミュレートされたＵＳＢドライブにダウンロードする段階をさらに実行する請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記システム管理モードから移行する前に、前記エミュレートされたＵＳＢドライブを前記オペレーティングシステムから見えなくする段階をさらに実行する請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記プラットフォームコントローラの前記リソースを用いて前記エミュレートされたＵＳＢドライブを作成する段階は、前記エミュレートされたＵＳＢドライブにアクセスするよう求める要求に応じて実行される請求項１から６のいずれか一項に記載の方法。
【請求項８】
プロセッサと、
プラットフォームコントローラと、
システム管理割り込み（ＳＭＩ）を生成可能なＩ／Ｏコントローラと、
前記プロセッサに結合されており、命令を有するメモリと
を備えるシステムであって、
前記命令は、
データへのセキュアアクセスを要求するイベントに応じて、ＳＭＩを生成して、前記システムをシステム管理モードに移行させる段階と、
前記プラットフォームコントローラのリソースを用いて、エミュレートされたＵＳＢドライブを作成する段階と、
前記システムのオペレーティングシステムがアクセス不可能な接続を介して、前記データを前記エミュレートされたＵＳＢドライブから複製する段階と、
前記システム管理モードから移行する前に、前記データを処理する段階と
を実行するための命令であり、
前記リソースは前記データを格納しているシステム。
【請求項９】
前記命令はさらに、前記システム管理モードの間に、前記データの受信者の認証を行う段階を実行するための命令を含む請求項８に記載のシステム。
【請求項１０】
前記プラットフォームコントローラは、ベースボード管理コントローラである請求項８または９に記載のシステム。
【請求項１１】
前記プラットフォームコントローラは、前記システムのチップセットの管理エンジンによって供給される請求項８から１０のいずれか一項に記載のシステム。
【請求項１２】
前記命令はさらに、企業用サーバからの前記データを前記エミュレートされたＵＳＢドライブにダウンロードする段階を実行するための命令を含む請求項８から１１のいずれか一項に記載のシステム。
【請求項１３】
前記命令はさらに、前記システム管理モードから移行する前に、前記エミュレートされたＵＳＢドライブを前記オペレーティングシステムから見えなくする段階を実行するための命令を含む請求項８から１２のいずれか一項に記載のシステム。
【請求項１４】
前記プラットフォームコントローラの前記リソースを用いて前記エミュレートされたＵＳＢドライブを作成する段階は、前記エミュレートされたＵＳＢドライブにアクセスするよう求める要求に応じて実行される請求項８から１３のいずれか一項に記載のシステム。
【請求項１５】
システム管理割り込み（ＳＭＩ）を生成可能なＩ／Ｏコントローラに結合されているプラットフォームコントローラを備えるコンピュータに、
データへのセキュアアクセスを要求するイベントに応じて、ＳＭＩを生成して、前記システムをシステム管理モードに移行させる手順と、
前記プラットフォームコントローラのリソースを用いて、エミュレートされたＵＳＢドライブを作成する手順と、
前記システムのオペレーティングシステムがアクセス不可能な接続を介して、前記データを前記エミュレートされたＵＳＢドライブから複製する手順と、
前記システム管理モードから移行する前に、前記データを処理する手順と
を実行させるためのプログラムであって、
前記リソースは前記データを格納しているプログラム。
【請求項１６】
前記コンピュータにさらに、前記システム管理モードの間に、前記データの受信者の認証を行う手順を実行させるための請求項１５に記載のプログラム。
【請求項１７】
前記プラットフォームコントローラは、ベースボード管理コントローラである請求項１５または１６に記載のプログラム。
【請求項１８】
前記プラットフォームコントローラは、前記システムのチップセットの管理エンジンによって供給される請求項１５から１７のいずれか一項に記載のプログラム。
【請求項１９】
前記コンピュータにさらに、前記データを企業用サーバから前記エミュレートされたＵＳＢドライブにダウンロードする手順を実行させるための請求項１５から１８のいずれか一項に記載のプログラム。
【請求項２０】
前記コンピュータにさらに、前記システム管理モードから移行する前に、前記エミュレートされたＵＳＢドライブを前記オペレーティングシステムから見えなくする手順を実行させるための請求項１５から１９のいずれか一項に記載のプログラム。
【請求項２１】
前記プラットフォームコントローラの前記リソースを用いて前記エミュレートされたＵＳＢドライブを作成する手順は、前記エミュレートされたＵＳＢドライブにアクセスするよう求める要求に応じて実行される請求項１５から２０のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して、コンピューティング環境の管理に関する。
【０００２】
＜著作権情報＞
本文献の記載内容は、著作権保護の対象となるものである。著作権保有者は、米国特許商標庁の特許ファイルまたは特許記録の内容については何人による特許開示内容の複製に反対するものではないが、それ以外については著作権に関する全ての権利を保有する。
【背景技術】
【０００３】
あらゆる場所でインターネットが利用可能となると共に、サーバコンピュータシステムの利用が広まっている。サーバコンピュータシステムは大抵の場合、大規模な組織における特定の利用者に対して、または、インターネットを介した不特定のユーザに対して、ネットワーク全体に不可欠なサービスを提供する。多くのサーバは、ウェブサーバ、印刷サーバおよびデータベースサーバ等、専用機能を持つ。ビジネスによっては、事業経営のために重要な何百もの、時には何千ものサーバコンピュータシステムを「サーバファーム」または「サービスプロセッサコンプレックス」内で維持しているものがある。
【０００４】
企業用サーバは、短期間の障害であってもシステムの購入およびインストールよりコストが高くなるので、故障に対する耐性が非常に高いことが理想的である。例えば、国の証券取引所では、たった数分間のダウンタイムであっても、故障したシステムを全て、より信頼性の高いシステムと交換する費用を惜しまない十分な理由となる。信頼性を高めるべく、サーバの大半は、エラーを検出して訂正する機能を持つメモリ、予備ディスク、予備電源等を利用する。このようなコンポーネントもまた、頻繁にホットスワップが可能であり、管理者は、サーバの電源を落とすことなく実行中のサーバでこういったコンポーネントを交換することができる。サーバは通常、資格を持ったエンジニアによって管理されるので、サーバのオペレーティングシステムは、使い易さよりも安定性および性能を優先して構成されており、Ｌｉｎｕｘ（登録商標）オペレーティングシステムは、デスクトップコンピュータよりもはるかに大きい割合を占めている。サーバオペレーティングシステム、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）ファームウェアおよびその他のシステムファームウェアに対する更新は、セキュア且つできる限り短時間に実行する必要がある。
【図面の簡単な説明】
【０００５】
【図１】本発明の一実施形態に係る、セキュアサーバプラットフォーム管理を可能とするプラットフォームを示すブロック図である。
【図２】本発明の一実施形態に係る、セキュアサーバプラットフォーム管理サービスを提供する際の、図１のシステムの構成要素の動作を説明するためのフローチャートである。
【図３】本発明の一実施形態に係る、セキュアサーバプラットフォーム管理サービスを提供する際の、図１のシステムの構成要素の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【０００６】
サーバオペレーティングシステムソフトウェアおよび／またはＢＩＯＳおよび他のシステムファームウェアを更新する現在のメカニズムは、オペレーティングシステムがロードした後に、フラッシュメモリまたはハードドライブパーティションからロードしたＢＩＯＳファームウェアに、ペイロードを埋め込むことに限定されている。このような更新は通常、システムがシステム管理モード（ＳＭＭ）である間に行われる。ＳＭＭは、最初にＩｎｔｅｌ３８６ＳＬでリリースされ、後続のＩｎｔｅｌアーキテクチャにおいて、最新型のマイクロプロセッサで利用可能となるコンピュータシステムの動作モードである。ＳＭＭにおいては、全ての通常の実行内容（オペレーティングシステムを含む）は一時停止され、特別な別のソフトウェア（通常は、ファームウェア、または、ハードウェアに支援されたデバッガ）を高特権モードで実行する。ＳＭＭによって、独立したメモリおよび実行環境が提供され、ＳＭＭコードは、オペレーティングシステムには見えないが、ホスト物理メモリに対して完全なアクセスを持ち、周辺機器ハードウェアを完全に制御している。
【０００７】
ＳＭＭは通常、システムを設定するため、メモリまたはチップセットのエラー等のシステムイベントを処理するため、ＣＰＵ温度が高温に到達するとシャットダウン等のシステム安全機能を実行するため、ファンのスイッチを入れる等の電力管理処理を実行するため、そして、ハードウェアをエミュレートするために用いられる。ＳＭＭは従来、システム管理割り込みに対するサービスを提供するために開始されるモードであり、プログラム実行を再開する（管理ソフトウェアおよびアプリケーションソフトウェアを含むソフトウェアスタックに戻る）。ベーシックインプット／アウトプットシステム（ＢＩＯＳ）は通常、ＳＭＭの間は、システムの動作を制限しない。
【０００８】
ＢＩＯＳファームウェアは通常、フラッシュメモリデバイスにロードされる。フラッシュメモリデバイスは、スペースが限られており、サイズはシステム毎に異なる。埋め込むことはさらに、システムソフトウェアまたはファームウェアに変化する。これは、ＢＩＯＳファームウェアまたはハードドライブパーティションのペイロードシステムソフトウェアは、ペイロードのサイズを制限する必要があるためである。さらに、ペイロードは一度ロードされればサーバオペレーティングシステムによって読み出し可能なので、ウィルスに感染したサーバオペレーティングシステムにペイロードがさらされてしまうセキュリティリスクがある。可能な解決方法の１つとして、ペイロードの署名済みバージョンを供給するという方法があるが、署名の認証およびペイロードの読み出しは、ＳＭＭ中に、一回のシステム管理割り込みを処理するための時間制約を守りつつ実行しなければならない。このような時間制約によってさらに、サーバシステム用のシステムソフトウェアおよび／またはファームウェアの更新を含むペイロードを分配する機能が制限されてしまう。
【０００９】
このような問題点を克服するべく本願で提案する解決方法は、サーバシステム用のシステムソフトウェアおよび／またはファームウェアの更新を含むペイロードをオンデマンド方式のセキュアなＩ／Ｏ処理で分配する。このＩ／Ｏ処理は、エミュレートされたＵＳＢドライブからサーバオペレーティングシステムがアクセス不可能なセキュア通信チャネルを介して実行される。ＵＳＢドライブは、プラットフォームコントローラＲＡＭおよび／またはフラッシュメモリを用いてエミュレートされる。
【００１０】
ＢＩＯＳファームウェアにペイロードを埋め込んでフラッシュメモリのサイズ制限に縛られる方法、または、サイズが制限されたハードドライブパーティションにペイロードを入れる方法とは異なり、ペイロードのサイズは任意のサイズとすることができる。ペイロードは、オペレーティングシステムソフトウェア、ＢＩＯＳ画像、診断ソフトウェア、および／または、ユニファイド・エクステンシブル・ファームウェア・インターフェース（ＵＥＦＩ）モジュールを含むとしてよい。ペイロードの受信者の認証が完了した後でのみＩ／Ｏ処理用にセキュア通信チャネルを構築することができ、感染している可能性があるサーバオペレーティングシステムによるアクセスに対してペイロードを保護することができる。さらに、ペイロードは、ＢＩＯＳ更新スケジュールに左右されることなくオンデマンド方式で配信することができ、ペイロードはＵＳＢドライブに対する書込処理の速度で配信することができる。
【００１１】
本発明の実施形態は、セキュアにサーバプラットフォームを管理する方法、装置、システムおよびコンピュータプログラム製品であって、ＢＩＯＳ、他のシステムファームウェア、および、サーバコンピュータシステムのオペレーティングシステムに対する更新を提供する方法、装置、システムおよびコンピュータプログラム製品を提供するとしてよい。一実施形態に係る方法は、システム管理割り込み（ＳＭＩ）を生成可能なＩ／Ｏコントローラに結合されているプラットフォームコントローラを備えるシステムにおいて、データへのセキュアアクセスを必要とするイベントに応じて、システムをシステム管理モードに移行させるべくＳＭＩを生成する段階と、プラットフォームコントローラのリソースを利用してエミュレートされたＵＳＢドライブを作成する段階と、エミュレートされたＵＳＢドライブからシステムのオペレーティングシステムがアクセス不可能な接続を介してデータを複製する段階と、システム管理モードから移行する前にデータを処理する段階とを備える。尚、リソースは、データを格納する。当該方法はさらに、システム管理モード中に、データの受信者の認証を行う段階をさらに備えるとしてよい。当該方法はさらに、プラットフォームコントローラがＩ／Ｏコントローラに対してＩ／Ｏイベントをアサートする段階をさらに備えるとしてよい。当該方法はさらに、Ｉ／ＯコントローラがＩ／Ｏイベントを介してデータを受信する段階を備えるとしてよい。一実施形態によると、プラットフォームコントローラは、ベースボード管理コントローラである。別の実施形態によると、プラットフォームコントローラは、システムのチップセットの管理エンジンによって用意される。一実施形態によると、当該方法はさらに、企業用サーバからエミュレートされたＵＳＢドライブへとデータをダウンロードする段階を備える。当該方法はさらに、システムがシステム管理モードから移行する前に、エミュレートされたＵＳＢドライブをオペレーティングシステムから見えないようにする段階を備えるとしてよい。当該方法を実行するための命令を備えるシステムおよびコンピュータプログラム製品も提供される。
【００１２】
本明細書において本発明の「一実施形態」または「ある実施形態」という場合、当該実施形態に関連付けて説明する特定の特徴、構造または特性が本発明の少なくとも１つの実施形態に含まれることを意味する。このため、「一実施形態において」「一実施形態によると」等の表現が明細書中で何度も見られるが、必ずしも全てが同じ実施形態を意味するわけではない。
【００１３】
説明の便宜上、本発明を深く理解していただくべく、具体的な構成および詳細な内容を記載する。しかし、当業者には、本発明の実施形態は本明細書に記載する具体的な構成および詳細な内容を採用せずに実施し得ることが明らかである。さらに、公知の特徴については、本発明をあいまいにすることを避けるべく、省略するか簡単に説明するにとどめる場合がある。本明細書ではさまざまな例を挙げる。これらは、本発明の具体的な実施形態を説明するためのものに過ぎない。本発明の範囲は、本明細書に記載する例に限定されるものではない。
【００１４】
本明細書で用いる場合、「アウトオブバンド（ＯＯＢ）」という用語は、主流から独立した通信、例えば、サーバデバイスとクライアントデバイスの管理モジュールとの間の通信であって、クライアントデバイスのオペレーティングシステム（ＯＳ）とは無関係に実行される通信を説明する用語である。本明細書では、クライアントデバイスはサーバコンピュータシステムであってよい。一方、サーバデバイスは、別の企業用管理サーバシステムで実行される企業用管理モジュールであってよい。
【００１５】
図１は、本発明の一実施形態に係る、ＢＩＯＳおよび他のシステムファームウェア、さらに、サーバオペレーティングシステムに対してセキュアシステム管理を実行するプラットフォームのブロック図である。プラットフォーム１００は、サーバコンピュータシステムに対応し、デスクトップ管理インターフェース（ＤＭＩ）１１１を介してチップセット１２０に接続されているプロセッサ１１０を備える。プロセッサ１１０は、プラットフォーム１００に処理電力を供給し、シングルコアプロセッサまたはマルチコアプロセッサであってよく、プラットフォーム１００に複数のプロセッサが設けられているとしてもよい。プロセッサ１１０は、１以上のシステムバス、通信経路または通信媒体（不図示）を介して、プラットフォーム１００の他の構成要素に接続されるとしてよい。プロセッサ１１０は、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）１１４をロードして実行することによって初期化されるとしてよい。ＢＩＯＳ１１４はこの後、サーバオペレーティングシステム１１３をロードするとしてよい。動作について、プロセッサ１１０は、最終的にシステム管理モード（ＳＭＭ）に移行するとしてよい。ＳＭＭハンドラ１１５を呼び出してＳＭＭに移行する。ＳＭＭの間は、全ての通常の実行内容（オペレーティングシステム１１３を含む）を一時停止して、特別な別のソフトウェア（通常は、ファームウェア、または、ハードウェアに支援されているデバッガ）を高特権モードで実行する。ＳＭＭは独立したメモリおよび実行環境を提供し、ＳＭＭコードは、サーバオペレーティングシステム１１３に見えないがホスト物理メモリに対する完全なアクセスを持ち、周辺機器ハードウェアを完全に制御する。
【００１６】
図１に戻って、プラットフォームコントローラ／ＢＭＣ１８０は、企業用サービス１７０とプラットフォームハードウェアとの間のアウトオブバンドインターフェースを管理するためのロジックを提供する。例えば、プラットフォームコントローラ／ＢＭＣ１８０は、インテリジェント・プラットフォーム・マネジメント・インターフェース（ＩＰＭＩ）アーキテクチャに応じたベースボード・マネジメント・コントローラ（ＢＭＣ）によって提供されるとしてよい。ＩＰＭＩ等のアウトオブバンドインターフェースは、プロセッサ１１０で実行されているサーバオペレーティングシステム１１３とは無関係に動作し、動作可能なオペレーティングシステムが無い場合であっても、システム管理ソフトウェアを利用している管理者がプラットフォーム１００を管理できるようにする。一実施形態によると、プロセッサ１１０は、サーバオペレーティングシステム１１３の指示により動作する一方、プラットフォームコントローラ／ＢＭＣ１８０は、サーバオペレーティングシステム１１３によるアクセスが不可のセキュア且つ隔離された環境を提供する。プラットフォームコントローラ／ＢＭＣ１８０は、ネットワークコントローラ１６０およびアウトオブバンド通信チャネル１７１を介して、企業用サービス１７０に通信可能に結合されている。アウトオブバンド通信チャネル１７１は、企業用サービス１７０が直接プラットフォーム１００のハードウェアと通信できるようにする。
【００１７】
企業用サービス１７０を用いて、プラットフォームコントローラ／ＢＭＣ１８０は、プラットフォーム１００等のプラットフォームの管理および構成に関する企業全体でのポリシーとの一貫性を維持し、例えば、本発明の一実施形態に係るサーバプラットフォーム管理サービスを提供する。プラットフォーム管理サービス１８２は、プラットフォームコントローラ／ＢＭＣ１８０によって実行されるファームウェアとして実現されるとしてよい。プラットフォーム管理サービス１８２は、ＢＩＯＳ１１４、他のシステムファームウェアおよびサーバオペレーティングシステム１１３を管理する。プラットフォームコントローラ／ＢＭＣ１８０は、独自の専用メモリリソース、プラットフォームコントローラ（ＰＣ）ＲＡＭ１８４およびＰＣフラッシュ１８６を持つ。ＰＣフラッシュ１８６は、プラットフォームコントローラ／ＢＭＣ１８０を初期化するためのＢＭＣファームウェア１８８を有する。プラットフォームコントローラ／ＢＭＣ１８０もまた、独自の集積化されたビデオコントローラ（不図示）を持つとしてよい。プラットフォーム１００の他の構成要素と協働したプラットフォーム管理サービス１８２の動作については、図２および図３を参照しつつ後述する。
【００１８】
図１を再度参照すると、チップセット１２０は、プラットフォーム１００の構成および処理を管理するべく、プロセッサ１１０とは無関係に動作する埋め込みマイクロプロセッサとして実現される管理エンジン（ＭＥ）１３０を有する。プラットフォームコントローラ／ＢＭＣ１８０によって提供されるセキュア且つ隔離された環境に加えて、管理エンジン（ＭＥ）１３０もまた、サーバオペレーティングシステム１１３がアクセスできないセキュア且つ隔離された環境を提供するとしてよい。一実施形態によると、管理エンジン（ＭＥ）１３０は、ユーザを認証して、周辺機器へのアクセスを制御して、プラットフォーム１００のストレージデバイスに格納されているデータの保護のための暗号鍵を管理し、ネットワークコントローラ１６０を介して企業用サービス１７０に対するインターフェースを提供する。
【００１９】
物理プラットフォームコントローラ／ＢＭＣ１８０を省略した本発明に一実施形態によると、管理エンジン（ＭＥ）１３０が、プラットフォームコントローラ／ＢＭＣ１８０が提供されるものとして本明細書で説明している機能を提供するとしてよい。このような実施形態によると、管理エンジン（ＭＥ）１３０は、自身のセキュアなＲＡＭ（図１には不図示）等、サーバプラットフォーム管理サービスを提供するべく自身の内部リソースを利用する。これらの内部リソースは、例えば、ＵＳＢ仮想ドライブをエミュレートするために利用するとしてよい。これについては、図２および図３を参照しつつさらに後述する。
【００２０】
図１を再度参照すると、ＭＥ１３０と企業用サービス１７０との間の通信は、アウトオブバンド通信チャネル１７１を介して行われる。一実施形態によると、アウトオブバンド通信チャネル１７１は、サーバシステム上の管理エンジン（ＭＥ）１３０と、サーバコンピュータシステムを管理する企業用サービス１７０との間のセキュア通信チャネルである。
【００２１】
図１に示す実施形態によると、管理エンジン（ＭＥ）１３０が、管理エンジンコントローラインターフェース（ＭＥＣＩ）１３１を介してＩ／Ｏコントローラ１４０に結合されている。一実施形態によると、Ｉ／Ｏコントローラ１４０は、ストレージコマンドの復号および他の加速処理を実行する汎用コントローラである。図示している実施形態では、管理エンジン（ＭＥ）１３０は、Ｉ／Ｏコントローラ１４０の動作を制御する。Ｉ／Ｏコントローラ１４０は、ＵＳＢコントローラ１５０の動作を制御する。Ｉ／Ｏコントローラ１４０は、相互接続１８１を介してプラットフォームコントローラ／ＢＭＣ１８０に接続されているものとして図示されている。ＵＳＢ接続１５２は、物理ＵＳＢ配線をＵＳＢコントローラ１５０からプラットフォームコントローラ／ＢＭＣ１８０へとルーティングし、ＵＳＢ接続１５４は、物理ＵＳＢ配線をＵＳＢコントローラ１５０から管理エンジン（ＭＥ）１３０へとルーティングする。ＵＳＢ接続１５２および１５４は、ＵＳＢ仮想ドライブをエミュレートするために用いられる。これについては、図２および図３を参照しつつさらに詳細に後述する。
【００２２】
プラットフォーム１００はさらに、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）１１２、チップセット１２０内のスタティックランダムアクセスメモリ（ＳＲＡＭ）１２２、および、フラッシュメモリ１９０等のメモリデバイスを備える。また、先述したように、プラットフォームコントローラ／ＢＭＣ１８０は、自身のメモリデバイスであるＰＣ  ＲＡＭ１８４およびＰＣフラッシュ１８６を持つ。これらのメモリデバイスには、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリーメモリ（ＲＯＭ）が含まれるとしてよい。本開示において、「ＲＯＭ」という用語は概して、不揮発性メモリデバイス、例えば、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュＲＯＭ、フラッシュメモリ等を意味するために用いられる用語であってよい。他のストレージデバイス（不図示）は、インテグレーテッドドライブエレクトロニクス（ＩＤＥ）ハードドライブ等の大容量ストレージデバイス、および／または、フロッピー（登録商標）ディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、バイオロジカルストレージ等の他のデバイスまたは媒体を含むとしてよい。
【００２３】
フラッシュメモリ１９０は、フラッシュインターフェース１９１を介してチップセット１２０からアクセス可能である。メモリデバイスＤＲＡＭ１１２、ＳＲＡＭ１２２およびフラッシュメモリ１９０に格納されているデータは、暗号化されるとしてよい。同様に、ＰＣ  ＲＡＭ１８４およびＰＣフラッシュ１８６に格納されているデータは、暗号化されているとしてよい。
【００２４】
フラッシュメモリ１９０は、プラットフォーム１００を初期化するために利用されるファームウェアを含む。この初期化ファームウェアは、システムコンポーネントハードウェア（ビデオディスプレイカードおよびハードディスク等）および管理エンジン（ＭＥ）１３０を含む幾つかの他のハードウェアデバイスを特定して初期化するベーシックインプット／アウトプットシステム（ＢＩＯＳ）ファームウェア１９２を含む。ＢＩＯＳファームウェア１９２は、公知の低機能状態で動作できるようにプラットフォーム１００のシステムコンポーネントハードウェアを用意するので、さまざまな媒体に格納されている他のソフトウェアプログラム、例えば、オペレーティングシステムを、ロードすることができ、実行でき、プラットフォーム１００の制御が与えられる。ＢＩＯＳファームウェア１９２は、ブートプロセス時に管理エンジン（ＭＥ）１３０の初期設定を可能とするＢＩＯＳ／ＭＥ通信モジュール（不図示）を含むとしてよい。一実施形態によると、管理エンジン（ＭＥ）１３０は、ＢＩＯＳ／ＭＥ通信モジュールに対して登録され、オペレーティングシステムがプラットフォーム１００についてロードされる直前に、通知を受信する。この通知によって、管理エンジン（ＭＥ）１３０は、ロードされているオペレーティングシステムを準備するべく所定の命令を実行することができるようになる。
【００２５】
フラッシュメモリ１９０はさらに、ネットワークコントローラ１６０を設定するネットワークコントローラファームウェア１９５と、チップセット１２０を設定するチップセットファームウェア１９６とを有する。フラッシュメモリ１９０はさらに、データ領域１９８を含む。一実施形態によると、データ領域１９８は、暗号化されており、管理エンジン（ＭＥ）１３０によってのみ読み出されるとしてよい。ＭＥ１３０がサービスを提供するために利用する情報は、フラッシュメモリ１９０のデータ領域１９８に格納されるとしてよい。
【００２６】
プロセッサ１１０はさらに、他の構成要素、例えば、ビデオコントローラ、小型計算機システムインターフェース（ＳＣＳＩ）コントローラ、ネットワークコントローラ、ユニバーサルシリアルバス（ＵＳＢ）コントローラ、キーボードおよびマウス等の入力デバイスに通信可能に結合されているとしてよい。プラットフォーム１００はさらに、さまざまなシステム構成要素を通信可能に結合するべく、１以上のブリッジまたはハブ、例えば、メモリコントローラハブ、別の入出力（Ｉ／Ｏ）コントローラハブ、ＰＣＩルートブリッジ等を備えるとしてよい。本明細書で用いる場合、「バス」という用語は、ポイント・ツー・ポイント経路と同様に、共有通信経路を意味するために利用される用語であるとしてよい。
【００２７】
一部の構成要素、例えば、ネットワークコントローラ１６０は、例えば、バスと通信するためのインターフェース（例えば、ＰＣＩコネクタ）を持つアダプタカードとして実現されるとしてよい。一実施形態によると、１以上のデバイスは、プログラム可能型またはプログラム不可能型のロジックデバイスまたはロジックアレイ、特定用途向け集積回路（ＡＳＩＣ）、埋め込みコンピュータ、スマートカード等の構成要素を用いて、埋め込みコントローラとして実現するとしてよい。
【００２８】
「処理システム」および「データ処理システム」という用語は、本明細書で用いる場合、一の機械、または、共に動作する複数の機械またはデバイスが通信可能に結合されている一のシステムを広く含めるものとする。処理システムの例を挙げると、これらに限定されるものではないが、分散型コンピューティングシステム、スーパーコンピュータ、高性能コンピューティングシステム、コンピューティングクラスタ、メインフレームコンピュータ、ミニコンピュータ、クライアント−サーバシステム、パーソナルコンピュータ、ワークステーション、サーバ、ポータブルコンピュータ、ラップトップコンピュータ、タブレット、電話、携帯情報端末（ＰＤＡ）、手持ちデバイス、オーディオデバイスおよび／またはビデオデバイス等の娯楽デバイス、ならびに、情報を処理または送信するためのその他のデバイスがある。
【００２９】
プラットフォーム１００は、少なくとも部分的に、従来の入力デバイス、例えば、キーボード、マウス等からの入力によって、および／または、別の機械、バイオメトリクスフィードバック、または、その他の入力ソースあるいは入力信号から受信したコマンドによって、制御されるとしてよい。プラットフォーム１００は、１以上のリモートデータ処理システムへの１以上の接続、例えば、ネットワークインターフェースコントローラ（ＮＩＣ）１６０、モデムまたは他の通信ポートまたは結合を利用するとしてよい。
【００３０】
プラットフォーム１００は、物理ネットワークおよび／または論理ネットワーク、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イントラネット、インターネット等を用いて他の処理システム（不図示）に相互接続されるとしてよい。ネットワークを利用する通信は、さまざまな有線方式および／または無線方式の、短距離用または長距離用のキャリアおよびプロトコルを利用するとしてよい。例えば、無線周波数（ＲＦ）、衛星、マイクロ波、米国電気電子学会（ＩＥＥＥ）８０２．１１、Ｂｌｕｅｔｏｏｔｈ（登録商標）、光学、赤外線、ケーブル、レーザ等を利用するとしてよい。
【００３１】
図２を参照すると、本発明の一実施形態に係る、セキュアサーバプラットフォーム管理サービスを提供するための、図１のシステムの構成要素の動作を説明するフローチャートである。このプロセスは、ＢＩＯＳ２１４がセキュアプラットフォーム管理サービスを必要とするイベントを処理することから開始される。例えば、プラットフォームコントローラ／ＢＭＣ２８０が管理するプログラムまたはデータへのアクセスを必要とするＩ／Ｏ処理を受信することから開始される。例えば、プラットフォームコントローラ／ＢＭＣ２８０は、ＰＣ  ＲＡＭ２８４および／またＰＣフラッシュ２８６の未使用部分等のセキュアメモリにＢＩＯＳファームウェアを複製することによって、ＢＩＯＳファームウェアの新バージョンを利用できるようにするとしてよい。プラットフォームコントローラ／ＢＭＣ２８０はその後、ＢＩＯＳ２１４に新しいＢＩＯＳファームウェアを読み出させるＩ／Ｏ処理をトリガするとしてよい。
【００３２】
プラットフォームコントローラ／ＢＭＣ２８０のサービスを受信するため、そして、オペレーティングシステム２１３がプラットフォームコントローラ／ＢＭＣ２８０との通信へのアクセス権を持たないようにするため、ＢＩＯＳ２１４は、プロセッサ２１０を、システム管理モード（ＳＭＭ）に移行させる。ＢＩＯＳ２１４は、プラットフォームコントローラ／ＢＭＣ２８０に対して、プロセッサ２１０がＳＭＭに移行したことを証明する。ＢＩＯＳ２１４とプラットフォームコントローラ／ＢＭＣ２８０との間の通信は、ＢＩＯＳ２１４の信用情報の認証時にのみ発生する。これらの信用情報は、システム初期化時およびオペレーティングシステム２１３のロード前に行われる情報のやり取りによって構築されるとしてよい。これらの信用情報は、プラットフォームコントローラ／ＢＭＣ２８０からＢＩＯＳ２１４へと供給されるランダムに生成された識別子であるとしてよく、一回のブートセッションにのみ利用するとしてよい。他の形式のユーザネームおよびパスワードを利用して、ＢＩＯＳ２１４を認証し、プロセッサ２１０がＳＭＭに移行したことを示すとしてもよい。
【００３３】
セキュアプラットフォーム管理サービスが必要とされていることを特定することに応じて、動作２．１において、ＢＩＯＳ２１４は、システム管理モード（ＳＭＭ）への移行要求、および、認証のためのユーザネームおよびパスワードでＳＭＭハンドラ２１５を呼び出す。一実施形態によると、ＳＭＭ移行要求は、インテリジェント・プラットフォーム・マネジメント・インターフェース（ＩＰＭＩ）ＳＭＭインターフェースに応じて発行される。動作２．２において、ＳＭＭハンドラ２１５は、プラットフォームコントローラ／ＢＭＣ２８０を呼び出して、ユーザネームおよびパスワードを渡す。プラットフォームコントローラ／ＢＭＣ２８０は、ユーザネームおよびパスワードを受信すると、呼び出し側を認証する。この認証は、ＩＰＭＩ認証インターフェースに応じて実行するとしてよい。呼び出し側の認証が完了すると、動作２．３において、プラットフォームコントローラ／ＢＭＣ２８０は、ＰＣ  ＲＡＭ２８４およびＰＣフラッシュ２８６のリソースを用いて、ＵＳＢ仮想ドライブ２０２のエミュレーションを開始する。動作２．４において、プラットフォームコントローラ／ＢＭＣ２８０は、ステータス情報をＳＭＭハンドラ２１５に対して供給し、動作２．５において、ＳＭＭハンドラ２１５は、デバイスステータス情報をＢＩＯＳ２１４に渡す。デバイスステータス情報に応じて、ＢＩＯＳ２１４は、プラットフォームコントローラ／ＢＭＣ２８０につながっている物理ＵＳＢポートに対応付けられているサブシステムにおいてＵＳＢデバイスの発見処理を開始する。動作２．６において、ＢＩＯＳ２１４は、ＳＭＭハンドラ２１５を介したＵＳＢ仮想ドライブ２０２へのアクセスを要求する。ＢＩＯＳ２１４がＵＳＢ仮想ドライブ２０２との間で通信を設定すると、動作２．７において、ＢＩＯＳ２１４は、ＳＭＭハンドラ２１５を介して、ＵＳＢ３．０の速度（４ギガビット／秒または実質的には３．２ギガビット／秒の転送）で通常のＵＳＢコマンドを用いて、ＴＳＥＧ（または、ＲＡＭの他の保護されたセキュアな部分、例えば、図１のＤＲＡＭ１１２）へとデータを転送するための通信を行う。ＢＩＯＳ２１４がメモリへのデータ転送を完了すると、ＢＩＯＳ２１４は、確認応答をプラットフォームコントローラ／ＢＭＣ２８０に送る。プラットフォームコントローラ／ＢＭＳ２８０は、確認応答に応じて、オペレーティングシステム２１３およびＳＭＭハンドラ２１５を含むホストからデバイスが見えなくする。ＢＩＯＳ２１４はこの後、ＳＭＭからホストドメインへと戻る。プロセッサ２１０がＳＭＭである間に全てのデータ処理が実行されるので、サーバオペレーティングシステム１１３は、ＵＳＢ仮想デバイス２０２を認識せず、行われた通信も認識しない。
【００３４】
別の実施形態によると、Ｉ／Ｏ処理は、図１の企業用サービス１７０から命令を受信すると、プラットフォームコントローラ／ＢＭＣ１８０によって開始されるとしてよい。この場合、プラットフォームコントローラ／ＢＭＣ２８０は、システムをＳＭＭに移行させ、エミュレートされたＵＳＢドライブにデータを書き込み、供給されたデータを読むようにＢＩＯＳ２１４に通知する。
【００３５】
図３を参照すると、本発明の一実施形態に係る、セキュアプラットフォーム管理サービスを供給するための、図１のシステムの構成要素の動作を説明するためのフローチャートが図示されている。図３に示す処理は、図２のシステム構成要素によって実行されるものとして説明されている。当該プロセスは、ＢＩＯＳ２１４がセキュアプラットフォーム管理サービスを要求するイベントを処理することから開始される。例えば、プラットフォームコントローラ／ＢＭＣ２８０が管理するプログラムまたはデータへのアクセスを必要とするＩ／Ｏ処理を受信することから開始される。「ＢＩＯＳがセキュアデータへのアクセスを要求」ステップ３０２では、ＢＩＯＳ２１４は、セキュアプラットフォーム管理サービスへのアクセスが必要であるという判断を下す。「ＢＩＯＳはＳＭＭに移行」ステップ３０３に進み、ＢＩＯＳ２１４がシステム管理割り込み（ＳＭＩ）を発行して、プロセッサ２１０をシステム管理モード（ＳＭＭ）に移行させる。
【００３６】
「ＢＩＯＳがＳＭＭハンドラを介してＢＭＣに要求を送る」ステップ３０４に進み、ＢＩＯＳ２１４はセキュアデータにアクセスするための要求を送信する。「ＢＩＯＳはＳＭＭハンドラを介してＢＭＣに認証を送る」ステップ３０６に進み、ＢＩＯＳ２１４が、ユーザネームおよびパスワード等の認証情報をＳＭＭハンドラ２１５に送る。ＳＭＭハンドラ２１５は、認証情報をプラットフォームコントローラ／ＢＭＣ２８０に渡す。一実施形態によると、認証要求は、ＩＰＭＩ認証インターフェースに応じて提供される。この後、「ＢＭＣが認証を確認」ステップ３０８に進み、プラットフォームコントローラ／ＢＭＣ２８０が受信者を認証する。この認証処理を行う際、プラットフォームコントローラ／ＢＭＣ２８０は、プラットフォーム１００がシステム管理モード（ＳＭＭ）で動作していること、および、プラットフォームコントローラ／ＢＭＣ２８０に接続されている汎用Ｉ／Ｏコントローラ（Ｉ／Ｏコントローラ２４０等）で要求が発行されていることを確認する。
【００３７】
「ＢＭＣは認証を確認」ステップ３０８から、「ＢＭＣはＵＳＢドライブのエミュレーションを開始」ステップ３１０へと進み、プラットフォームコントローラ／ＢＭＣ２８０は、ＵＳＢ仮想ドライブのエミュレーションを開始する。ＵＳＢドライブをエミュレートする際、プラットフォームコントローラ／ＢＭＣ２８０は、自身のリソースであるＰＣ  ＲＡＭ２８４およびＰＣフラッシュ２８６内の空き空間を利用して、ＵＳＢ仮想ドライブ用のメモリを提供する。
【００３８】
この後、「ＢＭＣはＢＩＯＳに対してＩ／Ｏイベントをアサート」ステップ３１２に進み、プラットフォームコントローラ／ＢＭＣ２８０は、ＳＭＭハンドラ２１５を介して、ＢＩＯＳ２１４に対してＩ／Ｏイベントをアサートする。この後、「ＢＩＯＳはセキュアＵＳＢドライブをエニュメレート」ステップ３１４に進む。ＢＩＯＳ２１４はさらに、見えるデバイスをエニュメレートして、この中に、この時点において、ＵＳＢ仮想ドライブ２０２が含まれる。
【００３９】
この後、「ＢＩＯＳはデータをセキュアメモリとの間で転送」ステップ３１６に進み、ＢＩＯＳ２１４はこの後、エミュレートされたＵＳＢ仮想ドライブ２０２を利用してＩ／Ｏ処理を実行する。ＵＳＢ仮想ドライブからのＩ／Ｏ処理が完了すると、「ＢＩＯＳがＢＭＣを認識」ステップ３１８に進み、ＢＩＯＳ２１４がプラットフォームコントローラ／ＢＭＣ２８０に対するＩ／Ｏイベントを認識して、ＢＩＯＳ２１４がＩ／Ｏイベントを完了したことを示す。プラットフォームコントローラ／ＢＭＣ２８０が、ＢＩＯＳ２１４から、認識した旨の確認応答を受信すると、プラットフォームコントローラ／ＢＭＣ２８０は、「ＢＭＣはＵＳＢリダイレクトドライブのエミュレーションを中止」ステップ３２０において、ＵＳＢリダイレクトドライブのエミュレーションを中止する。この後、「ＢＩＯＳはデータを処理（消費）して、ＳＭＭから移行」ステップ３２２に進み、ＢＩＯＳ２１４は、Ｉ／Ｏ処理によるデータを処理および／または消費する。例えば、Ｉ／Ｏ処理がＢＩＯＳファームウェアへの更新を配信すると、ＢＩＯＳ２１４は図１のフラッシュメモリ１９０においてＢＩＯＳファームウェア１９２を上書きするとしてよい。これに代えて、ＢＩＯＳ２１４は、他のメモリにデータを書き込み、後に別のシステム管理割り込み（ＳＭＩ）の際にデータを処理するとしてもよい。データの消費が完了すると、プロセッサ２１０はＳＭＭから移行する。
【００４０】
ＵＳＢ３．０の高速帯域幅を持ってすれば、オペレーティングシステムのシステム管理割り込み（ＳＭＩ）のタイムアウト制限を守りつつも、大きなペイロードを配信することができる。プラットフォームコントローラ／ＢＭＣ２８０は、サイズ制限またはＢＩＯＳ更新スケジュールに関係なく、オペレーティングシステムの更新、ＢＩＯＳファームウェアの更新、診断ソフトウェアおよび他のシステムファームウェアの更新を実行することができる。アウトオブバンド方式でＢＩＯＳ更新および／またはＢＩＯＳ修復を実行することができる。
【００４１】
データの格納にプラットフォームコントローラ／ＢＭＣ２８０のＰＣ  ＲＡＭ２８４等のリソースを利用する別の利点として、サーバコンピュータシステムでは稀なことに、電力が中断されるまで当該データがＰＣ  ＲＡＭ２８４に保持されることが挙げられる。
【００４２】
本明細書で開示しているメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの実施方法を組み合わせて実現するとしてもよい。本発明の実施形態は、プログラム可能なシステムで実行されるコンピュータプログラムとして実現されるとしてよい。当該システムは、少なくとも１つのプロセッサと、データ格納システム（揮発性メモリおよび不揮発性メモリおよび／または格納素子を含む）、少なくとも１つの入力デバイス、および、少なくとも１つの出力デバイスを備える。
【００４３】
プログラムコードを入力データに適用して、本明細書に記載されている機能を実現して出力情報を生成するとしてよい。本発明の実施形態はさらに、本発明に係る処理を実行するための命令を含む機械アクセス可能媒体、または、本明細書で説明している構造、回路、装置、プロセッサおよび／またはシステムフィーチャを定義しているＨＤＬ等の設計データを含む機械アクセス可能媒体を含む。このような実施形態は、プログラム製品とも呼ばれるとしてよい。
【００４４】
このような機械アクセス可能格納媒体は、これらに限定されないが、機械またはデバイスによって製造または形成される粒子の有形の配列、例えば、ハードディスク等の格納媒体、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスクリライタブル（ＣＤ−ＲＷ）、および、光磁気ディスクを含む任意のその他の種類のディスク、リードオンリーメモリ（ＲＯＭ）等の半導体デバイス、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、消去可能プログラム可能リードオンリーメモリ（ＥＰＲＯＭ）、フラッシュプログラム可能メモリ（ＦＬＡＳＨ）、電気的消去可能プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、磁気カードまたは光カード、または、電子命令の格納に適した任意のその他の種類の媒体を含むとしてよい。
【００４５】
出力情報は、公知の方法で、１以上の出力デバイスに適用されるとしてよい。本願において、処理システムは、例えば、デジタルシグナルプロセッサ（ＤＳＰ）、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）またはマイクロプロセッサ等のプロセッサを有する任意のシステムを含む。
【００４６】
プログラムは、処理システムと通信できるように、高級プロシージャプログラミング言語またはオブジェクト指向型プログラミング言語で実装されるとしてよい。プログラムはさらに、所望される場合には、アセンブリ言語または機械言語で実装するとしてもよい。実際、本明細書で説明されるメカニズムの範囲は、任意の特定のプログラミング言語に限定されるものではない。いずれの場合であっても、言語はコンパイル型言語またはインタプリタ型言語であってよい。
【００４７】
本明細書で示すのは、サーバプラットフォームを管理するための方法およびシステムの実施形態である。本発明の具体的な実施形態を図示および説明してきたが、当業者には、添付された請求項の範囲から逸脱することなく、数多くの点で変更、変形が可能であることが明らかである。したがって、当業者であれば、本発明の広義の側面から逸脱することなく、変更および変形し得ることを認めるであろう。請求項の範囲には、本発明の真の範囲および意図に含まれるこのような変更、変形をすべて含むものとする。
【図１】
2014194820.tif 000003
【図２】
2014194820.tif 000004
【図３】
2014194820.tif 000005
【外国語明細書】
2014194820000001.pdf