JP6055561B2 - 仮想マシンの測定のための信頼の起点 - Google Patents

仮想マシンの測定のための信頼の起点 Download PDF

Info

Publication number
JP6055561B2
JP6055561B2 JP2015561311A JP2015561311A JP6055561B2 JP 6055561 B2 JP6055561 B2 JP 6055561B2 JP 2015561311 A JP2015561311 A JP 2015561311A JP 2015561311 A JP2015561311 A JP 2015561311A JP 6055561 B2 JP6055561 B2 JP 6055561B2
Authority
JP
Japan
Prior art keywords
computing platform
guest
secure enclave
vtpm
vrtm
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
JP2015561311A
Other languages
English (en)
Other versions
JP2016509321A (ja
Inventor
イー. スコット−ナッシュ、マーク
イー. スコット−ナッシュ、マーク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2016509321A publication Critical patent/JP2016509321A/ja
Application granted granted Critical
Publication of JP6055561B2 publication Critical patent/JP6055561B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Measuring Volume Flow (AREA)
  • Testing Of Engines (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)

Description

本開示は、概して、コンピューティングシステムの分野に関し、より詳細には、セキュアなコンピューティングプラットフォームに関する。
いくつかのセキュリティモデルにおいて、1つまたは複数の信頼の起点は、信頼されたコンピューティングプラットフォームをサポートするために用いられる。例えば、トラステッドコンピューティンググループによって提供される複数のセキュリティモデルのいくつかにおいては、3つの信頼の起点、すなわち、ストレージの信頼の起点(RTS)、レポートの信頼の起点(RTR)及び測定の信頼の起点(RTM)が用いられる。コンピューティングプラットフォーム内におけるこれらの信頼の起点の位置は、異なることがある。いくつかのコンピューティングプラットフォームは、例えば、トラステッドプラットフォームモジュール(TPM)においてRTR及びRTSを含み、これらは、ハードウェア及びソフトウェア構成の改ざんを検出するように機能する物理的コンポーネント(典型的にはチップ)である。このようなプラットフォームのRTMは、しかしながら、プラットフォームファームウェアによって提供されることがある。特に、このようなコンピューティングプラットフォームがブートを開始した場合、デバイスのプレBIOSにおけるROMのような不変の形で実装されるコアRTM(cRTM)は、実行されるべき次のコードのセットを測定し、この測定値の暗号化ハッシュを計算し、ハッシュダイジェスト値をTPMに格納する。制御は、次のコードのセットに移され、次に、後続のコードのセットを測定し、測定値のハッシュダイジェスト値をTPMに格納する。この測定のチェーンは、ブートが完了し、OSがロードされるまで続く。複数のブートステージの構成における複数の変更(例えば、マルウェアまたは改ざんによる)は、TPMに格納された複数のハッシュ値をこれらの複数の前の値と比較することによって検出可能である。cRTMは、初期測定コンポーネントとして、実行前に測定されず、設計として正確であると仮定される。
仮想化環境において、ゲスト仮想マシン(ゲストVM)は、ハイパーバイザとも称される仮想マシンマネージャ(VMM)によって提供されるソフトウェアベースの環境で動作する。環境は、これらは、ハードウェア用の複数のドライバのような、従来のコンピューティングプラットフォームの多数の物理的コンポーネントが仮想化されたバージョンを提供する複数のVMと、ゲストVMのメモリを操作可能なVMのような、VMのメンテナンスのための複数のサポート機能を提供する複数のVMとを含んでもよい。いくつかの以前の研究は、TPMのコンセプトを仮想化された複数のシステムに適用し、仮想マシンTPM(vTPM)を開発した。いくつかのこのようなシステムにおいて、各ゲストVMは、自己のvTPMに関連付けられてもよく、これは、関連付けられたゲストVMの複数の測定のチェーンに対して、RTS及びRTRとして機能する。RTMは、複数のVM及びvTPMをサポートする他の複数のソフトウェアコンポーネントを測定してもよく、同じハイパーバイザにおけるVMとして実装されてもよい。しかしながら、RTMは、まさにvTPMのように改ざんされやすく、ハイパーバイザの信頼性に完全に依存している。この結果、トラステッドコンピューティングベースが過剰に大規模化し、結果として、ハイパーバイザまたは複数の他のコンポーネントにおけるセキュリティ違反への脆弱性をもたらす。
複数の実施形態は、以下の詳細な説明を複数の添付図面と併せて参照することによって、容易に理解される。この説明を容易にするために、同様の参照番号は、同様の構造要素を指定する。複数の実施形態は、添付図面の複数の図において、限定としてではなく、例として示されるものである。
様々な実施形態に係るセキュアエンクレーブ(SE)における測定の仮想マシンの信頼の起点(vRTM)を含むコンピューティングプラットフォームのブロック図である。 様々な実施形態に係るSEにおけるvRTMとゲストVMのリソースとの間の複数の整合性測定のチェーンを開始する例示的な処理のフロー図である。 様々な実施形態に係るvRTMの整合性測定を格納する例示的な処理のフロー図である。 様々な実施形態に係るSEにおけるvRTMを有するコンピューティングプラットフォームと通信を行う例示的な処理のフロー図である。 様々な実施形態に係るプラットフォーム構成レジスタに格納された複数の値を修正する例示的な処理のフロー図である。 様々な実施形態に係る複数の開示された実施形態を実施するために適切な例示的コンピューティングプラットフォームのブロック図である。
複数の仮想マシン(VM)の測定のための信頼の起点(RTM)に関連付けられた複数の技術及びシステムの複数の実施形態が開示される。いくつかの実施形態において、コンピューティングプラットフォームは、コンピューティングプラットフォームの第1のセキュアエンクレーブ(SE)において、仮想マシンのRTM(vRTM)を提供してもよい。コンピューティングプラットフォームは、第1のSEの整合性測定を実行するように構成されてもよい。コンピューティングプラットフォームは、仮想マシントラステッドプラットフォームモジュール(vTPM)を、コンピューティングプラットフォームの第1のSEの外部にあるゲストVMに提供してもよい。コンピューティングプラットフォームは、vRTMとゲストVMのリソースとの間における複数の整合性測定のチェーンを開始してもよい。
以下の詳細な説明において、本明細書の一部を構成する添付図面を参照し、ここで、同様の番号は全体を通して同様の部分を指定し、実施可能な実施形態が例として示される。複数の他の実施形態が利用可能であり、本開示の範囲を逸脱することなく、構造的または論理的な複数の変更を加えることが可能であることを理解すべきである。従って、以下の詳細な説明は限定的意味に解釈されるべきではなく、複数の実施形態の範囲は、添付の特許請求の範囲及びこれらの均等物によって定義される。
様々な動作は、複数の別個のアクションまたは動作として、その結果として、特許請求の範囲に記載された主題の理解に最も有用な態様で、説明されてもよい。
しかしながら、説明の順序は、これらの動作が必ず順序に依存することを示唆するものとして解釈されてはならない。特に、これらの動作は、記載の順序で実行されなくてもよい。説明される複数の動作は、説明された実施形態と異なる順序で実行されてもよい。様々な追加の動作が、実行されてもよく、及び/または、説明される複数の動作は、追加の複数の実施形態において省略されてもよい。
本開示の目的のために、「A及び/またはB」という表現は、(A)、(B)または(A及びB)を意味する。本開示の目的のために、「A、B及び/またはC」という表現は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)または(A、B及びC)を意味する。
説明は、「実施形態において」または「複数の実施形態において」という表現を用いるが、これらは各々、同じまたは異なる複数の実施形態のうち1つまたは複数を指す。さらに、「備える」、「含む」、「有する」等の用語は、本開示の複数の実施形態に関して用いられるように、類義語である。本明細書で用いられるように、「モジュール」または「ロジック」という用語は、1つまたは複数のソフトウェアまたはファームウェアプログラムを実行する特定用途集積回路(ASIC)、電子回路、プロセッサ(共有、専用またはグループ)及び/またはメモリ(共有、専用またはグループ)、組み合わせロジック回路、及び/または、説明される機能を提供する他の適切な複数のコンポーネントの一部であるか、または、これらを含むことを指す。
ここで図1を参照すると、様々な実施形態に係るSEにおけるvRTMを含むコンピューティングプラットフォームが示される。
コンピューティングプラットフォーム100は、ハードウェア102を含んでもよい。ハードウェア102は、例えば、1つまたは複数の処理デバイス及びメモリデバイス(例えば、システムメモリ、キャッシュメモリ、マイクロプロセッサベースのメモリ、プロセッサ内部メモリ、プロセッサ外部メモリ)を含んでもよい。いくつかの実施形態において、コンピューティングプラットフォーム100は、通信インタフェースを含んでもよく、これを介して、コンピューティングプラットフォーム100は、複数の他のコンピューティングプラットフォームまたはデバイスと通信を行ってもよい。コンピューティングプラットフォーム100のハードウェア102に含まれ得るハードウェアのさらなる複数の例が、図6を参照して後述される。ハードウェア102は、コンピューティングプラットフォーム100のファームウェア及びマイクロコードをさらに含んでもよい。例えば、マイクロコードは、複数のアセンブリ言語命令の動作を定義してもよく、これにより、コンピューティングプラットフォーム100のエンドユーザによって修正不可能な態様で、複数のハードウェアコンポーネントの動作に影響することがある。
コンピューティングプラットフォーム100は、仮想マシン(VMM)104を含んでもよい。
VMM104は、複数の仮想動作プラットフォームを提供するようにコンピューティングプラットフォーム100のハードウェア102を仮想化することにより、複数のVM(vRTM120、vTPM106、ゲストVM110等のような)がコンピューティングプラットフォーム100上で同時に実行、すなわち動作することを可能にしてもよい。VMM104上で実行する各VMは、その仮想動作プラットフォームを、物理プラットフォームとして認識してもよい。コンピューティングプラットフォーム100の特定の複数のコンポーネントは、「ゲストVM」として説明されることがあるが、「ゲストVM」という用語は、VMM104上で実行し、vRTM120(例えば、複数のサポートVM122を含む)によって測定可能な任意のVMを含んでもよい。
コンピューティングプラットフォーム100は、vTPM106を含んでもよい。いくつかの実施形態において、コンピューティングプラットフォーム100は、vTPM106同様の複数のvTPMを含んでもよく、その各々は、ゲストVM110(後述)同様の1つまたは複数のゲストVMに関連付けられてもよい。説明の簡略化のために、本開示の多くは、単一のvTPMを説明するが、本明細書で開示された複数のシステム及び複数の技術の全ては、複数のvTPMと共に用いるのに適している。vTPM106は、ゲストインタフェースモジュール108を含んでもよく、これは、vTPM106とゲストVM110との間の通信を容易にするように構成されてもよい。vTPM106は、管理インタフェースモジュール116を含んでもよく、これは、vTPM106と管理VM(MVM)118(後述)との間の通信を容易にするように構成されてもよい。vPM106は、SE134に配置される。本明細書で用いられるように、SE(SE134のような)は、複数のメモリ位置のセットを含んでもよく、これらは、モジュール(VMのような)が機械可読コードの複数の命令を実行し、データを格納することができる安全な場所を提供する。SEは、そこで、コンピューティングプラットフォーム100のハードウェア102が特定の複数のメモリ位置(SE134のvTPM106のような)を保護するためのメカニズムを提供してもよい。特に、SE134は、vTPM106の複数の秘密を、コンピューティングプラットフォーム100のあらゆるファームウェア、VMM104及び/またはコンピューティングプラットフォーム100上で実行する他の複数の処理から保護してもよい。複数のSEの内容は、当該内容への複数の変更が容易に検出され得るように、さらに測定及び格納されてもよい。複数のSEの多数の例示的な実施形態が、ここで説明される。いくつかの実施形態において、SEにおける複数のVMは、エンクレーブページキャッシュから動作されてもよく、複数のエンクレーブページは、コンピューティングプラットフォーム100のオペレーティングシステム(OS)によって、エンクレーブページキャッシュにロードされてもよい。いくつかの実施形態において、SEはVMMまたはVMM上で実行するVM(例えば、Xenハイパーバイザのドメイン0)によって初期化されてもよい。SEにおけるVMのページがエンクレーブページキャッシュから除去された場合は常に、暗号による複数の保護が用いられることにより、ページの機密性を保護し、ページがエンクレーブページキャッシュに再びロードされた場合に、改ざんを検出してもよい。エンクレーブページキャッシュ内部において、エンクレーブデータは、ハードウェア102の複数の処理デバイスによって提供される複数のアクセス制御メカニズムを用いて保護されてもよく、ページキャッシュの複数のページは、さらに暗号化されてもよい。
いくつかの実施形態において、SEにおけるVMコードは、暗号化された状態で、一時的にエンクレーブページキャッシュに格納されてもよい。VMコードは、エンクレーブページキャッシュからフェッチされ、復号化されて、処理デバイスキャッシュに配置されてもよく、ここから、コードは取得及び実行されてもよく、ここで、エンクレーブデータは、コンピューティングプラットフォーム100の処理デバイスによってアクセスされる。いくつかの実施形態において、エンクレーブページキャッシュは、コンピューティングプラットフォーム100の物理アドレス空間内に配置されてもよく、エンクレーブページキャッシュは、ハードウェア102の処理デバイスによって実行される複数の命令のサブセットである複数のSE命令を用いることのみによって、アクセスされてもよい。エンクレーブページキャッシュは、多数の異なるSEからの複数のページを含んでもよく、複数のアクセス制御メカニズムを提供することにより、複数のページの整合性及び機密性を保護してもよい。エンクレーブページキャッシュは、コヒーレンシプロトコルを維持してもよく、これは、コンピューティングプラットフォームにおけるコヒーレントな複数の物理メモリアクセスを保持するために使用可能なものと同様のものである。
いくつかの実施形態において、エンクレーブページキャッシュは、エンクレーブページマップを用いてもよく、これは、エンクレーブページキャッシュにおける各ページに関連付けられた状態情報を含んでもよい。状態情報は、所与のページが属する特定のエンクレーブ、ロードされたページの状態などのような情報を示してもよい。ページがエンクレーブページキャッシュから除去された場合、整合性測定は、エンクレーブページマップから(複数の暗号化技術を用いて)状態情報をエクスポート及び保護することによって、SE上で実行されてもよい。同様に、所与のエンクレーブページがエンクレーブページキャッシュにリロードされた場合、状態情報は、検証されてもよい。様々な実施形態において、エンクレーブページキャッシュは、複数の異なるタイプのメモリに、(例えば、特定の処理デバイスの静的ランダムアクセスメモリ(SRAM)に搭載され、及び/または、処理デバイス上に配置されるもしくはこれとは別個の動的ランダムアクセスメモリ(DRAM)の一部として)格納されてもよい。様々な実施形態において、エンクレーブページキャッシュは、コンピューティングプラットフォーム100の複数の他のコンポーネントがエンクレーブページキャッシュにコヒーレントかつセキュアにアクセスすることを可能としつつ、コンピューティングプラットフォーム100外部からの承認されていない複数のアクセスから保護されてもよい。
いくつかの実施形態において、エンクレーブページキャッシュは、暗号メモリアパーチャであってもよく、これは、暗号で保護されるDRAMを用いた揮発性ストレージを形成する相対的にコスト効率の良いメカニズムを提供し得る。暗号メモリアパーチャは、ハードウェア102の中央処理装置(CPU)の処理コアの外部領域に戦略的に配置された1つまたは複数の暗号ユニットを用いることにより、複数の異なるレベルの保護を提供してもよい。処理コア外部の様々なエージェントは、暗号メモリアパーチャへの複数のメモリアクセスを認識し、これらのアクセスを処理コアに配置された暗号コントローラにルーティングするように修正されてもよい。暗号コントローラは、所望の保護レベルに応じて、プラットフォームDRAMへの1つまたは複数のメモリアクセスを生成することにより、暗号テキストをフェッチしてもよい。フェッチテキストは、次に、暗号コントローラによって処理されることにより、元の暗号メモリアパーチャ要求を満たすように、プレーンテキストを生成してもよい。
いくつかの実施形態において、エンクレーブページキャッシュは、別個のコンテナとして保持されてもよく、これは、ハードウェア102に含まれるマイクロコードによって管理されてもよい。このように、コンテナは、SE外部で実行される場合には、アクセス可能でなくてもよい。SE(SE134のような)が入った場合、別個のコンテナに含まれ得るエンクレーブページキャッシュ内部のエンクレーブコードに制御が移されてもよい。SE内部での実行中に生じたあらゆるページフォルトまたは例外は、マイクロコードによって、コンピューティングプラットフォーム100のOS及び/またはVMM104に反映されてもよい。コンピューティングプラットフォーム100があらゆるSEの外部で実行している場合、エンクレーブページキャッシュへのアクセス制御は、ハードウェア102のSEレンジレジスタによって提供されてもよい。コンピューティングプラットフォーム100は、そこで、マイクロコード内部で実行する場合に、実行中のSEに属さない複数の他のSEページキャッシュエントリへのアクセスを防止するページテーブルレベルの複数の保護を提供してもよい。いくつかの実施形態において、SEの実装は、複数の命令と、ハードウェア102の処理デバイスのマイクロコード能力を用いた複数の保護とを実装することを含んでもよい。
複数のSEの様々な実施形態の上述された複数の利点及び複数の特徴に加え、多数の設計における考慮により、コンピューティングプラットフォームにおける複数のSEの使用可能な態様を、さらに知ることができる。例えば、第三者のハードウェア及び複数のデバイス(例えば、ネットワークインタフェースカード)は、複数のVMまたは複数のSE内部で実行する他の複数のアプリケーションと通信を行うように構成されていないことがあり、そこで、このようなデバイスが、複数のVM及びSE外部で実行する複数のアプリケーションと正確にインタフェースを取る場合であっても、このようなデバイスは、複数のVMまたは複数のSE内部で実行する他の複数のアプリケーションと正確にインタフェースを取らないことがある。さらに、複数のSEの様々な実施形態における複数のセキュリティ機能は、大きなオーバヘッド(例えば、鍵管理のためのメモリ及びプロセッササイクルに関して)と、そのために、場合によってはこれらの選択とを必要とすることがあり、SEに適切に含まれ得る複数のVMまたは他の複数のアプリケーションは、スピード、メモリアクセス及び他の複数の問題を考慮する必要に迫られることがある。
図1をさらに参照すると、いくつかの実施形態において、コンピューティングプラットフォーム100は、vTPM106同様の複数のvTPMを含んでもよく、これらの各々は、異なるSEに配置されてもよい。いくつかの実施形態において、vTPMは、SEに配置されなくてもよい。vTPM106は、暗号情報を格納するように構成されてもよい。いくつかの実施形態において、vTPM106は、秘密及び公開鍵のペア(Rivest−Shamir−Adelman(RSA)鍵のペア、すなわち秘密及び公開認証鍵のペア)のうち秘密鍵を格納してもよく、これらは、vTPM106及び/またはこのような複数の鍵による署名付き証明書を一意に特定し得る。vTPM106の複数の鍵は、SE134の複数の境界を残さなくてもよい。vTPM106に関連付けられたゲストVM(例えば、ゲストVM110)が移行された場合、vTPM106は、複数のプラットフォーム間で暗号情報を伝えてもよい。vTPM106は、複数のプラットフォーム構成レジスタ(PCR)136を含んでもよい。いくつかの実施形態において、複数のPCR136は、vRTM120(後述)とvTPM106によってサポートされる複数のゲストVM(例えば、後述のゲストVM110)の1つまたは複数のリソースとの間における、複数の整合性測定のチェーンの1つまたは複数の整合性測定の値を格納するように構成されてもよい。特定のゲストVMリソースの整合性測定が実行された場合、整合性測定の値は、当該ゲストVMリソースに関連付けられた特定のPCRに格納されてもよい。複数の整合性測定のチェーンが再び開始された場合、vTPM106は、(例えば、vRTM120から)コマンドを受信することにより、特定のPCRに格納された値を変更してもよい。いくつかの実施形態において、このようなコマンドは、特定のPCRに格納された値を、新たな整合性測定の値の暗号ハッシュで拡張するコマンドを含んでもよい。本明細書で用いられるように、既存の値を新たな値で「拡張」することは、既存の値を新たな値と結合し、(例えば、SHA−1ハッシュを用いて)その結果のハッシュを求めることを含んでもよい。このように、複数のゲストVMリソースに対する整合性測定の値の履歴は、複数のPCR136に維持されてもよい。いくつかの実施形態において、複数のPCR136のうち1つまたは複数に格納された値は、後述されるように、MVM118によって許可された場合にのみ変更されてもよい。
コンピューティングプラットフォーム100は、ゲストVM110を含んでもよい。いくつかの実施形態において、コンピューティングプラットフォーム100は、ゲストVM110同様の複数のゲストVMを含んでもよい。本開示の多くは、説明の簡略化のために、単一のゲストVMを説明する。ゲストVM110は、vTPMドライバ114を含んでもよく、これは、ゲストVM110とvTPM106のゲストインタフェースモジュール108との間の通信を容易にするように構成されてもよい。いくつかの実施形態において、vTPMドライバ114とゲストインタフェースモジュール108との間の通信は、VMM104を介して行われてもよい。vTPMドライバ114は、ゲストVM110上で動作可能なオペレーティングシステム(OS)112によって制御されてもよい。OS112は、複数の物理的及び/または仮想デバイス(例えば、物理的及び/または仮想プリンタ、表示デバイスまたは通信デバイス)用の多数の他のドライバを制御してもよい。OS112は、ゲストVM110が別個の物理的な機械であるかのようにゲストVM110上で動作可能な多数のアプリケーションを、さらにサポートしてもよい。いくつかの実施形態において、1つまたは複数の追加のVMが、ゲストVM110上で動作してもよい。本明細書で用いられるように、ゲストVMの「リソース」は、ドライバ、OS、アプリケーション及び他の複数のVMのような、ゲストVM上で実行する任意のモジュール、またはゲストVMによってサポートされる他のデータを含む。
コンピューティングプラットフォーム100は、MVM118を含んでもよい。MVM118は、1つまたは複数のvTPM(vTPM106のような)に関連付けられてもよく、1つまたは複数のvTPMのライフサイクルを管理するように構成されてもよい。いくつかの実施形態において、MVM118は、それが関連付けられる複数のvTPM(例えば、vTPM106)の秘密鍵を格納してもよく、他のコンピューティングプラットフォームが、例えば、ゲストVM110のようなゲストVMのリソースのセキュリティの検証を要求した場合に、署名付きの証明書が認証の証拠として利用可能となるように、秘密鍵を用いることにより、関連付けられた複数のvTPMの証明書を認証するように構成されてもよい。
MVM118は、SE132に配置されてもよい。SE132は、(vTPM106が配置される)SE134と異なるSEであってもよい。MVM118は、vTPM106の管理インタフェースモジュール108を介してvTPM106と通信を行ってもよい。いくつかの実施形態において、MVM118と管理インタフェースモジュール108との間の通信は、VMM104を介して行われてもよい。上述されたように、いくつかの実施形態において、MVM118は、vTPM106の複数のPCR136のどれが(例えば、vRTM120によって)変更可能であるかを制御してもよい。特に、MVM118は、vTPM106にモディファイヤを提供してもよく、これは、複数のPCR136の特定の1つが変更可能か否か、及び、結果的に、複数のPCR136の特定の1つまたは複数を変更させるvTPM106への複数のコマンドが許可されるか否かを示す。いくつかの実施形態において、vTPM106は、複数のPCR136の特定の1つの値を変更することを、このような変更が許可されたことを示すモディファイヤをMVM118から受信した後でのみ、可能としてもよい。MVM118は、複数のPCR値の複数の変更を許可する複数のモディファイヤを、特定の複数の条件下、例えば、ゲストVMに関連付けられたライフサイクルイベントが生じた場合にのみ、提供してもよい。いくつかの実施形態において、MVM118は、vRTM120(後述)と通信を行ってもよい。いくつかの実施形態において、MVM118及びvRTM120は、共通のSEに含まれてもよく、いくつかのこのような実施形態において、MVM118は、vRTMであってもよく、vRTM120の機能を含んでもよい。いくつかの実施形態において、MVM118のモディファイヤ提供機能は、vRTM120に含まれてもよく、vRTM120は、複数のモディファイヤを、セキュアチャネルを介して、複数のvTPM(vTPM106のような)に提供してもよい。前述の複数の実施形態は、複数のPCR136における複数の値の修正を、SE132のMVM118(またはSE130のvRTM120)から許可された場合にのみ可能とすることによって、例えば、VMM104における悪意のある複数の処理による修正から、複数のPCR136を保護してもよい。いくつかの実施形態において、MVM118は、多数のサポートVM122(後述)のいずれかと通信を行ってもよい。
コンピューティングプラットフォーム100は、vRTM120を含んでもよい。vRTM120は、ゲストVM110のようなVMM104上で実行する複数のVMの複数のリソースの整合性測定のRTMとして機能するように構成されてもよい。いくつかの実施形態において、vRTM120は、VMのリソースの複数の整合性測定のチェーンを開始するように構成されてもよい。整合性測定の値は、例えば、VMのリソースを定義する機械可読コードのハッシュを含んでもよい。いくつかの実施形態において、vRTM120は、ハッシュ値を複数のPCR136の1つ(例えば、その機械可読コードのハッシュが計算されたゲストVMリソースに関連付けられた複数のPCR136の1つ)に格納するコマンドをvTPM106に発行してもよい。いくつかの実施形態において、ハッシュ値を格納するコマンドは、複数のPCR136の適切な1つを、(例えば、vTPM120が、以前に、前のチェーンの複数の整合性測定の値の格納を開始及び命令した後で、複数の測定の他のチェーンを開始した場合に)ハッシュ値で拡張するコマンドであってもよい。vRTM120は、SE130に配置されてもよい。SE130は、SE132(MVM118が配置される)及びSE134(vTPM106が配置される)と異なるSEであってもよい。上述されたように、コンピューティングデバイス100は、SE130を含む1つまたは複数のSEの複数の整合性測定を実行するように構成されてもよい。いくつかの実施形態において、複数のSE130(そこで、及びvRTM120)の複数の測定は、SE130に関連付けられた測定レジスタにおけるこれらの初期の格納からレポートされてもよく、各vTPMの複数のPCR(vTPM106のPCR136のような)に拡張されてもよい。いくつかの実施形態において、vRTM120は、ゲストインタフェースモジュール108を介してvTPM106と通信を行ってもよい。いくつかの実施形態において、vRTM120とvTPM106との間の通信は、VMM104を介して行われてもよい。上述されたように、いくつかの実施形態において、vTPM106は、SEに配置されなくてもよく、特に、vRTM120が配置されるSE130の外部に配置されてもよい。
コンピューティングプラットフォームは、1つまたは複数のサポートVM122を含んでもよい。いくつかの実施形態において、複数のサポートVM122は、複数のサービスを複数のvTPM(vTPM106のような)及び複数のゲストVM(ゲストVM110のような)に提供してもよい。図1に示される複数のサポートVMの複数の例は、移行エージェントVM124、ドメインビルダVM126及びヘルパーVM128を含む。いくつかの実施形態において、移行エージェントVM124は、例えば、コンピューティングプラットフォーム100からゲストVMが移行されている他のコンピューティングプラットフォームへのゲストVMのコピーを管理し、ゲストVMが移行された後、ゲストVMのコピーを削除することによって、複数のゲストVM(例えば、ゲストVM110)の移行を管理するように構成されてもよい。いくつかの実施形態において、ドメインビルダVM126は、複数のゲストVMの複数のOSを初期化し、複数のゲストVMにメモリを割り当て、及び/または他の複数の初期化タスクを行うことによって、複数のゲストVM(ゲストVM110のような)のための複数の環境を初期化するように構成されてもよい。ヘルパーVM128は、複数のゲストVM(ゲストVM110のような)に、複数の仮想化されたドライバサービスのような複数のサービスを提供し得る1つまたは複数のサポートVMを表してもよい。いくつかの実施形態において、複数のサポートVM122のうち1つまたは複数は、vRTM120とゲストVM110との間の複数の整合性測定のチェーン(及び結果的に、複数のvRTM120と、ゲストVM110の複数のリソースのような、vTPM106に関連付けられたゲストVMの複数のリソースとの間の複数の整合性測定のチェーン)の一部として測定されてもよい。いくつかの実施形態において、vTPM106がSEに配置されない場合、vRTM120によって開始される複数の整合性測定のチェーンは、vTPM106の測定自体を含んでもよく、vPM106がSEに配置された場合、vTPM106が配置されるSE(例えば、SE134)の測定は、vTPM106を有効化するサービスを提供してもよい。
ここで図2を参照すると、様々な実施形態に係るSEにおけるvRTMとゲストVMのリソースとの間の複数の整合性測定のチェーンを開始する処理200のフロー図が提供される。処理200(及び本明細書で説明される他の複数の処理)の複数の動作は、特定の順序で構成され、各々が一度示され、様々な実施形態において、複数の動作のうち1つまたは複数は、反復されてもよく、省略されてもよく、またはアウトオブオーダで実行されてもよいことが認識されよう。例示目的のために、処理200の複数の動作は、コンピューティングプラットフォーム100によって実行されるものとして説明されてもよいが、処理200の複数の動作は、処理200の個別の動作も含めて、コンピューティングプラットフォーム100の任意の適宜構成されたコンポーネントまたは複数のコンポーネントの組み合わせによって実行されてもよい。
処理200は、動作202において開始してもよく、ここで、コンピューティングプラットフォーム100は、SE(SE130のような)においてvRTM(vRTM120のような)を提供してもよい。上述されたように、SEは、コンピューティングプラットフォーム100のメモリ領域を含んでもよく、これは、メモリ領域の外部に配置された複数の実行された命令を介してはアクセス不可能である。いくつかの実施形態において、コンピューティングプラットフォーム100は、vRTMが配置される第1のSEの整合性測定を実行するように構成されてもよい。
動作204において、コンピューティングプラットフォーム100は、vTPM(vTPM106のような)を、vRTMが配置されるSEの外部にあるゲストVM(ゲストVM110のような)に提供してもよい。いくつかの実施形態において、コンピューティングプラットフォーム100は、動作204において、SE(SE134のような)にvTPMを提供してもよい。動作204においてvTPMが提供され得るSEは、動作202においてvRTMが提供されるSEと異なってもよい。
動作206において、コンピューティングプラットフォーム100は、(動作202の)vRTMとゲストVMのリソース(例えば、ゲストVM上で実行するアプリケーション)との間の複数の整合性測定のチェーンを開始してもよい。いくつかの実施形態において、ゲストVMは、vTPMが配置されるSEの外部に配置されてもよい。複数の整合性測定のチェーンは、vTPMの測定を含んでもよく、ブートまたは他の初期化シーケンスにあるvTPMの前に生じる1つまたは複数のサポートVMの整合性測定を含んでもよい。例えば、いくつかの実施形態において、1つまたは複数のサポートVMは、1回目にインスタンス化されてもよく、複数のサポートVMによって提供される複数のサービスを用いるゲストVMは、数週間または数か月後、2回目にインスタンス化されてもよい。このような実施形態において、複数の整合性測定のチェーンは、1回目またはその頃に実行された複数のサポートVMの複数の整合性測定と、2回目またはその頃に実行されたゲストVMの複数の整合性測定とを含んでもよい。
動作208において、コンピューティングプラットフォーム100は、複数の整合性測定が実行されるべき追加のゲストVMの有無を判断してもよい。これがある場合、コンピューティングプラットフォーム100は、動作204に進み、vTPMに追加のゲストVMを提供し、上述されたように続けてもよい。コンピューティングプラットフォーム100が、動作208において、整合性測定が実行されるべき追加のゲストVMがないと判断した場合、次に処理400は終了してもよい。上述されたように、処理400の複数の動作の順序は、純粋に例示的なものであり、例えば、いくつかの実施形態において、全てのゲストVMの複数のvTPMは、並列または続いて確立されてもよく、その後、複数のゲストVMリソースの複数の整合性測定が、(再び、並列にまたは続いて)なされてもよい。
ここで図3を参照すると、様々な実施形態に係るvRTMの整合性測定の値を格納する処理300のフロー図が提供される。vRTM120及びSE130を参照して上述されたように、いくつかの実施形態において、コンピューティングプラットフォーム100は、vRTMが配置されるSEのようなSEの整合性測定を実行するように構成されてもよい。vRTMを含むSEの整合性測定を実行し、この整合性測定の値をコンピューティングプラットフォーム100(例えば、ハードウェア102、ファームウェアまたはコンピューティングプラットフォーム100及び/またはVMM104のOSによってはアクセス不可能な他の位置)に格納することによって、vRTMとゲストVMのリソースとの間の複数の整合性測定のチェーンは、(例えば、図2の動作206で開始されたように)コンピューティングプラットフォーム100においてVMM104下で起点とされてもよい。このより深い起点は、複数の整合性測定の信頼性を向上させることができる。さらに、vRTM自体の整合性が測定されてもよいため、vRTMによる改ざん検出が可能となり、そこで、コンピューティングプラットフォーム100のセキュリティをさらに向上させ得る。例示目的のために、処理300の複数の動作は、コンピューティングプラットフォーム100によって実行されるものとして説明されてもよいが、処理300の複数の動作は、処理300の個別の動作も含め、コンピューティングプラットフォーム100の任意の適宜構成されたコンポーネントまたは複数のコンポーネントの組み合わせによって実行されてもよい。
処理300は、動作302において開始してもよく、ここで、コンピューティングプラットフォーム100は、vRTM(例えば、vRTM120)の整合性測定の値を格納してもよい。いくつかの実施形態において、vRTMの整合性測定は、マイクロコードによって実行されてもよく、コンピューティングプラットフォーム100は、vRTMの整合性測定の値を、vRTMが配置されるSEのマイクロコード(例えば、SE130に関連付けられたマイクロコード)に関連付けられたハードウェアレジスタに格納してもよい。いくつかの実施形態において、コンピューティングプラットフォーム100は、整合性測定の値をvTPM106の複数のPCR136の1つにさらに格納してもよい。
動作304において、コンピューティングプラットフォーム100は、動作302において格納されたvRTMの整合性測定の値にデータのセットをシールしてもよい。ここで用いられるように、整合性測定の値「にデータのセットをシールする」とは、基本的な測定されたコンポーネント(vRTMのような)が、元々SEに固定されていたため変更していないことを、整合性測定の値が示す場合にのみ、データのセットが復号化され得るように、データのセットを暗号化することを指してもよい。いくつかの実施形態において、データのセット(鍵のような)は、vRTMの整合性測定の値にシールされることにより、vRTMの整合性が最初に検証されない限り、当該データが復号化されることを防止してもよい。例えば、銀行口座のパスワードを表すデータのセットは、vRTMの整合性測定の値が予測または初期値と同じ場合にのみ、パスワードが復号化され得るように、vRTMの整合性測定の値にシールされてもよい。さもなければ、vRTMは、改ざんされた可能性があり、パスワードは、暗号化されたままであってもよい。処理300は、次に終了してもよい。
ここで図4を参照すると、様々な実施形態に係るSEにおいてvRTMを有するコンピューティングプラットフォーム(例えば、SE130においてvRTM120を有するコンピューティングプラットフォーム100)と通信を行う処理400のフロー図が提供され、いくつかの実施形態において、処理400は、例えば、整合性測定のチェーンがvRTMによってなされ、vTPMに格納されたことの確認を望む第1のコンピューティングプラットフォームによって実行されてもよく、第2のコンピューティングプラットフォームのゲストVMのリソースは、第2のコンピューティングプラットフォームのゲストVMのリソースが改ざんされていないことを示す。
例えば、いくつかの実施形態において、第1のコンピューティングプラットフォームは、銀行または病院のサーバであってもよく、第2のコンピューティングプラットフォームは、複数の財務または医療記録を含み、第1のコンピューティングプラットフォームが慎重に扱うべき情報を第2のコンピューティングプラットフォームと交換する前に、第1のコンピューティングプラットフォームは、第2のコンピューティングプラットフォームの特定の複数のリソースが損なわれていないことを検証することを望んでもよい。いくつかの実施形態において、第1のコンピューティングプラットフォームは、第2のコンピューティングプラットフォームのvRTM自体が損なわれていないことの検証を望んでもよい。第1のコンピューティングプラットフォームは、第2のコンピューティングプラットフォームの外部にあるエンティティ(例として、アプリケーションまたはインターネットサーバ)であってもよく、またはこれを含んでもよく、第2のコンピューティングプラットフォームによって信頼されていなくてもよい。
以下の処理400の説明において、第2のコンピューティングプラットフォームは、コンピューティングプラットフォーム100について本明細書で説明された複数の実施形態のいずれかに従って、セキュアエンクレーブにvRTMを有するように構成されてもよい。いくつかの実施形態において、第1のコンピューティングプラットフォームは、コンピューティングプラットフォーム100について本明細書で説明されるように構成されてもよく、または、コンピューティングプラットフォーム100同様の複数のコンピューティングプラットフォームと通信を行うように構成される汎用目的のコンピューティングプラットフォームであってもよい。
処理400は、動作402において開始してもよく、ここで、第1のコンピューティングプラットフォームは、第2のコンピューティングプラットフォームの処理デバイスにコマンドを送信することにより、vRTMを含む第2のコンピューティングプラットフォームのSE(例えば、コンピューティングプラットフォーム100のvRTM120を含むSE130)の整合性測定をレポートする。上述されたように、SEにおけるvRTMは、vRTMと第2のコンピューティングプラットフォームのゲストVM(例えば、コンピューティングプラットフォーム100のゲストVM110)のリソースとの間の複数の整合性測定のチェーンのためのRTMとして構成されてもよい。いくつかの実施形態において、ゲストVMは、vRTMを含むSEの外部に配置されてもよい。
動作404において、第1のコンピューティングプラットフォームは、第2のコンピューティングプラットフォームから、vRTMを含むSEの整合性測定の値を受信してもよい。いくつかの実施形態において、(例えば、vTPM106の複数のPCR136のうち1つまたは複数から取得された)整合性測定の値は、第2のコンピューティングプラットフォームのvTPMから送信されてもよい。いくつかの実施形態において、動作404において受信されたSEの整合性測定の値は、第2のコンピューティングプラットフォームに関連付けられた鍵を有する暗号署名付きであってもよい。例えば、鍵は、ハードウェアプラットフォーム鍵であってもよく、これは、信頼される機関(例えば、ハードウェアの1つまたは複数のコンポーネントの製造者)によって検証可能であってもよい。暗号署名を用いて、第1のコンピューティングプラットフォームは、整合性測定の値が正しいコンピューティングプラットフォームからレポートされ、途中で改ざんされていないことを確認してもよい。
動作406において、第1のコンピューティングプラットフォームは、SEの整合性測定の値(動作404において受信された)を予測値と比較してもよい。いくつかの実施形態において、予測値は、vRTMを定義する機械可読コードの予測されるセットに基づいてもよい。例えば、予測値は、vRTMを定義する機械可読コードの予測されるセットのハッシュであってもよい。第1のコンピューティングプラットフォームが、動作406において、SEの整合性測定の値が予測値と一致しないと判断した場合、第1のコンピューティングプラットフォームは、動作410に進み、第1のコンピューティングプラットフォームの他のコンポーネント(例えば、セキュリティイベントロギングソフトウェア)、他のコンピューティングプラットフォーム(例えば、セキュリティイベントロギングサーバ)及び/または第2のコンピューティングプラットフォームに、(例えば、それに、セキュリティ違反の可能性を通知するために)不一致のインジケータを提供してもよい。処理400は、次に、終了してもよい。
第1のコンピューティングプラットフォームが、動作406において、SEの整合性測定の値が予測値に一致すると判断した場合、第1のコンピューティングプラットフォームは、動作408に進み、第2のコンピューティングプラットフォームのゲストVMのリソースと通信を行ってもよい。いくつかの実施形態において、動作408において第2のコンピューティングプラットフォームのゲストVMのリソースと通信を行う前に、第1のコンピューティングプラットフォームは、vRTMと第2のコンピューティングプラットフォームのゲストVMのリソースとの間の複数の整合性測定のチェーンを代表するデータ(例えば、チェーンの複数の整合性測定の値の1つまたは複数のハッシュ値)が、予測値または複数の予測値に一致するか否かを判断してもよく、一致を確認した場合にのみ、第2のコンピューティングプラットフォームのゲストVMのリソースとの通信を進めてもよい。処理400は、次に終了してもよい。
ここで図5を参照すると、様々な実施形態に係るPCR(PCR136のような)に格納された複数の値を修正する処理500のフロー図が提供される。例示目的のために、処理500の複数の動作は、コンピューティングプラットフォーム100によって実行されるものとして説明されてもよいが、処理500の複数の動作は、処理500の個別の動作も含め、コンピューティングプラットフォーム100の任意の適宜構成されたコンポーネントまたは複数のコンポーネントの組み合わせによって実行されてもよい。
処理500は、動作502において開始されてもよく、ここで、コンピューティングプラットフォーム100は、コンピューティングプラットフォーム100の第1のSE(SE132のような)にMVM(MVM118のような)を提供してもよい。動作504において、コンピューティングプラットフォーム100は、vTPM(vTPM106のような)を、コンピューティングプラットフォーム100の第2のSE(SE134のような)におけるゲストVM(ゲストVM110のような)に提供してもよい。(動作504の)第2のSEは、(動作502の)第1のSEと異なってもよい。動作506において、コンピューティングプラットフォーム100は、vRTM(vRTM120のような)を、コンピューティングプラットフォーム100の第3のSE(SE130のような)に提供してもよく、第3のSEは、第1及び第2のSEと異なる。いくつかの実施形態において、動作502で提供されたMVMは、vRTM(例えば、vRTM120の機能)を含んでもよく、そこで、動作506は、実行されなくてもよい。
動作508において、コンピューティングプラットフォーム100は、vRTM(例えば、vRTM120またはMVM118に含まれるvRTM)とゲストVMのリソースとの間の複数の整合性測定のチェーンを開始してもよい。動作510において、コンピューティングプラットフォーム100は、(動作504で提供される)vTPMにおいて、vTPMのPCRに格納された値を変更するコマンドを受信してもよく、PCRは、ゲストVMのリソースに関連付けられる。いくつかの実施形態において、PCRに格納された値を変更するコマンドは、動作508において開始された複数の整合性測定のチェーンに応答してなされてもよい。いくつかの実施形態において、PCRに格納された値を変更するコマンドは、複数の整合性測定の値に起因してもよいが、他のソース(例えば、他の処理)に起因してもよい。いくつかの実施形態において、動作510で受信されたコマンドは、PCRに格納された値を、PCRに関連付けられたゲストVMリソースの整合性測定の値の暗号ハッシュで拡張するコマンドを含んでもよい。動作510で受信されたコマンドは、PCRの構成によって異なってもよく、例えば、いくつかのPCRは、vTPMがリセットされた場合にのみ値に初期化されてもよく、または、任意の値に設定されるのではなく、拡張のみされてもよい。
動作512において、コンピューティングプラットフォーム100は、(動作510で受信された)変更コマンドが許可されたことを示すMVMからのモディファイヤが、vTPMにおいて受信されたか否かを判断してもよく、いくつかの実施形態において、MVM及びvTPMは、動作512において、セキュアチャネルを介して通信を行ってもよい。MVM及びvTPMの各々は、セキュアエンクレーブに配置されるため(従って、検証及び信頼できるため)、2つの信頼された点の間にセキュアチャネルを確立するための、当分野で公知の多数の技術はいずれも、MVMとvTPMとの間にセキュアチャネルを確立するために用いられてもよい。いくつかの実施形態において、モディファイヤは、PCRに関連付けられたゲストVMのライフサイクルイベントを代表してもよい。適切なモディファイヤが受信されなかった場合、処理500は、終了してもよく、PCRへの変更はなされなくてもよい。コンピューティングプラットフォーム100が、動作510において、モディファイヤが受信されたと判断した場合、コンピューティングプラットフォーム100は、動作514に進み、PCRに格納された値を変更してもよい。処理500は、次に、終了してもよい。
ここで図6を参照すると、複数の開示された実施形態(例えば、図1のコンピューティングプラットフォーム100を参照して上述された複数の実施形態、及び図4を参照して上述された第1及び第2のコンピューティングプラットフォーム)の実施に適した例示的なコンピューティングプラットフォーム600のブロック図が提供される。コンピューティングプラットフォーム600は、多数のコンピューティングシステム、例えば、デスクトップコンピュータ、ポータブルコンピュータ、タブレットコンピュータ、サーバ、クライアント、シンクライアント、携帯電話またはスマートフォンのいずれかを含んでもよく、またはその一部であってもよい。
図示されるように、コンピューティングデバイス600は、多数の処理デバイス602及びシステムメモリ604を含む。複数の処理デバイス602は、1つまたは複数の処理コアまたは他の複数の処理デバイスを含んでもよい。さらに、コンピューティングプラットフォーム600は、複数の大容量ストレージデバイス606(ソリッドステートドライブ、ディスケット、ハードドライブ、コンパクトディスクリードオンリメモリ(CDROM)など)、複数の入力/出力デバイス608(ディスプレイ、キーボード、カーソル制御、カメラ、マイクロフォン、GPS受信機、動作検出器など)及び複数の通信インタフェース610(ネットワークインタフェースカード、モデム、WiFiデバイス、Bluetooth(登録商標)デバイスなど)を含んでもよい。複数の要素は、1つまたは複数のバスを表すシステムバス612を介して、互いに連結可能である。複数のバスの場合、これらは、1つまたは複数のバスブリッジ(不図示)によってブリッジされてもよい。本明細書で説明された複数の技術及び複数のシステムは、これらのデバイスまたは経路のうち1つまたは複数によって導入された脆弱性に対して、コンピューティングプラットフォームの複数のリソースをセキュアにするために用いられてもよい。
これらの要素の各々は、当分野で公知のその従来の複数の機能を実行してもよい。特に、システムメモリ604及び大容量ストレージ606は、本明細書においてロジック622として集合的に示された個々の処理デバイス602によって実行された場合に、図2−5のいずれかの方法、またはこれらの一部を実装する複数のプログラミング命令のワーキングコピー及び永久コピーを格納するために用いられてもよい。様々なコンポーネントが、複数のアセンブラ命令によって実装されてもよく、これらは、複数の処理デバイス602、または、このような複数の命令にコンパイル可能な、例えばCのような複数の高レベル言語によってサポートされる。
複数のプログラミング命令の永久コピーは、工場の永久ストレージ606に、または、当分野では、例えば、コンパクトディスク(CD)のように機械がアクセス可能な配布媒体(不図示)によって、または(例えば、配布サーバ(不図示)からの)通信インタフェース610によって、配置されてもよい。すなわち、エージェントプログラムの実装を有する1つまたは複数の配布媒体は、エージェント及びプログラムを様々なコンピューティングデバイスに配布するために用いられてもよい。要素602−612の構成は、公知であり、従って、さらなる説明は行わない。
上述された複数の技術を実行するための、機械がアクセス可能な媒体(非一時的機械可読媒体を含む)、複数の方法、複数のシステム及び複数のデバイスは、本明細書で開示された複数の実施形態の複数の例示的な実施例である。さらに、上述された複数のインタラクションにおける他の複数のデバイスは、様々な開示された技術を実行するように構成されてもよい。
[実施例] 例1Aは、コンピューティングプラットフォーム上で複数の整合性測定のチェーンを開始する方法であり、これは、コンピューティングプラットフォームに、コンピューティングプラットフォームの第1のセキュアエンクレーブにおけるvRTMを提供する段階であって、コンピューティングプラットフォームは、第2のセキュアエンクレーブの整合性測定を実行するように構成される、段階と、コンピューティングプラットフォームに、第1のセキュアエンクレーブの外部にあるゲストVMのためのvTPMを提供する段階と、コンピューティングプラットフォーム上で、vRTMとゲストVMのリソースとの間の複数の整合性測定のチェーンを開始する段階とを含む。
例1Bは、例1Aの主題を含んでもよく、第1のセキュアエンクレーブが、コンピューティングプラットフォームのメモリ領域を含み、メモリ領域は、メモリ領域の外部に配置された複数の実行された命令を介してはアクセス不可能であることをさらに規定する。
例1Cは、例1A−1Bのいずれかに記載の主題を含んでもよく、vRTMとゲストVMのリソースとの間の複数の整合性測定のチェーンの整合性測定の値を、vTPMに格納する段階をさらに含む。
例1Dは、例1A−1Cの主題を含んでもよく、コンピューティングプラットフォームに、第1のセキュアエンクレーブの外部にあるゲストVMのためのvTPMを提供する段階は、コンピューティングプラットフォームに、コンピューティングプラットフォームの第2のセキュアエンクレーブのゲストVMのためのvTPMを提供する段階を含み、第2のセキュアエンクレーブは、第1のセキュアエンクレーブと異なることをさらに規定する。
例1Eは、例1Dの主題を含んでもよく、ゲストVMは、第2のセキュアエンクレーブの外部にあることをさらに規定する。
例1Fは、例1A−1Eのいずれかに記載の主題を含んでもよく、複数の整合性測定のチェーンは、vTPMの整合性測定を含むことをさらに規定する。
例は、例1Fの主題を含んでもよく、複数の整合性測定のチェーンは、ゲストVMにサービスを提供するサポートVMの整合性測定を含むことをさらに規定する。
例1Hは、例1A−1Gのいずれかに記載の主題を含んでもよく、第1のセキュアエンクレーブの整合性測定を実行するように構成されることは、第1のセキュアエンクレーブの整合性測定を実行するように構成される第1のセキュアエンクレーブに関連付けられたマイクロコードを有することと、第1のセキュアエンクレーブの整合性測定の値をハードウェアレジスタに格納することとを含むことをさらに規定する。
例1Iは、例1A−1Hのいずれかに記載の主題を含んでもよく、vTPMは、第1のvTPMであり、ゲストVMは、第1のゲストVMであることをさらに規定し、方法は、第2のゲストVMのための第2のvTPMをコンピューティングプラットフォームに提供する段階と、vRTMと第2のゲストVMのリソースとの間の複数の整合性測定のチェーンをコンピューティングプラットフォーム上で開始する段階とをさらに含む。
例1Jは、1つまたは複数の機械可読媒体であり、コンピューティングプラットフォームの処理デバイスによって実行されたことに応答して、コンピューティングプラットフォームに、例1A−1Iのいずれかに記載の方法を実行させる複数の命令を含む。
例1Kは、1つまたは複数の処理デバイスと、複数の命令を含む1つまたは複数の機械可読媒体とを含む装置であり、複数の命令は、1つまたは複数の処理デバイスによって実行されたことに応答して、装置に、例1A−1Iのいずれかに記載の方法を実行させる。
例1Lは、例1A−1Iのいずれかに記載の方法の複数の動作を実行するための、1つまたは複数の手段を含む装置である。
例2Aは、コンピューティング方法であり、コンピューティングプラットフォームに、コンピューティングプラットフォームの第1のセキュアエンクレーブにおけるMVMを提供する段階と、コンピューティングプラットフォームのゲストVMのためのvTPMをコンピューティングプラットフォームに提供する段階であって、vTPMは、第1のセキュアエンクレーブと異なるコンピューティングプラットフォームの第2のセキュアエンクレーブに提供される、段階と、vTPMにおいて、vTPMのPCRに格納された値を変更するコマンドを受信する段階と、vTPMにおいて、コマンドが許可されたことを示すモディファイヤを、セキュアチャネルを介してMVMから受信する段階と、モディファイヤを受信した後で、PCRに格納された値をコンピューティングプラットフォームによって変更する段階と、を含む。
例2Bは、例2Aの主題を含んでもよく、モディファイヤは、PCRに関連付けられたVMのライフサイクルイベントを代表することをさらに規定する。
例2Cは、例2A−2Bのいずれかに記載の主題を含んでもよく、PCRに格納された値を変更するコマンドは、PCRに関連付けられたVMリソースの整合性測定の暗号ハッシュで、PCRに格納された値を拡張するコマンドであることをさらに規定する。
例2Dは、例2A−2Cのいずれかに記載の主題を含んでもよく、MVMは、vRTMを含むことをさらに規定する。
例2Eは、例2A−2Dのいずれかに記載の主題を含んでもよく、コンピューティングプラットフォームの第3のセキュアエンクレーブにおけるvRTMを、コンピューティングプラットフォームに提供する段階であって、第3のセキュアエンクレーブは、第1及び第2のセキュアエンクレーブ異なる、段階と、vRTMとゲストVMのリソースとの間の複数の整合性測定のチェーンを、コンピューティングプラットフォーム上で開始する段階と、をさらに含む。
例2Fは、1つまたは複数の機械可読媒体であり、コンピューティングプラットフォームの処理デバイスによって実行されたことに応答して、コンピューティングプラットフォームに、例2A−2Eのいずれかに記載の方法を実行させる複数の命令を含む。
例2Gは、1つまたは複数の処理デバイスと、複数の命令を含む1つまたは複数の機械可読媒体とを含む装置であり、複数の命令は、1つまたは複数の処理デバイスによって実行されたことに応答して、装置に、例2A−2Eのいずれかに記載の方法を実行させる。
例2Hは、例2A−2Eのいずれかに記載の方法の複数の動作を実行するための、1つまたは複数の手段を含む装置である。
例3Aは、整合性測定の値を受信する方法であり、第2のコンピューティングプラットフォームのセキュアエンクレーブの整合性測定の値をレポートするコマンドを、第1のコンピューティングプラットフォームによって、第2のコンピューティングプラットフォームの処理デバイスに送信する段階であって、セキュアエンクレーブは、vRTMと、セキュアエンクレーブの外部に配置されるゲストVMのリソースとの間の複数の整合性測定のチェーンの測定の信頼の起点として構成されるvRTMを含む、段階と、第1のコンピューティングプラットフォームによって、第2のコンピューティングプラットフォームから、セキュアエンクレーブの整合性測定の値を受信する段階と、を含む。
例3Bは、例3Aの主題を含んでもよく、第1のコンピューティングプラットフォームによって、セキュアエンクレーブの整合性測定の値を予測値と比較する段階をさらに含む。
例3Cは、例3Bの主題を含んでもよく、セキュアエンクレーブの整合性測定の値が予測値と一致することを示す比較の結果に応答して、第1のコンピューティングプラットフォームによって、ゲストVMのリソースと通信を行う段階をさらに含む。
例3Dは、例3B−3Cのいずれかに記載の主題を含んでもよく、予測値は、vRTMを定義する機械可読コードの予測されるセットに基づくことをさらに規定する。
例3Eは、例3A−3Dのいずれかに記載の主題を含んでもよく、セキュアエンクレーブの整合性測定の値は、コンピューティングプラットフォームに関連付けられた鍵による署名付きであることをさらに規定する。
例3Fは、1つまたは複数の機械可読媒体であり、コンピューティングプラットフォームの処理デバイスによって実行されたことに応答して、コンピューティングプラットフォームに、例3A−3Eのいずれかに記載の方法を実行させる複数の命令を含む。
例3Gは、1つまたは複数の処理デバイスと、複数の命令を含む1つまたは複数の機械可読媒体とを含む装置であり、複数の命令は、1つまたは複数の処理デバイスによって実行されたことに応答して、装置に、例3A−3Eのいずれかに記載の方法を実行させる。
例3Hは、例3A−3Eのいずれかに記載の方法の複数の動作を実行するための、1つまたは複数の手段を含む装置である。

Claims (25)

  1. コンピューティングのための装置であって、
    プロセッサと、
    前記プロセッサに連結された、複数の命令が格納されるメモリと、を備え、前記複数の命令は、プロセッサによって動作させられることにより、前記装置に、
    前記装置の第1のセキュアエンクレーブに管理VM(MVM)を提供し、
    前記装置のゲスト仮想マシン(ゲストVM)のための仮想マシントラステッドプラットフォームモジュール(vTPM)を提供し、前記vTPMは、前記第1のセキュアエンクレーブと異なる前記装置の第2のセキュアエンクレーブに提供され、
    前記vTPMにおいて、前記vTPMのプラットフォーム構成レジスタ(PCR)に格納された値を変更するコマンドを受信し、
    前記vTPMにおいて、前記コマンドが許可されたことを示すモディファイヤを、セキュアチャネルを介して前記MVMから受信し、
    前記モディファイヤを受信した後で、前記PCRに格納された前記値を変更させる、装置。
  2. 前記モディファイヤは、前記PCRに関連付けられたVMのライフサイクルイベントを代表する、請求項1に記載の装置。
  3. 前記PCRに格納された前記値を変更する前記コマンドは、前記PCRに格納された前記値を、前記PCRに関連付けられたVMリソースの整合性測定の値の暗号ハッシュで拡張するコマンドである、請求項1または2に記載の装置。
  4. 前記MVMは、測定のための仮想マシンの信頼の起点(vRTM)を含む、請求項1から3のいずれか1項に記載の装置。
  5. 前記複数の命令は、前記プロセッサによって動作させられることにより、前記装置に、
    測定のための仮想マシンの信頼の起点(vRTM)を前記装置の第3のセキュアエンクレーブに提供し、前記第3のセキュアエンクレーブは、前記第1及び第2のセキュアエンクレーブと異なり、
    前記vRTMと前記ゲストVMのリソースとの間の複数の整合性測定のチェーンを開始させる、請求項1から4のいずれか1項に記載の装置。
  6. コンピューティングプラットフォーム上で複数の整合性測定のチェーンを開始する方法であって、
    前記コンピューティングプラットフォームの第1のセキュアエンクレーブにおける測定のための仮想マシンの信頼の起点(vRTM)を、前記コンピューティングプラットフォームに提供する段階であって、前記コンピューティングプラットフォームは、第2のセキュアエンクレーブの整合性測定を実行する、段階と、
    前記第1のセキュアエンクレーブの外部にあるゲスト仮想マシン(ゲストVM)のための仮想マシントラステッドプラットフォームモジュール(vTPM)を、前記コンピューティングプラットフォームに提供する段階と、
    前記vRTMと前記ゲストVMのリソースとの間の複数の整合性測定のチェーンを、前記コンピューティングプラットフォーム上で開始する段階と、
    を備える、方法。
  7. 前記第1のセキュアエンクレーブは、前記コンピューティングプラットフォームのメモリ領域を備え、前記メモリ領域は、前記メモリ領域の外部に配置された複数の実行された命令を介してはアクセス不可能である、請求項6に記載の方法。
  8. 前記vRTMと前記ゲストVMの前記リソースとの間の前記複数の整合性測定のチェーンの整合性測定の値を、前記vTPMに格納する段階をさらに備える、請求項6または7に記載の方法。
  9. 前記コンピューティングプラットフォームに、前記第1のセキュアエンクレーブの外部にあるゲストVMのためのvTPMを提供する段階は、前記コンピューティングプラットフォームに、前記コンピューティングプラットフォームの第2のセキュアエンクレーブにおけるゲストVMのためのvTPMを提供する段階を含み、前記第2のセキュアエンクレーブは、前記第1のセキュアエンクレーブと異なる、請求項6から8のいずれか1項に記載の方法。
  10. 前記ゲストVMは、前記第2のセキュアエンクレーブの外部にある、請求項9に記載の方法。
  11. 前記複数の整合性測定のチェーンは、前記vTPMの整合性測定を含む、請求項6から10のいずれか1項に記載の方法。
  12. 前記複数の整合性測定のチェーンは、前記ゲストVMにサービスを提供するサポートVMの整合性測定を含む、請求項6から11のいずれか1項に記載の方法。
  13. 前記第1のセキュアエンクレーブの整合性測定を実行することは、前記第1のセキュアエンクレーブの前記整合性測定を実行し、前記第1のセキュアエンクレーブの前記整合性測定の値をハードウェアレジスタに格納する、前記第1のセキュアエンクレーブに関連付けられたマイクロコードを有することを含む、請求項6から12のいずれか1項に記載の方法。
  14. 前記vTPMは、第1のvTPMであり、前記ゲストVMは、第1のゲストVMであり、前記方法は、
    第2のゲストVMのための第2のvTPMを、前記コンピューティングプラットフォームに提供する段階と、
    前記vRTMと前記第2のゲストVMのリソースとの間の複数の整合性測定のチェーンを、前記コンピューティングプラットフォーム上で開始する段階と、
    をさらに備える、請求項6から13のいずれか1項に記載の方法。
  15. 整合性測定の値を受信する方法であって、
    第2のコンピューティングプラットフォームのセキュアエンクレーブの整合性測定の値をレポートするコマンドを、第1のコンピューティングプラットフォームによって前記第2のコンピューティングプラットフォームの処理デバイスに送信する段階であって、前記セキュアエンクレーブは、測定のための仮想マシンの信頼の起点(vRTM)と、前記セキュアエンクレーブの外部に配置されるゲスト仮想マシン(ゲストVM)のリソースとの間の複数の整合性測定のチェーンの測定のための信頼の起点として、前記vRTMを含む、段階と、
    前記セキュアエンクレーブの整合性測定の値を、前記第1のコンピューティングプラットフォームによって、前記第2のコンピューティングプラットフォームから受信する段階と、
    を備える、方法。
  16. 前記第1のコンピューティングプラットフォームによって、前記セキュアエンクレーブの前記整合性測定の値を、予測値と比較する段階をさらに備える、請求項15に記載の方法。
  17. 前記比較の結果が、前記セキュアエンクレーブの前記整合性測定の値が前記予測値と一致することを示したことに応答して、前記第1のコンピューティングプラットフォームによって、前記ゲストVMの前記リソースと通信を行う段階をさらに備える、請求項16に記載の方法。
  18. 前記予測値は、前記vRTMを定義する機械可読コードの予測されるセットに基づく、請求項16または17に記載の方法。
  19. 前記セキュアエンクレーブの前記整合性測定の値は、前記第2のコンピューティングプラットフォームに関連付けられた鍵による署名付きである、請求項15から18のいずれか1項に記載の方法。
  20. コンピューティングプラットフォームの処理デバイスによる実行に応答して、前記コンピューティングプラットフォームに、請求項6から14のいずれか1項に記載の方法を実行させる、プログラム。
  21. コンピューティングプラットフォームの処理デバイスによる実行に応答して、前記コンピューティングプラットフォームに、請求項15から19のいずれか1項に記載の方法を実行させる、プログラム。
  22. 複数の整合性測定のチェーンを開始する装置であって、
    コンピューティングプラットフォームの第1のセキュアエンクレーブにおける測定のための仮想マシンの信頼の起点(vRTM)を提供する手段であって、前記コンピューティングプラットフォームは、第2のセキュアエンクレーブの整合性測定を実行する、手段と、
    前記第1のセキュアエンクレーブの外部にあるゲスト仮想マシン(ゲストVM)のための仮想マシントラステッドプラットフォームモジュール(vTPM)を提供する手段と、
    前記vRTMと前記ゲストVMのリソースとの間の複数の整合性測定のチェーンを開始する手段と、
    を備える、装置。
  23. 前記vRTMと前記ゲストVMの前記リソースとの間の前記複数の整合性測定のチェーンの整合性測定の値を、前記vTPMに格納する手段をさらに備える、請求項22に記載の装置。
  24. 整合性測定の値を受信する装置であって、
    第2のコンピューティングプラットフォームの処理デバイスに、前記第2のコンピューティングプラットフォームのセキュアエンクレーブの整合性測定の値をレポートするコマンドを送信する手段であって、前記装置は、第1のコンピューティングプラットフォームであり、前記セキュアエンクレーブは、測定のための仮想マシンの信頼の起点(vRTM)と、前記セキュアエンクレーブの外部に配置されるゲスト仮想マシン(ゲストVM)のリソースとの間の複数の整合性測定のチェーンの測定のための信頼の起点として、前記vRTMを含む、手段と、
    前記第2のコンピューティングプラットフォームから、前記セキュアエンクレーブの整合性測定の値を受信する手段と、
    を備える、装置。
  25. 前記セキュアエンクレーブの前記整合性測定の値を、予測値と比較する手段をさらに備える、請求項24に記載の装置。
JP2015561311A 2013-03-06 2013-03-06 仮想マシンの測定のための信頼の起点 Active JP6055561B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/029439 WO2014137338A1 (en) 2013-03-06 2013-03-06 Roots-of-trust for measurement of virtual machines

Publications (2)

Publication Number Publication Date
JP2016509321A JP2016509321A (ja) 2016-03-24
JP6055561B2 true JP6055561B2 (ja) 2016-12-27

Family

ID=51489395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015561311A Active JP6055561B2 (ja) 2013-03-06 2013-03-06 仮想マシンの測定のための信頼の起点

Country Status (6)

Country Link
US (2) US9053059B2 (ja)
EP (2) EP3869332B1 (ja)
JP (1) JP6055561B2 (ja)
KR (1) KR101717263B1 (ja)
CN (2) CN108762887B (ja)
WO (1) WO2014137338A1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8494585B2 (en) 2011-10-13 2013-07-23 The Boeing Company Portable communication devices with accessory functions and related methods
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US10579405B1 (en) * 2013-03-13 2020-03-03 Amazon Technologies, Inc. Parallel virtual machine managers
US9819661B2 (en) 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US10064240B2 (en) 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
US9497221B2 (en) * 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US10063445B1 (en) * 2014-06-20 2018-08-28 Amazon Technologies, Inc. Detecting misconfiguration during software deployment
US9715597B2 (en) * 2014-09-25 2017-07-25 Mcafee, Inc. Data verification using enclave attestation
US10171427B2 (en) 2015-01-29 2019-01-01 WebCloak, LLC Portable encryption and authentication service module
US9667606B2 (en) 2015-07-01 2017-05-30 Cyphermatrix, Inc. Systems, methods and computer readable medium to implement secured computational infrastructure for cloud and data center environments
US10248791B2 (en) 2015-07-20 2019-04-02 Intel Corporation Technologies for secure hardware and software attestation for trusted I/O
US9673982B2 (en) 2015-09-16 2017-06-06 Sprint Communications Company L.P. Efficient hardware trust verification in data communication systems that comprise network interface cards, central processing units, and data memory buffers
CN109416718B (zh) * 2015-12-24 2023-05-12 英特尔公司 云数据中心中应用容器的可信部署
US10528739B2 (en) 2016-04-20 2020-01-07 Sophos Limited Boot security
WO2018054466A1 (en) * 2016-09-22 2018-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Virtualization of a trusted computing base
US10324862B2 (en) * 2016-09-30 2019-06-18 Intel Corporation Supporting oversubscription of guest enclave memory pages
US10642972B2 (en) * 2016-10-20 2020-05-05 Intel Corporation Extending packet processing to trusted programmable and fixed-function accelerators
US10528721B2 (en) * 2016-10-20 2020-01-07 Intel Corporation Trusted packet processing for multi-domain separatization and security
US10819696B2 (en) * 2017-07-13 2020-10-27 Microsoft Technology Licensing, Llc Key attestation statement generation providing device anonymity
WO2019029817A1 (en) * 2017-08-11 2019-02-14 Huawei Technologies Co., Ltd. DEVICES AND METHODS FOR KEY CERTIFICATE WITH MULTIPLE DEVICE CERTIFICATES
US10621350B2 (en) 2017-10-02 2020-04-14 Microsoft Technology Licensing, Llc System integrity using attestation for virtual trusted platform module
US10587412B2 (en) * 2017-11-07 2020-03-10 International Business Machines Corporation Virtual machine structure
US11113400B1 (en) * 2017-12-26 2021-09-07 Virtuozzo International Gmbh System and method for providing distributed compute platform on untrusted hardware
US10970390B2 (en) * 2018-02-15 2021-04-06 Intel Corporation Mechanism to prevent software side channels
US11093272B2 (en) * 2018-06-27 2021-08-17 International Business Machines Corporation Virtual machine allocation and migration between hardware devices by destroying and generating enclaves using transmitted datafiles and cryptographic keys
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN109165079B (zh) * 2018-08-07 2021-07-27 郑州云海信息技术有限公司 基于虚拟化的云数据中心可信平台、信任链构建方法
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US11489827B2 (en) * 2018-10-08 2022-11-01 Oracle International Corporation Dedicated network authentication and allocation for dedicated virtual machine host clusters
CN110515699B (zh) * 2019-08-20 2021-09-07 苏州浪潮智能科技有限公司 一种获取虚拟机所在平台可信状态的方法和设备
US11334670B2 (en) 2020-01-28 2022-05-17 Hewlett Packard Enterprise Development Lp Integrity verification for a software stack or part of a software stack
US11604671B2 (en) * 2020-03-19 2023-03-14 Red Hat, Inc. Secure virtual machine and peripheral device communication
CN114398156B (zh) * 2022-03-24 2022-09-09 阿里云计算有限公司 数据通道构建方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103771B2 (en) 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US7133525B1 (en) * 2002-05-17 2006-11-07 Communication Security Apparatus Corp. Communication security apparatus and method of using same
US20050132367A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management
JP3945708B2 (ja) * 2004-01-23 2007-07-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理システム、変換処理システム、逆変換処理システム、変換方法、変換プログラム、及び記録媒体
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US20070056033A1 (en) 2005-03-31 2007-03-08 Grawrock David W Platform configuration apparatus, systems, and methods
US8074262B2 (en) * 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US20070234412A1 (en) * 2006-03-29 2007-10-04 Smith Ned M Using a proxy for endpoint access control
US8566606B2 (en) * 2006-04-21 2013-10-22 Interdigital Technology Corporation Apparatus and method for performing trusted computing integrity measurement reporting
US8151262B2 (en) 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
CN101039186B (zh) * 2007-05-08 2010-08-04 中国科学院软件研究所 系统日志的安全审计方法
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
CN101350044B (zh) * 2008-09-02 2010-07-14 中国科学院软件研究所 一种虚拟环境信任构建方法
CN102473224B (zh) * 2009-12-22 2016-10-12 英特尔公司 提供安全应用执行的方法和装置
US20120151209A1 (en) * 2010-12-09 2012-06-14 Bae Systems National Security Solutions Inc. Multilevel security server framework
EP2702724B1 (en) * 2011-04-26 2017-03-29 Telefonaktiebolaget LM Ericsson (publ) Secure virtual machine provisioning
MY176908A (en) * 2011-04-26 2020-08-26 Mimos Berhad An apparatus and method for determining level of integrity
CN102244684B (zh) * 2011-07-29 2013-07-17 电子科技大学 基于usbkey的efi可信云链引导方法
US20140007087A1 (en) 2012-06-29 2014-01-02 Mark Scott-Nash Virtual trusted platform module

