JP2017539036A - プリブート更新メカニズムを用いてハードウェアサブスクリプションモデルを提供するための技術 - Google Patents

プリブート更新メカニズムを用いてハードウェアサブスクリプションモデルを提供するための技術 Download PDF

Info

Publication number
JP2017539036A
JP2017539036A JP2017533250A JP2017533250A JP2017539036A JP 2017539036 A JP2017539036 A JP 2017539036A JP 2017533250 A JP2017533250 A JP 2017533250A JP 2017533250 A JP2017533250 A JP 2017533250A JP 2017539036 A JP2017539036 A JP 2017539036A
Authority
JP
Japan
Prior art keywords
subscription
hardware
computing device
capsule
module
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.)
Granted
Application number
JP2017533250A
Other languages
English (en)
Other versions
JP6661641B2 (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 JP2017539036A publication Critical patent/JP2017539036A/ja
Application granted granted Critical
Publication of JP6661641B2 publication Critical patent/JP6661641B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

ハードウェアサブスクリプション機能を有効化、無効化及び制御するための技術。コンピューティングデバイスは、ネットワークを介してサブスクリプションサーバに通信して、各コンピューティングデバイスについてハードウェアプラットフォーム情報を提供する。サブスクリプションサーバがハードウェアプラットフォーム情報を受信すると、サブスクリプションサーバは、有効化されたハードウェア機能を決定し、更に、各コンピューティングデバイスについてどのハードウェアサブスクリプションオプションが利用可能であるかを決定する。ハードウェアサブスクリプションオプションがコンピューティングデバイスによって選択/購入されると、サブスクリプションサーバは、ユニファイド・エクステンシブル・ファームウェア・インタフェース(UEFI)カプセル等のプリブート更新メカニズムを提供して、コンピューティングデバイス上のハードウェア機能を有効化するブートレベルプログラムとして機能する。また、ハードウェアサブスクリプション機能は、暗号エンジンモジュールを用いてセキュアに保護される。

Description

本願は、2014年12月27日に出願された“TECHNOLOGIES FOR PROVIDING HARDWARE SUBSCRIPTION MODELS USING PRE-BOOT UPDATE MECHANISM”(プリブート更新メカニズムを用いてハードウェアサブスクリプションモデルを提供するための技術)という名称の米国実用特許出願第14/583,656号に対する優先権を主張する。
最新のコンピューティングデバイスは、個人的、ビジネス的、社会的な用途のためのユビキタスなツールとなっている。このように、多くの最新のコンピューティングデバイスは、インターネットや企業イントラネットを含む様々なデータネットワークに接続して、そのようなネットワークを介してデータ通信を検索及び受信することができる。多くの場合、あるネットワークに接続されたコンピューティングデバイスは、異なるネットワークに接続されたコンピューティングデバイスと通信する。このようなネットワーキングの出現により、サブスクリプションソフトウェアサービスの使用がますます普及しており、コンピューティングデバイス上のソフトウェアを実行している顧客は、ソフトウェア又は特定のソフトウェア機能を使用し続けるためにサブスクリプション又はアクセス料金を支払わなければならない。ソフトウェアサブスクリプションサービスの分野では一定の進歩がみられるが、ハードウェアベースのサブスクリプションモデルやサービスの開発はほとんど行われてこなかった。
本明細書に記載される概念は、例として示されており、添付図面に限定されるものではない。説明を簡潔且つ明確にするために、図に示される要素は必ずしも縮尺通りに描かれていない。適切であると考えられる場合には、対応又は類似する要素を示すために、参照番号が図面間で繰り返されている。
ハードウェアサブスクリプション機能を確立及び提供するシステムの少なくとも1つの実施形態の簡略ブロック図である。 図1のシステムのハードウェアサブスクリプションサービスを取得するためのコンピューティングデバイスの環境の少なくとも1つの実施形態の簡略ブロック図である。 図1のシステムの1つ以上のコンピューティングデバイスにハードウェアサブスクリプションサービスをセキュアに提供するためのサブスクリプションサーバの環境の少なくとも1つの実施形態の簡略ブロック図である。 ハードウェアサブスクリプション機能を認証及び有効化するために、コンピューティングデバイスでハードウェアサブスクリプションカプセルを受信及び処理するための方法の、少なくとも1つの実施形態の簡略フローチャートである。 コンピューティングデバイスのハードウェアサブスクリプション機能を動作及び無効化するための方法の少なくとも1つの実施形態の簡略フローチャートである。 サブスクリプションサーバでハードウェアサブスクリプションオプションを確立し、ハードウェアサブスクリプション機能を有効化するためにハードウェアサブスクリプションカプセルをコンピューティングデバイスに提供する方法の、少なくとも1つの実施形態の簡略フローチャートである。 サブスクリプションサーバと図1のシステムのコンピューティングデバイスとの間のハードウェアサブスクリプション選択プロセスの、少なくとも1つの実施形態の簡略図である。
本開示の概念は様々な変更及び代替形態が可能であるが、その具体的な実施形態が図面において例として示されており、本明細書において詳細に説明される。しかしながら、本開示の概念を開示された特定の形態に限定することは意図されず、反対に、本開示及び添付の特許請求の範囲に合致する全ての変更、均等物及び代替物を包含することが意図されることを理解されたい。
本明細書において「一実施形態」、「実施形態」、「例示の実施形態」等と言及する場合、記載された実施形態が特定の特徴、構造又は特性を含むが、全ての実施形態が必ずしもその特定の特徴、構造又は特性を含まなくてよいことを示す。更に、そのような表現は必ずしも同じ実施形態を指しているわけではない。更に、特定の特徴、構造又は特性が実施形態に関連して記載される場合、明示的に記載されているか否かを問わず、他の実施形態と関連してそのような特徴、構造又は特性を達成することは、当業者の知識の範囲内である。加えて、「A、B及びCの少なくとも1つ」の形で列挙された項目は、(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つ以上のプロセッサによって読み取られ実行され得る1つ以上の非一時的な機械可読の(例えばコンピュータ可読の)記憶媒体によって搬送されるか又は記憶される命令として実施されてもよい。機械可読記憶媒体は、機械によって読取可能な形式で情報を記憶又は送信するための任意の記憶装置、機構その他の物理的構造(例えば揮発性又は不揮発性メモリ、メディアディスクその他の媒体装置)として実現されてよい。
図面において、一部の構造又は方法の特徴が具体的な配置及び/又は順序で示されることがある。しかしながら、そのような具体的な配置及び/又は順序は必要でないことがあることを理解されたい。むしろ、一部の実施形態では、そのような特徴は、例示的な図に示されたものとは異なる方式及び/又は順序で配置されてよい。加えて、特定の図に構造又は方法の特徴を含めることは、そのような特徴が全ての実施形態で必要であることを意味するものではなく、一部の実施形態では含まれなくてもよく、或いは他の特徴と組み合わされてよい。
ここで図1を参照する。例示の実施形態において、ハードウェアサブスクリプション機能を確立及び提供するためのシステム100が示される。例示のシステム100は、コンピューティングデバイス104、サブスクリプションサーバ114及びネットワークスイッチ170を含み、これらの各々は、パケット交換その他の適切な通信を用いて動作することができる。使用時には、システム100は、コンピューティングデバイス104〜110の各々からサブスクリプションサーバ114にハードウェアプラットフォーム情報を提供するように動作する。サブスクリプションサーバ114がハードウェアプラットフォーム情報を受信すると、サブスクリプションサーバ114は、有効化されたハードウェア機能を決定し、更に、コンピューティングデバイス104〜110の各々についてどのハードウェアサブスクリプションオプションが利用可能であるかを決定する。ハードウェアサブスクリプションオプションがコンピューティングデバイス(例えば104)によって選択/購入されると、サブスクリプションサーバ114は、ユニファイド・エクステンシブル・ファームウェア・インタフェース(Unified Extensible Firmware Interface;UEFI)カプセル等のブートカプセルを用いてプリブート更新メカニズムを提供して、コンピューティングデバイス104〜110上で選択/購入されたハードウェア機能を有効化するブートレベルプログラムとして機能を果たす。ブートカプセルは、コンピューティングデバイス104〜110に関するハードウェアサブスクリプション認可として機能を果たす。
コンピューティングデバイス104〜110の選択可能/購入可能なハードウェア機能は、コンピューティングデバイスのブートレベルから変更、有効化又は無効化されることが可能なハードウェア及び/又はハードウェアコンポーネントの任意の態様として、実現されてよい。ハードウェアサブスクリプション認可に適した変更可能なハードウェア機能の例としては、動作中に使用される多数のプロセッサコア(例えばシングルコア、クアッドコア等)の変更や、プロセッサ動作周波数の変更(例えば2.4Ghz/3.6Ghz)が挙げられる。他の変更可能なハードウェア機能は、キャッシュサイズ(4MB/8MB)又はPCI Expressグラフィックス(PEG)ポート/レーン(例えばx8/x16)を含んでよい。完全に有効化又は無効化され得るハードウェア機能の例としては、ジェスチャ感知装置のジェスチャ感知、指紋感知装置の指紋感知、外部周辺機器(例えばThunderbolt(商標))への接続を可能にするハードウェアインタフェースが挙げられる。当業者であれば、本明細書に開示されているようなハードウェア機能の有効化、無効化及び変更が広範囲のデバイス及びコンポーネントに適用可能であり、単に前述の特徴、或いはパーソナルコンピューティングデバイス及びコンポーネントに限定されるものではないことを理解できるであろう。
図1に示される実施形態に戻ると、コンピューティングデバイス104(並びにコンピューティングデバイス106〜110)は、本明細書に記載の機能を実行することのできる任意のタイプのコンピューティングデバイスとして実現されてよい。例えば、コンピューティングデバイスは、限定ではないが、コンピュータ、デスクトップコンピュータ、パーソナルコンピュータ(PC)、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、サーバコンピュータ、モバイルコンピューティングデバイス、スマートフォン、携帯電話、ハンドセット、メッセージングデバイス、ワークステーション、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースシステム、家庭用電子機器、デジタルテレビ機器、セットトップボックス、及び/又は、データを記憶及びアクセスするように構成され、更に電子クラウドソフトウェアと関連アプリケーションを実行するように構成される任意の他のコンピューティングデバイスとして実現されてよい。コンピューティングデバイス2〜n(106〜110)は、コンピューティングデバイス104に示された構成と同様に構成される。
図1の例示の実施形態では、コンピューティングデバイス104は、プロセッサ120、I/Oサブシステム122、メモリ124、データストレージ126及び通信回路130を備える。通信回路130は、コンピューティングデバイス104と1つ以上の他の外部電子機器及び/又はシステムとの間の通信を可能にする任意の数のデバイス及び回路と共に、ネットワークインタフェースコントローラ(NIC)を含んでよい。プロセッサ120は、現在既知であるか将来開発される、本明細書に記載の機能を実行することのできる任意のタイプのプロセッサとして実現されてよい。例えば、プロセッサ120は、シングルコア又はマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラその他のプロセッサ又は処理/制御回路として実現されてよい。同様に、メモリ124は、現在既知であるか将来開発される、本明細書に記載の機能を実行することのできる任意のタイプ又は数の揮発性若しくは不揮発性メモリ又はデータストレージとして実現されてよい。動作中、メモリ124は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、ドライバ等の、コンピューティングデバイス104の動作中に用いられる様々なデータ及びソフトウェアを記憶してよい。一部の実施形態では、メモリ124及び/又はデータストレージ126は、1つ以上のアプリケーションプログラムを記憶しており、プロセッサ120は、1つ以上のアプリケーションプログラムを実行し、対応するグラフィック情報を表示するために表示画面を制御するように動作可能である。当然ながら、他の実施形態では、コンピューティングデバイス104は、デジタル装置及び/又はコンピュータ(例えば様々な入出力デバイス)に一般にみられるような他の或いは追加のコンポーネントを備えてよい。
例示の実施形態では、メモリ124は、1つ以上の通信リンク(すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路基板トレース等)を介してプロセッサ120に通信可能に結合される。また、メモリ124は、I/Oサブシステム122を介してプロセッサ120に通信可能に結合されてもよく、I/Oサブシステム122は、プロセッサ120、メモリ124その他のコンピューティングデバイス104のコンポーネントとの入出力動作を容易にする回路及び/又はコンポーネントとして実現されてよい。例えば、I/Oサブシステム122は、メモリコントローラハブ、入出力制御ハブ、ファームウェアデバイス、通信リンク(すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路基板トレース等)及び/又は入出力動作を容易にする他のコンポーネント及びサブシステムとして実現されてよく、そうでなければ含んでよい。一部の実施形態では、I/Oサブシステム120は、システムオンチップ(SoC)の一部を形成することができ、プロセッサ120、メモリ124及びコンピューティングデバイス104の他のコンポーネントと共に、単一の集積回路チップ上に組み込まれてよい。
コンピューティングデバイス104の通信回路130は、1つ以上の通信ネットワーク(例えばローカルエリアネットワーク、パーソナルエリアネットワーク、広域ネットワーク、セルラネットワーク、インターネット等グローバルネットワーク)を介して、コンピューティングデバイス104と他のコンピューティングデバイスとの間の通信を可能にすることのできる、任意のタイプの通信回路、デバイス又はそれらの集合として実現されてよい。通信回路130は、そのような通信を行うために、任意の1つ以上の通信技術(例えば無線又は有線通信)と関連プロトコル(例えばイーサネット(登録商標)、Wi-Fi(登録商標)、WiMAX等)を用いるように構成されてよい。通信回路130は、ポート又は通信インタフェースを含んでよく、そうでなければ通信可能に結合されてよい。ポートは、サブスクリプションサーバ114を任意の数の他のコンピューティングデバイス及び/又はネットワーク(例えば物理ネットワークや論理ネットワーク)に通信可能に結合するように構成されてよい。
周辺機器128は、関連グラフィックス回路と共にディスプレイを含んでよい。加えて、一部の実施形態では、周辺機器128は、追加又は代替として、キーボード、マウス、オーディオ処理回路(例えば、増幅回路及び1つ以上のスピーカを含む)並びに/又は他の入出力機器、インタフェース機器及び/若しくは周辺機器を含んでよい。
一部の実施形態では、システム100は、1つ以上のアプリケーションプログラムを記憶及び/又は実行するように構成されるサブスクリプションサーバ114を含んでよい。このような実施形態では、コンピューティングデバイス104〜110は、シンクライアントデバイスとして動作してよい。図1の例示の実施形態において、サブスクリプションサーバ114は、プロセッサ150、I/Oサブシステム152、メモリ154、データストレージ156、通信回路162及び1つ以上の周辺機器158を備える。サブスクリプションサーバ114のコンポーネントは、コンピューティングデバイス104の対応するコンポーネントに類似してよく、その説明はサブスクリプションサーバ114の対応するコンポーネントに適用可能であるので、ここでは説明を明確にするために繰り返さない。
サブスクリプションサーバ114の通信回路162は、サブスクリプションサーバ114とコンピューティングデバイス104との間の通信を可能にする任意の数の機器及び回路を含んでよい。一部の実施形態では、サブスクリプションサーバ114は、1つ以上の周辺機器158を含んでもよい。そのような周辺機器158は、任意の数の追加の入出力機器、インタフェース機器、及び/又は、サーバ又はコンピューティングデバイスに共通して関連付けられる他の周辺機器を含んでよい。
図示された実施形態では、コンピューティングデバイス104〜110とサブスクリプションサーバ114との間の通信は、ネットワーク112を介して行われ、ネットワーク112は、1つ以上のネットワークスイッチ170に動作可能に結合されてよい。一実施形態では、ネットワーク112は有線及び/又は無線ネットワークを表してよく、また、例えばローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、ストレージエリアネットワーク(SAN)、バックボーンネットワーク、グローバルエリアネットワーク(GAN)、ワイドエリアネットワーク(WAN)、或いはイントラネット、エクストラネット又はインターネット等の任意のそのようなコンピュータネットワークの集合(すなわち、World Wide Webを含む様々なアプリケーション又はサービスが実行される相互接続されたネットワークのグローバルシステム)であってよく、或いはそれらを含んでよい。一般に、コンピューティングデバイス104の通信回路130とサブスクリプションサーバ114の通信回路162は、通信プロトコルのいずれか1つ以上又は組合わせ、例えば有線ネットワーク通信プロトコル(例えばTCP/IP)、無線ネットワーク通信プロトコル(例えばWi Wi-Fi(登録商標)、WiMAX)、セルラ通信プロトコル(例えば広帯域符号分割多元接続(W-CDMA))その他の通信プロトコルを用いて、互いに通信するように構成されてよい。このように、ネットワーク112は、コンピューティングデバイス104とサブスクリプションサーバ114との間の通信を容易にするために、追加のコンピュータ、ルータ、スイッチ等の任意の数の追加の機器を含んでよい。
ここで図2を参照する。使用時、コンピューティングデバイス104は、動作中に環境200を確立する。例示の環境200は、通信回路130を介してサブスクリプションサーバ114に送信するためのデバイスキーを含むデバイスキーモジュール202を含む。例示の実施形態では、モジュール202のデバイスキーは、コンピューティングデバイス104の保護されたメモリ領域(例えばメモリ124)に埋め込まれた固有のデバイスキーであってよく、コンピューティングデバイスを一意に識別し、とりわけ、コンピューティングデバイス104のプラットフォーム、ハードウェア機能及びハードウェアサブスクリプション情報に関する情報を提供する。例示の実施形態では、モジュール202のデバイスキーは、製造プロセス中に埋め込まれてよい。コンピューティングデバイス104がサブスクリプションサーバ114に通信可能に結合するとき、デバイスキーモジュール202は、コンピューティングデバイスハードウェア構成を通信するためにデバイスキーを送信し、サブスクリプションサーバがハードウェアサブスクリプションオプションを決定することができる。
例示の実施形態では、環境200はサブスクリプションモジュール204を含んでもよく、サブスクリプションモジュール204は、ヒューズモジュール206及びタイマモジュール208を含む。一部の実施形態では、サブスクリプションモジュール204は、ヒューズモジュール206のハードウェアサブスクリプションヒューズによって定義されるハードウェアサブスクリプション機能を含むSoCとして実現されてよい。ヒューズモジュール206の例示のSoC構成は、プログラマブルリードオンリーメモリ(PROM)又はフィールドプログラマブルリードオンリメモリ(FPROM)又はワンタイムプログラマブル不揮発性メモリ(OTP NVM)を含み、これは、各ビットの設定がヒューズ又はアンチヒューズによってロックされるデジタルメモリの一形態である。このようなデバイスは一種のROM(読出専用メモリ)であり、その中のデータが永続的であり変更できないことを意味する。ヒューズモジュール206のハードウェアサブスクリプション機能は、関連するシリコン及び/又はプラットフォームサブスクリプション機能の有効化を制御するために用いられる。一部の実施形態では、ヒューズモジュール206は、シリコンヒューズ、シリコンレジスタプログラム、プラットフォームハードウェアヒューズ、プラットフォームハードウェアレジスタプログラム等として実現されてよい。ハードウェアサブスクリプション機能をセキュアに有効化するために、ハードウェアサブスクリプションヒューズは、UEFIモジュール等の認証済みモジュールを用いてプリブート環境にプログラムされる。
サブスクリプションモジュール204はまた、シリコン内のタイマモジュール208を利用して、定期的なハードウェアサブスクリプションモデルを有効化してもよい。使用時には、タイマモジュール208は、プリブートにカウントをロードすることによってサブスクリプション時間を追跡してよく、カウントは認証されたモジュールによってのみ変更されてよい。カウントは永続的であってよく、つまり、電源がオフになってもカウントが続行されてよい。カウントがロードされると、タイマモジュール208は、システムが動作している間にサブスクリプション時間をデクリメントし、カウントが終了するまで定期的なハードウェアサブスクリプションが利用可能となる。他の例示の実施形態では、サブスクリプションモジュール204は、ヒューズモジュール206及びタイマモジュール208の機能及び特徴をエミュレートするソフトウェアとして実現される。
図2の例示の環境200は更に、サブスクリプションサーバ114から受信されるブート(例えばUEFI)カプセルを認証する認証モジュール210を備える。認証モジュール210は、例えば、暗号サービス交換(CSE)認証モジュールとして実現されてよい。例示のブートカプセルは、カプセルヘッダ及びカプセルボリュームを含む。カプセルヘッダは、OSに存在するアプリケーションによって用いられるカプセルの一部であり、OSに存在するアプリケーションがカプセルの内容をエンドユーザに説明することを可能にする情報を含む情報テキスト等の情報を含んでよい。テキストはUniコードでもよく、複数の異なる言語をサポートすることができる。ブートカプセルは更に、OEM(Original Equipment Manufacturer)特有の情報も含んでよい。カプセルボリュームは、標準的なファームウェアボリュームと同じ基本構造を有してよい。しかしながら、カプセルボリュームは、より高度に拡張可能なファームウェアボリュームフォーマットよりも予測可能に定義されたフォーマットを有し、ファームウェアボリュームイメージセクションを含むファームウェアボリュームファイルと構成結果ファイルとを含んでよい。構成結果ファイルは、OSに存在するアプリケーションによって書き込まれてよく、セットアッププログラムからの結果を提供する。カプセルヘッダ内のフラグは、カプセルによるこのファイルのサポートを示す。
認証モジュール210は、例示の実施形態では、ブート中(例えば図5のリブート416、以下に説明する)にサブスクリプションサーバ114から受信されるブートカプセル(例えばUEFIカプセル)のペイロードを認証するように構成される。認証モジュール210は、サブスクリプションサーバ114の暗号サービスエンジンモジュール305と双方向に結合されてよく、暗号サービスエンジンモジュール305は、ブートカプセルを認証するために要求される暗号サービスを提供するように構成される。暗号サービスには、限定ではないが、暗号化と復号化(例えば対称ブロック暗号、汎用暗号モード、ストリーム暗号モード、公開鍵暗号、公開鍵システムのパディングスキーム、鍵合意スキーム、楕円曲線暗号、一方向ハッシュ関数、メッセージ認証コード、ハッシュ関数に基づく暗号構造、擬似乱数ジェネレータ、パスワードベースのキー導出関数等)、ハッシング操作(例えばSHA−1、HMAC等)、RSAやDSA等の署名・検証操作を含んでよい。ブートカプセルがサブスクリプションサーバ114からセキュアペイロードと共に受信されると、認証モジュール210はセキュアペイロードを処理して、コンピューティングデバイス104のブートカプセルを認可する。認可されると、ブートカプセルがブートのたびに使用できるように、CSEセキュアストレージでペイロードの展開が実行される。
ブートカプセルは、ブートカプセル更新メカニズム(例えばUEFI更新メカニズム)を用いてコンピューティングデバイス104上のサブスクリプションモジュール204によってインストールされてよい。例示の実施形態では特別なブートパスが作成され、カプセルは、OS起動時にシステムメモリにロードされ、次にプロセッサの初期化又はウォームリセットに続いて実行される。ファームウェアをプログラミングする代わりに、カプセル内のブートドライバ(例えば、カプセルを操作することを担うドライバ実行環境(DXE)ドライバ)は、プリブート環境における認証のために、ハードウェア機能サブスクリプションを含むブートカプセルを認証モジュール210に提供する。認証モジュール210は、デバイスキーと共にブートカプセルを認証し、認証モジュール210のみにアクセス可能なセキュアストレージ内のリセット時に必要とされるサブスクリプション時間、ヒューズサンプリング及び/又はセキュア・エージェント・インフラストラクチャ(SAI)通信に関する情報を保存する。その結果は、ブート機構(例えばUEFIブート機構)を用いてサブスクリプションサーバ114に返信されて、更新状況を報告する。例示の実施形態では、コンピューティングデバイス104のユーザを、「App Store」のような経験を提供するトランザクションの適切な状態でプロンプトすることができる。各電源投入時に、ホストプロセッサリセットを実行する前に、認証モジュール210は、セキュアストレージ内の有効なハードウェアサブスクリプション機能をチェックし、リセット時のヒューズ又はターゲットシリコンへのSAI通信をエミュレートし、ターゲットシリコンは、プラットフォームのリセットから有効なハードウェアサブスクリプション機能で開始することができる。この機構は、試用期間、定期購読及び返品ポリシー又は再開ポリシーを実現するために、ハードウェアサブスクリプションモジュール204によって示されるハードウェアサブスクリプション機能の有効化及び無効化を可能にする。
なお、一部の実施形態では、デバイスキーモジュール202は、ハードウェアサブスクリプションサービスがコンピューティングデバイス104に提供されることを可能にするために、固有のデバイスキーのみからサブスクリプションサーバ114に十分な情報を提供することができる。そのような場合、ヒューズモジュール206及びタイマモジュール208の使用は任意であってよい。一部の例示の実施形態では、デバイスキーモジュール202は、サブスクリプションモジュール204と一体化されてよい。更に、環境200の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア又はそれらの組合わせとして実現されてよい。例えば、環境200の様々なモジュール、ロジックその他のコンポーネントは、コンピューティングデバイス104のプロセッサ120その他のハードウェアコンポーネントの一部を形成するか、そうでなければそれらによって確立されてよい。例えば、一部の実施形態では、環境200の1つ以上のモジュールは、回路(例えば認証モジュール等)として実現されてよい。
ここで図3を参照する。使用時には、サブスクリプションサーバ114は動作中に環境300を確立する。例示の環境300はシステムサブスクリプションモジュール302を含み、システムサブスクリプションモジュール302は、コンピューティングデバイス104〜110のいずれかに対するハードウェアサブスクリプションの管理、配布及び認可を担う。サブスクリプションサーバ114は、(例えばデバイスキーを介して)コンピューティングデバイスハードウェア構成データを受信すると、ハードウェア情報データベース303内のハードウェア構成データをルックアップして、正確なコンピューティングデバイスプラットフォーム情報、ハードウェア機能及びサブスクリプション情報を決定する。決定されると、サブスクリプションモジュール302は、ハードウェア機能データベース304からハードウェアサブスクリプションオプションを取得する。ハードウェアサブスクリプションオプションが組み立てられると、それらは、「App Store」等のものと同様のインタフェースを介してユーザに提示されるか、或いはコンピューティングデバイス104に直接通信されてよい。
コンピューティングデバイス104のユーザが1つ以上のハードウェアサブスクリプションオプションを選択及び/又は購入すると、システムサブスクリプションモジュール302は、選択/購入された各機能に対するハードウェアサブスクリプション認可として機能するブート(例えばUEFI)ハードウェアサブスクリプションカプセルを生成し、暗号サービスエンジンモジュール305から提供されるビルドペイロードと共に各カプセルを送信し、コンピューティングデバイス104にインストールするためにカプセルを保護して、ハードウェア機能を有効化及び/又は変更する。なお、環境300の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア又はそれらの組合わせとして実現されてよい。例えば、環境300の様々なモジュール、ロジックその他のコンポーネントは、サブスクリプションサーバ114のプロセッサ150その他のハードウェアコンポーネントの一部を形成してよく、そうでなければそれらによって確立されてよい。例えば、一部の実施形態では、環境300の1つ以上のモジュールは、回路(例えばシステムサブスクリプションモジュール等)として実現されてよい。
ここで図4を参照する。コンピューティングデバイス104は、動作中にハードウェアサブスクリプション機能を認証及び有効化するための方法400を実行してよい。方法400はブロック402から始まり、コンピューティングデバイス104が、ネットワーク112を介してサブスクリプションサーバ402に接続する。接続されると、コンピュータノード104は、ブロック404において、コンピューティングデバイス104のハードウェア構成を送信する。上述のように、コンピューティングデバイス104のハードウェア構成は、デバイスキーによって提供されてよく、又はサブスクリプションモジュール204のヒューズモジュール206によって提供されるデータから提供されてよい。ハードウェア構成がサブスクリプションサーバ114によって処理され、ハードウェアサブスクリプションオプションがユーザに提示されると、ブロック406において、ユーザは、ハードウェアサブスクリプション機能オプションを選択/購入することができる。次に、ブロック408において、コンピューティングデバイス104がブートサブスクリプションカプセルを受信する。ブートサブスクリプションカプセルは、ブロック410でコンピューティングデバイス104内のシリコンをプログラムするために、ハードウェアサブスクリプション認可として用いられる。プログラムされると、ブロック412においてコンピューティングデバイス104がリブートし、その時点で、ブロック414において、認証モジュール210は、プリブートにおいてハードウェアサブスクリプションを認証する。
ここで図5を参照する。コンピューティングデバイス104は、方法400の実行を続ける。認証後、ブロック416において、コンピューティングデバイス102内でハードウェア機能サブスクリプションが有効化され、ブロック418において、コンピューティングデバイス104が再びリブートされ、その時点で、ブロック420において、コンピューティングデバイス104が、サブスクライブされたハードウェア機能を用いて動作可能となる。一部の実施形態では、認証モジュール210は、各リブート時に、有効化され且つ/又は動作可能なハードウェアサブスクリプション機能を送信してよい。一部の実施形態では、ハードウェアサブスクリプション機能は、時間限定サブスクリプションに基づいてよい。決定ブロック422において、サブスクリプションが時間制限されているか否かの決定が行われる。そうでない場合(「NO」)、ブロック420において、ハードウェアサブスクリプション機能がコンピューティングデバイス104上で動作を続ける。ハードウェアサブスクリプション機能が時間ベースである場合(「YES」)、決定ブロック424は、ハードウェアサブスクリプション機能に関連付けられたタイマが満了したか否かを決定する。タイマが満了していない場合(「NO」)、ブロック420において、ハードウェアサブスクリプション機能がコンピューティングデバイス104上で動作を続ける。タイマが満了している場合(「YES」)、ブロック426においてハードウェアサブスクリプション機能が無効化される。無効化されると、コンピューティングデバイス104は、ブロック406において、無効化された機能の再選択/再購入を要求され、新しいブートカプセルの認証及び有効化に進んで、ハードウェアサブスクリプション機能を元に戻すことができる。
ここで図6を参照する。サブスクリプションサーバ114は、コンピュータノード104のハードウェアサブスクリプション機能を提供及び認証するための方法600を実行してよい。方法600はブロック602から始まり、ブロック602において、サブスクリプションサーバ602は、利用可能なハードウェアサブスクリプション機能をハードウェア機能データベース304にロードする。ブロック604において、サブスクリプションサーバ114は、コンピューティングデバイス104のハードウェア構成を(例えばデバイスキーを介して)受信する。ブロック606において、受信されたハードウェア構成に基づいて、サブスクリプションサーバ114は、ハードウェアサブスクリプションオプションを選択し、コンピューティングデバイス104に送信する。コンピューティングデバイス104が1つ以上のハードウェアサブスクリプションオプションを選択/購入した後、ブロック608において、サブスクリプションサーバ114は、選択されたハードウェアサブスクリプションオプションをコンピューティングデバイス104から受信する。ブロック610において、選択に基づいて、サブスクリプションサーバは、(例えば暗号サービスエンジンモジュール305を用いて)ペイロードを構築し、ハードウェアサブスクリプション認可として機能するブートハードウェアサブスクリプションカプセルをコンピューティングデバイス104に送信する。ブロック612において、サブスクリプションサーバ114は、使用される認証のタイプに応じて、コンピューティングデバイス104のハードウェアサブスクリプション機能(例えば、図4のブロック414)を認証してよい。
ここで図7を参照する。サブスクリプションサーバ114とコンピューティングデバイス104との間のハードウェアサブスクリプション選択プロセスの少なくとも1つの実施形態の簡略図が提供される。コンピュータデバイス104からハードウェア構成データを受信した後、サブスクリプションサーバ114はハードウェアサブスクリプション機能オプション702を決定し、ハードウェアサブスクリプション機能オプションS1〜S6(704〜714)に至る。図から分かるように、ハードウェアサブスクリプション機能オプションS1(704)、S2(706)及びS5(712)は、コンピューティングデバイス104上で既に有効化されており(図中、網掛けで示されている)、一方、ハードウェアサブスクリプション機能オプションS4(710)及びS6(714)は有効化されていないが、選択/購入に利用可能である。ハードウェアサブスクリプション機能オプションS3(708)は、実施形態では、選択/購入に利用できないものとして示されている。ハードウェアサブスクリプション機能オプションは、714でコンピューティングデバイス104に提示され、ユーザは、ハードウェアサブスクリプション機能オプションS4(710)及びS6(714)を選択する。選択されると、するために、図4〜6に関連して上述された方法ステップが実行されて、ハードウェアサブスクリプション機能718が提供される。選択されたハードウェア機能オプションS4(710)及びS6(714)は、ここで、以前に有効化された機能S1(704)、S2(706)、S5(712)と共に有効であり動作している。

本明細書に開示される技術の例示の例を以下に示す。技術の実施形態は、以下に記載する例の任意の1つ以上及び任意の組合わせを含んでよい。
例1は、コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用のためのコンピューティングデバイスを含む。該コンピューティングデバイスは、デバイスキーをネットワークに送信するサブスクリプションモジュールであって、デバイスキーは、コンピューティングデバイスに関するハードウェア構成データを含み、サブスクリプションモジュールは、送信されたデバイスキーに応答してハードウェアサブスクリプション認可を受信し、ハードウェアサブスクリプション認可は、コンピューティングデバイスのハードウェアコンポーネントの動作を有効化又は変更するためにコンピューティングデバイスによって使用可能なブートカプセルを含む、サブスクリプションモジュールと、サブスクリプションモジュールに通信可能に結合されて、ブートカプセルを認証する認証モジュールであって、サブスクリプションモジュールは、認証されたブートカプセルをコンピューティングデバイスのセキュアなメモリにインストールして、ハードウェアサブスクリプション認可データによって定義されたハードウェアコンポーネントの使用を認可する、認証モジュールと、を備える。
例2は、例1の主題を含む。ブートカプセルは、ユニファイド・エクステンシブル・ファームウェア・インタフェース(Unified Extensible Firmware Interface;UEFI)カプセルを含む。
例3は、例1と例2のいずれかの主題を含む。サブスクリプションモジュールは、UEFIカプセルによって指定されるブートパスを用いて、コンピューティングデバイスをリブートする。
例4は、例1〜3のいずれかの主題を含む。UEFIカプセルのUEFIドライバは、UEFIカプセルを認証モジュールに提供して、プリブート環境においてUEFIカプセルを認証する。
例5は、例1〜4のいずれかの主題を含む。認証モジュールは、ハードウェアサブスクリプション認可をセキュアなメモリに保存し、ハードウェアコンポーネントの各使用について、保存されたハードウェアサブスクリプション認可を認証する。
例6は、例1〜5のいずれかの主題を含む。ハードウェア構成認可は、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも1つを含む。
例7は、例1〜6のいずれかの主題を含む。ハードウェアコンポーネントは、シリコンベースのコンポーネントを含む。
例8は、例1〜7のいずれかの主題を含む。ハードウェアコンポーネントは、(i)動作中に用いられる複数のプロセッサコアを含むプロセッサと、(ii)変更可能なプロセッサ動作周波数を有するプロセッサと、(ii)変更可能なキャッシュサイズメモリと、(iii)変更可能なレーンを有するPCI Expressグラフィックス(PEG)ポートと、(iv)ジェスチャ感知装置と、(v)指紋感知装置と、(vi)外部周辺機器への接続を可能にするハードウェアインタフェースとのうち1つを含む。
例9は、例1〜8のいずれかの主題を含む。ハードウェアサブスクリプション認可は、ハードウェアサブスクリプション信号認可によって定義されたハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを含む。
例10は、例1〜9のいずれかの主題を含む。サブスクリプションモジュールは、時間データが失効すると、ハードウェアサブスクリプション認可によって定義されたハードウェアコンポーネントの認可された使用を無効にする。
例11は、例1〜10のいずれかの主題を含む。コンピューティングデバイスは、ハードウェアコンポーネントについてのハードウェアサブスクリプション認可の受信の前に、ハードウェアコンポーネントを選択する。
例12は、コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用のためのサブスクリプションサーバを含む。サブスクリプションサーバは、ネットワークからデバイスキーを受信するシステムサブスクリプションモジュールであって、デバイスキーは、コンピューティングデバイスに関するハードウェア構成データを含み、システムサブスクリプションモジュールは、受信されたデバイスキーに基づいてハードウェアサブスクリプション認可を送信し、ハードウェアサブスクリプション認可は、コンピューティングデバイスのハードウェアコンポーネントの動作を有効化又は変更するためのブートカプセルを含む、システムサブスクリプションモジュールと、ハードウェアサブスクリプション認可と共に送信するセキュアなペイロードを提供する暗号サービスエンジンモジュールであって、暗号サービスエンジンは、コンピューティングデバイスによるブートカプセルのインストールを認可する、暗号サービスエンジンモジュールと、を含む。
例13は、例12の主題を含む。ハードウェア構成データは、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも1つを含む。
例14は、例12と例13のいずれかの主題を含む。システムサブスクリプションモジュールは、ハードウェア構成データに基づいて、ハードウェアサブスクリプション認可について1以上のハードウェアコンポーネントオプションを決定する。
例15は、例12〜14のいずれかの主題を含む。システムサブスクリプションモジュールは、1以上のハードウェアコンポーネントオプションをコンピューティングデバイスに通信し、1以上のハードウェアコンポーネントオプションの選択をコンピューティングデバイスから受信する。
例16は、例12〜15のいずれかの主題を含む。システムサブスクリプションモジュールは、選択されたハードウェアコンポーネントオプションに基づいて、ハードウェアサブスクリプション認可を送信する。
例17は、例12〜16のいずれかの主題を含む。ブートカプセルは、ユニファイド・エクステンシブル・ファームウェア・インタフェース(Unified Extensible Firmware Interface;UEFI)カプセルを含む。
例18は、例12〜17のいずれかの主題を含む。UEFIカプセルは、コンピューティングデバイスについてブートパスを指定する。
例19は、例12〜18のいずれかの主題を含む。UEFIカプセルは、プリブート環境においてUEFIカプセルを認証するUEFIドライバを含む。
例20は、例12〜19のいずれかの主題を含む。ハードウェアコンポーネントは、シリコンベースのコンポーネントを含む。
例21は、例12〜20のいずれかの主題を含む。ハードウェアコンポーネントは、(i)動作中に用いられる複数のプロセッサコアを含むプロセッサと、(ii)変更可能なプロセッサ動作周波数を有するプロセッサと、(ii)変更可能なキャッシュサイズメモリと、(iii)変更可能なレーンを有するPCI Expressグラフィックス(PEG)ポートと、(iv)ジェスチャ感知装置と、(v)指紋感知装置と、(vi)外部周辺機器への接続を可能にするハードウェアインタフェースとのうち1つを含む。
例22は、例12〜21のいずれかの主題を含む。ハードウェアサブスクリプション認可は、ハードウェアサブスクリプション認可データによって定義されたハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを含む。
例23は、例12〜22のいずれかの主題を含む。ハードウェアサブスクリプション認可によって定義されたハードウェアコンポーネントの認可された使用は、時間データが失効すると無効化される。
例24は、コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用の方法を含む。本方法は、サブスクリプションモジュールが、デバイスキーをネットワークに送信するステップであって、デバイスキーは、コンピューティングデバイスに関するハードウェア構成データを含む、ステップと、サブスクリプションモジュールが、送信されたデバイスキーに応答してハードウェアサブスクリプション認可を受信するステップであって、ハードウェアサブスクリプション認可は、コンピューティングデバイスのハードウェアコンポーネントの動作を有効化又は変更するためにコンピューティングデバイスによって使用可能なブートカプセルを含む、ステップと、認証モジュールが、ブートカプセルを認証するステップと、サブスクリプションモジュールが、認証されたブートカプセルをコンピューティングデバイスのセキュアなメモリにインストールして、ハードウェアサブスクリプション認可データによって定義されたハードウェアコンポーネントの使用を認可するステップと、を含む。
例25は、例24の主題を含む。ハードウェアサブスクリプション認可を受信するステップは、ユニファイド・エクステンシブル・ファームウェア・インタフェース(UEFI)カプセルを含むブートカプセルを受信するステップを含む。
例26は、例24と例25のいずれかの主題を含む。更に、サブスクリプションモジュールが、UEFIカプセルによって指定されるブートパスを用いて、コンピューティングデバイスをリブートするステップを含む。
例27は、例24〜26のいずれかの主題を含む。更に、UEFIカプセルのUEFIドライバが、UEFIカプセルを認証モジュールに提供して、プリブート環境においてUEFIカプセルを認証するステップを含む。
例28は、例24〜27のいずれかの主題を含む。更に、認証モジュールが、ハードウェアサブスクリプション認可をセキュアなメモリに保存し、ハードウェアコンポーネントの各使用について、保存されたハードウェアサブスクリプション認可を認証するステップを含む。
例29は、例24〜28のいずれかの主題を含む。デバイスキーを送信するステップは、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも1つを含むハードウェア構成データを送信するステップを含む。
例30は、例24〜29のいずれかの主題を含む。ハードウェアサブスクリプション認可を受信してハードウェアコンポーネントの動作を有効化又は変更するステップは、シリコンベースのコンポーネントの動作を有効化又は変更するためのデータを含む。
例31は、例24〜30のいずれかの主題を含む。ハードウェアサブスクリプション認可を受信してハードウェアコンポーネントの動作を有効化又は変更するステップは、(i)動作中に用いられる複数のプロセッサコアを含むプロセッサと、(ii)変更可能なプロセッサ動作周波数を有するプロセッサと、(ii)変更可能なキャッシュサイズメモリと、(iii)変更可能なレーンを有するPCI Expressグラフィックス(PEG)ポートと、(iv)ジェスチャ感知装置と、(v)指紋感知装置と、(vi)外部周辺機器への接続を可能にするハードウェアインタフェースとのうち少なくとも1つの動作を有効化又は変更するためのデータを含む。
例32は、例24〜31のいずれかの主題を含む。ハードウェアコンポーネントの動作を有効化又は変更するためのデータを含むハードウェアサブスクリプション認可を受信するステップは、ハードウェアサブスクリプション信号認可によって定義されたハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを受信するステップを含む。
例33は、例24〜32のいずれかの主題を含む。更に、時間データが失効すると、サブスクリプションモジュールが、ハードウェアサブスクリプション認可によって定義されたハードウェアコンポーネントの認可された使用を無効化するステップを含む。
例34は、例24〜33のいずれかの主題を含む。更に、受信前にハードウェアサブスクリプション認可を選択するコンピューティングデバイスから選択信号を受信するステップを含む。
例35は、コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプションサーバによるサブスクリプション方式の使用を提供する方法を含む。本方法は、システムサブスクリプションモジュールが、ネットワークからデバイスキーを受信するステップであって、デバイスキーは、コンピューティングデバイスに関するハードウェア構成データを含む、ステップと、システムサブスクリプションモジュールが、受信されたデバイスキーに基づいてハードウェアサブスクリプション認可を送信するステップであって、ハードウェアサブスクリプション認可は、コンピューティングデバイスのハードウェアコンポーネントの動作を有効化又は変更するためのブートカプセルを含む、ステップと、暗号サービスエンジンモジュールが、ハードウェアサブスクリプション認可と共に送信するセキュアなペイロードを提供するステップであって、暗号サービスエンジンは、コンピューティングデバイスによるブートカプセルのインストールを認可する、ステップと、を含む。
例36は、例35の主題を含む。更に、ネットワークからデバイスキーを受信するステップは、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも1つを含むハードウェア構成データを受信するステップを含む。
例37は、例35と例36のいずれかの主題を含む。更に、システムサブスクリプションモジュールが、ハードウェア構成データに基づいて、ハードウェアサブスクリプション認可について1以上のハードウェアコンポーネントオプションを決定するステップを含む。
例38は、例34〜37のいずれかの主題を含む。更に、システムサブスクリプションモジュールが、1以上のハードウェアコンポーネントオプションをコンピューティングデバイスに通信し、コンピューティングデバイスから1以上のハードウェアコンポーネントオプションの選択を受信するステップを含む。
例39は、例34〜38のいずれかの主題を含む。更に、システムサブスクリプションモジュールが、選択されたハードウェアコンポーネントオプションに基づいて、ハードウェアサブスクリプション認可を送信するステップを含む。
例40は、例34〜39のいずれかの主題を含む。ハードウェアサブスクリプション認可を送信するステップは、ユニファイド・エクステンシブル・ファームウェア・インタフェース(UEFI)カプセルを含むブートカプセルを送信するステップを含む。
例41は、例34〜40のいずれかの主題を含む。UEFIカプセルを含むブートカプセルを送信するステップは、コンピューティングデバイスについてブートパスを指定するUEFIカプセルを送信するステップを含む。
例42は、例34〜41のいずれかの主題を含む。UEFIカプセルを送信するステップは、UEFIドライバを含むUEFIカプセルを送信して、プリブート環境においてUEFIカプセルを認証するステップを含む。
例42は、例34〜42のいずれかの主題を含む。ハードウェアコンポーネントの動作を有効化又は変更するためにハードウェアサブスクリプション認可を送信するステップは、ハードウェアコンポーネントの動作を有効化又は変更するためのデータを含み、シリコンベースのコンポーネントを含むハードウェアコンポーネントの動作を有効化又は変更するためのデータを含む。
例43は、例34〜43のいずれかの主題を含む。ハードウェアコンポーネントの動作を有効化又は変更するためにハードウェアサブスクリプション認可を送信するステップは、(i)動作中に用いられる複数のプロセッサコアを含むプロセッサと、(ii)変更可能なプロセッサ動作周波数を有するプロセッサと、(ii)変更可能なキャッシュサイズメモリと、(iii)変更可能なレーンを有するPCI Expressグラフィックス(PEG)ポートと、(iv)ジェスチャ感知装置と、(v)指紋感知装置と、(vi)外部周辺機器への接続を可能にするハードウェアインタフェースとのうち少なくとも1つの動作を有効化又は変更するデータを含む。
例45は、例34〜43のいずれかの主題を含む。ハードウェアサブスクリプション認可を送信するステップは、ハードウェアサブスクリプション認可データによって定義されたハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを送信するステップを含む。
例46は、例34〜45のいずれかの主題を含む。更に、時間データが失効すると、システムサブスクリプションモジュールが、ハードウェアサブスクリプション認可によって定義されたハードウェアコンポーネントの認可された使用を無効化するステップを含む。
例47は、コンピューティングデバイスによる実行に応答して、コンピューティングデバイスに、例24〜46のいずれか1つに記載の方法を実行させる複数の命令を含む、1つ以上の機械可読記憶媒体を含む。
例48は、コンピューティングデバイスのネットワーキングデバイスのファームウェアを更新するためのコンピューティングデバイスを含み、コンピューティングデバイスは、例24〜46のいずれか1つに記載の方法を実行する手段を備える。

Claims (26)

  1. コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用のための前記コンピューティングデバイスであって、
    デバイスキーをネットワークに送信するサブスクリプションモジュールであって、前記デバイスキーは、前記コンピューティングデバイスに関するハードウェア構成データを含み、前記サブスクリプションモジュールは、送信された前記デバイスキーに応答してハードウェアサブスクリプション認可を受信し、前記ハードウェアサブスクリプション認可は、前記コンピューティングデバイスの前記ハードウェアコンポーネントの動作を有効化又は変更するために前記コンピューティングデバイスによって使用可能なブートカプセルを含む、サブスクリプションモジュールと、
    前記サブスクリプションモジュールに通信可能に結合されて、前記ブートカプセルを認証する認証モジュールと、
    を備え、前記サブスクリプションモジュールは、認証された前記ブートカプセルを前記コンピューティングデバイスのセキュアなメモリにインストールして、前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの使用を認可する、
    コンピューティングデバイス。
  2. 前記ブートカプセルは、ユニファイド・エクステンシブル・ファームウェア・インタフェース(Unified Extensible Firmware Interface;UEFI)カプセルを含む、
    請求項1に記載のコンピューティングデバイス。
  3. 前記サブスクリプションモジュールは、前記UEFIカプセルによって指定されるブートパスを用いて、前記コンピューティングデバイスをリブートする、
    請求項1に記載のコンピューティングデバイス。
  4. 前記UEFIカプセルのUEFIドライバは、プリブート環境において前記UEFIカプセルを認証するために、前記UEFIカプセルを前記認証モジュールに提供する、
    請求項1乃至3のいずれか一項に記載のコンピューティングデバイス。
  5. 前記認証モジュールは、前記ハードウェアサブスクリプション認可を前記セキュアなメモリに保存し、前記ハードウェアコンポーネントの各使用について、保存された前記ハードウェアサブスクリプション認可を認証する、
    請求項1に記載のコンピューティングデバイス。
  6. 前記ハードウェア構成データは、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも1つを含む、
    請求項1に記載のコンピューティングデバイス。
  7. 前記ハードウェアコンポーネントは、(i)動作中に用いられる複数のプロセッサコアを含むプロセッサと、(ii)変更可能なプロセッサ動作周波数を有するプロセッサと、(iii)変更可能なキャッシュサイズメモリと、(iv)変更可能なレーンを有するPCI Expressグラフィックス(PEG)ポートと、(v)ジェスチャ感知装置と、(vi)指紋感知装置と、(vii)外部周辺機器への接続を可能にするハードウェアインタフェースとのうち1つを含む、
    請求項1乃至3、5及び6のいずれか一項に記載のコンピューティングデバイス。
  8. 前記ハードウェアサブスクリプション認可は、前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを含む、
    請求項1に記載のコンピューティングデバイス。
  9. 前記サブスクリプションモジュールは、前記時間データが失効すると、前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの認可された使用を無効にする、
    請求項8に記載のコンピューティングデバイス。
  10. コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用のためのサブスクリプションサーバであって、
    ネットワークからデバイスキーを受信するシステムサブスクリプションモジュールであって、前記デバイスキーは、前記コンピューティングデバイスに関するハードウェア構成データを含み、前記システムサブスクリプションモジュールは、受信された前記デバイスキーに基づいてハードウェアサブスクリプション認可を送信し、前記ハードウェアサブスクリプション認可は、前記コンピューティングデバイスの前記ハードウェアコンポーネントの動作を有効化又は変更するためのブートカプセルを含む、システムサブスクリプションモジュールと、
    前記ハードウェアサブスクリプション認可と共に送信するセキュアなペイロードを提供する暗号サービスエンジンモジュールであって、暗号サービスエンジンは、前記コンピューティングデバイスによる前記ブートカプセルのインストールを認可する、
    サブスクリプションサーバ。
  11. 前記ハードウェア構成データは、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも1つを含む、
    請求項10に記載のサブスクリプションサーバ。
  12. 前記システムサブスクリプションモジュールは、前記ハードウェア構成データに基づいて、前記ハードウェアサブスクリプション認可について1以上のハードウェアコンポーネントオプションを決定する、
    請求項11に記載のサブスクリプションサーバ。
  13. 前記システムサブスクリプションモジュールは、前記1以上のハードウェアコンポーネントオプションを前記コンピューティングデバイスに通信し、前記コンピューティングデバイスから前記1以上のハードウェアコンポーネントオプションの選択を受信する、
    請求項12に記載のサブスクリプションサーバ。
  14. 前記システムサブスクリプションモジュールは、選択された前記ハードウェアコンポーネントオプションに基づいて、前記ハードウェアサブスクリプション認可を送信する、
    請求項13に記載のサブスクリプションサーバ。
  15. 前記ブートカプセルは、ユニファイド・エクステンシブル・ファームウェア・インタフェース(Unified Extensible Firmware Interface;UEFI)カプセルを含む、
    請求項10乃至14のいずれか一項に記載のサブスクリプションサーバ。
  16. 前記UEFIカプセルは、前記コンピューティングデバイスについてブートパスを指定する、
    請求項15に記載のサブスクリプションサーバ。
  17. 前記UEFIカプセルは、プリブート環境において前記UEFIカプセルを認証するUEFIドライバを含む、
    請求項15に記載のサブスクリプションサーバ。
  18. 前記ハードウェアサブスクリプション認可は、前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを含む、
    請求項10に記載のサブスクリプションサーバ。
  19. 前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの前記認可された使用は、前記時間データが失効すると無効化される、
    請求項18に記載のサブスクリプションサーバ。
  20. コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用のための方法であって、
    サブスクリプションモジュールが、デバイスキーをネットワークに送信するステップであって、前記デバイスキーは、前記コンピューティングデバイスに関するハードウェア構成データを含む、ステップと、
    前記サブスクリプションモジュールが、送信された前記デバイスキーに応答してハードウェアサブスクリプション認可を受信するステップであって、前記ハードウェアサブスクリプション認可は、前記コンピューティングデバイスの前記ハードウェアコンポーネントの動作を有効化又は変更するために前記コンピューティングデバイスによって使用可能なブートカプセルを含む、ステップと、
    認証モジュールが、前記ブートカプセルを認証するステップと、
    前記サブスクリプションモジュールが、認証された前記ブートカプセルを前記コンピューティングデバイスのセキュアなメモリにインストールして、前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの使用を認可するステップと、
    を含む方法。
  21. 前記ハードウェアサブスクリプション認可を受信するステップは、ユニファイド・エクステンシブル・ファームウェア・インタフェース(UEFI)カプセルを含む前記ブートカプセルを受信するステップを含む、
    請求項20に記載の方法。
  22. コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプションサーバによるサブスクリプション方式の使用を提供する方法であって、
    システムサブスクリプションモジュールが、ネットワークからデバイスキーを受信するステップであって、前記デバイスキーは、前記コンピューティングデバイスに関するハードウェア構成データを含む、ステップと、
    前記システムサブスクリプションモジュールが、受信された前記デバイスキーに基づいてハードウェアサブスクリプション認可を送信するステップであって、前記ハードウェアサブスクリプション認可は、前記コンピューティングデバイスの前記ハードウェアコンポーネントの動作を有効化又は変更するためのブートカプセルを含む、ステップと、
    暗号サービスエンジンモジュールが、前記ハードウェアサブスクリプション認可と共に送信するセキュアなペイロードを提供するステップであって、前記暗号サービスエンジンモジュールは、前記コンピューティングデバイスによる前記ブートカプセルのインストールを認可する、ステップと、
    を含む方法。
  23. 前記ハードウェアサブスクリプション認可を送信するステップは、ユニファイド・エクステンシブル・ファームウェア・インタフェース(UEFI)カプセルを含むブートカプセルを送信するステップを含む、
    請求項22に記載の方法。
  24. 請求項20乃至23のいずれか一項に記載の方法をコンピューティングデバイスに実行させるプログラム。
  25. 請求項24に記載のプログラムを格納した1以上の機械可読記憶媒体。
  26. コンピューティングデバイスのネットワーキングデバイスのファームウェアを更新するためのコンピューティングデバイスであって、請求項20乃至23のいずれか一項に記載の方法を実行するための手段を備えるコンピューティングデバイス。
JP2017533250A 2014-12-27 2015-11-19 コンピューティングデバイス、サブスクリプションサーバ及び方法 Active JP6661641B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/583,656 2014-12-27
US14/583,656 US10282538B2 (en) 2014-12-27 2014-12-27 Technologies for providing hardware subscription models using pre-boot update mechanism
PCT/US2015/061613 WO2016105719A1 (en) 2014-12-27 2015-11-19 Technologies for providing hardware subscription models using pre-boot update mechanism

Publications (2)

Publication Number Publication Date
JP2017539036A true JP2017539036A (ja) 2017-12-28
JP6661641B2 JP6661641B2 (ja) 2020-03-11

Family

ID=56151322

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017533250A Active JP6661641B2 (ja) 2014-12-27 2015-11-19 コンピューティングデバイス、サブスクリプションサーバ及び方法

Country Status (5)

Country Link
US (1) US10282538B2 (ja)
EP (1) EP3238114A4 (ja)
JP (1) JP6661641B2 (ja)
CN (1) CN107003871B (ja)
WO (1) WO2016105719A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022084319A (ja) * 2020-11-26 2022-06-07 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、及びbios管理方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10699033B2 (en) * 2017-06-28 2020-06-30 Advanced Micro Devices, Inc. Secure enablement of platform features without user intervention
US10797887B2 (en) * 2019-06-26 2020-10-06 Alibaba Group Holding Limited Confidential blockchain transactions
CN111897539B (zh) * 2020-07-20 2024-03-29 国云科技股份有限公司 一种根据服务角色的进行应用部署的方法及装置
CN116134430A (zh) * 2020-09-21 2023-05-16 惠普发展公司,有限责任合伙企业 功能激活
US11947433B2 (en) * 2022-01-07 2024-04-02 Dell Products L.P. System and method for subscription based solution management
US20230221784A1 (en) * 2022-01-07 2023-07-13 Dell Products L.P. System and method for power state enforced subscription management
US11907153B2 (en) 2022-01-07 2024-02-20 Dell Products L.P. System and method for distributed subscription management
US11888690B2 (en) 2022-01-07 2024-01-30 Dell Products L.P. System and method for subscription limitation enforcement in distributed system

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324547B1 (en) * 1998-04-02 2001-11-27 Lucent Technologies Inc. Method for creating and modifing similar and dissimilar databases for use in intelligent network configurations for telecommunication systems
US6598169B1 (en) * 1999-07-26 2003-07-22 Microsoft Corporation System and method for accessing information made available by a kernel mode driver
US20050251851A1 (en) 2003-10-10 2005-11-10 Bea Systems, Inc. Configuration of a distributed security system
CN100426729C (zh) * 2005-12-09 2008-10-15 华为技术有限公司 一种呈现系统及其处理订阅者订阅信息的方法
CN101141246B (zh) * 2006-09-05 2011-07-06 华为技术有限公司 一种业务密钥获取方法和一种订阅管理服务器
US8014308B2 (en) * 2006-09-28 2011-09-06 Microsoft Corporation Hardware architecture for cloud services
US7984497B2 (en) 2007-04-04 2011-07-19 Microsoft Corporation System and method for binding a subscription-based computing system to an internet service provider
US20090239503A1 (en) * 2008-03-20 2009-09-24 Bernard Smeets System and Method for Securely Issuing Subscription Credentials to Communication Devices
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US8909940B2 (en) * 2008-06-23 2014-12-09 Intel Corporation Extensible pre-boot authentication
US7984286B2 (en) 2008-06-25 2011-07-19 Intel Corporation Apparatus and method for secure boot environment
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)
US9027084B2 (en) 2008-07-28 2015-05-05 Evan S. Huang Methods and apparatuses for securely operating shared host devices with portable apparatuses
US8041793B2 (en) * 2008-09-24 2011-10-18 Dell Products L.P. Boot image discovery and delivery system
US8353026B2 (en) * 2008-10-23 2013-01-08 Dell Products L.P. Credential security system
CN101561915A (zh) 2009-06-05 2009-10-21 阿里巴巴集团控股有限公司 一种插件获取方法、系统及装置
CN102088443B (zh) * 2009-12-02 2015-04-01 北大方正集团有限公司 一种带版权保护的数字期刊订阅方法和系统
US8544106B2 (en) * 2010-08-01 2013-09-24 Cavium, Inc. System and method for enabling access to a protected hardware resource
GB2504023B (en) * 2011-04-21 2020-09-16 Hewlett Packard Development Co Lp Virtual BIOS
US9338159B2 (en) * 2012-03-19 2016-05-10 Nokia Technologies Oy Method and apparatus for sharing wireless network subscription services
CN104937562B (zh) * 2013-01-30 2018-04-06 慧与发展有限责任合伙企业 非易失性存储器写入机制
US9292664B2 (en) * 2013-03-01 2016-03-22 Lenovo (Singapore) Pte. Ltd. Key injection tool
US9160542B2 (en) 2013-03-18 2015-10-13 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Authorizing use of a test key signed build
US20150268970A1 (en) * 2014-03-21 2015-09-24 Giri P. Mudusuru Selectively enabling platform-specific features
US9558329B2 (en) * 2014-06-19 2017-01-31 Dell Products L.P. License management using a basic input/output system (BIOS)
US9965288B2 (en) * 2014-07-10 2018-05-08 Cisco Technology, Inc. Preconfiguring hardware and speeding up server discovery prior to bios boot
US20160134621A1 (en) * 2014-11-12 2016-05-12 Qualcomm Incorporated Certificate provisioning for authentication to a network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022084319A (ja) * 2020-11-26 2022-06-07 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、及びbios管理方法
JP7090140B2 (ja) 2020-11-26 2022-06-23 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、及びbios管理方法

Also Published As

Publication number Publication date
CN107003871A (zh) 2017-08-01
CN107003871B (zh) 2021-01-26
US20160188868A1 (en) 2016-06-30
JP6661641B2 (ja) 2020-03-11
EP3238114A4 (en) 2018-08-22
US10282538B2 (en) 2019-05-07
WO2016105719A1 (en) 2016-06-30
EP3238114A1 (en) 2017-11-01

Similar Documents

Publication Publication Date Title
JP6661641B2 (ja) コンピューティングデバイス、サブスクリプションサーバ及び方法
EP3123312B1 (en) In-system provisioning of firmware for a hardware platform
US10860305B1 (en) Secure firmware deployment
US10031993B1 (en) Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA)
JP5526450B2 (ja) ハードウェア構成を変更する方法、ハードウェア構成の変更を遠隔位置において可能にする方法、及びそのための装置
JP5576983B2 (ja) 非ローカル記憶装置からのサブシステムのセキュアなブート及び構成
US9152428B2 (en) Alternative boot path support for utilizing non-volatile memory devices
US11194588B2 (en) Information handling systems and method to provide secure shared memory access at OS runtime
US9405707B2 (en) Secure replay protected storage
US20170372076A1 (en) Technologies for provisioning and managing secure launch enclave with platform firmware
US20190138730A1 (en) System and Method to Support Boot Guard for Original Development Manufacturer BIOS Development
US9866443B1 (en) Server data port learning at data switch
US10255438B2 (en) Operating system agnostic validation of firmware images
US20230221784A1 (en) System and method for power state enforced subscription management
US11068035B2 (en) Dynamic secure ACPI power resource enumeration objects for embedded devices
JP6877388B2 (ja) 情報処理装置、移動体、情報処理方法、およびプログラム
US11755786B2 (en) Command authority extension system and method for security protocol and data model (SPDM) secure communication channels
US10708129B1 (en) Changing hardware capabilities of a device
US11675933B2 (en) Client authorization mechanisms to access native services
US20240073007A1 (en) Enforcing access control for embedded controller resources and interfaces
US12001826B2 (en) Device firmware update techniques

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191225

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: 20200114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200212

R150 Certificate of patent or registration of utility model

Ref document number: 6661641

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