JP2016513838A - セキュリティ・コプロセッサ・ブート性能 - Google Patents

セキュリティ・コプロセッサ・ブート性能 Download PDF

Info

Publication number
JP2016513838A
JP2016513838A JP2015561893A JP2015561893A JP2016513838A JP 2016513838 A JP2016513838 A JP 2016513838A JP 2015561893 A JP2015561893 A JP 2015561893A JP 2015561893 A JP2015561893 A JP 2015561893A JP 2016513838 A JP2016513838 A JP 2016513838A
Authority
JP
Japan
Prior art keywords
security
processor
command
computing device
response
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
JP2015561893A
Other languages
English (en)
Other versions
JP6050528B2 (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 JP2016513838A publication Critical patent/JP2016513838A/ja
Application granted granted Critical
Publication of JP6050528B2 publication Critical patent/JP6050528B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

計算デバイスにおけるプラットフォームの初期化を改善する技術は、計算デバイスの基本入出力システムモジュール(BIOS)を用いて計算デバイスのプラットフォームの初期化を開始することを含む。セキュリティ・コ・プロセッサコマンドがBIOSモジュールから受け取られると、セキュリティ・コ・プロセッサドライバモジュールは、セキュリティ・コ・プロセッサコマンドをコマンドリストに加える。計算デバイスは、プラットフォームの初期化の定期的割り込みを確立し、セキュリティ・コ・プロセッサに前に送ったセキュリティ・コ・プロセッサコマンドに対する応答の入手可能性に関してクエリし、セキュリティ・コ・プロセッサドライバモジュールにより受け取られた応答をBIOSに転送し、コマンドリスト中の次のセキュリティ・コ・プロセッサをセキュリティ・コ・プロセッサに送る。

Description

トラステッドプラットフォームモジュール(TPM)及びその他のセキュリティ・コ・プロセッサは、計算デバイスのセキュリティを向上するために一般的に用いられている。かかるセキュリティ・コ・プロセッサは、一般的に、様々な暗号機能を行い、プラットフォームのインテグリティを保証するために用いられることが多い。また、セキュリティ・コ・プロセッサは、一般的に暗号プロシージャを実行できるので、幾つかの場合には、計算デバイスのメインプロセッサから暗号プロシージャをオフロードするために用いられる。
今日の社会では、様々な計算デバイスのコンシューマの喜びに対してスピードが欠かせない。例えば、ウルトラブックが市場に登場したのは、標準的なノートブックコンピュータと比較してブートスピードを速くすることが中心フォーカスである。さらに、オペレーティングシステムとコンピュータプラットフォームに対する幾つかの標準は、生産者がブートスピードに注意することを要求し、例えばそれは計算デバイスがUnified Extensible Firmware Interface (UEFI) basic input/output system (BIOS) Power−On Self−Test (POST)を数秒で完了することを要求することにより行われる。これらの標準は、計算デバイスが素早くブートし、サーバのリブートに関連するダウンタイムが最小であることを保証する。さらに、典型的なTPMをブートするのに関連するレイテンシは大きく、これはこれらの標準に反する。
ここで説明するコンセプトを、添付した図面において、限定ではなく実施例により説明する。説明を単純かつ明確にするため、図に示した要素は必ずしもスケール通りには描いていない。適当であれば、対応または類似する要素を示すため、複数の図面で同じ参照レベルを用いた。
プラットフォーム初期化を改善する計算デバイスの少なくとも一実施形態を示す簡略化したブロック図である。 図1の計算デバイスの環境の少なくとも一実施形態を示す簡略化したブロック図である。 図1の計算デバイスにおけるプラットフォーム初期化を改善する方法の少なくとも一実施形態を示す簡略化したフロー図である。 図1の計算デバイスにおけるプラットフォーム初期化を改善する方法の少なくとも一実施形態を示す簡略化したフロー図である。 図1の計算デバイスのブートフローを示す簡略化したフロー図である。 従来システムのブートフローを示す簡略化したフロー図である。
本開示のコンセプトはいろいろな修正を施したり代替的形式を取ったりすることもできるが、その具体的な実施形態を図面において実施例で示し、ここに詳細に説明する。しかし、言うまでもなく、開示した具体的な形式に本開示を限定する意図ではなく、逆に、本発明は本開示と添付した特許請求の範囲に沿ったすべての修正、等価物及び代替物をカバーするものである。
本明細書において「one embodiment」、「an embodiment」、「an illustrative embodiment」などと言う場合、記載した実施形態が、ある機能、構造、または特徴を含むが、かならずしもすべての実施形態がその機能、構造、または特徴を含んでも含まなくてもよい。さらに、かかる文言は必ずしも同じ実施形態を参照しているとは限らない。さらに、ある機能、構造、または特徴をある実施形態について説明した場合、明示的に記載していようがいまいが、他の実施形態に関するそれらの機能、構造、または特徴に影響が及ぶことは、当業者には自明である。
開示した実施形態は、幾つかの場合には、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実装できる。開示の実施形態は、一時的又は非一時的な機械読み取り可能(例えば、コンピュータ読み取り可能)記憶媒体により担われ、又はそれに格納された(一以上のプロセッサにより読み取られ実行され得る)命令として実装することもできる。機械読み取り可能記憶媒体は、機械により読み取り可能な形式で情報を格納又は送信する任意のストレージデバイス、メカニズム、又はその他の物理的構造(例えば、揮発性又は不揮発性メモリ、メディアディスク、又はその他のメディアデバイス)として実施できる。
図中、幾つかの構造的又は方法フィーチャを具体的な構成及び/又は順序で示すかも知れない。しかし、言うまでもなく、かかる具体的な構成及び/又は順序は必須ではない場合がある。むしろ、幾つかの場合には、かかるフィーチャは、例示した図面に示したのとは異なる方法及び/又は順序で構成することもできる。また、ある図面に構造的又は方法フィーチャを含めることは、かかるフィーチャがすべての実施形態において必要であることを意味するのではなく、幾つかの実施形態では、含まれなくてもよいし、他のフィーチャと組み合わされてもよい。
ここで図1を参照するに、例示の実施形態において、プラットフォーム初期化を改善する計算デバイス100は、計算デバイス100のBIOSが、セキュリティ・コ・プロセッサからの応答を待つ間に、計算デバイス100の他のコンポーネントの初期化プロセスを継続するように構成される。以下に詳しく説明するように、これにより、セキュリティ・コ・プロセッサに送った各セキュリティ・コ・プロセッサコマンドに対するセキュリティ・コ・プロセッサからの応答を待つことに関連する大きなレイテンシが無くなる。
計算デバイス100は、プラットフォーム初期化を改善でき、ここに説明する機能を実行できる任意のタイプの計算デバイスとして実施できる。例えば、計算デバイス100は、セルラー電話、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント、モバイルインターネットデバイス、デスクトップコンピュータ、サーバ、及び/又はその他の任意の計算/通信デバイスとして実施できる。図1に示したように、例示の計算デバイス100は、プロセッサ110、入出力(I/O)サブシステム112、メモリ114、データストレージ116、一以上の周辺デバイス118、及びセキュリティ・コ・プロセッサ120を含む。もちろん、計算デバイス100は、一実施形態では、一般的な計算デバイスに一般的に見つかるようなその他の又は追加的なコンポーネント(例えば、様々な入出力デバイス、通信回路など)を含み得る。また、幾つかの実施形態では、例示したコンポーネントのうち一以上は、他のコンポーネントに組み込まれていても良く、又はその一部を構成していても良い。例えば、メモリ114又はその部分は、幾つかの実施形態では、プロセッサ110に組み込まれても良い。
プロセッサ110は、ここに説明する機能を実行できる任意のタイプのプロセッサとして実施できる。例えば、このプロセッサは、シングル又はマルチコアプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、又はその他のプロセッサ又は処理/制御回路として実施できる。同様に、メモリ114は、ここに説明する機能を実行できる、任意のタイプの揮発性又は不揮発性メモリ又はデータストレージとして実施できる。動作中、メモリ114は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバなど、計算デバイス100の動作中に用いられる様々なデータとソフトウェアを記憶できる。メモリ114は、I/Oサブシステム112を介してプロセッサ110に通信可能に結合している。I/Oサブシステム112は、プロセッサ110、メモリ114、及び計算デバイス100のその他のコンポーネントとの入出力動作を容易にする回路及び/又はコンポーネントとして実施できる。例えば、I/Oサブシステム112は、メモリコントローラハブ、入出力制御ハブ、ファームウェアデバイス、通信リンク(すなわち、ポイント・ツー・ポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路板トレースなど)及び/又は入出力動作を容易にするその他のコンポーネント及びサブシステムとして、又はこれらを含むものとして実施できる。幾つかの実施形態では、I/Oサブシステム112は、システム・オン・チップ(SoC)の一部を形成でき、単一の集積回路チップ上にプロセッサ110、メモリ114、及び計算デバイス100のその他のコンポーネントとともに、組み込むことができる。
データストレージ116は、例えば、メモリデバイスと回路、メモリカード、ハードディスクドライブ、固体ドライブ、その他の記憶デバイスなどの、データを短期又は長期にわたり格納するように構成された任意のタイプのデバイスとして実施できる。計算デバイス100の周辺デバイス118は、いくつの追加的周辺デバイスやインタフェースデバイスを含んでもよい。周辺デバイス118に含まれるデバイスは、例えば、計算デバイス100のタイプ及び/又は意図された使用目的などに応じて決まってもよい。
セキュリティ・コ・プロセッサ120は、ここに説明する機能を実行できる任意のハードウェアコンポーネント又は回路として実施できる。幾つかの実施形態では、セキュリティ・コ・プロセッサ120は、トラステッド実行環境(trusted execution environment)を確立できる。例えば、セキュリティ・コ・プロセッサ120は、トラステッドプラットフォームモジュール(TPM)、マネジャビリティエンジン(manageability engine、ME)、集中セキュリティエンジン(converged security engine、CSE)、又はその他の帯域外(out−of−band)プロセッサとして実施できる。幾つかの実施形態では、セキュリティ・コ・プロセッサ120は、独立して、プロセッサ110に対して帯域外で動作するように構成された帯域外プロセッサとして実施される。
図2を参照するに、使用時、計算デバイス100は、プラットフォーム初期化を改善する環境200を確立する。例示の実施形態における環境200は、セキュリティ・コ・プロセッサ202と基本入出力システム(BIOS)モジュール204を含む。また、セキュリティ・コ・プロセッサドライバモジュール202は、さらに、アプリケーションプログラミングインタフェース206、タイマーモジュール208、及びセキュリティ・コ・プロセッサ割り込みハンドラ210を含む。セキュリティ・コ・プロセッサドライバモジュール202、BIOSモジュール204、アプリケーションプログラムインタフェース206、タイマーモジュール208、及びセキュリティ・コ・プロセッサ割り込みハンドラ210はそれぞれハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせとして実施できる。
セキュリティ・コ・プロセッサドライバモジュール202は、セキュリティ・コ・プロセッサ120と計算デバイス100のその他のコンポーネントとの間の通信を管理する。例えば、以下に詳しく説明するように、セキュリティ・コ・プロセッサドライバモジュール202は、セキュリティ・コ・プロセッサコマンドをセキュリティ・コ・プロセッサ120に実行その他の処理のために送信できる。セキュリティ・コ・プロセッサが応答するのを待つ(これには大きなレイテンシが伴う)替わりに、幾つかの実施形態では、以下により詳しく説明するように、セキュリティ・コ・プロセッサドライバモジュール202は、セキュリティ・コ・プロセッサ120の状態をクエリ又は調べ(poll)、セキュリティ・コ・プロセッサ120の応答が準備できたか判断し、もしまだであれば、その他の初期化を再開する。
BIOSモジュール204は、計算デバイス100のプラットフォームの初期化を開始できる。そのため、幾つかの実施形態では、BIOSモジュール204は、計算デバイス100の様々なコンポーネント(例えば、入出力デバイス)を初期化及び/又はテストする。また、BIOSモジュール204は、セキュリティ・コ・プロセッサドライバモジュール202のアプリケーションプログラミングインタフェース(API)を用いて、セキュリティ・コ・プロセッサドライバモジュール202と通信及びインターラクトできる。幾つかの実施形態では、BIOSモジュール204は、セキュリティ・コ・プロセッサ120と直接通信せず、セキュリティ・コ・プロセッサドライバモジュール202を仲介として用いる。したがって、BISOモジュール204は、セキュリティ・コ・プロセッサコマンドを送りたい時、そのコマンドを、セキュリティ・コ・プロセッサ120に直接ではなく、セキュリティ・コ・プロセッサドライバモジュール202に送る。以下に説明するように、セキュリティ・コ・プロセッサ120は、そのセキュリティ・コ・プロセッサコマンドをコマンドリストに加える。同様に、セキュリティ・コ・プロセッサ120からの応答がセキュリティ・コ・プロセッサドライバモジュール202により受け取られた時、その応答は次いでBIOSモジュール204に転送される。もちろん、幾つかの実施形態では、一定のセキュリティ・コ・プロセッサコマンドはセキュリティ・コ・プロセッサ120からの応答を要求しないかも知れず、及び/又はセキュリティ・コ・プロセッサドライバモジュール202によりBIOSモジュール204に転送される必要は無いかも知れない。
タイマーモジュール208は、計算デバイス100のプラットフォームの初期化の定期的な割り込みを確立するように構成されている。例えば、幾つかの実施形態では、タイマーモジュール208は、High Precision Event Timer (HPET)又はその他のハードウェアタイマーを含み得る。幾つかの実施形態では、タイマーモジュール208により確立される定期的割り込みは、計算デバイス100のクロックが一定の値に達した時にいつでも生じるリアルタイム割り込みである。もちろん、他の実施形態では、タイマーモジュール208は、定期的な、又は周期が変化する(例えば、一組の期間で)割り込みを確立できる。例えば、割り込みが生じる頻度は、あるBIOSフェーズの間の方が他のBIOSフェーズよりも低い(すなわち、周期はBIOSフェーズに依存し得る)。割り込みが起こると、セキュリティ・コ・プロセッサ割り込みハンドラ210が起動され、制御が(BIOSモジュール204から)そのセキュリティ・コ・プロセッサ割り込みハンドラ210に転送される。以下に詳しく説明するように、セキュリティ・コ・プロセッサ割り込みハンドラ210は、セキュリティ・コ・プロセッサ120の状態をチェックし(すなわち、前に送信したセキュリティ・コ・プロセッサコマンドに対する応答が準備できたか判断し)、準備できていれば、セキュリティ・コ・プロセッサ120から応答を得る。
コマンドリスト中にセキュリティ・コ・プロセッサコマンドがあれば、セキュリティ・コ・プロセッサ割り込みハンドラ210は、次のコマンドを、セキュリティ・コ・プロセッサ120に処理のため送り、制御がセキュリティ・コ・プロセッサ割り込みハンドラ210から返される。もちろん、上記の通り、応答はBIOSモジュール204に転送できる。幾つかの実施形態では、コマンドリストはセキュリティ・コ・プロセッサ120への送信のためにキューされたセキュリティ・コ・プロセッサのリストである。例えば、セキュリティ・コ・プロセッサ120がTPMである実施形態では、コマンドリストはBIOSモジュール204からセキュリティ・コ・プロセッサドライバモジュール202に(又は、かかる一実施形態では、TPMドライバモジュールに)送られた、実行のためにキューに入れられるTPMコマンドのリストである。幾つかの実施形態では、セキュリティ・コ・プロセッサコマンドは、実行のため一旦セキュリティ・コ・プロセッサ120に送られると、コマンドリストから削除される。言うまでもなく、コマンドリスト中のセキュリティ・コ・プロセッサコマンドの実行の順序は、実施形態に応じて変わり得る。例えば、一実施形態では、先入れ先出し(FIFO)ポリシーが実装され得る。他の一実施形態では、後入れ先出し(LIFO)ポリシーが使われても良い。さらに他の一実施形態では、より高度なポリシーを用いて、セキュリティ・コ・プロセッサコマンドの実行の優先順位を決定できる。コマンドリストは、任意の適切なデータ構造で、計算デバイス100に格納され得る。
ここで図3と図4を参照して、使用中、計算デバイス100は、プラットフォーム初期化を改善する方法300を実行でき、これは例えば、BIOSモジュール204が、セキュリティ・コ・プロセッサ120に送信された各セキュリティ・コ・プロセッサコマンドに対するセキュリティ・コ・プロセッサ120からの応答を待っている間に、計算デバイス100の他のコンポーネントの初期化プロセスを継続することによる。例示の方法300は、図3のブロック302で始まり、計算デバイス100がパワーオンされたか、計算デバイス100が判断する。計算デバイス100は、一旦パワーオンされると、ブロック304においてセキュリティ・コ・プロセッサ割り込みハンドラ210を初期化する。そうする時、ブロック306において、計算デバイス100はタイマーを初期化する。すなわち、プラットフォームの初期化の定期的割り込みが上記の通り確立される。また、ブロック308において、計算デバイス100はセキュリティ・コ・プロセッサコマンドリストを初期化する(例えば、適当なデータ構造を確立する)。
ブロック310において、計算デバイス100はプラットフォーム初期化を開始する。例えば、計算デバイス100は、計算デバイス100の様々なコンポーネント(例えば、様々な入出力コンポーネント)の初期化及び/又はテストを開始できる。ブロック312において、計算デバイス100は、セキュリティ・コ・プロセッサ120に送信するため、BIOSモジュール204からのセキュリティ・コ・プロセッサコマンドがセキュリティ・コ・プロセッサドライバモジュール202により受け取られたか判断する。受け取られていれば、計算デバイス100は、ブロック314において、そのセキュリティ・コ・プロセッサコマンドをセキュリティ・コ・プロセッサコマンドリストに加え、プラットフォーム初期化を継続する。ブロック316において、計算デバイス100は、セキュリティ・コ・プロセッサ割り込み(例えば、定期的な割り込み)がトリガーされたか判断する。計算デバイス100が、ブロック312において、BIOSモジュール204からセキュリティ・コ・プロセッサコマンドを受け取っていないと判断した場合、方法300はブロック316に直接進む。セキュリティ・コ・プロセッサ割り込みがトリガーされると、ブロック318において、計算デバイス100は、セキュリティ・コ・プロセッサ120の状態をチェックする。例えば、計算デバイス100は、前に送信したセキュリティ・コ・プロセッサコマンドに対する応答がセキュリティ・コ・プロセッサ120からセキュリティ・コ・プロセッサドライバモジュール202に送信するため入手可能か判断する。また、計算デバイス100がブロック316においてセキュリティ・コ・プロセッサ割り込みがトリガーされていないと判断した場合、方法300はブロック330に進み、以下により詳しく説明するように、非セキュリティ・コ・プロセッサプラットフォーム初期化が完了したか、計算デバイス100が判断する。言い換えると、幾つかの実施形態では、計算デバイス100のセキュリティ・コ・プロセッサ割り込みハンドラ210は、セキュリティ・コ・プロセッサ割り込みの発生に応じてのみ、方法300のブロック318−328で説明した機能を実行する。
ブロック318においてセキュリティ・コ・プロセッサ120の状態をチェックした後、方法300はブロック320に進む(図4を参照)。ブロック320においてセキュリティ・コ・プロセッサからの応答が入手可能かを計算デバイス100が判断すると、計算デバイス100のセキュリティ・コ・プロセッサドライバモジュール202はブロック322において、セキュリティ・コ・プロセッサ120からセキュリティ・コ・プロセッサ応答を受け取る。しかし、応答がまだであると計算デバイス100が判断すると、方法300はブロック330に進む。ブロック324において、セキュリティ・コ・プロセッサドライバモジュール202は受け取った応答をBIOSモジュール204に転送する。幾つかの実施形態では、セキュリティ・コ・プロセッサドライバモジュール202は、セキュリティ・コ・プロセッサ応答が入手可能(available)であることをBIOS204に通知するイベントをシグナリングする。かかる実施形態では、BIOSモジュール204は、応答が必要であれば、イベントコールバック手順を介してセキュリティ・コ・プロセッサ応答を読み出しできる。
ブロック326において、計算デバイス100は、セキュリティ・コ・プロセッサコマンドリストが空か判断する。すなわち、計算デバイス100は、セキュリティ・コ・プロセッサ120による実行を待っているセキュリティ・コ・プロセッサコマンドがあるか判断する。コマンドリストが空であれば、方法300はブロック330に進む。しかし、コマンドリストが空でなければ、ブロック328において、セキュリティ・コ・プロセッサドライバモジュール202は、次のセキュリティ・コ・プロセッサコマンドをセキュリティ・コ・プロセッサ120に実行のため送る。上記の通り、コマンドリスト中のセキュリティ・コ・プロセッサコマンドの実行の優先度は、実装された具体的なポリシーに応じて変化してもよい。ブロック330において、計算デバイス100は、非セキュリティ・コ・プロセッサプラットフォーム初期化が完了したか判断する。言い換えると、計算デバイス100は、セキュリティ・コ・プロセッサコマンド(すなわち、セキュリティ・コ・プロセッサコマンドリスト中のコマンド)がプラットフォーム初期化を完了するために実行すべき残っているコマンドであるか判断する。もちろん、幾つかの実施形態では、セキュリティ・コ・プロセッサ120からのセキュリティ・コ・プロセッサコマンドへの応答に依存する、BIOSモジュール204により実行される別のコマンドがあってもよい。かかる一実施形態では、計算デバイス100は、例えば、セキュリティ・コ・プロセッサコマンドが現在実行され得るコマンドであるか判断できる。
非セキュリティ・コ・プロセッサプラットフォーム初期化が完了すると、計算デバイス100はブロック332においてタイマーを停止する。すなわち、計算デバイス100は、プラットフォーム初期化の割り込みを停止する。 ブロック334において、計算デバイス100は、セキュリティ・コ・プロセッサコマンドリストが空か判断する。言うまでもなく、非セキュリティ・コ・プロセッサプラットフォーム初期化が完了し、コマンドリスト中に実行するセキュリティ・コ・プロセッサコマンドが無ければ、プラットフォーム初期化は完了し、計算デバイス100のオペレーティングシステムがここでブートされ得る。従って、ブロック338において、計算デバイス100はオペレーティングシステムをブートする。もちろん、幾つかの実施形態では、計算デバイス100は二以上のオペレーティングシステムを含んでいてもよい。このように、デフォルトオペレーティングシステムがブートされてもよいし、計算デバイス100のユーザはブートするオペレーティングシステムを選択するオプションを与えられてもよいし、他のブートポリシーを実装してもよい。
計算デバイス100は、ブロック334において、セキュリティ・コ・プロセッサコマンドリストが空であると判断すると、ブロック336において、残りのセキュリティ・コ・プロセッサコマンドを実行する。例えば、セキュリティ・コ・プロセッサドライバモジュール202は、コマンドリストに残っている各セキュリティ・コ・プロセッサコマンドをセキュリティ・コ・プロセッサに実行のため順番に送信して、次を送る前に送信した各コマンドへの応答を待ち、その応答をBIOSモジュール204に転送して、初期化を完了する従来のアプローチを踏襲してもよい。上記の通り、幾つかの実施形態では、一以上の非セキュリティ・コ・プロセッサコマンドは、実行するため、セキュリティ・コ・プロセッサコマンドへの応答に依存し得る。かかる一実施形態では、非セキュリティ・コ・プロセッサコマンドが(例えば、セキュリティ・コ・プロセッサ120からの応答により)BIOSモジュール204により実行可能となれば、方法300はブロック330に戻り、非セキュリティ・コ・プロセッサプラットフォーム初期化が完了したか、計算デバイス100が判断する。計算デバイス100はセキュリティ・コ・プロセッサ割り込みに関連するタイマーを再度イネーブルしてもよい。言い換えると、かかる一実施形態では、計算デバイス100は、セキュリティ・コ・プロセッサ120からのセキュリティ・コ・プロセッサコマンドへの応答を待つ間に、プラットフォームの非セキュリティ・コ・プロセッサ初期化を許す手順を再開できる。ブロック330に戻り、非セキュリティ・コ・プロセッサ初期化が完了していないと計算デバイス100が判断すると、方法300は図3のブロック312に戻り、計算デバイス100は、セキュリティ・コ・プロセッサコマンドがBIOSモジュール204からセキュリティ・コ・プロセッサドライバモジュール202により受け取られたか判断する。
図5と図6をここで参照して、プラットフォーム初期化を改善する方法300を実装する計算デバイス100のブートフロー502を図5に示し、一方、プラットフォーム初期化をする従来の方法を実装した計算デバイス100のブートフローを図6に示した。図5に示すように、ブートフロー502は、ここに説明したように、計算デバイス100のプラットフォーム初期化を実装した時、概して連続的である。上記の通り、プラットフォーム初期化時に、BIOSモジュール204がセキュリティ・コ・プロセッサコマンド504にぶつかる(encounter)と、コマンド504はセキュリティ・コ・プロセッサ120による実行のためにセキュリティ・コ・プロセッサドライバモジュール202に送信される。コマンド504は実行を待つコマンド504のコマンドリストに加えられ、BIOSモジュール204はセキュリティ・コ・プロセッサ120に関係しないプラットフォーム初期化を続ける。(例えば、所与の期間の経過により)確立されたセキュリティ・コ・プロセッサ割り込みがトリガーされると、セキュリティ・コ・プロセッサ割り込みハンドラ210は、セキュリティ・コ・プロセッサ120が前に送ったコマンド504に対する応答を有するか判断し、そうであれば、その応答を受け取り、その応答をBIOSモジュール204に転送し、コマンドリスト中の次のコマンド504をセキュリティ・コ・プロセッサ120に実行のため送る。このように、セキュリティ・コ・プロセッサ120の初期化に関連するレイテンシが最小になり、そうでなくても低減される。しかし、図6に例示したように、セキュリティ・コ・プロセッサ120を初期化する従来の方法は、送信した各コマンド604に対するセキュリティ・コ・プロセッサからの応答を待つことに関連する大きな時間的遅延が生じる。具体的に、BIOSモジュール204がセキュリティ・コ・プロセッサコマンド604にぶつかると(encounter)、コマンド604はセキュリティ・コ・プロセッサ120に送信される。BIOSモジュール204は、送信したコマンド604に対するセキュリティ・コ・プロセッサ120からの応答を待ってから、プラットフォーム初期化を続けなければならない。セキュリティ・コ・プロセッサ120の初期化は、一般的、複数の(例えば、20以上の)セキュリティ・コ・プロセッサコマンド604の実行を含むので、従来のプラットフォーム初期化を実装した時のレイテンシは大きい。例えば、TPMの場合、PEI (Pre Extensible Firmware Interface Initialization) BIOSフェーズ中に「TpmSelfTest」コマンドをTOMに送らないとならない。これは、TOMから応答を受け取るまでに長い時間がかかる。
実施例
ここに開示するデバイス、システム、及び方法の例を以下に提供する。デバイス、システム及び方法の実施形態は、以下に説明する一以上の例及びその任意の組み合わせを含み得る。
例1は、プラットフォーム初期化を改善する計算デバイスであって、送られたセキュリティ・コ・プロセッサコマンドを実行するセキュリティ・コ・プロセッサと、前記計算デバイスのプラットフォームの初期化を開始する基本入出力システムモジュールと、前記基本入出力システムモジュールからのセキュリティ・コ・プロセッサコマンドに応じて、セキュリティ・コ・プロセッサコマンドをコマンドリストに加えるセキュリティ・コ・プロセッサドライバモジュールと、前記プラットフォームの初期化の定期的割り込みを確立するタイマーモジュールとを有し、前記セキュリティ・コ・プロセッサドライバモジュールは、さらに、前記定期的割り込みの発生に応じて、(i)前に送られたセキュリティ・コ・プロセッサコマンドに対するセキュリティ・コ・プロセッサ応答の入手可能性(availability)に関し前記セキュリティ・コ・プロセッサにクエリし、(ii)入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、前記入手可能なセキュリティ・コ・プロセッサ応答を前記基本入出力システムモジュールに転送する。
実施例2は実施例1の主題を含み、前記セキュリティ・コ・プロセッサドライバモジュールは、さらに、前記入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、前記コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送る。
実施例3は実施例1の主題を含み、前記セキュリティ・コ・プロセッサはトラステッドプラットフォームモジュールを有する。
実施例4は実施例1−3のいずれかの主題を含み、前記セキュリティ・コ・プロセッサはマネジアビリティエンジンを有する。
実施例5は実施例1−4のいずれかの主題を含み、前記セキュリティ・コ・プロセッサはコンバージド・セキュリティエンジンを有する。
実施例6は実施例1−5のいずれかの主題を含み、前記セキュリティ・コ・プロセッサは帯域外プロセッサを有する。
実施例7は実施例1−6のいずれかの主題を含み、前記基本入出力システムモジュールは、さらに、前記定期的割り込みからの戻りに応じて、前記プラットフォームの初期化を継続する。
実施例8は実施例1−7のいずれかの主題を含み、前記タイマーモジュールは、さらに、前記セキュリティ・コ・プロセッサコマンドが関与しない初期化プロシージャの完了に応じて、初期化の定期的割り込みを中断する。
実施例9は実施例1−8のいずれかの主題を含み、前記セキュリティ・コ・プロセッサドライバモジュールは、さらに、前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、(i)前記コマンドリスト中に残っている各セキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送り、(ii)残っているセキュリティ・コ・プロセッサコマンドの一つに対する入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、残っているセキュリティ・コ・プロセッサコマンドの各々について、入手可能なセキュリティ・コ・プロセッサ応答を、前記基本入出力システムモジュールに転送する。
実施例10は実施例1−9のいずれかの主題を含み、前記基本入出力システムモジュールは、さらに、初期化プロシージャの完了に応じて、前記計算デバイスのオペレーティングシステムをブートする。
実施例11は実施例1−10のいずれかの主題を含み、前記コマンドリストは先入れ先出しシステムに従う。
実施例12は実施例1−11のいずれかの主題を含み、前記コマンドリストは後入れ先出しシステムに従う。
実施例13は、計算デバイスのプラットフォームの初期化を改善する方法を含み、該方法は、前記計算デバイスの基本入出力システムを用いて前記計算デバイスのプラットフォームの初期化を開始するステップと、前記計算デバイスのセキュリティ・コ・プロセッサドライバで、前記基本入出力システムモジュールから、前記計算デバイスのセキュリティ・コ・プロセッサにより実行されるセキュリティ・コ・プロセッサコマンドを受け取るステップと、セキュリティ・コ・プロセッサコマンドの受け取りに応じて、前記セキュリティ・コ・プロセッサドライバで、前記セキュリティ・コ・プロセッサコマンドをコマンドリストに加えるステップと、前記計算デバイスで、前記プラットフォームの初期化に定期的に割り込み、(i)前記セキュリティ・コ・プロセッサに、前に送られたセキュリティ・コ・プロセッサ応答へのセキュリティ・コ・プロセッサ応答の入手可能性に関しクエリし、(ii)入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、入手可能なセキュリティ・コ・プロセッサ応答を前記基本入出力システムモジュールに転送するステップとを有する。
実施例14は実施例13の主題を含み、前記プラットフォームの初期化に割り込むステップは、入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、前記コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送るステップを有する。
実施例15は実施例13及び14のどちらかの主題を含み、前記セキュリティ・コ・プロセッサコマンドを受け取るステップは、前記計算デバイスのトラステッドプラットフォームモジュールで、前記基本入出力システムから、前記計算デバイスのトラステッドプラットフォームモジュールにより実行されるトラステッドプラットフォームモジュールコマンドを受け取るステップを有し、前記セキュリティ・コ・プロセッサコマンドを前記コマンドリストに加えるステップは、前記トラステッドプラットフォームモジュールコマンドの受け取りに応じて、前記トラステッドプラットフォームモジュールで、前記トラステッドプラットフォームモジュールコマンドをコマンドリストに加えるステップを有し、前記プラットフォームの初期化に割り込むステップは、前記計算デバイスで、前記プラットフォームの初期化に定期的に割り込み、(i)前記トラステッドプラットフォームモジュールに、前に送ったトラステッドプラットフォームモジュールコマンドに対するトラステッドプラットフォームモジュール応答の入手可能性に関しクエリし、(ii)入手可能なトラステッドプラットフォームモジュール応答の受け取りに応じて、入手可能なトラステッドプラットフォームモジュール応答を前記基本入出力システムモジュールに転送するステップを有する。
実施例16は実施例13−15のいずれかの主題を含み、前記プラットフォームの初期化に割り込むステップは、入手可能なトラステッドプラットフォームモジュール応答の受け取りに応じて、前記コマンドリスト中の次のトラステッドプラットフォームモジュールコマンドを前記トラステッドプラットフォームモジュールに送るステップを有する。
実施例17は実施例13−16のいずれかの主題を含み、前記セキュリティ・コ・プロセッサコマンドを受け取るステップは、前記計算デバイスのマネジアビリティエンジンで、前記基本入出力システムから、前記計算デバイスのマネジアビリティエンジンにより実行されるマネジアビリティエンジンコマンドを受け取るステップを有し、前記セキュリティ・コ・プロセッサコマンドを前記コマンドリストに加えるステップは、前記マネジアビリティエンジンコマンドの受け取りに応じて、前記マネジアビリティエンジンで、前記マネジアビリティエンジンコマンドをコマンドリストに加えるステップを有し、前記プラットフォームの初期化に割り込むステップは、前記計算デバイスで、前記プラットフォームの初期化に定期的に割り込み、(i)前記マネジアビリティエンジンに、前に送ったマネジアビリティエンジンコマンドに対するマネジアビリティエンジン応答の入手可能性に関しクエリし、(ii)入手可能なマネジアビリティエンジン応答の受け取りに応じて、入手可能なマネジアビリティエンジン応答を前記基本入出力システムモジュールに転送するステップを有する。
実施例18は実施例13−17のいずれかの主題を含み、前記セキュリティ・コ・プロセッサコマンドを受け取るステップは、前記計算デバイスのコンバージド・セキュリティエンジンで、前記基本入出力システムから、前記計算デバイスのコンバージド・セキュリティエンジンにより実行されるコンバージド・セキュリティエンジンコマンドを受け取るステップを有し、前記セキュリティ・コ・プロセッサコマンドを前記コマンドリストに加えるステップは、前記コンバージド・セキュリティエンジンコマンドの受け取りに応じて、前記コンバージド・セキュリティエンジンで、前記コンバージド・セキュリティエンジンコマンドをコマンドリストに加えるステップを有し、前記プラットフォームの初期化に割り込むステップは、前記計算デバイスで、前記プラットフォームの初期化に定期的に割り込み、(i)前記コンバージド・セキュリティエンジンに、前に送ったコンバージド・セキュリティエンジンコマンドに対するコンバージド・セキュリティエンジン応答の入手可能性に関しクエリし、(ii)入手可能なコンバージド・セキュリティエンジン応答の受け取りに応じて、入手可能なコンバージド・セキュリティエンジン応答を前記基本入出力システムモジュールに転送するステップを有する。
実施例19は実施例13−18のいずれかの主題を含み、前記計算デバイスにおいて、前記定期的割り込みから戻るのに応じて、前記プラットフォームの初期化を継続するステップをさらに有する。
実施例20は実施例13−19のいずれかの主題を含み、前記計算デバイスにおいて、前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、初期化の定期的割り込みを中断するステップをさらに有する。
実施例21は実施例13−20のいずれかの主題を含み、前記計算デバイスで、前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、コマンドリスト中に残っている各セキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送るステップと、前記計算デバイスで、残っているセキュリティ・コ・プロセッサコマンドの一つに対する入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、残っているセキュリティ・コ・プロセッサコマンドの各々について、入手可能なセキュリティ・コ・プロセッサ応答を前記基本入出力システムモジュールに転送するステップとをさらに有する。
実施例22は実施例13−21のいずれかの主題を含み、前記計算デバイスにおいて、前記初期化プロシージャの完了に応じて、前記計算デバイスのオペレーティングシステムをブートするステップをさらに有する。
実施例23は実施例13−22のいずれかの主題を含み、コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドをセキュリティ・コ・プロセッサに送るステップは、前記コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドを、先入れ先出しで、セキュリティ・コ・プロセッサに送るステップを有する。
実施例24は実施例13−23のいずれかの主題を含み、コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドをセキュリティ・コ・プロセッサに送るステップは、前記コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドを、後入れ先出しで、セキュリティ・コ・プロセッサに送るステップを有する。
実施例25は計算デバイスを含み、該計算デバイスは、プロセッサと、前記プロセッサにより実行されたとき、前記プロセッサに、実施例13−24いずれかに記載の方法を実行させる複数の命令を格納したメモリとを有する。
実施例26は、実行されると、計算デバイスに実施例13乃至24いずれかに記載の方法を実行させる複数の命令を格納した一以上の機械読み取り可能記憶媒体を含む。
実施例27はプラットフォーム初期化を改善する計算デバイスを含み、該計算デバイスは、前記計算デバイスの基本入出力システムを用いて前記計算デバイスのプラットフォームの初期化を開始する手段と、前記計算デバイスのセキュリティ・コ・プロセッサドライバで、前記基本入出力システムモジュールから、前記計算デバイスのセキュリティ・コ・プロセッサにより実行されるセキュリティ・コ・プロセッサコマンドを受け取る手段と、セキュリティ・コ・プロセッサコマンドの受け取りに応じて、前記セキュリティ・コ・プロセッサドライバで、前記セキュリティ・コ・プロセッサコマンドをコマンドリストに加える手段と、前記プラットフォームの初期化に定期的に割り込み、(i)前記セキュリティ・コ・プロセッサに、前に送られたセキュリティ・コ・プロセッサ応答へのセキュリティ・コ・プロセッサ応答の入手可能性に関しクエリし、(ii)入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、入手可能なセキュリティ・コ・プロセッサ応答を前記基本入出力システムモジュールに転送する手段とを有する。
実施例28は実施例27の主題を含み、前記プラットフォームの初期化に割り込む手段は、入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、前記コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送る手段を有する。
実施例29は実施例27及び28のどちらかの主題を含み、前記セキュリティ・コ・プロセッサコマンドを受け取る手段は、前記計算デバイスのトラステッドプラットフォームモジュールで、前記基本入出力システムから、前記計算デバイスのトラステッドプラットフォームモジュールにより実行されるトラステッドプラットフォームモジュールコマンドを受け取る手段を有し、前記セキュリティ・コ・プロセッサコマンドを前記コマンドリストに加える手段は、前記トラステッドプラットフォームモジュールコマンドの受け取りに応じて、前記トラステッドプラットフォームモジュールで、前記トラステッドプラットフォームモジュールコマンドをコマンドリストに加える手段を有し、前記プラットフォームの初期化に割り込む手段は、前記プラットフォームの初期化に定期的に割り込み、(i)前記トラステッドプラットフォームモジュールに、前に送ったトラステッドプラットフォームモジュールコマンドに対するトラステッドプラットフォームモジュール応答の入手可能性に関しクエリし、(ii)入手可能なトラステッドプラットフォームモジュール応答の受け取りに応じて、入手可能なトラステッドプラットフォームモジュール応答を前記基本入出力システムモジュールに転送する手段を有する。
実施例30は実施例27−29のいずれかの主題を含み、前記プラットフォームの初期化に割り込む手段は、入手可能なトラステッドプラットフォームモジュール応答の受け取りに応じて、前記コマンドリスト中の次のトラステッドプラットフォームモジュールコマンドを前記トラステッドプラットフォームモジュールに送る手段を有する。
実施例31は実施例27−30のいずれかの主題を含み、前記セキュリティ・コ・プロセッサコマンドを受け取る手段は、前記計算デバイスのマネジアビリティエンジンで、前記基本入出力システムから、前記計算デバイスのマネジアビリティエンジンにより実行されるマネジアビリティエンジンコマンドを受け取る手段を有し、前記セキュリティ・コ・プロセッサコマンドを前記コマンドリストに加える手段は、前記マネジアビリティエンジンコマンドの受け取りに応じて、前記マネジアビリティエンジンで、前記マネジアビリティエンジンコマンドをコマンドリストに加える手段を有し、前記プラットフォームの初期化に割り込む手段は、前記プラットフォームの初期化に定期的に割り込み、(i)前記マネジアビリティエンジンに、前に送ったマネジアビリティエンジンコマンドに対するマネジアビリティエンジン応答の入手可能性に関しクエリし、(ii)入手可能なマネジアビリティエンジン応答の受け取りに応じて、入手可能なマネジアビリティエンジン応答を前記基本入出力システムモジュールに転送する手段を有する。
実施例32は実施例27−31のいずれかの主題を含み、前記セキュリティ・コ・プロセッサコマンドを受け取る手段は、前記計算デバイスのコンバージド・セキュリティエンジンで、前記基本入出力システムから、前記計算デバイスのコンバージド・セキュリティエンジンにより実行されるコンバージド・セキュリティエンジンコマンドを受け取る手段を有し、前記セキュリティ・コ・プロセッサコマンドを前記コマンドリストに加える手段は、前記コンバージド・セキュリティエンジンコマンドの受け取りに応じて、前記コンバージド・セキュリティエンジンで前記コンバージド・セキュリティエンジンコマンドをコマンドリストに加える手段を有し、前記プラットフォームの初期化に割り込む手段は、前記計算デバイスで、前記プラットフォームの初期化に定期的に割り込み、(i)前記コンバージド・セキュリティエンジンに、前に送ったコンバージド・セキュリティエンジンコマンドに対するコンバージド・セキュリティエンジン応答の入手可能性に関しクエリし、(ii)入手可能なコンバージド・セキュリティエンジン応答の受け取りに応じて、入手可能なコンバージド・セキュリティエンジン応答を前記基本入出力システムモジュールに転送する手段を有する。
実施例33は実施例27−32のいずれかの主題を含み、前記定期的割り込みからの戻りに応じて前記プラットフォームの初期化を継続する手段をさらに有する。
実施例34は実施例27−33のいずれかの主題を含み、前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、初期化の定期的割り込みを中断する手段をさらに有する。
実施例35は実施例27−34のいずれかの主題を含み、前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、コマンドリスト中に残っている各セキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送る手段と、残っているセキュリティ・コ・プロセッサコマンドの一つに対する入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、残っているセキュリティ・コ・プロセッサコマンドの各々について、入手可能なセキュリティ・コ・プロセッサ応答を前記基本入出力システムモジュールに転送する手段とをさらに有する。
実施例36は実施例27−35のいずれかの主題を含み、初期化手順の完了に応じて計算デバイスのオペレーティングシステムをブートする手段をさらに有する。
実施例37は実施例27−36のいずれかの主題を含み、コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドをセキュリティ・コ・プロセッサに送る手段は、前記コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドを、先入れ先出しで、セキュリティ・コ・プロセッサに送る手段を有する。
実施例38は実施例27−37のいずれかの主題を含み、コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドをセキュリティ・コ・プロセッサに送る手段は、前記コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドを、後入れ先出しで、セキュリティ・コ・プロセッサに送る手段を有する。

Claims (25)

  1. プラットフォーム初期化を改善する計算デバイスであって、
    送られたセキュリティ・コ・プロセッサコマンドを実行するセキュリティ・コ・プロセッサと、
    前記計算デバイスのプラットフォームの初期化を開始する基本入出力システムモジュールと、
    前記基本入出力システムモジュールからのセキュリティ・コ・プロセッサコマンドの受け取りに応じて、セキュリティ・コ・プロセッサコマンドをコマンドリストに加えるセキュリティ・コ・プロセッサドライバモジュールと、
    前記プラットフォームの初期化の定期的割り込みを確立するタイマーモジュールとを有し、
    前記セキュリティ・コ・プロセッサドライバモジュールは、さらに、前記定期的割り込みの発生に応じて、(i)前に送られたセキュリティ・コ・プロセッサコマンドに対するセキュリティ・コ・プロセッサ応答の入手可能性に関し前記セキュリティ・コ・プロセッサにクエリし、(ii)入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、前記入手可能なセキュリティ・コ・プロセッサ応答を前記基本入出力システムモジュールに転送する、
    計算デバイス。
  2. 前記セキュリティ・コ・プロセッサドライバモジュールは、さらに、前記入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、前記コマンドリストの中の次のセキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送る、請求項1に記載の計算デバイス。
  3. 前記セキュリティ・コ・プロセッサはトラステッドプラットフォームモジュールを含む、請求項1に記載の計算デバイス。
  4. 前記セキュリティ・コ・プロセッサはマネジアビリティエンジンを含む、
    請求項1に記載の計算デバイス。
  5. 前記セキュリティ・コ・プロセッサはコンバージド・セキュリティエンジンを含む、
    請求項1に記載の計算デバイス。
  6. 前記セキュリティ・コ・プロセッサは帯域外プロセッサを含む、
    請求項1に記載の計算デバイス。
  7. 前記基本入出力システムモジュールは、さらに、前記定期的割り込みからの戻りに応じて、前記プラットフォームの初期化を継続する、請求項1に記載の計算デバイス。
  8. 前記タイマーモジュールは、さらに、前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、初期化の定期的割り込みを中断する、
    請求項1に記載の計算デバイス。
  9. 前記セキュリティ・コ・プロセッサドライバモジュールは、さらに、前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、(i)前記コマンドリストの中に残っている各セキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送り、(ii)残っているセキュリティ・コ・プロセッサコマンドの一つに対する入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、残っているセキュリティ・コ・プロセッサコマンドの各々について、入手可能なセキュリティ・コ・プロセッサ応答を、前記基本入出力システムモジュールに転送する、請求項8に記載の計算デバイス。
  10. 前記基本入出力システムモジュールは、さらに、初期化プロシージャの完了に応じて、前記計算デバイスのオペレーティングシステムをブートする、
    請求項9に記載の計算デバイス。
  11. 前記コマンドリストは先入れ先出しシステムに従う、
    請求項1に記載の計算デバイス。
  12. 前記コマンドリストは後入れ先出しシステムに従う、
    請求項1に記載の計算デバイス。
  13. 計算デバイスのプラットフォームの初期化を改善する方法であって、
    前記計算デバイスの基本入出力システムを用いて前記計算デバイスのプラットフォームの初期化を開始するステップと、
    前記計算デバイスのセキュリティ・コ・プロセッサドライバで、前記基本入出力システムから、前記計算デバイスのセキュリティ・コ・プロセッサにより実行されるセキュリティ・コ・プロセッサコマンドを受け取るステップと、
    セキュリティ・コ・プロセッサコマンドの受け取りに応じて、前記セキュリティ・コ・プロセッサドライバで、前記セキュリティ・コ・プロセッサコマンドをコマンドリストに加えるステップと、
    前記計算デバイスで、前記プラットフォームの初期化に定期的に割り込み、(i)前記セキュリティ・コ・プロセッサに、前に送られたセキュリティ・コ・プロセッサ応答へのセキュリティ・コ・プロセッサ応答の入手可能性に関しクエリし、(ii)入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、入手可能なセキュリティ・コ・プロセッサ応答を前記基本入出力システムモジュールに転送するステップとを有する、方法。
  14. 前記プラットフォームの初期化に割り込むステップは、入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、前記コマンドリストの中の次のセキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送るステップを有する、請求項13に記載の方法。
  15. 前記セキュリティ・コ・プロセッサコマンドを受け取るステップは、前記計算デバイスのトラステッドプラットフォームモジュールで、前記基本入出力システムから、前記計算デバイスのトラステッドプラットフォームモジュールにより実行されるトラステッドプラットフォームモジュールコマンドを受け取るステップを有し、
    前記セキュリティ・コ・プロセッサコマンドを前記コマンドリストに加えるステップは、前記トラステッドプラットフォームモジュールコマンドの受け取りに応じて、前記トラステッドプラットフォームモジュールで、前記トラステッドプラットフォームモジュールコマンドをコマンドリストに加えるステップを有し、
    前記プラットフォームの初期化に割り込むステップは、前記計算デバイスで、前記プラットフォームの初期化に定期的に割り込み、(i)前記トラステッドプラットフォームモジュールに、前に送ったトラステッドプラットフォームモジュールコマンドに対するトラステッドプラットフォームモジュール応答の入手可能性に関しクエリし、(ii)入手可能なトラステッドプラットフォームモジュール応答の受け取りに応じて、入手可能なトラステッドプラットフォームモジュール応答を前記基本入出力システムモジュールに転送するステップを有する、
    請求項13に記載の方法。
  16. 前記プラットフォームの初期化に割り込むステップは、入手可能なトラステッドプラットフォームモジュール応答の受け取りに応じて、前記コマンドリストの中の次のトラステッドプラットフォームモジュールコマンドを前記トラステッドプラットフォームモジュールに送るステップを有する、
    請求項15に記載の方法。
  17. 前記計算デバイスにおいて、定期的割り込みから戻るのに応じて、前記プラットフォームの初期化を継続するステップをさらに有する、
    請求項13に記載の方法。
  18. 前記計算デバイスにおいて、前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、初期化の定期的割り込みを中断するステップをさらに有する、請求項13に記載の方法。
  19. 前記計算デバイスで、前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、コマンドリスト中に残っている各セキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送るステップと、
    前記計算デバイスで、残っているセキュリティ・コ・プロセッサコマンドの一つに対する入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、残っているセキュリティ・コ・プロセッサコマンドの各々について、入手可能なセキュリティ・コ・プロセッサ応答を前記基本入出力システムモジュールに転送するステップとを有する、
    請求項18に記載の方法。
  20. 前記計算デバイスにおいて、前記初期化プロシージャの完了に応じて、前記計算デバイスのオペレーティングシステムをブートするステップをさらに有する、
    請求項19に記載の方法。
  21. コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドをセキュリティ・コ・プロセッサに送るステップは、前記コマンドリスト中の次のセキュリティ・コ・プロセッサコマンドを、先入れ先出し、及び後入れ先出しのうち一方で、セキュリティ・コ・プロセッサに送るステップを有する、請求項13に記載の方法。
  22. 実行されると、計算デバイスに請求項13乃至21いずれか一項に記載の方法を実行させる複数の命令を格納した一以上の機械読み取り可能記憶媒体。
  23. プラットフォーム初期化を改善する計算デバイスであって、
    前記計算デバイスの基本入出力システムを用いて前記計算デバイスのプラットフォームの初期化を開始する手段と、
    前記計算デバイスのセキュリティ・コ・プロセッサドライバで、前記基本入出力システムから、前記計算デバイスのセキュリティ・コ・プロセッサにより実行されるセキュリティ・コ・プロセッサコマンドを受け取る手段と、
    セキュリティ・コ・プロセッサコマンドの受け取りに応じて、前記セキュリティ・コ・プロセッサドライバで、前記セキュリティ・コ・プロセッサコマンドをコマンドリストに加える手段と、
    前記プラットフォームの初期化に定期的に割り込み、(i)前記セキュリティ・コ・プロセッサに、前に送られたセキュリティ・コ・プロセッサ応答へのセキュリティ・コ・プロセッサ応答の入手可能性に関しクエリし、(ii)入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、入手可能なセキュリティ・コ・プロセッサ応答を前記基本入出力システムに転送する手段とを有する、
    計算デバイス。
  24. 前記プラットフォームの初期化に割り込む手段は、入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、前記コマンドリストの中の次のセキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送る手段を有する、
    請求項23に記載の計算デバイス。
  25. 定期的割り込みからの戻りに応じて前記プラットフォームの初期化を継続する手段と、
    前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、初期化の定期的割り込みを中断する手段と、
    前記セキュリティ・コ・プロセッサコマンドを含まない初期化プロシージャの完了に応じて、コマンドリスト中に残っている各セキュリティ・コ・プロセッサコマンドを前記セキュリティ・コ・プロセッサに送る手段と、
    残っているセキュリティ・コ・プロセッサコマンドの一つに対する入手可能なセキュリティ・コ・プロセッサ応答の受け取りに応じて、残っているセキュリティ・コ・プロセッサコマンドの各々について、入手可能なセキュリティ・コ・プロセッサ応答を前記基本入出力システムモジュールに転送する手段とをさらに有する、
    請求項23に記載の計算デバイス。
JP2015561893A 2013-03-15 2013-03-15 セキュリティ・コプロセッサ・ブート性能 Expired - Fee Related JP6050528B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/072732 WO2014139162A1 (en) 2013-03-15 2013-03-15 Security co-processor boot performance

Publications (2)

Publication Number Publication Date
JP2016513838A true JP2016513838A (ja) 2016-05-16
JP6050528B2 JP6050528B2 (ja) 2016-12-21

Family

ID=51535841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015561893A Expired - Fee Related JP6050528B2 (ja) 2013-03-15 2013-03-15 セキュリティ・コプロセッサ・ブート性能

Country Status (7)

Country Link
US (2) US9223983B2 (ja)
EP (1) EP2973139B1 (ja)
JP (1) JP6050528B2 (ja)
KR (1) KR101759411B1 (ja)
CN (1) CN104981814B (ja)
BR (1) BR112015018946A2 (ja)
WO (1) WO2014139162A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150193620A1 (en) * 2014-01-07 2015-07-09 Dell Products, Lp System and Method for Managing UEFI Secure Boot Certificates
US10303880B2 (en) * 2014-07-24 2019-05-28 Nuvoton Technology Corporation Security device having indirect access to external non-volatile memory
EP3413531A1 (en) 2017-06-07 2018-12-12 Hewlett-Packard Development Company, L.P. Intrusion detection systems
EP3413532A1 (en) 2017-06-07 2018-12-12 Hewlett-Packard Development Company, L.P. Monitoring control-flow integrity

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0222725A (ja) * 1988-07-11 1990-01-25 Hokkaido Nippon Denki Software Kk ハードディスクの状態遷移チェック方式
US20050289332A1 (en) * 2004-06-23 2005-12-29 Rothman Michael A Platform boot speed
JP2006501581A (ja) * 2002-10-09 2006-01-12 インテル コーポレイション サーバ管理コプロセッササブシステム内部のtcpaによる信頼性の高いプラットフォームモジュール機能のカプセル化
EP1953666A2 (en) * 2007-02-02 2008-08-06 Samsung Electronics Co., Ltd. Method of booting electronic device and method of authenticating boot of electronic device
WO2013006698A1 (en) * 2011-07-07 2013-01-10 Intel Corporation Bios flash attack protection and notification

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301277A (en) * 1991-04-10 1994-04-05 Seiko Epson Corporation Method and apparatus for communicating peripheral data to/from minor operating systems running as subprocesses on a main operating system
US5270627A (en) * 1991-06-24 1993-12-14 Unilens Corp., U.S.A. Machine tool control system
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US6321323B1 (en) * 1997-06-27 2001-11-20 Sun Microsystems, Inc. System and method for executing platform-independent code on a co-processor
US6336185B1 (en) * 1998-09-24 2002-01-01 Phoenix Technologies Ltd. Use of other processors during BIOS boot sequence to minimize boot time
US6401202B1 (en) * 1999-06-18 2002-06-04 Phoenix Technologies Ltd. Multitasking during BIOS boot-up
US6968061B2 (en) * 2000-02-17 2005-11-22 The United States Of America As Represented By The Secretary Of The Navy Method which uses a non-volatile memory to store a crypto key and a check word for an encryption device
US6792031B1 (en) * 2000-10-18 2004-09-14 Texas Instruments Incorporated Method for maintaining timing in a CDMA rake receiver
US6789147B1 (en) * 2001-07-24 2004-09-07 Cavium Networks Interface for a security coprocessor
US6944746B2 (en) * 2002-04-01 2005-09-13 Broadcom Corporation RISC processor supporting one or more uninterruptible co-processors
US7454610B2 (en) * 2002-12-31 2008-11-18 Broadcom Corporation Security association updates in a packet load-balanced system
US7765388B2 (en) * 2003-09-17 2010-07-27 Broadcom Corporation Interrupt verification support mechanism
US9032404B2 (en) * 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor
US20060095598A1 (en) * 2004-10-30 2006-05-04 Axalto Inc. Method and apparatus of extending answer to reset and subsequent communications between a smart card and a chip card interface device
US7793347B2 (en) * 2005-02-07 2010-09-07 Rozas Guillermo J Method and system for validating a computer system
FR2883998A1 (fr) * 2005-04-05 2006-10-06 St Microelectronics Sa Coprocesseur securise comprenant un circuit de detection d'un evenement
JP2006338605A (ja) * 2005-06-06 2006-12-14 Denso Corp プログラム異常監視方法及びプログラム異常監視装置
US7822978B2 (en) * 2005-07-22 2010-10-26 Intel Corporation Quiescing a manageability engine
CN100375027C (zh) * 2005-09-30 2008-03-12 联想(北京)有限公司 一种快速启动tcpa/tcg安全计算机的系统和方法
JP2007172145A (ja) 2005-12-20 2007-07-05 Seiko Epson Corp プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム
US20080010516A1 (en) * 2006-06-14 2008-01-10 Inventec Corporation Method and apparatus for indicating the actual progress of a booting procedure
US20080127229A1 (en) * 2006-09-08 2008-05-29 International Business Machines Cropration Multiple interface standard support for redundant array of independent disks
US8209542B2 (en) * 2006-12-29 2012-06-26 Intel Corporation Methods and apparatus for authenticating components of processing systems
US20090183245A1 (en) * 2008-01-10 2009-07-16 Simpson Gary H Limited Functionality Mode for Secure, Remote, Decoupled Computer Ownership
US8739177B2 (en) * 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
WO2012120573A1 (ja) * 2011-03-04 2012-09-13 日本電気株式会社 デッドロック回避方法、デッドロック回避機構
US8560453B2 (en) * 2011-06-30 2013-10-15 Intel Corporation Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust
US8763112B2 (en) * 2011-07-02 2014-06-24 Intel Corporation Systems and methods for power-on user authentication
US8375221B1 (en) * 2011-07-29 2013-02-12 Microsoft Corporation Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
US9354683B2 (en) * 2012-08-08 2016-05-31 Amazon Technologies, Inc. Data storage power management
US9292569B2 (en) * 2012-10-02 2016-03-22 Oracle International Corporation Semi-join acceleration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0222725A (ja) * 1988-07-11 1990-01-25 Hokkaido Nippon Denki Software Kk ハードディスクの状態遷移チェック方式
JP2006501581A (ja) * 2002-10-09 2006-01-12 インテル コーポレイション サーバ管理コプロセッササブシステム内部のtcpaによる信頼性の高いプラットフォームモジュール機能のカプセル化
US20050289332A1 (en) * 2004-06-23 2005-12-29 Rothman Michael A Platform boot speed
EP1953666A2 (en) * 2007-02-02 2008-08-06 Samsung Electronics Co., Ltd. Method of booting electronic device and method of authenticating boot of electronic device
WO2013006698A1 (en) * 2011-07-07 2013-01-10 Intel Corporation Bios flash attack protection and notification

Also Published As

Publication number Publication date
US9563775B2 (en) 2017-02-07
US20160188881A1 (en) 2016-06-30
BR112015018946A2 (pt) 2017-07-18
KR20150106922A (ko) 2015-09-22
CN104981814A (zh) 2015-10-14
EP2973139B1 (en) 2020-04-22
CN104981814B (zh) 2018-08-14
WO2014139162A1 (en) 2014-09-18
US9223983B2 (en) 2015-12-29
EP2973139A1 (en) 2016-01-20
EP2973139A4 (en) 2016-10-26
KR101759411B1 (ko) 2017-07-18
JP6050528B2 (ja) 2016-12-21
US20150220738A1 (en) 2015-08-06

Similar Documents

Publication Publication Date Title
US8327174B2 (en) Loading operating systems using memory segmentation and ACPI based context switch
TWI610167B (zh) 改善平台管理的計算裝置建置方法、保持電腦可執行指令之非暫存媒體及配置為提供強化管理資訊之計算裝置
US10146718B2 (en) Mechanism to boot multiple hosts from a shared PCIe device
US10572434B2 (en) Intelligent certificate discovery in physical and virtualized networks
US10394571B2 (en) Passing data from a host-based utility to a service processor
JP2009043256A (ja) 記憶装置のアクセス方法及び装置
JP6050528B2 (ja) セキュリティ・コプロセッサ・ブート性能
US20170024223A1 (en) Installation of Device Drivers from Virtual Media
US8291436B2 (en) Synchronization of event handlers
EP3633507B1 (en) Technologies for secure and efficient native code invocation for firmware services
US20100169069A1 (en) Composite device emulation
US9047264B2 (en) Low pin count controller
CN105677606B (zh) 总线设备的热插拔方法及总线装置
US11853798B2 (en) Disaggregated memory pool assignment
WO2020221161A1 (zh) 计算作业处理方法、系统、移动设备及加速设备
US7797473B2 (en) System for executing system management interrupts and methods thereof
US11281482B2 (en) I/O emulation with abortion in virtualized environments including transfer of portions of non-real time I/O emulation to work threads prior to switching contexts
US11593121B1 (en) Remotely disabling execution of firmware components
US10430291B1 (en) Effective method to backup VMs in larger VM infrastructure
US11675680B2 (en) Computing system initialization system
US20230305927A1 (en) Register replay state machine
EP4310679A1 (en) Accelerator control system, accelerator control method, and accelerator control program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160930

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161124

R150 Certificate of patent or registration of utility model

Ref document number: 6050528

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees