第1プラットフォームファームウェアを格納するプラットフォームファームウェア記憶ロケーションを有するコンピュータプラットフォームのブート時に、前記コンピュータプラットフォームに位置するプラットフォームファームウェア更新メカニズムを、プラットフォームファームウェアアーマリング技術PFATモードに切り替える段階と、前記プラットフォームファームウェア更新メカニズムが前記PFATモードに切り替えられたことに応答して、前記プラットフォームファームウェア記憶ロケーションを持続的にロックする段階とを備え、前記プラットフォームファームウェア記憶ロケーションが持続的にロックされると、前記プラットフォームファームウェア更新メカニズムのロック解除プロセスの後は、認証コードモジュールAuthenticatedCodeModule:ACM以外のエンティティによる前記プラットフォームファームウェア記憶ロケーションへの書き込みが許可されない方法。前記ロック解除のプロセスは、前記プラットフォームファームウェア更新メカニズムが、PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルを開始する段階を有し、前記PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルでは、前記プラットフォームファームウェア記憶ロケーションに連結されたコントローラは、前記プラットフォームファームウェア更新メカニズムから、前記プラットフォームファームウェア記憶ロケーションのアドレス空間への書き込みコマンドを受け取る請求項1に記載の方法。前記プラットフォームファームウェア記憶ロケーションにパブリック暗号化キーを供給する段階と、前記第1プラットフォームファームウェアを更新されたファームウェアイメージで更新するセキュアでないリクエストを受信する段階と、前記セキュアでないリクエストに応答して、前記コンピュータプラットフォーム内のシステムメモリに前記更新されたファームウェアイメージをロードする段階と、前記ファームウェアイメージが前記システムメモリに完全にロードされた後に前記ACMを起動する段階と、前記パブリック暗号化キーを使用して、前記更新されたファームウェアイメージの認証を行う段階と、前記更新されたファームウェアイメージの認証が成功したことに応答して、前記プラットフォームファームウェア記憶ロケーションに対して前記ロック解除プロセスを実行する段階と、前記システムメモリから、認証された前記ファームウェアイメージを前記プラットフォームファームウェア記憶ロケーションにコピーする段階とを更に備える請求項2に記載の方法。前記ファームウェアイメージの前記認証が失敗した場合には、エラーを発行する段階を更に備える請求項3に記載の方法。前記第1プラットフォームファームウェアは、システム管理ファームウェアを含み、前記コントローラは、プラットフォームコンポーネントハブを含む請求項2から4の何れか一項に記載の方法。前記第1プラットフォームファームウェアは、制御管理ファームウェアを含み、前記コントローラは、前記コンピュータプラットフォームに位置するコントローラを含む請求項3又は4に記載の方法。前記コンピュータプラットフォームのブートの都度、一時的パスワードを生成する段階と、前記ACMのみアクセス可能な安全なロケーションに前記一時的パスワードを格納する段階と、前記一時的パスワードを、少なくとも前記プラットフォームファームウェア記憶ロケーションに連結された前記コントローラに配信する段階とを更に備える請求項6に記載の方法。前記パブリック暗号化キーを使用した、前記更新されたファームウェアイメージの前記認証が成功したことに応答して、前記ACMが、前記制御管理ファームウェアを更新する許可を得るべく、前記一時的パスワードを含むセキュアなリクエストを前記コントローラに送信する段階と、前記コントローラが、前記セキュアなリクエストから受信した前記一時的パスワードと、前記コンピュータプラットフォームの最新のブートの間に受信した一時的パスワードとを比較する段階と、前記2つの一時的パスワードが等しいことに応答して、前記コントローラが、前記ACMが前記制御管理ファームウェアに対する前記更新を実行することを許可する段階とを更に備える請求項7に記載の方法。第1プラットフォームファームウェアを格納するプラットフォームファームウェア記憶ロケーションを有するコンピュータプラットフォームのブート時に、前記コンピュータプラットフォームに位置するプラットフォームファームウェア更新メカニズムを、プラットフォームファームウェアアーマリング技術PFATモードに切り替えるロジックと、前記プラットフォームファームウェア更新メカニズムが前記PFATモードに切り替えられたことに応答して、前記プラットフォームファームウェア記憶ロケーションを持続的にロックするロジックとを備え、前記プラットフォームファームウェア記憶ロケーションが持続的にロックされると、前記プラットフォームファームウェア更新メカニズムのロック解除プロセスの後は、認証コードモジュールAuthenticatedCodeModule:ACM以外のエンティティによる前記プラットフォームファームウェア記憶ロケーションへの書き込みが許可されない装置。PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルを開始するロジックを更に備え、前記PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルでは、前記プラットフォームファームウェア記憶ロケーションに連結されたコントローラは、前記プラットフォームファームウェア更新メカニズムから、前記プラットフォームファームウェア記憶ロケーションのアドレス空間への書き込みコマンドを受け取る請求項9に記載の装置。前記プラットフォームファームウェア記憶ロケーションにパブリック暗号化キーを供給し、前記第1プラットフォームファームウェアを更新されたファームウェアイメージで更新するセキュアでないリクエストを受信し、前記セキュアでないリクエストに応答して、前記コンピュータプラットフォーム内のシステムメモリに前記更新されたファームウェアイメージをロードし、前記ファームウェアイメージが前記システムメモリに完全にロードされた後に前記ACMを起動し、前記パブリック暗号化キーを使用して、前記更新されたファームウェアイメージの認証を行い、前記更新されたファームウェアイメージの認証が成功したことに応答して、前記プラットフォームファームウェア記憶ロケーションに対して前記ロック解除プロセスを実行し、前記システムメモリから、認証された前記ファームウェアイメージを前記プラットフォームファームウェア記憶ロケーションにコピーするロジックを更に備える請求項10に記載の装置。前記ファームウェアイメージの前記認証が失敗した場合には、エラーを発行するロジックを更に備える請求項11に記載の装置。前記第1プラットフォームファームウェアは、システム管理ファームウェアを含み、前記コントローラは、プラットフォームコンポーネントハブを含む請求項10から12の何れか一項に記載の装置。前記第1プラットフォームファームウェアは、制御管理ファームウェアを含み、前記コントローラは、前記コンピュータプラットフォームに位置するコントローラを含む請求項11又は12に記載の装置。前記コンピュータプラットフォームのブートの都度、一時的パスワードを生成し、前記ACMのみアクセス可能な安全なロケーションに前記一時的パスワードを格納し、前記一時的パスワードを、前記プラットフォームファームウェア記憶ロケーションに連結された前記コントローラに少なくとも配信するロジックを更に備える請求項14に記載の装置。前記パブリック暗号化キーを使用した、前記更新されたファームウェアイメージの前記認証が成功したことに応答して、前記制御管理ファームウェアを更新する許可を得るべく、前記一時的パスワードを含むセキュアなリクエストを前記コントローラに送信するロジックと、前記セキュアなリクエストから受信した前記一時的パスワードと、前記コンピュータプラットフォームの最新のブートの間に受信した一時的パスワードとを比較する前記コントローラ内のロジックと、前記2つの一時的パスワードが等しいことに応答して、前記ACMが前記制御管理ファームウェアに対する前記更新を実行することを許可する前記コントローラ内のロジックとを更に備える請求項15に記載の装置。第1プラットフォームファームウェアを格納するプラットフォームファームウェア記憶ロケーションを有するコンピュータプラットフォームのブート時に、前記コンピュータプラットフォームに位置するプラットフォームファームウェア更新メカニズムを、プラットフォームファームウェアアーマリング技術PFATモードに切り替える段階と、前記プラットフォームファームウェア更新メカニズムが前記PFATモードに切り替えられたことに応答して、前記プラットフォームファームウェア記憶ロケーションを持続的にロックする段階とをコンピュータに実行させるためのプログラムであって、前記プラットフォームファームウェア記憶ロケーションが持続的にロックされると、前記プラットフォームファームウェア更新メカニズムのロック解除プロセスの後は、認証コードモジュールAuthenticatedCodeModule:ACM以外のエンティティによる前記プラットフォームファームウェア記憶ロケーションへの書き込みが許可されないようにするプログラム。前記ロック解除のプロセスは、前記プラットフォームファームウェア更新メカニズムが、PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルを開始する段階を有し、前記PFAT保護制御レジスタに対する特別なメモリ書き込みサイクルでは、前記プラットフォームファームウェア記憶ロケーションに連結されたコントローラは、前記プラットフォームファームウェア更新メカニズムから、前記プラットフォームファームウェア記憶ロケーションのアドレス空間への書き込みコマンドを受け取る請求項17に記載のプログラム。前記プラットフォームファームウェア記憶ロケーションにパブリック暗号化キーを供給する段階と、前記第1プラットフォームファームウェアを更新されたファームウェアイメージで更新するセキュアでないリクエストを受信する段階と、前記セキュアでないリクエストに応答して、前記コンピュータプラットフォーム内のシステムメモリに前記更新されたファームウェアイメージをロードする段階と、前記ファームウェアイメージが前記システムメモリに完全にロードされた後に前記ACMを呼び出す段階と、前記パブリック暗号化キーを使用して、前記更新されたファームウェアイメージの認証を行う段階と、前記更新されたファームウェアイメージの認証が成功したことに応答して、前記プラットフォームファームウェア記憶ロケーションに対して前記ロック解除プロセスを実行する段階と、前記システムメモリから、認証された前記ファームウェアイメージを前記プラットフォームファームウェア記憶ロケーションにコピーする段階とを更に前記コンピュータに実行させる請求項18に記載のプログラム。前記ファームウェアイメージの前記認証が失敗した場合には、エラーを発行する段階を更に前記コンピュータに実行させる請求項19に記載のプログラム。前記第1プラットフォームファームウェアは、システム管理ファームウェアを含み、前記コントローラは、プラットフォームコンポーネントハブを含む請求項18から20の何れか一項に記載のプログラム。前記第1プラットフォームファームウェアは、制御管理ファームウェアを含み、前記コントローラは、前記コンピュータプラットフォームに位置するコントローラを含む請求項19又は20に記載のプログラム。前記コンピュータプラットフォームのブートの都度、一時的パスワードを生成する段階と、前記ACMのみアクセス可能な安全なロケーションに前記一時的パスワードを格納する段階と、前記一時的パスワードを、前記プラットフォームファームウェア記憶ロケーションに連結された前記コントローラに少なくとも配信する段階とを更に前記コンピュータに実行させる請求項22に記載のプログラム。前記パブリック暗号化キーを使用した、前記更新されたファームウェアイメージの前記認証が成功したことに応答して、前記ACMが、前記制御管理ファームウェアを更新する許可を得るべく、前記一時的パスワードを含むセキュアなリクエストを前記コントローラに送信する段階と、前記コントローラが、前記セキュアなリクエストから受信した前記一時的パスワードと、前記コンピュータプラットフォームの最新のブートの間に受信した一時的パスワードとを比較する段階と、前記2つの一時的パスワードが等しいことに応答して、前記コントローラが、前記ACMが前記制御管理ファームウェアに対する前記更新を実行することを許可する段階とを更に前記コンピュータに実行させる請求項23に記載のプログラム。プラットフォームコンポーネントハブと、プラットフォームファームウェアを格納するプラットフォームファームウェア記憶部と、認証コードモジュールauthenticatedcodemodule:ACMを格納するシステムメモリと、コンピュータプラットフォームのブート時に、前記コンピュータプラットフォームに位置するプラットフォームファームウェア更新メカニズムを、プラットフォームファームウェアアーマリング技術PFATモードに切り替えるロジックとを備え、前記プラットフォームファームウェア更新メカニズムが前記PFATモードに切り替えられたことに応答して、前記プラットフォームコンポーネントハブは、プラットフォームファームウェア記憶ロケーションを持続的にロックし、前記プラットフォームファームウェア記憶ロケーションが持続的にロックされると、前記プラットフォームファームウェア更新メカニズムのロック解除プロセスの後は、前記ACM以外のエンティティによる前記プラットフォームファームウェア記憶ロケーションへの書き込みが許可されないシステム。プラットフォームファームウェアを安全に更新することができる装置、システム、方法及びコンピュータ可読媒体の実施形態が開示される。コンピュータシステム内のファームウェアは、コンピュータシステムにおける1以上のデバイスに対する、多くの種類の初期化、管理及び操作命令を供給する。ファームウェアの更新は、通常、セキュリティホールの問題を伴う。悪意を持った者が、改ざんされたファームウェアをコンピュータシステムに提供することが考えられる。コンピュータシステムが動作している間は、通常、ファームウェアは標準的なウィルス対策保護レベルよりも低いレベルになっているため、セキュリティが破られてしまうと深刻な影響を及ぼす。したがって、プラットフォームファームウェアの更新の間のセキュリティは、非常に重要である。多くの実施形態において、プラットフォームファームウェアアーマリング技術PFATモードは、コンピュータシステム内でイネーブルされる。PFATモードは、多くのエンティティがプラットフォームファームウェアを更新するのを制限する。具体的には、PFATモードでは、安全なセキュアな認証コードauthenticatedcode:ACモードで、認証コードモジュールauthenticatedcodemodule:ACMによって、システム管理ファームウェア更新が行われるように要求することができる。標準オペレーションモードでは、プラットフォームコンポーネントハブPCHは、記憶装置への書き込みを停止させてもよい。ファームウェア更新を可能とするべく、ロジックは、ACMを起動して、ACMは、特別な書き込みサイクルをCPUレジスタに実行して、ファームウェア記憶領域への書き込みのロックを解除してもよい。多くの実施形態では、ACMは、特別な書き込みサイクルを実行してもよい唯一のエンティティであり、ファームウェア記憶領域のロックが解除されると、ACMは、実際にファームウェア更新をおこなってもよい唯一のエンティティとなる。更に、ACMは、更新されたファームウェアイメージを測定して、更新されたファームウェアの信頼性を、CPUに供給されたパブリックキーを使用して検証してもよい。図1には、プラットフォームファームウェアを安全に更新することができるコンピュータシステムの一実施形態が示されている。図には、コンピュータシステム100が図示されている。コンピュータシステムは、デスクトップ、サーバ、ワークステーション、ラップトップ、ハンドヘルドデバイス、TVセットトップ、メディアセンター、ゲームコンソール、例えば、車に設けられる統合システム、又は、そのほかの種類のコンピュータシステムであってもよい。幾つかの実施形態では、コンピュータシステム100は、プロセッサとも称される1以上の中央演算処理装置CPUを備える。多くの実施形態では、複数のCPUが存在する可能性があるが、図1に示す実施形態では、図示を明瞭にする目的から、1つのCPU102のみが示されている。CPU102は、インテル登録商標社のCPU又は別のCPUであってもよい。CPU102は、異なる実施形態では、1以上のコアを有する。図示のCPU102は、4つのコアコア104、106、108及び110を有する。多くの実施形態では、コアはそれぞれ、1以上の実行ユニット、リタイアメントユニット、汎用及び専用レジスタのセット等のインターナル機能ブロックを含む。シングルスレッドコアでは、コアはそれぞれ、ハードウェアスレッドとも称される。コアが、マルチスレッド又はハイパースレッドである場合には、各コア内で動作するスレッドをそれぞれ、ハードウェアスレッドと称してもよい。したがって、コンピュータシステム100内で実行されるシングルスレッドは、ハードウェアスレッドと称される。例えば、図1において、コアがそれぞれシングルスレッドである場合、システム内に4つのハードウェアスレッドが存在することになる4つのコア。一方、各コアがマルチスレッドであり、2つのスレッドのステートを同時に維持することができる場合には、システム内に8個のハードウェアスレッドが存在することになる1つのコアにつき2つのスレッドを有する、4つのコア。CPU102は、キャッシュ112のような1以上のキャッシュを有してもよい。図示しない多くの実施形態において、キャッシュ112以外の更なるキャッシュを実装して、各コア及びメモリ内の実行ユニット間にキャッシュの複数レベル階層を存在させてもよい。異なる実施形態において、キャッシュ112は、異なる態様で分配されてもよい。また、別の実施形態では、キャッシュ112は、異なるサイズのうちの1つであってもよい。例えば、キャッシュ112は、8メガバイトMBキャッシュ、16MBキャッシュ等であってもよい。異なる実施形態では、キャッシュは、ダイレクトマップキャッシュ、フルアソシアティブキャッシュ、マルチウェイセットアソシアティブキャッシュ、又は、その他のマッピング方式のキャッシュであってもよい。多くの実施形態では、キャッシュ112は、全てのコアで共有される1つの大きな部分を有する、又は、複数の別個の機能スライス例えば、各コアにつき1スライスに分割されてもよい。キャッシュ112はまた、全てのコアによって共有される1つの部分、及び、コア毎の別個の機能スライスとなるその他の部分を有してもよい。多くの実施形態において、CPU102は、システムメモリ116と通信を行うインターフェースを提供するべく、統合システムメモリコントローラ114を有する。図示しない別の実施形態では、メモリコントローラ114は、コンピュータシステム100内の別個の部分に位置してもよい。システムメモリ116は、ダブルデータレートDDRランダムアクセセスメモリDRAMのようなDRAM、フラッシュメモリ、相変化メモリPCMのような不揮発性メモリ、又は、その他の種類のメモリ技術を含んでもよい。システムメモリ116は、CPU102によって実行される命令及びデータを格納する汎用メモリであってもよい。更に、ダイレクトメモリアクセスDMA可能入出力I/Oデバイスのような、システムメモリからの読み出し及び書き込みを行う能力を有するその他のデバイスが、コンピュータシステム100内に存在してもよい。システムメモリ116とCPU102とを連結するリンクすなわち、バス、インターコネクト等は、データ、アドレス、制御及びクロック情報を転送可能な1以上の光学配線、金属配線及びその他の配線すなわち、線を含んでもよい。プラットフォーム制御ハブ118例えば、I/O制御ハブは、CPU102と外部I/Oデバイスとの間の通信を可能にするI/Oインターフェースを含む。ハブは、I/Oアダプタ120のような1以上のI/Oアダプタを含んでもよい。I/Oアダプタは、CPU102内で使用されているホスト通信プロトコルを、I/Oデバイス122のような特定のI/Oデバイスと互換性を有するプロトコルへと変換する。所与のI/Oアダプタが変換するプロトコルとして、例えば、ペリフェラルコンポーネントインターコネクトPCI、ユニバーサルシリアルバスUSB、IDE、SCSI、及び、1394ファイヤーワイヤが挙げられる。1以上の無線プロトコルI/Oアダプタが存在してもよい。無線プロトコルの例として、Bluetooth登録商標、IEEE802.11ベースの無線プロトコル、セルラープロトコルが挙げられる。多くの実施形態において、制御デバイス124は、コンピュータシステム100に存在する。制御デバイス124は、複数の機能を組み込んでもよい。例えば、RAIDストレージ制御デバイスがコンピュータシステム100内に存在してもよい。RAIDコントローラは、ハードディスクドライブ又はソリッドステートディスクSSDのアレイを管理してもよい。制御デバイスのその他の例として、ディスクリート帯域外管理可能エンジンdiscreteoutofbandmanageabilityengine、埋め込みマイクロコントローラ、又は、その他の種類のコントローラが挙げられる。CPU間高速インターフェース126は、1以上の更なるCPUに連結されるリンクへのインターフェースを提供して、CPU間通信を可能としてもよい。例えば、CPU間高速インターフェースは、クイックパスインターコネクトquickpathinterconnect:QPI又はその他の同様なインターフェースであってもよい。図示していないが、多くの実施形態において、コンピュータシステム100は、仮想マシンVM環境において実行される1以上のゲストオペレーティングシステムOSを有する仮想化された環境を提供可能なハードウェア及びソフトウェアロジックを含む。仮想マシンモニタVMM又はハイパーバイザを、システム内のロジックに実装して、VMの動作環境それぞれを分離してもよいすなわち、VM及びOS及びシステム内で実行されるアプリケーションを、システムに存在するその他のVMから分離する及び互いに認知不可能とする。多くの実施形態において、システム100には管理可能エンジン128に存在する。管理可能エンジンは、リモート管理、セキュリティ管理及び電力管理に関する管理ロジックを含む複数の機能を有してもよい。多くの実施形態において、管理可能エンジン128は、コンピュータシステム100で動作するオペレーティングシステムOSのレベル未満で動作する帯域外OOB通信チャネルを利用する。OOBチャネルは、通常、OSの状態に関係なく、リモートシステムとの通信を維持することができる。多くの実施形態において、OOBチャネルは、コンピュータシステム100が低電力状態又は完全にシャットダウンされている場合であっても、通信を継続することができる。ある実施形態では、管理可能エンジン128は、インテル登録商標アクティブマネージメントテクノロジーActiveManagementTechnologyハードウェアロジックを含む。別の実施形態では、その他の形式のハードウェアロジックを利用する。多くの実施形態において、ファームウェアは、コンピュータシステム100に格納される。コンピュータシステム100内の任意の場所に格納されたファームウェアは、プラットフォームファームウェアと称される場合がある。具体的には、数多くの種類のファームウェアが存在する。例えば、システム管理ファームウェア記憶ロケーション130は、システム管理ファームウェア132を格納してもよい。システム管理ファームウェア130は、拡張可能ファームウェア、基本入出力システムBIOS、及び/又は、ブート処理の間のように、コンピュータシステム100の鍵となる命令を供給するのに使用されてもよいその他の種類のファームウェアを含んでもよい。コンピュータシステム内の別のファームウェアは、制御デバイス124のプラットフォーム制御ファームウェア134を含んでもよい。このファームウェアは、制御デバイス124に連結されたプラットフォーム制御ファームウェア記憶部136に格納されてもよい。プラットフォーム制御ファームウェア132は、制御デバイス124の機能の管理に関する命令を供給してもよい。多くの異なる実施形態において、システム内のファームウェア記憶ロケーション例えば、システム管理ファームウェア記憶ロケーション130、プラットフォーム制御ファームウェア記憶ロケーション136等は、NANDフラッシュ、NORフラッシュ、相変化メモリ、又は、その他の形式の不揮発性メモリを含む。図示を簡略化するために示されていないが、CPUは、グラフィックス及びネットワークトラフィックを取り扱う高速I/Oインターフェースのような更なるインターフェースを有してもよい。多くの実施形態では、このような高速I/Oインターフェースは、1以上のPCIエクスプレスインターフェースを含んでもよい。コンピュータシステム100は、CPU102によって起動され署名されるソフトウェアモジュールである、認証コードモジュールACM138を安全に起動するコードを格納する。ACM138は、CPU102の製造者によって管理されるプライベートキーを使用した非対称暗号を利用して署名されてもよい。CPU102がACM138を呼び出すと、最初に、CPU102、ディスクリートPCHのようなチップセット関連回路又はコンピュータシステム内のその他の回路に格納されている予め提供されたパブリックキーのハッシュを使用して認証が行われる。パブリックキーは、内部のプライベートキーによって暗号化された情報を解読するのに使用される。一般的に、パブリックキーは不変である。このような周知のセキュリティプロセスを使用してACM138を調べることにより、モジュールは、信頼できる実行環境として認証される。ACMは、セキュリティの観点から、認証コードACモードで実行されてもよい。ACモードでは、全てのシステム割り込み及びイベントによってACMが中断されることはなく、その他のシステム及びDMAエージェントから保護される。ACモードで実行する場合、1つのハードウェアスレッドのみがアクティブとなり、その他のハードウェアスレッドは全てランデブー状態となり、休止/スリープ状態になる。コンピュータシステム100の第1ブートの間又は前に、ファームウェア更新パブリックキー140が、システム管理ファームウェア記憶部130に供給及び格納されてもよい。ファームウェア更新パブリックキー140は、ファームウェアイメージ情報を認証するのに利用されてもよい。ある実施形態では、パブリックキー140は、ファームウェアイメージの認証にのみ使用される。パブリックキーという言葉が使用されるが、ある実施形態では、実際の英数字の暗号化されていないキーを格納し、別の実施形態では、パブリックキーは、パブリックキーのハッシュを意味する場合がある。パブリックキーは、プロセッサ内又はその他の場所のリードオンリメモリROMに格納されてもよい。記憶領域を節約するために、完全なパブリックキーではなく、ハッシュを格納してもよい。コンピュータシステムに書き込むべきファームウェアイメージは、パブリックキーを含んでもよい。イメージにおけるパブリックキーは、ハッシュされて、システムROMに格納されているパブリックキーのハッシュと比較される。特定の実施形態では、更なるセキュリティ対策のために、ハッシュを暗号化してもよい。多くの実施形態において、コンピュータシステム100は、プラットフォームファームウェアアーマリング技術PFATモードに入ることができるようになっている。PFATモードでは、プラットフォームファームウェアがロックダウンされる。PFATモードでは、ACモードで動作するACMのみが、コンピュータシステム100内のファームウェア記憶ロケーションに対する更新すなわち、書き込みを実行することを許可される。そして、ACMであっても、プラットフォームファームウェア記憶部への書き込みを許可するための特別なプロセスを実行することを要求される。一旦PFATモードに入ると、コンピュータシステムは、このモードから出ることができない。多くの実施形態において、コンピュータシステムのブートの都度、PFATモードに入り、任意のファームウェアが位置するメモリアドレス空間がロックダウンされる。例えば、システム管理ファームウェア記憶部130は、プラットフォーム制御ハブ118を介してCPU102と連結されることから、システム管理ファームウェア記憶部130を対象とした任意の書き込みは、プラットフォーム制御ハブ118を介してルートされる。システムがPFATモードにある場合、安全なACMベースのロック解除プロセスを先に利用することなくシステム管理ファームウェア記憶部130のために確保されているメモリロケーションへの任意の書き込みの試みは、プラットフォーム制御ハブ118によって拒否される。安全なACMベースのロック解除プロセスについては、以下に説明する。多くの実施形態では、ブートプロセス間のファームウェア内で実行されているコードは、PFATモードをイネーブルするライトワンスレジスタwriteonceregisterを設定してもよい。例えば、プラットフォームに位置するPFAT管理レジスタは、PFATモードをイネーブルするPFATイネーブルビットを有してもよい。ある実施形態では、PFAT管理レジスタは、プラットフォーム制御ハブ118PFATレジスタ142Aに位置する。別の実施形態では、PFAT管理レジスタは、CPUの非コア内の別の場所に位置するPFATレジスタ142B。このレジスタは、PFATモードの管理と関連付けられた幾つかのビットを有してもよい。例えば、PFATレジスタは、設定されるとPFATモードをイネーブルするPFATモードイネーブルビットを含んでもよい。また、PFATレジスタは、設定されると、PFATモードイネーブルビットを更に更新することを許さない少なくとも、プラットフォームが完全にリセットされるまでPFATモードロックダウンビットを含んでもよい。ロックダウンビットにより、コンピュータシステム100の通常動作の間に、悪意を持った者がPFATモードをディセーブルすることができないようにする。上記のように、一旦PFATモードに入ると、システム管理ファームウェア記憶部130を表すメモリアドレス空間への通常の書き込みが許可されない。多くの実施形態では、コンピュータシステム100がPFATモードに入ると、プラットフォーム制御ハブ118は、システム管理ファームウェア記憶部130への書き込みが許可されないことを示すインターナルPCHロックレジスタ144を設定する。PCHロックレジスタ144が設定されると、ファームウェア記憶部130への書き込みを試みる任意のトランザクションは、プラットフォーム制御ハブ118によって破棄される。多くの実施形態において、OSに加えて実行されるファームウェア更新ロジック146がシステムメモリ116に存在する。ファームウェア更新ロジック146は、コンピュータシステム100に存在する特定のファームウェアを更新するリクエストを受信してもよい。この更新リクエストは、ネットワークを介してシステムアドミニストレータから送信されてもよいし、システム内例えば、レメディエーションOSからの修正又は他の場所から送信されてもよい。多くの実施形態において、ファームウェア更新のリクエストは、実際の更新のイメージを伴う。ファームウェアイメージは、リクエストと共に直接送られる、又は、リクエストを受信して受け付けた後に送られる。ファームウェアイメージは、ファームウェアの完全な書き換え例えば、新しいバージョンであってもよいし、小さな更新例えば、ファームウェア全体のうちの小さな部分の書き換えであってもよい。ある時点で、ファームウェア更新ロジック146は、更新の実際のイメージを受信する。ファームウェア更新イメージは、システムメモリ116内のファームウェアイメージテスト記憶部148に格納される。ファームウェア更新ロジック146がイメージ全体をテスト記憶部に格納すると、ACM138が起動されて、システムがACモードに入る。ファームウェア更新ロジック146を実行する標準モードから、ACモードで動作するACM138実行への遷移の間に、ファームウェア更新ロジック146は、ACM138に、システムメモリ116内のファームウェアイメージテスト記憶部148に対するポインタを受け渡す。この受け渡しには、ポインタを格納するべくCPU102内のレジスタが利用されてもよいし、システムメモリ116内の周知のハンドオフロケーションにポインタが格納されてもよい。ACモードに入り、ファームウェアイメージが格納されたロケーションが受け渡されると、ACM138は、パブリックキー140を使用してファームウェアイメージの認証プロセスを開始する。認証プロセスは、受信したファームウェアイメージの暗号を解読して調べるのに、非対称暗号化を利用してもよい。多くの実施形態において、コンピュータシステム内に格納された不変パブリックキーを使用して、ベンダから受け取ったファームウェアイメージが真正のものであるかを検証してもよい。多くの実施形態では、パブリックキーは、任意のエンティティがアクセス可能なものであり、別の実施形態では、パブリックキーを格納するストレージロケーションを読み出すことが可能なアクセス権を限定されたエンティティが有してもよい。例えば、ある実施形態では、ACモードのACM138は、CPU102に格納されたパブリックキー140にアクセスできる唯一のエンティティである。ACM138は、ファームウェアイメージテスト記憶部148に格納されたファームウェアイメージの認証のためのパブリックキーの検証を行う。ファームウェアイメージの認証が成功した場合すなわち、イメージのセキュリティーが侵害されなかった場合、ACM138は、CPU102内のロックレジスタ150に対して、特別な書き込みサイクルを実行する。多くの実施形態において、CPU102のロックレジスタ150は、ACモードのACMによって書き込みが可能な唯一の特別なMSRモデル固有レジスタである。したがって、通常モードのOS又は別の同様なエンティティは、このレジスタにアクセスできない。ロックレジスタ150への特別な書き込みサイクルにより、CPU102は、プラットフォーム制御ハブ118へ送信される安全なACMベースのロック解除コマンドを生成する。この安全なロック解除コマンドが到達すると、プラットフォーム制御ハブ118内のロジックは、PCHロックレジスタ144をクリアする。PCHロックレジスタ144がクリアされると、プラットフォーム制御ハブ118は、システム管理ファームウェア記憶部130のアドレス空間への書き込みを許可する。ファームウェア記憶部への書き込みが許可されると、ACM138は、ファームウェアイメージテスト記憶部148のロケーションからの認証されたファームウェアイメージを、システム管理ファームウェア記憶部130へとコピーする。コピーが完了すると、ACM138は、CPUロックレジスタ150への別の特別な書き込みサイクルを発行することによって、次のロックコマンドを発行してもよく、それにより、プラットフォーム制御ハブ118に送信される安全なACMベースのロックコマンドが生成される。プラットフォーム制御ハブ118がロックコマンドを受信すると、ハブ内のロジックが、PCHロックレジスタ144を設定して、システム管理ファームウェア記憶部130が再び、書き込みをブロックする状態となる。図1の例では、システム管理ファームウェア132の更新について記載した。別の例では、更新は、プラットフォーム制御ファームウェア134に関するものであってもよい。コンピュータシステム100のブート毎に、一過的なすなわち、一時的なパスワードが生成されてもよい。一時的なパスワードを生成するロジックは、CPU102内、システム管理ファームウェア132内、又は、コンピュータシステム100の別の場所に存在してもよい。一時的なパスワードは、通常、オペレーティングシステムによって、コンピュータシステムの通常動作の前のブートシーケンスの初期段階で生成される。生成された一時的なパスワードは、CPU102内の一時的なパスワードレジスタ152にインターナルに格納される。同じパスワードが、通常動作の間にCPUとの安全なハンドシェイクを必要とするコンピュータシステム内の任意のコントローラ又はその他のデバイスに配布される。制御デバイス124のようなコントローラは、ブート時のパスワード分配の間に受信されたパスワードを格納する、内部一時的パスワード記憶ロケーション154を有してもよい。この一時的なパスワードは、安全なブートプロセスの間に、生成、分配及び格納されるため、高いセキュリティを可能にする。通常動作時と比較して、安全なブートプロセス間に不正にアクセスされる可能性は低く、このブートプロセス間に一時的なパスワードを分配することにより、パスワードが盗難される可能性が低くなる。コンピュータシステム100が完全に動作可能状態となる例えば、OSが動作すると、ファームウェア更新ロジック146が、プラットフォーム制御ファームウェア134を更新するリクエストを受信してもよい。リクエストを受信すると、上記で説明した、更新イメージをファームウェアイメージテスト記憶ロケーション148にコピーするのと同じプロセスが実行される。ファームウェア更新ロジック146は、ACM138を起動して、システムの制御をACM138に渡す。ACM138は、イメージの認証を行い、イメージの認証が成功すると、ファームウェア更新の実行を行う。システム管理ファームウェア132の場合とは異なり、ACM138は、プラットフォーム制御ファームウェア134について完全な制御を有さない。制御デバイス124は、自身のセキュリティプロセスを有して、CPU102とは異なる別個の動作条件を有してもよい。基本的には、制御デバイス124は、制御ファームウェア記憶部136空間への書き込みリクエストが、実際にACM138からのものであることを確かめることを望む。より安全な認証プロセスを生成するべく、ACM138は、制御デバイス124に、制御ファームウェア記憶部136内のアドレス空間に対するファームウェア更新を実行するようリクエストを送信してもよい。このACMベースのリクエストは、一時的なパスワードと共に送信される。受信したACM138リクエストの信頼性を検証するべく、制御デバイス124は、リクエストと共に受信した一時的なパスワードと、コンピュータシステム100の現在のブートの間に受信した既に格納されている一時的なパスワードとを比較してもよい。多くの実施形態において、制御デバイス124内の更新ロジック156が、この比較を実行する。2つのパスワードが等しい場合には、制御デバイス124は、制御ファームウェア記憶部136のアドレス空間を開放して、ACM138からの書き込みが行われる。2つのパスワードが等しくない場合には、制御ファームウェア記憶部136はロックされたままとなり、制御デバイス124は、セキュリティの問題を示すある種のエラーメッセージを生成してもよい。多くの実施形態において、CPU102内の一時的パスワードレジスタ152に一時的なパスワードを安全に保持するべく、レジスタは、ACモードのACM138のみがアクセス可能であってもよい。多くの実施形態において、ACM138が認証されたファームウェアイメージの制御ファームウェア記憶部136への書き込みを完了すると、ACM138は、更新が完了したことを示す次の通信を制御デバイス124に送信してもよい。これにより、制御デバイス124は、制御ファームウェア記憶空間136への更なる書き込みを許可しないようにすることを知ることができる。多くの実施形態において、ACMは、ファームウェア更新に対するロールバック保護を実装してもよい。ロールバック保護は、プラットフォームファームウェアの更新を、ファームウェアアップデートイメージの新規のバージョンのみに限定する。ある実施形態では、ファームウェアイメージは、ファームウェアバージョンを含むヘッダを有してもよく、現在存在するファームウェアが同様なヘッダを有する。ACMは、両方のヘッダを読み、新しいファームウェアイメージが、プラットフォームに現在存在するファームウェアよりも新規のバージョンのファームウェアである場合には、新規のファームウェアイメージのみ、ファームウェア記憶ロケーションへの書き込みを許可してもよい。図2は、プラットフォームコンポーネントハブをロックダウンして、システム管理ファームウェア記憶空間への書きこみを許可するプロセスの一実施形態を示したフローチャートである。プロセスは、ハードウェア回路、ソフトウェアコード、ファームウェアコード、又は、処理ロジックのこれら3種類の任意の組み合わせを含む処理ロジックによって実行されてもよい。本明細書において使用されている処理ロジックという言葉が使用されているものは、上記したようなロジックの任意の組み合わせ、及び、その他の形式のロジックに実装されてもよい。プロセッサのブートの間に、処理ロジックが、コンピュータシステムにおけるファームウェア更新保護メカニズムをアクティブにするPFATモードイネーブルビットを設定すること処理ブロック200から、プロセスが開始する。PFATモードイネーブルビットは、コンピュータシステムのPCHデバイス内のファームウェア管理レジスタに位置してもよい。PFATをイネーブルするべくPFATモードイネーブルビットが設定されると、処理ロジックは、PFATモードイネーブルロックダウンビットを設定する処理ブロック202。PFATモードイネーブルロックダウンビットは、PFATモードイネーブルビットの更なる変更をさせない。多くの実施形態において、PFATモードイネーブルロックダウンビットは、コンピュータシステムのブート毎ライトワンスビットである。このような実施形態では、コンピュータシステムの完全なリセットの間に、PFATモードロックダウンビットを変更可能である。各ブートにおいて、PFATモードをイネーブルするプロセス、そして、PFATモードをロックダウンするプロセスが発生する。図2に図示しない別の実施形態では、PFATモードイネーブルビットは、コンピュータシステムの残りの使用期間の間、書き込みを行った後は変更することができないライトワンスレジスタである。このような実施形態では、PFATモードイネーブルビットは、コンピュータシステムのブート毎に1回書き込まれて、その後は、コンピュータシステムがリブートされるまで、コンピュータシステムがPFATモードをイネーブルしたか否かを示す。この処理ブロックは、ブロック200として示されている。このような実施形態では、ブートプロセスの間に一度書き込みがあった後は再書き込み可能とならないため、PFATモードイネーブルロックダウンビットは必要ない。このような別の実施形態では、処理ブロック202は必要ない。このプロセスが終了すると、コンピュータプラットフォームは、ブート処理に戻って続きを実行する。図3Aは、安全なプラットフォームファームウェア更新プロセスを開始するプロセスの一実施形態を示したフローチャートである。処理ロジックは、プラットフォームファームウェアを更新するリクエストを受信すること処理ブロック300から開始する。このリクエストは、コンピュータシステム全体における任意の種類のファームウェアの更新と関連付けられていてもよい。ある実施形態では、これは、システム管理ファームウェアに関しての更新でもよいし、別の実施形態では、プラットフォーム制御ファームウェアに関しての更新でもよいし、更に別の実施形態では、コンピュータシステム/プラットフォームに格納されるその他の種類及びロケーションのファームウェアに関する更新であってもよい。次の処理ロジックでは、システムメモリ内のロケーションに、リクエストと関連付けられたファームウェアイメージをコピーする処理ブロック302。イメージは、更新の種類に応じて、ファームウェア全部であってもよいし、ファームウェアの一部分であってもよい。多くの実施形態では、イメージは暗号化されている。暗号化されたイメージは、パブリックキーを有効に利用する非対称アルゴリズムを使用して暗号化されていてもよい。パブリックキーは、システムが構築された時又はその後で、コンピュータシステムに備えられてもよい。パブリックキーは、システム管理ファームウェア記憶部の安全な部分のような、再書き込みができないメモリロケーションにセキュアに格納されてもよい。図3Aに戻り、ファームウェアイメージがシステムメモリにコピーされると、処理ロジックは、コンピュータシステムの安全なロケーションに格納された利用可能なパブリックキーを使用して、イメージの認証を行う処理ブロック304。図3Aのブロック304は、システム内で起動されたACM内のACモードで動作するロジックによって処理が行われてもよい。ACMの呼び出しについては、図1を参照して上記で説明した。多くの実施形態では、認証プロセスには、システムに格納された不変パブリックキーが、イメージに含まれるパブリックキーと一致するかの検証が含まれる。コンピュータシステムのセキュリティプロセスを利用して、イメージの検証を行ってもよい。イメージの真正を決定するプロセスには幾つかの形態があるが、望ましいのは、イメージが改ざんされたものでないことが確かめられることである。処理ロジックは、イメージが真正のものであると認証されたか否かを確認する処理ブロック306。図示されていないが、ファームウェアイメージは、暗号化された形式で送信され、認証の前にイメージの暗号解読を可能とするべくACMがアクセス可能な更なる暗号解読キーが必要となる。イメージの認証が不成功であった場合は、処理ロジックは、エラーメッセージをCPUに送信する処理ブロック308。例えば、処理ロジックは、イメージの認証に失敗/問題があったことを伝達する割り込みを発行してもよい。イメージの認証が成功した場合にはすなわち、イメージが真正であると認証された場合、処理ロジックは、図3Bに示されるプロセスへと進む。図3Bは、安全なプラットフォームファームウェア更新プロセスの続きの一実施形態を示すフローチャートである。プロセスフローのこの時点で、処理ロジック例えば、ACM内のロジックは、プラットフォームファームウェア記憶ロケーションのロックを解除して、書き込みを可能にする処理ブロック310。プラットフォームファームウェア記憶ロケーションが、図1を参照して上記で説明したようなシステム管理ファームウェア記憶ロケーションである実施形態では、ACM内のロジックは、イメージの真正を検証する時に図3Aのブロック306、PCHのロックを解除して、システム管理ファームウェア記憶ロケーションへの書き込みを可能にする。プラットフォームファームウェアが制御記憶部に存在するような別の実施形態では、ファームウェア記憶部への書き込みを行うには別のプロセス図4で説明する制御ファームウェアベースのプロセスが必要となる。図3Bに戻り、プラットフォームファームウェア記憶ロケーションのロックが解除されると、処理ロジックは、ファームウェアイメージを、プラットフォームファームウェア記憶ロケーションにコピーする処理ブロック312。そして、認証されたイメージがプラットフォームファームウェア記憶ロケーションにコピーされた後、処理ロジックは、ファームウェア記憶ロケーションをロックして、これ以上書き込みが許可されないようにし処理ブロック314、プロセスが終了する。上記で説明したように、プラットフォームファームウェア記憶部のロックを解除するプロセスは、ファームウェア記憶部が位置する場所に依存する。プラットフォームファームウェア記憶部がシステム管理ファームウェア記憶ロケーションである場合、ロック解除プロセスは、CPUロックレジスタ図1の150に書き込みを行うべく、ACモードで実行されるACM図1の138を必要としてもよい。多くの実施形態では、CPUロックレジスタは、CPU図1の102アンコア内のMSRである。ACモードで動作するACMによってのみ発行される特別な書き込みMSRWRMSRコマンドは、CPUロックレジスタへの書き込みを行う。そしてプロセスは、PCH図1の118に存在するPCHロックレジスタ図1の144を対象とする特別な書き込みを生成する。PCHロックレジスタを対象とする書き込みコマンドは、PCHに、システム管理ファームウェア記憶部図1の130への書き込み能力を開放させてもよく、それにより、ACMが、新たなシステム管理ファームウェアイメージを、正しい記憶ロケーションに書き込みを行うことができる。イメージの書き込みが完了した時点で、同様なWRMSRコマンドを同じCPUロックレジスタに発行して、システム管理ファームウェア記憶部をロックすることができる。図4は、コンピュータシステムの制御ファームウェを安全に更新するプロセスの一実施形態を示したフローチャートである。多くの実施形態において、図4に示すプロセスフローは、対象のコントローラの処理ロジックに加えて、ACM/CPUに対する処理ロジックも含む。ロジックが処理する各ブロックを明確に示すために、図4の左側点線の左側は、CPU/ACMに関するロジックを表し、図4の右側点線の左側は、コントローラに関するロジックを表す。CPUベースの処理ロジックは、コンピュープラットフォームのブートシーケンスの間に、一時的パスワードを生成する段階から開始する処理ブロック400。一時的パスワードは、現在のシステム管理ファームウェアにより、又は、コンピュータシステム内のその他のロジックにより、ランダムに生成されてもよい。ランダムなパスワードは、CPU内のACMのみがアクセス可能な記憶ロケーションに又はCPUがアクセス可能な別の安全な記憶ロケーションに、処理ロジックによってローカルに格納される処理ブロック402。例えば、CPU内の一時的なパスワードレジスタ図1の152は、生成された一時的なパスワードを格納してもよく、このレジスタは、ACモードで動作するACMのみがアクセス可能であってもよい。CPUベースの処理ロジックは、この一時的なパスワードを、コントローラに送信する処理ブロック404。制御処理ロジックは、システムブートシーケンスの間に、一時的なパスワードを受信する処理ブロック406。この時点で、制御処理ロジックは、システムがまだ通常オペレーションモードに入っておらず、パスワードが改ざんされる機会がないことから、一時的なパスワードが有効であると仮定する。そして、処理ロジックは、受信した一時的なパスワードをローカルに格納する処理ブロック408例えば、図1の一時的なパスワード記憶部154に格納されてもよい。この時点で、コントローラ内の処理ロジックは、ファームウェア更新リクエストが受信されるまで待機する。図3Aに戻り、エンティティは、プラットフォームファームウェアの更新をリクエストしてもよく図3Aの300、CPU/ACMベースの処理ロジックは、図3Aに関するブロックの処理を行い、新しいコントローラ固有のプラットフォームファームウェアイメージの認証を行う。イメージが認証されると、ACM処理ロジックは、図4の次のブロックの処理を行い、リクエストに一時的なパスワードを含む制御ファームウェアの更新リクエストをコントローラに送信する処理ブロック410。制御ロジックは、CPUによって格納された現在の一時的パスワードと共にファームウェア更新リクエストを受信する処理ブロック412。次に、制御処理ロジックは、リクエストと共に受信した現在の一時的パスワードと、ブートプロセスの間に受信した信頼性の高い一時的パスワードとを比較する処理ブロック414。比較の結果パスワードが一致する場合には処理ブロック416、制御処理ロジックは、ACMによる制御ファームウェア記憶部への書き込みを許可して、更新応答の承諾をACMに送信する処理ブロック418。ACMベースの処理ロジックは、図3Bの処理ブロックにおけるコントローラ更新を続けることにより、更新処理を続けることができる。パスワードが一致しなかった場合には、制御処理ロジックは、ACMに拒否応答を送信する同時に、制御ファームウェア記憶部への書き込みの禁止を継続する。ACMベースのロジックは、拒否応答を受信し、エラーシーケンスを開始する処理ブロック422。エラーシーケンスは、割り込みの生成、エラーフラグの設定、システムのシャットダウン、又は、管理エンジン図1の128を介してエラーに関する帯域外情報をITアドミニストレータに送信する等、様々な形態であってもよい。本発明の実施形態の要素は、機械実行可能命令を格納する機械可読媒体として提供されてもよい。機械可読媒体としては、これに限定されないが、例えば、フラッシュメモリ、光学ディスク、コンパクトディスクリードオンリーメモリCD-ROM、デジタル多用途ビデオディスクDVDROM、ランダムアクセスメモリRAM、消去可能-プログラム可能リードオンリーメモリEPROM、電気的消去可能-プログラム可能リードオンリーメモリEEPROM、磁気又は光学カード、伝播媒体、又は、電子命令を格納するのに好適なその他の種類の機械可読媒体が含まれる。上記の記載及び/又は特許請求の範囲では、備えるcomprise、含むinclude及びこれらの派生語は、互いに同義語として使用されている場合がある。また、本明細書及び特許請求の範囲では、結合されたcoupled及び接続されたconnected並びにこれらの派生語が使用されることがある。この2つの言葉は、同義語として使用されているのではない。特定の実施例において、接続されたconnectedは、2つ又は2つ以上の要素が物理的に又は電気的に直接互いに接触していることを示すのに使用され、連結されたcoupledも、2つ又は2つ以上の要素が、物理的に又は電気的に直接互いに接触していることを示すが、連結されたcoupledは、2つ又は2つ以上の要素が、協動又は相互作用しているが、直接接していない場合も示す。上記の記載において、本発明の実施形態を説明するのに特定の用語が使用されている。例えば、ロジックという言葉は、1以上の機能を実行するハードウェア、ファームウェア、ソフトウェア又はこれらの任意の組み合わせを表している。例えば、ハードウェアの例としては、これに限定されないが、集積回路、有限ステートマシーン又は組み合わせロジックが含まれる。集積回路は、マイクロプロセッサのようなプロセッサ、用途特定IC、デジタル信号プロセッサ、マイクロコントローラ等の形態であってもよい。本明細書において、本発明の一実施形態又はある実施形態との表現は、その実施形態に関連する特定の特徴、構造及び特性が、少なくとも本発明の実施形態の一つに含まれていることを意味する。したがって、本明細書中の様々な箇所で使用されている一実施形態又はある実施形態という表現は、必ずしも同一の実施形態を示していない。また、本発明の1以上の実施形態において、特定の特徴、構造又は特性を好適に組み合わせてもよい。同様に、上記の本発明の実施形態の記載では、様々な発明の側面の1以上の理解を助ける開示を短くする目的から、様々な特徴が、1つの実施形態、その図面及び説明に組み込まれている。このような開示の方法は、特許請求される特徴が特許請求の範囲に明確に記載される以上の特徴を必要とするとの意図を反映したものではない。添付の特許請求の範囲に反映されるように、本発明の側面は、上記で開示した1つの実施形態の全ての特徴よりも少ない。したがって、添付の特許請求の範囲は、明確に詳細な説明に組み込まれる。