特許第5715256号(P5715256)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル・コーポレーションの特許一覧

特許5715256サービスプロセッサコンプレックスにおけるデータストア用のデマンドベースのUSBプロキシ
<>
  • 特許5715256-サービスプロセッサコンプレックスにおけるデータストア用のデマンドベースのUSBプロキシ 図000002
  • 特許5715256-サービスプロセッサコンプレックスにおけるデータストア用のデマンドベースのUSBプロキシ 図000003
  • 特許5715256-サービスプロセッサコンプレックスにおけるデータストア用のデマンドベースのUSBプロキシ 図000004
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5715256
(24)【登録日】2015年3月20日
(45)【発行日】2015年5月7日
(54)【発明の名称】サービスプロセッサコンプレックスにおけるデータストア用のデマンドベースのUSBプロキシ
(51)【国際特許分類】
   G06F 21/57 20130101AFI20150416BHJP
【FI】
   G06F21/57 320
【請求項の数】24
【全頁数】18
(21)【出願番号】特願2013-528406(P2013-528406)
(86)(22)【出願日】2011年9月30日
(65)【公表番号】特表2013-537335(P2013-537335A)
(43)【公表日】2013年9月30日
(86)【国際出願番号】US2011054419
(87)【国際公開番号】WO2012045038
(87)【国際公開日】20120405
【審査請求日】2013年3月11日
(31)【優先権主張番号】12/894,876
(32)【優先日】2010年9月30日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】サクシクマー、パルサミー
(72)【発明者】
【氏名】スワンソン、ロバート シー.
(72)【発明者】
【氏名】ロスマン、マイケル エー.
(72)【発明者】
【氏名】ブルス、マリク
(72)【発明者】
【氏名】ジマー、ヴェンセント ジェイ.
【審査官】 金木 陽一
(56)【参考文献】
【文献】 特開2001−075828(JP,A)
【文献】 特開2002−007214(JP,A)
【文献】 特開2008−287505(JP,A)
【文献】 国際公開第2010/007936(WO,A1)
【文献】 米国特許出願公開第2006/0224878(US,A1)
【文献】 米国特許出願公開第2007/0016827(US,A1)
【文献】 米国特許出願公開第2007/0061634(US,A1)
【文献】 米国特許出願公開第2008/0005446(US,A1)
【文献】 米国特許出願公開第2010/0169968(US,A1)
【文献】 米国特許出願公開第2012/0017285(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
コンピュータで実施される方法であって、
システム管理割り込み(SMI)を生成可能なI/Oコントローラに結合されているプラットフォームコントローラおよびプロセッサを備えるシステムにおいて、
データへのセキュアアクセスを要求するイベントに応じて、前記プロセッサが、SMIを生成して、前記システムをシステム管理モードに移行させる段階と、
前記プラットフォームコントローラが、エミュレートされたUSBドライブのメモリとして前記プラットフォームコントローラのメモリリソースを用いて、前記エミュレートされたUSBドライブを作成する段階と、
前記プロセッサが、前記システムのオペレーティングシステムがアクセス不可能な接続を介して、前記プロセッサに接続されたメモリに前記データを前記エミュレートされたUSBドライブから複製する段階と、
前記システム管理モードから移行する前に、前記プロセッサが、前記データを処理する段階と
を実行し、
前記メモリリソースは前記データを格納している方法。
【請求項2】
前記システム管理モードの間に、前記データの受信者としての前記プロセッサの認証を行う段階をさらに実行する請求項1に記載の方法。
【請求項3】
前記プラットフォームコントローラは、ベースボード管理コントローラである請求項1または2に記載の方法。
【請求項4】
前記プラットフォームコントローラは、前記システムのチップセットの管理エンジンによって供給される請求項1または2に記載の方法。
【請求項5】
前記プラットフォームコントローラが、前記データを企業用サーバから前記エミュレートされたUSBドライブの前記メモリリソースにダウンロードする段階をさらに実行する請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記システム管理モードから移行する前に、前記エミュレートされたUSBドライブを前記オペレーティングシステムから見えなくする段階をさらに実行する請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記プラットフォームコントローラの前記メモリリソースを用いて前記エミュレートされたUSBドライブを作成する段階は、前記エミュレートされたUSBドライブにアクセスするよう求める要求に応じて実行される請求項1から6のいずれか一項に記載の方法。
【請求項8】
プロセッサと、
プラットフォームコントローラと、
システム管理割り込み(SMI)を生成可能なI/Oコントローラと、
前記プロセッサに結合されており、命令を有するメモリと
を備えるシステムであって、
前記命令は、
データへのセキュアアクセスを要求するイベントに応じて、前記プロセッサが、SMIを生成して、前記システムをシステム管理モードに移行させる段階と、
前記プラットフォームコントローラが、エミュレートされたUSBドライブのメモリとして前記プラットフォームコントローラのメモリリソースを用いて、エミュレートされたUSBドライブを作成する段階と、
前記プロセッサが、前記システムのオペレーティングシステムがアクセス不可能な接続を介して、前記プロセッサに接続されたメモリに前記データを前記エミュレートされたUSBドライブから複製する段階と、
前記システム管理モードから移行する前に、前記プロセッサが、前記データを処理する段階と
を実行するための命令であり、
前記メモリリソースは前記データを格納しているシステム。
【請求項9】
前記命令はさらに、前記システム管理モードの間に、前記データの受信者としての前記プロセッサの認証を行う段階を実行するための命令を含む請求項8に記載のシステム。
【請求項10】
前記プラットフォームコントローラは、ベースボード管理コントローラである請求項8または9に記載のシステム。
【請求項11】
前記プラットフォームコントローラは、前記システムのチップセットの管理エンジンによって供給される請求項8または9に記載のシステム。
【請求項12】
前記命令はさらに、前記プラットフォームコントローラが、企業用サーバからの前記データを前記エミュレートされたUSBドライブの前記メモリリソースにダウンロードする段階を実行するための命令を含む請求項8から11のいずれか一項に記載のシステム。
【請求項13】
前記命令はさらに、前記システム管理モードから移行する前に、前記エミュレートされたUSBドライブを前記オペレーティングシステムから見えなくする段階を実行するための命令を含む請求項8から12のいずれか一項に記載のシステム。
【請求項14】
前記プラットフォームコントローラの前記メモリリソースを用いて前記エミュレートされたUSBドライブを作成する段階は、前記エミュレートされたUSBドライブにアクセスするよう求める要求に応じて実行される請求項8から13のいずれか一項に記載のシステム。
【請求項15】
システム管理割り込み(SMI)を生成可能なI/Oコントローラに結合されているプラットフォームコントローラおよびプロセッサを備えるコンピュータに、
データへのセキュアアクセスを要求するイベントに応じて、前記プロセッサが、SMIを生成して、前記コンピュータをシステム管理モードに移行させる手順と、
前記プラットフォームコントローラが、エミュレートされたUSBドライブのメモリとして前記プラットフォームコントローラのメモリリソースを用いて、前記エミュレートされたUSBドライブを作成する手順と、
前記プロセッサが、前記コンピュータのオペレーティングシステムがアクセス不可能な接続を介して、前記プロセッサに接続されたメモリに前記データを前記エミュレートされたUSBドライブから複製する手順と、
前記システム管理モードから移行する前に、前記プロセッサが、前記データを処理する手順と
を実行させるためのプログラムであって、
前記メモリリソースは前記データを格納しているプログラム。
【請求項16】
前記コンピュータにさらに、前記システム管理モードの間に、前記データの受信者としての前記プロセッサの認証を行う手順を実行させるための請求項15に記載のプログラム。
【請求項17】
前記プラットフォームコントローラは、ベースボード管理コントローラである請求項15または16に記載のプログラム。
【請求項18】
前記プラットフォームコントローラは、前記コンピュータのチップセットの管理エンジンによって供給される請求項15または16に記載のプログラム。
【請求項19】
前記コンピュータにさらに、前記プラットフォームコントローラが、前記データを企業用サーバから前記エミュレートされたUSBドライブの前記メモリリソースにダウンロードする手順を実行させるための請求項15から18のいずれか一項に記載のプログラム。
【請求項20】
前記コンピュータにさらに、前記システム管理モードから移行する前に、前記エミュレートされたUSBドライブを前記オペレーティングシステムから見えなくする手順を実行させるための請求項15から19のいずれか一項に記載のプログラム。
【請求項21】
前記プラットフォームコントローラの前記メモリリソースを用いて前記エミュレートされたUSBドライブを作成する手順は、前記エミュレートされたUSBドライブにアクセスするよう求める要求に応じて実行される請求項15から20のいずれか一項に記載のプログラム。
【請求項22】
前記企業用サーバから命令を受信すると、前記プラットフォームコントローラが前記ダウンロードする段階を開始する、請求項5に記載の方法。
【請求項23】
前記企業用サーバから命令を受信すると、前記プラットフォームコントローラが前記ダウンロードする段階を開始する、請求項12に記載のシステム。
【請求項24】
前記企業用サーバから命令を受信すると、前記プラットフォームコントローラが前記ダウンロードする手順を開始する、請求項19に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、コンピューティング環境の管理に関する。
【0002】
<著作権情報>
本文献の記載内容は、著作権保護の対象となるものである。著作権保有者は、米国特許商標庁の特許ファイルまたは特許記録の内容については何人による特許開示内容の複製に反対するものではないが、それ以外については著作権に関する全ての権利を保有する。
【背景技術】
【0003】
あらゆる場所でインターネットが利用可能となると共に、サーバコンピュータシステムの利用が広まっている。サーバコンピュータシステムは大抵の場合、大規模な組織における特定の利用者に対して、または、インターネットを介した不特定のユーザに対して、ネットワーク全体に不可欠なサービスを提供する。多くのサーバは、ウェブサーバ、印刷サーバおよびデータベースサーバ等、専用機能を持つ。ビジネスによっては、事業経営のために重要な何百もの、時には何千ものサーバコンピュータシステムを「サーバファーム」または「サービスプロセッサコンプレックス」内で維持しているものがある。
【0004】
企業用サーバは、短期間の障害であってもシステムの購入およびインストールよりコストが高くなるので、故障に対する耐性が非常に高いことが理想的である。例えば、国の証券取引所では、たった数分間のダウンタイムであっても、故障したシステムを全て、より信頼性の高いシステムと交換する費用を惜しまない十分な理由となる。信頼性を高めるべく、サーバの大半は、エラーを検出して訂正する機能を持つメモリ、予備ディスク、予備電源等を利用する。このようなコンポーネントもまた、頻繁にホットスワップが可能であり、管理者は、サーバの電源を落とすことなく実行中のサーバでこういったコンポーネントを交換することができる。サーバは通常、資格を持ったエンジニアによって管理されるので、サーバのオペレーティングシステムは、使い易さよりも安定性および性能を優先して構成されており、Linux(登録商標)オペレーティングシステムは、デスクトップコンピュータよりもはるかに大きい割合を占めている。サーバオペレーティングシステム、ベーシックインプット/アウトプットシステム(BIOS)ファームウェアおよびその他のシステムファームウェアに対する更新は、セキュア且つできる限り短時間に実行する必要がある。
【図面の簡単な説明】
【0005】
図1】本発明の一実施形態に係る、セキュアサーバプラットフォーム管理を可能とするプラットフォームを示すブロック図である。
図2】本発明の一実施形態に係る、セキュアサーバプラットフォーム管理サービスを提供する際の、図1のシステムの構成要素の動作を説明するためのフローチャートである。
図3】本発明の一実施形態に係る、セキュアサーバプラットフォーム管理サービスを提供する際の、図1のシステムの構成要素の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【0006】
サーバオペレーティングシステムソフトウェアおよび/またはBIOSおよび他のシステムファームウェアを更新する現在のメカニズムは、オペレーティングシステムがロードした後に、フラッシュメモリまたはハードドライブパーティションからロードしたBIOSファームウェアに、ペイロードを埋め込むことに限定されている。このような更新は通常、システムがシステム管理モード(SMM)である間に行われる。SMMは、最初にIntel386SLでリリースされ、後続のIntelアーキテクチャにおいて、最新型のマイクロプロセッサで利用可能となるコンピュータシステムの動作モードである。SMMにおいては、全ての通常の実行内容(オペレーティングシステムを含む)は一時停止され、特別な別のソフトウェア(通常は、ファームウェア、または、ハードウェアに支援されたデバッガ)を高特権モードで実行する。SMMによって、独立したメモリおよび実行環境が提供され、SMMコードは、オペレーティングシステムには見えないが、ホスト物理メモリに対して完全なアクセスを持ち、周辺機器ハードウェアを完全に制御している。
【0007】
SMMは通常、システムを設定するため、メモリまたはチップセットのエラー等のシステムイベントを処理するため、CPU温度が高温に到達するとシャットダウン等のシステム安全機能を実行するため、ファンのスイッチを入れる等の電力管理処理を実行するため、そして、ハードウェアをエミュレートするために用いられる。SMMは従来、システム管理割り込みに対するサービスを提供するために開始されるモードであり、プログラム実行を再開する(管理ソフトウェアおよびアプリケーションソフトウェアを含むソフトウェアスタックに戻る)。ベーシックインプット/アウトプットシステム(BIOS)は通常、SMMの間は、システムの動作を制限しない。
【0008】
BIOSファームウェアは通常、フラッシュメモリデバイスにロードされる。フラッシュメモリデバイスは、スペースが限られており、サイズはシステム毎に異なる。埋め込むことはさらに、システムソフトウェアまたはファームウェアに変化する。これは、BIOSファームウェアまたはハードドライブパーティションのペイロードシステムソフトウェアは、ペイロードのサイズを制限する必要があるためである。さらに、ペイロードは一度ロードされればサーバオペレーティングシステムによって読み出し可能なので、ウィルスに感染したサーバオペレーティングシステムにペイロードがさらされてしまうセキュリティリスクがある。可能な解決方法の1つとして、ペイロードの署名済みバージョンを供給するという方法があるが、署名の認証およびペイロードの読み出しは、SMM中に、一回のシステム管理割り込みを処理するための時間制約を守りつつ実行しなければならない。このような時間制約によってさらに、サーバシステム用のシステムソフトウェアおよび/またはファームウェアの更新を含むペイロードを分配する機能が制限されてしまう。
【0009】
このような問題点を克服するべく本願で提案する解決方法は、サーバシステム用のシステムソフトウェアおよび/またはファームウェアの更新を含むペイロードをオンデマンド方式のセキュアなI/O処理で分配する。このI/O処理は、エミュレートされたUSBドライブからサーバオペレーティングシステムがアクセス不可能なセキュア通信チャネルを介して実行される。USBドライブは、プラットフォームコントローラRAMおよび/またはフラッシュメモリを用いてエミュレートされる。
【0010】
BIOSファームウェアにペイロードを埋め込んでフラッシュメモリのサイズ制限に縛られる方法、または、サイズが制限されたハードドライブパーティションにペイロードを入れる方法とは異なり、ペイロードのサイズは任意のサイズとすることができる。ペイロードは、オペレーティングシステムソフトウェア、BIOS画像、診断ソフトウェア、および/または、ユニファイド・エクステンシブル・ファームウェア・インターフェース(UEFI)モジュールを含むとしてよい。ペイロードの受信者の認証が完了した後でのみI/O処理用にセキュア通信チャネルを構築することができ、感染している可能性があるサーバオペレーティングシステムによるアクセスに対してペイロードを保護することができる。さらに、ペイロードは、BIOS更新スケジュールに左右されることなくオンデマンド方式で配信することができ、ペイロードはUSBドライブに対する書込処理の速度で配信することができる。
【0011】
本発明の実施形態は、セキュアにサーバプラットフォームを管理する方法、装置、システムおよびコンピュータプログラム製品であって、BIOS、他のシステムファームウェア、および、サーバコンピュータシステムのオペレーティングシステムに対する更新を提供する方法、装置、システムおよびコンピュータプログラム製品を提供するとしてよい。一実施形態に係る方法は、システム管理割り込み(SMI)を生成可能なI/Oコントローラに結合されているプラットフォームコントローラを備えるシステムにおいて、データへのセキュアアクセスを必要とするイベントに応じて、システムをシステム管理モードに移行させるべくSMIを生成する段階と、プラットフォームコントローラのリソースを利用してエミュレートされたUSBドライブを作成する段階と、エミュレートされたUSBドライブからシステムのオペレーティングシステムがアクセス不可能な接続を介してデータを複製する段階と、システム管理モードから移行する前にデータを処理する段階とを備える。尚、リソースは、データを格納する。当該方法はさらに、システム管理モード中に、データの受信者の認証を行う段階をさらに備えるとしてよい。当該方法はさらに、プラットフォームコントローラがI/Oコントローラに対してI/Oイベントをアサートする段階をさらに備えるとしてよい。当該方法はさらに、I/OコントローラがI/Oイベントを介してデータを受信する段階を備えるとしてよい。一実施形態によると、プラットフォームコントローラは、ベースボード管理コントローラである。別の実施形態によると、プラットフォームコントローラは、システムのチップセットの管理エンジンによって用意される。一実施形態によると、当該方法はさらに、企業用サーバからエミュレートされたUSBドライブへとデータをダウンロードする段階を備える。当該方法はさらに、システムがシステム管理モードから移行する前に、エミュレートされたUSBドライブをオペレーティングシステムから見えないようにする段階を備えるとしてよい。当該方法を実行するための命令を備えるシステムおよびコンピュータプログラム製品も提供される。
【0012】
本明細書において本発明の「一実施形態」または「ある実施形態」という場合、当該実施形態に関連付けて説明する特定の特徴、構造または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。このため、「一実施形態において」「一実施形態によると」等の表現が明細書中で何度も見られるが、必ずしも全てが同じ実施形態を意味するわけではない。
【0013】
説明の便宜上、本発明を深く理解していただくべく、具体的な構成および詳細な内容を記載する。しかし、当業者には、本発明の実施形態は本明細書に記載する具体的な構成および詳細な内容を採用せずに実施し得ることが明らかである。さらに、公知の特徴については、本発明をあいまいにすることを避けるべく、省略するか簡単に説明するにとどめる場合がある。本明細書ではさまざまな例を挙げる。これらは、本発明の具体的な実施形態を説明するためのものに過ぎない。本発明の範囲は、本明細書に記載する例に限定されるものではない。
【0014】
本明細書で用いる場合、「アウトオブバンド(OOB)」という用語は、主流から独立した通信、例えば、サーバデバイスとクライアントデバイスの管理モジュールとの間の通信であって、クライアントデバイスのオペレーティングシステム(OS)とは無関係に実行される通信を説明する用語である。本明細書では、クライアントデバイスはサーバコンピュータシステムであってよい。一方、サーバデバイスは、別の企業用管理サーバシステムで実行される企業用管理モジュールであってよい。
【0015】
図1は、本発明の一実施形態に係る、BIOSおよび他のシステムファームウェア、さらに、サーバオペレーティングシステムに対してセキュアシステム管理を実行するプラットフォームのブロック図である。プラットフォーム100は、サーバコンピュータシステムに対応し、デスクトップ管理インターフェース(DMI)111を介してチップセット120に接続されているプロセッサ110を備える。プロセッサ110は、プラットフォーム100に処理電力を供給し、シングルコアプロセッサまたはマルチコアプロセッサであってよく、プラットフォーム100に複数のプロセッサが設けられているとしてもよい。プロセッサ110は、1以上のシステムバス、通信経路または通信媒体(不図示)を介して、プラットフォーム100の他の構成要素に接続されるとしてよい。プロセッサ110は、ベーシックインプット/アウトプットシステム(BIOS)114をロードして実行することによって初期化されるとしてよい。BIOS114はこの後、サーバオペレーティングシステム113をロードするとしてよい。動作について、プロセッサ110は、最終的にシステム管理モード(SMM)に移行するとしてよい。SMMハンドラ115を呼び出してSMMに移行する。SMMの間は、全ての通常の実行内容(オペレーティングシステム113を含む)を一時停止して、特別な別のソフトウェア(通常は、ファームウェア、または、ハードウェアに支援されているデバッガ)を高特権モードで実行する。SMMは独立したメモリおよび実行環境を提供し、SMMコードは、サーバオペレーティングシステム113に見えないがホスト物理メモリに対する完全なアクセスを持ち、周辺機器ハードウェアを完全に制御する。
【0016】
図1に戻って、プラットフォームコントローラ/BMC180は、企業用サービス170とプラットフォームハードウェアとの間のアウトオブバンドインターフェースを管理するためのロジックを提供する。例えば、プラットフォームコントローラ/BMC180は、インテリジェント・プラットフォーム・マネジメント・インターフェース(IPMI)アーキテクチャに応じたベースボード・マネジメント・コントローラ(BMC)によって提供されるとしてよい。IPMI等のアウトオブバンドインターフェースは、プロセッサ110で実行されているサーバオペレーティングシステム113とは無関係に動作し、動作可能なオペレーティングシステムが無い場合であっても、システム管理ソフトウェアを利用している管理者がプラットフォーム100を管理できるようにする。一実施形態によると、プロセッサ110は、サーバオペレーティングシステム113の指示により動作する一方、プラットフォームコントローラ/BMC180は、サーバオペレーティングシステム113によるアクセスが不可のセキュア且つ隔離された環境を提供する。プラットフォームコントローラ/BMC180は、ネットワークコントローラ160およびアウトオブバンド通信チャネル171を介して、企業用サービス170に通信可能に結合されている。アウトオブバンド通信チャネル171は、企業用サービス170が直接プラットフォーム100のハードウェアと通信できるようにする。
【0017】
企業用サービス170を用いて、プラットフォームコントローラ/BMC180は、プラットフォーム100等のプラットフォームの管理および構成に関する企業全体でのポリシーとの一貫性を維持し、例えば、本発明の一実施形態に係るサーバプラットフォーム管理サービスを提供する。プラットフォーム管理サービス182は、プラットフォームコントローラ/BMC180によって実行されるファームウェアとして実現されるとしてよい。プラットフォーム管理サービス182は、BIOS114、他のシステムファームウェアおよびサーバオペレーティングシステム113を管理する。プラットフォームコントローラ/BMC180は、独自の専用メモリリソース、プラットフォームコントローラ(PC)RAM184およびPCフラッシュ186を持つ。PCフラッシュ186は、プラットフォームコントローラ/BMC180を初期化するためのBMCファームウェア188を有する。プラットフォームコントローラ/BMC180もまた、独自の集積化されたビデオコントローラ(不図示)を持つとしてよい。プラットフォーム100の他の構成要素と協働したプラットフォーム管理サービス182の動作については、図2および図3を参照しつつ後述する。
【0018】
図1を再度参照すると、チップセット120は、プラットフォーム100の構成および処理を管理するべく、プロセッサ110とは無関係に動作する埋め込みマイクロプロセッサとして実現される管理エンジン(ME)130を有する。プラットフォームコントローラ/BMC180によって提供されるセキュア且つ隔離された環境に加えて、管理エンジン(ME)130もまた、サーバオペレーティングシステム113がアクセスできないセキュア且つ隔離された環境を提供するとしてよい。一実施形態によると、管理エンジン(ME)130は、ユーザを認証して、周辺機器へのアクセスを制御して、プラットフォーム100のストレージデバイスに格納されているデータの保護のための暗号鍵を管理し、ネットワークコントローラ160を介して企業用サービス170に対するインターフェースを提供する。
【0019】
物理プラットフォームコントローラ/BMC180を省略した本発明に一実施形態によると、管理エンジン(ME)130が、プラットフォームコントローラ/BMC180が提供されるものとして本明細書で説明している機能を提供するとしてよい。このような実施形態によると、管理エンジン(ME)130は、自身のセキュアなRAM(図1には不図示)等、サーバプラットフォーム管理サービスを提供するべく自身の内部リソースを利用する。これらの内部リソースは、例えば、USB仮想ドライブをエミュレートするために利用するとしてよい。これについては、図2および図3を参照しつつさらに後述する。
【0020】
図1を再度参照すると、ME130と企業用サービス170との間の通信は、アウトオブバンド通信チャネル171を介して行われる。一実施形態によると、アウトオブバンド通信チャネル171は、サーバシステム上の管理エンジン(ME)130と、サーバコンピュータシステムを管理する企業用サービス170との間のセキュア通信チャネルである。
【0021】
図1に示す実施形態によると、管理エンジン(ME)130が、管理エンジンコントローラインターフェース(MECI)131を介してI/Oコントローラ140に結合されている。一実施形態によると、I/Oコントローラ140は、ストレージコマンドの復号および他の加速処理を実行する汎用コントローラである。図示している実施形態では、管理エンジン(ME)130は、I/Oコントローラ140の動作を制御する。I/Oコントローラ140は、USBコントローラ150の動作を制御する。I/Oコントローラ140は、相互接続181を介してプラットフォームコントローラ/BMC180に接続されているものとして図示されている。USB接続152は、物理USB配線をUSBコントローラ150からプラットフォームコントローラ/BMC180へとルーティングし、USB接続154は、物理USB配線をUSBコントローラ150から管理エンジン(ME)130へとルーティングする。USB接続152および154は、USB仮想ドライブをエミュレートするために用いられる。これについては、図2および図3を参照しつつさらに詳細に後述する。
【0022】
プラットフォーム100はさらに、ダイナミックランダムアクセスメモリ(DRAM)112、チップセット120内のスタティックランダムアクセスメモリ(SRAM)122、および、フラッシュメモリ190等のメモリデバイスを備える。また、先述したように、プラットフォームコントローラ/BMC180は、自身のメモリデバイスであるPC RAM184およびPCフラッシュ186を持つ。これらのメモリデバイスには、ランダムアクセスメモリ(RAM)およびリードオンリーメモリ(ROM)が含まれるとしてよい。本開示において、「ROM」という用語は概して、不揮発性メモリデバイス、例えば、消去可能プログラム可能ROM(EPROM)、電気的消去可能プログラム可能ROM(EEPROM)、フラッシュROM、フラッシュメモリ等を意味するために用いられる用語であってよい。他のストレージデバイス(不図示)は、インテグレーテッドドライブエレクトロニクス(IDE)ハードドライブ等の大容量ストレージデバイス、および/または、フロッピー(登録商標)ディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、バイオロジカルストレージ等の他のデバイスまたは媒体を含むとしてよい。
【0023】
フラッシュメモリ190は、フラッシュインターフェース191を介してチップセット120からアクセス可能である。メモリデバイスDRAM112、SRAM122およびフラッシュメモリ190に格納されているデータは、暗号化されるとしてよい。同様に、PC RAM184およびPCフラッシュ186に格納されているデータは、暗号化されているとしてよい。
【0024】
フラッシュメモリ190は、プラットフォーム100を初期化するために利用されるファームウェアを含む。この初期化ファームウェアは、システムコンポーネントハードウェア(ビデオディスプレイカードおよびハードディスク等)および管理エンジン(ME)130を含む幾つかの他のハードウェアデバイスを特定して初期化するベーシックインプット/アウトプットシステム(BIOS)ファームウェア192を含む。BIOSファームウェア192は、公知の低機能状態で動作できるようにプラットフォーム100のシステムコンポーネントハードウェアを用意するので、さまざまな媒体に格納されている他のソフトウェアプログラム、例えば、オペレーティングシステムを、ロードすることができ、実行でき、プラットフォーム100の制御が与えられる。BIOSファームウェア192は、ブートプロセス時に管理エンジン(ME)130の初期設定を可能とするBIOS/ME通信モジュール(不図示)を含むとしてよい。一実施形態によると、管理エンジン(ME)130は、BIOS/ME通信モジュールに対して登録され、オペレーティングシステムがプラットフォーム100についてロードされる直前に、通知を受信する。この通知によって、管理エンジン(ME)130は、ロードされているオペレーティングシステムを準備するべく所定の命令を実行することができるようになる。
【0025】
フラッシュメモリ190はさらに、ネットワークコントローラ160を設定するネットワークコントローラファームウェア195と、チップセット120を設定するチップセットファームウェア196とを有する。フラッシュメモリ190はさらに、データ領域198を含む。一実施形態によると、データ領域198は、暗号化されており、管理エンジン(ME)130によってのみ読み出されるとしてよい。ME130がサービスを提供するために利用する情報は、フラッシュメモリ190のデータ領域198に格納されるとしてよい。
【0026】
プロセッサ110はさらに、他の構成要素、例えば、ビデオコントローラ、小型計算機システムインターフェース(SCSI)コントローラ、ネットワークコントローラ、ユニバーサルシリアルバス(USB)コントローラ、キーボードおよびマウス等の入力デバイスに通信可能に結合されているとしてよい。プラットフォーム100はさらに、さまざまなシステム構成要素を通信可能に結合するべく、1以上のブリッジまたはハブ、例えば、メモリコントローラハブ、別の入出力(I/O)コントローラハブ、PCIルートブリッジ等を備えるとしてよい。本明細書で用いる場合、「バス」という用語は、ポイント・ツー・ポイント経路と同様に、共有通信経路を意味するために利用される用語であるとしてよい。
【0027】
一部の構成要素、例えば、ネットワークコントローラ160は、例えば、バスと通信するためのインターフェース(例えば、PCIコネクタ)を持つアダプタカードとして実現されるとしてよい。一実施形態によると、1以上のデバイスは、プログラム可能型またはプログラム不可能型のロジックデバイスまたはロジックアレイ、特定用途向け集積回路(ASIC)、埋め込みコンピュータ、スマートカード等の構成要素を用いて、埋め込みコントローラとして実現するとしてよい。
【0028】
「処理システム」および「データ処理システム」という用語は、本明細書で用いる場合、一の機械、または、共に動作する複数の機械またはデバイスが通信可能に結合されている一のシステムを広く含めるものとする。処理システムの例を挙げると、これらに限定されるものではないが、分散型コンピューティングシステム、スーパーコンピュータ、高性能コンピューティングシステム、コンピューティングクラスタ、メインフレームコンピュータ、ミニコンピュータ、クライアント−サーバシステム、パーソナルコンピュータ、ワークステーション、サーバ、ポータブルコンピュータ、ラップトップコンピュータ、タブレット、電話、携帯情報端末(PDA)、手持ちデバイス、オーディオデバイスおよび/またはビデオデバイス等の娯楽デバイス、ならびに、情報を処理または送信するためのその他のデバイスがある。
【0029】
プラットフォーム100は、少なくとも部分的に、従来の入力デバイス、例えば、キーボード、マウス等からの入力によって、および/または、別の機械、バイオメトリクスフィードバック、または、その他の入力ソースあるいは入力信号から受信したコマンドによって、制御されるとしてよい。プラットフォーム100は、1以上のリモートデータ処理システムへの1以上の接続、例えば、ネットワークインターフェースコントローラ(NIC)160、モデムまたは他の通信ポートまたは結合を利用するとしてよい。
【0030】
プラットフォーム100は、物理ネットワークおよび/または論理ネットワーク、例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イントラネット、インターネット等を用いて他の処理システム(不図示)に相互接続されるとしてよい。ネットワークを利用する通信は、さまざまな有線方式および/または無線方式の、短距離用または長距離用のキャリアおよびプロトコルを利用するとしてよい。例えば、無線周波数(RF)、衛星、マイクロ波、米国電気電子学会(IEEE)802.11、Bluetooth(登録商標)、光学、赤外線、ケーブル、レーザ等を利用するとしてよい。
【0031】
図2を参照すると、本発明の一実施形態に係る、セキュアサーバプラットフォーム管理サービスを提供するための、図1のシステムの構成要素の動作を説明するフローチャートである。このプロセスは、BIOS214がセキュアプラットフォーム管理サービスを必要とするイベントを処理することから開始される。例えば、プラットフォームコントローラ/BMC280が管理するプログラムまたはデータへのアクセスを必要とするI/O処理を受信することから開始される。例えば、プラットフォームコントローラ/BMC280は、PC RAM284および/またPCフラッシュ286の未使用部分等のセキュアメモリにBIOSファームウェアを複製することによって、BIOSファームウェアの新バージョンを利用できるようにするとしてよい。プラットフォームコントローラ/BMC280はその後、BIOS214に新しいBIOSファームウェアを読み出させるI/O処理をトリガするとしてよい。
【0032】
プラットフォームコントローラ/BMC280のサービスを受信するため、そして、オペレーティングシステム213がプラットフォームコントローラ/BMC280との通信へのアクセス権を持たないようにするため、BIOS214は、プロセッサ210を、システム管理モード(SMM)に移行させる。BIOS214は、プラットフォームコントローラ/BMC280に対して、プロセッサ210がSMMに移行したことを証明する。BIOS214とプラットフォームコントローラ/BMC280との間の通信は、BIOS214の信用情報の認証時にのみ発生する。これらの信用情報は、システム初期化時およびオペレーティングシステム213のロード前に行われる情報のやり取りによって構築されるとしてよい。これらの信用情報は、プラットフォームコントローラ/BMC280からBIOS214へと供給されるランダムに生成された識別子であるとしてよく、一回のブートセッションにのみ利用するとしてよい。他の形式のユーザネームおよびパスワードを利用して、BIOS214を認証し、プロセッサ210がSMMに移行したことを示すとしてもよい。
【0033】
セキュアプラットフォーム管理サービスが必要とされていることを特定することに応じて、動作2.1において、BIOS214は、システム管理モード(SMM)への移行要求、および、認証のためのユーザネームおよびパスワードでSMMハンドラ215を呼び出す。一実施形態によると、SMM移行要求は、インテリジェント・プラットフォーム・マネジメント・インターフェース(IPMI)SMMインターフェースに応じて発行される。動作2.2において、SMMハンドラ215は、プラットフォームコントローラ/BMC280を呼び出して、ユーザネームおよびパスワードを渡す。プラットフォームコントローラ/BMC280は、ユーザネームおよびパスワードを受信すると、呼び出し側を認証する。この認証は、IPMI認証インターフェースに応じて実行するとしてよい。呼び出し側の認証が完了すると、動作2.3において、プラットフォームコントローラ/BMC280は、PC RAM284およびPCフラッシュ286のリソースを用いて、USB仮想ドライブ202のエミュレーションを開始する。動作2.4において、プラットフォームコントローラ/BMC280は、ステータス情報をSMMハンドラ215に対して供給し、動作2.5において、SMMハンドラ215は、デバイスステータス情報をBIOS214に渡す。デバイスステータス情報に応じて、BIOS214は、プラットフォームコントローラ/BMC280につながっている物理USBポートに対応付けられているサブシステムにおいてUSBデバイスの発見処理を開始する。動作2.6において、BIOS214は、SMMハンドラ215を介したUSB仮想ドライブ202へのアクセスを要求する。BIOS214がUSB仮想ドライブ202との間で通信を設定すると、動作2.7において、BIOS214は、SMMハンドラ215を介して、USB3.0の速度(4ギガビット/秒または実質的には3.2ギガビット/秒の転送)で通常のUSBコマンドを用いて、TSEG(または、RAMの他の保護されたセキュアな部分、例えば、図1のDRAM112)へとデータを転送するための通信を行う。BIOS214がメモリへのデータ転送を完了すると、BIOS214は、確認応答をプラットフォームコントローラ/BMC280に送る。プラットフォームコントローラ/BMS280は、確認応答に応じて、オペレーティングシステム213およびSMMハンドラ215を含むホストからデバイスが見えなくする。BIOS214はこの後、SMMからホストドメインへと戻る。プロセッサ210がSMMである間に全てのデータ処理が実行されるので、サーバオペレーティングシステム113は、USB仮想デバイス202を認識せず、行われた通信も認識しない。
【0034】
別の実施形態によると、I/O処理は、図1の企業用サービス170から命令を受信すると、プラットフォームコントローラ/BMC180によって開始されるとしてよい。この場合、プラットフォームコントローラ/BMC280は、システムをSMMに移行させ、エミュレートされたUSBドライブにデータを書き込み、供給されたデータを読むようにBIOS214に通知する。
【0035】
図3を参照すると、本発明の一実施形態に係る、セキュアプラットフォーム管理サービスを供給するための、図1のシステムの構成要素の動作を説明するためのフローチャートが図示されている。図3に示す処理は、図2のシステム構成要素によって実行されるものとして説明されている。当該プロセスは、BIOS214がセキュアプラットフォーム管理サービスを要求するイベントを処理することから開始される。例えば、プラットフォームコントローラ/BMC280が管理するプログラムまたはデータへのアクセスを必要とするI/O処理を受信することから開始される。「BIOSがセキュアデータへのアクセスを要求」ステップ302では、BIOS214は、セキュアプラットフォーム管理サービスへのアクセスが必要であるという判断を下す。「BIOSはSMMに移行」ステップ303に進み、BIOS214がシステム管理割り込み(SMI)を発行して、プロセッサ210をシステム管理モード(SMM)に移行させる。
【0036】
「BIOSがSMMハンドラを介してBMCに要求を送る」ステップ304に進み、BIOS214はセキュアデータにアクセスするための要求を送信する。「BIOSはSMMハンドラを介してBMCに認証を送る」ステップ306に進み、BIOS214が、ユーザネームおよびパスワード等の認証情報をSMMハンドラ215に送る。SMMハンドラ215は、認証情報をプラットフォームコントローラ/BMC280に渡す。一実施形態によると、認証要求は、IPMI認証インターフェースに応じて提供される。この後、「BMCが認証を確認」ステップ308に進み、プラットフォームコントローラ/BMC280が受信者を認証する。この認証処理を行う際、プラットフォームコントローラ/BMC280は、プラットフォーム100がシステム管理モード(SMM)で動作していること、および、プラットフォームコントローラ/BMC280に接続されている汎用I/Oコントローラ(I/Oコントローラ240等)で要求が発行されていることを確認する。
【0037】
「BMCは認証を確認」ステップ308から、「BMCはUSBドライブのエミュレーションを開始」ステップ310へと進み、プラットフォームコントローラ/BMC280は、USB仮想ドライブのエミュレーションを開始する。USBドライブをエミュレートする際、プラットフォームコントローラ/BMC280は、自身のリソースであるPC RAM284およびPCフラッシュ286内の空き空間を利用して、USB仮想ドライブ用のメモリを提供する。
【0038】
この後、「BMCはBIOSに対してI/Oイベントをアサート」ステップ312に進み、プラットフォームコントローラ/BMC280は、SMMハンドラ215を介して、BIOS214に対してI/Oイベントをアサートする。この後、「BIOSはセキュアUSBドライブをエニュメレート」ステップ314に進む。BIOS214はさらに、見えるデバイスをエニュメレートして、この中に、この時点において、USB仮想ドライブ202が含まれる。
【0039】
この後、「BIOSはデータをセキュアメモリとの間で転送」ステップ316に進み、BIOS214はこの後、エミュレートされたUSB仮想ドライブ202を利用してI/O処理を実行する。USB仮想ドライブからのI/O処理が完了すると、「BIOSがBMCを認識」ステップ318に進み、BIOS214がプラットフォームコントローラ/BMC280に対するI/Oイベントを認識して、BIOS214がI/Oイベントを完了したことを示す。プラットフォームコントローラ/BMC280が、BIOS214から、認識した旨の確認応答を受信すると、プラットフォームコントローラ/BMC280は、「BMCはUSBリダイレクトドライブのエミュレーションを中止」ステップ320において、USBリダイレクトドライブのエミュレーションを中止する。この後、「BIOSはデータを処理(消費)して、SMMから移行」ステップ322に進み、BIOS214は、I/O処理によるデータを処理および/または消費する。例えば、I/O処理がBIOSファームウェアへの更新を配信すると、BIOS214は図1のフラッシュメモリ190においてBIOSファームウェア192を上書きするとしてよい。これに代えて、BIOS214は、他のメモリにデータを書き込み、後に別のシステム管理割り込み(SMI)の際にデータを処理するとしてもよい。データの消費が完了すると、プロセッサ210はSMMから移行する。
【0040】
USB3.0の高速帯域幅を持ってすれば、オペレーティングシステムのシステム管理割り込み(SMI)のタイムアウト制限を守りつつも、大きなペイロードを配信することができる。プラットフォームコントローラ/BMC280は、サイズ制限またはBIOS更新スケジュールに関係なく、オペレーティングシステムの更新、BIOSファームウェアの更新、診断ソフトウェアおよび他のシステムファームウェアの更新を実行することができる。アウトオブバンド方式でBIOS更新および/またはBIOS修復を実行することができる。
【0041】
データの格納にプラットフォームコントローラ/BMC280のPC RAM284等のリソースを利用する別の利点として、サーバコンピュータシステムでは稀なことに、電力が中断されるまで当該データがPC RAM284に保持されることが挙げられる。
【0042】
本明細書で開示しているメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの実施方法を組み合わせて実現するとしてもよい。本発明の実施形態は、プログラム可能なシステムで実行されるコンピュータプログラムとして実現されるとしてよい。当該システムは、少なくとも1つのプロセッサと、データ格納システム(揮発性メモリおよび不揮発性メモリおよび/または格納素子を含む)、少なくとも1つの入力デバイス、および、少なくとも1つの出力デバイスを備える。
【0043】
プログラムコードを入力データに適用して、本明細書に記載されている機能を実現して出力情報を生成するとしてよい。本発明の実施形態はさらに、本発明に係る処理を実行するための命令を含む機械アクセス可能媒体、または、本明細書で説明している構造、回路、装置、プロセッサおよび/またはシステムフィーチャを定義しているHDL等の設計データを含む機械アクセス可能媒体を含む。このような実施形態は、プログラム製品とも呼ばれるとしてよい。
【0044】
このような機械アクセス可能格納媒体は、これらに限定されないが、機械またはデバイスによって製造または形成される粒子の有形の配列、例えば、ハードディスク等の格納媒体、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスクリードオンリーメモリ(CD−ROM)、コンパクトディスクリライタブル(CD−RW)、および、光磁気ディスクを含む任意のその他の種類のディスク、リードオンリーメモリ(ROM)等の半導体デバイス、ダイナミックランダムアクセスメモリ(DRAM)等のランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、消去可能プログラム可能リードオンリーメモリ(EPROM)、フラッシュプログラム可能メモリ(FLASH)、電気的消去可能プログラム可能リードオンリーメモリ(EEPROM)、磁気カードまたは光カード、または、電子命令の格納に適した任意のその他の種類の媒体を含むとしてよい。
【0045】
出力情報は、公知の方法で、1以上の出力デバイスに適用されるとしてよい。本願において、処理システムは、例えば、デジタルシグナルプロセッサ(DSP)、マイクロコントローラ、特定用途向け集積回路(ASIC)またはマイクロプロセッサ等のプロセッサを有する任意のシステムを含む。
【0046】
プログラムは、処理システムと通信できるように、高級プロシージャプログラミング言語またはオブジェクト指向型プログラミング言語で実装されるとしてよい。プログラムはさらに、所望される場合には、アセンブリ言語または機械言語で実装するとしてもよい。実際、本明細書で説明されるメカニズムの範囲は、任意の特定のプログラミング言語に限定されるものではない。いずれの場合であっても、言語はコンパイル型言語またはインタプリタ型言語であってよい。
【0047】
本明細書で示すのは、サーバプラットフォームを管理するための方法およびシステムの実施形態である。本発明の具体的な実施形態を図示および説明してきたが、当業者には、添付された請求項の範囲から逸脱することなく、数多くの点で変更、変形が可能であることが明らかである。したがって、当業者であれば、本発明の広義の側面から逸脱することなく、変更および変形し得ることを認めるであろう。請求項の範囲には、本発明の真の範囲および意図に含まれるこのような変更、変形をすべて含むものとする。
なお、本願明細書に記載の実施形態によれば、以下の構成もまた開示される。
[項目1]
コンピュータで実施される方法であって、
システム管理割り込み(SMI)を生成可能なI/Oコントローラに結合されているプラットフォームコントローラを備えるシステムにおいて、
データへのセキュアアクセスを要求するイベントに応じて、SMIを生成して、前記システムをシステム管理モードに移行させる段階と、
前記プラットフォームコントローラのリソースを用いて、エミュレートされたUSBドライブを作成する段階と
前記システムのオペレーティングシステムがアクセス不可能な接続を介して、前記データを前記エミュレートされたUSBドライブから複製する段階と
前記システム管理モードから移行する前に、前記データを処理する段階と
を実行し、
前記リソースは前記データを格納している方法。
[項目2]
前記システム管理モードの間に、前記データの受信者の認証を行う段階をさらに実行する項目1に記載の方法。
[項目3]
前記プラットフォームコントローラは、ベースボード管理コントローラである項目1または2に記載の方法。
[項目4]
前記プラットフォームコントローラは、前記システムのチップセットの管理エンジンによって供給される項目1から3のいずれか一項に記載の方法。
[項目5]
前記データを企業用サーバから前記エミュレートされたUSBドライブにダウンロードする段階をさらに実行する項目1から4のいずれか一項に記載の方法。
[項目6]
前記システム管理モードから移行する前に、前記エミュレートされたUSBドライブを前記オペレーティングシステムから見えなくする段階をさらに実行する項目1から5のいずれか一項に記載の方法。
[項目7]
前記プラットフォームコントローラの前記リソースを用いて前記エミュレートされたUSBドライブを作成する段階は、前記エミュレートされたUSBドライブにアクセスするよう求める要求に応じて実行される項目1から6のいずれか一項に記載の方法。
[項目8]
プロセッサと、
プラットフォームコントローラと、
システム管理割り込み(SMI)を生成可能なI/Oコントローラと、
前記プロセッサに結合されており、命令を有するメモリと
を備えるシステムであって、
前記命令は、
データへのセキュアアクセスを要求するイベントに応じて、SMIを生成して、前記システムをシステム管理モードに移行させる段階と、
前記プラットフォームコントローラのリソースを用いて、エミュレートされたUSBドライブを作成する段階と、
前記システムのオペレーティングシステムがアクセス不可能な接続を介して、前記データを前記エミュレートされたUSBドライブから複製する段階と、
前記システム管理モードから移行する前に、前記データを処理する段階と
を実行するための命令であり、
前記リソースは前記データを格納しているシステム。
[項目9]
前記命令はさらに、前記システム管理モードの間に、前記データの受信者の認証を行う段階を実行するための命令を含む項目8に記載のシステム。
[項目10]
前記プラットフォームコントローラは、ベースボード管理コントローラである項目8または9に記載のシステム。
[項目11]
前記プラットフォームコントローラは、前記システムのチップセットの管理エンジンによって供給される項目8から10のいずれか一項に記載のシステム。
[項目12]
前記命令はさらに、企業用サーバからの前記データを前記エミュレートされたUSBド
ライブにダウンロードする段階を実行するための命令を含む項目8から11のいずれか一項に記載のシステム。
[項目13]
前記命令はさらに、前記システム管理モードから移行する前に、前記エミュレートされたUSBドライブを前記オペレーティングシステムから見えなくする段階を実行するための命令を含む項目8から12のいずれか一項に記載のシステム。
[項目14]
前記プラットフォームコントローラの前記リソースを用いて前記エミュレートされたUSBドライブを作成する段階は、前記エミュレートされたUSBドライブにアクセスするよう求める要求に応じて実行される項目8から13のいずれか一項に記載のシステム。
[項目15]
システム管理割り込み(SMI)を生成可能なI/Oコントローラに結合されているプラットフォームコントローラを備えるコンピュータに、
データへのセキュアアクセスを要求するイベントに応じて、SMIを生成して、前記システムをシステム管理モードに移行させる手順と、
前記プラットフォームコントローラのリソースを用いて、エミュレートされたUSBドライブを作成する手順と、
前記システムのオペレーティングシステムがアクセス不可能な接続を介して、前記データを前記エミュレートされたUSBドライブから複製する手順と、
前記システム管理モードから移行する前に、前記データを処理する手順と
を実行させるためのプログラムであって、
前記リソースは前記データを格納しているプログラム。
[項目16]
前記コンピュータにさらに、前記システム管理モードの間に、前記データの受信者の認証を行う手順を実行させるための項目15に記載のプログラム。
[項目17]
前記プラットフォームコントローラは、ベースボード管理コントローラである項目15または16に記載のプログラム。
[項目18]
前記プラットフォームコントローラは、前記システムのチップセットの管理エンジンによって供給される項目15から17のいずれか一項に記載のプログラム。
[項目19]
前記コンピュータにさらに、前記データを企業用サーバから前記エミュレートされたUSBドライブにダウンロードする手順を実行させるための項目15から18のいずれか一項に記載のプログラム。
[項目20]
前記コンピュータにさらに、前記システム管理モードから移行する前に、前記エミュレートされたUSBドライブを前記オペレーティングシステムから見えなくする手順を実行させるための項目15から19のいずれか一項に記載のプログラム。
[項目21]
前記プラットフォームコントローラの前記リソースを用いて前記エミュレートされたUSBドライブを作成する手順は、前記エミュレートされたUSBドライブにアクセスするよう求める要求に応じて実行される項目15から20のいずれか一項に記載のプログラム。
図1
図2
図3