JP6316978B2 - ファウンテンコードを用いる管理情報のブロードキャスト - Google Patents

ファウンテンコードを用いる管理情報のブロードキャスト Download PDF

Info

Publication number
JP6316978B2
JP6316978B2 JP2016553848A JP2016553848A JP6316978B2 JP 6316978 B2 JP6316978 B2 JP 6316978B2 JP 2016553848 A JP2016553848 A JP 2016553848A JP 2016553848 A JP2016553848 A JP 2016553848A JP 6316978 B2 JP6316978 B2 JP 6316978B2
Authority
JP
Japan
Prior art keywords
message
client device
firmware
management
complete
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016553848A
Other languages
English (en)
Other versions
JP2017513098A (ja
Inventor
ジェイ. ズィマー,ヴィンセント
ジェイ. ズィマー,ヴィンセント
エー. ロスマン,マイケル
エー. ロスマン,マイケル
Original Assignee
インテル コーポレイション
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2017513098A publication Critical patent/JP2017513098A/ja
Application granted granted Critical
Publication of JP6316978B2 publication Critical patent/JP6316978B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Stored Programmes (AREA)

Description

[関連出願への相互参照]
本願は、2014年3月21日出願の米国特許出願第14/222,014号(発明の名称「BROADCASTING MANAGEMENT INFORMATION USING FOUNTAIN CODES」)の優先権を主張するものである。
企業その他の組織は、コンピュータ、モバイルデバイス、サーバ、及びネットワークインフラストラクチャなどの大規模にインストールされたネットワーク接続マシンを管理することがある。管理されるネットワーク接続デバイスの数は増え続けるだろう。多数のユビキタス組み込みデバイスを含む、より多くのクラスのデバイスにネットワーキング能力が追加されるからである。多くの場合、多くのクラスの被管理デバイスに同一の管理情報が提供されなければならない。例えば、同一のセキュリティ証明書取り消し情報が、企業により管理されたすべてのセキュアブートイネーブル(secure−boot−enabled)マシンに提供されるかも知れない。管理情報をインストールする典型的なアプローチには、多くのクラスの均一なマシンに並行して管理情報をマルチキャストすることを含む。しかし、かかるアプローチは、一般的には、送信器と受信器との間の同期を要し、多数の受信デバイスがその動作を(例えば、マルチキャスト情報を同時に受け取ることにより)同期させることが必要になることを意味する。管理情報をインストールする他の典型的なアプローチは、ユーザ要求に応じて、または計画的なダウンロードとして、オペレーティングシステムコンポーネントまたはユーザモードソフトウェアアプリケーションにより、サーバから管理情報をダウンロードすることを含む。しかし、かかるアプローチは、ユーザによる介入を必要とすることがあり、マルウェアや、オペレーティングシステム及び/又はソフトウェアアプリケーションのセキュリティ上の弱点に対して弱いことがある。
レートレスイレージャーコード(rateless erasure codes)はファウンテンコード(fountain codes)としても知られているが、k個の入力シンボルの有限セットを符号化シンボルの無限セットに符号化する。入力シンボルはk’個の符号化シンボルから復号されてもよい。ここでk’はkと等しいか、kよりも少し大きい。コモンファウンテンコード(common fountain codes)はルビー変換コード(Luby transform codes(LT codes))とラプターコード(Raptor codes)を含む。ファウンテンコードの一般的な使用は、インターネットプロトコル(IP)ネットワークにより配信するビデオ信号の符号化を含む。
ここで説明するコンセプトを、添付した図面において、限定ではなく実施例により説明する。説明を単純かつ明確にするため、図に示した要素は必ずしもスケール通りには描いていない。適当であれば、対応または類似する要素を示すため、複数の図面で同じ参照レベルを用いた。
管理サーバから多数のクライアントデバイスに管理情報をブロードキャストするシステムの少なくとも一実施形態を示す簡略化したブロック図である。 図1のシステムにより確立される様々な環境の少なくとも一実施形態を示す簡略化したブロック図である。 図1及び図2の管理サーバにより実行され得る管理情報をブロードキャストする方法の少なくとも一実施形態を示す簡略化したフロー図である。 図1及び図2のクライアントデバイスにより実行され得るブートプロセスの少なくとも一実施形態を示す簡略化した模式図である。 図1及び図2のクライアントデバイスにより実行され得る、ブロードキャストされた管理情報を受信する方法の少なくとも一実施形態を示す簡略化したフロー図である。
図面の詳細な説明
本開示のコンセプトはいろいろな修正を施したり代替的形式を取ったりすることもできるが、その具体的な実施形態を図面において実施例で示し、ここに詳細に説明する。しかし、言うまでもなく、開示した具体的な形式に本開示を限定する意図ではなく、逆に、本発明は本開示と添付した特許請求の範囲に沿ったすべての修正、等価物及び代替物をカバーするものである。
本明細書において「one embodiment」、「an embodiment」、「an illustrative embodiment」などと言う場合、記載した実施形態が、ある機能、構造、または特徴を含むが、かならずしもすべての実施形態がその機能、構造、または特徴を含んでも含まなくてもよい。さらに、かかる文言は必ずしも同じ実施形態を参照しているとは限らない。さらに、ある機能、構造、または特徴をある実施形態について説明した場合、明示的に記載していようがいまいが、他の実施形態に関するそれらの機能、構造、または特徴に影響が及ぶことは、当業者には自明である。また、言うまでもなく、「少なくとも1つのA、B及びC」は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)又は(A、B、及びC)を意味し得る。同様に、「A、B又はCのうちの少なくとも1つ」との形式のリストに含まれるアイテムは、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)又は(A、B、及びC)を意味し得る。
開示した実施形態は、幾つかの場合には、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実装できる。開示の実施形態は、一時的又は非一時的な機械読み取り可能(例えば、コンピュータ読み取り可能)記憶媒体により担われ、又はそれに格納された(一以上のプロセッサにより読み取られ実行され得る)命令として実装することもできる。機械読み取り可能記憶媒体は、機械により読み取り可能な形式で情報を格納又は送信する任意のストレージデバイス、メカニズム、又はその他の物理的構造(例えば、揮発性又は不揮発性メモリ、メディアディスク、又はその他のメディアデバイス)として実施できる。
図中、幾つかの構造的又は方法フィーチャを具体的な構成及び/又は順序で示すかも知れない。しかし、言うまでもなく、かかる具体的な構成及び/又は順序は必須ではない場合がある。むしろ、幾つかの場合には、かかるフィーチャは、例示した図面に示したのとは異なる方法及び/又は順序で構成することもできる。また、ある図面に構造的又は方法フィーチャを含めることは、かかるフィーチャがすべての実施形態において必要であることを意味するのではなく、幾つかの実施形態では、含まれなくてもよいし、他のフィーチャと組み合わされてもよい。
図1を参照して、図示した実施形態では、管理データをブロードキャストするシステム100は、ネットワーク106により通信できる管理サーバ102と多数のクライアントデバイス104とを含む。使用時、後で説明するように、管理サーバ102は、ファウンテンコード(fountain code)としても知られるレートレスイレージャーコード(rateless erasure code)を用いて符号化された更新された管理データを、ネットワーク106により継続的かつ定期的に又は応答的にブロードキャストする。クライアントデバイス104は、ブートされるたびに、ネットワーク106を分析して、管理サーバ102によりブロードキャストされたメッセージフラグメント(message fragments)を受信する。クライアントデバイス104は、十分な数のメッセージフラグメントが受信されると、そのメッセージフラグメントを(使用されているファウンテンコードに適したアルゴリズムを適用して)復号し、インストールする管理データを回復する。クライアントデバイス104は、完全なメッセージを復号できる前に、二以上のブートサイクル(boot cycle)にわたりメッセージフラグメントを収集してもよい。開示の技術により、標準化された管理情報を1つの管理サーバ102により多数のクライアントデバイス104に非同期でブロードキャストできる。言い換えると、クライアントデバイス104は、そのブートイベントを同期させる必要はなく、任意の時に、任意の時間だけネットワーク106をサンプリング(sample)すればよい。このように、クライアントデバイス104の管理の性能及び/又はスケーラビリティを改善できる。また、管理データは、クライアントデバイス104のオペレーティングシステムが関与することなしに、クライアントデバイス104のファームウェアにより受信及びインストールされ得る。それゆえ、オペレーティングシステムの潜在的な弱点、脆弱性、またはソフトウェア欠陥を回避して、管理のセキュリティ及び/又は信頼性を改善できる。
管理サーバ102は、本明細書で説明するように、管理情報をブロードキャストするいかなるタイプのデバイスとして実施してもよい。例えば、管理サーバ102は、サーバコンピュータ、ワークステーション、デスクトップコンピュータ、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、モバイル計算デバイス、セルラフォン、ハンドセット、メッセージングデバイス、車両テレマティックスデバイス、分散計算システム、マルチプロセッサシステム、コンシューマエレクトロニクスデバイス、及び/又は本明細書に説明の機能を実行するように構成されたその他の任意の計算デバイスとして実施してもよいが、これは限定ではない。さらに、管理サーバ102は、1つのサーバ計算デバイスとして実施されてもよいし、複数のサーバ及び関連デバイスの集まりとして実施されてもよい。例えば、幾つかの実施形態では、管理サーバ102は、本明細書に説明の機能を実行するクラウドサービスとして実施されてもよい。かかる実施形態では、管理サーバ102は、ネットワーク106にわたり分散した複数の計算デバイスにより構成され、パブリックまたはプライベートクラウドで動作する「仮想サーバ」として実施され得る。管理サーバ102は、図1に示され、1つのサーバ計算デバイスとして実施されたものとして説明するが、言うまでもなく、協働して後で説明する機能を行う複数のデバイスとして実施してもよい。
図1に示したように、例示の管理サーバ102は、プロセッサ120、入出力サブシステム122、メモリ124、及びデータストレージデバイス126を含む。もちろん、管理サーバ102は、他の実施形態では、サーバ及び/又は据え置き型コンピュータに一般的に見つかるようなその他の又は追加的なコンポーネント(例えば、様々な入出力デバイスなど)を含み得る。また、幾つかの実施形態では、例示したコンポーネントのうち一以上は、他のコンポーネントに組み込まれていても良く、又はその一部を構成していても良い。例えば、メモリ124又はその部分は、幾つかの実施形態では、プロセッサ120に組み込まれていても良い。
プロセッサ120は、ここに説明する機能を実行できる任意のタイプのプロセッサとして実施できる。例えば、このプロセッサ120は、シングル又はマルチコアプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、又はその他のプロセッサ又は処理/制御回路として実施できる。同様に、メモリ124は、ここに説明する機能を実行できる、任意のタイプの揮発性又は不揮発性メモリ又はデータストレージとして実施できる。動作中、メモリ124は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバなど、管理サーバ102の動作中に用いられる様々なデータとソフトウェアを記憶できる。メモリ124は、I/Oサブシステム122を介してプロセッサ120に通信可能に結合している。I/Oサブシステム112は、プロセッサ120、メモリ124、及び管理サーバ102のその他のコンポーネントとの入出力動作を容易にする回路及び/又はコンポーネントとして実施できる。例えば、I/Oサブシステム122は、メモリコントローラハブ、入出力制御ハブ、ファームウェアデバイス、通信リンク(すなわち、ポイント・ツー・ポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路板トレースなど)及び/又は入出力動作を容易にするその他のコンポーネント及びサブシステムとして、又はこれらを含むものとして実施できる。幾つかの実施形態では、I/Oサブシステム122は、システム・オン・チップ(SoC)の一部を形成でき、単一の集積回路チップ上にプロセッサ120、メモリ124、及び管理サーバ102のその他のコンポーネントとともに、組み込むことができる。
データストレージデバイス126は、例えば、メモリデバイスと回路、メモリカード、ハードディスクドライブ、固体ドライブ、その他の記憶デバイスなどの、データを短期又は長期にわたり格納するように構成された任意のタイプのデバイスとして実施できる。データストレージデバイス126は、クライアントデバイス104にブロードキャストする管理データを格納してもよい。
管理サーバ102はさらに通信回路128を含む。これは管理サーバ102、クライアントデバイス104、及び/又はその他のリモートデバイス間の通信を可能にする任意の通信回路、デバイスまたはそれらの集まりとして実施し得る。通信回路128は、一以上の任意の通信技術(例えば、無線または有線通信)と、かかる通信を行う関連プロトコル(例えば、イーサネット(登録商標)、Bluetooth(登録商標)、Wi−Fi(登録商標)、WiMAXなど)とを用いるように構成されていてもよい。通信回路128は、無線ネットワークアダプタを含むネットワークアダプタとして実施されてもよい。
各クライアントデバイス104は、ここに説明の機能を実行するあらゆるタイプのデバイスとして実施してもよい。例えば、各クライアントデバイス104は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、モバイル計算デバイス、ウェアラブル計算デバイス、セルラフォン、ハンドセット、メッセージングデバイス、車両テレマティックスデバイス、サーバコンピュータ、ワークステーション、分散計算システム、マルチプロセッサシステム、コンシューマエレクトロニクスデバイス、及び/又はここに説明の機能を実行するように構成されたその他の任意の計算デバイスとして実施してもよく、これらに限定されない。このように、各クライアントデバイス104は、プロセッサ140、I/Oサブシステム142、メモリ144、データストレージ146、通信回路148、及び様々な周辺デバイスなど管理サーバ102に似たコンポーネント及びフィーチャ(features)を含み得る。各クライアントデバイス104の個別コンポーネントは、管理サーバ102の対応するコンポーネントと同様であってもよく、その説明は各クライアントデバイス104の対応するコンポーネントに適用可能であり、説明の明りょうにするため繰り返さない。
各クライアントデバイス104はさらにファームウェアキャッシュ150を含む。ファームウェアキャッシュ150は、いかなるデバイスであっても、クライアントデバイス104のファームウェア環境にアクセス可能であり、かつクライアントデバイス104が電源オフであり、又は電源から切り離されている間にデータを持続的に記憶するように構成されたものでとして実施してもよい。図示した実施形態では、ファームウェアキャッシュ150はプラットフォームフラッシュメモリチップとして実施されている。他の実施形態では、ファームウェアキャッシュ150は、組み込み型不揮発性メモリシステム(例えば、eMMCデバイス)として、またはデータストレージデバイス146のシステムパーティション上にあるファームウェアボリュームの一部として実施してもよい。このように、幾つかの実施形態では、ファームウェアキャッシュ150は、例えば、I/Oサブシステム142などのクライアントデバイス104の一以上の他のコンポーネントに組み込まれてもよい。後で説明するように、ファームウェアキャッシュ150を用いて、クライアントデバイス104により受信されたブロードキャストされたメッセージフラグメントを持続的に記憶してもよい。
幾つかの実施形態では、クライアントデバイス104のうちの一以上はマネージャビリティエンジン(manageability engine)152を含んでいてもよい。マネージャビリティエンジン152は、クライアントデバイス104のリモート設定、制御、または管理を提供するデバイスとして実施される。例示のマネージャビリティエンジン152はアウトオブバンド(out−of−band)プロセッサ154を含む。アウトオブバンドプロセッサ154は、クライアントデバイス104の主プロセッサ140とは別のもの(separate and distinct)である。そのため、マネージャビリティエンジン152は、残りのクライアントデバイス104の状態とは独立して動作可能である。すなわち、マネージャビリティエンジン152は、プロセッサ140の動作状態にかかわらず、動作可能であり、例えば、クライアントデバイス104が電源オフである時、クライアントデバイス104がプリブートファームウェア環境を実行している時、クライアントデバイス104のオペレーティングシステムがアクティブである時、及びオペレーティングシステムがクラッシュし又は非アクティブである時でも動作可能である。マネージャビリティエンジン152は、クライアントデバイス104の状態とは独立して、通信回路148を用いて通信することもできる。これは「アウトオブバンド(out−of−band)」通信としても知られている。幾つかの実施形態では、マネージャビリティエンジン152は、かかるアウトオブバンド通信のために、通信回路148を介した接続に加え、又はその替わりに、専用ネットワークアダプタを含んでも良い。幾つかの実施形態では、マネージャビリティエンジン152は、I/Oサブシステム142に組み込まれてもよいし、I/Oサブシステム142の一部を構成してもよい。よって、幾つかの実施形態では、マネージャビリティエンジン152は、ネットワーク106を分析して、管理サーバ102によりブロードキャストされたメッセージフラグメントを受信してもよく、リスタートイベント時にプラットフォームファームウェアによりインストールのため、回復した管理データを交互に露出してもよい。
ここで図2を参照して、幾つかの実施形態では、管理サーバ102は、動作中に環境200を確立する。例示の環境200は、クライアント管理モジュール202、ファウンテン符号化モジュール204、及びブロードキャストモジュール206を含む。環境200の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせとして実施されてもよい。
クライアント管理モジュール202は、クライアントデバイス104の一以上にブロードキャストする管理データを受信または読み出しするように構成されている。管理データは、いかなる情報、コード、設定、その他のデータであっても、クライアントデバイス104をセットアップ、設定、または管理するのに用いられるものを含み得る。例えば、管理データは、企業セキュリティポリシー、ファームウェアイメージ、またはソフトウェアアプリケーションの実装に用いられる証明書取り消しリストその他のデータを含み得る。例示の実施形態では、管理データは、管理モジュール202により参照される管理データベース208に含まれる。管理データは、クライアントデバイス104を管理する責任を負うネットワーク管理者、エンタープライズサーバ、その他のデータ源により提供されても、保持されていてもよい。
ファウンテン符号化モジュール204は、ファウンテンコードを用いて、管理データを一連のメッセージフラグメントに符号化するように構成されている。後で詳しく説明するように、ファウンテンコード(fountain codes)は、レートレスイレージャーコード(rateless erasure codes)としても知られ、有限のソースメッセージを、実際的に制約されない数の符号化出力シンボルすなわちメッセージフラグメントに符号化できる。符号化データの受信器は、閾値より多いメッセージフラグメントが受信される限り、受信されたメッセージフラグメントからソースメッセージを回復してもよい。
ブロードキャストモジュール206は、符号化されたメッセージフラグメントを、一以上のクライアントデバイス104にブロードキャストするように構成されている。ブロードキャストモジュール206は、継続的に、定期的に、又は応答的に、ネットワーク106によりメッセージフラグメントをブロードキャストする。ブロードキャストモジュール206は、ネットワーク106によりメッセージフラグメントをマルチキャストし、どのクライアントデバイス104がネットワークを分析していても、メッセージフラグメントを受信できるようにしてもよい。ブロードキャストモジュール206は、クライアントデバイス104がメッセージフラグメントの受信を確認またはアクノレッジ(acknowledge)することは必要としなくてもよい。
まだ図2を参照して、幾つかの実施形態では、各クライアントデバイス104は、動作中に環境210を確立する。図示した環境210は、ファームウェア環境212とオペレーティングシステム222とを含む。環境210の様々なモジュールまたはコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせとして実施されてもよい。また、幾つかの実施形態では、ファームウェア環境212及び/又はオペレーティングシステム222のモジュールの一部または全部は、他のモジュール又はソフトウェア/ファームウェア構造と一体かされても、またはその一部を構成してもよい。
ファームウェア環境212は、ネットワークモジュール214、ファウンテン復号モジュール216、更新管理モジュール218、及びブートターゲット(boot target)220を含む。ファームウェア環境212は、uniform extensible firmware interface(UEFI)仕様書(すなわち、UEFI BIOS)を実装するプラットフォームファームウェアとして実施してもよい。追加的に、または代替的に、ファームウェア環境212はマネージャビリティエンジン152のファームウェアとして実施されてもよい。ネットワークモジュール214は、ネットワーク106を定期的に分析して、管理サーバ102によりブロードキャストされたメッセージフラグメントを受信するように構成されている。ネットワークモジュール214は、例えば、ネットワーク106により受信されたマルチキャストネットワークトラフィックをフィルタするように構成されている。
ファウンテン復号モジュール216は、ネットワークモジュール214により受信されたメッセージフラグメントを復号するように構成されている。ファウンテン復号モジュール216は、十分な数のメッセージフラグメントを受信した後に、完全なメッセージを復号し得る。ファウンテンコードアルゴリズムの特徴により、ファウンテン復号モジュール216は、特定のメッセージフラグメントを受信する必要はなく、特定の順序でメッセージフラグメントを受信する必要もない。複数のブートイベントにまたがって受信されたメッセージフラグメントを復号するため、ファウンテン復号モジュール216は、そのメッセージフラグメント(復号されたメッセージフラグメントや部分的に復号されたものを含む)をファームウェアキャッシュ150に格納してもよい。上記の通り、完成したメッセージは管理サーバ102により供給された管理データを含む。
更新管理モジュール218は、管理サーバ102から受信した完成メッセージを解析し、含まれる管理データがクライアントデバイス104にインストールされるべきか判断し、必要なら管理データをインストールするように構成されている。管理データは、クライアントデバイス104のプラットフォーム設定データ(platform configuration data)224を更新することにより、インストールされてもよい。そのプラットフォーム設定データ224は、いかなるファイル、ボリューム、実行ファイル、ファームウェアイメージ、グローバル変数、又はその他の設定であってクライアントデバイス104の動作に影響するものとして実施されてもよい。幾つかの実施形態では、プラットフォーム設定データ224は、クライアントデバイス104にインストールされた一以上のソフトウェアアプリケーションとして実施されてもよい。
ブートターゲット220は、ブートサービスを終了し、オペレーティングシステムローダを開始するように構成されている。次いで、オペレーティングシステムローダが、オペレーティングシステム222を立ち上げる。ブートターゲット220は、例えば、uniform extensible firmware interface(UEFI)仕様に応じたプラットフォームポリシーに基づいて、複数の潜在的なブートターゲットの中から選択されてもよい。クライアントデバイス104が一以上のメッセージフラグメントを受信し、メッセージがまだ完全ではないと判断した後、ブートターゲット220は、オペレーティングシステム222を立ち上げてもよい。もちろん、ブートターゲット220は、更新された管理データのインストールに応じて、オペレーティングシステム222を立ち上げても良い。
ここで図3を参照して、使用時、管理サーバ102は、管理情報をブロードキャストする方法300を実行してもよい。方法300は、ブロック302で始まる。ブロック302において、管理サーバ102が、一以上のクライアントデバイス104にインストールする管理データを受信または読み出しする。管理データは、ネットワーク管理者、管理アプリケーション、エンタープライズサーバ、またはその他のエンティティまたはプロセスであってクライアントデバイス104の管理の責任を負っているものから受信または読み出ししてもよい。管理データは、クライアントデバイス104のすべてまたはクライアントデバイス104の一部にインストールするように構成されていてもよい。管理データは、いかなる情報、コード、設定、その他のデータであって、クライアントデバイス104をセットアップ、設定、または管理するのに用いられるものとして実施してもよい。例えば、幾つかの実施形態では、ブロック304において、管理サーバ102が、クライアントデバイス104にインストールするバイナリファームウェアイメージを受信または読み出ししてもよい。バイナリファームウェアイメージは、クライアントデバイス104により用いられる一以上のドライバ、アプリケーション、または構成設定を含み得る。例えば、バイナリファームウェアイメージにより、各クライアントデバイス104における企業規模のリソースの使用が可能となる。追加的に又は代替的に、幾つかの実施形態では、ブロック306において、管理サーバ102は取り消しリストを受信または読み出しても良い。証明書取り消しリスト(certificate revocation list)は、各クライアントデバイス104が、デジタル署名を認証するのに用いることができる。例えば、後でさらに詳しく説明するように、証明書取り消しリストは、UEFI仕様書で規定され、セキュアブートプロセスで用いられる「dbx」証明書データベースであってもよい。
ブロック308において、管理サーバ102は、ファウンテンコードアルゴリズムを用いて、管理データを複数のメッセージフラグメントに符号化する。ファウンテンコード(fountain code)は、レートレスイレージャーコード(rateless erasure code)としても知られ、有限の入力シンボルのセットを長さが制約されない符号化された出力シンボルに符号化する。言い換えると、ファウンテンコードは、(管理データなどの)入力データのセットを、長さが制約されない符号化されたデータ(unbounded stream of encoded data)に変換する。一般的に、元の入力シンボルは、閾値より多い符号化シンボルを含む符号化シンボルのセットから回復してもよい。理想的なファウンテンコードにより、同数の符号化シンボルがあれば、入力シンボルの回復ができる。実際には、入力シンボルを回復するには、少し多い符号化シンボルが必要となることがある。このように、管理サーバ102は、管理データ、または管理データを含むフォーマット化されたメッセージ(入力シンボル)にファウンテンコードアルゴリズムを適用して、符号化されたメッセージフラグメント(符号化出力シンボル)を生成する。管理サーバ102は、LTコードアルゴリズムやRaptorコードアルゴリズムを含むがこれらに限定されない任意の好適なファウンテンコードアルゴリズムを利用できる。
ブロック310において、管理サーバ102は、ネットワーク106によりメッセージフラグメントを不ロードキャストして、一以上のクライアントデバイス104がメッセージフラグメントを受信するようにする。管理サーバ102は、メッセージフラグメントをマルチキャストしてもよく、または各メッセージフラグメントを受信クライアントデバイス104に同時に送信してもよい。管理サーバ102は、クライアントデバイス104からのアクノレッジメントや確認の受信を待たずに、メッセージフラグメントをブロードキャストしてもよい。管理サーバ102は、ネットワーク106に適したデータレートで、メッセージフラグメントを継続的に、定期的に、又は応答的にブロードキャストしてもよい。
ブロック312において、管理サーバ102は、管理データが更新されたか、又は更新されるべきか判断する。例えば、管理サーバ102は、ネットワーク管理者から管理情報を更新する要求を受信してもよい。管理データが更新されるべきとき、方法300はブロック302に戻り、更新された管理データを受信する。管理データの更新が必要ないとき、方法300はブロック310に戻り、ネットワーク106によりメッセージフラグメントをブロードキャストし続ける。
ここで図4を参照して、使用時、クライアントデバイス104はUEFI仕様書に従ってブートプロセス400を実行してもよい。クライアントデバイス104が電源オンの時はいつも、ブートプロセス400を実行してもよい。これには、電気的または機械的に完全にオフの状態からクライアントデバイス104が電源オンされた時、「ソフトオフ」パワー状態からクライアントデバイス104がパワーオンされた時、クライアントデバイス104がリセットまたはリブートされた時、クライアントデバイス104がスリープ状態から目覚めた時を含む。ブートプロセス400の実行中、クライアントデバイス104は、完全にファームウェア環境212の制御下にあってもよい。ブロック402において、クライアントデバイス104はプラットフォームハードウェアを初期化する。例えば、クライアントデバイス104は、ロードを要するコンポーネントを初期化し、またはファームウェア環境212、例えばメモリ144及びI/Oサブシステム142を処理してもよい。
ブロック404において、クライアントデバイス104は、一以上のファームウェアによりインストールドライバ406またはファームウェアアプリケーション408のファームウェア忌め^時をロード及びスタートする。ファームウェアドライバ406及びファームウェアアプリケーション408は、データストレージデバイス146のシステムパーティションに格納されてもよいバイナリイメージである。ロードすべきドライバ及びアプリケーションは、プラットフォームに依存し、例えば、クライアントデバイス104のプラットフォームフラッシュメモリにクライアントデバイス104のグローバル変数に列挙される。クライアントデバイス104は、ロードすべきファームウェアドライバ406とアプリケーション408を列挙し、必要なブート順序を決定してもよい。ブート順序は、ファームウェアドライバ406とアプリケーション408との間の依存性に基づいても良い。
ファームウェアドライバ406とアプリケーション408は類似しているが、アプリケーション408は一般的にそのエントリーポイントから返されると、メモリ144からアンロード(unload)されるが、ドライバ406は一般的にエラーコードとともに返されなければ、メモリ144に常駐する点で異なる。ファームウェアドライバ406とアプリケーション408は、クライアントデバイス104のハードウェアを初期化または制御してもよい。ファームウェアドライバ406またはアプリケーション408は、ファームウェアプロトコルインターフェースをインストールしてもよい。ファームウェアプロトコルインターフェースは、ファンクションコールインターフェースを記述し、インストールされた後、他のファームウェアイメージに提供されたサービスを呼び出させる。例えば、一以上のファームウェアドライバ406またはアプリケーション408は、クライアントデバイス104に通信回路148にアクセスさせ、及び/又はブロードキャストされた管理情報を受信させるプロトコルをインストールしてもよい。幾つかの実施形態では、管理更新プロセス410は、ファームウェアドライバ406として、及び/又はファームウェアアプリケーション408として、実行されてもよい。管理更新プロセス410は、図5を参照してさらに詳しく説明するように、管理サーバ102によりブロードキャストされた管理データを受信及び/又はインストールしてもよい。
ブートプロセス400は、さらにセキュアブートサブシステム412を含む。セキュアブートサブシステム412は、ファームウェアイメージをロードする前に、すべてのファームウェアイメージを認証してもよい。セキュアブートサブシステム412は、例えば、信頼された証明書(trusted certificates)のセットに対してファームウェアイメージに関連するデジタル署名を正当性確認することにより、ファームウェアイメージを認証してもよい。セキュアブートサブシステム412は、認証された証明書(「ホワイトリスト」)または禁じられた証明書(「ブラックリスト」または「証明書取り消しリスト」)を含む一以上のデータベースを保持または参照してもよい。例えば、UEFI仕様書の規定によると、許可される証明書は署名データベース「db」(SECURITY_DATABASEとしても知られている)に格納され、禁じられる証明書は署名データベース「dbx」(SECURITY_DATABASE1としても知られている)に格納される。ロードする前に各ファームウェアイメージを認証することにより、(後で説明する各ブートターゲット416に含まれる)ブートプロセス400中に実行されるすべてのソフトウェアが信頼されたソース(trusted source)から得られたものであることをクライアントデバイス104に確認させることにより、セキュリティを改善できる。
ブロック414において、クライアントデバイス104はブートターゲット416を決定しロードする。ブートターゲット416は、クライアントデバイス104によりロードされ、スタートされるファームウェアアプリケーションである。それゆえ、ブートターゲット416は、セキュアブートサブシステム412に従ってもよい。ブートターゲットは一般的にはオペレーティングシステムローダであるが、ブートターゲットは診断アプリケーション、メンテナンスアプリケーション、又は管理アプリケーションを含んでもよい。選択されるブートターゲット416は、例えば、プラットフォームフラッシュメモリに格納された、クライアントデバイス104のグローバル変数で指示されてもよい。クライアントデバイス104のグローバル変数は、複数のブートターゲットを指定してもよく、これにはブートターゲット416の相対的順序を含んでもよい。幾つかの実施形態では、ブートターゲット416は、クライアントデバイス104に提示されるメニューその他の手段により、クライアントデバイス104のユーザにより選択されてもよい。幾つかの実施形態では、クライアントデバイス104は、デフォルトブートターゲット416、またはブートターゲット416を選択するデフォルトルールを含んでいてもよい。
ブートターゲット416において、クライアントデバイス104は、オペレーティングシステムローダ418に制御を渡す。かかるオペレーティングシステムローダ418は、データストレージデバイス146のシステムパーティションに格納されなくてもよい。ハンドオフの一部として、ブートターゲット416は、ブロック420に進み、例えばUEFI関数ExitBootServices()をコールすることにより、ブートサービスを終了する。それゆえ、かかるブートターゲット416が成功であれば、ブートプロセス400は完了し、オペレーティングシステム222はクライアントデバイス104を完全に制御する。オペレーティングシステム222に制御が渡された後は、特にruntime−capableと指定されているファームウェアサービスのみが利用可能である。それゆえ、多くの実施形態では、ブートサービスが終了した後は、通信回路148にアクセスを許されているファームウェアドライバ406またはアプリケーション408は、もう利用できない。ブートターゲット416によりブートサービスが終了されない場合、例えば、オペレーティングシステムローダ418がオペレーティングシステム222をロードできない場合、クライアントデバイス104は他のブートターゲット416をロードするよう試みてもよい。
ここで図5を参照して、使用時、クライアントデバイス104は、ブロードキャストされた管理データを受信する方法500を実行してもよい。方法500はブロック502で始まる。ブロック502において、クライアントデバイス104はブートされる。上記の通り、クライアントデバイス104のブートは、プラットフォームのパワーオン、プラットフォームのリセット、又はスリープ状態からのプラットフォームの目覚めに応じて、行われる。上記の通り、ブート時、クライアントデバイス104は、ブートプロセス400を実行してもよい。これには、様々なファームウェアドライバ406とアプリケーション408のロードが含まれる。方法500の様々な動作は、このように、一以上のファームウェアドライバ406またはアプリケーション408により実行してもよい。
ブロック504において、クライアントデバイス104はファームウェアドライバ406及び/又はファームウェアアプリケーション408をロード及び初期化する。上記の通り、ファームウェアドライバ406とファームウェアアプリケーション408は、ブートプロセス400の一部としてロードされてもよい。クライアントデバイス104は、クライアントデバイス104に、ブロードキャストされた管理データ、例えばネットワークインターフェースドライバを受信させるファームウェアドライバ406及び/又はアプリケーション408をロードする。ブロック506において、クライアントデバイス104はファウンテンコードドライバをロードする。ファウンテンコードドライバは、ネットワーク106の分析と、受信したメッセージフラグメントの復号を含む方法500の様々な動作を実行するように構成されてもよい。ファウンテンコードドライバはファームウェアドライバ406として実施してもよい。したがって、ファウンテンコードドライバは、他のファームウェアドライバ406及び/又はファームウェアアプリケーション408をロードすることにより依存性がみたされてから、ロードしてもよい。ファウンテンコードドライバをロードした後、クライアントデバイス104は、例えば、別のファームウェアドライバ406及び/又はファームウェアアプリケーション408をロードすることにより、ブートプロセス500を継続してもよい。
ブロック508において、クライアントデバイス104は、ネットワーク106を分析して、入来するメッセージフラグメントを探す。クライアントデバイス104は、ネットワーク106からデータをサンプリング、読み取り、オープン、又は収集して、入来するメッセージフラグメントを受信する。これらのメッセージフラグメントは、上記の通り、ファウンテンコードアルゴリズムを用いて管理サーバ102により生成されたものでもよい。クライアントデバイス104は、通信回路148に現れるネットワークトラフィックをサンプリングする。クライアントデバイス104が管理サーバ102を待ち、アクノレッジし、または同期する必要はない。幾つかの実施形態では、ブロック510において、クライアントデバイス104は、管理サーバ102からネットワーク106を介して受信されたマルチキャストデータをフィルタすることにより、ネットワークをサンプリングしてもよい。例えば、クライアントデバイス104は、マルチキャストデータを認識し処理するフィルタドライバをインストールしてもよい。
ブロック512において、クライアントデバイス104は、メッセージフラグメントを求めてネットワーク106を分析する時間が経過したか判断する。上記の通り、ファウンテンコードは、完成メッセージを復号するにはある最小数のメッセージフラグメントを必要とする。それゆえ、より長い時間ネットワーク106を分析し、潜在的により多くのメッセージフラグメントを受信することにより、メッセージを復号するのに必要な時間及び/又はプラットフォームブートイベント数を低減できる。しかし、一般的に、ブートプロセスの時間の短縮は多くのクライアントデバイス104にとって望ましく、多くのオペレーティングシステム222は、ブートプロセスの総時間の制限を規定する。それゆえ、サンプリングされるメッセージフラグメント量と、ブートプロセスの速さとの間のバランスを取るため、様々な実施形態は異なるタイムアウトを用いてもよい。タイムアウトの長さはプラットフォームポリシーにより決定されてもよい。例えば、コンシューマクライアントデバイス104は、これにより1つのメッセージフラグメントを受信できる、相対的に短いタイムアウトを用い、ブートプロセスの速さを強調してもよい。他の一例として、企業クライアントデバイス104は、1秒ないし数秒のオーダーの相対的な長さのタイムアウトを用いて、各ブートイベントに対して多くのメッセージフラグメントが受信される確立を大きくしても良い。追加的に又は代替的に、幾つかの実施形態では、タイムアウト(timeout)はブートプロセス400の終わりに対応してもよい。言い換えると、これらの実施形態では、クライアントデバイス104は、ブートプロセス400が完了し、オペレーティングシステム222をロードする準備ができるまで、ネットワーク106を分析してもよい。タイムアウトが終わると、方法500はブロック508に戻り、ネットワーク106の分析を続ける。タイムアウトが終わると、方法500はブロック514に進む。
ブロック514において、クライアントデバイス104は、タイムアウトの終了前に、ネットワーク106からメッセージフラグメントを受信したか判断する。メッセージフラグメントが受信されていなければ、方法500は、ブロック536に飛び、クライアントデバイス104のブートを続ける。後でさらに詳しく説明するように、クライアントデバイス104は、未来のブートイベントに応じてメッセージフラグメントを受信してもよい。しかし、タイムアウトの終了前にメッセージフラグメントが受信されたとき、方法500はブロック516に進む。
ブロック516において、クライアントデバイス104は、受信したメッセージフラグメントをファームウェアキャッシュ150に格納する。上記の通り、ファームウェアキャッシュ150は、ファームウェア環境212にアクセス可能な不揮発性記憶媒体として実施してもよい。このように、キャッシュされたメッセージフラグメントは、その後のブートイベントでメッセージを復号するために用いられてもよい。もちろん、ファームウェアキャッシュ150は、前のブートイベントで格納された、キャッシュされたメッセージフラグメントを含んでもよい。したがって、メッセージフラグメントは、複数のブートイベントにわたり、ファームウェアキャッシュ150に蓄積されてもよい。

