JP6304837B2 - Authenticated launch of virtual machines and nested virtual machine managers - Google Patents
Authenticated launch of virtual machines and nested virtual machine managers Download PDFInfo
- Publication number
- JP6304837B2 JP6304837B2 JP2016052569A JP2016052569A JP6304837B2 JP 6304837 B2 JP6304837 B2 JP 6304837B2 JP 2016052569 A JP2016052569 A JP 2016052569A JP 2016052569 A JP2016052569 A JP 2016052569A JP 6304837 B2 JP6304837 B2 JP 6304837B2
- Authority
- JP
- Japan
- Prior art keywords
- vmm
- processor
- lcpm
- launch
- lcp
- 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
Links
- 238000005259 measurement Methods 0.000 claims description 49
- 230000015654 memory Effects 0.000 claims description 33
- 238000000034 method Methods 0.000 claims description 28
- 235000021156 lunch Nutrition 0.000 claims description 8
- 238000011156 evaluation Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000008520 organization Effects 0.000 description 5
- 238000003752 polymerase chain reaction Methods 0.000 description 5
- 101000596046 Homo sapiens Plastin-2 Proteins 0.000 description 4
- 101000762938 Homo sapiens TOX high mobility group box family member 4 Proteins 0.000 description 4
- 102100026749 TOX high mobility group box family member 4 Human genes 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 101001090688 Homo sapiens Lymphocyte cytosolic protein 2 Proteins 0.000 description 3
- 102100034709 Lymphocyte cytosolic protein 2 Human genes 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 101100416209 Leishmania chagasi LCP0 gene Proteins 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101100519164 Arabidopsis thaliana PCR8 gene Proteins 0.000 description 1
- 101150093240 Brd2 gene Proteins 0.000 description 1
- 101150050055 LCP3 gene Proteins 0.000 description 1
- 229920000106 Liquid crystal polymer Polymers 0.000 description 1
- 101150007742 RING1 gene Proteins 0.000 description 1
- 238000012951 Remeasurement Methods 0.000 description 1
- 208000035217 Ring chromosome 1 syndrome Diseases 0.000 description 1
- 208000032825 Ring chromosome 2 syndrome Diseases 0.000 description 1
- 208000032826 Ring chromosome 3 syndrome Diseases 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Description
「ランチコントロール」またはランチコントロールポリシー(LCP:launch control policy)は、総合的なエンドポイント保護ソルーションの一部である。従来のアンチウイルススキャンは、既知の「悪い」ソフトウェアを特定することを目的とする「ブラックリスト作成」技法を使用する。スキャンエンジンがプラットフォームリソースを検索する際には、攻撃シグネチャーがスキャンエンジンの指針となる。感染したリソースは修復のためにフラグを立てられる。「ホワイトリスト作成」は、既知の「善い」ソフトウェアのリストを作り出すことを含む。このリストはスキャンエンジンに供給され、スキャンエンジンはリストに載っていないリソースに修復のためのフラグを立てる。ブラックリスト作成およびホワイトリスト作成は、一緒に機能することでシステムのすべてのリソースを仕分けすることができる。ランチコントロールは、ホワイトリストスキャンエンジンをシステムランチ手順に統合して、マルウェアがシステムで実行される機会を獲得しないようにする。たとえば、ホワイトリストは、実行環境(たとえば動的にランチされる環境)をブートまたはランチするために用いられるコードおよびデータ(たとえばハッシュ)の参照測定を含んでよい。したがって、ランチコントロールは、「トラステッドブート」が行われることを確実にするために用いることができる。 A “launch control” or launch control policy (LCP) is part of a comprehensive endpoint protection solution. Conventional anti-virus scanning uses a “blacklisting” technique that aims to identify known “bad” software. When the scan engine searches for platform resources, the attack signature serves as a guide for the scan engine. Infected resources are flagged for repair. “Whitelisting” involves creating a list of known “good” software. This list is supplied to the scan engine, which flags resources that are not on the list for repair. Blacklisting and whitelisting work together to sort all the resources of the system. Launch Control integrates the whitelist scan engine into the system launch procedure to prevent malware from getting an opportunity to run on the system. For example, the whitelist may include reference measurements of code and data (eg, hashes) that are used to boot or launch an execution environment (eg, a dynamically launched environment). Thus, the launch control can be used to ensure that a “trusted boot” takes place.
トラステッドブート使用は、ブートフローのすべての段階に影響を及ぼしてよく、「ルートオブトラスト(roots−of−trust)」としても知られるトラステッドハードウェアにもとづいてよい。トラステッド実行テクノロジー(TXT:Trusted Execution Technology)は、仮想環境のためのトラステッドブート使用を実装するために用いることができるランチコントロールおよびルートオブトラストテクノロジーの一例である。ハードウェアルートオブトラストの助けにより、トラステッドブート使用がマルウェアが上のレイヤに対して正当なハードウェアを偽装する可能性を取り除くかまたは低くする。TXTは、ランチコントロールポリシーを使用してトラステッド環境だけがランチされることを確実にする動的な測定のためのルートオブトラスト(RTM:root of trust for measurement)を実装する。言い換えると、TXTは、プラットフォーム内のさまざまな実行環境について実行される一連の完全性チェックにおける出発点であってよい。従って、TXTは、マイクロコードにおけるセキュアな出発点を提供してよい。たとえば、さまざまなランチコントロール、たとえばTXTランチコントロールは、仮想マシンマネージャ(VMM:virtual machine manager)ランチャーが信頼に値することを確実にする。 Trusted boot usage may affect all stages of the boot flow and may be based on trusted hardware, also known as “roots-of-trust”. Trusted Execution Technology (TXT) is an example of a launch control and route of trust technology that can be used to implement trusted boot usage for virtual environments. With the help of the hardware root of trust, trusted boot use eliminates or reduces the likelihood that malware will disguise legitimate hardware for the upper layers. TXT implements a root of trust for measurement (RTM) for dynamic measurements to ensure that only the trusted environment is launched using a launch control policy. In other words, TXT may be the starting point in a series of integrity checks performed for various execution environments within the platform. Thus, TXT may provide a secure starting point in microcode. For example, various launch controls, such as the TXT launch control, ensure that a virtual machine manager (VMM) launcher is trustworthy.
VMMは、コンピュータが複数の実行環境をサポートすることを可能にするホストプログラムを含んでよい。たとえば、VMMは、単一の物理マシン(たとえばサーバ)を分割し、複数のオペレーティングシステムが同じCPU上でセキュアに実行され、CPU利用率を増加させることを可能にする手段をエミュレーションによって提供してよい。VMMは、VMを管理することができる。VMは、命令を物理マシンのように実行する、マシン(すなわちコンピュータ)のソフトウェア実装を含んでよい。 The VMM may include a host program that allows the computer to support multiple execution environments. For example, a VMM provides a means through emulation that divides a single physical machine (eg, a server) and allows multiple operating systems to run securely on the same CPU and increase CPU utilization. Good. The VMM can manage the VM. A VM may include a software implementation of a machine (ie, a computer) that executes instructions like a physical machine.
再びTXTランチコントロールに関して、そのようなランチコントロールは、後に続いてランチされるVMMインフラストラクチャ(たとえば仮想マシン(VM:virtual machine)、ネストにされたVMM、ネストにされたVM、およびオペレーティングシステム(OS:operating system)環境)も信頼に値することを確実にするわけではない。従って、ランチコントロールは、実際には単一のVMMをランチするために用いることができる。しかし、VMMが実行されると、TXTモデル固有レジスタ(MSR:model specific register)は、VMXルート(VMX−root)を用いるVMMがアクティブである間はTXTが呼び出されないように設定される。従って、ネストにされたVMMがランチされると、TXTは利用可能でなく(たとえばGETSEC(SENTER)コマンドは無効である)、ネストにされたVMMはセキュアにランチされない。このときVMおよびネストにされたVMMは、ランチコントロールポリシーを適用しないでロードされ、それによってセキュリティ侵害の機会の可能性が生まれる。
本発明の実施形態の特徴および利点は、添付の特許請求の範囲、以下の1つ以上の例示実施形態の詳細な記載、および対応する図面から自明となる。
With respect to TXT launch control again, such launch control may include a VMM infrastructure (eg, virtual machine (VM), nested VMM, nested VM) and operating system (OS) that is subsequently launched. : Operating system) environment) is not necessarily reliable. Thus, the launch control can actually be used to launch a single VMM. However, when the VMM is executed, the TXT model specific register (MSR) is set so that TXT is not invoked while the VMM using the VMX root (VMX-root) is active. Thus, when a nested VMM is launched, TXT is not available (eg, the GETSEC (SENTER) command is invalid) and the nested VMM is not securely launched. At this time, VMs and nested VMMs are loaded without applying the launch control policy, thereby creating a potential security breach opportunity.
Features and advantages of embodiments of the present invention will become apparent from the appended claims, the following detailed description of one or more exemplary embodiments, and the corresponding drawings.
以下の記載においては、多数の特定の詳細が示されるが、本発明の実施形態はこれらの特定の詳細を用いずに実施されてよい。本記載の理解が不明瞭にならないように、周知の回路、構造物および技法は詳しくは示されない。「実施形態」、「さまざまな実施形態」などは、そう記載される実施形態が特定の特徴、構造物または特性を含んでよいことを示すが、必ずしもすべての実施形態が特定の特徴、構造物または特性を含むわけではない。いくつかの実施形態が他の実施形態について記載された特徴の一部、すべてを有してよく、あるいはまったくもたなくてよい。「第1の」、「第2の」、「第3の」などは共通のオブジェクトを記載し、同様なオブジェクトの異なるインスタンスが参照されることを示す。そのような形容詞はそう記載されるオブジェクトが、時間的に、空間的に、順位的に、または他の任意の様式的に所定のシークエンスでなければならないことを意味しない。「接続された」は、要素が互いに物理的または電気的に直接接触していることを示してよく、「結合された」は、要素が互いに協力するかまたは相互作用するが、要素は物理的または電気的に直接接触していてもいなくてもよいことを示してよい。また、異なる図の中で同じまたは類似の部品を示すために類似の数字または同じ数字が用いられてよいが、そうすることは類似の数字または同じ数を含むすべての図が単一の実施形態または同じ実施形態を構成することを意味するわけではない。 In the following description, numerous specific details are set forth, but embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure an understanding of this description. “Embodiments”, “various embodiments” and the like indicate that the embodiments so described may include particular features, structures or characteristics, but not all embodiments may include particular features, structures. Or it does not include characteristics. Some embodiments may have some, all, or none of the features described for other embodiments. “First”, “second”, “third”, etc. describe common objects and indicate that different instances of similar objects are referenced. Such an adjective does not mean that the object so described must be in a predetermined sequence in time, space, order, or any other manner. “Connected” may indicate that the elements are in direct physical or electrical contact with each other, and “coupled” means that the elements cooperate or interact with each other, but the elements are physically Or it may indicate that it may or may not be in direct electrical contact. Also, similar numerals or the same numerals may be used to indicate the same or similar parts in different figures, but doing so does not restrict all figures containing similar numerals or the same number to a single embodiment. It does not mean that the same embodiment is constituted.
本発明の実施形態は、VMおよび/またはネストにされたVMMの認証されたランチを提供する。実施形態は、VMおよびネストにされたVMMのためのVMM保護されたランチコントロール機構を呼び出すインタフェースを用いてそのようにしてよい。インタフェースは、アーキテクチャとしてジェネリックであってよい。いくつかの実施形態は、VMおよびVMMを包含するように拡張されたTXTランチコントロールポリシーを用いてよい。 Embodiments of the present invention provide authenticated lunches of VMs and / or nested VMMs. Embodiments may do so using an interface that invokes a VMM protected launch control mechanism for VMs and nested VMMs. The interface may be generic as an architecture. Some embodiments may use a TXT launch control policy that has been extended to include VMs and VMMs.
図1は、本発明の実施形態の概略フローチャートを含む。図2は、本発明の実施形態のさまざまな側面の組織を示すブロック図を含む。図1および図2は、互いに関連させられて下記で考察されるが、各図の実施形態は必ずしも互いに一緒に機能するようには限定されない。 FIG. 1 includes a schematic flowchart of an embodiment of the present invention. FIG. 2 includes a block diagram illustrating the organization of various aspects of embodiments of the present invention. Although FIGS. 1 and 2 are discussed below in relation to each other, the embodiments of each figure are not necessarily limited to functioning together.
図2は組織図200を含む。簡潔には、組織図200は、イメージ201と、イメージ201に対応する代表ホワイトリストを有するランチコントロールポリシー211と、候補コードイメージ201をホワイトリスト211中の測定と対比して認証するコードを含む検証コードモジュール(たとえばランチコントロールモジュール(LCPM:launch control module))221と、の集まりを含む。組織図200は、下記でもっと十分に説明される。実施形態において、LCPMは、ルートVMM特権で実行される動的なモジュール式コードオブジェクトである。プラットフォーム構成レジスタ(PCR:platform configuration register)231がイメージ測定を記憶する。
FIG. 2 includes an
最初にルートVMM(VMM0)155がブートされる。このブートは、任意の数のセキュアなブート機構によって実装されたセキュアなブートであってよい。上記で取り上げられた1つのそのような機構はTXTランチコントロールを含む。TXTランチコントロールに関する情報は、http://software-intel-com/en-us/articles/intel-trusted-execution-technology-a-primer/, http://download-intel-com/technology/security/downloads/315168-pdfならびに他の一般に利用可能なロケーションにおいて最小限利用可能である。 First, the root VMM (VMM0) 155 is booted. This boot may be a secure boot implemented by any number of secure boot mechanisms. One such mechanism taken up above includes the TXT launch control. Information about TXT launch control can be found at http: // software-intel-com / en-us / articles / intel-trusted-execution-technology-a-primer /, http: // download-intel-com / technology / security / It is minimally available at downloads / 315168-pdf as well as other publicly available locations.
ルートVMM(VMM0)をセキュアにランチすることは、いくつかのアクションを含んでよい。TXT 226は、特定のイメージ、たとえばSINIT ACM 206が真正であることを確実にするランチコントロールポリシーとして動作してよい。SINIT ACMは、セキュアなブートプロセスにおいて用いられる認証されたコードモジュールに関係する。SINIT ACM 206の測定は、PCR 17(236)に記憶される。PCRは、セキュリティ関連情報の暗号ハッシュ(たとえばVMMのようなトラステッド実行環境によって実行されるコードおよびそれをランチするために用いられるローダコードのハッシュ)を含むトラステッドプラットフォームモジュール(TPM:trusted platform module)レジスタである。
Launching the root VMM (VMM0) securely may involve several actions.
VMM0のセキュアなランチ時に、ブロック225においてSINIT ACMを用いてLCP0 215がルートVMM0 205イメージと比較されてよい。LCP0 215およびSINIT ACM 225は、LCPM1、LCPM2、LCPM3 205イメージを認証するためにも用いられてよい。これらのイメージの一部は、下記で考察される後の段階(たとえばネストにされたVMMブート)において用いられてよい。これらの測定は、VMM0についてはPCR18に、LCPM1、LCPM2、LCPM3についてはPCR19、20、21にそれぞれ記憶される。
During a secure launch of VMMO,
少々横道に逸れると、ストレージのために用いられる正確なPCRが構成可能であり、他の実施形態においては変化してよい。たとえば、PCRアロケーション指針は、仕様に概略が記載されてよい。そのような仕様は、トラステッドコンピューティンググループ(TCG)PCクライアント仕様およびTPM仕様を含む。これらの仕様は、PCR17、18、19、20、および21を動的ルートオブトラスト(たとえばTXT)による使用のために予約する。PCR17は、SENTERによってACMを測定するために用いられてよい。ACMは、VMMランチャーを測定するためにPCR18を用いてよい。VMMランチャーは、VMMを測定するためにPCR18を用いてよく、任意選択としてPCR19を用いてよい。VMMはTPMを仮想化してよく、したがってVM(およびそれに関連付けられるLCPM)を測定するために他のPCRを用いてよい。VMMは、PCR20および21も利用可能であってよい。さらに、複数のLCPM測定が同じPCRに含まれてよい。したがって、PCRの使用は構成可能であり、実施形態の変化とともに変化してよい。
With a slight diversion, the exact PCR used for storage can be configured and may vary in other embodiments. For example, the PCR allocation guidelines may be outlined in the specification. Such specifications include the Trusted Computing Group (TCG) PC client specification and the TPM specification. These specifications reserve
図1に戻り、ブートストラップされたローダ、たとえばVM0 105がブロック110によって仮想ブートされる。ブロック115は、仮想マシンVM1 104(図2の要素204にある)のような実体(Entity)をブートするプロセスを開始する。(「実体」は、ネストにされたVMMでもあってよいが、この例においては説明を目的としてVM1が用いられる。)VM1 104がランチされると、ブートストラップローダVM0 105は命令、たとえばVM1 104をランチするLCPM1 124(図2の224)に至るリーフを指定するVMFUNCインタフェース命令を呼び出す。VMFUNCインタフェースは、割り込みを防止するかまたはVMコントロールビットをセットしてよく、したがってLCPM1 224は、測定プロセスの割り込みをまったく受けずに実行することが許可される。このインタフェースは、システム上の他のプロセッサも静止させてよく、その結果、測定は他のプロセッサから干渉されずに行われることができる。さらに、VMFUNCは、たとえばTXTの使用にもとづいてマイクロコードが完全性チェックおよび完全性チェッキングコントロールを実行する安全な場所と既にみなされることを承認してよい。VMFUNCは下記でさらに考察される。
Returning to FIG. 1, a bootstrapped loader, such as VM 0 105, is virtual booted by
したがって、実行管理は、ブロック130によってLCPM1 124(図2の要素224)に渡される。実施形態において、LCPM1はVM1上で実行されるVMとして動作する。LCPM1 124は、メモリ中のVM1 104の位置を特定し、LCP1 114(図2の要素214)にもとづいてLCPM1のために意図される完全性測定を実行し、計算された測定がLCP1のポリシーの1つによって受け入れられることを検証する。LCPはホワイトリストを含んでよく、ホワイトリストはおそらくはトラステッドサーバに確保された、予測されるソフトウェアイメージを記載する。詳しくは、実施形態において、LCPM1はLCP1をメモリ、たとえば拡張ページテーブル(EPT:extended page table)に配置された保護メモリに読み込む。EPTは、下記でVMFUNCインタフェースに関してもっと詳しく考察される。
Accordingly, execution management is passed by
ブロック140において、VM1の測定はPCR(たとえばPCR8)234に拡張される。PCR234はTPM145または他のそのようなハードウェア証明モジュールに含まれる。TPMは、セキュアなストレージおよびセキュアなレポーティングに関連付けられるさまざまなセキュリティ機能を実装するセキュリティコプロセッサである。TPMのような暗号プロセッサに関する詳細は、少なくともサンディープ・バジカ(Sundeep Bajikar)による「ノートブックPCのトラステッドプラットフォームモジュール(TPM)利用セキュリティ 白書("Trusted Platform Module (TPM) based Security on Notebook PCs − White Paper")」、http://www-intel-com/design/mobile/platform/downloads/Trusted_Platform_Module_White_Paper-pdfにある。ブロック160において、PCRログが更新される。実施形態は、VMFUNC、TPM等を用いる動作に限定されないが、そのような要素は例を示す目的のため用いられているだけである。次に、ルートVMM 155(図2の要素205に含まれる)による実行のためにVM1がスケジュールされる。ブロック165においてVMFUNC(エグジット)が実行される。
At
上記のプロセス実施形態(図1および図2に関する)は、説明を目的として用いられたVM1の代わりに、ネストにされたVMMにも適用可能である。この趣旨に沿って、図2のブロック204にはVM(たとえばVM1)とネストにされたVMMとの両方が含まれる。言い換えると、図1は、VM1のセキュアなブートを記載しているが、ネストにされたVMMをセキュアにブートするために同じプロセスを用いることができるであろう。 The above process embodiment (with respect to FIGS. 1 and 2) is applicable to nested VMMs instead of VM1 used for illustration purposes. In line with this, block 204 of FIG. 2 includes both a VM (eg, VM1) and a nested VMM. In other words, FIG. 1 describes a secure boot of VM1, but the same process could be used to securely boot a nested VMM.
図2に示されるように、追加の仮想化レイヤがセキュアにされてよい。たとえば、ネストにされたVM203がLCPM2 223によって測定され、LCP2 213に含まれる測定と比較されてよい。測定は、PCR233によって記憶されてよい。さらに、LCPM3 221によって、ドライバ、ライブラリおよび実行可能コード202が測定され、LCP3 212に含まれる測定と比較されてよい。測定は、PCR232によって記憶されてよい。
As shown in FIG. 2, an additional virtualization layer may be secured. For example, nested
ネストにされたVMに関するより具体的な例として、ブートストラップされたローダVM0 105がブロック110によって仮想的にブートされる。ネストにされたVM2 203をブートするプロセスをブロック115が開始する。VM2 203がランチされると、ブートストラップローダVM0 105は、命令、たとえば、VM2 203をランチするLCPM2 223に至るリーフを指定するVMFUNCインタフェース命令を呼び出す。ブロック130によって、実行管理はLCPM2 223に渡される。LCPM2 223はメモリ内のVM2 203の位置を特定し、LCPM2のために意図されたLCP2 213にもとづいて完全性測定を実行し、計算された測定がLCP2内のポリシーの1つによって受け入れられることを検証する。ブロック140において、VM2の測定は、TPMに含まれるPCR233に拡張される。ブロック160において、PCRログが更新される。次に、ブロック155において、VM2の実行がルートVMM155によってスケジュールされる。ブロック165において、VMFUNC(エグジット)が実行される。
As a more specific example for a nested VM, bootstrapped loader VM0 105 is virtually booted by
すぐ上で(図1および図2に関して)記載されたプロセス実施形態は、別の実体内にさらにネストにされた、ネストにされたVMMにも適用可能である。 The process embodiments described immediately above (with respect to FIGS. 1 and 2) are also applicable to nested VMMs that are further nested within another entity.
したがって、ブロック110は、LCPM(225)をランチするルートVMM(105)に通じる。LCPMは、保護されたメモリにロードされるVMのためのイメージを用いてLCPを評価するためにある。同様に、ネストにされたVMMのためのLCPMも(これは図1には特に示されていないが)ロードされてよい。ルートVMM LCPは、LCPMの完全性を検証するために用いられる。さらに、VMまたはネストにされたVMMは、VMまたはネストにされたVMMが、セキュアにブートされたルートVMMであってもルートVMMからランチされるときより、セキュアにランチされる。その代わり、ルートVMMは直接依存されず(すなわちバイパスされ)、その代わり、VMまたはネストにされたVMMをブートするためにTXTハードウェア利用シークエンス(または他のハードウェア証明モジュール利用方法)が依存される。一実施形態において、通常はルートVMMとともに機能するように限定されるランチコントロール機構、ツールおよびインフラストラクチャがVMおよびVMMとともに働くように拡張される。たとえば、次に、ランチコントロールがTXTおよび同様なセキュリティ技法を超えて拡張される。実施形態は、たとえばTXTランチコントロールおよび/またはBIOSトラステッドブート機構によってキックオフされたホワイトリストチェッキングプロセスをネストにされたVMMおよびVM環境に続行する。トラステッドシステムブート、トラステッドルートVMMブート、およびネストにされたトラステッドVMMおよび/またはVMブートにもとづいて、実施形態は、さかのぼってルートオブトラストに達する途切れのないチェーンオブトラストを有するトラステッドブローカーサービスを提供してよい。このチェーンオブトラストは、たとえばPCRログの内容にもとづいて構築されてよい。 Thus, block 110 leads to a root VMM (105) that launches LCPM (225). LCPM is for evaluating LCP with images for VMs loaded into protected memory. Similarly, an LCPM for a nested VMM (which is not specifically shown in FIG. 1) may also be loaded. The root VMM LCP is used to verify the integrity of the LCPM. Further, the VM or nested VMM is launched more securely than when the VM or nested VMM is launched from the root VMM, even if it is a securely booted root VMM. Instead, the root VMM is not directly dependent (ie, bypassed), but instead depends on the TXT hardware usage sequence (or other hardware certification module usage method) to boot the VM or nested VMM. The In one embodiment, launch control mechanisms, tools and infrastructure that are normally limited to work with the root VMM are extended to work with VMs and VMMs. For example, launch control is then extended beyond TXT and similar security techniques. Embodiments continue the whitelist checking process kicked off by, for example, TXT launch control and / or BIOS trusted boot mechanism to nested VMM and VM environments. Based on the trusted system boot, the trusted root VMM boot, and the nested trusted VMM and / or VM boot, the embodiments provide a trusted broker service with an unbroken chain of trust that goes back to the root of trust. It's okay. This chain of trust may be constructed based on the contents of the PCR log, for example.
VMFUNC命令に関して、通常、VMおよびネストにされたVMMは、ランチコントロールポリシーを適用されずにロードされる。さらに、VMMベンダーは、ランチコントロールのための普通のアーキテクチャインタフェースに依存しない。しかし、本発明のさまざまな実施形態では、ルートVMMは、上記のように、ランチコントロールポリシーモジュールを呼び出すVMFUNCコール(またはその機能均等物)を用いることができる。LCPMは、LCPポリシーに含まれるホワイトリストをどのようにパースし、検証するかを理解している。LCPポリシーは、ロードされるイメージの種類(たとえばVMまたはネストにされたVMM)に固有であってよい。LCPMは、ルートVMMを適切に保護して実行される。VMFUNCコールは、VMおよびネストにされたVMMがベンダーに依存しない確実な方法によって呼び出されることを確実にし、これによって、LCPオーサーはVMMおよびVMのさまざまなベンダー実装を網羅するかまたはさまざまなベンダー実装にわたって確実に機能するLCPを構築することができる。したがって、VMMベンダーは、ルートVMMまたはネストにされたVMMのどちらかとして機能するVMMのために、顕著に異なる製品/装置の最小在庫管理単位(SKU:stock keeping unit)を維持しなくてよい。 With respect to the VMFUNC instruction, normally VMs and nested VMMs are loaded without applying the launch control policy. Furthermore, VMM vendors do not rely on the usual architectural interface for launch control. However, in various embodiments of the present invention, the root VMM may use a VMFUNC call (or its functional equivalent) that invokes the launch control policy module, as described above. LCPM understands how to parse and validate whitelists included in LCP policies. The LCP policy may be specific to the type of image being loaded (eg, VM or nested VMM). LCPM is performed with the root VMM properly protected. VMFUNC calls ensure that VMs and nested VMMs are invoked in a vendor-independent manner, so that LCP authors can cover different vendor implementations of VMM and VMs, or different vendor implementations LCPs that function reliably over time can be constructed. Thus, the VMM vendor does not have to maintain a significantly different product / device stock keeping unit (SKU) for a VMM that functions as either a root VMM or a nested VMM.
さらに、VMFUNCに関して、VMFUNCは、EPTメモリ保護を用いるアーキテクチャインタフェースである。EPTは、メモリ管理ユニット(MMU:memory management unit)のための仮想化技術である。この特徴がアクティブであるとき、普通のIA−32ページテーブル(コントロールレジスタCR3によって参照される)は、線形アドレスからゲスト物理アドレスに翻訳される。別個の組のページテーブル(すなわちEPTテーブル)は、ゲスト物理アドレスからメモリにアクセスするために用いられるホスト物理アドレスに翻訳される。その結果、ゲストソフトウェアがそれ自体のIA−32ページテーブルを変更し、ページフォールトを直接取り扱うことが可能になり得る。これによって、EPTを用いない仮想化オーバーヘッドの主なソースであるページテーブル仮想化と関連付けられたVMエグジットをVMMが回避することが可能になる。VMFUNCは、たとえばEPTを用いてLCP1(114)およびLCPM1(124)を分離することによってEPTを利用する。その際に、LCPM1は、VMFUNCエントリポイントの外部に由来する書き込み動作から保護される。そのとき、測定は、TPM内に含まれるレジスタに記憶されることができる。さらに、EPTは、特定のハードウェアスレッド上だけでアクティブであってよく、したがって、他のハードウェアスレッド上で実行され得る他のソフトウェアがLCP1の測定を不正に変更するか又は妨げることを許さない。 Furthermore, with respect to VMFUNC, VMFUNC is an architectural interface that uses EPT memory protection. EPT is a virtualization technology for a memory management unit (MMU). When this feature is active, the normal IA-32 page table (referenced by control register CR3) is translated from a linear address to a guest physical address. A separate set of page tables (ie, EPT tables) are translated from guest physical addresses to host physical addresses that are used to access memory. As a result, it may be possible for guest software to modify its own IA-32 page table and handle page faults directly. This allows the VMM to avoid the VM exit associated with page table virtualization, which is the main source of virtualization overhead without using EPT. VMFUNC utilizes EPT by separating LCP1 (114) and LCPM1 (124) using, for example, EPT. In doing so, LCPM1 is protected from write operations originating from outside the VMFUNC entry point. The measurement can then be stored in a register included in the TPM. Furthermore, the EPT may be active only on a particular hardware thread, and therefore does not allow other software that can run on other hardware threads to tamper with or prevent LCP1 measurements. .
実施形態において、EPTは、LCPMのためのメモリ内の境界を指定するために用いられてよい。VMがロードされるときにLCPMコードを再チェックする(すべてのVMMコードをチェックすることなく)と有利なことがある。たとえばLCPMコードはポリシーエンフォースメントルールを固有に実装するからである。このチェックは、VMMコードを再ロードしない。その代わりに、チェックはインメモリチェックである(たとえばEPT内のメモリページが再ハッシュされ、インメモリイメージに対応するホワイトリストと比較される)。これらの再測定のためにPCR19、20、21が用いられ得る。それらのPCRは(PCR18に含まれてよい)VMMの全測定を含まないからである。
In embodiments, EPT may be used to specify boundaries in memory for LCPM. It may be advantageous to recheck the LCPM code when the VM is loaded (without checking all VMM code). This is because, for example, LCPM code uniquely implements policy enforcement rules. This check does not reload the VMM code. Instead, the check is an in-memory check (eg, a memory page in the EPT is rehashed and compared to a whitelist corresponding to the in-memory image).
より詳しくは、実施形態において、特別なプロパティおよび/または用途を有するメモリページの群を定義するためにEPTが用いられる。この実施形態は、LCPM(たとえばコード)およびLCP(たとえばデータ)機能を実装するVMMコードおよびデータページのサブセットを構築するためにEPTを用いる。VMFUNCが制御をVMMに向けると、LCPMを含むEPTを検証するためにVMFUNCの新しいリーフが用いられることができ、LCPページは最初にランチされてから変化していない。実施形態は、これをアドレス範囲に類似した方法で実装してよい。LCPMページは、それらが移動されず、長くされず、および/または短くされていないことを確実とするためにチェック/検証されてよい。完全性ポリシーを強制するためにVMFUNCが用いられると、予測されるLCPMおよびLCP測定は、新しいリーフへのパラメータとしてVMFUNCに渡されることができる。次に、VMFUNCは、LCPMコードに実行を渡す前にEPT測定を比較することができる。VMFUNCは、比較が一致しなければフォールトを示してよい。 More particularly, in an embodiment, EPT is used to define groups of memory pages that have special properties and / or uses. This embodiment uses EPT to build a subset of VMM code and data pages that implement LCPM (eg, code) and LCP (eg, data) functions. When VMFUNC directs control to the VMM, the VMFUNC's new leaf can be used to validate the EPT containing the LCPM, and the LCP page has not changed since it was first launched. Embodiments may implement this in a manner similar to address ranges. LCPM pages may be checked / verified to ensure that they have not been moved, lengthened, and / or shortened. When VMFUNC is used to enforce the integrity policy, the predicted LCPM and LCP measurements can be passed to VMFUNC as parameters to the new leaf. The VMFUNC can then compare the EPT measurements before passing execution to the LCPM code. VMFUNC may indicate a fault if the comparison does not match.
実施形態において、ルートVMM機能は、VMFUNCの呼出しがRing0において行われ、LCPMの実行がRing1において行われるように、CPUリング構造にしたがって配分されてよい。VMM機能の残りは、Ring2およびRing3において実装されることができる。この実装によって、ハードウェア機構がLCPMおよびVMFUNC呼出しを保護/堅固化することが可能になる。LCPMをサポートするためのVMFUNCリーフは、この特定のリーフがring0においてゲストVMMによってだけ呼び出されることができるように強制してよい。実施形態において、ルートVMMはTXTを用いるであろう。たとえば、VMM/VMMランチャーをランチするためにTXTが用いられるであろう。ランチされたら、ゲストをランチするためにVMM内のLCPMが用いられるであろう。したがって、リングは、ランチ機能をVMMおよびVMMインフラストラクチャ内のセキュリティに関連しない他の機能からさらに分離し、孤立させるために用いられることができるであろう。 In an embodiment, the root VMM function may be distributed according to the CPU ring structure such that a VMFUNC call is made at Ring0 and an LCPM execution is made at Ring1. The rest of the VMM functionality can be implemented in Ring2 and Ring3. This implementation allows the hardware mechanism to protect / harden LCPM and VMFUNC calls. The VMFUNC leaf to support LCPM may force this particular leaf to be invoked only by the guest VMM at ring0. In an embodiment, the root VMM will use TXT. For example, TXT may be used to launch a VMM / VMM launcher. Once lunched, the LCPM in the VMM will be used to lunch the guest. Thus, the ring could be used to further isolate and isolate the launch function from the VMM and other non-security related functions within the VMM infrastructure.
実施形態は、検証されたブート環境および測定されたブート環境を含むいくつかの環境に適している。 Embodiments are suitable for several environments including verified boot environments and measured boot environments.
検証されたブートは、予測されるソフトウェアイメージを記載するホワイトリストをトラステッドサーバから受け取る。クライアントプラットフォームのトラステッドコンポーネントは、実行される前のソフトウェアイメージを検査し、ホワイトリストと比較する。一致すれば、コンポーネントは実行することを許可される。一致しなければ、修復アクションが実行される。この動作を行うコンポーネントは、ときに検証用ルートオブトラストと呼ばれる。これは、ハードウェア証明モジュール(たとえばTPM)を必要としないことがある。 The verified boot receives a white list from the trusted server describing the expected software image. The trusted component of the client platform examines the software image before execution and compares it with the whitelist. If there is a match, the component is allowed to execute. If they do not match, a repair action is performed. A component that performs this operation is sometimes referred to as a verification route of trust. This may not require a hardware certification module (eg, TPM).
しかし、測定されたブートは、実行される前のソフトウェアイメージを検査し、セキュアなストレージロケーションに保存する。測定されたブートは、ブートを制約するかまたは変化させるホワイトリストを有さなくてよい。その代わりに、ホワイトリストは、クライアントがアクセスすることを望むリソースをホストするサーバに保持される。サーバがアクセスを許可する前提条件として、ソフトウェアの完全性レポートがサーバに送達される。サーバへのレポートの提示は、ときに証明(Attestation)と呼ばれる。サーバは、クライアントが顕著なリスクをもたらすかを判断するために証明レポートをホワイトリストと比較する。クライアントがリスクをもたらすなら、ネットワーク接続は閉じられる。これは、ハードウェア証明モジュール(たとえばTPM)を利用してよい。 However, the measured boot examines the software image before execution and saves it in a secure storage location. The measured boot may not have a whitelist that constrains or changes the boot. Instead, the whitelist is maintained on a server that hosts the resources that the client wishes to access. As a prerequisite for the server to grant access, a software integrity report is delivered to the server. Presentation of a report to the server is sometimes called attestation. The server compares the certification report with the whitelist to determine if the client poses a significant risk. If the client poses a risk, the network connection is closed. This may utilize a hardware certification module (eg, TPM).
さらに詳しくは、さまざまな実施形態において、検証されたブートは完全性ポリシーを直接強制する(すなわち、完全性ポリシーを満たさないコードの実行を妨げてよい)。しかし、測定されたブートは完全性ポリシーを満たさないコードの実行を可能にしてよい。たとえば、完全性ポリシーは実際にはリモートサーバにあってよく、クライアントに知られていないことがあるからである。したがって、クライアントは測定をセキュアに記憶(たとえばTPM PCRに)してよく、測定は、後で「引用され」、「証明」の一部としてサーバに送達される。サーバは、証明において見いだされる測定をホワイトリストのそのローカルコピー上の測定と比較することができる。ネットワーク接続を切断することによって、または更新サービスがクライアント(たとえばPC)を再構成しようとする修復ネットワークにクライアントを配置することによって、エンフォースメントはサーバにより適用されることができる。 More particularly, in various embodiments, a verified boot directly enforces an integrity policy (ie, may prevent execution of code that does not meet the integrity policy). However, measured boot may allow execution of code that does not meet the integrity policy. For example, the integrity policy may actually reside on the remote server and may not be known to the client. Thus, the client may securely store the measurement (eg, in a TPM PCR) and the measurement is later “quoted” and delivered to the server as part of the “proof”. The server can compare the measurements found in the proof with the measurements on its local copy of the whitelist. Enforcement can be applied by the server by disconnecting the network connection or by placing the client in a remediation network where the update service attempts to reconfigure the client (eg, PC).
したがって、実施形態は、第1のVMMをランチし、第2のVMMのランチを認証し、第1のVMMの内部で第2のVMMをネストにする。ネストにされたVMMの認証されたブートの代わりに、またはネストにされたVMMの認証されたブートに加えて、実施形態は、第1のVMのランチを認証し、第1のVMM(たとえばルートVMM)またはネストにされたVMMを用いて第1のVMを管理してよい。直前のシナリオのうちのどちらかにおいて、ルートVMM、または別のVMMをホストするVMM、あるいはVM、そのルートVMMまたはホストVMMは、リエントラントでないセキュアなブートによって(たとえばTXTランチによって)ブートされてよい。 Accordingly, embodiments launch the first VMM, authenticate the launch of the second VMM, and nest the second VMM within the first VMM. In place of or in addition to the authenticated boot of the nested VMM, in addition to the authenticated boot of the nested VMM, the embodiment authenticates the launch of the first VM and the first VMM (eg, root VMM) or nested VMMs may be used to manage the first VM. In either of the previous scenarios, the root VMM, or the VMM that hosts another VMM, or the VM, its root VMM or host VMM may be booted by a non-reentrant secure boot (eg, by a TXT launch).
実施形態は、(a)第2のLCPMを呼び出すことと、(b)ハードウェアセキュリティ証明モジュール(例えばTPMであるがこれに限定されない)を用いることとの両方を行いながらルートVMMを迂回することによって第2のVMMのランチを認証してよい。 Embodiments bypass the root VMM while both (a) invoking the second LCPM and (b) using a hardware security certification module (e.g., but not limited to a TPM). To authenticate the second VMM lunch.
ルートVMMを「迂回する」ための例に関して、ルートVMMは、ネストにされたVMMをあたかもVMであるかのように処理してよい。したがって、VMとVMMとの両方のランチコントロールは、ルートVMMから見れば同様であろう。ネストにされたVMMに焦点を合わせる。ネストにされたVMMが実行されると、それはロードするVMを特定する。ネストにされたVMMを測定するためのLCPMコードは、ネストにされたVMMページ範囲に含まれる。したがって、VMFUNCは、ネストにされたVMMを記載するEPTがルートVMMを記載するEPTと異なることを確実にしてよい。従って、ルートVMMが受諾(opt−in)すれば、ルートVMMは、この動作についてはある程度迂回されることができる。これは、たとえばEPT使用ならびにVMFUNCおよびネストにされたVMMをブートするためのブートストラップされたVM0(図1参照)の使用にもとづいてよい。 With respect to the example for “bypassing” the root VMM, the root VMM may process the nested VMM as if it were a VM. Thus, both VM and VMM launch controls will be similar from the root VMM. Focus on the nested VMM. When a nested VMM is executed, it identifies the VM to load. The LCPM code for measuring the nested VMM is included in the nested VMM page range. Thus, VMFUNC may ensure that the EPT that describes the nested VMM is different from the EPT that describes the root VMM. Thus, if the root VMM accepts (opt-in), the root VMM can be circumvented to some extent for this operation. This may be based, for example, on the use of EPT and the use of bootstrapped VM0 (see FIG. 1) to boot VMFUNC and nested VMM.
実施形態は、ネストにされた第2のVMMと関連付けられる第2のLCPを第2のLCPMによって評価してよい。実施形態は、第2のLCPMによって第2のVMMの完全性測定を行い、第2のLCPによって測定を認証してよい。実施形態は、測定をTPMまたは他のハードウェア証明モジュールに含まれるPCRに拡張し、測定をPCRに拡張することにもとづいてログを更新してよい。 Embodiments may evaluate a second LCP associated with a nested second VMM with a second LCPM. Embodiments may perform an integrity measurement of the second VMM with the second LCPM and authenticate the measurement with the second LCP. Embodiments may extend the measurement to a PCR included in the TPM or other hardware certification module and update the log based on extending the measurement to the PCR.
実施形態は、第2のLCPMを保護されたメモリ(たとえばEPT)にロードし、第2のLCPMを実行してよく、第2のLCPMはルートVMM特権を有する。実施形態は、システムが第2のLCPに含まれるホワイトリストを第2のLCPMによって認証することを可能にしてよく、第2のLCPはVMMに固有であるがVMに固有ではない。実施形態は、第1のVMMと関連付けられる第1のLCPにもとづいて第1のVMMをブートしながら第2のLCPも認証してよい。さらに、実施形態は、第2のVMMのために特に構成されたわけではなく(例えばアーキテクチャ的に中立またはベンダー中立)、VMMとネストにされたVMMとの両方とインタフェース接続するように構成されたセキュアなインタフェースによって、第2のVMMのランチを認証してよい。 Embodiments may load the second LCPM into protected memory (eg, EPT) and execute the second LCPM, which has the root VMM privilege. Embodiments may allow the system to authenticate the white list contained in the second LCP with the second LCPM, which is specific to the VMM but not specific to the VM. Embodiments may also authenticate the second LCP while booting the first VMM based on the first LCP associated with the first VMM. Further, embodiments are not specifically configured for the second VMM (eg, architecturally or vendor-neutral), but are securely configured to interface with both the VMM and the nested VMM. The second VMM launch may be authenticated by a simple interface.
実施形態は、多数の異なるシステム型において実装されてよい。次に図3を参照すると、本発明の実施形態によるシステムのブロック図が示される。マルチプロセッサシステム500は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続550によって結合された第1のプロセッサ570および第2のプロセッサ580を含む。プロセッサ570および580のそれぞれは、マルチコアプロセッサであってよい。用語「プロセッサ」は、レジスタおよび/またはメモリからの電子的なデータを処理してその電子的なデータをレジスタおよび/またはメモリに記憶されてよい他の電子的なデータに変換する任意のデバイスまたはデバイスの一部を指してよい。第1のプロセッサ570は、メモリコントローラハブ(MCH:memory controller hub)およびポイントツーポイント(P−P:point−to−point)インタフェースを含んでよい。同様に、第2のプロセッサ580は、MCHおよびP−Pインタフェースを含んでよい。MCHは、プロセッサをそれぞれのメモリ、すなわちメモリ532およびメモリ534と結合させてよい。メモリ532およびメモリ534は、それぞれのプロセッサに局所的に取り付けられたメインメモリ(たとえばダイナミックランダムアクセスメモリ(DRAM:dynamic random access memory))の一部であってよい。第1のプロセッサ570および第2のプロセッサ580は、P−P相互接続によってチップセット590にそれぞれ結合されてよい。チップセット590は、たとえばRSAアクセラレータ、乱数発生器、キー、証明書、PCR、スタティックRAM、フラッシュメモリ、モノトニックカウンタ、デジタルシグネチャーアルゴリズム等を含むTPMまたは暗号プロセッサを含んでよい。そのようなチップセットの一例に関する詳細は、少なくともhttp://www-intel-com/design/mobile/platform/downloads/Trusted_Platform_Module_White_Paper-pdfにおいて入手可能である。実施形態は、いずれか一種類のセキュリティエンジンまたは暗号プロセッサとともに機能することに限定されるわけではなく、その代わりに、さまざまなベンダーからのさまざまなアーキテクチャを有するさまざまな離散型および/または統合型セキュリティエンジンとともに機能してよい。チップセット590は、P−Pインタフェースを含んでよい。さらに、チップセット590は、インタフェースによって第1のバス516に結合されてよい。第1のバス516を第2のバス520に結合させるバスブリッジ518とともに、さまざまな入力/出力(I/O:input/output)デバイス514が第1のバス516に結合されてよい。たとえば一実施形態において、キーボード/マウス522、通信デバイス526、および、コード530を含んでよいディスクドライブまたは他のマスストレージデバイスのようなデータストレージユニット528、を含むさまざまなデバイスが第2のバス520に結合されてよい。さらに、オーディオI/O524が第2のバス520に結合されてよい。
Embodiments may be implemented in a number of different system types. Referring now to FIG. 3, a block diagram of a system according to an embodiment of the present invention is shown.
実施形態は、コードに実装されてよく、命令を記憶してある非一時的ストレージ媒体に記憶されてよい。命令は、命令を実行するようにシステムをプログラムするために用いられることができる。ストレージ媒体は、フロッピー(登録商標)ディスク、光ディスク、ソリッドステートドライブ(SSD:solid state drive)、読み取り専用コンパクトディスク(CD−ROM:compact disk read−only memory)、繰り返し書き込み可能コンパクトディスク(CD−RW:compact disk rewritable)、および光磁気ディスクを含む任意の種類のディスク、半導体デバイス、たとえば読み取り専用メモリ(ROM:read−only memory)、ランダムアクセスメモリ(RAM:random access memory)、たとえばダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、消去可能なプログラマブル読み取り専用メモリ(EPROM:erasable programmable read−only memory)、フラッシュメモリ、電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM:electrically erasable programmable read−only memory)、磁気カードまたは光カード、あるいは電子的な命令を記憶するのに適している任意の他の種類の媒体を含んでよいが、これに限定されるものではない。本発明の実施形態は、データ、たとえば命令、ファンクション、手続き(procedure)、データ構造、アプリケーションプログラム、構成セッティング、コード等への参照とともに本明細書に記載されてよい。データがマシンによってアクセスされると、マシンは、本明細書により詳しく記載されるように、タスクを実行し、抽象データ型を定義し、低レベルハードウェアコンテキストを規定し、および/または他の動作を実行することによって応答してよい。データは、揮発性および/または不揮発性データストレージに記憶されてよい。用語「コード」または「プログラム」は、アプリケーション、ドライバ、プロセス、ルーチン、メソッド、モジュール、およびサブプログラムを含む広い範囲のコンポーネントおよびコンストラクトを包含し、処理システムによって実行されると所望の1または複数の動作を実行する命令のいずれかの集まりを指してよい。さらに、代替実施形態は、開示された動作のすべてより数の少ない動作を用いるプロセス、追加の動作を用いるプロセス、同じ動作群を異なる順番で用いるプロセス、および本明細書に開示される個々の動作が組み合わされるか、再分割されるか、または他の変化を施されるプロセスを含んでよい。コンポーネントまたはモジュールは、望みに応じて組み合わされるかまたは分離され、デバイスの1つ以上の部分に配置されてよい。 Embodiments may be implemented in code and stored in a non-transitory storage medium that stores instructions. The instructions can be used to program the system to execute the instructions. The storage medium includes a floppy (registered trademark) disk, an optical disk, a solid state drive (SSD), a read-only compact disk (CD-ROM), a compact writable compact disk (CD-RW). : Compact disk rewriteable), and any type of disk, including magneto-optical disks, semiconductor devices such as read-only memory (ROM), random access memory (RAM), such as dynamic random access memory (DRAM), static random access memory (SRAM: static r) and erasable programmable read-only memory (EPROM), flash memory, electrically erasable programmable read-only memory (EEPROM), and electrically erasable programmable read-only memory (EEPROM) Or may include, but is not limited to, an optical card, or any other type of medium suitable for storing electronic instructions. Embodiments of the present invention may be described herein with reference to data, such as instructions, functions, procedures, data structures, application programs, configuration settings, code, and the like. When data is accessed by a machine, the machine performs tasks, defines abstract data types, defines low-level hardware contexts, and / or other operations as described in more detail herein. You may respond by performing: Data may be stored in volatile and / or non-volatile data storage. The term “code” or “program” encompasses a wide range of components and constructs, including applications, drivers, processes, routines, methods, modules, and subprograms, and, when executed by a processing system, the desired one or more It may refer to any collection of instructions that perform an action. Further, alternative embodiments include processes that use fewer than all of the disclosed actions, processes that use additional actions, processes that use the same group of actions in a different order, and individual actions disclosed herein. May be combined, subdivided, or subjected to other changes. Components or modules may be combined or separated as desired and placed in one or more portions of the device.
本発明を、限られた数の実施形態に関して記載してきたが、実施形態からの多数の変更形および変化形が当業者には自明である。添付の特許請求の範囲はそのようなすべての変更形および変化形を本発明の真の技術思想および適用範囲に属するとして包含するものとする。
本実施形態の例を下記の各項目として示す。
[項目1]
実行されるとシステムが、
第1の仮想マシンマネージャ(VMM)をランチすること、
第2のVMMのランチを認証すること、および、
前記第1のVMMの内部で前記第2のVMMをネストにすること、
ができるようにする命令を含むプログラム。
[項目2]
前記システムが、
第1の仮想マシン(VM)のランチを認証すること、および
前記第1のVMMおよび前記第2のVMMの1つを用いて前記第1のVMを管理すること、 ができるようにする命令を含む、項目1に記載のプログラム。
[項目3]
前記第1のVMMは、リエントラントでないセキュアなブートによってランチされるルートVMMである、項目1又は2に記載のプログラム。
[項目4]
前記第2のVMMの前記ランチを認証することは、(a)第2のランチコントロールポリシーモジュール(LCPM)を呼び出すことと、(b)ハードウェアセキュリティ証明モジュールを用いることとの両方を行いながら、前記第1のVMMを迂回することを含む、項目1から3のいずれか1項に記載のプログラム。
[項目5]
前記ハードウェアセキュリティ証明モジュールは、トラステッドプラットフォームモジュール(TPM)を含む、項目4に記載のプログラム。
[項目6]
前記システムが、前記第2のVMMと関連付けられる第2のランチコントロールポリシー(LCP)を第2のランチコントロールポリシーモジュール(LCPM)によって評価することができるようにする命令を含む、項目1から5のいずれか1項に記載のプログラム。
[項目7]
前記システムが、前記第2のLCPMによって前記第2のVMMの完全性測定を実行し、前記第2のLCPによって前記測定を認証することができるようにする命令を含む、項目6に記載のプログラム。
[項目8]
前記システムが、
前記測定をトラステッドプラットフォームモジュール(TPM)に含まれるプラットフォーム構成レジスタ(PCR)に拡張すること、および
前記測定を前記PCRに拡張することにもとづいてログを更新すること
ができるようにする命令を含む、項目7に記載のプログラム。
[項目9]
前記システムが、前記第2のLCPMを保護されたメモリにロードすること、および前記第2のLCPMを実行することができるようにする命令を含み、前記第2のLCPMはルートVMM特権を有する、項目6に記載のプログラム。
[項目10]
前記システムが、前記第2のLCPに含まれるホワイトリストを前記第2のLCPMによって認証することができるようにする命令を含み、前記第2のLCPはVMMに固有であるがVMに固有でない、項目6に記載のプログラム。
[項目11]
前記システムが、前記第1のVMMと関連付けられる第1のLCPにもとづいて前記第1のVMMをブートしながら、前記第2のLCPを認証することができるようにする命令を含む、項目6に記載のプログラム。
[項目12]
前記システムが、特に前記第2のVMMのために構成されてはおらずかつVMMとネストにされたVMMとの両方とインタフェース接続するように構成されたセキュアなインタフェースによって、前記第2のVMMの前記ランチを認証することができるようにする命令を含む、項目1から11のいずれか1項に記載のプログラム。
[項目13]
第1の仮想マシンマネージャ(VMM)をランチすること、
第2のVMMのランチを認証すること、および、
前記第1のVMMの内部で前記第2のVMMをネストにすること
を含む方法。
[項目14]
第1の仮想マシン(VM)のランチを認証すること、および
前記第1のVMMおよび前記第2のVMMの1つを用いて前記第1のVMを管理すること、
を含む、項目13に記載の方法。
[項目15]
前記第2のVMMの前記ランチを認証することは、(a)第2のランチコントロールポリシーモジュール(LCPM)を呼び出すことと、(b)ハードウェアセキュリティ証明モジュールを用いることとの両方を行いながら、前記第1のVMMを迂回することを含む、項目13又は14に記載の方法。
[項目16]
前記第2のVMMと関連付けられる第2のランチコントロールポリシー(LCP)を第2のランチコントロールポリシーモジュール(LCPM)によって評価することを含む、項目13から15のいずれか1項に記載の方法。
[項目17]
前記第2のLCPMによって前記第2のVMMの完全性測定を実行すること、および前記第2のLCPによって前記測定を認証することを含む、項目16に記載の方法。
[項目18]
メモリ、及び、
前記メモリに結合され、(a)第1の仮想マシンマネージャ(VMM)をランチし、(b)第2のVMMのランチを認証し、(c)前記第1のVMMの内部で前記第2のVMMをネストにするプロセッサ、
を含むシステム。
[項目19]
前記プロセッサは、
第1の仮想マシン(VM)のランチを認証し、
前記第1のVMMおよび前記第2のVMMの1つを用いて前記第1のVMを管理する、
項目18に記載のシステム。
[項目20]
前記プロセッサは、前記第2のVMMと関連付けられる前記第2のランチコントロールポリシー(LCP)を第2のランチコントロールポリシーモジュール(LCPM)によって評価する、項目18又は19に記載のシステム。
[項目21]
前記プロセッサは、前記第2のLCPMによって前記第2のVMMの完全性測定を実行し、前記第2のLCPによって前記測定を認証する、項目20に記載のシステム。
Although the present invention has been described with respect to a limited number of embodiments, many variations and modifications from the embodiments will be apparent to those skilled in the art. The appended claims are intended to cover all such modifications and changes as fall within the true spirit and scope of the invention.
Examples of this embodiment are shown as the following items.
[Item 1]
When executed, the system
Launching the first virtual machine manager (VMM);
Authenticating the lunch of the second VMM; and
Nesting the second VMM within the first VMM;
A program that contains instructions that allow you to
[Item 2]
The system is
Authenticating a launch of a first virtual machine (VM) and managing the first VM using one of the first VMM and the second VMM; The program according to
[Item 3]
The program according to
[Item 4]
Authenticating the launch of the second VMM includes both (a) invoking a second launch control policy module (LCPM) and (b) using a hardware security certification module, The program according to any one of
[Item 5]
The program according to
[Item 6]
Items 1-5 including instructions that allow the system to evaluate a second launch control policy (LCP) associated with the second VMM by a second launch control policy module (LCPM). The program according to any one of the above items.
[Item 7]
7. The program of item 6, comprising instructions that allow the system to perform an integrity measurement of the second VMM by the second LCPM and authenticate the measurement by the second LCP. .
[Item 8]
The system is
Including instructions to extend the measurement to a platform configuration register (PCR) included in a trusted platform module (TPM) and to update a log based on extending the measurement to the PCR;
[Item 9]
The system includes instructions to load the second LCPM into protected memory and to execute the second LCPM, the second LCPM having root VMM privileges; Item 6. The program according to item 6.
[Item 10]
The system includes instructions that allow a whitelist contained in the second LCP to be authenticated by the second LCPM, the second LCP being specific to the VMM but not specific to the VM; Item 6. The program according to item 6.
[Item 11]
Item 6. includes instructions that allow the system to authenticate the second LCP while booting the first VMM based on a first LCP associated with the first VMM. The listed program.
[Item 12]
The system of the second VMM is configured with a secure interface that is not specifically configured for the second VMM and configured to interface with both a VMM and a nested VMM. 12. A program according to any one of
[Item 13]
Launching the first virtual machine manager (VMM);
Authenticating the lunch of the second VMM; and
Nesting the second VMM within the first VMM.
[Item 14]
Authenticating a first virtual machine (VM) launch and managing the first VM using one of the first VMM and the second VMM;
14. The method according to item 13, comprising:
[Item 15]
Authenticating the launch of the second VMM includes both (a) invoking a second launch control policy module (LCPM) and (b) using a hardware security certification module, 15. A method according to item 13 or 14, comprising bypassing the first VMM.
[Item 16]
16. The method of any of items 13-15, comprising evaluating a second launch control policy (LCP) associated with the second VMM by a second launch control policy module (LCPM).
[Item 17]
17. The method of item 16, comprising performing an integrity measurement of the second VMM with the second LCPM and authenticating the measurement with the second LCP.
[Item 18]
Memory and
Coupled to the memory; (a) launching a first virtual machine manager (VMM); (b) authenticating a launch of a second VMM; and (c) inside the first VMM the second Processor to nest VMM,
Including system.
[Item 19]
The processor is
Authenticate the first virtual machine (VM) lunch,
Managing the first VM using one of the first VMM and the second VMM;
[Item 20]
20. The system of
[Item 21]
21. The system of item 20, wherein the processor performs an integrity measurement of the second VMM with the second LCPM and authenticates the measurement with the second LCP.
Claims (16)
前記システムのプロセッサが、第1の仮想マシンマネージャ(VMM)をランチすること、
前記プロセッサが、第2のVMMのランチを認証すること、および
前記プロセッサが、前記第1のVMMの内部で前記第2のVMMをネストにすること、
を実行させ、
前記第2のVMMの前記ランチを認証することは、前記プロセッサが、(a)第2のランチコントロールポリシーモジュール(LCPM)を呼び出すことと、(b)ハードウェアセキュリティ証明モジュールを用いることとの両方を行いながら、前記第1のVMMを迂回することを含む
プログラム。 A program executed in the system,
The processor of the system launches a first virtual machine manager (VMM);
The processor authenticates a launch of a second VMM, and the processor nests the second VMM within the first VMM;
Was executed,
Authenticating the launch of the second VMM is both when the processor calls (a) a second launch control policy module (LCPM) and (b) uses a hardware security certification module. A program including bypassing the first VMM while performing
前記測定をトラステッドプラットフォームモジュール(TPM)に含まれるプラットフォーム構成レジスタ(PCR)に拡張すること、および
前記測定を前記PCRに拡張することにもとづいてログを更新すること
を実行させるための、請求項5に記載のプログラム。 The processor is
For executing the updating the log based to extend the measurement platform configuration register (PCR) contained in the Trusted Platform Module (TPM), and the measurement to be extended to the PCR, claim 5 The program described in.
前記プロセッサが、第2のVMMのランチを認証すること、および
前記プロセッサが、前記第1のVMMの内部で前記第2のVMMをネストにすること、
を含み、
前記第2のVMMの前記ランチを認証することは、前記プロセッサが、(a)第2のランチコントロールポリシーモジュール(LCPM)を呼び出すことと、(b)ハードウェアセキュリティ証明モジュールを用いることとの両方を行いながら、前記第1のVMMを迂回することを含む、
方法。 The processor launches a first virtual machine manager (VMM);
The processor authenticates a launch of a second VMM, and the processor nests the second VMM within the first VMM;
Only including,
Authenticating the launch of the second VMM is both when the processor calls (a) a second launch control policy module (LCPM) and (b) uses a hardware security certification module. Detouring the first VMM while performing
Method.
前記メモリに結合され、(a)第1の仮想マシンマネージャ(VMM)をランチし、(b)第2のVMMのランチを認証し、(c)前記第1のVMMの内部で前記第2のVMMをネストにするプロセッサ、
を含み、
前記第2のVMMの前記ランチを認証することは、前記プロセッサが、第2のランチコントロールポリシーモジュール(LCPM)を呼び出すことと、ハードウェアセキュリティ証明モジュールを用いることとの両方を行いながら、前記第1のVMMを迂回することを含む、
システム。 Memory and
Coupled to the memory; (a) launching a first virtual machine manager (VMM); (b) authenticating a launch of a second VMM; and (c) inside the first VMM the second processor to nest VMM,
Only including,
Authenticating the launch of the second VMM means that the processor performs both calling the second launch control policy module (LCPM) and using a hardware security certification module. Including bypassing one VMM,
system.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016052569A JP6304837B2 (en) | 2016-03-16 | 2016-03-16 | Authenticated launch of virtual machines and nested virtual machine managers |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016052569A JP6304837B2 (en) | 2016-03-16 | 2016-03-16 | Authenticated launch of virtual machines and nested virtual machine managers |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014533261A Division JP5905586B2 (en) | 2011-09-30 | 2011-09-30 | Authenticated launch of virtual machines and nested virtual machine managers |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2016146195A JP2016146195A (en) | 2016-08-12 |
| JP6304837B2 true JP6304837B2 (en) | 2018-04-04 |
Family
ID=56686436
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016052569A Active JP6304837B2 (en) | 2016-03-16 | 2016-03-16 | Authenticated launch of virtual machines and nested virtual machine managers |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6304837B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021030903A1 (en) * | 2019-08-16 | 2021-02-25 | Zao John Kar Kin | System and method for performing trusted computing with remote attestation and information isolation on heterogeneous processors over open interconnect |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9785485B2 (en) * | 2005-07-27 | 2017-10-10 | Intel Corporation | Virtualization event processing in a layered virtualization architecture |
| US20090204964A1 (en) * | 2007-10-12 | 2009-08-13 | Foley Peter F | Distributed trusted virtualization platform |
| US8479196B2 (en) * | 2009-09-22 | 2013-07-02 | International Business Machines Corporation | Nested virtualization performance in a computer system |
| US8510569B2 (en) * | 2009-12-16 | 2013-08-13 | Intel Corporation | Providing integrity verification and attestation in a hidden execution environment |
| US20110153909A1 (en) * | 2009-12-22 | 2011-06-23 | Yao Zu Dong | Efficient Nested Virtualization |
-
2016
- 2016-03-16 JP JP2016052569A patent/JP6304837B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2016146195A (en) | 2016-08-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5905586B2 (en) | Authenticated launch of virtual machines and nested virtual machine managers | |
| US8321931B2 (en) | Method and apparatus for sequential hypervisor invocation | |
| JP5957004B2 (en) | System, method, computer program product, and computer program for providing validation that a trusted host environment is compliant with virtual machine (VM) requirements | |
| EP2973179B1 (en) | Dynamically loaded measured environment for secure code launch | |
| US8516481B2 (en) | Virtual machine manager system and methods | |
| JP6218859B2 (en) | Memory introspection engine for virtual machine integrity protection | |
| US9202046B2 (en) | Systems and methods for executing arbitrary applications in secure environments | |
| US9202062B2 (en) | Virtual machine validation | |
| JP5307196B2 (en) | Providing a system integrated with silicon code | |
| US20070016766A1 (en) | Low cost trusted platform | |
| CN103177212B (en) | A kind of computer security input system based on light weight monitor of virtual machine and method | |
| US11977631B2 (en) | Hypervisor level signature checks for encrypted trusted execution environments | |
| Ding et al. | HyperVerify: A VM-assisted architecture for monitoring hypervisor non-control data | |
| Kinebuchi et al. | Monitoring integrity using limited local memory | |
| Sahita et al. | Security analysis of confidential-compute instruction set architecture for virtualized workloads | |
| US11500787B2 (en) | Enforcing code integrity using a trusted computing base | |
| JP6304837B2 (en) | Authenticated launch of virtual machines and nested virtual machine managers | |
| Yehuda et al. | Arm security alternatives | |
| Gebhardt | Towards trustworthy virtualisation: Improving the trusted virtual infrastructure | |
| Vasudevan | Integrity-Protected Micro-Hypervisor on x86 and ARM Hardware Virtualized Platforms | |
| Parno et al. | How Do We Make Sense of Platform State? | |
| Wang et al. | Trusted computing technology analyzing in NGSCB | |
| Kinebuchi et al. | Ensuring System Integrity using Limited Local Memory |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170613 |
|
| 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: 20180206 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180302 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6304837 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 |