虛擬機(jī)和嵌套虛擬機(jī)管理器的驗(yàn)證發(fā)起的制作方法
【專利摘要】本發(fā)明的實(shí)施例提供VM和嵌套VMM的驗(yàn)證發(fā)起。實(shí)施例可使用對(duì)VM和嵌套VMM調(diào)用VMM保護(hù)的發(fā)起控制機(jī)制的接口而這樣做。接口在架構(gòu)上可以是通用的。本文描述其他實(shí)施例。
【專利說明】虛擬機(jī)和嵌套虛擬機(jī)管理器的驗(yàn)證發(fā)起
【背景技術(shù)】
[0001]“發(fā)起控制(launch control)”或發(fā)起控制策略(LCP)是廣泛的端點(diǎn)保護(hù)技術(shù)方案的部分。傳統(tǒng)的反病毒掃描采用“黑名單”技術(shù),其旨在識(shí)別已知的“惡意”軟件。攻擊簽名在掃描引擎搜索平臺(tái)資源時(shí)引導(dǎo)它。受損的資源標(biāo)記以供修復(fù)?!鞍酌麊巍睜可鎰?chuàng)建已知的“善意”軟件列表,其供應(yīng)給標(biāo)記不在修復(fù)列表上的資源的掃描引擎。黑和白名單可以一起工作來考慮系統(tǒng)上的全部資源。發(fā)起控制將白名單掃描引擎集成到系統(tǒng)發(fā)起規(guī)程內(nèi)來防止惡意軟件獲得在系統(tǒng)上執(zhí)行的機(jī)會(huì)。例如,白名單可包含用于啟動(dòng)或發(fā)起執(zhí)行環(huán)境(例如,動(dòng)態(tài)發(fā)起的環(huán)境)的代碼和數(shù)據(jù)(例如,哈希)的參考測(cè)量。從而,發(fā)起控制可以用于確保出現(xiàn)“可信啟動(dòng)”。
[0002]可信啟動(dòng)使用可影響啟動(dòng)流程的每一個(gè)階段并且可基于可信硬件,也稱為“可信根”。可信執(zhí)行技術(shù)(TXT)是可以用于實(shí)現(xiàn)用于虛擬環(huán)境的可信啟動(dòng)使用的發(fā)起控制和可信根技術(shù)的示例。硬件可信根幫助可信啟動(dòng)使用消除或減少惡意軟件對(duì)上面的層裝作合法硬件的可能性。TXT實(shí)現(xiàn)動(dòng)態(tài)可信根測(cè)量(RTM),其采用發(fā)起控制策略來確定僅發(fā)起可信環(huán)境。換句話說,TXT可以是對(duì)平臺(tái)中的不同執(zhí)行環(huán)境進(jìn)行的完整性檢查序列中的起始點(diǎn)。從而,TXT可提供微代碼中的安全起始點(diǎn)。例如,各種發(fā)起控制(例如TXT發(fā)起控制)確保虛擬機(jī)管理器(VMM)發(fā)起器是值得信賴的。
[0003]VMM可包括主機(jī)程序,其允許計(jì)算機(jī)支持多個(gè)執(zhí)行環(huán)境。例如,VMM可通過仿真提供劃分單個(gè)物理機(jī)(例如,服務(wù)器)的部件,從而允許多個(gè)操作系統(tǒng)在相同CPU上安全運(yùn)行并且提高CPU利用。VMM可以管理VM。VM可包括執(zhí)行指令的機(jī)器(即,計(jì)算機(jī))(像物理機(jī))的軟件實(shí)現(xiàn)。
[0004]再次關(guān)于TXT發(fā)起控制,這樣的發(fā)起控制未確保隨后發(fā)起的VMM基礎(chǔ)設(shè)施(例如,虛擬機(jī)(VM)、嵌套VMM、嵌套VM和操作系統(tǒng)(OS)環(huán)境)也是值得信賴的。從而,發(fā)起控制確實(shí)可以用于發(fā)起單個(gè)VMM。然而,一旦VMM正運(yùn)行,TXT模型特定寄存器(MSR)被設(shè)置使得在使用VMX根的VMM活動(dòng)時(shí)不調(diào)用TXT。因此,在發(fā)起嵌套VMM時(shí),TXT可以是不可用(例如,GETSEC (SENTER)命令失效)并且嵌套VMM可能未被安全發(fā)起。然后在不應(yīng)用發(fā)起控制策略的情況下加載VM和嵌套VMM,由此創(chuàng)建安全漏洞的潛在機(jī)會(huì)。
【專利附圖】
【附圖說明】
[0005]本發(fā)明的實(shí)施例的特征和優(yōu)勢(shì)將從附上的權(quán)利要求、一個(gè)或多個(gè)示例實(shí)施例的下列詳細(xì)描述和對(duì)應(yīng)的圖變得明顯,其中:
圖1包括對(duì)于本發(fā)明的實(shí)施例的示意流程圖。
[0006]圖2包括指示本發(fā)明的實(shí)施例的各種方面的組織的框圖。
[0007]圖3包括用于與本發(fā)明的實(shí)施例一起使用的系統(tǒng)。
【具體實(shí)施方式】
[0008]在下列描述中,闡述許多特定細(xì)節(jié)但本發(fā)明的實(shí)施例可在沒有這些特定細(xì)節(jié)的情況下實(shí)踐。未詳細(xì)示出眾所周知的電路、結(jié)構(gòu)和技術(shù)來避免混淆該描述的理解。“實(shí)施例”、“各種實(shí)施例”及類似物指示這樣描述的實(shí)施例可包括特定特征、結(jié)構(gòu)或特性,但不是每一個(gè)實(shí)施例都必定包括該特定特征、結(jié)構(gòu)或特性。一些實(shí)施例可具有對(duì)其它實(shí)施例描述的特征中的一些、全部或沒有這樣的特征?!暗谝弧?、“第二”、“第三”及類似物描述公共對(duì)象并且指示所提及的類似對(duì)象的不同實(shí)例。這樣的形容詞未暗指這樣描述的對(duì)象必須在時(shí)間上、空間上采用排序或采用任何其它方式處于給定的序列中?!斑B接”可指示元件彼此直接物理或電接觸并且“耦合”可指示元件彼此共同操作或相互作用,但它們可或可不直接物理或電接觸。而且,盡管相似或相同的數(shù)字可用于指明不同圖中的相同或相似部件,這樣做不意指包括相似或相同數(shù)字的所有的圖構(gòu)成單個(gè)或相同實(shí)施例。
[0009]本發(fā)明的實(shí)施例提供VM和/或嵌套VMM的驗(yàn)證發(fā)起。實(shí)施例可使用對(duì)VM和嵌套VMM調(diào)用VMM保護(hù)的發(fā)起控制機(jī)制的接口而這樣做。該接口在架構(gòu)上可以是通用的。一些實(shí)施例可使用擴(kuò)展成涵蓋VM和VMM的TXT發(fā)起控制策略。
[0010]圖1包括對(duì)于本發(fā)明的實(shí)施例的示意流程圖。圖2包括指示本發(fā)明的實(shí)施例的各種方面的組織的框圖。圖1和2在下文結(jié)合彼此來論述,然而,每個(gè)圖中的實(shí)施例不一定局限于與彼此一起工作。
[0011]圖2包括組織表示200,其簡(jiǎn)要并且如將在下文更充分解釋的那樣包括圖像201的集合、發(fā)起控制策略211 (其中它們的代表白名單對(duì)應(yīng)于圖像201)和證實(shí)代碼模塊(例如,發(fā)起控制模塊(LCPM)) 221,其包括用于針對(duì)白名單211中的測(cè)量來驗(yàn)證候選代碼圖像201的代碼。在實(shí)施例中,LCPM是動(dòng)態(tài)模塊化代碼對(duì)象,其用根VMM特權(quán)來執(zhí)行。平臺(tái)配置寄存器(PCR) 231存儲(chǔ)圖像測(cè)量。
[0012]初始啟動(dòng)根VMM (VMM0)155。該啟動(dòng)可以是經(jīng)由許多安全啟動(dòng)機(jī)制而實(shí)現(xiàn)的安全啟動(dòng)。一個(gè)這樣的機(jī)制(如上文解決的)包括TXT發(fā)起控制。關(guān)于TXT發(fā)起控制的信息至少在 http://software-1ntel-com/enus/articles/intel-trusted-execution-technology-a-primer/、http://download-1ntel-com/technology/security/downloads/315168-pdf以及其他公共可用的位點(diǎn)是可獲得的。
[0013]安全發(fā)起根VMM (VMMO)可包括幾個(gè)動(dòng)作。TXT 226可作為發(fā)起控制策略而操作來確保某些圖像(例如SINIT ACM 206)是可靠的。SINIT ACM關(guān)系到在安全啟動(dòng)過程中使用的驗(yàn)證代碼模塊。SINIT ACM 206的測(cè)量存儲(chǔ)在PCR 17中(236)。PCR是可信的平臺(tái)模塊(TPM)寄存器,其包含安全相關(guān)信息的加密哈希(由例如VMM等可信執(zhí)行環(huán)境執(zhí)行的代碼和用于發(fā)起它的加載器代碼的哈希)。
[0014]在VMMO的安全發(fā)起期間,可在框225使用SINIT ACM將LCPO 215與根VMMO 205圖像相比較。而且,LCPO 215和SINIT ACM 225可用于驗(yàn)證LCPMl、LCPM2、LCPM3 205圖像,其中的一些可在下文論述的稍后的階段(例如,嵌套VMM啟動(dòng))中使用。這些測(cè)量存儲(chǔ)在對(duì)于 VMMO 的 PCR 18 以及分別對(duì)于 LCPMl、LCPM2、LCPM3 的 PCR 19,20,21 中。
[0015]作為簡(jiǎn)短的旁白,用于存儲(chǔ)的確切PCR是能配置的并且在其他實(shí)施例中可改變。例如,PCR分配指導(dǎo)可在規(guī)范中概述。這樣的規(guī)范包括可信計(jì)算組(TCG) PC客戶端規(guī)范和TPM規(guī)范,其保留PCR 17、18、19、20和21以供動(dòng)態(tài)可信根(例如,TXT)使用。PCR 17可由SENTER使用來測(cè)量ACM。ACM可使用PCR 18來測(cè)量VMM發(fā)起器。VMM發(fā)起器可使用PCR 18以及可選地PCR 19來測(cè)量VMM。VMM可使TPM虛擬化并且因此可使用其他PCR用于測(cè)量VM(和LCPM,就這一點(diǎn)來說)。PCR 20和21還可用于供VMM使用。再進(jìn)一步地,多個(gè)LCPM測(cè)量可包括到相同PCR內(nèi)。從而,PCR的使用是能配置的并且可隨著變化的實(shí)施例而改變。
[0016]回到圖1,引導(dǎo)加載器(例如VMO 105)經(jīng)由框110而虛擬啟動(dòng)???15開始啟動(dòng)實(shí)體(例如虛擬機(jī)VMl 104 (存在于圖2的元件204中))的過程。(“實(shí)體”還可以是嵌套VMM但VMl在該示例中將用于解釋目的。)當(dāng)發(fā)起VMl 104時(shí),引導(dǎo)加載器VMO 105調(diào)用指令,例如VMFUNC接口指令,其規(guī)定促使LCPMl 124 (圖2中的224)發(fā)起VMl 104的葉(leaf)。VMFUNC接口可防止中斷或設(shè)置VM控制位,因此LCPMl 224將被許可執(zhí)行而沒有測(cè)量過程的任何中斷。該接口還可使系統(tǒng)上的其他處理器靜默使得測(cè)量可以在沒有來自其他處理器的干擾的情況下出現(xiàn)。此外,VMFUNC基于例如TXT的使用來確認(rèn)微代碼可已經(jīng)視為進(jìn)行完整性檢查和完整性檢查控制的安全地點(diǎn)。在下文進(jìn)一步論述VMFUNC。
[0017]因此,經(jīng)由框130,執(zhí)行控制傳遞到LCPMl 124(圖2中的元件224)。在實(shí)施例中,LCPMl作為在VMl上運(yùn)行的VM而操作。LCPMl 124定位存儲(chǔ)器中的VMl 104并且基于計(jì)劃用于LCPMl的LCPl 114 (圖2中元件214)執(zhí)行完整性測(cè)量并且證實(shí)計(jì)算的測(cè)量被LCPl中的策略中的一個(gè)所接受。LCP可包括白名單,其描述可能從可信服務(wù)器方面受保護(hù)的預(yù)期軟件圖像。具體地,在實(shí)施例中,LCPMl將LCPl讀到存儲(chǔ)器內(nèi),例如定位在擴(kuò)展頁表(EPT)中的受保護(hù)存儲(chǔ)器。在下文關(guān)于VMFUNC接口更詳細(xì)地論述EPT。
[0018]在框140中,VMl的測(cè)量擴(kuò)展到PCR (例如,PCR 8) 234內(nèi),PCR (例如,PCR 8) 234被包括在TPM 145或其他這樣的硬件認(rèn)證模塊中。TPM是安全協(xié)同處理器,其實(shí)施與安全存儲(chǔ)和安全報(bào)告有關(guān)的多種安全能力。關(guān)于加密處理器(像TPM)的細(xì)節(jié)可至少在以下找到:Sundeep Bajikar 的“Trusted Platform Module (TPM) based Security on Notebook PCs-White Paper”,
http://www-1ntel-com/design/mobiIe/platform/downloads/Trusted_Platform_Module_White_Paper-pdf。在框160中,更新PCR日志。實(shí)施例不限于利用VMFUNC、TPM及類似物的操作但這樣的元件僅用于說明目的。然后,調(diào)度VMl以供根VMM 155 (包括在圖2的元件205中)執(zhí)行。在框165中,執(zhí)行VMFUNC (退出)。
[0019]上文(關(guān)于圖1和2)描述的過程實(shí)施例也能適用于嵌套VMM而不是用于解釋目的的VM1。沿著這些線,VM (例如,VMl)和嵌套VMM兩者都包括在圖2的框204中。也就是說,雖然圖1描述VMl的安全啟動(dòng),相同的過程可以用于安全啟動(dòng)嵌套VMM。
[0020]如在圖2中指示的,額外層的虛擬化可以是安全的。例如,經(jīng)由LCPM2 223,可測(cè)量嵌套VM 203并且將其與包括在LCP2 213中的測(cè)量比較。測(cè)量可經(jīng)由PCR 233存儲(chǔ)。此夕卜,經(jīng)由LCPM3 221,可測(cè)量驅(qū)動(dòng)器、庫(kù)和可執(zhí)行代碼202并且將其與包括在LCP3 212中的測(cè)量比較。測(cè)量可經(jīng)由PCR 232而存儲(chǔ)。
[0021]作為關(guān)于嵌套VM的更特定示例,引導(dǎo)加載器VMO 105經(jīng)由框110而被虛擬地啟動(dòng)???15開始啟動(dòng)嵌套VM2 203的過程。當(dāng)發(fā)起VM2 203時(shí),引導(dǎo)加載器VMO 105調(diào)用指令,例如VMFUNC接口指令,其規(guī)定導(dǎo)致LCPM2 223發(fā)起VM2 203的葉。經(jīng)由框130,執(zhí)行控制傳遞到LCPM2 223,其定位存儲(chǔ)器中的VM2 203并且基于計(jì)劃用于LCPM2的LCP2 213執(zhí)行完整性測(cè)量并且證實(shí)計(jì)算的測(cè)量被LCP2中的策略中的一個(gè)所接受。在框140中,VM2的測(cè)量擴(kuò)展到PCR 233內(nèi),PCR 233包括在TPM中。在框160中,更新PCR日志。然后,在框155中,調(diào)度VM2以供根VMM 155執(zhí)行。在框165中,執(zhí)行VMFUNC (退出)。[0022]緊挨上面(關(guān)于圖1和2)描述的過程實(shí)施例也能適用于嵌套VMM,其進(jìn)一步嵌套在另一個(gè)實(shí)體內(nèi)。
[0023]從而,框110導(dǎo)致根VMM (105)發(fā)起LCPM (225)。LCPM用于利用將裝載到受保護(hù)存儲(chǔ)器內(nèi)的VM的圖像來評(píng)估LCP。相似地,還可加載對(duì)于嵌套VMM的LCPM (即使這未在圖1中專門示出)。根VMM LCP用于證實(shí)LCPM的完整性。此外,VM或嵌套VMM比在VM或VMM從根VMM (甚至是安全啟動(dòng)的根VMM)發(fā)起時(shí)要更安全地發(fā)起。相反,并不直接依靠根VMM(即,它被繞過)而相反依靠基于TXT硬件的序列(或其他基于硬件認(rèn)證模塊的方法)來啟動(dòng)VM或嵌套VMM。在一個(gè)實(shí)施例中,發(fā)起控制機(jī)制、工具和基礎(chǔ)設(shè)施(典型地局限于僅與根VMM一起工作)擴(kuò)展到與VM和VMM —起工作。例如,發(fā)起控制現(xiàn)在擴(kuò)展到超出TXT和相似的安全技術(shù)。實(shí)施例使由例如TXT發(fā)起控制和/或BIOS可信啟動(dòng)機(jī)制所切斷的白名單檢查過程繼續(xù)到嵌套VMM和VM環(huán)境。基于可信系統(tǒng)啟動(dòng)、可信根VMM啟動(dòng)和可信嵌套VMM和/或VM啟動(dòng),環(huán)境可提供具有回到可信根的連續(xù)信任鏈的信任代理服務(wù)。該信任鏈可基于例如PCR日志的內(nèi)容而建立。
[0024]關(guān)于VMFUNC指令,典型地在不應(yīng)用發(fā)起控制策略的情況下加載VM和嵌套VMM。此外,VMM供應(yīng)商不依靠用于發(fā)起控制的公共架構(gòu)接口。然而,利用本發(fā)明的各種實(shí)施例,根VMM可以使用VMFUNC調(diào)用(或它的功能等同)來調(diào)用發(fā)起控制策略模塊,如上文描述的。LCPM理解如何解析和證實(shí)包括在LCP策略中的白名單。LCP策略可以是加載的圖像類型(例如,VM或嵌套VMM)所特有的。LCPM在適當(dāng)保護(hù)根VMM的情況下執(zhí)行。VMFUNC調(diào)用確保VM和嵌套VMM根據(jù)一致的供應(yīng)商無關(guān)方式來被調(diào)用使得LCP創(chuàng)始人能夠構(gòu)造跨越VMM和VM的不同供應(yīng)商實(shí)現(xiàn)或跨VMM和VM的不同供應(yīng)商實(shí)現(xiàn)而一致工作的LCP。從而,VMM供應(yīng)商不必對(duì)起到根或嵌套VMM作用的VMM維持明顯不同的產(chǎn)品/安裝庫(kù)存單元(SKU)。
[0025]此外關(guān)于VMFUNC,VMFUNC是使用EPT存儲(chǔ)器保護(hù)的架構(gòu)接口。EPT是用于存儲(chǔ)器管理單元(MMU)的虛擬化技術(shù)。當(dāng)該特征活動(dòng)時(shí),普通的IA-32頁表(由控制寄存器CR3引用)從線性地址轉(zhuǎn)化成客戶物理地址。獨(dú)立頁表(即,EPT表)集從客戶物理地址轉(zhuǎn)化成主機(jī)物理地址,其用于訪問存儲(chǔ)器。因此,可以允許客戶軟件修改它自己的IA-32頁表并且直接處理頁錯(cuò)誤。這允許VMM避免與頁表虛擬化關(guān)聯(lián)的VM退出,其是在沒有EPT情況下虛擬化開銷的主要來源。VMFUNC通過使用EPT使例如LCPl (114)與LCPMl (124)隔離而利用EPT0在這樣做時(shí),LCPMl免受源于VMFUNC進(jìn)入點(diǎn)外部的寫操作的影響。測(cè)量然后可以存儲(chǔ)在包括在TPM內(nèi)的寄存器中。此外,EPT可僅在特定硬件線程上是活動(dòng)的,從而不允許可在其他硬件線程上執(zhí)行的其他軟件篡改或干預(yù)LCPl的測(cè)量。
[0026]在實(shí)施例中,EPT可用于對(duì)LCPM規(guī)定存儲(chǔ)器中的邊界。這對(duì)于在加載VM時(shí)重新檢查L(zhǎng)CPM代碼(而不檢查所有VMM代碼)可以是有益的,因?yàn)槔鏛CPM代碼特別地實(shí)現(xiàn)策略實(shí)施規(guī)則。該檢查未重新加載VMM代碼。相反,檢查是存儲(chǔ)器內(nèi)檢查(例如,EPT中的存儲(chǔ)器頁被重散列并且與對(duì)應(yīng)于存儲(chǔ)器內(nèi)圖像的白名單比較)。因?yàn)镻CR 19、20、21不包含VMM(其可包括在PCR 18中)的完整測(cè)量,那些PCR可以用于這些重新測(cè)量。
[0027]更具體地,在實(shí)施例中,EPT用于限定具有特殊特性和/或使用的存儲(chǔ)器頁的組。實(shí)施例使用EPT來構(gòu)造實(shí)現(xiàn)LCPM (例如,代碼)和LCP (例如,數(shù)據(jù))功能性的VMM代碼和數(shù)據(jù)頁的子集。當(dāng)VMFUNC供應(yīng)商對(duì)VMM控制時(shí),VMFUNC中的新的葉可以用于證實(shí)EPT,其包含LCPM,并且LCP頁不必因?yàn)槭紫缺话l(fā)起而改變。實(shí)施例可采用與地址范圍類似的方式來實(shí)現(xiàn)此。可檢查/證實(shí)LCPM頁來確保它們還未被移動(dòng)、延長(zhǎng)和/或縮短。如果VMFUNC用于實(shí)施完整性策略,預(yù)期的LCPM和LCP測(cè)量可以傳遞給VMFUNC作為對(duì)新葉的參數(shù)。VMFUNC可以在將執(zhí)行傳遞到LCPM代碼之前比較EPT測(cè)量。如果比較不產(chǎn)生匹配,VMFUNC可指示錯(cuò)誤。
[0028]在實(shí)施例中,根VMM功能性可根據(jù)CPU環(huán)結(jié)構(gòu)而分區(qū)使得在環(huán)O處執(zhí)行VMFUNC的調(diào)用并且在環(huán)I處進(jìn)行LCPM的執(zhí)行。VMM功能性的剩余部分可以在環(huán)2和環(huán)3處實(shí)現(xiàn)。該實(shí)現(xiàn)允許硬件機(jī)構(gòu)保護(hù)/加強(qiáng)LCPM和VMFUNC調(diào)用。用于支持LCPM的VMFUNC葉可迫使該特定葉可以僅被客戶VMM在環(huán)O處調(diào)用。在實(shí)施例中,根VMM將使用TXT。例如,TXT將用于發(fā)起VMM/VMM發(fā)起器。一旦被發(fā)起,VMM中的LCPM將用于發(fā)起客戶。從而,環(huán)可以用于進(jìn)一步使發(fā)起功能性與VMM和VMM基礎(chǔ)設(shè)施內(nèi)的其他非安全相關(guān)功能性隔離和分離。
[0029]實(shí)施例適合于幾個(gè)環(huán)境,其包括經(jīng)證實(shí)的啟動(dòng)環(huán)境和測(cè)量的啟動(dòng)環(huán)境。
[0030]經(jīng)證實(shí)的啟動(dòng)接受來自可信服務(wù)器的白名單,其描述預(yù)期的軟件圖像??蛻舳似脚_(tái)的可信部件檢查軟件圖像(在它執(zhí)行并且將它與白名單比較之前)。如果存在匹配,則部件被許可執(zhí)行。如果否的話,執(zhí)行修復(fù)動(dòng)作。執(zhí)行該操作的部件有時(shí)稱為用于證實(shí)的可信根。這可不需要硬件認(rèn)證模塊(例如,TPM)。
[0031]然而,測(cè)量的啟動(dòng)檢查軟件圖像(在它執(zhí)行并且將它保存在安全存儲(chǔ)位點(diǎn)之前)。它可不具有約束或更改啟動(dòng)的白名單。相反,白名單被維持在客戶端希望訪問的服務(wù)器托管資源處。軟件的完整性報(bào)告交付給服務(wù)器作為服務(wù)器準(zhǔn)許訪問的前提。報(bào)告對(duì)服務(wù)器的呈現(xiàn)有時(shí)叫作認(rèn)證。服務(wù)器將認(rèn)證報(bào)告與白名單比較來確定客戶端是否擁有明顯的風(fēng)險(xiǎn)。如果確實(shí)有的話,關(guān)閉網(wǎng)絡(luò)連接。這可利用硬件認(rèn)證模塊(例如,TPM)0
[0032]進(jìn)一步詳細(xì)地,在各種實(shí)施例中,經(jīng)證實(shí)的啟動(dòng)直接實(shí)施完整性策略(B卩,它可防止執(zhí)行不滿足完整性策略的代碼)。然而,因?yàn)槔缤暾圆呗钥蓪?shí)際上位于遠(yuǎn)程服務(wù)器上并且可不被客戶端所知,測(cè)量的啟動(dòng)可允許執(zhí)行不滿足完整性策略的代碼。因此,客戶端可安全地存儲(chǔ)測(cè)量(例如,在TPM PCR中),在這里它將稍后被“援引”并且交付給服務(wù)器作為“認(rèn)證”的部分。服務(wù)器可以將在認(rèn)證中找到的實(shí)際測(cè)量與它的白名單本地副本上的測(cè)量比較。實(shí)施可以由服務(wù)器通過放棄網(wǎng)絡(luò)連接性或通過使客戶端處于修復(fù)網(wǎng)絡(luò)(其中更新服務(wù)可試圖重新配置客戶端(例如,PO)中而被施加。
[0033]從而,實(shí)施例發(fā)起第一 VMM ;驗(yàn)證第二 VMM的發(fā)起;并且使該第二 VMM嵌套在第一VMM內(nèi)。相反或除嵌套VMM的驗(yàn)證啟動(dòng)外,實(shí)施例可驗(yàn)證第一 VM的發(fā)起;并且管理具有第一VMM (例如,根VMM)或嵌套VMM的第一 VM。在緊挨前面場(chǎng)景中的任一個(gè)(根VMM或托管另一個(gè)VMM或VM的VMM)中,該根或托管VMM可經(jīng)由不可重入的安全啟動(dòng)(例如,經(jīng)由TXT發(fā)起)而被啟動(dòng)。
[0034]實(shí)施例可在既(a)調(diào)用第二 LCPM又(b)使用硬件安全認(rèn)證模塊(例如但不限于,TPM)時(shí)通過繞過根VMM而驗(yàn)證第二 VMM的發(fā)起。
[0035]關(guān)于對(duì)于“繞過”根VMM的示例,根VMM可將嵌套VMM視為好像它們是VM —樣。從而,發(fā)起控制VM和VMM兩者從根VMM的角度來看將是相似的。聚焦在嵌套VMM上,當(dāng)嵌套VMM執(zhí)行時(shí),它將識(shí)別它將加載的VM。用于測(cè)量嵌套VMM的LCPM代碼包含在嵌套VMM頁范圍中。因此VMFUNC可確保描述嵌套VMM的EPT與描述根VMM的EPT不同。從而,如果根VMM決定參加,根VMM某種程度上對(duì)于該操作可被繞過。這可基于例如EPT使用以及VMFUNC和引導(dǎo)VMO (參見圖1)的使用以用于啟動(dòng)嵌套VMM。
[0036]實(shí)施例可經(jīng)由第二 LCPM評(píng)估與嵌套的第二 VMM關(guān)聯(lián)的第二 LCP。實(shí)施例可經(jīng)由第
二LCPM來執(zhí)行第二 VMM的完整性測(cè)量并且經(jīng)由第二 LCP驗(yàn)證測(cè)量。實(shí)施例可使測(cè)量擴(kuò)展到包括在TPM或其他硬件認(rèn)證模塊中的PCR內(nèi);并且基于將測(cè)量擴(kuò)展到PCR而更新日志。
[0037]實(shí)施例可將第二 LCPM加載到受保護(hù)的存儲(chǔ)器(例如,EPT)內(nèi)并且執(zhí)行第二 LCPM,其中第二 LCPM具有根VMM特權(quán)。實(shí)施例可使系統(tǒng)能夠經(jīng)由第二 LCPM驗(yàn)證包括在第二 LCP中的白名單,其中第二 LCP是VMM而不是VM所特有的。而且,基于與第一 VMM關(guān)聯(lián)的第一LCP,實(shí)施例可驗(yàn)證第二 LCP,同時(shí)啟動(dòng)第一 VMM。此外,實(shí)施例可經(jīng)由未專門為第二 VMM所配置(例如,架構(gòu)上中立或供應(yīng)商中立)并且配置成將VMM和嵌套VMM接口的安全接口來驗(yàn)證第二 VMM的發(fā)起。[0038]實(shí)施例可采用許多不同的系統(tǒng)類型來實(shí)現(xiàn)?,F(xiàn)在參考圖3,示出根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)的框圖。多處理器系統(tǒng)500是點(diǎn)到點(diǎn)互連系統(tǒng),并且包括經(jīng)由點(diǎn)到點(diǎn)互連550而耦合的第一處理器570和第二處理器580。處理器570和580中的每個(gè)可以是多核處理器。術(shù)語“處理器”可指處理來自寄存器和/或存儲(chǔ)器的電子數(shù)據(jù)來將該電子數(shù)據(jù)變換成可存儲(chǔ)在寄存器和/或存儲(chǔ)器中的其他電子數(shù)據(jù)的任何裝置或裝置的任何部分。第一處理器570可包括存儲(chǔ)器控制器中樞(MCH)和點(diǎn)到點(diǎn)(P-P)接口。相似地,第二處理器580可包括MCH和P-P接口。MCH可使處理器耦合于相應(yīng)的存儲(chǔ)器,即存儲(chǔ)器532和存儲(chǔ)器534,其可以是本地附連到相應(yīng)處理器的主存儲(chǔ)器(例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM))的部分。第一處理器570和第二處理器580可經(jīng)由P-P互連而分別耦合于芯片集590。芯片集590可包括TPM或加密處理器,其包括例如RSA加速計(jì)、隨機(jī)數(shù)發(fā)生器、密鑰、證書、PCR、靜態(tài)RAM、閃速存儲(chǔ)器、單調(diào)計(jì)數(shù)器、數(shù)字簽名算法及類似物。關(guān)于這樣的芯片集的一個(gè)示例的細(xì)節(jié)至少在以下可獲得:http: //www-1ntel-com/ design/mobi I e/platform/ downloads/Trusted_Pl-atform_Module_ffhite_Paper-pdf o實(shí)施例不限于與任一個(gè)類型的安全引擎或加密處理器一起工作并且可相反與具有來自各種供應(yīng)商的具有各種架構(gòu)的各種分立和/或集成安全引擎一起工作。芯片集590可包括P-P互連。此外,芯片集590可經(jīng)由接口耦合于第一總線516。各種輸入/輸出(I/O)裝置514可I禹合于第一總線516,連同總線橋518,其使第一總線516耦合于第二總線520。各種裝置可耦合于第二總線520,其包括例如鍵盤/鼠標(biāo)522、通信裝置526和數(shù)據(jù)存儲(chǔ)單元528,例如盤驅(qū)動(dòng)器或其他大容量存儲(chǔ),其在一個(gè)實(shí)施例中可包括代碼530。此外,音頻I/O 524可耦合于第二總線520。
[0039]實(shí)施例可在代碼中實(shí)現(xiàn)并且可存儲(chǔ)在非暫時(shí)性存儲(chǔ)介質(zhì)上,該非暫時(shí)性存儲(chǔ)介質(zhì)具有存儲(chǔ)在其上的指令,其可以用于對(duì)系統(tǒng)編程來執(zhí)行指令。存儲(chǔ)介質(zhì)可包括但不限于任何類型的盤,這些盤包括軟盤、光盤、光盤、固態(tài)驅(qū)動(dòng)器(SSD)、壓縮盤只讀存儲(chǔ)器(⑶-ROM)、壓縮盤可重寫(⑶-RW)和磁光盤;半導(dǎo)體器件,例如只讀存儲(chǔ)器(ROM)、例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)等隨機(jī)存取存儲(chǔ)器(RAM)、可擦除可編程只讀存儲(chǔ)器(EPR0M)、閃速存儲(chǔ)器、電可擦除可編程只讀存儲(chǔ)器(EEPR0M)、磁或光卡或適合于存儲(chǔ)電子指令的任何其他類型的介質(zhì)。本發(fā)明的實(shí)施例可在本文關(guān)于例如指令、函數(shù)、規(guī)程、數(shù)據(jù)結(jié)構(gòu)、應(yīng)用程序、配置設(shè)置、代碼及類似物等數(shù)據(jù)來描述。當(dāng)數(shù)據(jù)被機(jī)器訪問時(shí),該機(jī)器可通過執(zhí)行任務(wù)、限定抽象數(shù)據(jù)類型、建立低級(jí)硬件上下文和/或執(zhí)行其他操作而作出響應(yīng),如在本文更詳細(xì)描述的。數(shù)據(jù)可存儲(chǔ)在易失性和/或非易失性數(shù)據(jù)存儲(chǔ)中。術(shù)語“代碼”或“程序”涵蓋廣泛的部件和構(gòu)造,其包括應(yīng)用、驅(qū)動(dòng)器、進(jìn)程、例程、方法、模塊和子程序并且可指指令的任何集合,這些指令在被處理系統(tǒng)執(zhí)行時(shí)執(zhí)行期望的操作或若干操作。另外,備選實(shí)施例可包括使用比公開操作中的全部更少的進(jìn)程、使用額外操作的進(jìn)程、使用處于不同序列的相同操作的進(jìn)程以及其中本文公開的個(gè)體操作組合、細(xì)分或用別的方式更改的進(jìn)程。部件或模塊可根據(jù)期望組合或分離,并且可定位在裝置的一個(gè)或多個(gè)部分中。
[0040]盡管已經(jīng)關(guān)于有限數(shù)量的實(shí)施例描述本發(fā)明,本領(lǐng)域內(nèi)技術(shù)人員將意識(shí)到從其中的許多修改和改動(dòng)。規(guī)定附上的權(quán)利要求涵蓋所有這樣的修改和改動(dòng),它們落入本發(fā)明的真正精神和范圍內(nèi)。
【權(quán)利要求】
1.一種物品,其包括非暫時(shí)機(jī)器可訪問存儲(chǔ)介質(zhì),其包括指令,所述指令在被執(zhí)行時(shí)使系統(tǒng)能夠: 發(fā)起第一虛擬機(jī)管理器(VMM); 驗(yàn)證第二 VMM的發(fā)起;以及 使所述第二 VMM嵌套在所述第一 VMM內(nèi)。
2.如權(quán)利要求1所述的物品,其包括指令,該指令使所述系統(tǒng)能夠: 驗(yàn)證第一虛擬機(jī)(VM)的發(fā)起;以及 管理具有所述第一 VMM和所述第二 VMM中的一個(gè)的第一 VM。
3.如權(quán)利要求1所述的物品,其中所述第一VMM是經(jīng)由不可重入的安全啟動(dòng)而發(fā)起的根麗。
4.如權(quán)利要求1所述的物品,其中驗(yàn)證所述第二VMM的發(fā)起包括在既(a)調(diào)用第二發(fā)起控制策略模塊(LCPM)又(b)使用硬件安全認(rèn)證模塊時(shí)繞過所述第一 VMM。
5.如權(quán)利要求4所述的物品,其中所述硬件安全認(rèn)證模塊包括可信平臺(tái)模塊(TPM)。
6.如權(quán)利要求1所述的物品,其包括指令,該指令使所述系統(tǒng)能夠經(jīng)由第二發(fā)起控制策略模塊(LCPM)評(píng)估與所述第二 VMM關(guān)聯(lián)的第二發(fā)起控制策略(LCP)。
7.如權(quán)利要求6所述的物品,其包括指令,該指令使所述系統(tǒng)能夠經(jīng)由所述第二LCPM來執(zhí)行所述第二 VMM的·完整性測(cè)量并且經(jīng)由所述第二 LCP驗(yàn)證所述測(cè)量。
8.如權(quán)利要求7所述的物品,其包括指令,該指令使所述系統(tǒng)能夠: 使所述測(cè)量擴(kuò)展到包括在可信平臺(tái)模塊(TPM)中的平臺(tái)配置寄存器(PCR)內(nèi);以及 基于使所述測(cè)量擴(kuò)展到所述PCR來更新日志。
9.如權(quán)利要求6所述的物品,其包括指令,該指令使所述系統(tǒng)能夠?qū)⑺龅诙﨤CPM加載到受保護(hù)存儲(chǔ)器內(nèi)并且執(zhí)行所述第二 LCPM,其中所述第二 LCPM具有根VMM特權(quán)。
10.如權(quán)利要求6所述的物品,其包括指令,該指令使所述系統(tǒng)能夠經(jīng)由所述第二LCPM而驗(yàn)證包括在所述第二 LCP中的白名單,其中所述第二 LCP是VMM所特有的而不是VM所特有的。
11.如權(quán)利要求6所述的物品,其包括指令,該指令使所述系統(tǒng)能夠基于與所述第一VMM關(guān)聯(lián)的第一 LCP在啟動(dòng)所述第一 VMM時(shí)驗(yàn)證所述第二 LCP。
12.如權(quán)利要求1所述的物品,其包括指令,該指令使所述系統(tǒng)能夠經(jīng)由未專門為所述第二 VMM所配置并且配置成將VMM和嵌套VMM接口的安全接口來驗(yàn)證所述第二 VMM的發(fā)起。
13.—種方法,包括: 發(fā)起第一虛擬機(jī)管理器(VMM); 驗(yàn)證第二 VMM的發(fā)起;以及 使所述第二 VMM嵌套在所述第一 VMM內(nèi)。
14.如權(quán)利要求13所述的方法,其包括: 驗(yàn)證第一虛擬機(jī)(VM)的發(fā)起;以及 管理具有所述第一 VMM和所述第二 VMM中的一個(gè)的第一 VM。
15.如權(quán)利要求13所述的方法,其中驗(yàn)證所述第二VMM的發(fā)起包括在既(a)調(diào)用第二發(fā)起控制策略模塊(LCPM)又(b)使用硬件安全認(rèn)證模塊時(shí)繞過所述第一 VMM。
16.如權(quán)利要求13所述的方法,其包括經(jīng)由第二發(fā)起控制策略模塊(LCPM)評(píng)估與所述第二 VMM關(guān)聯(lián)的第二發(fā)起控制策略(LCP)。
17.如權(quán)利要求16所述的方法,其包括經(jīng)由所述第二LCPM來執(zhí)行所述第二 VMM的完整性測(cè)量并且經(jīng)由所述第二 LCP驗(yàn)證所述測(cè)量。
18.—種系統(tǒng),包括: 存儲(chǔ)器; 處理器,其耦合于所述存儲(chǔ)器以便(a)發(fā)起第一虛擬機(jī)管理器(VMM); (b)驗(yàn)證第二 VMM的發(fā)起;以及(c)使所述第二 VMM嵌套在所述第一 VMM內(nèi)。
19.如權(quán)利要求18所述的系統(tǒng),其中所述處理器用于:驗(yàn)證第一虛擬機(jī)(VM)的發(fā)起;以及 管理具有所述第一 VMM和所述第二 VMM中的一個(gè)的第一 VM。
20.如權(quán)利要求18所述的系統(tǒng),其中所述處理器經(jīng)由第二發(fā)起控制策略模塊(LCPM)評(píng)估與所述第二 VMM關(guān)聯(lián)的第二發(fā)起控制策略(LCP)。
21.如權(quán)利要求20所述的系統(tǒng),其中所述處理器經(jīng)由所述第二LCPM來執(zhí)行所述第二VMM的完整性測(cè)量并且經(jīng)由所述第二 `LCP驗(yàn)證所述測(cè)量。
【文檔編號(hào)】G06F9/455GK103827824SQ201180073818
【公開日】2014年5月28日 申請(qǐng)日期:2011年9月30日 優(yōu)先權(quán)日:2011年9月30日
【發(fā)明者】N.M.史密斯, R.L.薩希塔 申請(qǐng)人:英特爾公司