ブロック518において、クライアントデバイス104は、ファームウェアキャッシュ150に格納されたメッセージフラグメントを復号して、ソースメッセージの少なくとも一部を生成する。上記の通り、クライアントデバイス104は、メッセージフラグメントを符号化するのに用いられたファウンテンコードに対する適切な復号アルゴリズムを利用する。クライアントデバイス104により格納された動作とデータは、使用しているファウンテンコードに依存してもよい。例えば、LTコードの場合、クライアントデバイス104は、復号されたフラグメント(すなわち、1次のフラグメント)の内容に基づき、ファームウェアキャッシュ150に格納されたメッセージフラグメントの値を繰り返し更新してもよい。幾つかの実施形態では、個々のメッセージフラグメントは、時間的により近く受信されたメッセージフラグメントに基づいて、部分的に復号されてもよい。引き続き前出の例で、LTコードの場合、クライアントデバイス104は、時間的により近くに受信されたメッセージフラグメントに基づいて、キャッシュされたメッセージフラグメントの次数(degree)を減らしても良い。クライアントデバイス104は、メッセージフラグメントを適切に更新しても、復号された又は部分的に復号されたメッセージフラグメントをファームウェアキャッシュ150に格納してもよい。
ブロック520において、クライアントデバイス104は、完全なメッセージが受信されたか判断する。メッセージが完全か判断するのに用いる方法は、利用するファウンテンコードに依存する。例えば、LTコードの場合、クライアントデバイス104は、すべてのメッセージフラグメントのdegreeが1であるか判断する。完全なメッセージが受信されていなければ、方法500は、後で説明するように、ブロック536に進み、ブートターゲット416を実行する。完全なメッセージが受信されていれば、方法500はブロック522に進む。
ブロック522において、クライアントデバイス104は、完成されたメッセージを解析して、それに含まれる管理データを特定する。メッセージは管理データの送信に好適なデータフォーマットでフォーマットされてもよい。メッセージは、管理データを記述する追加ヘッダその他のメタデータを含んでもよい。例えば、メッセージは管理データを含むファームウェアボリュームとしてフォーマットされてもよい。もちろん、幾つかの実施形態では、メッセージは管理データ自体を含んでいてもよい。幾つかの実施形態では、ブロック524において、クライアントデバイス104は、メッセージから、ファームウェアドライバ406やファームウェアアプリケーション408などのバイナリファームウェアイメージを読み出す。幾つかの実施形態では、ブロック526において、クライアントデバイス104はメッセージから証明書取り消しリスト(certificate revocation list)を読み出す。このリストは、例えば、UEFI仕様書に規定されている「dbx」データベースなどである。管理データは、読み出されたファームウェアイメージ及び/又は証明書取り消しリストとして実施してもよい。
ブロック528において、クライアントデバイス104は、管理データをインストールするか判断する。クライアントデバイス104は、管理データをインストールするか判断するどんな適切な基準を用いてもよい。例えば、クライアントデバイス104は、管理データがクライアントデバイス104と互換性があるか、又はクライアントデバイス104に適用可能か、または管理データがクライアントデバイス104にすでにインストールされているか判断してもよい。クライアントデバイス104が管理データをインストールしないと判断すれば、後で説明するように、方法500はブロック536に飛び、ブートターゲット416を実行する。管理データがインストールされる場合、方法500はブロック530に進む。
ブロック530において、クライアントデバイス104は、管理データをクライアントデバイス104のプラットフォーム設定データ(platform configuration data)224に適用することにより、管理データをインストールする。クライアントデバイス104は、管理データをインストールするのに必要な動作を実行し、設定を変更し、ファイルやデータを記憶する。さらに、管理データは、一時的に(例えば、メモリ144に)インストールされてもよいし、永続的に(例えば、データストレージ146に)インストールされてもよい。幾つかの実施形態では、ブロック532において、クライアントデバイス104はバイナリファームウェアイメージをインストールしてもよい。例えば、クライアントデバイス104は、ファームウェアイメージをロードおよび実行してもよく、及び/又はファームウェアイメージをデータストレージ146のシステムパーティションに格納してもよい。幾つかの実施形態では、ブロック534において、クライアントデバイス104は証明書取り消しリストをインストールしてもよい。例えば、クライアントデバイス104は、「dbx」禁止証明書データベースをプラットフォームフラッシュメモリのグローバル変数に格納してもよい。
ブロック536において、クライアントデバイス104はブートターゲット416を実行し、これで方法500は完了する。上記の通り、ブートターゲット416は一般的にオペレーティングシステムローダ418をスタートさせる。次いで、オペレーティングシステムローダ418はオペレーティングシステム222を立ち上げる。オペレーティングシステム222が立ち上が(り、ブートサービスが終了す)ると、ファームウェア環境212はもはやクライアントデバイス104のプラットフォームハードウェアの制御下にはない。このように、クライアントデバイス104は、オペレーティングシステム222の実行中にファウンテンコードメッセージフラグメントを受信及び/又は応答しなくてもよい。方法500は、次のプラットフォームブートイベント中に再び実行されてもよい。例えば、方法500は、クライアントデバイス104が物理的にパワーサイクル(power−cycled)され、リブートされ、またはスリープ状態から目覚めた時に、再び実行されてもよい。
ここまで、方法500は、プラットフォームブートイベントに応じてファームウェア環境212のクライアントデバイスにより実行されるものとして説明したが、言うまでもなく、幾つかの実施形態では、ファームウェア環境212がクライアントデバイス104の制御下にある時はいつでも実行されてよい。追加的に又は代替的に、幾つかの実施形態では、方法500の一部または全部が、マネージャビリティエンジン152により、アウトオブバンド(out−of−band manner)で実行されてもよい。例えば、方法500は、セキュリティ・マネージャビリティ連合エンジン(combined security and manageability engine(CSME))またはクライアントデバイス104のシステムオンチップ(SoC)パッケージに含まれるその他のマイクロコントローラにより実行されてもよい。かかる例では、方法500は、ランタイムに、プロセッサ140がアクティブである間に、またはSoCのアクティブアイドル状態(例えば、SOix状態)との移行を含むブートイベント以外の追加的パワー状態移行中に、実行されてもよい。例えば、マネージャビリティエンジン152は、継続的に、定期的に、又は応答的にネットワーク106を分析して、管理サーバ102によりブロードキャストされたメッセージフラグメントを受信し、管理データを回復する。マネージャビリティエンジン152は、UEFI変数ストアに直接アクセスできる場合、例えば、SECURITY_DATABASE及び/又はSECURITY_DATABASE1を直接更新することにより、管理データを直接適用してもよい。追加的に又は代替的に、マネージャビリティエンジン152は、その後のプラットフォームリスタートイベント時に、UEFIファームウェアによる更新のため、これらのデータベースに更新をエクスポーズ(expose)してもよい。
実施例
本明細書に開示の技術の例を以下に記載する。本技術の実施形態は、以下に記載の一以上の例、及びそれらの組み合わせを含み得る。
実施例1は、ブロードキャストされた管理情報を受信するクライアントデバイスであって、前記クライアントデバイスのブートプロセス中に前記クライアントデバイスのネットワークインターフェースを分析し、管理サーバによりブロードキャストされたメッセージフラグメントを受信するネットワークモジュールと、(i)ファウンテンコード復号アルゴリズムを用いて前記メッセージフラグメントを復号して、メッセージの少なくとも一部を生成し、(ii)前記メッセージの少なくとも一部の生成に応じて、前記メッセージが完全であるか判断するファウンテン復号モジュールと、(i)前記メッセージが完全であるとの判断に応じて、前記メッセージを解析して、前記管理サーバによる前記メッセージに含まれる管理データを特定し、(ii)前記管理データを前記クライアントデバイスに適用する更新管理モジュールとを有する。
実施例2は実施例1の主題を含み、前記ネットワークモジュール、前記ファウンテンコードモジュール、及び前記更新管理モジュールを確立するファームウェア環境をさらに含む。
実施例3は実施例1及び2いずれかの主題を含み、前記ファウンテンコード復号モジュールはさらに、前記メッセージフラグメントを、前記クライアントデバイスのファームウェアキャッシュに格納し、前記メッセージフラグメントの復号は、前記ファームウェアキャッシュに格納されたメッセージフラグメントを含み、前記メッセージが完全であるかの判断は、前記ファームウェアキャッシュに格納されたメッセージフラグメントの復号に応じた、前記メッセージが完全であるかの判断を含む。
実施例4は実施例1−3のいずれかの主題を含み、前記ネットワークモジュールは前記ネットワークインターフェースを分析し、前記ファウンテンコード復号モジュールは、前記クライアントデバイスのリブートに応じて、前記メッセージフラグメントを復号し、前記メッセージが完全であるか二度目の判断をする。
実施例5は実施例1−4のいずれかの主題を含み、前記メッセージが完全ではないとの判断に応じて、又は前記管理データの適用に応じて、前記クライアントデバイスのオペレーティングシステムをロードするブートターゲットを含む。
実施例6は実施例1−5のいずれかの主題を含み、前記更新管理モジュールはさらに、前記メッセージの解析に応じて、前記管理データが前記クライアントデバイスと互換性があるか判断し、前記管理データの適用はさらに、前記管理データが前記クライアントデバイスと互換性があるとの判断に応じた、前記管理データの適用を含む。
実施例7は実施例1−6のいずれかの主題を含み、前記ファウンテンコード復号アルゴリズムは、LTコード、Raptorコード、又はRaptorQコードを含む。
実施例8は実施例1−7のいずれかの主題を含み、前記管理データは前記メッセージに含まれたバイナリファームウェアイメージを含む。
実施例9は実施例1−8のいずれかの主題を含み、前記管理データは前記メッセージに含まれた証明書取り消しリストを含む。
実施例10は実施例1−9のいずれかの主題を含み、前記証明書取り消しリストはセキュアブートブラックリストを含む。
実施例11は実施例1−10のいずれかの主題を含み、前記管理データは前記メッセージに含まれたソフトウェアアプリケーションを含む。
実施例12は実施例1−11のいずれかの主題を含み、前記ネットワークモジュール、前記ファウンテン復号モジュール、及び前記更新管理モジュールを含むマネージャビリティエンジンをさらに含む。
実施例13は実施例1−12のいずれかの主題を含み、前記クライアントデバイスのオペレーティングシステムを実行するインバンドプロセッサをさらに含み、前記ネットワークモジュールは、前記オペレーティングシステムの実行中に、前記クライアントデバイスのネットワークインターフェースを分析し、前記管理サーバによりブロードキャストされたメッセージフラグメントを受信する。
実施例14は実施例1−13のいずれかの主題を含み、前記ネットワークインターフェースの分析は、前記ネットワークインターフェースの分析、及びファウンテンコード符号化アルゴリズムを用いて符号化されたメッセージフラグメントの受信を含む。
実施例15は実施例1−14のいずれかの主題を含み、前記ネットワークインターフェースの分析は、前記管理サーバによりネットワーク上にブロードキャストされたマルチキャストデータのフィルタを含む。
実施例16は実施例1−15のいずれかの主題を含み、前記ネットワークインターフェースは、前記クライアントデバイスの無線ネットワークインターフェースを含む。
実施例17は、管理情報をブロードキャストする管理サーバであって、ファウンテンコード符号化アルゴリズムを用いて管理データを複数のメッセージフラグメントに符号化するファウンテン符号化モジュールと、複数のクライアントデバイスがアクセスできるネットワークに前記複数のメッセージフラグメントを連続的にブロードキャストするブロードキャストモジュールとを有する。
実施例18は実施例17の主題を含み、前記管理データはバイナリファームウェアイメージを含む。
実施例19は実施例17及び18のどちらかの主題を含み、前記管理データは証明書取り消しリストを含む。
実施例20は実施例17−19のいずれかの主題を含み、前記証明書取り消しリストはセキュアブートブラックリストを含む。
実施例21は、ブロードキャストされた管理情報を受信する方法であって、クライアントデバイスが、前記クライアントデバイスのブートプロセス中に前記クライアントデバイスのネットワークインターフェースを分析し、管理サーバによりブロードキャストされたメッセージフラグメントを受信するステップと、前記クライアントデバイスが、ファウンテンコード復号アルゴリズムを用いて、前記メッセージフラグメントを復号し、メッセージの少なくとも一部を生成するステップと、前記クライアントデバイスが、前記メッセージフラグメントの復号に応じて、前記メッセージが完全であるか判断するステップと、前記メッセージが完全であるとの判断に応じて、前記クライアントデバイスが、前記メッセージを解析し、前記管理サーバにより前記メッセージに含まれた管理データを特定するステップと、前記クライアントデバイスが、前記管理データを前記クライアントデバイスに適用するステップとを含む。
実施例22は実施例21の主題を含み、前記ネットワークインターフェースを分析するステップ、前記メッセージフラグメントを復号するステップ、前記メッセージが完全であるか判断するステップ、前記メッセージを解析するステップ、及び前記管理データを適用するステップは、すべて前記クライアントデバイスのファームウェア環境により実行される。
実施例23は実施例21及び22のどちらかの主題を含み、前記クライアントデバイスが、前記クライアントデバイスのファームウェアキャッシュに前記メッセージフラグメントを格納するステップをさらに含み、前記メッセージフラグメントを復号するステップは、前記ファームウェアキャッシュに格納されたメッセージフラグメントを復号するステップを含み、前記メッセージが完全であるか判断するステップは、前記ファームウェアキャッシュに格納されたメッセージフラグメントの復号に応じた、前記メッセージが完全であるか判断するステップを含む。
実施例24は実施例21−23のいずれかの主題を含み、前記クライアントデバイスをリブートするステップと、前記クライアントデバイスのリブートに応じて、前記ネットワークインターフェースを分析し、前記メッセージフラグメントを復号し、前記メッセージが完全であるか二度目に判断するステップとを含む。
実施例25は実施例21−24のいずれかの主題を含み、前記メッセージが完全ではないとの判断に応じて、又は前記管理データの適用に応じて、前記クライアントデバイスが、前記クライアントデバイスのオペレーティングシステムをローディングするステップをさらに含む。
実施例26は実施例21−25のいずれかの主題を含み、前記メッセージの解析に応じて、前記クライアントデバイスが、前記管理データが前記クライアントデバイスと互換性があるか判断するステップをさらに含み、前記管理データを適用するステップはさらに、前記管理データが前記クライアントデバイスと互換性があるとの判断に応じて、前記管理データを適用するステップを含む。
実施例27は実施例21−26のいずれかの主題を含み、前記メッセージフラグメントを復号するステップは、LTコード、Raptorコード、又はRaptorQコードのうちの1つを用いて、前記メッセージフラグメントを復号するステップを含む。
実施例28は実施例21−27のいずれかの主題を含み、前記管理データを適用するステップは、前記メッセージに含まれたバイナリファームウェアイメージをインストールするステップを含む。
実施例29は実施例21−28のいずれかの主題を含み、前記管理データを適用するステップは、前記メッセージに含まれた証明書取り消しリストを前記クライアントデバイスにインストールするステップ含む。
実施例30は実施例21−29のいずれかの主題を含み、前記証明書取り消しリストをインストールするステップは、前記クライアントデバイスにセキュアブートブラックリストをインストールするステップを含む。
実施例31は実施例21−30のいずれかの主題を含み、前記管理データを適用するステップは、前記メッセージに含まれたソフトウェアアプリケーションを前記クライアントデバイスにインストールするステップ含む。
実施例32は実施例21−31のいずれかの主題を含み、前記ネットワークインターフェースを分析するステップ、前記メッセージフラグメントを復号するステップ、前記メッセージが完全であるか二度目に判断するステップは、すべて前記クライアントデバイスのマネージャビリティエンジンにより実行される。
実施例33は実施例21−32のいずれかの主題を含み、前記計算デバイスのインバンドプロセッサが、前記クライアントデバイスのオペレーティングシステムを実行するステップと、前記計算デバイスのマネージャビリティエンジンが、前記オペレーティングシステムの実行中に前記クライアントデバイスのネットワークインターフェースを分析し、前記管理サーバによりブロードキャストされたメッセージフラグメントを受信するステップとをさらに含む。
実施例34は実施例21−33のいずれかの主題を含み、前記ネットワークインターフェースを分析するステップは、前記ネットワークインターフェースを分析して、ファウンテンコード符号化アルゴリズムを用いて符号化されたメッセージフラグメントを受信するステップを含む。
実施例35は実施例21−34のいずれかの主題を含み、前記ネットワークインターフェースを分析するステップは、前記管理サーバによりネットワーク上にブロードキャストされたマルチキャストデータをフィルタするステップを含む。
実施例36は実施例21−35のいずれかの主題を含み、前記ネットワークインターフェースを分析するステップは、前記クライアントデバイスの無線ネットワークインターフェースを分析するステップを含む。
実施例37は、管理情報をブロードキャストする方法であって、管理サーバが、ファウンテンコード符号化アルゴリズムを用いて管理データを複数のメッセージフラグメントに符号化するステップと、前記管理サーバが、複数のクライアントデバイスがアクセスできるネットワークに、前記複数のメッセージフラグメントを連続的にブロードキャストするステップとを含む。
実施例38は実施例37の主題を含み、前記管理データを符号化するステップは、バイナリファームウェアイメージを符号化するステップ含む。
実施例39は実施例37及び38のどちらかの主題を含み、前記管理データを符号化するステップは、証明書取り消しリストを符号化するステップを含む。
実施例40は実施例37−39のいずれかの主題を含み、前記証明書取り消しリストを符号化するステップはセキュアブートブラックリストを符号化するステップ含む。
実施例41は計算デバイスを含み、該計算デバイスは、プロセッサと、前記プロセッサにより実行されたとき、前記プロセッサに、実施例21−40いずれかに記載の方法を実行させる複数の命令を格納したメモリとを有する。
実施例42は、実行されると、計算デバイスに実施例21−40いずれかに記載の方法を実行させる複数の命令を格納した一以上の機械読み取り可能記憶媒体を含む。
実施例43は、実施例21−40いずれかに記載の方法を実行する手段を有する計算デバイスを含む。
実施例44は、ブロードキャストされた管理情報を受信するクライアントデバイスであって、前記クライアントデバイスのブートプロセス中に前記クライアントデバイスのネットワークインターフェースを分析し、管理サーバによりブロードキャストされたメッセージフラグメントを受信する手段と、ファウンテンコード復号アルゴリズムを用いて、前記メッセージフラグメントを復号し、メッセージの少なくとも一部を生成する手段と、前記メッセージフラグメントの復号に応じて、前記メッセージが完全であるか判断する手段と、前記メッセージが完全であるとの判断に応じて、前記メッセージを解析し、前記管理サーバにより前記メッセージに含まれた管理データを特定する手段と、前記管理データを前記クライアントデバイスに適用する手段とを有する。
実施例45は実施例44の主題を含み、前記ネットワークインターフェースを分析する手段と、前記メッセージフラグメントを復号する手段と、前記メッセージが完全であるか判断する手段と、前記メッセージを解析する手段と、前記管理データを適用する手段とを確立するファームウェア環境をさらに含む。
実施例46は実施例44及び45のどちらかの主題を含み、前記クライアントデバイスのファームウェアキャッシュに前記メッセージフラグメントを格納する手段をさらに含み、前記メッセージフラグメントを復号する手段は、前記ファームウェアキャッシュに格納されたメッセージフラグメントを復号する手段を含み、前記メッセージが完全であるか判断する手段は、前記ファームウェアキャッシュに格納されたメッセージフラグメントの復号に応じた、前記メッセージが完全であるか判断する手段を含む。
実施例47は実施例44−46のいずれかの主題を含み、前記クライアントデバイスをリブートする手段と、前記クライアントデバイスのリブートに応じて、前記ネットワークインターフェースを分析する手段、前記メッセージフラグメントを復号する手段、及び前記メッセージが完全であるか二度目に判断する手段とをさらに含む。
実施例48は実施例44−47のいずれかの主題を含み、前記メッセージが完全ではないとの判断に応じて、又は前記管理データの適用に応じて、前記クライアントデバイスのオペレーティングシステムをローディングする手段をさらに含む。
実施例49は実施例44−48のいずれかの主題を含み、前記メッセージの解析に応じて、前記クライアントデバイスが、前記管理データが前記クライアントデバイスと互換性があるか判断する手段をさらに含み、前記管理データを適用する手段はさらに、前記管理データが前記クライアントデバイスと互換性があるとの判断に応じて、前記管理データを適用する手段を含む。
実施例50は実施例44−49のいずれかの主題を含み、前記メッセージフラグメントを復号する手段は、LTコード、Raptorコード、又はRaptorQコードのうちの1つを用いて、前記メッセージフラグメントを復号する手段を含む。
実施例51は実施例44−50のいずれかの主題を含み、前記管理データを適用する手段は、前記メッセージに含まれたバイナリファームウェアイメージをインストールする手段を含む。
実施例52は実施例44−51のいずれかの主題を含み、前記管理データを適用する手段は、前記メッセージに含まれた証明書取り消しリストを前記クライアントデバイスにインストールする手段含む。
実施例53は実施例44−52のいずれかの主題を含み、前記証明書取り消しリストをインストールする手段は、前記クライアントデバイスにセキュアブートブラックリストをインストールする手段を含む。
実施例54は実施例44−53のいずれかの主題を含み、前記管理データを適用する手段は、前記メッセージに含まれたソフトウェアアプリケーションを前記クライアントデバイスにインストールする手段含む。
実施例55は実施例44−54のいずれかの主題を含み、前記ネットワークインターフェースを分析する手段、前記メッセージフラグメントを復号する手段、及び前記メッセージが完全であるか判断する手段を有するマネージャビリティエンジンをさらに含む。
実施例56は実施例44−55のいずれかの主題を含み、前記計算デバイスのインバンドプロセッサが、前記クライアントデバイスのオペレーティングシステムを実行する手段と、前記計算デバイスのマネージャビリティエンジンが、前記オペレーティングシステムの実行中に前記クライアントデバイスのネットワークインターフェースを分析し、前記管理サーバによりブロードキャストされたメッセージフラグメントを受信する手段とをさらに含む。
実施例57は実施例44−56のいずれかの主題を含み、前記ネットワークインターフェースを分析する手段は、前記ネットワークインターフェースを分析して、ファウンテンコード符号化アルゴリズムを用いて符号化されたメッセージフラグメントを受信する手段を含む。
実施例58は実施例44−57のいずれかの主題を含み、前記ネットワークインターフェースを分析する手段は、前記管理サーバによりネットワーク上にブロードキャストされたマルチキャストデータをフィルタする手段を含む。
実施例59は実施例44−58のいずれかの主題を含み、前記ネットワークインターフェースを分析する手段は、前記クライアントデバイスの無線ネットワークインターフェースを分析する手段を含む。
実施例60は、管理情報をブロードキャストする管理サーバであって、ファウンテンコード符号化アルゴリズムを用いて管理データを複数のメッセージフラグメントに符号化する手段と、複数のクライアントデバイスがアクセスできるネットワークに、前記複数のメッセージフラグメントを連続的にブロードキャストする手段とを含む。
実施例61は実施例60の主題を含み、前記管理データを符号化する手段は、バイナリファームウェアイメージを符号化する手段含む。
実施例62は実施例60及び61のどちらかの主題を含み、前記管理データを符号化する手段は、証明書取り消しリストを符号化する手段を含む。
実施例63は実施例60−62のいずれかの主題を含み、前記証明書取り消しリストを符号化する手段はセキュアブートブラックリストを符号化する手段含む。

