(57)【特許請求の範囲】
【請求項１】
ブロードキャストされた管理情報を受信するクライアントデバイスであって、
前記クライアントデバイスのブートプロセス中に前記クライアントデバイスのネットワークインターフェースを分析し、管理サーバによりブロードキャストされたメッセージフラグメントを受信するネットワークモジュールと、
（ｉ）ファウンテンコード復号アルゴリズムを用いて前記メッセージフラグメントを復号して、メッセージの少なくとも一部を生成し、（ｉｉ）前記メッセージの少なくとも一部の生成に応じて、前記メッセージが完全であるか判断するファウンテンコード復号モジュールと、
（ｉ）前記メッセージが完全であるとの判断に応じて、前記メッセージを解析して、前記管理サーバによる前記メッセージに含まれる管理データを特定し、（ｉｉ）前記管理データを前記クライアントデバイスに適用する更新管理モジュールと、
前記メッセージがまだ完全でないとの判断に応じて、オペレーティングシステムを立ち上げるブートターゲットと
を有する、
クライアントデバイス。
【請求項２】
前記ネットワークモジュール、前記ファウンテンコード復号モジュール、及び前記更新管理モジュールを確立するファームウェア環境をさらに有する、
請求項１に記載のクライアントデバイス。
【請求項３】
前記ファウンテンコード復号モジュールはさらに、前記メッセージフラグメントを、前記クライアントデバイスのファームウェアキャッシュに格納し、
前記メッセージフラグメントの復号は、前記ファームウェアキャッシュに格納されたメッセージフラグメントを含み、
前記メッセージが完全であるかの判断は、前記ファームウェアキャッシュに格納されたメッセージフラグメントの復号に応じた、前記メッセージが完全であるかの判断を含む、
請求項１に記載のクライアントデバイス。
【請求項４】
前記ネットワークモジュールは前記ネットワークインターフェースを分析し、前記ファウンテンコード復号モジュールは、前記クライアントデバイスのリブートに応じて、前記メッセージフラグメントを復号し、前記メッセージが完全であるか二度目の判断をする、
請求項３に記載のクライアントデバイス。
【請求項５】
前記ファウンテンコード復号アルゴリズムは、ＬＴコード、Ｒａｐｔｏｒコード、又はＲａｐｔｏｒＱコードを含む、
請求項１ないし４いずれか一項に記載のクライアントデバイス。
【請求項６】
前記管理データは前記メッセージに含まれたバイナリファームウェアイメージを含む、
請求項１ないし４いずれか一項に記載のクライアントデバイス。
【請求項７】
前記管理データは前記メッセージに含まれた証明書取り消しリストを含む、
請求項１ないし４いずれか一項に記載のクライアントデバイス。
【請求項８】
前記証明書取り消しリストはセキュアブートブラックリストを含む、
請求項７に記載のクライアントデバイス。
【請求項９】
前記ネットワークモジュール、前記ファウンテンコード復号モジュール、及び前記更新管理モジュールを含むマネージャビリティエンジンをさらに有する、
請求項１ないし４いずれか一項に記載のクライアントデバイス。
【請求項１０】
前記クライアントデバイスのオペレーティングシステムを実行するインバンドプロセッサをさらに有し、
前記ネットワークモジュールは、前記オペレーティングシステムの実行中に、前記クライアントデバイスのネットワークインターフェースを分析し、前記管理サーバによりブロードキャストされたメッセージフラグメントを受信する、
請求項９に記載のクライアントデバイス。
【請求項１１】
ブロードキャストされた管理情報を受信する方法であって、
クライアントデバイスが、前記クライアントデバイスのブートプロセス中に前記クライアントデバイスのネットワークインターフェースを分析し、管理サーバによりブロードキャストされたメッセージフラグメントを受信することと、
前記クライアントデバイスが、ファウンテンコード復号アルゴリズムを用いて、前記メッセージフラグメントを復号し、メッセージの少なくとも一部を生成することと、
前記クライアントデバイスが、前記メッセージフラグメントの復号に応じて、前記メッセージが完全であるか判断することと、
前記メッセージが完全であるとの判断に応じて、
前記クライアントデバイスが、前記メッセージを解析し、前記管理サーバにより前記メッセージに含まれた管理データを特定することと、
前記クライアントデバイスが、前記管理データを前記クライアントデバイスに適用することと
前記メッセージが完全でないとの判断に応じて、
前記クライアントデバイスが、オペレーティングシステムを立ち上げることと
を含む
方法。
【請求項１２】
前記ネットワークインターフェースを分析すること、前記メッセージフラグメントを復号すること、前記メッセージが完全であるか判断すること、前記メッセージを解析すること、及び前記管理データを適用することは、すべて前記クライアントデバイスのファームウェア環境により実行される、
請求項１１に記載の方法。
【請求項１３】
前記クライアントデバイスが、前記クライアントデバイスのファームウェアキャッシュに前記メッセージフラグメントを格納することと、
前記クライアントデバイスをリブートすることと、
前記クライアントデバイスのリブートに応じて、前記ネットワークインターフェースを分析し、前記メッセージフラグメントを復号し、前記メッセージが完全であるか二度目に判断することとを含み、
前記メッセージフラグメントを復号することは、前記ファームウェアキャッシュに格納されたメッセージフラグメントを復号することを含み、
前記メッセージが完全であるか判断することは、前記ファームウェアキャッシュに格納されたメッセージフラグメントの復号に応じた、前記メッセージが完全であるか判断することを含む、
請求項１１に記載の方法。
【請求項１４】
前記管理データを適用することは、前記メッセージに含まれたバイナリファームウェアイメージをインストールすることを含む、
請求項１１に記載の方法。
【請求項１５】
前記管理データを適用することは、前記メッセージに含まれた証明書取り消しリストを前記クライアントデバイスにインストールすることを含む、
請求項１１に記載の方法。
【請求項１６】
前記ネットワークインターフェースを分析すること、前記メッセージフラグメントを復号すること、前記メッセージが完全であるか二度目に判断することは、すべて前記クライアントデバイスのマネージャビリティエンジンにより実行される、
請求項１１に記載の方法。
【請求項１７】
計算デバイスのインバンドプロセッサが、前記クライアントデバイスのオペレーティングシステムを実行することと、
前記計算デバイスのマネージャビリティエンジンが、前記オペレーティングシステムの実行中に前記クライアントデバイスのネットワークインターフェースを分析し、前記管理サーバによりブロードキャストされたメッセージフラグメントを受信することとを含む、
請求項１１に記載の方法。
【請求項１８】
計算デバイスであって、
プロセッサと、
前記プロセッサにより実行されたとき、前記プロセッサに、請求項１１−１７いずれか一項に記載の方法を実行させる複数の命令を格納したメモリとを有する、計算デバイス。
【請求項１９】
実行されると、計算デバイスに請求項１１−１７いずれか一項に記載の方法を実行させるコンピュータプログラム。
【請求項２０】
請求項１１ないし１７いずれか一項に記載の方法を実行する手段を有する計算デバイス。
【請求項２１】
請求項１９に記載のコンピュータプログラムを格納した一以上の機械読み取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本願は、２０１４年３月２１日出願の米国特許出願第１４／２２２，０１４号（発明の名称「ＢＲＯＡＤＣＡＳＴＩＮＧ  ＭＡＮＡＧＥＭＥＮＴ  ＩＮＦＯＲＭＡＴＩＯＮ  ＵＳＩＮＧ  ＦＯＵＮＴＡＩＮ  ＣＯＤＥＳ」）の優先権を主張するものである。
【背景技術】
【０００２】
企業その他の組織は、コンピュータ、モバイルデバイス、サーバ、及びネットワークインフラストラクチャなどの大規模にインストールされたネットワーク接続マシンを管理することがある。管理されるネットワーク接続デバイスの数は増え続けるだろう。多数のユビキタス組み込みデバイスを含む、より多くのクラスのデバイスにネットワーキング能力が追加されるからである。多くの場合、多くのクラスの被管理デバイスに同一の管理情報が提供されなければならない。例えば、同一のセキュリティ証明書取り消し情報が、企業により管理されたすべてのセキュアブートイネーブル（ｓｅｃｕｒｅ−ｂｏｏｔ−ｅｎａｂｌｅｄ）マシンに提供されるかも知れない。管理情報をインストールする典型的なアプローチには、多くのクラスの均一なマシンに並行して管理情報をマルチキャストすることを含む。しかし、かかるアプローチは、一般的には、送信器と受信器との間の同期を要し、多数の受信デバイスがその動作を（例えば、マルチキャスト情報を同時に受け取ることにより）同期させることが必要になることを意味する。管理情報をインストールする他の典型的なアプローチは、ユーザ要求に応じて、または計画的なダウンロードとして、オペレーティングシステムコンポーネントまたはユーザモードソフトウェアアプリケーションにより、サーバから管理情報をダウンロードすることを含む。しかし、かかるアプローチは、ユーザによる介入を必要とすることがあり、マルウェアや、オペレーティングシステム及び／又はソフトウェアアプリケーションのセキュリティ上の弱点に対して弱いことがある。
【０００３】
レートレスイレージャーコード（ｒａｔｅｌｅｓｓ  ｅｒａｓｕｒｅ  ｃｏｄｅｓ）はファウンテンコード（ｆｏｕｎｔａｉｎ  ｃｏｄｅｓ）としても知られているが、ｋ個の入力シンボルの有限セットを符号化シンボルの無限セットに符号化する。入力シンボルはｋ’個の符号化シンボルから復号されてもよい。ここでｋ’はｋと等しいか、ｋよりも少し大きい。コモンファウンテンコード（ｃｏｍｍｏｎ  ｆｏｕｎｔａｉｎ  ｃｏｄｅｓ）はルビー変換コード（Ｌｕｂｙ  ｔｒａｎｓｆｏｒｍ  ｃｏｄｅｓ（ＬＴ  ｃｏｄｅｓ））とラプターコード（Ｒａｐｔｏｒ  ｃｏｄｅｓ）を含む。ファウンテンコードの一般的な使用は、インターネットプロトコル（ＩＰ）ネットワークにより配信するビデオ信号の符号化を含む。
【図面の簡単な説明】
【０００４】
ここで説明するコンセプトを、添付した図面において、限定ではなく実施例により説明する。説明を単純かつ明確にするため、図に示した要素は必ずしもスケール通りには描いていない。適当であれば、対応または類似する要素を示すため、複数の図面で同じ参照レベルを用いた。
【図１】管理サーバから多数のクライアントデバイスに管理情報をブロードキャストするシステムの少なくとも一実施形態を示す簡略化したブロック図である。
【図２】図１のシステムにより確立される様々な環境の少なくとも一実施形態を示す簡略化したブロック図である。
【図３】図１及び図２の管理サーバにより実行され得る管理情報をブロードキャストする方法の少なくとも一実施形態を示す簡略化したフロー図である。
【図４】図１及び図２のクライアントデバイスにより実行され得るブートプロセスの少なくとも一実施形態を示す簡略化した模式図である。
【図５】図１及び図２のクライアントデバイスにより実行され得る、ブロードキャストされた管理情報を受信する方法の少なくとも一実施形態を示す簡略化したフロー図である。
【図面の詳細な説明】
【０００５】
本開示のコンセプトはいろいろな修正を施したり代替的形式を取ったりすることもできるが、その具体的な実施形態を図面において実施例で示し、ここに詳細に説明する。しかし、言うまでもなく、開示した具体的な形式に本開示を限定する意図ではなく、逆に、本発明は本開示と添付した特許請求の範囲に沿ったすべての修正、等価物及び代替物をカバーするものである。
【０００６】
本明細書において「ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ」、「ａｎ  ｅｍｂｏｄｉｍｅｎｔ」、「ａｎ  ｉｌｌｕｓｔｒａｔｉｖｅ  ｅｍｂｏｄｉｍｅｎｔ」などと言う場合、記載した実施形態が、ある機能、構造、または特徴を含むが、かならずしもすべての実施形態がその機能、構造、または特徴を含んでも含まなくてもよい。さらに、かかる文言は必ずしも同じ実施形態を参照しているとは限らない。さらに、ある機能、構造、または特徴をある実施形態について説明した場合、明示的に記載していようがいまいが、他の実施形態に関するそれらの機能、構造、または特徴に影響が及ぶことは、当業者には自明である。また、言うまでもなく、「少なくとも１つのＡ、Ｂ及びＣ」は、（Ａ）、（Ｂ）、（Ｃ）、（Ａ及びＢ）、（Ａ及びＣ）、（Ｂ及びＣ）又は（Ａ、Ｂ、及びＣ）を意味し得る。同様に、「Ａ、Ｂ又はＣのうちの少なくとも１つ」との形式のリストに含まれるアイテムは、（Ａ）、（Ｂ）、（Ｃ）、（Ａ及びＢ）、（Ａ及びＣ）、（Ｂ及びＣ）又は（Ａ、Ｂ、及びＣ）を意味し得る。
【０００７】
開示した実施形態は、幾つかの場合には、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実装できる。開示の実施形態は、一時的又は非一時的な機械読み取り可能（例えば、コンピュータ読み取り可能）記憶媒体により担われ、又はそれに格納された（一以上のプロセッサにより読み取られ実行され得る）命令として実装することもできる。機械読み取り可能記憶媒体は、機械により読み取り可能な形式で情報を格納又は送信する任意のストレージデバイス、メカニズム、又はその他の物理的構造（例えば、揮発性又は不揮発性メモリ、メディアディスク、又はその他のメディアデバイス）として実施できる。
【０００８】
図中、幾つかの構造的又は方法フィーチャを具体的な構成及び／又は順序で示すかも知れない。しかし、言うまでもなく、かかる具体的な構成及び／又は順序は必須ではない場合がある。むしろ、幾つかの場合には、かかるフィーチャは、例示した図面に示したのとは異なる方法及び／又は順序で構成することもできる。また、ある図面に構造的又は方法フィーチャを含めることは、かかるフィーチャがすべての実施形態において必要であることを意味するのではなく、幾つかの実施形態では、含まれなくてもよいし、他のフィーチャと組み合わされてもよい。
【０００９】
図１を参照して、図示した実施形態では、管理データをブロードキャストするシステム１００は、ネットワーク１０６により通信できる管理サーバ１０２と多数のクライアントデバイス１０４とを含む。使用時、後で説明するように、管理サーバ１０２は、ファウンテンコード（ｆｏｕｎｔａｉｎ  ｃｏｄｅ）としても知られるレートレスイレージャーコード（ｒａｔｅｌｅｓｓ  ｅｒａｓｕｒｅ  ｃｏｄｅ）を用いて符号化された更新された管理データを、ネットワーク１０６により継続的かつ定期的に又は応答的にブロードキャストする。クライアントデバイス１０４は、ブートされるたびに、ネットワーク１０６を分析して、管理サーバ１０２によりブロードキャストされたメッセージフラグメント（ｍｅｓｓａｇｅ  ｆｒａｇｍｅｎｔｓ）を受信する。クライアントデバイス１０４は、十分な数のメッセージフラグメントが受信されると、そのメッセージフラグメントを（使用されているファウンテンコードに適したアルゴリズムを適用して）復号し、インストールする管理データを回復する。クライアントデバイス１０４は、完全なメッセージを復号できる前に、二以上のブートサイクル（ｂｏｏｔ  ｃｙｃｌｅ）にわたりメッセージフラグメントを収集してもよい。開示の技術により、標準化された管理情報を１つの管理サーバ１０２により多数のクライアントデバイス１０４に非同期でブロードキャストできる。言い換えると、クライアントデバイス１０４は、そのブートイベントを同期させる必要はなく、任意の時に、任意の時間だけネットワーク１０６をサンプリング（ｓａｍｐｌｅ）すればよい。このように、クライアントデバイス１０４の管理の性能及び／又はスケーラビリティを改善できる。また、管理データは、クライアントデバイス１０４のオペレーティングシステムが関与することなしに、クライアントデバイス１０４のファームウェアにより受信及びインストールされ得る。それゆえ、オペレーティングシステムの潜在的な弱点、脆弱性、またはソフトウェア欠陥を回避して、管理のセキュリティ及び／又は信頼性を改善できる。
【００１０】
管理サーバ１０２は、本明細書で説明するように、管理情報をブロードキャストするいかなるタイプのデバイスとして実施してもよい。例えば、管理サーバ１０２は、サーバコンピュータ、ワークステーション、デスクトップコンピュータ、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、モバイル計算デバイス、セルラフォン、ハンドセット、メッセージングデバイス、車両テレマティックスデバイス、分散計算システム、マルチプロセッサシステム、コンシューマエレクトロニクスデバイス、及び／又は本明細書に説明の機能を実行するように構成されたその他の任意の計算デバイスとして実施してもよいが、これは限定ではない。さらに、管理サーバ１０２は、１つのサーバ計算デバイスとして実施されてもよいし、複数のサーバ及び関連デバイスの集まりとして実施されてもよい。例えば、幾つかの実施形態では、管理サーバ１０２は、本明細書に説明の機能を実行するクラウドサービスとして実施されてもよい。かかる実施形態では、管理サーバ１０２は、ネットワーク１０６にわたり分散した複数の計算デバイスにより構成され、パブリックまたはプライベートクラウドで動作する「仮想サーバ」として実施され得る。管理サーバ１０２は、図１に示され、１つのサーバ計算デバイスとして実施されたものとして説明するが、言うまでもなく、協働して後で説明する機能を行う複数のデバイスとして実施してもよい。
【００１１】
図１に示したように、例示の管理サーバ１０２は、プロセッサ１２０、入出力サブシステム１２２、メモリ１２４、及びデータストレージデバイス１２６を含む。もちろん、管理サーバ１０２は、他の実施形態では、サーバ及び／又は据え置き型コンピュータに一般的に見つかるようなその他の又は追加的なコンポーネント（例えば、様々な入出力デバイスなど）を含み得る。また、幾つかの実施形態では、例示したコンポーネントのうち一以上は、他のコンポーネントに組み込まれていても良く、又はその一部を構成していても良い。例えば、メモリ１２４又はその部分は、幾つかの実施形態では、プロセッサ１２０に組み込まれていても良い。
【００１２】
プロセッサ１２０は、ここに説明する機能を実行できる任意のタイプのプロセッサとして実施できる。例えば、このプロセッサ１２０は、シングル又はマルチコアプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、又はその他のプロセッサ又は処理／制御回路として実施できる。同様に、メモリ１２４は、ここに説明する機能を実行できる、任意のタイプの揮発性又は不揮発性メモリ又はデータストレージとして実施できる。動作中、メモリ１２４は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバなど、管理サーバ１０２の動作中に用いられる様々なデータとソフトウェアを記憶できる。メモリ１２４は、Ｉ／Ｏサブシステム１２２を介してプロセッサ１２０に通信可能に結合している。Ｉ／Ｏサブシステム１１２は、プロセッサ１２０、メモリ１２４、及び管理サーバ１０２のその他のコンポーネントとの入出力動作を容易にする回路及び／又はコンポーネントとして実施できる。例えば、Ｉ／Ｏサブシステム１２２は、メモリコントローラハブ、入出力制御ハブ、ファームウェアデバイス、通信リンク（すなわち、ポイント・ツー・ポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路板トレースなど）及び／又は入出力動作を容易にするその他のコンポーネント及びサブシステムとして、又はこれらを含むものとして実施できる。幾つかの実施形態では、Ｉ／Ｏサブシステム１２２は、システム・オン・チップ（ＳｏＣ）の一部を形成でき、単一の集積回路チップ上にプロセッサ１２０、メモリ１２４、及び管理サーバ１０２のその他のコンポーネントとともに、組み込むことができる。
【００１３】
データストレージデバイス１２６は、例えば、メモリデバイスと回路、メモリカード、ハードディスクドライブ、固体ドライブ、その他の記憶デバイスなどの、データを短期又は長期にわたり格納するように構成された任意のタイプのデバイスとして実施できる。データストレージデバイス１２６は、クライアントデバイス１０４にブロードキャストする管理データを格納してもよい。
【００１４】
管理サーバ１０２はさらに通信回路１２８を含む。これは管理サーバ１０２、クライアントデバイス１０４、及び／又はその他のリモートデバイス間の通信を可能にする任意の通信回路、デバイスまたはそれらの集まりとして実施し得る。通信回路１２８は、一以上の任意の通信技術（例えば、無線または有線通信）と、かかる通信を行う関連プロトコル（例えば、イーサネット（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＷｉＭＡＸなど）とを用いるように構成されていてもよい。通信回路１２８は、無線ネットワークアダプタを含むネットワークアダプタとして実施されてもよい。
【００１５】
各クライアントデバイス１０４は、ここに説明の機能を実行するあらゆるタイプのデバイスとして実施してもよい。例えば、各クライアントデバイス１０４は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、モバイル計算デバイス、ウェアラブル計算デバイス、セルラフォン、ハンドセット、メッセージングデバイス、車両テレマティックスデバイス、サーバコンピュータ、ワークステーション、分散計算システム、マルチプロセッサシステム、コンシューマエレクトロニクスデバイス、及び／又はここに説明の機能を実行するように構成されたその他の任意の計算デバイスとして実施してもよく、これらに限定されない。このように、各クライアントデバイス１０４は、プロセッサ１４０、Ｉ／Ｏサブシステム１４２、メモリ１４４、データストレージ１４６、通信回路１４８、及び様々な周辺デバイスなど管理サーバ１０２に似たコンポーネント及びフィーチャ（ｆｅａｔｕｒｅｓ）を含み得る。各クライアントデバイス１０４の個別コンポーネントは、管理サーバ１０２の対応するコンポーネントと同様であってもよく、その説明は各クライアントデバイス１０４の対応するコンポーネントに適用可能であり、説明の明りょうにするため繰り返さない。
【００１６】
各クライアントデバイス１０４はさらにファームウェアキャッシュ１５０を含む。ファームウェアキャッシュ１５０は、いかなるデバイスであっても、クライアントデバイス１０４のファームウェア環境にアクセス可能であり、かつクライアントデバイス１０４が電源オフであり、又は電源から切り離されている間にデータを持続的に記憶するように構成されたものでとして実施してもよい。図示した実施形態では、ファームウェアキャッシュ１５０はプラットフォームフラッシュメモリチップとして実施されている。他の実施形態では、ファームウェアキャッシュ１５０は、組み込み型不揮発性メモリシステム（例えば、ｅＭＭＣデバイス）として、またはデータストレージデバイス１４６のシステムパーティション上にあるファームウェアボリュームの一部として実施してもよい。このように、幾つかの実施形態では、ファームウェアキャッシュ１５０は、例えば、Ｉ／Ｏサブシステム１４２などのクライアントデバイス１０４の一以上の他のコンポーネントに組み込まれてもよい。後で説明するように、ファームウェアキャッシュ１５０を用いて、クライアントデバイス１０４により受信されたブロードキャストされたメッセージフラグメントを持続的に記憶してもよい。
【００１７】
幾つかの実施形態では、クライアントデバイス１０４のうちの一以上はマネージャビリティエンジン（ｍａｎａｇｅａｂｉｌｉｔｙ  ｅｎｇｉｎｅ）１５２を含んでいてもよい。マネージャビリティエンジン１５２は、クライアントデバイス１０４のリモート設定、制御、または管理を提供するデバイスとして実施される。例示のマネージャビリティエンジン１５２はアウトオブバンド（ｏｕｔ−ｏｆ−ｂａｎｄ）プロセッサ１５４を含む。アウトオブバンドプロセッサ１５４は、クライアントデバイス１０４の主プロセッサ１４０とは別のもの（ｓｅｐａｒａｔｅ  ａｎｄ  ｄｉｓｔｉｎｃｔ）である。そのため、マネージャビリティエンジン１５２は、残りのクライアントデバイス１０４の状態とは独立して動作可能である。すなわち、マネージャビリティエンジン１５２は、プロセッサ１４０の動作状態にかかわらず、動作可能であり、例えば、クライアントデバイス１０４が電源オフである時、クライアントデバイス１０４がプリブートファームウェア環境を実行している時、クライアントデバイス１０４のオペレーティングシステムがアクティブである時、及びオペレーティングシステムがクラッシュし又は非アクティブである時でも動作可能である。マネージャビリティエンジン１５２は、クライアントデバイス１０４の状態とは独立して、通信回路１４８を用いて通信することもできる。これは「アウトオブバンド（ｏｕｔ−ｏｆ−ｂａｎｄ）」通信としても知られている。幾つかの実施形態では、マネージャビリティエンジン１５２は、かかるアウトオブバンド通信のために、通信回路１４８を介した接続に加え、又はその替わりに、専用ネットワークアダプタを含んでも良い。幾つかの実施形態では、マネージャビリティエンジン１５２は、Ｉ／Ｏサブシステム１４２に組み込まれてもよいし、Ｉ／Ｏサブシステム１４２の一部を構成してもよい。よって、幾つかの実施形態では、マネージャビリティエンジン１５２は、ネットワーク１０６を分析して、管理サーバ１０２によりブロードキャストされたメッセージフラグメントを受信してもよく、リスタートイベント時にプラットフォームファームウェアによりインストールのため、回復した管理データを交互に露出してもよい。
【００１８】
ここで図２を参照して、幾つかの実施形態では、管理サーバ１０２は、動作中に環境２００を確立する。例示の環境２００は、クライアント管理モジュール２０２、ファウンテン符号化モジュール２０４、及びブロードキャストモジュール２０６を含む。環境２００の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせとして実施されてもよい。
【００１９】
クライアント管理モジュール２０２は、クライアントデバイス１０４の一以上にブロードキャストする管理データを受信または読み出しするように構成されている。管理データは、いかなる情報、コード、設定、その他のデータであっても、クライアントデバイス１０４をセットアップ、設定、または管理するのに用いられるものを含み得る。例えば、管理データは、企業セキュリティポリシー、ファームウェアイメージ、またはソフトウェアアプリケーションの実装に用いられる証明書取り消しリストその他のデータを含み得る。例示の実施形態では、管理データは、管理モジュール２０２により参照される管理データベース２０８に含まれる。管理データは、クライアントデバイス１０４を管理する責任を負うネットワーク管理者、エンタープライズサーバ、その他のデータ源により提供されても、保持されていてもよい。
【００２０】
ファウンテン符号化モジュール２０４は、ファウンテンコードを用いて、管理データを一連のメッセージフラグメントに符号化するように構成されている。後で詳しく説明するように、ファウンテンコード（ｆｏｕｎｔａｉｎ  ｃｏｄｅｓ）は、レートレスイレージャーコード（ｒａｔｅｌｅｓｓ  ｅｒａｓｕｒｅ  ｃｏｄｅｓ）としても知られ、有限のソースメッセージを、実際的に制約されない数の符号化出力シンボルすなわちメッセージフラグメントに符号化できる。符号化データの受信器は、閾値より多いメッセージフラグメントが受信される限り、受信されたメッセージフラグメントからソースメッセージを回復してもよい。
【００２１】
ブロードキャストモジュール２０６は、符号化されたメッセージフラグメントを、一以上のクライアントデバイス１０４にブロードキャストするように構成されている。ブロードキャストモジュール２０６は、継続的に、定期的に、又は応答的に、ネットワーク１０６によりメッセージフラグメントをブロードキャストする。ブロードキャストモジュール２０６は、ネットワーク１０６によりメッセージフラグメントをマルチキャストし、どのクライアントデバイス１０４がネットワークを分析していても、メッセージフラグメントを受信できるようにしてもよい。ブロードキャストモジュール２０６は、クライアントデバイス１０４がメッセージフラグメントの受信を確認またはアクノレッジ（ａｃｋｎｏｗｌｅｄｇｅ）することは必要としなくてもよい。
【００２２】
まだ図２を参照して、幾つかの実施形態では、各クライアントデバイス１０４は、動作中に環境２１０を確立する。図示した環境２１０は、ファームウェア環境２１２とオペレーティングシステム２２２とを含む。環境２１０の様々なモジュールまたはコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせとして実施されてもよい。また、幾つかの実施形態では、ファームウェア環境２１２及び／又はオペレーティングシステム２２２のモジュールの一部または全部は、他のモジュール又はソフトウェア／ファームウェア構造と一体かされても、またはその一部を構成してもよい。
【００２３】
ファームウェア環境２１２は、ネットワークモジュール２１４、ファウンテン復号モジュール２１６、更新管理モジュール２１８、及びブートターゲット（ｂｏｏｔ  ｔａｒｇｅｔ）２２０を含む。ファームウェア環境２１２は、ｕｎｉｆｏｒｍ  ｅｘｔｅｎｓｉｂｌｅ  ｆｉｒｍｗａｒｅ  ｉｎｔｅｒｆａｃｅ（ＵＥＦＩ）仕様書（すなわち、ＵＥＦＩ  ＢＩＯＳ）を実装するプラットフォームファームウェアとして実施してもよい。追加的に、または代替的に、ファームウェア環境２１２はマネージャビリティエンジン１５２のファームウェアとして実施されてもよい。ネットワークモジュール２１４は、ネットワーク１０６を定期的に分析して、管理サーバ１０２によりブロードキャストされたメッセージフラグメントを受信するように構成されている。ネットワークモジュール２１４は、例えば、ネットワーク１０６により受信されたマルチキャストネットワークトラフィックをフィルタするように構成されている。
【００２４】
ファウンテン復号モジュール２１６は、ネットワークモジュール２１４により受信されたメッセージフラグメントを復号するように構成されている。ファウンテン復号モジュール２１６は、十分な数のメッセージフラグメントを受信した後に、完全なメッセージを復号し得る。ファウンテンコードアルゴリズムの特徴により、ファウンテン復号モジュール２１６は、特定のメッセージフラグメントを受信する必要はなく、特定の順序でメッセージフラグメントを受信する必要もない。複数のブートイベントにまたがって受信されたメッセージフラグメントを復号するため、ファウンテン復号モジュール２１６は、そのメッセージフラグメント（復号されたメッセージフラグメントや部分的に復号されたものを含む）をファームウェアキャッシュ１５０に格納してもよい。上記の通り、完成したメッセージは管理サーバ１０２により供給された管理データを含む。
【００２５】
更新管理モジュール２１８は、管理サーバ１０２から受信した完成メッセージを解析し、含まれる管理データがクライアントデバイス１０４にインストールされるべきか判断し、必要なら管理データをインストールするように構成されている。管理データは、クライアントデバイス１０４のプラットフォーム設定データ（ｐｌａｔｆｏｒｍ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｄａｔａ）２２４を更新することにより、インストールされてもよい。そのプラットフォーム設定データ２２４は、いかなるファイル、ボリューム、実行ファイル、ファームウェアイメージ、グローバル変数、又はその他の設定であってクライアントデバイス１０４の動作に影響するものとして実施されてもよい。幾つかの実施形態では、プラットフォーム設定データ２２４は、クライアントデバイス１０４にインストールされた一以上のソフトウェアアプリケーションとして実施されてもよい。
【００２６】
ブートターゲット２２０は、ブートサービスを終了し、オペレーティングシステムローダを開始するように構成されている。次いで、オペレーティングシステムローダが、オペレーティングシステム２２２を立ち上げる。ブートターゲット２２０は、例えば、ｕｎｉｆｏｒｍ  ｅｘｔｅｎｓｉｂｌｅ  ｆｉｒｍｗａｒｅ  ｉｎｔｅｒｆａｃｅ（ＵＥＦＩ）仕様に応じたプラットフォームポリシーに基づいて、複数の潜在的なブートターゲットの中から選択されてもよい。クライアントデバイス１０４が一以上のメッセージフラグメントを受信し、メッセージがまだ完全ではないと判断した後、ブートターゲット２２０は、オペレーティングシステム２２２を立ち上げてもよい。もちろん、ブートターゲット２２０は、更新された管理データのインストールに応じて、オペレーティングシステム２２２を立ち上げても良い。
【００２７】
ここで図３を参照して、使用時、管理サーバ１０２は、管理情報をブロードキャストする方法３００を実行してもよい。方法３００は、ブロック３０２で始まる。ブロック３０２において、管理サーバ１０２が、一以上のクライアントデバイス１０４にインストールする管理データを受信または読み出しする。管理データは、ネットワーク管理者、管理アプリケーション、エンタープライズサーバ、またはその他のエンティティまたはプロセスであってクライアントデバイス１０４の管理の責任を負っているものから受信または読み出ししてもよい。管理データは、クライアントデバイス１０４のすべてまたはクライアントデバイス１０４の一部にインストールするように構成されていてもよい。管理データは、いかなる情報、コード、設定、その他のデータであって、クライアントデバイス１０４をセットアップ、設定、または管理するのに用いられるものとして実施してもよい。例えば、幾つかの実施形態では、ブロック３０４において、管理サーバ１０２が、クライアントデバイス１０４にインストールするバイナリファームウェアイメージを受信または読み出ししてもよい。バイナリファームウェアイメージは、クライアントデバイス１０４により用いられる一以上のドライバ、アプリケーション、または構成設定を含み得る。例えば、バイナリファームウェアイメージにより、各クライアントデバイス１０４における企業規模のリソースの使用が可能となる。追加的に又は代替的に、幾つかの実施形態では、ブロック３０６において、管理サーバ１０２は取り消しリストを受信または読み出しても良い。証明書取り消しリスト（ｃｅｒｔｉｆｉｃａｔｅ  ｒｅｖｏｃａｔｉｏｎ  ｌｉｓｔ）は、各クライアントデバイス１０４が、デジタル署名を認証するのに用いることができる。例えば、後でさらに詳しく説明するように、証明書取り消しリストは、ＵＥＦＩ仕様書で規定され、セキュアブートプロセスで用いられる「ｄｂｘ」証明書データベースであってもよい。
【００２８】
ブロック３０８において、管理サーバ１０２は、ファウンテンコードアルゴリズムを用いて、管理データを複数のメッセージフラグメントに符号化する。ファウンテンコード（ｆｏｕｎｔａｉｎ  ｃｏｄｅ）は、レートレスイレージャーコード（ｒａｔｅｌｅｓｓ  ｅｒａｓｕｒｅ  ｃｏｄｅ）としても知られ、有限の入力シンボルのセットを長さが制約されない符号化された出力シンボルに符号化する。言い換えると、ファウンテンコードは、（管理データなどの）入力データのセットを、長さが制約されない符号化されたデータ（ｕｎｂｏｕｎｄｅｄ  ｓｔｒｅａｍ  ｏｆ  ｅｎｃｏｄｅｄ  ｄａｔａ）に変換する。一般的に、元の入力シンボルは、閾値より多い符号化シンボルを含む符号化シンボルのセットから回復してもよい。理想的なファウンテンコードにより、同数の符号化シンボルがあれば、入力シンボルの回復ができる。実際には、入力シンボルを回復するには、少し多い符号化シンボルが必要となることがある。このように、管理サーバ１０２は、管理データ、または管理データを含むフォーマット化されたメッセージ（入力シンボル）にファウンテンコードアルゴリズムを適用して、符号化されたメッセージフラグメント（符号化出力シンボル）を生成する。管理サーバ１０２は、ＬＴコードアルゴリズムやＲａｐｔｏｒコードアルゴリズムを含むがこれらに限定されない任意の好適なファウンテンコードアルゴリズムを利用できる。
【００２９】
ブロック３１０において、管理サーバ１０２は、ネットワーク１０６によりメッセージフラグメントを不ロードキャストして、一以上のクライアントデバイス１０４がメッセージフラグメントを受信するようにする。管理サーバ１０２は、メッセージフラグメントをマルチキャストしてもよく、または各メッセージフラグメントを受信クライアントデバイス１０４に同時に送信してもよい。管理サーバ１０２は、クライアントデバイス１０４からのアクノレッジメントや確認の受信を待たずに、メッセージフラグメントをブロードキャストしてもよい。管理サーバ１０２は、ネットワーク１０６に適したデータレートで、メッセージフラグメントを継続的に、定期的に、又は応答的にブロードキャストしてもよい。
【００３０】
ブロック３１２において、管理サーバ１０２は、管理データが更新されたか、又は更新されるべきか判断する。例えば、管理サーバ１０２は、ネットワーク管理者から管理情報を更新する要求を受信してもよい。管理データが更新されるべきとき、方法３００はブロック３０２に戻り、更新された管理データを受信する。管理データの更新が必要ないとき、方法３００はブロック３１０に戻り、ネットワーク１０６によりメッセージフラグメントをブロードキャストし続ける。
【００３１】
ここで図４を参照して、使用時、クライアントデバイス１０４はＵＥＦＩ仕様書に従ってブートプロセス４００を実行してもよい。クライアントデバイス１０４が電源オンの時はいつも、ブートプロセス４００を実行してもよい。これには、電気的または機械的に完全にオフの状態からクライアントデバイス１０４が電源オンされた時、「ソフトオフ」パワー状態からクライアントデバイス１０４がパワーオンされた時、クライアントデバイス１０４がリセットまたはリブートされた時、クライアントデバイス１０４がスリープ状態から目覚めた時を含む。ブートプロセス４００の実行中、クライアントデバイス１０４は、完全にファームウェア環境２１２の制御下にあってもよい。ブロック４０２において、クライアントデバイス１０４はプラットフォームハードウェアを初期化する。例えば、クライアントデバイス１０４は、ロードを要するコンポーネントを初期化し、またはファームウェア環境２１２、例えばメモリ１４４及びＩ／Ｏサブシステム１４２を処理してもよい。
【００３２】
ブロック４０４において、クライアントデバイス１０４は、一以上のファームウェアによりインストールドライバ４０６またはファームウェアアプリケーション４０８のファームウェア忌め＾時をロード及びスタートする。ファームウェアドライバ４０６及びファームウェアアプリケーション４０８は、データストレージデバイス１４６のシステムパーティションに格納されてもよいバイナリイメージである。ロードすべきドライバ及びアプリケーションは、プラットフォームに依存し、例えば、クライアントデバイス１０４のプラットフォームフラッシュメモリにクライアントデバイス１０４のグローバル変数に列挙される。クライアントデバイス１０４は、ロードすべきファームウェアドライバ４０６とアプリケーション４０８を列挙し、必要なブート順序を決定してもよい。ブート順序は、ファームウェアドライバ４０６とアプリケーション４０８との間の依存性に基づいても良い。
【００３３】
ファームウェアドライバ４０６とアプリケーション４０８は類似しているが、アプリケーション４０８は一般的にそのエントリーポイントから返されると、メモリ１４４からアンロード（ｕｎｌｏａｄ）されるが、ドライバ４０６は一般的にエラーコードとともに返されなければ、メモリ１４４に常駐する点で異なる。ファームウェアドライバ４０６とアプリケーション４０８は、クライアントデバイス１０４のハードウェアを初期化または制御してもよい。ファームウェアドライバ４０６またはアプリケーション４０８は、ファームウェアプロトコルインターフェースをインストールしてもよい。ファームウェアプロトコルインターフェースは、ファンクションコールインターフェースを記述し、インストールされた後、他のファームウェアイメージに提供されたサービスを呼び出させる。例えば、一以上のファームウェアドライバ４０６またはアプリケーション４０８は、クライアントデバイス１０４に通信回路１４８にアクセスさせ、及び／又はブロードキャストされた管理情報を受信させるプロトコルをインストールしてもよい。幾つかの実施形態では、管理更新プロセス４１０は、ファームウェアドライバ４０６として、及び／又はファームウェアアプリケーション４０８として、実行されてもよい。管理更新プロセス４１０は、図５を参照してさらに詳しく説明するように、管理サーバ１０２によりブロードキャストされた管理データを受信及び／又はインストールしてもよい。
【００３４】
ブートプロセス４００は、さらにセキュアブートサブシステム４１２を含む。セキュアブートサブシステム４１２は、ファームウェアイメージをロードする前に、すべてのファームウェアイメージを認証してもよい。セキュアブートサブシステム４１２は、例えば、信頼された証明書（ｔｒｕｓｔｅｄ  ｃｅｒｔｉｆｉｃａｔｅｓ）のセットに対してファームウェアイメージに関連するデジタル署名を正当性確認することにより、ファームウェアイメージを認証してもよい。セキュアブートサブシステム４１２は、認証された証明書（「ホワイトリスト」）または禁じられた証明書（「ブラックリスト」または「証明書取り消しリスト」）を含む一以上のデータベースを保持または参照してもよい。例えば、ＵＥＦＩ仕様書の規定によると、許可される証明書は署名データベース「ｄｂ」（ＳＥＣＵＲＩＴＹ＿ＤＡＴＡＢＡＳＥとしても知られている）に格納され、禁じられる証明書は署名データベース「ｄｂｘ」（ＳＥＣＵＲＩＴＹ＿ＤＡＴＡＢＡＳＥ１としても知られている）に格納される。ロードする前に各ファームウェアイメージを認証することにより、（後で説明する各ブートターゲット４１６に含まれる）ブートプロセス４００中に実行されるすべてのソフトウェアが信頼されたソース（ｔｒｕｓｔｅｄ  ｓｏｕｒｃｅ）から得られたものであることをクライアントデバイス１０４に確認させることにより、セキュリティを改善できる。
【００３５】
ブロック４１４において、クライアントデバイス１０４はブートターゲット４１６を決定しロードする。ブートターゲット４１６は、クライアントデバイス１０４によりロードされ、スタートされるファームウェアアプリケーションである。それゆえ、ブートターゲット４１６は、セキュアブートサブシステム４１２に従ってもよい。ブートターゲットは一般的にはオペレーティングシステムローダであるが、ブートターゲットは診断アプリケーション、メンテナンスアプリケーション、又は管理アプリケーションを含んでもよい。選択されるブートターゲット４１６は、例えば、プラットフォームフラッシュメモリに格納された、クライアントデバイス１０４のグローバル変数で指示されてもよい。クライアントデバイス１０４のグローバル変数は、複数のブートターゲットを指定してもよく、これにはブートターゲット４１６の相対的順序を含んでもよい。幾つかの実施形態では、ブートターゲット４１６は、クライアントデバイス１０４に提示されるメニューその他の手段により、クライアントデバイス１０４のユーザにより選択されてもよい。幾つかの実施形態では、クライアントデバイス１０４は、デフォルトブートターゲット４１６、またはブートターゲット４１６を選択するデフォルトルールを含んでいてもよい。
【００３６】
ブートターゲット４１６において、クライアントデバイス１０４は、オペレーティングシステムローダ４１８に制御を渡す。かかるオペレーティングシステムローダ４１８は、データストレージデバイス１４６のシステムパーティションに格納されなくてもよい。ハンドオフの一部として、ブートターゲット４１６は、ブロック４２０に進み、例えばＵＥＦＩ関数ＥｘｉｔＢｏｏｔＳｅｒｖｉｃｅｓ（）をコールすることにより、ブートサービスを終了する。それゆえ、かかるブートターゲット４１６が成功であれば、ブートプロセス４００は完了し、オペレーティングシステム２２２はクライアントデバイス１０４を完全に制御する。オペレーティングシステム２２２に制御が渡された後は、特にｒｕｎｔｉｍｅ−ｃａｐａｂｌｅと指定されているファームウェアサービスのみが利用可能である。それゆえ、多くの実施形態では、ブートサービスが終了した後は、通信回路１４８にアクセスを許されているファームウェアドライバ４０６またはアプリケーション４０８は、もう利用できない。ブートターゲット４１６によりブートサービスが終了されない場合、例えば、オペレーティングシステムローダ４１８がオペレーティングシステム２２２をロードできない場合、クライアントデバイス１０４は他のブートターゲット４１６をロードするよう試みてもよい。
【００３７】
ここで図５を参照して、使用時、クライアントデバイス１０４は、ブロードキャストされた管理データを受信する方法５００を実行してもよい。方法５００はブロック５０２で始まる。ブロック５０２において、クライアントデバイス１０４はブートされる。上記の通り、クライアントデバイス１０４のブートは、プラットフォームのパワーオン、プラットフォームのリセット、又はスリープ状態からのプラットフォームの目覚めに応じて、行われる。上記の通り、ブート時、クライアントデバイス１０４は、ブートプロセス４００を実行してもよい。これには、様々なファームウェアドライバ４０６とアプリケーション４０８のロードが含まれる。方法５００の様々な動作は、このように、一以上のファームウェアドライバ４０６またはアプリケーション４０８により実行してもよい。
【００３８】
ブロック５０４において、クライアントデバイス１０４はファームウェアドライバ４０６及び／又はファームウェアアプリケーション４０８をロード及び初期化する。上記の通り、ファームウェアドライバ４０６とファームウェアアプリケーション４０８は、ブートプロセス４００の一部としてロードされてもよい。クライアントデバイス１０４は、クライアントデバイス１０４に、ブロードキャストされた管理データ、例えばネットワークインターフェースドライバを受信させるファームウェアドライバ４０６及び／又はアプリケーション４０８をロードする。ブロック５０６において、クライアントデバイス１０４はファウンテンコードドライバをロードする。ファウンテンコードドライバは、ネットワーク１０６の分析と、受信したメッセージフラグメントの復号を含む方法５００の様々な動作を実行するように構成されてもよい。ファウンテンコードドライバはファームウェアドライバ４０６として実施してもよい。したがって、ファウンテンコードドライバは、他のファームウェアドライバ４０６及び／又はファームウェアアプリケーション４０８をロードすることにより依存性がみたされてから、ロードしてもよい。ファウンテンコードドライバをロードした後、クライアントデバイス１０４は、例えば、別のファームウェアドライバ４０６及び／又はファームウェアアプリケーション４０８をロードすることにより、ブートプロセス５００を継続してもよい。
【００３９】
ブロック５０８において、クライアントデバイス１０４は、ネットワーク１０６を分析して、入来するメッセージフラグメントを探す。クライアントデバイス１０４は、ネットワーク１０６からデータをサンプリング、読み取り、オープン、又は収集して、入来するメッセージフラグメントを受信する。これらのメッセージフラグメントは、上記の通り、ファウンテンコードアルゴリズムを用いて管理サーバ１０２により生成されたものでもよい。クライアントデバイス１０４は、通信回路１４８に現れるネットワークトラフィックをサンプリングする。クライアントデバイス１０４が管理サーバ１０２を待ち、アクノレッジし、または同期する必要はない。幾つかの実施形態では、ブロック５１０において、クライアントデバイス１０４は、管理サーバ１０２からネットワーク１０６を介して受信されたマルチキャストデータをフィルタすることにより、ネットワークをサンプリングしてもよい。例えば、クライアントデバイス１０４は、マルチキャストデータを認識し処理するフィルタドライバをインストールしてもよい。
【００４０】
ブロック５１２において、クライアントデバイス１０４は、メッセージフラグメントを求めてネットワーク１０６を分析する時間が経過したか判断する。上記の通り、ファウンテンコードは、完成メッセージを復号するにはある最小数のメッセージフラグメントを必要とする。それゆえ、より長い時間ネットワーク１０６を分析し、潜在的により多くのメッセージフラグメントを受信することにより、メッセージを復号するのに必要な時間及び／又はプラットフォームブートイベント数を低減できる。しかし、一般的に、ブートプロセスの時間の短縮は多くのクライアントデバイス１０４にとって望ましく、多くのオペレーティングシステム２２２は、ブートプロセスの総時間の制限を規定する。それゆえ、サンプリングされるメッセージフラグメント量と、ブートプロセスの速さとの間のバランスを取るため、様々な実施形態は異なるタイムアウトを用いてもよい。タイムアウトの長さはプラットフォームポリシーにより決定されてもよい。例えば、コンシューマクライアントデバイス１０４は、これにより１つのメッセージフラグメントを受信できる、相対的に短いタイムアウトを用い、ブートプロセスの速さを強調してもよい。他の一例として、企業クライアントデバイス１０４は、１秒ないし数秒のオーダーの相対的な長さのタイムアウトを用いて、各ブートイベントに対して多くのメッセージフラグメントが受信される確立を大きくしても良い。追加的に又は代替的に、幾つかの実施形態では、タイムアウト（ｔｉｍｅｏｕｔ）はブートプロセス４００の終わりに対応してもよい。言い換えると、これらの実施形態では、クライアントデバイス１０４は、ブートプロセス４００が完了し、オペレーティングシステム２２２をロードする準備ができるまで、ネットワーク１０６を分析してもよい。タイムアウトが終わると、方法５００はブロック５０８に戻り、ネットワーク１０６の分析を続ける。タイムアウトが終わると、方法５００はブロック５１４に進む。
【００４１】
ブロック５１４において、クライアントデバイス１０４は、タイムアウトの終了前に、ネットワーク１０６からメッセージフラグメントを受信したか判断する。メッセージフラグメントが受信されていなければ、方法５００は、ブロック５３６に飛び、クライアントデバイス１０４のブートを続ける。後でさらに詳しく説明するように、クライアントデバイス１０４は、未来のブートイベントに応じてメッセージフラグメントを受信してもよい。しかし、タイムアウトの終了前にメッセージフラグメントが受信されたとき、方法５００はブロック５１６に進む。
【００４２】
ブロック５１６において、クライアントデバイス１０４は、受信したメッセージフラグメントをファームウェアキャッシュ１５０に格納する。上記の通り、ファームウェアキャッシュ１５０は、ファームウェア環境２１２にアクセス可能な不揮発性記憶媒体として実施してもよい。このように、キャッシュされたメッセージフラグメントは、その後のブートイベントでメッセージを復号するために用いられてもよい。もちろん、ファームウェアキャッシュ１５０は、前のブートイベントで格納された、キャッシュされたメッセージフラグメントを含んでもよい。したがって、メッセージフラグメントは、複数のブートイベントにわたり、ファームウェアキャッシュ１５０に蓄積されてもよい。
ブロック５１８において、クライアントデバイス１０４は、ファームウェアキャッシュ１５０に格納されたメッセージフラグメントを復号して、ソースメッセージの少なくとも一部を生成する。上記の通り、クライアントデバイス１０４は、メッセージフラグメントを符号化するのに用いられたファウンテンコードに対する適切な復号アルゴリズムを利用する。クライアントデバイス１０４により格納された動作とデータは、使用しているファウンテンコードに依存してもよい。例えば、ＬＴコードの場合、クライアントデバイス１０４は、復号されたフラグメント（すなわち、１次のフラグメント）の内容に基づき、ファームウェアキャッシュ１５０に格納されたメッセージフラグメントの値を繰り返し更新してもよい。幾つかの実施形態では、個々のメッセージフラグメントは、時間的により近く受信されたメッセージフラグメントに基づいて、部分的に復号されてもよい。引き続き前出の例で、ＬＴコードの場合、クライアントデバイス１０４は、時間的により近くに受信されたメッセージフラグメントに基づいて、キャッシュされたメッセージフラグメントの次数（ｄｅｇｒｅｅ）を減らしても良い。クライアントデバイス１０４は、メッセージフラグメントを適切に更新しても、復号された又は部分的に復号されたメッセージフラグメントをファームウェアキャッシュ１５０に格納してもよい。
【００４３】
ブロック５２０において、クライアントデバイス１０４は、完全なメッセージが受信されたか判断する。メッセージが完全か判断するのに用いる方法は、利用するファウンテンコードに依存する。例えば、ＬＴコードの場合、クライアントデバイス１０４は、すべてのメッセージフラグメントのｄｅｇｒｅｅが１であるか判断する。完全なメッセージが受信されていなければ、方法５００は、後で説明するように、ブロック５３６に進み、ブートターゲット４１６を実行する。完全なメッセージが受信されていれば、方法５００はブロック５２２に進む。
【００４４】
ブロック５２２において、クライアントデバイス１０４は、完成されたメッセージを解析して、それに含まれる管理データを特定する。メッセージは管理データの送信に好適なデータフォーマットでフォーマットされてもよい。メッセージは、管理データを記述する追加ヘッダその他のメタデータを含んでもよい。例えば、メッセージは管理データを含むファームウェアボリュームとしてフォーマットされてもよい。もちろん、幾つかの実施形態では、メッセージは管理データ自体を含んでいてもよい。幾つかの実施形態では、ブロック５２４において、クライアントデバイス１０４は、メッセージから、ファームウェアドライバ４０６やファームウェアアプリケーション４０８などのバイナリファームウェアイメージを読み出す。幾つかの実施形態では、ブロック５２６において、クライアントデバイス１０４はメッセージから証明書取り消しリスト（ｃｅｒｔｉｆｉｃａｔｅ  ｒｅｖｏｃａｔｉｏｎ  ｌｉｓｔ）を読み出す。このリストは、例えば、ＵＥＦＩ仕様書に規定されている「ｄｂｘ」データベースなどである。管理データは、読み出されたファームウェアイメージ及び／又は証明書取り消しリストとして実施してもよい。
【００４５】
ブロック５２８において、クライアントデバイス１０４は、管理データをインストールするか判断する。クライアントデバイス１０４は、管理データをインストールするか判断するどんな適切な基準を用いてもよい。例えば、クライアントデバイス１０４は、管理データがクライアントデバイス１０４と互換性があるか、又はクライアントデバイス１０４に適用可能か、または管理データがクライアントデバイス１０４にすでにインストールされているか判断してもよい。クライアントデバイス１０４が管理データをインストールしないと判断すれば、後で説明するように、方法５００はブロック５３６に飛び、ブートターゲット４１６を実行する。管理データがインストールされる場合、方法５００はブロック５３０に進む。
【００４６】
ブロック５３０において、クライアントデバイス１０４は、管理データをクライアントデバイス１０４のプラットフォーム設定データ（ｐｌａｔｆｏｒｍ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｄａｔａ）２２４に適用することにより、管理データをインストールする。クライアントデバイス１０４は、管理データをインストールするのに必要な動作を実行し、設定を変更し、ファイルやデータを記憶する。さらに、管理データは、一時的に（例えば、メモリ１４４に）インストールされてもよいし、永続的に（例えば、データストレージ１４６に）インストールされてもよい。幾つかの実施形態では、ブロック５３２において、クライアントデバイス１０４はバイナリファームウェアイメージをインストールしてもよい。例えば、クライアントデバイス１０４は、ファームウェアイメージをロードおよび実行してもよく、及び／又はファームウェアイメージをデータストレージ１４６のシステムパーティションに格納してもよい。幾つかの実施形態では、ブロック５３４において、クライアントデバイス１０４は証明書取り消しリストをインストールしてもよい。例えば、クライアントデバイス１０４は、「ｄｂｘ」禁止証明書データベースをプラットフォームフラッシュメモリのグローバル変数に格納してもよい。
【００４７】
ブロック５３６において、クライアントデバイス１０４はブートターゲット４１６を実行し、これで方法５００は完了する。上記の通り、ブートターゲット４１６は一般的にオペレーティングシステムローダ４１８をスタートさせる。次いで、オペレーティングシステムローダ４１８はオペレーティングシステム２２２を立ち上げる。オペレーティングシステム２２２が立ち上が（り、ブートサービスが終了す）ると、ファームウェア環境２１２はもはやクライアントデバイス１０４のプラットフォームハードウェアの制御下にはない。このように、クライアントデバイス１０４は、オペレーティングシステム２２２の実行中にファウンテンコードメッセージフラグメントを受信及び／又は応答しなくてもよい。方法５００は、次のプラットフォームブートイベント中に再び実行されてもよい。例えば、方法５００は、クライアントデバイス１０４が物理的にパワーサイクル（ｐｏｗｅｒ−ｃｙｃｌｅｄ）され、リブートされ、またはスリープ状態から目覚めた時に、再び実行されてもよい。
【００４８】
ここまで、方法５００は、プラットフォームブートイベントに応じてファームウェア環境２１２のクライアントデバイスにより実行されるものとして説明したが、言うまでもなく、幾つかの実施形態では、ファームウェア環境２１２がクライアントデバイス１０４の制御下にある時はいつでも実行されてよい。追加的に又は代替的に、幾つかの実施形態では、方法５００の一部または全部が、マネージャビリティエンジン１５２により、アウトオブバンド（ｏｕｔ−ｏｆ−ｂａｎｄ  ｍａｎｎｅｒ）で実行されてもよい。例えば、方法５００は、セキュリティ・マネージャビリティ連合エンジン（ｃｏｍｂｉｎｅｄ  ｓｅｃｕｒｉｔｙ  ａｎｄ  ｍａｎａｇｅａｂｉｌｉｔｙ  ｅｎｇｉｎｅ（ＣＳＭＥ））またはクライアントデバイス１０４のシステムオンチップ（ＳｏＣ）パッケージに含まれるその他のマイクロコントローラにより実行されてもよい。かかる例では、方法５００は、ランタイムに、プロセッサ１４０がアクティブである間に、またはＳｏＣのアクティブアイドル状態（例えば、ＳＯｉｘ状態）との移行を含むブートイベント以外の追加的パワー状態移行中に、実行されてもよい。例えば、マネージャビリティエンジン１５２は、継続的に、定期的に、又は応答的にネットワーク１０６を分析して、管理サーバ１０２によりブロードキャストされたメッセージフラグメントを受信し、管理データを回復する。マネージャビリティエンジン１５２は、ＵＥＦＩ変数ストアに直接アクセスできる場合、例えば、ＳＥＣＵＲＩＴＹ＿ＤＡＴＡＢＡＳＥ及び／又はＳＥＣＵＲＩＴＹ＿ＤＡＴＡＢＡＳＥ１を直接更新することにより、管理データを直接適用してもよい。追加的に又は代替的に、マネージャビリティエンジン１５２は、その後のプラットフォームリスタートイベント時に、ＵＥＦＩファームウェアによる更新のため、これらのデータベースに更新をエクスポーズ（ｅｘｐｏｓｅ）してもよい。
【００４９】
実施例
本明細書に開示の技術の例を以下に記載する。本技術の実施形態は、以下に記載の一以上の例、及びそれらの組み合わせを含み得る。
【００５０】
実施例１は、ブロードキャストされた管理情報を受信するクライアントデバイスであって、前記クライアントデバイスのブートプロセス中に前記クライアントデバイスのネットワークインターフェースを分析し、管理サーバによりブロードキャストされたメッセージフラグメントを受信するネットワークモジュールと、（ｉ）ファウンテンコード復号アルゴリズムを用いて前記メッセージフラグメントを復号して、メッセージの少なくとも一部を生成し、（ｉｉ）前記メッセージの少なくとも一部の生成に応じて、前記メッセージが完全であるか判断するファウンテン復号モジュールと、（ｉ）前記メッセージが完全であるとの判断に応じて、前記メッセージを解析して、前記管理サーバによる前記メッセージに含まれる管理データを特定し、（ｉｉ）前記管理データを前記クライアントデバイスに適用する更新管理モジュールとを有する。
【００５１】
実施例２は実施例１の主題を含み、前記ネットワークモジュール、前記ファウンテンコードモジュール、及び前記更新管理モジュールを確立するファームウェア環境をさらに含む。
【００５２】
実施例３は実施例１及び２いずれかの主題を含み、前記ファウンテンコード復号モジュールはさらに、前記メッセージフラグメントを、前記クライアントデバイスのファームウェアキャッシュに格納し、前記メッセージフラグメントの復号は、前記ファームウェアキャッシュに格納されたメッセージフラグメントを含み、前記メッセージが完全であるかの判断は、前記ファームウェアキャッシュに格納されたメッセージフラグメントの復号に応じた、前記メッセージが完全であるかの判断を含む。
【００５３】
実施例４は実施例１−３のいずれかの主題を含み、前記ネットワークモジュールは前記ネットワークインターフェースを分析し、前記ファウンテンコード復号モジュールは、前記クライアントデバイスのリブートに応じて、前記メッセージフラグメントを復号し、前記メッセージが完全であるか二度目の判断をする。
【００５４】
実施例５は実施例１−４のいずれかの主題を含み、前記メッセージが完全ではないとの判断に応じて、又は前記管理データの適用に応じて、前記クライアントデバイスのオペレーティングシステムをロードするブートターゲットを含む。
【００５５】
実施例６は実施例１−５のいずれかの主題を含み、前記更新管理モジュールはさらに、前記メッセージの解析に応じて、前記管理データが前記クライアントデバイスと互換性があるか判断し、前記管理データの適用はさらに、前記管理データが前記クライアントデバイスと互換性があるとの判断に応じた、前記管理データの適用を含む。
【００５６】
実施例７は実施例１−６のいずれかの主題を含み、前記ファウンテンコード復号アルゴリズムは、ＬＴコード、Ｒａｐｔｏｒコード、又はＲａｐｔｏｒＱコードを含む。
【００５７】
実施例８は実施例１−７のいずれかの主題を含み、前記管理データは前記メッセージに含まれたバイナリファームウェアイメージを含む。
【００５８】
実施例９は実施例１−８のいずれかの主題を含み、前記管理データは前記メッセージに含まれた証明書取り消しリストを含む。
【００５９】
実施例１０は実施例１−９のいずれかの主題を含み、前記証明書取り消しリストはセキュアブートブラックリストを含む。
【００６０】
実施例１１は実施例１−１０のいずれかの主題を含み、前記管理データは前記メッセージに含まれたソフトウェアアプリケーションを含む。
【００６１】
実施例１２は実施例１−１１のいずれかの主題を含み、前記ネットワークモジュール、前記ファウンテン復号モジュール、及び前記更新管理モジュールを含むマネージャビリティエンジンをさらに含む。
【００６２】
実施例１３は実施例１−１２のいずれかの主題を含み、前記クライアントデバイスのオペレーティングシステムを実行するインバンドプロセッサをさらに含み、前記ネットワークモジュールは、前記オペレーティングシステムの実行中に、前記クライアントデバイスのネットワークインターフェースを分析し、前記管理サーバによりブロードキャストされたメッセージフラグメントを受信する。
【００６３】
実施例１４は実施例１−１３のいずれかの主題を含み、前記ネットワークインターフェースの分析は、前記ネットワークインターフェースの分析、及びファウンテンコード符号化アルゴリズムを用いて符号化されたメッセージフラグメントの受信を含む。
【００６４】
実施例１５は実施例１−１４のいずれかの主題を含み、前記ネットワークインターフェースの分析は、前記管理サーバによりネットワーク上にブロードキャストされたマルチキャストデータのフィルタを含む。
【００６５】
実施例１６は実施例１−１５のいずれかの主題を含み、前記ネットワークインターフェースは、前記クライアントデバイスの無線ネットワークインターフェースを含む。
【００６６】
実施例１７は、管理情報をブロードキャストする管理サーバであって、ファウンテンコード符号化アルゴリズムを用いて管理データを複数のメッセージフラグメントに符号化するファウンテン符号化モジュールと、複数のクライアントデバイスがアクセスできるネットワークに前記複数のメッセージフラグメントを連続的にブロードキャストするブロードキャストモジュールとを有する。
【００６７】
実施例１８は実施例１７の主題を含み、前記管理データはバイナリファームウェアイメージを含む。
【００６８】
実施例１９は実施例１７及び１８のどちらかの主題を含み、前記管理データは証明書取り消しリストを含む。
【００６９】
実施例２０は実施例１７−１９のいずれかの主題を含み、前記証明書取り消しリストはセキュアブートブラックリストを含む。
【００７０】
実施例２１は、ブロードキャストされた管理情報を受信する方法であって、クライアントデバイスが、前記クライアントデバイスのブートプロセス中に前記クライアントデバイスのネットワークインターフェースを分析し、管理サーバによりブロードキャストされたメッセージフラグメントを受信するステップと、前記クライアントデバイスが、ファウンテンコード復号アルゴリズムを用いて、前記メッセージフラグメントを復号し、メッセージの少なくとも一部を生成するステップと、前記クライアントデバイスが、前記メッセージフラグメントの復号に応じて、前記メッセージが完全であるか判断するステップと、前記メッセージが完全であるとの判断に応じて、前記クライアントデバイスが、前記メッセージを解析し、前記管理サーバにより前記メッセージに含まれた管理データを特定するステップと、前記クライアントデバイスが、前記管理データを前記クライアントデバイスに適用するステップとを含む。
【００７１】
実施例２２は実施例２１の主題を含み、前記ネットワークインターフェースを分析するステップ、前記メッセージフラグメントを復号するステップ、前記メッセージが完全であるか判断するステップ、前記メッセージを解析するステップ、及び前記管理データを適用するステップは、すべて前記クライアントデバイスのファームウェア環境により実行される。
【００７２】
実施例２３は実施例２１及び２２のどちらかの主題を含み、前記クライアントデバイスが、前記クライアントデバイスのファームウェアキャッシュに前記メッセージフラグメントを格納するステップをさらに含み、前記メッセージフラグメントを復号するステップは、前記ファームウェアキャッシュに格納されたメッセージフラグメントを復号するステップを含み、前記メッセージが完全であるか判断するステップは、前記ファームウェアキャッシュに格納されたメッセージフラグメントの復号に応じた、前記メッセージが完全であるか判断するステップを含む。
【００７３】
実施例２４は実施例２１−２３のいずれかの主題を含み、前記クライアントデバイスをリブートするステップと、前記クライアントデバイスのリブートに応じて、前記ネットワークインターフェースを分析し、前記メッセージフラグメントを復号し、前記メッセージが完全であるか二度目に判断するステップとを含む。
【００７４】
実施例２５は実施例２１−２４のいずれかの主題を含み、前記メッセージが完全ではないとの判断に応じて、又は前記管理データの適用に応じて、前記クライアントデバイスが、前記クライアントデバイスのオペレーティングシステムをローディングするステップをさらに含む。
【００７５】
実施例２６は実施例２１−２５のいずれかの主題を含み、前記メッセージの解析に応じて、前記クライアントデバイスが、前記管理データが前記クライアントデバイスと互換性があるか判断するステップをさらに含み、前記管理データを適用するステップはさらに、前記管理データが前記クライアントデバイスと互換性があるとの判断に応じて、前記管理データを適用するステップを含む。
【００７６】
実施例２７は実施例２１−２６のいずれかの主題を含み、前記メッセージフラグメントを復号するステップは、ＬＴコード、Ｒａｐｔｏｒコード、又はＲａｐｔｏｒＱコードのうちの１つを用いて、前記メッセージフラグメントを復号するステップを含む。
【００７７】
実施例２８は実施例２１−２７のいずれかの主題を含み、前記管理データを適用するステップは、前記メッセージに含まれたバイナリファームウェアイメージをインストールするステップを含む。
【００７８】
実施例２９は実施例２１−２８のいずれかの主題を含み、前記管理データを適用するステップは、前記メッセージに含まれた証明書取り消しリストを前記クライアントデバイスにインストールするステップ含む。
【００７９】
実施例３０は実施例２１−２９のいずれかの主題を含み、前記証明書取り消しリストをインストールするステップは、前記クライアントデバイスにセキュアブートブラックリストをインストールするステップを含む。
【００８０】
実施例３１は実施例２１−３０のいずれかの主題を含み、前記管理データを適用するステップは、前記メッセージに含まれたソフトウェアアプリケーションを前記クライアントデバイスにインストールするステップ含む。
【００８１】
実施例３２は実施例２１−３１のいずれかの主題を含み、前記ネットワークインターフェースを分析するステップ、前記メッセージフラグメントを復号するステップ、前記メッセージが完全であるか二度目に判断するステップは、すべて前記クライアントデバイスのマネージャビリティエンジンにより実行される。
【００８２】
実施例３３は実施例２１−３２のいずれかの主題を含み、前記計算デバイスのインバンドプロセッサが、前記クライアントデバイスのオペレーティングシステムを実行するステップと、前記計算デバイスのマネージャビリティエンジンが、前記オペレーティングシステムの実行中に前記クライアントデバイスのネットワークインターフェースを分析し、前記管理サーバによりブロードキャストされたメッセージフラグメントを受信するステップとをさらに含む。
【００８３】
実施例３４は実施例２１−３３のいずれかの主題を含み、前記ネットワークインターフェースを分析するステップは、前記ネットワークインターフェースを分析して、ファウンテンコード符号化アルゴリズムを用いて符号化されたメッセージフラグメントを受信するステップを含む。
【００８４】
実施例３５は実施例２１−３４のいずれかの主題を含み、前記ネットワークインターフェースを分析するステップは、前記管理サーバによりネットワーク上にブロードキャストされたマルチキャストデータをフィルタするステップを含む。
【００８５】
実施例３６は実施例２１−３５のいずれかの主題を含み、前記ネットワークインターフェースを分析するステップは、前記クライアントデバイスの無線ネットワークインターフェースを分析するステップを含む。
【００８６】
実施例３７は、管理情報をブロードキャストする方法であって、管理サーバが、ファウンテンコード符号化アルゴリズムを用いて管理データを複数のメッセージフラグメントに符号化するステップと、前記管理サーバが、複数のクライアントデバイスがアクセスできるネットワークに、前記複数のメッセージフラグメントを連続的にブロードキャストするステップとを含む。
【００８７】
実施例３８は実施例３７の主題を含み、前記管理データを符号化するステップは、バイナリファームウェアイメージを符号化するステップ含む。
【００８８】
実施例３９は実施例３７及び３８のどちらかの主題を含み、前記管理データを符号化するステップは、証明書取り消しリストを符号化するステップを含む。
【００８９】
実施例４０は実施例３７−３９のいずれかの主題を含み、前記証明書取り消しリストを符号化するステップはセキュアブートブラックリストを符号化するステップ含む。
【００９０】
実施例４１は計算デバイスを含み、該計算デバイスは、プロセッサと、前記プロセッサにより実行されたとき、前記プロセッサに、実施例２１−４０いずれかに記載の方法を実行させる複数の命令を格納したメモリとを有する。
【００９１】
実施例４２は、実行されると、計算デバイスに実施例２１−４０いずれかに記載の方法を実行させる複数の命令を格納した一以上の機械読み取り可能記憶媒体を含む。
【００９２】
実施例４３は、実施例２１−４０いずれかに記載の方法を実行する手段を有する計算デバイスを含む。
【００９３】
実施例４４は、ブロードキャストされた管理情報を受信するクライアントデバイスであって、前記クライアントデバイスのブートプロセス中に前記クライアントデバイスのネットワークインターフェースを分析し、管理サーバによりブロードキャストされたメッセージフラグメントを受信する手段と、ファウンテンコード復号アルゴリズムを用いて、前記メッセージフラグメントを復号し、メッセージの少なくとも一部を生成する手段と、前記メッセージフラグメントの復号に応じて、前記メッセージが完全であるか判断する手段と、前記メッセージが完全であるとの判断に応じて、前記メッセージを解析し、前記管理サーバにより前記メッセージに含まれた管理データを特定する手段と、前記管理データを前記クライアントデバイスに適用する手段とを有する。
【００９４】
実施例４５は実施例４４の主題を含み、前記ネットワークインターフェースを分析する手段と、前記メッセージフラグメントを復号する手段と、前記メッセージが完全であるか判断する手段と、前記メッセージを解析する手段と、前記管理データを適用する手段とを確立するファームウェア環境をさらに含む。
【００９５】
実施例４６は実施例４４及び４５のどちらかの主題を含み、前記クライアントデバイスのファームウェアキャッシュに前記メッセージフラグメントを格納する手段をさらに含み、前記メッセージフラグメントを復号する手段は、前記ファームウェアキャッシュに格納されたメッセージフラグメントを復号する手段を含み、前記メッセージが完全であるか判断する手段は、前記ファームウェアキャッシュに格納されたメッセージフラグメントの復号に応じた、前記メッセージが完全であるか判断する手段を含む。
【００９６】
実施例４７は実施例４４−４６のいずれかの主題を含み、前記クライアントデバイスをリブートする手段と、前記クライアントデバイスのリブートに応じて、前記ネットワークインターフェースを分析する手段、前記メッセージフラグメントを復号する手段、及び前記メッセージが完全であるか二度目に判断する手段とをさらに含む。
【００９７】
実施例４８は実施例４４−４７のいずれかの主題を含み、前記メッセージが完全ではないとの判断に応じて、又は前記管理データの適用に応じて、前記クライアントデバイスのオペレーティングシステムをローディングする手段をさらに含む。
【００９８】
実施例４９は実施例４４−４８のいずれかの主題を含み、前記メッセージの解析に応じて、前記クライアントデバイスが、前記管理データが前記クライアントデバイスと互換性があるか判断する手段をさらに含み、前記管理データを適用する手段はさらに、前記管理データが前記クライアントデバイスと互換性があるとの判断に応じて、前記管理データを適用する手段を含む。
【００９９】
実施例５０は実施例４４−４９のいずれかの主題を含み、前記メッセージフラグメントを復号する手段は、ＬＴコード、Ｒａｐｔｏｒコード、又はＲａｐｔｏｒＱコードのうちの１つを用いて、前記メッセージフラグメントを復号する手段を含む。
【０１００】
実施例５１は実施例４４−５０のいずれかの主題を含み、前記管理データを適用する手段は、前記メッセージに含まれたバイナリファームウェアイメージをインストールする手段を含む。
【０１０１】
実施例５２は実施例４４−５１のいずれかの主題を含み、前記管理データを適用する手段は、前記メッセージに含まれた証明書取り消しリストを前記クライアントデバイスにインストールする手段含む。
【０１０２】
実施例５３は実施例４４−５２のいずれかの主題を含み、前記証明書取り消しリストをインストールする手段は、前記クライアントデバイスにセキュアブートブラックリストをインストールする手段を含む。
【０１０３】
実施例５４は実施例４４−５３のいずれかの主題を含み、前記管理データを適用する手段は、前記メッセージに含まれたソフトウェアアプリケーションを前記クライアントデバイスにインストールする手段含む。
【０１０４】
実施例５５は実施例４４−５４のいずれかの主題を含み、前記ネットワークインターフェースを分析する手段、前記メッセージフラグメントを復号する手段、及び前記メッセージが完全であるか判断する手段を有するマネージャビリティエンジンをさらに含む。
【０１０５】
実施例５６は実施例４４−５５のいずれかの主題を含み、前記計算デバイスのインバンドプロセッサが、前記クライアントデバイスのオペレーティングシステムを実行する手段と、前記計算デバイスのマネージャビリティエンジンが、前記オペレーティングシステムの実行中に前記クライアントデバイスのネットワークインターフェースを分析し、前記管理サーバによりブロードキャストされたメッセージフラグメントを受信する手段とをさらに含む。
【０１０６】
実施例５７は実施例４４−５６のいずれかの主題を含み、前記ネットワークインターフェースを分析する手段は、前記ネットワークインターフェースを分析して、ファウンテンコード符号化アルゴリズムを用いて符号化されたメッセージフラグメントを受信する手段を含む。
【０１０７】
実施例５８は実施例４４−５７のいずれかの主題を含み、前記ネットワークインターフェースを分析する手段は、前記管理サーバによりネットワーク上にブロードキャストされたマルチキャストデータをフィルタする手段を含む。
【０１０８】
実施例５９は実施例４４−５８のいずれかの主題を含み、前記ネットワークインターフェースを分析する手段は、前記クライアントデバイスの無線ネットワークインターフェースを分析する手段を含む。
【０１０９】
実施例６０は、管理情報をブロードキャストする管理サーバであって、ファウンテンコード符号化アルゴリズムを用いて管理データを複数のメッセージフラグメントに符号化する手段と、複数のクライアントデバイスがアクセスできるネットワークに、前記複数のメッセージフラグメントを連続的にブロードキャストする手段とを含む。
【０１１０】
実施例６１は実施例６０の主題を含み、前記管理データを符号化する手段は、バイナリファームウェアイメージを符号化する手段含む。
【０１１１】
実施例６２は実施例６０及び６１のどちらかの主題を含み、前記管理データを符号化する手段は、証明書取り消しリストを符号化する手段を含む。
【０１１２】
実施例６３は実施例６０−６２のいずれかの主題を含み、前記証明書取り消しリストを符号化する手段はセキュアブートブラックリストを符号化する手段含む。
【図１】
0006316978.tif 000002
【図２】
0006316978.tif 000003
【図３】
0006316978.tif 000004
【図４】
0006316978.tif 000005
【図５】
0006316978.tif 000006