Also Published As

Publication number Publication date
EP2815349B1 (en) 2021-04-21
CN108762887B (zh) 2022-03-11
KR20150105390A (ko) 2015-09-16
WO2014137338A1 (en) 2014-09-12
US20140258733A1 (en) 2014-09-11
JP2016509321A (ja) 2016-03-24
EP2815349A1 (en) 2014-12-24
KR101717263B1 (ko) 2017-03-16
US9053059B2 (en) 2015-06-09
US9678895B2 (en) 2017-06-13
EP3869332A2 (en) 2021-08-25
EP3869332A3 (en) 2021-11-17
CN108762887A (zh) 2018-11-06
EP2815349A4 (en) 2015-10-21
CN104969234A (zh) 2015-10-07
US20150286582A1 (en) 2015-10-08
CN104969234B (zh) 2018-06-12
EP3869332B1 (en) 2023-04-12

Similar Documents

Publication Publication Date Title
JP6055561B2 (ja) 仮想マシンの測定のための信頼の起点
CN108351937B (zh) 计算设备
US9698988B2 (en) Management control method, apparatus, and system for virtual machine
US10635821B2 (en) Method and apparatus for launching a device
EP2207121B1 (en) Protecting content on virtualized client platforms
US12032680B2 (en) Preserving confidentiality of tenants in cloud environment when deploying security services
US9195821B2 (en) System and methods for remote software authentication of a computing device
Mannan et al. Unicorn: Two-factor attestation for data security
KR102565414B1 (ko) 데이터 처리 가속기에 사용되는, 난독화 유닛에 의해 난독화 를 진행하는 데이터 전송
Narayanan et al. Remote attestation of confidential VMs using ephemeral vTPMs
JP2021093002A (ja) 情報処理装置、情報処理方法、および、プログラム
Park et al. TGVisor: A tiny hypervisor-based trusted geolocation framework for mobile cloud clients
Song et al. TZ-IMA: Supporting Integrity Measurement for Applications with ARM TrustZone
Hao et al. Trusted block as a service: Towards sensitive applications on the cloud
Park et al. A tiny hypervisor-based trusted geolocation framework with minimized TPM operations
Galanou et al. Matee: Multimodal attestation for trusted execution environments
Xiang et al. Dynamic measurement protocol in infrastructure as a service
Yao et al. Virtual Firmware
Aw Ideler Cryptography as a service in a cloud computing environment
Park et al. Data firewall: a TPM-based security framework for protecting data in thick client mobile environment
Weiß et al. Integrity verification and secure loading of remote binaries for microkernel-based runtime environments
Cheruvu et al. Base Platform Security Hardware Building Blocks
Song et al. Check for updates TZ-IMA: Supporting Integrity Measurement for Applications with ARM TrustZone
Sim et al. Secure firmware architecture using virtual hard disks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150925

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161202

R150 Certificate of patent or registration of utility model

Ref document number: 6055561

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250