Claims (21)

  1. ブロードキャストされた管理情報を受信するクライアントデバイスであって、
    前記クライアントデバイスのブートプロセス中に前記クライアントデバイスのネットワークインターフェースを分析し、管理サーバによりブロードキャストされたメッセージフラグメントを受信するネットワークモジュールと、
    (i)ファウンテンコード復号アルゴリズムを用いて前記メッセージフラグメントを復号して、メッセージの少なくとも一部を生成し、(ii)前記メッセージの少なくとも一部の生成に応じて、前記メッセージが完全であるか判断するファウンテンコード復号モジュールと、
    (i)前記メッセージが完全であるとの判断に応じて、前記メッセージを解析して、前記管理サーバによる前記メッセージに含まれる管理データを特定し、(ii)前記管理データを前記クライアントデバイスに適用する更新管理モジュールと、
    前記メッセージがまだ完全でないとの判断に応じて、オペレーティングシステムを立ち上げるブートターゲットと
    を有する、
    クライアントデバイス。
  2. 前記ネットワークモジュール、前記ファウンテンコード復号モジュール、及び前記更新管理モジュールを確立するファームウェア環境をさらに有する、
    請求項1に記載のクライアントデバイス。
  3. 前記ファウンテンコード復号モジュールはさらに、前記メッセージフラグメントを、前記クライアントデバイスのファームウェアキャッシュに格納し、
    前記メッセージフラグメントの復号は、前記ファームウェアキャッシュに格納されたメッセージフラグメントを含み、
    前記メッセージが完全であるかの判断は、前記ファームウェアキャッシュに格納されたメッセージフラグメントの復号に応じた、前記メッセージが完全であるかの判断を含む、
    請求項1に記載のクライアントデバイス。
  4. 前記ネットワークモジュールは前記ネットワークインターフェースを分析し、前記ファウンテンコード復号モジュールは、前記クライアントデバイスのリブートに応じて、前記メッセージフラグメントを復号し、前記メッセージが完全であるか二度目の判断をする、
    請求項3に記載のクライアントデバイス。
  5. 前記ファウンテンコード復号アルゴリズムは、LTコード、Raptorコード、又はRaptorQコードを含む、
    請求項1ないし4いずれか一項に記載のクライアントデバイス。
  6. 前記管理データは前記メッセージに含まれたバイナリファームウェアイメージを含む、
    請求項1ないし4いずれか一項に記載のクライアントデバイス。
  7. 前記管理データは前記メッセージに含まれた証明書取り消しリストを含む、
    請求項1ないし4いずれか一項に記載のクライアントデバイス。
  8. 前記証明書取り消しリストはセキュアブートブラックリストを含む、
    請求項7に記載のクライアントデバイス。
  9. 前記ネットワークモジュール、前記ファウンテンコード復号モジュール、及び前記更新管理モジュールを含むマネージャビリティエンジンをさらに有する、
    請求項1ないし4いずれか一項に記載のクライアントデバイス。
  10. 前記クライアントデバイスのオペレーティングシステムを実行するインバンドプロセッサをさらに有し、
    前記ネットワークモジュールは、前記オペレーティングシステムの実行中に、前記クライアントデバイスのネットワークインターフェースを分析し、前記管理サーバによりブロードキャストされたメッセージフラグメントを受信する、
    請求項9に記載のクライアントデバイス。
  11. ブロードキャストされた管理情報を受信する方法であって、
    クライアントデバイスが、前記クライアントデバイスのブートプロセス中に前記クライアントデバイスのネットワークインターフェースを分析し、管理サーバによりブロードキャストされたメッセージフラグメントを受信することと、
    前記クライアントデバイスが、ファウンテンコード復号アルゴリズムを用いて、前記メッセージフラグメントを復号し、メッセージの少なくとも一部を生成することと、
    前記クライアントデバイスが、前記メッセージフラグメントの復号に応じて、前記メッセージが完全であるか判断することと、
    前記メッセージが完全であるとの判断に応じて、
    前記クライアントデバイスが、前記メッセージを解析し、前記管理サーバにより前記メッセージに含まれた管理データを特定することと、
    前記クライアントデバイスが、前記管理データを前記クライアントデバイスに適用すること
    前記メッセージが完全でないとの判断に応じて、
    前記クライアントデバイスが、オペレーティングシステムを立ち上げることと
    を含む
    方法。
  12. 前記ネットワークインターフェースを分析すること、前記メッセージフラグメントを復号すること、前記メッセージが完全であるか判断すること、前記メッセージを解析すること、及び前記管理データを適用することは、すべて前記クライアントデバイスのファームウェア環境により実行される、
    請求項11に記載の方法。
  13. 前記クライアントデバイスが、前記クライアントデバイスのファームウェアキャッシュに前記メッセージフラグメントを格納することと、
    前記クライアントデバイスをリブートすることと、
    前記クライアントデバイスのリブートに応じて、前記ネットワークインターフェースを分析し、前記メッセージフラグメントを復号し、前記メッセージが完全であるか二度目に判断することとを含み、
    前記メッセージフラグメントを復号することは、前記ファームウェアキャッシュに格納されたメッセージフラグメントを復号することを含み、
    前記メッセージが完全であるか判断することは、前記ファームウェアキャッシュに格納されたメッセージフラグメントの復号に応じた、前記メッセージが完全であるか判断することを含む、
    請求項11に記載の方法。
  14. 前記管理データを適用することは、前記メッセージに含まれたバイナリファームウェアイメージをインストールすることを含む、
    請求項11に記載の方法。
  15. 前記管理データを適用することは、前記メッセージに含まれた証明書取り消しリストを前記クライアントデバイスにインストールすることを含む、
    請求項11に記載の方法。
  16. 前記ネットワークインターフェースを分析すること、前記メッセージフラグメントを復号すること、前記メッセージが完全であるか二度目に判断することは、すべて前記クライアントデバイスのマネージャビリティエンジンにより実行される、
    請求項11に記載の方法。
  17. 計算デバイスのインバンドプロセッサが、前記クライアントデバイスのオペレーティングシステムを実行することと、
    前記計算デバイスのマネージャビリティエンジンが、前記オペレーティングシステムの実行中に前記クライアントデバイスのネットワークインターフェースを分析し、前記管理サーバによりブロードキャストされたメッセージフラグメントを受信することとを含む、
    請求項11に記載の方法。
  18. 計算デバイスであって、
    プロセッサと、
    前記プロセッサにより実行されたとき、前記プロセッサに、請求項11−17いずれか一項に記載の方法を実行させる複数の命令を格納したメモリとを有する、計算デバイス。
  19. 実行されると、計算デバイスに請求項11−17いずれか一項に記載の方法を実行させるコンピュータプログラム。
  20. 請求項11ないし17いずれか一項に記載の方法を実行する手段を有する計算デバイス。
  21. 請求項19に記載のコンピュータプログラムを格納した一以上の機械読み取り可能記憶媒体。

