(57)【特許請求の範囲】
【請求項１】
コンピュータが実行する方法であって：
第１のコード・モジュールのオーナによって署名されている第１のコード・モジュール、及び第２のコード・モジュールのオーナによって署名されている第２のコード・モジュールを含む署名付きファームウェア・イメージを取得するステップと、
アップデートされた第１のコード・モジュールを取得するステップであって、前記アップデートされた第１のコード・モジュールは、前記第１のコード・モジュールのアップデートされたコード・モジュールを含む、ステップと、
前記アップデートされた第１のコード・モジュールが前記第１のコード・モジュールのオーナによって署名されていることを検証するステップと；
前記アップデートされた第１のコード・モジュールが前記第１のコード・モジュールのオーナによって署名されていることを検証したことに応答して、前記アップデートされた第１のコード・モジュールによって、前記署名付きファームウェア・イメージをアップデートするステップであって、前記署名付きファームウェア・イメージは、アクセスコントロールリストを更に含み、前記アクセスコントロールリストは、前記第１のコード・モジュールのオーナによって前記第１のコード・モジュールがアップデートされ、又は、前記第２のコード・モジュールのオーナによって前記第２のコード・モジュールがアップデートされることを許可する、ステップと；
アクセスコントロールトークンを取得するステップであって、前記アクセスコントロールトークンは、第３のコード・モジュールのオーナのためのパブリックキー、及び前記第３のコード・モジュールのオーナが前記署名付きファームウェア・イメージの第３のコード・モジュールをアップデートする許可を含む、ステップと；
前記アクセスコントロールトークンが前記アクセスコントロールリストから許可されたコード・モジュールのオーナによって署名されていることを検証するステップと；
前記許可されたコード・モジュールのオーナが前記第３のコード・モジュールをアップデートする許可を与えられていることを検証するステップと；
前記第３のコード・モジュールのオーナのための前記パブリックキー、及び前記第３のコード・モジュールのオーナが前記第３のコード・モジュールをアップデートする前記許可を含むよう、前記アクセスコントロールリストをアップデートするステップと；
を有する方法。
【請求項２】
前記第３のコード・モジュールのオーナからアップデートされた第３のコード・モジュールを受信するステップと；
前記アップデートされた第３のコード・モジュールが前記第３のコード・モジュールのオーナによって署名されていることを検証するステップと；
前記アップデートされた第３のコード・モジュールが前記第３のコード・モジュールのオーナによって署名されていることが検証されたことに応答して、前記アップデートされた第３のコード・モジュールによって前記署名付きファームウェア・イメージをアップデートするステップと；
を有する請求項１記載の方法。
【請求項３】
前記署名付きファームウェア・イメージをアップデートする前に、前記第１のコード・モジュールのオーナが、前記第１のコード・モジュールをアップデートする許可を与えられていることを検証するステップ；
を更に有する請求項１記載の方法。
【請求項４】
署名付きファームウェア・イメージを取得するための手段であって、前記署名付きファームウェア・イメージは、第１のコード・モジュールのオーナによって署名されている第１のコード・モジュール、及び第２のコード・モジュールのオーナによって署名されている第２のコード・モジュールを含む、手段と；
アップデートされた第１のコード・モジュールを取得するための手段であって、前記アップデートされた第１のコード・モジュールは、前記第１のコード・モジュールのためのアップデートされたコード・モジュールを含む、手段と；
前記アップデートされた第１のコード・モジュールが前記第１のコード・モジュールのオーナによって署名されていることを検証するための手段と；
前記アップデートされた第１のコード・モジュールが前記第１のコード・モジュールのオーナによって署名されていることが検証されたことに応答して、前記アップデートされた第１のコード・モジュールによって前記署名付きファームウェア・イメージをアップデートするための手段であって、前記署名付きファームウェア・イメージは、アクセスコントロールリストを更に含み、前記アクセスコントロールリストは、前記第１のコード・モジュールのオーナによって前記第１のコード・モジュールがアップデートされ、又は、前記第２のコード・モジュールのオーナによって前記第２のコード・モジュールがアップデートされることを許可する、手段と；
アクセスコントロールトークンを受信するための手段であって、前記アクセスコントロールトークンは、第３のコード・モジュールのオーナのためのパブリックキー、及び前記第３のコード・モジュールのオーナが前記署名付きファームウェア・イメージの第３のコード・モジュールをアップデートする許可を含む、手段と；
前記アクセスコントロールトークンが前記アクセスコントロールリストから許可されたコード・モジュールのオーナによって署名されていることを検証するための手段と；
前記許可されたコード・モジュールのオーナが前記第３のコード・モジュールをアップデートする許可を与えられていることを検証するための手段と；
前記第３のコード・モジュールのオーナのための前記パブリックキー、及び前記第３のコード・モジュールのオーナが前記第３のコード・モジュールをアップデートする前記許可を含むよう、前記アクセスコントロールリストをアップデートするための手段と；
を有するシステム。
【請求項５】
前記第３のコード・モジュールのオーナからアップデートされた第３のコード・モジュールを受信するための手段と；
前記アップデートされた第３のコード・モジュールが前記第３のコード・モジュールのオーナによって署名されていることを検証するための手段と；
前記アップデートされた第３のコード・モジュールが前記第３のコード・モジュールのオーナによって署名されていることが検証されたことに応答して、前記アップデートされた第３のコード・モジュールによって前記署名付きファームウェア・イメージをアップデートするための手段と；
を更に有する請求項４記載のシステム。
【請求項６】
前記署名付きファームウェア・イメージをアップデートする前に、前記第１のコード・モジュールのオーナが前記第１のコード・モジュールをアップデートする許可を与えられていることを検証するための手段；
を更に有する請求項４記載のシステム。
【請求項７】
第１のコード・モジュールのオーナによって署名されている第１のコード・モジュール、及び第２のコード・モジュールのオーナによって署名されている第２のコード・モジュールを含む署名付きファームウェア・イメージを取得するステップと、
アップデートされた第１のコード・モジュールを取得するステップであって、前記アップデートされた第１のコード・モジュールは、前記第１のコード・モジュールのアップデートされたコード・モジュールを含む、ステップと、
前記アップデートされた第１のコード・モジュールが前記第１のコード・モジュールのオーナによって署名されていることを検証するステップと；
前記アップデートされた第１のコード・モジュールが前記第１のコード・モジュールのオーナによって署名されていることを検証したことに応答して、前記アップデートされた第１のコード・モジュールによって、前記署名付きファームウェア・イメージをアップデートするステップであって、前記署名付きファームウェア・イメージは、アクセスコントロールリストを更に含み、前記アクセスコントロールリストは、前記第１のコード・モジュールのオーナによって前記第１のコード・モジュールがアップデートされ、又は、前記第２のコード・モジュールのオーナによって前記第２のコード・モジュールがアップデートされることを許可する、ステップと；
アクセスコントロールトークンを受信するステップであって、前記アクセスコントロールトークンは、第３のコード・モジュールのオーナのためのパブリックキー、及び前記第３のコード・モジュールのオーナが前記署名付きファームウェア・イメージの第３のコード・モジュールをアップデートする許可を含む、ステップと；
前記アクセスコントロールトークンが前記アクセスコントロールリストから許可されたコード・モジュールのオーナによって署名されていることを検証するステップと；
前記許可されたコード・モジュールのオーナが前記第３のコード・モジュールをアップデートする許可を与えられていることを検証するステップと；
前記第３のコード・モジュールのオーナのための前記パブリックキー、及び前記第３のコード・モジュールのオーナが前記第３のコード・モジュールをアップデートする前記許可を含むよう、前記アクセスコントロールリストをアップデートするステップと；
をコンピュータに実行させる命令を有するプログラム。
【請求項８】
前記第３のコード・モジュールのオーナからアップデートされた第３のコード・モジュールを受信するステップと；
前記アップデートされた第３のコード・モジュールが前記第３のコード・モジュールのオーナによって署名されていることを検証するステップと；
前記アップデートされた第３のコード・モジュールが前記第３のコード・モジュールのオーナによって署名されていることが検証されたことに応答して、前記アップデートされた第３のコード・モジュールによって前記署名付きファームウェア・イメージをアップデートするステップと；
をコンピュータに実行させる命令を更に有する請求項７記載のプログラム。
【請求項９】
前記署名付きファームウェア・イメージをアップデートする前に、前記第１のコード・モジュールのオーナが、前記第１のコード・モジュールをアップデートする許可を与えられていることを検証するステップ；
をコンピュータに実行させる命令を更に有する請求項７記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータシステムのＢＩＯＳ及びその他のファームウエアコードの配布（デプロイメント：ｄｅｐｌｏｙｍｅｎｔ）に関する。
【背景技術】
【０００２】
［著作権表示］
本明細書に含まれる資料は、著作権により保護される。本著作権の権利者は、何人に対しても特許商標庁の特許出願又は保存資料としての本開示のファクシミリイメージによる複製については許諾する。しかしながら、それ以外については、著作権を留保する。
【０００３】
当初、ＩＢＭ  ＰＣコンパチブルのコンピュータに対して開発されたＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）は、システムＢＩＯＳとしても知られている。そして、ファームウエアインターフェースを定義するデファクトスタンダードとなっている。このＢＩＯＳは、ブート・ファームウェアであり、電源オン時において、ＰＣが実行する最初のコードとして設計されている。ＢＩＯＳの最初の機能は、システムデバイスを特定し、テストし、イニシャライズすることである。システムデバイスとしては、例えば、ビデオディスプレイ・カード、ハードディスク、及びフロッピー（登録商標）ディスクその他のハードウェアが挙げられる。このイニシャライズは、マシンを既知の状態に準備する。これによって、準拠した媒体に保存されているオペレーティングシステムのようなソフトウェアをロードし、実行し、ＰＣをコントロールすることができる。この処理は、ブート、又はブートアップ（ブートストラップの略）として知られている。
【０００４】
ＢＩＯＳプログラムは、標準入出力機能の小規模なライブラリを提供する。これは、キーボード、テキストディスプレイ機能などの周辺機器を操作し制御するために呼び出される。システムの電源がオンとなった場合、ＢＩＯＳは、システム構成セッティングをチェックし、かつ、ハードウエアコンポーネントとオペレーティングシステムとの間のトランスレータの役割を果たすプログラムをメモリにロードする。例えば、ユーザがキーボードを押すと、信号が、キーボード例外ハンドラに送られる。これは、プロセッサに対して、これが何であるかを示し、かつ、これをオペレーティングシステムに伝える。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＢＩＯＳは、プロセッサが、１６ビットモードで動作していた頃にＩＢＭ  ＰＣのために開発された。そして、メモリのアドレス可能な範囲も１メガバイトに制限されていた。また、ＢＩＯＳのコードもＩＢＭ  ＰＣ  ＡＴハードウェアに依存するものであった。オペレーティングシステムは、その後３２ビットプロセッサに対して開発され、ＢＩＯＳから提供される１６ビット・ランタイムインターフェースの利用に頼らずに、入出力をハンドリングするデバイスドライバを包含するようになった。このようなデバイスドライバは、通常プラットフォームファームウエアによって提供され、オペレーティングシステムがロードされる前のＢＩＯＳイニシャライズの間にメモリにロードされる。オペレーティングシステムは、多くの周辺機器とインターフェスをとらなければならないため、このようなプラットフォームファームウエアは、通常システム製造業者以外のエンティティによって提供される。多くの関係者が関与するため、ファームウェアの配布は、複雑になっている。
【０００６】
現在のコンピュータの環境におけるマルウエア（悪意あるソフト）の増加により、ファームウェアの検証（ｖｅｒｉｆｙ）が重要となってきている。デジタル署名、すなわちデジタル署名方式は、デジタルやドキュメントの真正性を示すための数学的方式である。有効なデジタル署名は、受領者に対して、そのメッセージが既知の発信者により作成されたこと、及び途中でそれが改変されていないことを信じさせるものである。デジタル署名は、ソフトウェアの配布においてよく用いられる。そして、ファームウェア・イメージの配布においても、デジタル署名を用いることが望まれる。
【課題を解決するための手段】
【０００７】
本発明の実施例は、サイン付きルートファームウエアイメージを配布（ｄｅｐｌｏｙ）するための方法、装置、システム、コンピュータプログラム、及びコンピュータプログラムプロダクトを提供する。これには、システム配布チャネルにおける異なるエンティティ（主体）により署名されているコード・モジュールが含まれる。
【０００８】
一実施例において、方法は、第１のコードのオーナによって署名されている第１のコード・モジュール、及び第２のコードのオーナによって署名されている第２のコード・モジュールを含む署名付きファームウェア・イメージを取得するステップを含む。本方法は、更に、アップデートされた第１のコード・モジュールを取得するステップであって、前記アップデートされた第１のコード・モジュールは、前記第１のコード・モジュールのアップデートされたコードを含む、ステップと、前記アップデートされた第１のコード・モジュールが前記第１のコードのオーナによって署名されていることを検証したことに応答して、前記アップデートされた第１のコード・モジュールによって、前記署名付きファームウェア・イメージをアップデートするステップと；前記アップデートされた第１のコード・モジュールが前記第１のコードのオーナによって署名されていることを検証するステップと；を含む。前記署名付きファームウェア・イメージは、前記第１のコードのオーナによって前記第１のコード・モジュールによりアップデートし、かつ、前記第２のコードのオーナによって前記第２のコード・モジュールによりアップデートすることを許可するアクセスコントロールリストを更に含む。
【０００９】
本発明は、更に、アクセスコントロールトークンを取得するステップであって、前記アクセスコントロールトークンは、第３のコードのオーナのためのパブリックキー、及び前記第３のコードのオーナが前記署名付きファームウェア・イメージの第３のコード・モジュールをアップデートする許可を含む、ステップと；前記アクセスコントロールトークンが前記アクセスコントロールリストから許可されたコードのオーナによって署名されていることを検証するステップと；前記許可されたコードのオーナが前記第３のコード・モジュールをアップデートする許可を与えられていることを検証するステップと；前記第３のコードのオーナのための前記パブリックキー、及び前記第３のコードのオーナが前記第３のコード・モジュールをアップデートする前記許可を含むよう、前記アクセスコントロールリストをアップデートするステップと；を有する。
【００１０】
本発明は、更に、前記第３のコードのオーナからアップデートされた第３のコード・モジュールを受信するステップと；前記アップデートされた第３のコード・モジュールが前記第３のコードのオーナによって署名されていることを検証するステップと；前記アップデートされた第３のコード・モジュールが前記第３のコードのオーナによって署名されていることが検証されたことに応答して、前記アップデートされた第３のコード・モジュールによって前記署名付きファームウェア・イメージをアップデートするステップと；を有する。
【図面の簡単な説明】
【００１１】
【図１】従来技術における署名付きファームウェア・イメージのブロック図である。
【図２Ａ】本発明の一実施例に従った、ルートファームウエアコードのオーナの署名付きファームウェア・イメージのブロック図である。
【図２Ｂ】本発明の一実施例に従った、ルートファームウエアコードのオーナのアクセスコントロールリストを示す図２Ａのブロック図である。
【図２Ｃ】本発明の一実施例に従った、ルートファームウエアコードのオーナ、及びＯＥＭファームエアコードのオーナのファームウェア・イメージを示すブロック図である。
【図２Ｄ】本発明の一実施例に従った、ＯＥＭファームエアコードのオーナのアクセスコントロールリストを示す図２Ｃのブロック図である。
【図２Ｅ】本発明の一実施例に従った、ルートファームウエアコードのオーナ、ＯＥＭファームエアコードのオーナ、及びチャネルディストリビュータファームエアコードのオーナのファームウェア・イメージを示すブロック図である。
【図２Ｆ】本発明の一実施例に従った、チャネルディストリビュータファームエアコードのオーナのアクセスコントロールリストを示す図２Ｅのファームウェア・イメージのブロック図である。
【図３】図２Ａないし図２Ｆの署名付きファームウェア・イメージの署名、及び権限の委任のプロセスを示すブロック図である。
【図４】本発明の一実施例に従った、図２Ａないし図２Ｆ及び図３の署名付きファームエアイメージのアクセスコントロールリストのアップデートの方法を示すフローチャートである。
【図５】本発明の一実施例に従った、図２Ａないし図２Ｆ及び図３の署名付きファームエアイメージのアップデートの方法を示すフローチャートである。
【図６】本発明の一実施例に従った、複数のテナントにより署名されているファームウェア・イメージを可能とするよう構成されたシステムのブロック図である。
【発明を実施するための形態】
【００１２】
本発明は、従来のＢＩＯＳプラットフォームファームウエアの一体構造のイメージアップデートプロセスを改善するものであり、また、各自のファームウエアコードモジュールに異なるオーナが署名をすることを可能とする。本発明は、特定のＢＩＯＳ、プラットフォームコードモジュール、ドライバ、又はアプリケーションに対するアップデートの実行を可能とする。プラットフォームファームウエアが高度になり、そして、セキュリティの側面等の重要な機能を提供することが必要になったため、ＢＩＯＳやプラットフォームファームウエアの障害は、迅速に取り除かなければならない。そして、これらは、システムのフラッシュメモリ領域の全ＢＩＯＳやプラットフォームファームウエアの単一のイメージを製造業者に要求するのではなく、エンタープライズマネージメントサーバにより提供することが必要である。
【００１３】
本明細書において、本発明の「一実施例」、「実施例」とは、実施例に則して記載された特定の特徴、構造、特性が、少なくとも１つの実施例に含まれることを意味する。したがって、明細書全体に亘って「一実施例において」、「一実施例に従って」等の記載は、必ずしも、同じ実施例を参照しているわけではない。
【００１４】
説明において、本発明をより良く理解するために、具体的詳細が明記されている。なお、当業者は、明細書における詳細な説明なくして、実施例を実施することができる。更に、発明を不明りょうにしないために、周知の技術の説明は詳細に行っていない。本明細書には、様々な実施例が提示されている。これらは、本発明の単なる特定の実施例に過ぎない。本発明の技術的範囲は示された実施例に限定されることはない。
【００１５】
マルウエアの高度化に伴って、ファームウェアのイメージなどのシステムソフトウエアのプロバイダは、特定のバージョンのファームウェア・イメージが真正であり、改変されたものでないことを証明することが望まれている。このような証明は、暗号方式に従って、ファームウエアイメージファイルのデジタル署名により提供される。例えば、Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ（ＲＳＡ）暗号化アルゴリズムが挙げられる。これは、データの暗号化及び署名のために、パブリック及びプライベートキーを提供する。本明細書において記載された発明は、ＲＳＡに基づくデジタル署名アルゴリズムに限定されない。すなわち、信憑性を証明するデジタル署名を提供するあらゆる方法が、本発明の技術的範囲に属することは言うまでもない。
【００１６】
デジタル署名方式は、典型的には３つのアルゴリズムから構成されている。（１）可能なプライベートキーのセットから一律にアットランダムにプライベートキーを選択するキー生成アルゴリズム。このアルゴリズムは、プライベートキー及び対応するパブリックキーを出力する。（２）メッセージ及びプライベートキーが与えられると、署名を処理する署名アルゴリズム。（３）メッセージ、パブリックキー及び署名が与えられると、信憑性を求められたそのメッセージを受け入れるか却下する署名検証アルゴリズム。二つの中心的なプロパティが必要である。第１は、固定されたメッセージから生成された署名、及び、プライベートキーは、対応するパブリックキーを用いることによって、そのメッセージの信憑性を証明しなければならない。第２に、プライベートキーを保持しない者に対して有効な署名を生成することは、計算上実行不可能である。
【００１７】
図１は、従来の署名付きファームウェア・イメージのブロック図を示す。ルートファームエアイメージ１１０は、単一のエンティティのプライベートキー１２０によって署名される。プライベートキー１２０のオーナのみが、ルートファームウエア１１０をアップデートできる。例えば、システム製造業者がルートファームウエアイメージ１１０を、ルート製造業者のプライベートキー１２０で署名したと仮定する。もし、ルートファームウエアの証明後に、配布の連鎖の中で他のエンティティ（例えば、ＯＥＭや、チャネルカスタマ）が、ルートファームエアイメージ１１０内のモジュールへのアップデートが必要となった場合、これらのエンティティは、自身のカスタマイズしたファームウエアイメージコードモジュールを、プライベートキー１２０のオーナに提供し、次回のルートファームウエアイメージ１１０のリリースに含めてもらう必要がある。このような、インプリメンテーションは、カスタマイズされたファームエアイメージモジュールを維持するためのインフラストラクチャを必要とする。そして、アップデートされたルートファームウエアイメージ１１０を外部のエンティティのスケジュールに合わせなければならない。
【００１８】
プライベートキー１２０のオーナ以外のエンティティにより提供されるカスタマイズされたファームウエアイメージコードモジュールを許し、セキュリティを破ることは、ルートファームウエアイメージ１１０全体のセキュリティを犠牲にすることとなる。このようなセキュリティを破ることは、プライベートキー１２０のオーナのみが訂正できる。このため、今日のインプリメンテーションの多くは、配布チャネルの下流の端のエンティティによってのみ署名される。システム製造業者が提供するルートファームウエアイメージコードモジュール、及び／又は、ＯＥＭは、上述の問題を回避するために、しばしば署名なしとなる。しかしながら、多くのファームウエアイメージコードモジュールのプロバイダによるデジタル署名が無いと、システムのエンドユーザは、そのファームエアイメージが信用のおけるものであるかを検討しなくてはならない。
【実施例】
【００１９】
図２Ａは、本発明の実施例に従った、ルートファームウエアイメージコードのオーナによって署名されているファームエアイメージのブロック図である。この例では、ルートファームウエアイメージの最初のオーナ、例えば、システム製造業者（以下「Ｒｏｏｔ（ルート）」と言う。）は、ルートプライベートキー２２によって、ファームエアイメージコードモジュールの各々（５つのファームエアボリューム（ＦＶ１  ２１１、  ＦＶ２  ２１３、  ＦＶ３  ２１５、  ＦＶ４  ２１７、及びＦＶ５  ２１９））に署名をした。コード・モジュールに署名をすることは、デジタル署名をコード・モジュールに添付することである。本明細書における実施例において、コード・モジュールに対する署名は、コード・モジュールを含むファームエアボリュームに関連した署名を記載することで示す。同様に、定められたコード・モジュールをアップデートする機関は、コード・モジュールを含むファームエアボリュームをアップデートする機関として示される。当業者は、１以上のコード・モジュールが定められたファームエアボリュームに含まれることを理解する。そして、ファームエアボリュームの異なるコード・モジュールは、異なる署名、及び／又は、アップデート機関を持つ。なお、単純化するために、コード・モジュールとファームエアボリュームとは、本明細書では、１対１の関係を有するよう記載される。
【００２０】
表２３０Ａは、ルートコードのオーナ「Ｒｏｏｔ」のためのパブリックキー２３１、及びコードのオーナ「Ｒｏｏｔ」のためのアクセスコントロールリスト（ＡＣＬ）２３２を含むセキュリティ情報を提供する。ＡＣＬ２３２は、パブリックキー２３１に所有されているファームエアイメージコードモジュール（すなわちファームウエアボリューム）を示す。更に詳細なアクセスコントロールリスト２３２は、図２Ｂに示されている。
【００２１】
図２Ｂは、本発明の実施例に従って、ルートファームエアコードのオーナ「Ｒｏｏｔ」のアクセスコントロールリストを示す図２Ａのファームウェア・イメージである。図示された実施例において、ＡＣＬ２３２は、ファームウエアモジュールボリュームＦＶ１  ２１１、ＦＶ２  ２１３、ＦＶ３  ２１５、ＦＶ４  ２１７、及びＦＶ５  ２１９に、コード・モジュールに対するポインタ２３２Ａないし２３２Ｅを含んでいる。これらのポインタは、図３を用いて以下に詳述する。
【００２２】
図２Ｃは、ルートファームウエアコードのオーナ及びＯＥＭファームエアコードのオーナ（以下、「ＯＥＭ」と言う。）の両方により署名されているファームウェア・イメージのブロック図を示す。この実施例では、ファームエアイメージのコード・モジュールの第２のオーナ、例えばシステム製造業者のＯＥＭカスタマで、図２Ａのパブリックキー２２０を持つ者が、カスタマイズされたルートファームウエアモジュールを提供する。例えば、ＯＥＭファームエアコードのオーナは、ブレードサーバ製品としてコンピュータシステムをオファーする。そして、そのコードのオーナ「ＯＥＭ」によって提供されるファームウエアイメージコードモジュールは、ブレードサーバ構成で動作するためのファームウェアを構成（ｃｏｎｆｉｇｕｒｅ）してもよい。
【００２３】
図２Ｃにおいて、第２のオーナ（ＯＥＭ）は、ＯＥＭプライベートキー２４０によって、ファームエアイメージ内の選択されたファームウエアボリューム（以下「ＯＥＭファームウェア・イメージ２１０Ｂ」と言う。）に署名する。この実施例では、ファームエアボリュームＦＶ３  ２１５、及びＦＶ５  ２１９は、ＯＥＭプライベートキー２４０で署名されている。表２３０Ｂは、ＯＥＭコードのオーナ及び、ファームエアイメージコードモジュール（すなわち、ファームエアボリューム）を表すアクセスコントロールリスト（ＡＣＬ）４２１のためのパブリックキー２４１を含む新しいセキュリティ情報を提供する。ＡＣＬ２４２に関する詳細は、図２Ｄを用いて詳述する。
【００２４】
図２Ｄは、本発明の実施例に従った、「ＯＥＭ」のためのアクセスコントロールリストを示す図２Ｃのファームウェア・イメージのブロック図である。例示されたこの実施例において、ＡＣＬ２４２は、二つのファームウエアボリュームＦＶ３  ２１５、及びＦＶ５  ２１９の各々へのポインタ２４２Ｃ及び２４２Ｅを含んでいる。この新しいセキュリティ情報は、表２３０Ｂの一部である。これは、図２Ａ及び図２Ｂを用いて説明したように、ファームエアコードのオーナ「Ｒｏｏｔ」のためのパブリックキー２３１及びＡＣＬ２３２を含む。しかしながら、ＦＶ３  ２１５、及びＦＶ５  ２１９をアップデートするために、ルートファームエアコードのオーナ「Ｒｏｏｔ」ファームエアコードのオーナ「ＯＥＭ」の権限の委任を受けている。そして、ＡＣＬ２３２のポインタ２３２Ｃ及び２３２Ｅは、ＡＣＬ２４２のポインタ２４２Ｃ、及び２４２Ｅにより上書きされる。ファームウエアコードモジュールのアップデートの権限の委任のプロセスについては、図３ないし図５を用いて更に以下に説明する。
【００２５】
図２Ｅは、本発明の実施例に従った、ルートファームエアコードのオーナ「Ｒｏｏｔ」、ＯＥＭファームエアコードのオーナ「ＯＥＭ」、及びチャネルディストリビュータファームエアコードのオーナ「Ｃｈｎｌ」によって署名されているファームエアイメージのブロック図である。この実施例において、ファームウェア・イメージのコード・モジュールの第３のオーナ、例えば、図２Ｂのプライベートキー２４０を所有するＯＥＭのチャネルカスタマは、カスタマイズされたルートファームウエアモジュールを提供した。第３のオーナ「Ｃｈｎｌ」は、ファームエアイメージの一つのファームエアボリューム（以下、チャネルカスタマファームエアイメージ２１０Ｃと言う。）に署名を行った。この実施例において、ファームエアボリュームＦＶ５  ２１９は、Ｃｈｎｌのプライベートキー２５０で署名されている。表２３０Ｃは、新たなセキュリティ情報を提供する。すなわち、これには、チャネルカスタマーオーナ「Ｃｈｎｌ」のパブリックキー２５１、及びパブリックキー２５１により所有されるファームエアイメージコードモジュール（すなわちファームエアボリューム）を示すアクセスコントロールリスト（ＡＣＬ）２５２が含まれる。
【００２６】
図２Ｆは、本発明の実施例に従った、チャネルディストリビュータファームエアコードのオーナ「Ｃｈｎｌ」のためのアクセスコントロールリストを示す図２Ｅのファームエアイメージのブロック図である。示された実施例において、ＡＣＬ２５２は、ファームエアボリュームＦＶ５  ２１９へのポインタ２５２Ｅを含む。この新しいセキュリティ情報は、表２３０Ｃの一部である。これは、図２Ａ及び図２Ｂを参照して説明したルートファームエアコードのオーナ「Ｒｏｏｔ」のパブリックキー２３１及びＡＣＬ２３２、及び、図２Ｃ及び図２Ｄを参照して説明したファームウエアコードのオーナ「ＯＥＭ」のパブリックキー２４１及びＡＣＬ２４２を含む。ポインタ２５２Ｅは、ファームウエアコードのオーナ「Ｒｏｏｔ」のＡＣＬ２３２のポインタ２３２Ｅ、及び、ファームウエアコードのオーナ「ＯＥＭ」のＡＣＬ２４２の２４２Ｅを上書きする。
【００２７】
図３は、図２Ａないし図２Ｆの署名付きファームエアイメージをアップデートするための署名及び権限の委任のためのプロセスを示すブロック図である。最初、ルートファームエアイメージ３１０Ａが、ルートファームエアコードのオーナ「Ｒｏｏｔ」により署名されている。これについては、図２Ａのルートファームエアイメージ２１０Ａを参照して説明した。テーブル３３０Ａは、パブリックキー３３１（プライベートキー３２０を有する「Ｒｏｏｔ」オーナに対応）を持つエンティティが、アクセスコントロールリスト３３２を持つことを示す。アクセスコントロールリスト３３２は、ポインタ３３２Ａないし３３２Ｅを含み、パブリックキー３３１のオーナがコード・モジュールをアップデートすることを可能とする。コード・モジュールは、ファームウエアボリュームＦＶ１  ３１１、ＦＶ２  ３１３、ＦＶ３  ３１５、ＦＶ４  ３１７、及びＦＶ５  ３１９の各々に含まれている。
【００２８】
アクション３．１において、プライベートキー３２０のオーナである「Ｒｏｏｔ」は、ルートファームエアイメージ３１０Ａの後のアップデートを許可するために、署名付きトークン３６０を生成する。トークン３６０に署名することによって、プライベートキー３２０のオーナである「Ｒｏｏｔ」ファームエアコードのオーナは、「Ｒｏｏｔ」パブリックキー３２１をトークン３６０に関連付ける。トークン３６０は、権限が委任されるための情報を含ませるために生成される。例えば、ルートファームエア３１０Ａをアップデートすることを許可されたエンティティのパブリックキー３６２、及び、対応するパブリックキー３６２でアップデートできるルートファームウエアイメージ３１０Ａ内のファームエアモジュールを示すアクセスコントロールリスト３６４が挙げられる。この実施例において、ファームエアコードのオーナ「ＯＥＭ」のパブリックキー３６２が、トークン３６０に含まれている。加えて、ＯＥＭパブリックキー３６２のオーナがファームエアボリュームＦＶ３  ３１５及びＦＶ５  ３１９をアップデートすることを許すアクセスコントロールリスト３６４が含まれている。
【００２９】
アクション３．２において、ルートファームウエアイメージ３１０Ａがアップデートされる前に、トークン３６０によって委任されるべき権限が検証される。ルートファームエアイメージ３１０Ａは、トークン３６０のパブリックキーのオーナ、すなわちトークンパブリックキー３２１のオーナ「Ｒｏｏｔ」が、トークン３６０に含まれるファームエアボリュームをアップデートすることを許可されていることを保証するために、表３３０Ａを調べる。この実施例では、表３３０Ａは、トークン３６０（Ｒｏｏｔ）のパブリックキー３２１のオーナが、表３３０Ａに存在することを保証するために調べられ、そして、トークン３６０のパブリックキー３２１のオーナ（Ｒｏｏｔ）が、ファームエアボリュームＦＶ３  ３１５及びＦＶ５  ３１９をアップデートする権限を持つことが調べられる。
【００３０】
アクション３．３において、トークン３６０のパブリックキー３２１のオーナ（Ｒｏｏｔ）が、ファームエアボリュームＦＶ３  ３１５及びＦＶ５  ３１９をアップデートする権限を持つことが確認された後、ＦＶ３  ３１５、及びＦＶ５  ３１９内のコードがアップデートされ、ＯＥＭファームエアイメージ３１０Ｂが形成される。ＯＥＭファームエアイメージ３１０Ｂ内の表３３０Ｂも、パブリックキー３３３及び対応するアクセスコントロールリスト（ＡＣＬ）３３４として、「ＯＥＭ」ファームウエアコードのオーナのパブリックキーを含むようアップデートされる。表３３０Ｂのアップデートの結果、アクセスコントロールリストは、「Ｒｏｏｔ」ファームエアコードのオーナの３個のポインタ（ＦＶ１  ３１１への３３２Ａ、ＦＶ２  ３１３への３３２Ｂ、及びＦＶ４  ３１７への３３２Ｄ）と、「ＯＥＭ」ファームエアコードのオーナの２個のポインタ（ＦＶ３  ３１５への３３４Ｃ、及びＦＶ５  ３１９への３３４Ｅ）を含むこととなる。
【００３１】
アクション３．４において、「ＯＥＭ」ファームエアコードのオーナ（プライベートキー３４０のオーナ）は、ＯＥＭファームエアイメージ３１０Ｂの後のアップデートを許可するために、署名付きトークン３７０を生成する。トークン３７０に署名することによって、プライベートキー３４０のオーナすなわち、「ＯＥＭ」ファームエアコードのオーナは、「ＯＥＭ」パブリックキー３４１をトークン３７０に関連付ける。権限を委任するための情報を含めるために、トークン３７０が生成される。例えば、ＯＥＭファームエアイメージ３１０Ｂのアップデートを許可されたエンティティのパブリックキー３７２、及び、対応するパブリックキー３７２によってアップデートできるＯＥＭファームエアイメージ３１０Ｂ内のファームウエアモジュールを示すアクセスコントロールリスト３７４が含まれる。この実施例において、ファームウエアコードのオーナ「Ｃｈｎｌ」のパブリックキー３７２が、トークン３７０に含まれている。そして、Ｃｈｎｌパブリックキー３７２のオーナがファームウエアボリュームＦＶ５  ３１９をアップデートすることを許すアクセスコントロールリスト３７４も含まれている。
【００３２】
アクション３．５において、ＯＥＭファームエアイメージ３１０Ｂがアップデートされる前に、トークン３７０による委任される権限が検証されるＯＥＭファームエアイメージ３１０Ｂは、トークン３７０のパブリックキー３４１のオーナが、トークン３７０に含まれるファームウエアボリュームをアップデートすることを許可されていることを保証するために、表３３０Ｂを調べるこの実施例では、表３３０Ｂは、トークン３７０のパブリックキー３４１のオーナ（ＯＥＭ）が、表３３０Ｂに存在することを保証するために調べられ、そして、トークン３７０のパブリックキー３４１のオーナ（ＯＥＭ）が、ファームエアボリュームＦＶ５  ３１９をアップデートする権限を持つことが調べられる。
【００３３】
アクション３．６において、トークン３６０のパブリックキーのオーナ（ＯＥＭ）が、ファームウエアボリュームＦＶ５  ３１９をアップデートする権限を持つことが確認された後、ＦＶ５  ３１９内のコードがアップデートされ、チャネルカスタマファームエアイメージ３１０Ｃが形成される。チャネルカスタマファームエアイメージ３１０Ｃ内の表３３０Ｃも、パブリックキー３３５及び対応するアクセスコントロールリスト（ＡＣＬ）３３６として、「Ｃｈｎｌ」ファームエアコードのオーナのパブリックキーを含むようアップデートされる。表３３０Ｃのアップデートの結果、アクセスコントロールリストは、「Ｒｏｏｔ」ファームエアコードのオーナの３個のポインタ（ＦＶ１  ３１１への３３２Ａ、ＦＶ２  ３１３への３３２Ｂ、及びＦＶ４  ３１７への３３２Ｄ）と、「ＯＥＭ」ファームエアコードのオーナの１個のポインタ（ＦＶ３  ３１５への３３４Ｃ）と、「Ｃｈｎｌ」ファームエアコードのオーナの１個のポインタ（ＦＶ５  ３１９への３３６Ｅ）を含むこととなる。
【００３４】
図４は、本発明の実施例に従った、図２Ａないし図２Ｆ及び図３の署名付きファームウェア・イメージのアクセスコントロールリストのアップデートのための方法のフローチャートを示す。図４に示されたステップは、現在のファームエアイメージのオーナによって実行される。すなわち、図３の署名付きファームエアイメージ３１０Ａが、署名付きファーウエアイメージをアップデートする他のエンティティに権限を委任する。ファームウェア・イメージをアップデートする権限を委任するエンティティを、本明細書では以下「委任エンティティ（ｄｅｌｅｇａｔｉｎｇ  ｅｎｔｉｔｙ）」と言う。図２Ａないし図２Ｆの上述の実施例では、図４に示されたステップは、アクション３．２及び３．３において「ＯＥＭ」ファームウエアコードのオーナに権限を委任するために、「Ｒｏｏｔ」ファームエアコードのオーナによって実行される。同様に、図４のステップは、アクション３．５及び３．６において、「Ｃｈｎｌ」ファームウエアコードのオーナに権限を委任するために、「ＯＥＭ」ファームウエアコードのオーナによって実行される。図４のステップは、現在のファームエアイメージのアクセスコントロールリストのアップデートのために実行される。例えば、ルートファームエアイメージ３１０Ａのアクセスコントロールリスト３３０Ａ、又はＯＥＭファームエアイメージ３１０Ｂのアクセスコントロールリスト３３０Ｂが挙げられる。
【００３５】
「アクセスコントロール（ＡＣ）転送トークンの取得」ステップ４１０において、図３のアクセスコントロールトークン３６０又はトークン３７０が委任エンティティから取得される。図２Ａないし図２Ｆ及び図３を参照して既に述べたように、図３のアクセスコントロールトークン、例えばトークン３６０又はトークン３７０は、配布チャネル（ｄｉｓｔｒｉｂｕｔｉｏｎ  ｃｈａｎｎｅｌ）において、一つのエンティティによって生成され、配布チャネルの次のエンティティを許可し、定められたバージョンのファームエアイメージを修正する。このアクセスコントロールトークンは、委任エンティティのプライベートキーを使用することによって署名され、そして、委任エンティティのパブリックキーが、すなわち、アクセスコントロールトークンに関連付けられる。配布チャネルにおける委任エンティティからアクセスコントロールトークンが取得されると、制御は、「委任エンティティの識別、及び委任エンティティのパブリックキーの署名とＡＣＬとの照合」ステップ４２０に移行する。
【００３６】
「委任エンティティの識別、及び委任エンティティのパブリックキーの署名とＡＣＬとの照合」ステップ４２０において、委任エンティティが、アクセスコントロールトークンに署名したエンティティとして識別される。図３の実施例のアクション３．２を実行するときに、委任エンティティは、「Ｒｏｏｔ」ファームウエアコードのオーナである。アクセスコントロールトークンに関連するパブリックキーが、ファームウェア・イメージのアクセスコントロールリストに対してアップデートする権利を委任されていると判断されるパブリックキーと照合される。アクセスコントロールトークンに関連するパブリックキーが、ファームウェア・イメージのアクセスコントロールリストに見いだされる場合、制御は、「ＡＣ転送トークンの署名の検証」ステップ４３０に移る。
【００３７】
「ＡＣ転送トークンの署名の検証」ステップ４３０において、委任エンティティのパブリックキーがアクセスコントロールトークンの署名の検証に用いられる。この署名の検証を実行するために、署名付きアクセスコントロールトークンからハッシュ値が計算されてもよい。パブリックキーは、デジタル署名及び署名付きデータの復号にも用いられてもよい。そして、復号されたデータから別のハッシュ値が計算できる。２つの計算されたハッシュ値が一致した場合、デジタル署名が有効であると認識してもよい。アクセスコントロールトークンの署名が検証された後、制御は、「ＡＣＬの変更を要求するコード・モジュールの特定」ステップ４４０に移る。
【００３８】
「ＡＣＬの変更を要求するコード・モジュールの特定」ステップ４４０において、権限が委任されることになっているファームウエアボリュームが特定される。アクション３．２の例で、アクセスコントロールトークン３６０において特定されたファームウエアボリュームは、ボリュームＦＶ３  ３１５、及びＦＶ５  ３１９であった。ファームエアボリュームが特定されると、制御は、「委任エンティティがＡＣを変更する権限があることの検証」ステップ４５０に移行する。
【００３９】
「委任エンティティがＡＣを変更する権限があることの検証」ステップ４５０において、委任エンティティは、現在のファームウェア・イメージのアクセスコントロールリストを変更する権限を有しているか否かが判断される。上述したように、委任エンティティである、「Ｒｏｏｔ」ファームウエアコードのオーナは、ファームエアボリュームＦＶ１  ３１１ないしＦＶ５  ３１９のファームウエアボリュームのアクセスコントロールリストのオーナであることが指定されている。したがって、委任エンティティは、これらのファームウエアボリュームのアクセスコントロールリストを変更する権限を有する。制御は、「ＡＣＬのアップデート：新しいエンティティのパブリックキーの挿入とコード・モジュールのＡＣＬのアップデート」ステップ４６０に移る。
【００４０】
「ＡＣＬのアップデート：新しいエンティティのパブリックキーの挿入とコード・モジュールのＡＣＬのアップデート」ステップ４６０において、権限が委任されるエンティティ（この実施例の場合には、「ＯＥＭ」ファームウエアコードのオーナ）のパブリックキーが、アクセスコントロールリストに追加され、そして、ファームウエアボリュームＦＶ３  ３１５及びＦＶ５  ３１９のアクセスコントロールリストがアップデートされる。ファームウエアボリュームＦＶ３  ３１５、及びＦＶ５  ３１９をアップデートする権限は、「ＯＥＭ」ファームウエアコードのオーナに委任されている。
【００４１】
図５は、本発明の実施例に従った、図２Ａないし図２Ｆ及び図３の署名付きファームウェア・イメージのアップデートの方法のフローチャートを示す。「署名付きモジュールの処理」ステップ５１０において、現在のファームウェア・イメージ、すなわちルートファームウエアイメージ３１０Ａは、署名付きモジュールの処理のリクエストを受け付ける。署名付きモジュールの処理は、例えば署名付きモジュールに含まれる複数のファームウエアモジュールの情報のラップを解き（ｕｎｗｒａｐｐｉｎｇ）、及び／又は、署名付きモジュールの署名に使われるキーのラップを解く。署名付きコード・モジュールの各々は、図５のステップに基づいて処理される。制御は、「パブリックキーの署名とＡＣＬとの照合、及びアップデートするエンティティの識別」ステップ５２０に移行する。
【００４２】
「パブリックキーの署名とＡＣＬとの照合、及びアップデートするエンティティの識別」ステップ５２０において、署名付きモジュールを署名するのに用いたプライベートキーに対応するパブリックキーが、現在のファームウェア・イメージのアクセスコントロールリストと比較され、アップデートするエンティティが識別される。署名付きモジュールのパブリックキーが、現在のファームウェア・イメージのアクセスコントロールリストに見いだされる場合、制御は、「モジュールの署名の検証」ステップ５３０に移行する。
【００４３】
「モジュールの署名の検証」ステップ５３０において、モジュールの署名が検証される。署名の検証を実行するために、署名付きモジュールからハッシュ値が計算されてもよい。このパブリックキーは、デジタル署名の復号及び署名付きデータの復号に用いられてもよい。そして、復号されたデータからハッシュ値が計算できる。２つの計算されたハッシュ値が一致した場合、デジタル署名は、有効であると判断してもよい。モジュールの署名が検証された後、制御は、「アップデートのためのコード・モジュールの特定」ステップ５４０に移行する。
【００４４】
「アップデートのためのコード・モジュールの特定」ステップ５４０で、現在のファームウェア・イメージにおいてアップデートされるべきファームウエアボリュームのコード・モジュールが特定される。ファームウエアボリュームのコード・モジュールが特定されると、制御は、「アップデートするエンティティが、要求されているコード・モジュールをアップデートする権限を有するかの検証」ステップ５５０に移行する。
【００４５】
「アップデートするエンティティが、要求されているコード・モジュールをアップデートする権限を有するかの検証」ステップ５５０において、アップデートするエンティティが、要求されているファームウエアボリュームをアップデートする権限を有するか否かが判断される。アップデートするエンティティが権限を有する場合、制御は、「コード・モジュールのアップデート」ステップ５６０に移行する。「コード・モジュールのアップデート」ステップ５６０において、現在のファームウェア・イメージのコード・モジュールがアップデートされる。
【００４６】
図６は、本発明の実施例に従った、ファームウェア・イメージが複数のコードのオーナに署名されることを実現するよう構成されたシステムのブロック図である。プラットフォーム６００は、ホストコンピュータシステムに対応し、デスクトップマネージメントインターフェース（ＤＭＩ）６１１を介してチップセット６２０に接続されたプロセッサ６１０を有する。プロセッサ６１０は、処理パワーをプラットフォーム６００に提供し、シングルコア又はマルチコアプロセッサであってもよく、１つ以上のプロセッサがプラットフォーム６００に含まれてもよい。プロセッサ６１０は、一つ以上のシステムバス、通信パス又はメディア（図示せず）を介して、プラットフォーム６００の他のコンポーネントに接続されてもよい。
【００４７】
チップセット６２０は、管理エンジン（ｍａｎａｇｅａｂｉｌｉｔｙ  ｅｎｇｉｎｅ（ＭＥ））６３０を含む。これは、埋め込まれたマイクロプロセッサとしてインプリメントされ、チップセットプロセッサ６１０とは独立に動作し、プラットフォーム６００の構成及び動作を管理する。一実施例において、プロセッサ６１０は、ホストオペレーティングシステム（図示せず）の指示のもとに動作し、管理エンジン（ＭＥ）６３０は、安全で隔離された環境を提供し、これはホストオペレーティングシステムがアクセスすることができない。一実施例において、管理エンジン（ＭＥ）６３０は、ユーザの信頼性を証明し、周辺デバイスのアクセスを制御し、プラットフォーム６００の記憶デバイスに格納されたデータの保護のための暗号キーを管理する。エンタープライズサービス６７０を用いることにより、管理エンジン（ＭＥ）６３０は、構成のためのエンタープライズ全体のポリシや、例えばプラットフォーム６００のプラットフォームの管理の一貫性を維持する。マルチオーナにより署名されているファームエアアップデートの管理は、管理エンジン（ＭＥ６３０）により実行されるファームウェアとしてインプリメントされてもよい。
【００４８】
ＭＥ６３０と、エンタープライズサービス６７０との通信は、アウトオブバンド通信チャネル６７１を介してなされる。一実施例において、アウトオブバンド通信チャネル６７１は、ホストシステムの管理エンジン（ＭＥ）６３０と、ホストシステムを管理するエンタープライズサービス６７０との安全な通信チャネルである。プラットフォーム６００と、エンタープライズサービス６７０との安全な通信を可能とする暗号化／復号化キーは、チップセット６２０及び管理エンジン（ＭＥ）６３０の製造段階において、図６のフラッシュメモリ６９０に格納されてもよい。
【００４９】
図６に示される実施例において、管理エンジン（ＭＥ）６３０は、管理エンジンコントローラインターフェース（ＭＥＣＩ）６３１を介して、マイクロコントローラ６４０に接続される。一実施例において、マイクロコントローラ６４０は、汎用目的のコントローラであり、ストレージ命令及びその他の高速化された処理を実行する。図示された実施例において、管理エンジン（ＭＥ）６３０は、マイクロコントローラ６４０の動作を制御し、これは更に記憶コントローラ６５０の動作を制御する。記憶コントローラ６５０は、例えば記憶デバイス６５２などの記憶デバイスのためのコントローラであり、マイクロコントローラ６４０及びＭＥ６３０が記憶デバイス６５２に記憶されているデータにアクセスすることを可能とする。
【００５０】
プラットフォーム６００は、更にメモリデバイス例えばダイナミックランダムアクセスメモリ（ＤＲＡＭ）６１２、スタティックランダムアクセスメモリ（ＳＲＡＭ）６２２をチップセット６２０内に有する。そして、フラッシュメモリ６９０及び記憶デバイス６５２は、記憶コントローラ６５０を介してアクセスできる。このようなメモリデバイスは、ランダムアクセスメモリ（ＲＡＭ）及びリードオンリーメモリ（ＲＯＭ）を含んでもよい。開示の目的のため、「ＲＯＭ」の語は、不揮発性メモリデバイス一般を指すものとして用いる。例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＲＯＭ、フラッシュメモリ等が挙げられる。記憶デバイス６５２は、大容量記憶デバイス、例えばＩＤＥハードドライブ、及び／又は、他の媒体、例えばフロッピー（登録商標）ディスク、光記憶、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生物学的記憶装置等がある。
【００５１】
フラッシュメモリ６９０は、フラッシュインターフェース６９１を介して、チップセット６２０からアクセスできる。記憶装置６５２および／またはメモリデバイスＤＲＡＭ６１２、ＳＲＡＭ６２２及びフラッシュメモリ６９０に記憶されるデータは、暗号化されてもよい。
【００５２】
フラッシュメモリ６９０は、プラットフォーム６００をイニシャライズするために使用されるファームウェアを含む。このイニシャライズ・ファームウェアは、システムコンポーネント・ハードウェア（例えばビデオディスプレイ・カード及びハードディスク）及び管理エンジン（ＭＥ）６３０を含む一部の他のハードウェアデバイスを特定し、かつ初期化するために、ＢＩＯＳファームウェア６９２を含む。ＢＩＯＳファームウェア６９２は知られているように、プラットフォーム６００のシステムコンポーネント・ハードウェアを低い能力状態において作動させるため、オペレーティングシステムを含むさまざまなメディアに記憶される他のソフトウェアプログラムがロードされ、実行され、そしてプラットフォーム６００の制御を受ける。ＢＩＯＳファームエア６９２は、ＢＩＯＳ／ＭＥ通信モジュール６３０を含み、これは、ブート処理の間に、管理エンジン（ＭＥ）６３０の初期の構成（ｃｏｎｆｉｇｕｒａｔｉｏｎ）を可能とする。一実施例において、管理エンジン（ＭＥ）６３０は、プラットフォーム６００にオペレーティングシステムがロードされる直前に、通知を受けるために、ＢＩＯＳ／ＭＥ通信モジュール６９３に登録する。この通知は、オペレーティングシステムがロードされる準備のために、管理エンジン（ＭＥ）６３０に特定の命令を実行させる。
【００５３】
フラッシュメモリ６９０は、ネットワークコントローラ６６０を構成するためのネットワークコントローラファームウエア６９５、及びチップセット６２０を構成するためのチップセットファームウエア６９６を含む。フラッシュメモリ６９０は、また、データ領域６９８を含む。実施例において、データ領域６９８は、暗号化され、管理エンジン（ＭＥ）６３０によってのみ読み込まれてもよい。ＢＩＯＳ／ブート・ファームウェアのマルチ・オーナ・マネジメントサービスを提供するためにＭＥ６３０によって使用される情報は、フラッシュメモリ６９０の、又は、記憶装置６５２上のデータ領域６９８に記憶されてもよい。
【００５４】
プロセッサ６１０は、また、付加的なコンポーネント（例えばビデオ・コントローラ、小型コンピューターシステムインターフェース（ＳＣＳＩ）コントローラ、ネットワーク制御装置、ユニバーサルシリアルバス（ＵＳＢ）コントローラ、入力装置（例えばキーボード及びマウス）、など）に、通信できるよう接続されてもよい。プラットフォーム６００は、また、様々なシステムコンポーネントと通信できるよう接続するために、一つ以上のブリッジ又はハブを含んでもよい（例えばメモリーコントローラ・ハブ、入出力（Ｉ／Ｏ）コントローラ・ハブ、ＰＣＩルート・ブリッジ、その他）。本明細書で、「バス」の語は、共用の通信経路、及びポイント・ツー・ポイント経路を参照するものとして用いられる。
【００５５】
一部のコンポーネント（例えばネットワーク制御装置６６０例えば）は、バスによって通信するためのインターフェース（例えばＰＣＩコネクタ）を有するアダプターカードとしてインプリメントされてもよい。実施例において、コントローラが組み込まれたのと同様に、コンポーネント（例えばプログラム可能な、又は、プログラム可能でないロジック・デバイス、又は、アレイ）、特定用途向け集積回路（ＡＳＩＣ）、組み込み型コンピュータ、スマートカード、などを用いて一つ以上のデバイスがインプリメントされてもよい。
【００５６】
本明細書で使用している、「処理システム」の語及び「データ処理システム」の語は、広く単一の機械を含み、又は、一緒に動作する、通信可能に接続された機械、又は、デバイスを含むことを意図している。処理システムの例としては、分散型計算システム、スーパーコンピュータ、高性能コンピューティング・システム、計算クラスタ、メインフレームコンピュータ、ミニコンピュータ、クライアント・サーバ・システム、パソコン、ワークステーション、サーバ、ポータブルコンピュータ、ラップトップコンピュータ、タブレット、電話、パーソナル携帯情報機器（ＰＤＡ）、携帯デバイス、娯楽デバイス（例えばオーディオおよび／またはビデオ・デバイス）及び情報を処理し又は伝送するための、その他のデバイスが挙げられるが、これらに限定されるものではない。
【００５７】
プラットフォーム６００は、従来の入力装置（例えばキーボード、マウス、その他）からの入力によっておよび／または他の機械、生物測定フィードバック、又は、他の入力源、又は、信号から受信される命令によって、少なくともその一部が制御されてもよい。プラットフォーム６００は、一つ以上のリモート・データ処理システム（図示せず）への一つ以上の接続を利用してもよい。例えばネットワーク・インタフェース制御装置（ＮＩＣ）６６０、モデム、又は、他の通信ポート、又は、カップリング、が挙げられる。
【００５８】
プラットフォーム６００は、物理的なおよび／または論理的ネットワーク（例えばローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、イントラネット、インターネット、など）を介して、他の処理システム（図示せず）に相互接続してもよい。ネットワークに含まれる通信は、無線周波数（ＲＦ）、衛星、マイクロ波、ＩＥＥＥ８０２．１１、ブルートゥース、光学で、赤外線、ケーブル、レーザー、その他、を含む、さまざまな有線および／または無線の、ショートレンジ、又は、ロングレンジキャリア及びプロトコルを利用してもよい。
【００５９】
本願明細書において開示されるメカニズムの実施例はハードウェア、ソフトウェア、ファームウェア、又は、この種のインプリメンテーション・アプローチの組合せによってインプリメントされてもよい。本発明の実施例は、少なくとも一つのプロセッサ、データ記憶システム（揮発性の及び不揮発性メモリおよび／または記憶要素を含む））、少なくとも一つの入力装置、及び少なくとも一つの出力装置を含むプログラマブルシステムで実行されるコンピュータプログラムとしてインプリメントされてもよい。
【００６０】
プログラムコードはデータを入力し、本願明細書において記載されている機能を実行し、かつ出力情報を生成するために適用されてもよい。本発明の実施例は、本発明のオペレーションを実行するための命令を格納した機械可読の媒体を含む。また、媒体は、本明細書に記載された構成、回路、装置、プロセッサ、及び／又は、システムの特徴を定義するＨＤＬ等のデザインデータを含む。これらの、実施例は、プログラムプロダクトとも呼ばれる。
【００６１】
このような、機械がアクセス可能な媒体としては、機械又はデバイスが生成または形成したパーティクルの具体的配置、例えばハードディスク、フロッピー（登録商標）ディスクを含む他のいかなる種類のディスク、光ディスク、コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、ＣＤ−ＲＷ、光磁気ディスク、読取り専用メモリ（ＲＯＭ）のような半導体デバイス、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、ＳＲＡＭ、ＥＰＲＯＭ、フラッシュ・プログラマブル・メモリ（ＦＬＡＳＨ）、ＥＥＰＲＯＭ、磁気又は光カード、又は、電子命令を記憶することに適している他のいかなる種類のメディア、が含まれる。
【００６２】
出力情報は、周知の方法で、一つ以上の出力装置に適用されてもよい。本発明を適用する処理システムは、例えば、プロセッサを有するいかなるシステムも含む。すなわち、デジタルシグナルプロセッサ（ＤＳＰ）、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、又は、マイクロプロセッサ、が含まれる。
【００６３】
プログラムは、処理システムによって通信する高水準手順、又は、オブジェクト指向プログラミング言語でインプリメントされてもよい。また、必要に応じて、プログラムは、アセンブリ、又は、機械言語でインプリメントされてもよい。事実、本願明細書に記載されているメカニズムは、技術的範囲に関し、いかなる特定のプログラミング言語にも制限されない。いずれにせよ、言語は、コンパイル、又は、インタープリタ言語であってもよい。
【００６４】
複数の所有者の署名付きファームウェアを配布するための方法とシステムの実施例が、本願明細書において示されている。本発明の具体例が図と共に記載されているが、添付の請求の範囲の範囲内において、多くの変更、バリエーション及び修正を行うことができることは当業者にとって明らかである。したがって、当業者は、変更及び修正は、本発明の広範な内容から逸脱することなく、なされることができると理解するはずである。添付の請求項の技術的範囲は、これらの変更、バリエーション、及び修正を、包含する。
【符号の説明】
【００６５】
６００  プラットフォーム
６１０  プロセッサ
６２０  チップセット
６７０  エンタープライズサービス
６９０  フラッシュメモリ
【図１】
0005301609.tif 000002
【図２Ａ】
0005301609.tif 000003
【図２Ｂ】
0005301609.tif 000004
【図２Ｃ】
0005301609.tif 000005
【図２Ｄ】
0005301609.tif 000006
【図２Ｅ】
0005301609.tif 000007
【図２Ｆ】
0005301609.tif 000008
【図３】
0005301609.tif 000009
【図４】
0005301609.tif 000010
【図５】
0005301609.tif 000011
【図６】
0005301609.tif 000012