JP2016553848A 2014-03-21 2015-03-04 ファウンテンコードを用いる管理情報のブロードキャスト Active JP6316978B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/222,014 US9626196B2 (en) 2014-03-21 2014-03-21 Broadcasting management information using fountain codes
US14/222,014 2014-03-21
PCT/US2015/018758 WO2015142519A1 (en) 2014-03-21 2015-03-04 Broadcasting management information using fountain codes

Publications (2)

Publication Number Publication Date
JP2017513098A JP2017513098A (ja) 2017-05-25
JP6316978B2 true JP6316978B2 (ja) 2018-04-25

Family

ID=54143236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016553848A Active JP6316978B2 (ja) 2014-03-21 2015-03-04 ファウンテンコードを用いる管理情報のブロードキャスト

Country Status (6)

Country Link
US (2) US9626196B2 (ja)
EP (1) EP3120498A4 (ja)
JP (1) JP6316978B2 (ja)
KR (1) KR101891423B1 (ja)
CN (1) CN105981332B (ja)
WO (1) WO2015142519A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10262140B2 (en) 2016-09-29 2019-04-16 Intel Corporation Methods and apparatus to facilitate blockchain-based boot tracking
US11025607B2 (en) * 2016-12-15 2021-06-01 At&T Mobility Ii Llc V2X certificate management
US10831897B2 (en) * 2017-07-14 2020-11-10 Dell Products, L.P. Selective enforcement of secure boot database entries in an information handling system
CN107506647A (zh) * 2017-07-28 2017-12-22 努比亚技术有限公司 漏洞自动修复方法及移动终端
CN108234216B (zh) * 2018-01-16 2021-04-20 广东乐心医疗电子股份有限公司 下载数据报文的方法及装置
US10904284B2 (en) * 2018-09-14 2021-01-26 International Business Machines Corporation Enabling software distribution
US10831467B2 (en) * 2018-10-25 2020-11-10 American Megatrends International, Llc Techniques of updating host device firmware via service processor
DE102019123712A1 (de) * 2019-09-04 2021-03-04 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Vorrichtung mit einer fountain-code-dekodiereinheit zum rekonstruieren eines konfigurationsdatensatzes
US12086257B2 (en) * 2020-04-24 2024-09-10 Omnissa, Llc Trusted firmware verification
US12020021B2 (en) * 2022-06-13 2024-06-25 Xilinx, Inc. Impactless firmware update

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122277A (en) * 1997-08-19 2000-09-19 International Business Machines Corporation Parallel computer network broadcasting and acknowledgement
JP2000194562A (ja) * 1998-12-24 2000-07-14 Nec Corp プログラムダウンロードシステムおよびプログラムダウンロード方法、並びに記録媒体
US20040030768A1 (en) * 1999-05-25 2004-02-12 Suban Krishnamoorthy Unified system and method for downloading code to heterogeneous devices in distributed storage area networks
US7225164B1 (en) * 2000-02-15 2007-05-29 Sony Corporation Method and apparatus for implementing revocation in broadcast networks
JP2005107803A (ja) * 2003-09-30 2005-04-21 Hitachi Ltd システム更新方法、および、それを実行するための計算機システム
AU2003304654A1 (en) * 2003-10-16 2005-05-26 Stmicroelectronics Limited Security integrated circuit
US9161231B2 (en) * 2004-10-14 2015-10-13 Alcatel Lucent Method and system for wireless networking using coordinated dynamic spectrum access
US9455844B2 (en) * 2005-09-30 2016-09-27 Qualcomm Incorporated Distributed processing system and method
US8984265B2 (en) * 2007-03-30 2015-03-17 Intel Corporation Server active management technology (AMT) assisted secure boot
US8578332B2 (en) * 2007-04-30 2013-11-05 Mark Murray Universal microcode image
US7900033B2 (en) * 2007-06-26 2011-03-01 Intel Corporation Firmware processing for operating system panic data
US9461827B2 (en) * 2008-04-11 2016-10-04 Toyota Motor Engineering & Manufacturing North America, Inc. Method for distributing a list of certificate revocations in a vanet
US7917614B2 (en) * 2008-06-10 2011-03-29 International Business Machines Corporation Fault tolerance in a client side pre-boot execution
US20090327741A1 (en) * 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US20100094958A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Systems and methods for aggregating erasure-coded fragments
US9288010B2 (en) * 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US8627073B2 (en) * 2010-03-24 2014-01-07 GM Global Technology Operations LLC Adaptive certificate distribution mechanism in vehicular networks using forward error correcting codes
CN101945106B (zh) * 2010-09-08 2013-03-27 东莞电子科技大学电子信息工程研究院 一种富媒体场景在广播网中的传输方法
CN102752184A (zh) * 2011-04-20 2012-10-24 河海大学 用于实时多播业务的数据通信系统及其方法
KR101216110B1 (ko) * 2011-05-18 2012-12-28 목포대학교산학협력단 차량 통신을 위한 인증서 취소 목록 배포 방법 및 시스템과 이를 위한 인증서 취소 목록 획득 장치
JP5713267B2 (ja) * 2012-02-08 2015-05-07 富士通テレコムネットワークス株式会社 伝送装置管理システムおよびデータバックアップ方法
US9060252B2 (en) * 2012-07-31 2015-06-16 International Business Machines Corporation Rate adaptive transmission of wireless broadcast packets

Also Published As

Publication number Publication date
US9626196B2 (en) 2017-04-18
KR20160110467A (ko) 2016-09-21
WO2015142519A1 (en) 2015-09-24
CN105981332B (zh) 2019-12-24
EP3120498A4 (en) 2017-11-29
KR101891423B1 (ko) 2018-08-24
CN105981332A (zh) 2016-09-28
US20170185420A1 (en) 2017-06-29
US20150271297A1 (en) 2015-09-24
EP3120498A1 (en) 2017-01-25
US10228954B2 (en) 2019-03-12
JP2017513098A (ja) 2017-05-25

Similar Documents

Publication Publication Date Title
JP6316978B2 (ja) ファウンテンコードを用いる管理情報のブロードキャスト
US11868617B2 (en) Virtualizing non-volatile storage at a peripheral device
US10871953B2 (en) Application update method and apparatus
US10884806B1 (en) Systems and methods of optimized tuning of resources
US8997090B2 (en) Installing an operating system in a host system
EP2831722B1 (en) Method and system for verifying proper operation of a computing device after a system change
WO2019201039A1 (zh) 一种更新应用程序的方法、系统及应用服务器
US11126725B2 (en) Secure firmware capsule update using NVMe storage and method therefor
JP2011175662A (ja) デバイス上のコンポーネントを自動的に処理するシステム
KR20130058058A (ko) 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시
KR20130107313A (ko) 운영 시스템(os)이 없는 서비스 환경에서 펌웨어를 프로비저닝하는 방법
US9116808B2 (en) Method and system for determining device configuration settings
US20160253501A1 (en) Method for Detecting a Unified Extensible Firmware Interface Protocol Reload Attack and System Therefor
CN109639827B (zh) 客户端升级方法及装置
CN110365839B (zh) 关机方法、装置、介质及电子设备
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
CN113691619B (zh) 一种报文处理方法、装置、电子设备及存储介质
JP7422705B2 (ja) 方法、システムおよびコンピューター可読媒体
US20210357295A1 (en) Recovery image downloads via data chunks
US12061574B2 (en) Updating edge nodes in distributed computing environments using partitions
US20240036896A1 (en) Generating installation images based upon dpu-specific capabilities
US20240020103A1 (en) Parallelizing data processing unit provisioning
US11599636B1 (en) Systems and methods for managing and providing software packages which have undergone malware and/or vulnerability analysis
US20230112219A1 (en) Notification based software management via connected devices
CN117785296A (zh) 用于启动计算设备的方法、计算设备和程序产品

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180328

R150 Certificate of patent or registration of utility model

Ref document number: 6316978

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250