涂碧波,程杰,夏豪駿 ,張坤,孫瑞娜,3
(1.中國(guó)科學(xué)院信息工程研究所,北京 100093;2.中國(guó)科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,北京 100049;3.新疆財(cái)經(jīng)大學(xué)信息管理學(xué)院,新疆 烏魯木齊 830012)
隨著互聯(lián)網(wǎng)的普及和業(yè)務(wù)數(shù)據(jù)的激增,云計(jì)算[1]因其高性能、低成本的優(yōu)勢(shì)得到飛速發(fā)展。Amazon、Google、阿里、華為等國(guó)內(nèi)外知名的大型互聯(lián)網(wǎng)公司都擁有獨(dú)立的云計(jì)算平臺(tái)及云計(jì)算推進(jìn)戰(zhàn)略規(guī)劃,政府部門、事業(yè)單位也將部分業(yè)務(wù)遷移到云上。Gartner 數(shù)據(jù)顯示,截至2019 年,全球云計(jì)算市場(chǎng)規(guī)模已達(dá)到1 883 億美元,增速為20.86%。2020 年,線上辦公、線上會(huì)議等應(yīng)用爆發(fā)式增長(zhǎng),催生了“云經(jīng)濟(jì)”,不少企業(yè)加快數(shù)字化轉(zhuǎn)型的進(jìn)程。除此之外,新基建提出的“加快5G 網(wǎng)絡(luò)、數(shù)據(jù)中心等基礎(chǔ)設(shè)施建設(shè)”為云計(jì)算的發(fā)展奠定了政策基調(diào)。目前,我國(guó)的云計(jì)算發(fā)展已經(jīng)進(jìn)入了一個(gè)躍升的階段。
云計(jì)算飛速發(fā)展的同時(shí),云安全問(wèn)題也日益突出。在云計(jì)算環(huán)境下,用戶失去了對(duì)計(jì)算和數(shù)據(jù)的完全控制[2]能力,造成了信任缺失,虛擬化技術(shù)擴(kuò)展了軟件棧、增加了新的攻擊面,底層資源的共享可能引發(fā)同駐攻擊,解決云安全問(wèn)題迫在眉睫。然而,傳統(tǒng)的被動(dòng)防護(hù)策略難以抵御新的漏洞和攻擊,同時(shí)安全產(chǎn)品自身的安全性也相當(dāng)脆弱,容易被攻擊者利用而成為新的攻擊面。
可信計(jì)算是一種前瞻性的安全技術(shù),它將防護(hù)前置以主動(dòng)的方式彌補(bǔ)被動(dòng)防護(hù)的不足。目前,用“可信計(jì)算構(gòu)筑網(wǎng)絡(luò)安全”已成為一種共識(shí),基于可信計(jì)算技術(shù)構(gòu)建新一代的安全結(jié)構(gòu)也成為國(guó)際的主流。同時(shí),可信計(jì)算作為云安全體系的重要技術(shù)之一,是解決云安全問(wèn)題的有效手段[3]。對(duì)我國(guó)來(lái)說(shuō),安全市場(chǎng)對(duì)可信的需求也在不斷攀升,2019 年發(fā)布和實(shí)施的等級(jí)保護(hù)2.0[4]的云安全的相關(guān)標(biāo)準(zhǔn)中,強(qiáng)化了可信計(jì)算技術(shù)的使用,從一級(jí)到四級(jí)都提出了可信驗(yàn)證的防護(hù)要求。
可信證明是可信計(jì)算的重要的技術(shù)特征之一。隨著云虛擬化平臺(tái)下可信計(jì)算的發(fā)展,對(duì)可信證明技術(shù)的研究也在不斷深入。本文對(duì)云虛擬化平臺(tái)可信證明的關(guān)鍵技術(shù)進(jìn)行分析和總結(jié),以期為研究人員對(duì)此研究進(jìn)展有個(gè)總體把握,對(duì)未來(lái)研究提供借鑒。
云計(jì)算是目前互聯(lián)網(wǎng)時(shí)代信息基礎(chǔ)設(shè)施與應(yīng)用服務(wù)模式的重要形態(tài),它依托于虛擬化技術(shù),為信息系統(tǒng)的軟硬件資源提供按需共享的應(yīng)用方式。云計(jì)算提供了多樣的服務(wù)模式,包括基礎(chǔ)設(shè)施即服務(wù)(IaaS,infrastructure as a service)、平臺(tái)即服務(wù)(PaaS,platform as a service)、軟件即服務(wù)(SaaS,software as a service),甚至X 即服務(wù)(XaaS,X as a service)。其中,IaaS 具有高度虛擬化、動(dòng)態(tài)伸縮性和龐大規(guī)模的技術(shù)特征,是其他服務(wù)模式的基礎(chǔ),也是整個(gè)云平臺(tái)建設(shè)的基石。本文的研究重點(diǎn)也在IaaS 云。
不同的組織對(duì)可信有不同的定義。其中,可信計(jì)算組(TCG,trusted computing group)的定義得到了普遍的認(rèn)可。TCG 認(rèn)為,若實(shí)體是可信的,則它的行為總是以預(yù)期的方式朝著預(yù)期的目標(biāo)發(fā)展。即若一個(gè)實(shí)體可信,則其行為、能力符合預(yù)期并且可驗(yàn)證其符合預(yù)期。
對(duì)于證明,TCG 規(guī)范中的定義是證明是一種報(bào)告機(jī)制,證明方將其平臺(tái)的身份以及軟硬件配置信息報(bào)告給挑戰(zhàn)方。挑戰(zhàn)方驗(yàn)證成功后,相信證明方提供的身份信息和報(bào)告是正確、可靠的。美國(guó)國(guó)家安全局對(duì)證明的定義[5]則是證明是證明方向挑戰(zhàn)方提供證據(jù)而表明其具備某些特性的行為。文獻(xiàn)[6]在這2 個(gè)定義的基礎(chǔ)上重新定義證明,并給出形式化描述。其認(rèn)為證明是證明方通過(guò)提供證據(jù)和(或)邏輯推理向挑戰(zhàn)方表明自己具有某種屬性的過(guò)程。形式化表示為
其中,S表示證明方,C表示挑戰(zhàn)方;E(S)表示獲取證明信息的操作,R(S,r)表示邏輯推理的操作;evidence 表示證據(jù)的結(jié)果,I(evidence)表示驗(yàn)證證據(jù)結(jié)果的操作,P表示證明方具有的屬性。
結(jié)合可信和證明的定義,可信證明的定義如定義1 所示。
定義1可信證明是證明方向挑戰(zhàn)方提供可信相關(guān)的證據(jù),挑戰(zhàn)方驗(yàn)證可信證據(jù)是否符合預(yù)期來(lái)判斷證明方是否可信的過(guò)程。
根據(jù)可信證明的定義,可信證明應(yīng)包括2 個(gè)基本步驟:一是證明方提供與可信相關(guān)的可信證據(jù),這些可信證據(jù)包括證明方的平臺(tái)身份信息、證明方平臺(tái)軟硬件配置的完整性信息等;二是挑戰(zhàn)方收到可信證據(jù)后,驗(yàn)證其是否符合預(yù)期,并根據(jù)驗(yàn)證結(jié)果推理證明方是否具備可信性。
本節(jié)首先介紹物理平臺(tái)可信證明的關(guān)鍵技術(shù),并在此基礎(chǔ)上,分析將可信證明技術(shù)應(yīng)用到虛擬平臺(tái)時(shí)面臨的問(wèn)題和解決思路。
根據(jù)可信證明的定義,可信證明的過(guò)程分為可信憑證的獲取和可信憑證的驗(yàn)證。根據(jù)可信憑證類型的不同,將可信證明分為平臺(tái)身份證明和平臺(tái)狀態(tài)證明。
平臺(tái)身份證明是通過(guò)提供與平臺(tái)相關(guān)的身份證書(shū)來(lái)驗(yàn)證平臺(tái)是一個(gè)可信的實(shí)體。在物理平臺(tái),作為可信根的可信平臺(tái)模塊(TPM,trusted platform module)中都有一個(gè)唯一的背書(shū)密鑰(EK,endorsement key)來(lái)標(biāo)識(shí)平臺(tái)的身份。若直接采用EK 來(lái)進(jìn)行平臺(tái)身份證明,會(huì)暴露平臺(tái)的真實(shí)身份。對(duì)此,在TPM v1.1 規(guī)范中提出了基于隱私CA(PCA,privacy CA)的平臺(tái)身份證明方案。該方案引入一個(gè)可信第三方(PCA),通過(guò)驗(yàn)證TPM內(nèi)EK 的正確性來(lái)為證明方頒發(fā)身份密鑰(AIK,attestation identity key)證書(shū);當(dāng)證明方向挑戰(zhàn)方請(qǐng)求驗(yàn)證平臺(tái)身份的可信性時(shí),證明方提供AIK證書(shū)作為平臺(tái)的身份信息,挑戰(zhàn)方驗(yàn)證AIK 證書(shū)的正確性來(lái)確定平臺(tái)身份的可信性。該方案雖然在一定程度上避免了身份的泄露,但是AIK 證書(shū)的請(qǐng)求和驗(yàn)證都需要PCA 的參與,PCA 的安全性和性能可能成為該方案的瓶頸。TPM v1.2 提出的直接匿名證明(DAA,direct anonymous attestation)的平臺(tái)身份證明方案[7]采用群簽名和零知識(shí)證明等密碼學(xué)技術(shù)解決了平臺(tái)匿名問(wèn)題,提高了平臺(tái)身份的隱私保護(hù),但是該方案使用的簽名技術(shù)長(zhǎng)度過(guò)長(zhǎng),導(dǎo)致計(jì)算量過(guò)大、效率不高。對(duì)此,一些學(xué)者提出了改良的DAA 方案[8],如基于橢圓曲線及雙線性映射對(duì)的優(yōu)化的DAA 方案,有效降低了傳統(tǒng)DAA 方案中長(zhǎng)度過(guò)長(zhǎng)和計(jì)算量大的問(wèn)題,提高通信和計(jì)算性能。
在平臺(tái)狀態(tài)證明方面,證明方向挑戰(zhàn)方報(bào)告平臺(tái)軟硬件配置的狀態(tài)信息用于驗(yàn)證平臺(tái)的可信性?;诙M(jìn)制的證明是其他證明方法的基礎(chǔ)。該方法是證明方在平臺(tái)自啟動(dòng)時(shí),從硬件可信根TPM 開(kāi)始,遵循“先度量,再驗(yàn)證,最后跳轉(zhuǎn)”的思想,逐級(jí)度量啟動(dòng)序列上實(shí)體的完整性,并將度量結(jié)果的哈希值存儲(chǔ)到TPM 的平臺(tái)配置寄存器(PCR,platform configuration register)內(nèi),如實(shí)地獲取了系統(tǒng)從BIOS 到操作系統(tǒng)各層次的完整性狀態(tài)信息,再將這些度量信息報(bào)告給挑戰(zhàn)方驗(yàn)證。在此基礎(chǔ)上,文獻(xiàn)[9]提出了完整性度量框架(IMA,integrity measurement architecture),該框架將完整性度量擴(kuò)展到了應(yīng)用層,實(shí)現(xiàn)應(yīng)用程序加載時(shí)的完整性度量。IMA 將可信證明研究工作向前推進(jìn)一大步,為實(shí)現(xiàn)系統(tǒng)的完整性度量提供了參考意義。隨后,文獻(xiàn)[10]在IMA 的基礎(chǔ)上提出了一種基于信息流完整性的證明方法(PRIMA,policy-reduced IMA)。該方法通過(guò)增加信息流完整性約束,簡(jiǎn)化了系統(tǒng)完整性證明的范圍。上述基于二進(jìn)制的證明方法存在易泄露平臺(tái)配置信息、擴(kuò)展性差、效率低、TOCTOU(time-of-check to time-of-use)等問(wèn)題[11]。對(duì)此,有些學(xué)者開(kāi)始基于屬性證明(PBA,property-based attestation)方法的研究。PBA 是將系統(tǒng)的某些配置映射為具體的安全屬性,然后證書(shū)中心頒發(fā)相應(yīng)的安全屬性證書(shū),挑戰(zhàn)方通過(guò)驗(yàn)證屬性證書(shū)來(lái)判斷證明方是否可信。PBA 不再直接驗(yàn)證配置信息的哈希值,一定程度上保護(hù)了平臺(tái)的隱私和提高了可擴(kuò)展性。IBM 公司提出了基于屬性的證明框架[12],隨后有學(xué)者提出相應(yīng)的證明方案和具體的證明協(xié)議。文獻(xiàn)[13]提出了基于組件的屬性證明方法,利用證書(shū)權(quán)威機(jī)構(gòu)頒發(fā)各種組件屬性證書(shū),證明方根據(jù)配置的組件屬性證書(shū)和TPM 的完整性度量值向挑戰(zhàn)方證明其配置的狀態(tài)滿足一定的安全屬性,實(shí)現(xiàn)了細(xì)粒度的可信證明。
物理平臺(tái)可信證明的框架如圖1 所示。該框架中包含3 個(gè)實(shí)體:擁有TPM 的證明方、挑戰(zhàn)方以及證書(shū)頒發(fā)方。證明方負(fù)責(zé)基于TPM 獲取平臺(tái)的身份或狀態(tài)信息(如平臺(tái)配置、軟件特征、系統(tǒng)狀態(tài)等),并將這些可信信息通過(guò)驗(yàn)證代理報(bào)告給挑戰(zhàn)方。挑戰(zhàn)方又稱為驗(yàn)證者,負(fù)責(zé)請(qǐng)求證明方的可信信息,并根據(jù)相應(yīng)的驗(yàn)證策略驗(yàn)證證明方的身份或平臺(tái)的狀態(tài),從而判斷其可信性。證書(shū)頒發(fā)方負(fù)責(zé)頒發(fā)證明方的身份證書(shū)或者屬性證書(shū),并在驗(yàn)證時(shí)提供證書(shū)的有效性的驗(yàn)證。3 個(gè)實(shí)體相互合作,共同實(shí)現(xiàn)物理平臺(tái)的可信證明。
圖1 物理平臺(tái)可信證明框架
由于虛擬化平臺(tái)高度虛擬化、動(dòng)態(tài)伸縮、規(guī)模龐大的特征,直接將物理平臺(tái)的可信證明技術(shù)應(yīng)用于虛擬機(jī)平臺(tái)存在一些問(wèn)題,一些學(xué)者對(duì)此展開(kāi)了研究,如圖2 所示。
圖2 虛擬平臺(tái)可信證明關(guān)鍵技術(shù)概括
1) 可信根虛擬化技術(shù)。在物理平臺(tái)下,每個(gè)證明方都擁有一個(gè)硬件防篡改的物理可信根TPM,用于提供平臺(tái)的身份信息,存儲(chǔ)平臺(tái)的可信度量值,以及遠(yuǎn)程證明等。但在虛擬化平臺(tái),由于資源的高度虛擬化,一臺(tái)云服務(wù)器上可以同時(shí)部署多臺(tái)虛擬機(jī),而單個(gè)物理可信根無(wú)法同時(shí)為多臺(tái)虛擬機(jī)提供可信服務(wù),難以滿足云平臺(tái)可信的需求。因此需要可信根虛擬化技術(shù),為虛擬機(jī)提供可信證明的基礎(chǔ)。
2) 虛擬平臺(tái)的身份證明技術(shù)。對(duì)于物理平臺(tái),其物理TPM擁有一個(gè)唯一且可信的EK標(biāo)識(shí)平臺(tái)的身份。但對(duì)于虛擬機(jī),由于可信根虛擬化技術(shù),無(wú)法提供一個(gè)硬件可信的虛擬EK(vEK,virtual EK)標(biāo)識(shí)虛擬機(jī)的身份。因此需要建立一條從物理TPM到虛擬TPM 的證書(shū)鏈,將信任從物理平臺(tái)擴(kuò)展到虛擬機(jī)。除此之外,PCA 和DAA 的平臺(tái)身份證明方法,因?yàn)槠鋵?duì)隱私CA 的過(guò)度依賴或計(jì)算量過(guò)大等問(wèn)題,難以適應(yīng)大規(guī)模的云虛擬化環(huán)境?;诃h(huán)簽名的身份證明技術(shù)為解決大規(guī)模身份證明提供思路。
3) 虛擬平臺(tái)的狀態(tài)證明技術(shù)。物理平臺(tái)從可信根開(kāi)始構(gòu)建信任鏈,通過(guò)逐級(jí)度量的方式獲得平臺(tái)的可信狀態(tài)信息,并通過(guò)基于二進(jìn)制或?qū)傩缘姆绞竭M(jìn)行平臺(tái)的狀態(tài)驗(yàn)證。對(duì)于虛擬平臺(tái),虛擬機(jī)的可信憑證不僅可以利用虛擬可信根通過(guò)構(gòu)建信任鏈的方式獲取,還可以利用虛擬機(jī)外度量技術(shù)。此外,對(duì)于云虛擬化平臺(tái),由于其動(dòng)態(tài)的特性,進(jìn)一步研究了基于行為的平臺(tái)狀態(tài)證明方法,以期實(shí)現(xiàn)對(duì)虛擬機(jī)動(dòng)態(tài)、實(shí)時(shí)的可信證明。
4) 虛擬機(jī)的可信證明框架。在物理平臺(tái)下,挑戰(zhàn)方僅需與物理平臺(tái)(證明方)建立可信連接以驗(yàn)證其可信性。但對(duì)于虛擬平臺(tái),虛擬機(jī)監(jiān)視器(VMM,virtual machine monitor)和底層宿主機(jī)的可信性可能影響虛擬機(jī)的可信性。因此,在對(duì)虛擬機(jī)進(jìn)行可信證明時(shí),也需要證明底層平臺(tái)的可信性。此時(shí)驗(yàn)證的對(duì)象發(fā)生了變化,可信證明框架也隨之改變。
下一節(jié)將從這4 個(gè)方面梳理虛擬平臺(tái)可信證明的研究現(xiàn)狀。
虛擬化技術(shù)是云計(jì)算的核心技術(shù)之一,其使一臺(tái)云服務(wù)器上同時(shí)運(yùn)行多臺(tái)虛擬機(jī)。但是在可信證明中,單個(gè)物理可信根無(wú)法為每臺(tái)虛擬機(jī)提供唯一的身份信息;并且,虛擬機(jī)的動(dòng)態(tài)特性可能使通過(guò)構(gòu)建信任鏈獲取可信度量值的方案產(chǎn)生信任環(huán)路;此外,多臺(tái)虛擬機(jī)的可信度量值的存儲(chǔ)可能造成可信根資源訪問(wèn)沖突,降低可信性。為滿足虛擬平臺(tái)可信的需求,文獻(xiàn)[14]提出了虛擬可信平臺(tái)模塊(vTPM,virtual trusted platform module)的概念,每臺(tái)虛擬機(jī)都擁有獨(dú)立的vTPM。vTPM 通過(guò)模擬物理TPM 的功能,為虛擬機(jī)提供身份憑證、存儲(chǔ)可信度量值、保護(hù)敏感信息等,實(shí)現(xiàn)了多臺(tái)虛擬機(jī)對(duì)TPM 資源的共享和復(fù)用。
對(duì)于vTPM 的實(shí)現(xiàn)方式,國(guó)內(nèi)外展開(kāi)了大量的研究,本文接下來(lái)將按照虛擬化類型和虛擬機(jī)監(jiān)視器類型2 種分類方式展開(kāi)分析,并進(jìn)一步介紹我國(guó)物理可信根及其虛擬化技術(shù)的研究現(xiàn)狀。
4.1.1 基于虛擬化類型的vTPM
根據(jù)虛擬化類型,vTPM 的實(shí)現(xiàn)方式可以分為軟件vTPM、硬件vTPM 和半虛擬化vTPM。圖3顯示了Xen 平臺(tái)下的這3 種實(shí)現(xiàn)方式。
圖3 Xen 平臺(tái)下vTPM 實(shí)現(xiàn)方式
軟件vTPM 是通過(guò)軟件模擬的方式為每臺(tái)虛擬機(jī)提供一個(gè)與物理TPM 相同功能的vTPM 實(shí)例,如圖3(a)所示。文獻(xiàn)[14]首次提出了基于Xen 平臺(tái)的軟件vTPM 實(shí)現(xiàn)方案,并介紹了在通用TPM 和IBM 的PCIXCC 外部卡2 種情況下的vTPM 實(shí)現(xiàn)框架。該方案是由Dom0 中的TPM 管理器為每臺(tái)虛擬機(jī)創(chuàng)建一個(gè)vTPM 實(shí)例,并利用Xen 平臺(tái)的通信機(jī)制和隔離特性使虛擬機(jī)能夠使用對(duì)應(yīng)的vTPM 實(shí)例構(gòu)建自身的可信環(huán)境。同時(shí),底層的物理平臺(tái)利用物理TPM 構(gòu)建可信的運(yùn)行環(huán)境,vTPM 與TPM協(xié)同保證這個(gè)平臺(tái)的可信。此外,文獻(xiàn)[15]提出了一個(gè)云租戶可配置的軟件的vTPM 實(shí)現(xiàn)方案。該方案接收用戶的安全策略,并根據(jù)策略為用戶的虛擬機(jī)提供一個(gè)μTPM,確保云服務(wù)提供商可以為用戶提供一個(gè)滿足其安全需求的可信虛擬機(jī)。
軟件vTPM 的實(shí)現(xiàn)方案可同時(shí)為多臺(tái)虛擬機(jī)提供虛擬可信根,可用性較高。但是也存在一些明顯的問(wèn)題:首先,軟件模擬的方式導(dǎo)致存儲(chǔ)的敏感信息不再受硬件保護(hù),并且軟件vTPM 的安全性也無(wú)法保證;其次,由于vTPM 實(shí)例運(yùn)行在Dom0 中,利用內(nèi)存泄露等方式便可竊取vTPM 實(shí)例中的數(shù)據(jù),增加了新的攻擊面;再者,vTPM 與虛擬機(jī)間的綁定關(guān)系是明文配置,攻擊者可以據(jù)此獲得敏感的數(shù)據(jù)。
為了提高軟件vTPM 的安全性,文獻(xiàn)[16]提出將vTPM 置于CPU 的系統(tǒng)管理模式(SMM,system management mode)中運(yùn)行,實(shí)現(xiàn)了強(qiáng)隔離,保證了vTPM 的安全。然而進(jìn)入SMM 模式需要掛起其他所有的CPU 內(nèi)核,性能開(kāi)銷大。文獻(xiàn)[17]基于Intel SGX 技術(shù)的隔離特性設(shè)計(jì)了一個(gè)新的可信安全組件eTPM(enclave TPM),通過(guò)將eTPM 的代碼數(shù)據(jù)放在SGX(software guard extensions)的隔離區(qū)域enclave 中運(yùn)行,確保eTPM 運(yùn)行時(shí)的安全。
硬件vTPM 是通過(guò)修改物理TPM,使之可以運(yùn)行多個(gè)vTPM 實(shí)例,從而為每臺(tái)虛擬機(jī)提供獨(dú)立的vTPM,如圖3(b)所示。
文獻(xiàn)[18]基于Intel VT-x 技術(shù)提出了一個(gè)硬件輔助vTPM 方案。該方案中擴(kuò)展了TPM 命令集,為每臺(tái)VM 提供一個(gè)TPM 控制結(jié)構(gòu)(TPMCS,TPM control structure),并為每臺(tái)VM 保存和加載單獨(dú)的vTPM 上下文,并且利用基于硬件保護(hù)的保護(hù)環(huán)隔離vTPM 的上下文。當(dāng)特定VM 使用其vTPM 時(shí),vTPM 的前端驅(qū)動(dòng)調(diào)用TPM 命令加載到TPM 對(duì)應(yīng)的TPMCS 中,實(shí)現(xiàn)了多臺(tái)VM 共用物理TPM 的資源。該方案允許每臺(tái)VM 使用完整的TPM 的功能,好像每臺(tái)VM 都擁有屬于自己的TPM,并且由硬件保護(hù)虛擬機(jī)的敏感信息,可信性和安全性高。但是該方案需要硬件輔助虛擬化的支持,并且需要修改物理TPM,對(duì)于已經(jīng)部署TPM 的環(huán)境改動(dòng)較大。此外,該方案無(wú)法支持多臺(tái)虛擬機(jī)的并發(fā)訪問(wèn),可用性不高,無(wú)法不適用于大規(guī)模的云虛擬化平臺(tái)。
半虛擬化vTPM 是在虛擬機(jī)監(jiān)視器中添加對(duì)物理TPM 的調(diào)度機(jī)制以及提供某些接口,為虛擬機(jī)提供中介訪問(wèn)物理TPM,如圖3(c)所示。
文獻(xiàn)[19]在虛擬機(jī)監(jiān)視器中增加了半虛擬化模塊來(lái)實(shí)現(xiàn)VM 對(duì)TPM 的訪問(wèn),盡可能地保證所有VM 之間公平的共享一個(gè)物理TPM。該半虛擬化模塊通過(guò)一個(gè)超級(jí)調(diào)用接口來(lái)允許VM 直接調(diào)用虛擬機(jī)監(jiān)視器,并對(duì)TPM 的某些部分(如PCR 和計(jì)數(shù)器)進(jìn)行了復(fù)制和分區(qū)。模塊內(nèi)的上下文管理器維護(hù)了虛擬機(jī)與vTPM 的關(guān)聯(lián),隔離不同的VM 的TPM 上下文。此外,該半虛擬化模塊還包含了調(diào)度程序和命令過(guò)濾器等。該方案克服了軟件vTPM 局限性和對(duì)硬件輔助虛擬化的需求;實(shí)現(xiàn)了對(duì)物理TPM 的多路復(fù)用。但是同一時(shí)間內(nèi)僅允許一臺(tái)虛擬機(jī)訪問(wèn)TPM,無(wú)法支持多虛擬機(jī)的并發(fā)訪問(wèn),可用性差,也尚未解決虛擬機(jī)身份密鑰的分配和管理的問(wèn)題。
4.1.2 基于虛擬機(jī)監(jiān)視器類型的vTPM
基于虛擬機(jī)監(jiān)視器類型vTPM 的實(shí)現(xiàn)方式,主要分為Xen 和KVM(Kernel-based VM)2 種架構(gòu),前文已分析了Xen 架構(gòu)下vTPM 的實(shí)現(xiàn)方式,本節(jié)將對(duì)KVM 中vTPM 的實(shí)現(xiàn)方式展開(kāi)介紹。
KVM架構(gòu)下vTPM的實(shí)現(xiàn)方式主要分為以下3類:TPM passthrough、基于函數(shù)庫(kù)模擬和CUSE TPM。
TPM passthrough 是一種基于硬件的vTPM 實(shí)現(xiàn)方式。它利用I/O 虛擬化技術(shù)使虛擬機(jī)直接使用物理TPM 來(lái)實(shí)現(xiàn)vTPM 的所有計(jì)算和存儲(chǔ)操作。該方式將虛擬機(jī)和物理TPM 直接綁定,可信性強(qiáng);但也存在物理TPM 單一時(shí)刻僅能被單臺(tái)VM 獨(dú)占的問(wèn)題,制約了可用性。
基于函數(shù)庫(kù)模擬和CUSE TPM 都是軟件vTPM的實(shí)現(xiàn)。區(qū)別在于,基于函數(shù)庫(kù)模擬是在Qemu 內(nèi)部使用libtpms 函數(shù)庫(kù)模擬物理TPM,從而為每臺(tái)VM 提供vTPM 實(shí)例。CUSE TPM 是在QEMU 外部使用libtpms 函數(shù)庫(kù)模擬物理TPM,再通過(guò)宿主機(jī)提供的IOCTL 接口訪問(wèn)vTPM 實(shí)例。這2 種方式具有軟件vTPM 支持虛擬機(jī)并發(fā)訪問(wèn)、高可用性的優(yōu)點(diǎn);但同樣存在vTPM 自身的安全性,以及存儲(chǔ)的敏感信息缺少安全防護(hù)的問(wèn)題?;贗ntel SGX技術(shù)的物理安全隔離特性和密封功能,可以實(shí)現(xiàn)對(duì)KVM 架構(gòu)下的軟件vTPM 運(yùn)行時(shí)的安全保護(hù)[20]。
4.1.3 國(guó)產(chǎn)可信根虛擬化
我國(guó)也高度重視對(duì)可信計(jì)算領(lǐng)域的研究與發(fā)展,目前已經(jīng)形成了基于使用國(guó)產(chǎn)密碼算法的可信密碼模塊(TCM,trusted cryptography module)的可信計(jì)算體系,制定了一系列相關(guān)的標(biāo)準(zhǔn)。TCM 目前已得到廣泛的應(yīng)用,多種設(shè)備等已普遍集成TCM,可支持基于TCM 的安全啟動(dòng)和信任鏈的構(gòu)建。
針對(duì)TCM虛擬化的研究也受到了廣泛的關(guān)注。文獻(xiàn)[21]提出了基于單根設(shè)備虛擬化技術(shù)的硬件vTCM 實(shí)現(xiàn)方案。在該方案中,vTCM 是基于硬件實(shí)現(xiàn),與VM 一一對(duì)應(yīng),繞過(guò)了VMM,直接為VM提供可信密碼服務(wù)。這不僅提高了安全性,也進(jìn)一步提高了效率,滿足高安全可信虛擬環(huán)境的需求。隨后,文獻(xiàn)[22]也提出了一種vTCM 方案,該方案是在底層宿主機(jī)的物理環(huán)境中增加少量的vTCM,保證物理TCM 和vTCM 可以同時(shí)運(yùn)行。在vTCM的調(diào)度模塊和管理模塊的相互配合下實(shí)現(xiàn)在vTCM有限的情況下多個(gè)vTCM 的調(diào)度切換,如此一來(lái),不僅支持為每臺(tái)虛擬機(jī)分配一個(gè)綁定的vTCM 實(shí)例,而且保證這些實(shí)例輪流在物理vTCM 場(chǎng)景中運(yùn)行,確保了安全要求和成本之間的平衡。
無(wú)論是TPM 還是TCM 都是被動(dòng)設(shè)備,其功能的實(shí)現(xiàn)依賴于上層應(yīng)用的調(diào)用。對(duì)此,我國(guó)提出了的可信平臺(tái)控制模塊(TPCM,trusted platform control module)的概念[23],將對(duì)稱密碼和非對(duì)稱密碼相結(jié)合,以TPCM 為根對(duì)整個(gè)平臺(tái)進(jìn)行主動(dòng)控制和可信度量,增強(qiáng)了可信芯片的運(yùn)算能力和控制能力,提高了平臺(tái)的安全性和效率。TPCM 不再?gòu)膶儆贑PU,可以進(jìn)行獨(dú)立的設(shè)計(jì),因此,其擁有比TPM 更好的性能;并且TPCM 的主動(dòng)控制能力可以對(duì)云虛擬化平臺(tái)實(shí)施動(dòng)態(tài)的監(jiān)控,保證運(yùn)行環(huán)境實(shí)時(shí)的可信。因此,TPCM 將來(lái)很有可能成為實(shí)現(xiàn)云虛擬化平臺(tái)可信根虛擬化的一個(gè)發(fā)展方向。
4.1.4 小結(jié)
本節(jié)首先從虛擬化類型和虛擬機(jī)監(jiān)視器類型2個(gè)角度介紹了現(xiàn)有的vTPM 的實(shí)現(xiàn)方式,方案對(duì)比如表1 所示。進(jìn)一步地,介紹了國(guó)內(nèi)可信根TCM 和TPCM 以及它們的虛擬化研究現(xiàn)狀。
表1 vTPM 類型對(duì)比
目前來(lái)說(shuō),可信根虛擬化技術(shù)存在一些問(wèn)題。首先,軟件的vTPM 實(shí)現(xiàn)方式通過(guò)軟件模擬TPM的功能,違背了可信計(jì)算使用硬件保護(hù)敏感信息的初衷,無(wú)法保證軟件vTPM 自身的安全性以及其保護(hù)的敏感信息的可信性?,F(xiàn)有的解決方案也存在引入額外性能開(kāi)銷的問(wèn)題。其次,硬件和半虛擬化的vTPM 實(shí)現(xiàn)方式,在某一時(shí)刻,物理TPM 僅能被單臺(tái)虛擬機(jī)獨(dú)占,嚴(yán)重影響了可用性。面對(duì)動(dòng)態(tài)化、大規(guī)模、分布式的云虛擬化平臺(tái),現(xiàn)有的可信根虛擬化方案無(wú)法滿足云平臺(tái)的大量的可信度量的需求。具有主動(dòng)控制能力的TPCM 在實(shí)現(xiàn)可信計(jì)算虛擬化技術(shù)中更具有優(yōu)勢(shì),但目前TPCM 的相關(guān)技術(shù)并不成熟,未來(lái)還需進(jìn)一步的研究和探索。
平臺(tái)身份證明是證明方向挑戰(zhàn)方提供平臺(tái)的身份證書(shū)來(lái)證明其是可以被信任的實(shí)體。虛擬機(jī)的平臺(tái)身份證明將從證書(shū)鏈的擴(kuò)展和平臺(tái)身份驗(yàn)證2個(gè)方面進(jìn)行歸納、分析和總結(jié)。
4.2.1 證書(shū)鏈的擴(kuò)展
每個(gè)物理TPM都擁有一個(gè)唯一的EK標(biāo)識(shí)平臺(tái)的身份,但出于安全和隱私保護(hù)的目的,平臺(tái)身份證明過(guò)程并不直接使用EK,而是采用EK 的別名AIK。由于EK 是物理可信的,根據(jù)信任傳遞特性,則AIK 也是可信的,從而可以利用AIK 驗(yàn)證平臺(tái)身份的可信。vTPM 的實(shí)現(xiàn)方式中,軟件vTPM 通過(guò)軟件模擬的方式為虛擬機(jī)提供類似物理TPM 的接口和功能,被廣泛應(yīng)用。但軟件vTPM 沒(méi)有硬件保護(hù),無(wú)法提供一個(gè)可信的vEK,進(jìn)而無(wú)法生成可信的虛擬AIK(vAIK,virtual AIK)。對(duì)此,虛擬機(jī)平臺(tái)身份證明時(shí),需要將證書(shū)鏈從物理TPM 擴(kuò)展到vTPM。
為了實(shí)現(xiàn)證書(shū)鏈的擴(kuò)展,文獻(xiàn)[14]提出了EK→AIK→vEK→vAIK 的證書(shū)鏈方案。該方案中vEK和vAIK 均由vTPM 產(chǎn)生,利用物理TPM 中的AIK簽名來(lái)綁定vEK 的可信,通過(guò)PCA 驗(yàn)證vEK 的可信并頒發(fā)vAIK 證書(shū)用于虛擬機(jī)的身份證明。該方案直接將信任擴(kuò)展到虛擬機(jī),TPM 和vTPM 的證書(shū)結(jié)構(gòu)一致,現(xiàn)有的物理平臺(tái)身份證明協(xié)議可以直接應(yīng)用于虛擬機(jī),易于部署和實(shí)現(xiàn)。然而,AIK 的時(shí)效很短,AIK 的失效會(huì)導(dǎo)致vEK 簽名的失效,最終導(dǎo)致vAIK 的失效,因此需要頻繁地向PCA 申請(qǐng)AIK 證書(shū)、vAIK 證書(shū),增加PCA 的負(fù)擔(dān);并且,此方案需要使用AIK 對(duì)vEK 簽名,違背了TCG 規(guī)范中AIK 只能對(duì)TPM 內(nèi)部數(shù)據(jù)簽名的要求。
為了解決AIK 時(shí)效短的問(wèn)題,文獻(xiàn)[24]提出了EK→vEK→vAIK 的證書(shū)鏈方案。該方案用TPM 的EK 替代AIK 對(duì)vEK 進(jìn)行簽名綁定。由于EK 唯一且一直存在,因此解決了AIK 時(shí)效短的問(wèn)題。但根據(jù)TCG 的規(guī)范,EK 證書(shū)同樣不能用于外部簽名。
為了減少 PCA 的負(fù)擔(dān),文獻(xiàn)[25]提出了EK→AIK→vAIK 的證書(shū)鏈方案。該方案中vAIK 證書(shū)直接由AIK 簽發(fā),從而減少了PCA 的使用。但同樣存在不符合TCG 規(guī)范的問(wèn)題。
為了符合 TCG 規(guī)范,文獻(xiàn)[26]提出了EK→AIK→SK→vAIK 的證書(shū)鏈方案。該方案在TPM 內(nèi)引入簽名密鑰(SK,signature key),并以此為中介實(shí)現(xiàn)AIK 對(duì)vAIK 的間接簽名。但該方案需要vAIK 和SK 一一綁定,產(chǎn)生大量的密鑰冗余,并且vAIK 的重構(gòu)需要生成新的SK,也帶來(lái)新的性能壓力。文獻(xiàn)[27]在TPM 內(nèi)增加一類證書(shū)——VMEK(virtual machine extension key),并提出了VMEK→vEK→vAIK 的證書(shū)鏈方案。VMEK 的密鑰不可遷移,且可對(duì)TPM 內(nèi)外的數(shù)據(jù)簽名和加密。由VMEK 對(duì)vEK 簽名,實(shí)現(xiàn)了證書(shū)鏈的擴(kuò)展,解決了違背TCG 規(guī)范、增加密鑰冗余和PCA 性能負(fù)擔(dān)等問(wèn)題。
上述的證書(shū)鏈擴(kuò)展方案中,vAIK 證書(shū)的申請(qǐng)都需要TPM 的支持,虛擬機(jī)狀態(tài)切換頻繁,將增加系統(tǒng)的負(fù)擔(dān)。對(duì)此,文獻(xiàn)[28] 提出了EK→tEK→vEK→vAIK 的證書(shū)鏈方案。該方案是在Xen 平臺(tái)下新增一個(gè)DomainT 域,該域擁有一個(gè)身份密鑰tEK。首先CA 驗(yàn)證DomainT 的完整性向其簽發(fā)tEK 證書(shū);再由DomainT 簽發(fā)vEK 證書(shū),進(jìn)而保證vAIK 證書(shū)的合法性。vAIK 證書(shū)的生成由DomainT 參與,減少了對(duì)TPM 的訪問(wèn),減輕了系統(tǒng)負(fù)擔(dān)。
綜上所述,現(xiàn)有的虛擬機(jī)證書(shū)鏈擴(kuò)展方案對(duì)比如表2 所示,證書(shū)鏈的擴(kuò)展方案正在向符合TCG規(guī)范,減少密鑰冗余,降低PCA 負(fù)擔(dān),以及vAIK證書(shū)的申請(qǐng)避免TPM 的參與來(lái)不斷優(yōu)化和完善。
表2 虛擬機(jī)證書(shū)鏈擴(kuò)展方案對(duì)比
4.2.2 平臺(tái)身份驗(yàn)證
虛擬機(jī)的平臺(tái)身份證明中,先通過(guò)證書(shū)鏈擴(kuò)展獲取虛擬機(jī)的可信身份證書(shū),進(jìn)一步需進(jìn)行平臺(tái)身份驗(yàn)證。在物理平臺(tái)中,典型的方案為PCA方案和DAA 方案。vTPM 的設(shè)計(jì)和實(shí)現(xiàn)使這些方案可以直接應(yīng)用于虛擬機(jī)的身份驗(yàn)證,但是在實(shí)際應(yīng)用中面臨一些問(wèn)題。首先,PCA 方案中,證明過(guò)程的各個(gè)操作都需要PCA 的參與,PCA 的安全性和性能可能成為平臺(tái)身份證明的瓶頸。在云虛擬化環(huán)境,虛擬機(jī)的數(shù)量顯著增加,更加劇了PCA 的負(fù)擔(dān)。其次,DAA 方案雖然克服了PCA 方案中PCA 瓶頸局限性,但其復(fù)雜的計(jì)算量使其無(wú)法適用于大規(guī)模的云虛擬化平臺(tái)。為此,一些學(xué)者將研究聚焦于基于環(huán)簽名[29]的平臺(tái)身份證明。
基于環(huán)簽名的平臺(tái)身份證明方案[30]是選定一個(gè)臨時(shí)的包含簽名者(證明方)的集合,簽名者利用自己的私鑰和集合中其他成員的公鑰獨(dú)立地產(chǎn)生簽名,挑戰(zhàn)方通過(guò)驗(yàn)證簽名的正確性,確定證明方身份的合法性。該方案中,挑戰(zhàn)方無(wú)法知道具體的簽名者,滿足匿名性的要求;集合中的其他成員并不知道自己包含其中,成員可以動(dòng)態(tài)地增減,可擴(kuò)展性強(qiáng);并且方案中不存在群管理員,也避免了中心節(jié)點(diǎn)的性能瓶頸問(wèn)題。文獻(xiàn)[31]設(shè)計(jì)了一種基于環(huán)簽名的虛擬機(jī)遠(yuǎn)程證明方案。該方案引入了一個(gè)私鑰生成中心(PKG,private key generation),首先云平臺(tái)采用基于PCA 的證明方案向PKG 證明物理平臺(tái)的可信性;然后PKG 和vTPM 管理器通過(guò)無(wú)證書(shū)算法共同生成了vTPM 環(huán)簽名密鑰;最后利用環(huán)簽名技術(shù)實(shí)現(xiàn)虛擬機(jī)的可信證明。
PCA 方案、DAA 方案以及基于環(huán)簽名的身份證明方案對(duì)比如表3 所示。對(duì)于大規(guī)模的云虛擬化環(huán)境,基于環(huán)簽名的方案更具有優(yōu)勢(shì)。但是環(huán)簽名的無(wú)條件匿名,很難追溯不可信的證明方,并且基于環(huán)簽名的研究相對(duì)較少,還處于起步階段,此方案的推廣和應(yīng)用還需進(jìn)一步探索。
表3 平臺(tái)身份證明方案對(duì)比
平臺(tái)狀態(tài)證明是挑戰(zhàn)方驗(yàn)證證明方的平臺(tái)狀態(tài)(如軟硬件配置、系統(tǒng)狀態(tài))的可信性的過(guò)程。本節(jié)將從狀態(tài)度量和平臺(tái)狀態(tài)驗(yàn)證2 個(gè)方面來(lái)探討。
4.3.1 狀態(tài)度量
狀態(tài)度量是為了獲取證明方的可信度量憑證。從技術(shù)實(shí)現(xiàn)角度,可以將其分為虛擬機(jī)內(nèi)度量和虛擬機(jī)外度量。
1) 虛擬機(jī)內(nèi)度量
虛擬機(jī)內(nèi)度量是將度量軟件置于虛擬機(jī)內(nèi)部,通過(guò)構(gòu)建信任鏈的方式,逐級(jí)度量來(lái)獲取虛擬機(jī)的可信憑證。
基于vTPM,傳統(tǒng)物理平臺(tái)的IMA、PRIMA 等完整性度量方案可以直接用于虛擬機(jī),實(shí)現(xiàn)虛擬機(jī)內(nèi)的平臺(tái)狀態(tài)度量。除此之外,文獻(xiàn)[32]在每臺(tái)虛擬機(jī)內(nèi)部以內(nèi)核模塊的形式安裝感知代理,利用此代理監(jiān)控虛擬機(jī)內(nèi)的系統(tǒng)事件,并將收集到的信息存儲(chǔ)到一個(gè)共享的內(nèi)存區(qū)域,最后由中心監(jiān)控軟件驗(yàn)證這些信息和控制相應(yīng)的代理。
虛擬機(jī)內(nèi)度量的方式可以實(shí)時(shí)獲取虛擬機(jī)軟硬件配置的完整性度量值,直接且易于實(shí)現(xiàn)。但這種方式需要將度量軟件和被度量對(duì)象放在同一區(qū)域,度量軟件易受到不合法程序的攻擊,安全性低;其次,這種方式只能檢測(cè)虛擬機(jī)內(nèi)部的安全攻擊,對(duì)于虛擬機(jī)外部的同駐攻擊、側(cè)信道攻擊等無(wú)能為力;再者,虛擬機(jī)內(nèi)度量的方式需要云服務(wù)提供商為每臺(tái)虛擬機(jī)都提供虛擬可信根(vTCM、vTPM 等)和部署遠(yuǎn)程證明代理,增加了部署的難度和造成資源的浪費(fèi)。
2) 虛擬機(jī)外度量
虛擬機(jī)外度量的方式是通過(guò)在虛擬機(jī)外部攔截虛擬機(jī)事件,間接獲取虛擬機(jī)的可信證據(jù)。
虛擬機(jī)外度量的方式可以通過(guò)攔截系統(tǒng)調(diào)用等技術(shù)實(shí)現(xiàn)。文獻(xiàn)[33]提出的Patagonix 架構(gòu)就是利用虛擬機(jī)監(jiān)視器控制內(nèi)存管理單元,在所有程序執(zhí)行前度量其二進(jìn)制文件內(nèi)存頁(yè)的完整性,從而驗(yàn)證虛擬機(jī)是否發(fā)生rootkit攻擊;文獻(xiàn)[34]提出的HIMA架構(gòu)是在虛擬機(jī)監(jiān)視器內(nèi)添加鉤子,主動(dòng)攔截虛擬機(jī)內(nèi)調(diào)用、中斷、異常等,阻止未授權(quán)的二進(jìn)制文件的執(zhí)行,但這對(duì)虛擬機(jī)的每次系統(tǒng)調(diào)用都執(zhí)行相應(yīng)的處理,系統(tǒng)開(kāi)銷較大;文獻(xiàn)[35]提出了OB-IMA完整性度量方案,該方案也是在虛擬機(jī)外部通過(guò)攔截系統(tǒng)調(diào)用的方式度量虛擬機(jī)內(nèi)關(guān)鍵文件的完整性,不僅度量了IMA 方案中所考慮的文件,還進(jìn)一步度量了影響系統(tǒng)行為和完整性的系統(tǒng)配置文件、程序加載器和腳本解釋器等文件。在此基礎(chǔ)上,文獻(xiàn)[36]進(jìn)一步提出了虛擬機(jī)內(nèi)度量和虛擬機(jī)外度量相協(xié)同的完整性度量方案,并在Windows 虛擬機(jī)內(nèi)實(shí)現(xiàn)了該完整性度量方案,具有可接受的性能影響。
虛擬機(jī)自省技術(shù)(VMI,virtual machine introspection)作為虛擬機(jī)外度量中最流行的一種技術(shù),也常被用于虛擬機(jī)外的可信度量。文獻(xiàn)[37]在虛擬機(jī)外部通過(guò)VMI、地址轉(zhuǎn)換以及內(nèi)容定位等技術(shù),度量虛擬機(jī)內(nèi)部運(yùn)行的進(jìn)程、內(nèi)核模塊以及動(dòng)態(tài)鏈接庫(kù)中不變量的完整性,以此來(lái)判斷程序的可信性。針對(duì)云計(jì)算環(huán)境中加密服務(wù)調(diào)用的安全性,文獻(xiàn)[38]提出了En-ACCI 方案,利用VMI 技術(shù)提供的豐富的虛擬機(jī)上下文信息,更好實(shí)現(xiàn)了訪問(wèn)控制和審計(jì)。但該方案僅在加密服務(wù)調(diào)用時(shí)才驗(yàn)證,未對(duì)已經(jīng)驗(yàn)證過(guò)的代碼頁(yè)提供任何保護(hù),易遭受TOCTOU 攻擊。對(duì)此,文獻(xiàn)[39]提出了一種透明且細(xì)粒度的二進(jìn)制完整性驗(yàn)證方案(TF-BIV),該方案在進(jìn)程創(chuàng)建時(shí)識(shí)別敏感進(jìn)程,檢查與進(jìn)程相關(guān)的Guest OS 內(nèi)核及依賴的二進(jìn)制文件的完整性,并且利用現(xiàn)有的Intel EPT(extended page table)和MTF(monitor trap flag)機(jī)制來(lái)連續(xù)監(jiān)視對(duì)目標(biāo)進(jìn)程頁(yè)和已驗(yàn)證物理頁(yè)的更新,有效地滿足了二進(jìn)制驗(yàn)證方案需滿足的隔離性、透明性、TOCTOU 攻擊和細(xì)粒度的驗(yàn)證,且性能開(kāi)銷很小。
與虛擬機(jī)內(nèi)度量的方式相比,虛擬機(jī)外度量的方式將度量軟件與度量對(duì)象分離,度量軟件不易被攻擊者屏蔽,增加了安全性。但是由于無(wú)法直接獲取虛擬機(jī)內(nèi)的可信度量值,存在語(yǔ)義鴻溝等問(wèn)題。
綜上所述,虛擬機(jī)內(nèi)度量和虛擬機(jī)外度量這2 種方式的對(duì)比如表4 所示。虛擬機(jī)內(nèi)度量的方式可以直接度量虛擬機(jī)內(nèi)的狀態(tài)的度量值,獲得豐富的語(yǔ)義信息,但是度量軟件與度量對(duì)象不隔離,安全性較差;虛擬機(jī)外度量的方式是在虛擬機(jī)外獲取虛擬機(jī)的可信證據(jù),對(duì)虛擬機(jī)透明,因此安全性較高,但是語(yǔ)義信息空白會(huì)導(dǎo)致語(yǔ)義信息缺失。
表4 虛擬機(jī)可信狀態(tài)度量方式對(duì)比
4.3.2 平臺(tái)狀態(tài)驗(yàn)證
根據(jù)可信度量憑證的差異,可以將虛擬化平臺(tái)的平臺(tái)狀態(tài)驗(yàn)證分為基于二進(jìn)制的證明、基于屬性的證明以及基于行為的證明。
1) 基于二進(jìn)制的證明
基于二進(jìn)制的證明是在平臺(tái)狀態(tài)證明時(shí)直接用二進(jìn)制哈希值表示平臺(tái)的可信憑證。
第一類是通過(guò)在服務(wù)器內(nèi)部構(gòu)建一個(gè)可信虛擬機(jī)監(jiān)視器(TVMM,trusted virtual machine monitor),為虛擬機(jī)提供一個(gè)可信的隔離執(zhí)行環(huán)境。文獻(xiàn)[40]提出的Terra 模型是構(gòu)建了一個(gè)TVMM,實(shí)現(xiàn)在一個(gè)高可靠的通用平臺(tái)上為用戶提供互相隔離的虛擬機(jī)底層部件,從而保護(hù)了閉盒虛擬機(jī)的隱私和完整性。文獻(xiàn)[41]提出了可信云計(jì)算平臺(tái)(TCCP,trusted cloud computing platform)模型。該模型引入了一個(gè)云外部可信實(shí)體——可信協(xié)調(diào)器(TC,trusted coordinator),基于二進(jìn)制證明技術(shù),TC 可以驗(yàn)證云節(jié)點(diǎn)的可信性并控制虛擬機(jī)只能在可信節(jié)點(diǎn)中啟動(dòng)和遷移。在TCCP 模型中,所有的安全可信操作都需要與TC 交互,當(dāng)節(jié)點(diǎn)規(guī)模很大時(shí),TC 的節(jié)點(diǎn)管理的時(shí)間開(kāi)銷也會(huì)增加,制約性能。對(duì)此,有學(xué)者提出在云平臺(tái)內(nèi)部選擇節(jié)點(diǎn)充當(dāng)TC 的角色[42],有效地將TC 的任務(wù)分散,緩解TC的壓力。
第二類是基于vTPM 的實(shí)現(xiàn),將傳統(tǒng)的物理平臺(tái)的二進(jìn)制可信證明方案用于虛擬機(jī)。文獻(xiàn)[43]提出了雙層非平衡散列樹(shù)的遠(yuǎn)程證明方案。該方案引入了層級(jí)的概念,構(gòu)建了雙層非平衡散列樹(shù),將單一樹(shù)擴(kuò)展為主樹(shù)和子樹(shù),主樹(shù)和子樹(shù)分別對(duì)應(yīng)云平臺(tái)中的虛擬機(jī)和虛擬機(jī)中的度量組件,證明時(shí)僅需要提供待度量組件和認(rèn)證路徑,細(xì)化了證明粒度,提高了證明效率,還提供了較好的隱私保護(hù)能力。文獻(xiàn)[44]提出了一種博弈論的方法來(lái)分析開(kāi)源云的可信性,同時(shí)討論了可信計(jì)算對(duì)云計(jì)算的有效性。開(kāi)源的軟件系統(tǒng)提高了攻擊者對(duì)軟件系統(tǒng)的了解,增加了系統(tǒng)遭受攻擊的可能性,但云租戶可以利用基于二進(jìn)制的證明技術(shù)驗(yàn)證底層平臺(tái)和虛擬機(jī)的可信性,增強(qiáng)了對(duì)云服務(wù)提供商的信任程度。
構(gòu)建TVMM 的二進(jìn)制證明方式本質(zhì)上是對(duì)物理平臺(tái)進(jìn)行二進(jìn)制證明,在可信的物理環(huán)境的基礎(chǔ)上為虛擬機(jī)提供一個(gè)可信的隔離執(zhí)行環(huán)境,保證運(yùn)行在隔離環(huán)境的虛擬機(jī)不受非法的篡改,但是無(wú)法驗(yàn)證虛擬機(jī)自身的可信性?;趘TPM 的二進(jìn)制證明方式是通過(guò)構(gòu)建信任鏈獲取平臺(tái)軟硬件的完整性度量值,只能驗(yàn)證虛擬機(jī)的特定時(shí)刻的可信狀態(tài),是一種靜態(tài)的證明方式。然而在云虛擬化環(huán)境中,虛擬機(jī)是動(dòng)態(tài)的,其可信狀態(tài)可能由于遷移等操作而改變,基于二進(jìn)制的靜態(tài)證明方式已經(jīng)不足以驗(yàn)證虛擬機(jī)的可信狀態(tài)。因此,一些學(xué)者研究云虛擬化環(huán)境下基于屬性的可信證明。
2) 基于屬性的證明
基于屬性的證明是雖然平臺(tái)運(yùn)行不同的組件、擁有不同的配置,但只要能提供相同的屬性,就認(rèn)為其是可信的。
基于屬性的證明方式可以通過(guò)一個(gè)代理將平臺(tái)的完整性度量值轉(zhuǎn)化為相應(yīng)的屬性用于平臺(tái)狀態(tài)證明。文獻(xiàn)[45]根據(jù)安全屬性的需求和信任策略將平臺(tái)度量值轉(zhuǎn)換為相應(yīng)的屬性,利用轉(zhuǎn)換后的屬性驗(yàn)證平臺(tái)的可信性,從而有效監(jiān)測(cè)和阻止對(duì)云基礎(chǔ)設(shè)施的攻擊,保障了租戶虛擬機(jī)的安全。文獻(xiàn)[46]將基于屬性的證明技術(shù)和云安全監(jiān)控系統(tǒng)CloudPass 結(jié)合,實(shí)現(xiàn)對(duì)CloudPass 系統(tǒng)的完整性驗(yàn)證和平臺(tái)身份驗(yàn)證。
除此之外,基于屬性的證明還可以直接利用虛擬機(jī)自身的安全屬性來(lái)驗(yàn)證虛擬機(jī)的平臺(tái)狀態(tài)。文獻(xiàn)[47]通過(guò)租戶虛擬機(jī)流量源地址的正確性、來(lái)自租戶虛擬機(jī)的流量以及租戶虛擬機(jī)的狀態(tài)這3 個(gè)屬性驗(yàn)證租戶虛擬機(jī)的行為可信,對(duì)于不可信的虛擬機(jī)可以動(dòng)態(tài)隔離,甚至精細(xì)到終止服務(wù),有效減少了租戶和客戶之間的攻擊。文獻(xiàn)[48]提出了一種云環(huán)境下虛擬機(jī)監(jiān)視和驗(yàn)證框架(CloudMonatt),不僅驗(yàn)證虛擬機(jī)在啟動(dòng)和運(yùn)行時(shí)的完整性,還進(jìn)一步驗(yàn)證虛擬機(jī)的機(jī)密性和可用性,完成對(duì)虛擬機(jī)全生命周期的可信驗(yàn)證,防止了潛在的安全漏洞。
3) 基于行為的證明
為了實(shí)現(xiàn)虛擬機(jī)動(dòng)態(tài)證明,還有學(xué)者提出了基于行為的證明。基于行為的證明方式是通過(guò)驗(yàn)證系統(tǒng)或程序在運(yùn)行時(shí)的行為變化來(lái)推理其可信性。
文獻(xiàn)[49]通過(guò)攔截系統(tǒng)調(diào)用和VMI 技術(shù)獲取虛擬機(jī)內(nèi)進(jìn)程的上下文信息,對(duì)虛擬機(jī)的進(jìn)程列表、模塊列表等的一些行為進(jìn)行“行為跟蹤”,并利用這些行為變化特征驗(yàn)證虛擬機(jī)在運(yùn)行時(shí)的可信性。在產(chǎn)業(yè)界,阿里云結(jié)合大數(shù)據(jù)分析和機(jī)器學(xué)習(xí)技術(shù),對(duì)白名單應(yīng)用的系統(tǒng)調(diào)用行為進(jìn)行分析。搜集了用戶正常行為并建立行為規(guī)則庫(kù),此后實(shí)時(shí)采集應(yīng)用行為數(shù)據(jù),對(duì)比應(yīng)用行為規(guī)則庫(kù),從而驗(yàn)證應(yīng)用行為的可信性。
在平臺(tái)狀態(tài)驗(yàn)證的研究中,根據(jù)可信度量憑證可以分為基于二進(jìn)制的證明、基于屬性的證明、基于行為的證明,其對(duì)比如表5 所示?;诙M(jìn)制的證明可以直接驗(yàn)證度量組件的可信狀態(tài)信息,易于實(shí)現(xiàn)。但是二進(jìn)制是靜態(tài)的驗(yàn)證方式,難以應(yīng)對(duì)云計(jì)算環(huán)境虛擬化和動(dòng)態(tài)化的特性?;趯傩宰C明和基于行為的證明這種方式都可以實(shí)現(xiàn)對(duì)虛擬機(jī)動(dòng)態(tài)的平臺(tái)狀態(tài)驗(yàn)證,大大提高了證明的靈活性。但是,就目前的研究來(lái)說(shuō),存在著可信屬性和行為特征的規(guī)范化定義不足,缺少理論支撐等問(wèn)題。
表5 平臺(tái)狀態(tài)證明方式對(duì)比
在云虛擬化平臺(tái),虛擬機(jī)監(jiān)視器負(fù)責(zé)資源的分配、虛擬機(jī)與宿主機(jī)以及管理軟件的通信。惡意的虛擬機(jī)監(jiān)視可能會(huì)破壞虛擬機(jī)的完整性,從而影響虛擬機(jī)的可信性。因此,在僅驗(yàn)證虛擬機(jī)的可信性而不驗(yàn)證底層平臺(tái)(虛擬機(jī)監(jiān)視器或宿主機(jī))的情況下,虛擬機(jī)可信的結(jié)論是不準(zhǔn)確的。虛擬機(jī)的可信證明需要滿足同一性的需求,即虛擬機(jī)的可信證明應(yīng)與底層平臺(tái)的證明綁定在一起。對(duì)此,形成3 種主要的虛擬機(jī)可信證明框架,即虛實(shí)分離模式的可信證明框架、虛擬機(jī)模式的可信證明框架和宿主機(jī)模式的可信證明框架。
虛實(shí)分離模式的可信證明框架如圖4(a)所示,該框架在虛擬機(jī)和宿主機(jī)內(nèi)分別部署驗(yàn)證代理,通過(guò)完整性度量和可信驗(yàn)證技術(shù),挑戰(zhàn)方分別驗(yàn)證虛擬機(jī)和宿主機(jī)的可信性,2 個(gè)驗(yàn)證結(jié)果最終表示整個(gè)平臺(tái)的可信性。該框架直接利用物理平臺(tái)成熟的可信證明技術(shù),在實(shí)現(xiàn)方面改動(dòng)較少;同時(shí),對(duì)挑戰(zhàn)方而言,虛擬機(jī)和宿主機(jī)是等價(jià)的,可以平等地驗(yàn)證,簡(jiǎn)化了挑戰(zhàn)方的難度。但是,此框架需要虛擬機(jī)、虛擬機(jī)監(jiān)視器以及宿主機(jī)之間相互隔離,彼此之間沒(méi)有相互影響,在實(shí)際生產(chǎn)中無(wú)法滿足此要求;再者,虛擬機(jī)和虛擬機(jī)監(jiān)視器應(yīng)該是綁定的,挑戰(zhàn)方應(yīng)知道它們之間的綁定關(guān)系,避免同一性問(wèn)題。文獻(xiàn)[50]利用度量聯(lián)系和MAC 地址判定解決了證明過(guò)程中的同一性問(wèn)題。但在云環(huán)境中,虛擬機(jī)遷移等操作勢(shì)必會(huì)破壞綁定關(guān)系,因此帶來(lái)了綁定關(guān)系的一致性同步問(wèn)題。
圖4 虛擬機(jī)可信證明框架
虛擬機(jī)模式的可信證明框架如圖4(b)所示,該框架是將宿主機(jī)的可信信息映射到虛擬機(jī),并通過(guò)虛擬機(jī)與挑戰(zhàn)方建立的可信連接一起驗(yàn)證虛擬機(jī)和宿主機(jī)的可信性。此框架將宿主機(jī)和虛擬機(jī)綁定,保證了同一性,避免了綁定更新的同步問(wèn)題;然而,當(dāng)宿主機(jī)的可信憑證無(wú)法及時(shí)映射時(shí),無(wú)法保證可信證明時(shí)可信信息的新鮮度。
這2 種框架每驗(yàn)證一臺(tái)虛擬機(jī)時(shí)都需要驗(yàn)證其底層的宿主機(jī),造成了驗(yàn)證的冗余;同時(shí),需要頻繁使用TPM,TPM 的性能制約可信證明的效率;并且,每臺(tái)虛擬機(jī)都要與挑戰(zhàn)方交互,增加了平臺(tái)身份證明的負(fù)擔(dān);再者,大量的虛擬機(jī)與挑戰(zhàn)方連接,也造成網(wǎng)絡(luò)的擁塞。綜上,這2 種框架更適用于有限數(shù)量的虛擬機(jī)的可信證明。
為了適用大規(guī)模的云虛擬化環(huán)境,支持更多數(shù)量的虛擬機(jī)的可信證明,有學(xué)者提出了宿主機(jī)模式可信證明框架[51],如圖4(c)所示。此框架中,虛擬機(jī)不再直接與挑戰(zhàn)方交互,而是在虛擬機(jī)監(jiān)視器層增加一個(gè)代理,代理利用虛擬機(jī)外監(jiān)控技術(shù)獲取虛擬機(jī)的可信信息,并將其與宿主機(jī)的可信信息一同報(bào)告給挑戰(zhàn)方?;诖丝蚣?,文獻(xiàn)[52]利用VMI 技術(shù)實(shí)現(xiàn)了虛擬機(jī)的可信證明,但是該方案需要對(duì)每臺(tái)虛擬機(jī)都執(zhí)行一個(gè)很耗時(shí)的TPM_Qoute 操作,在大規(guī)模的云環(huán)境,會(huì)影響證明的可擴(kuò)展性。
虛擬機(jī)的可信證明不僅要滿足MIRTE 提出的遠(yuǎn)程證明設(shè)計(jì)時(shí)的5 項(xiàng)基本原則,還應(yīng)進(jìn)一步滿足同一性和可擴(kuò)展性的需求?,F(xiàn)根據(jù)這7 項(xiàng)要求對(duì)上述3 種框架進(jìn)行對(duì)比,如表6 所示。其中宿主機(jī)模式的可信證明框架更為完善,但現(xiàn)有的研究中仍存在TPM 性能的制約的問(wèn)題,使其無(wú)法適用于大規(guī)模的云虛擬化環(huán)境。
表6 虛擬機(jī)可信證明框架對(duì)比
本文主要圍繞云虛擬化平臺(tái)可信證明中可信根虛擬化、平臺(tái)身份證明、平臺(tái)狀態(tài)證明、虛擬機(jī)可信證明框架4 個(gè)關(guān)鍵技術(shù)展開(kāi)綜述,通過(guò)分析可知,仍存在一些問(wèn)題尚未解決,未來(lái)的研究工作中,可以更多地關(guān)注以下幾個(gè)方面。
1) 適用于云虛擬化平臺(tái)的可信根虛擬化方案。根據(jù)前文所述內(nèi)容,軟件vTPM 方案存在功能缺失的問(wèn)題,無(wú)法保證本身的可信性;基于硬件和半虛擬化方式的vTPM 性能不足,無(wú)法滿足大規(guī)模、動(dòng)態(tài)的云平臺(tái)可信度量的需求;TPCM 可能成為適用于云平臺(tái)可信根的發(fā)展方向,但目前來(lái)說(shuō),相關(guān)技術(shù)還不成熟,亟須展開(kāi)進(jìn)一步的研究。
2) 適用于虛擬機(jī)運(yùn)行時(shí)動(dòng)態(tài)的可信度量機(jī)制?,F(xiàn)有虛擬機(jī)度量機(jī)制都僅度量虛擬機(jī)運(yùn)行時(shí)關(guān)鍵不變量的完整性,片面地表示虛擬機(jī)運(yùn)行時(shí)的可信狀態(tài),其虛擬機(jī)可信的結(jié)論并不十分準(zhǔn)確。因此,需要一種新的機(jī)制,實(shí)現(xiàn)對(duì)虛擬機(jī)運(yùn)行時(shí)整體的可信度量和驗(yàn)證。
3) 適用于云虛擬化平臺(tái)的可信證明系統(tǒng)?,F(xiàn)有的虛擬機(jī)可信證明框架都是對(duì)虛擬機(jī)逐一驗(yàn)證,云虛擬化平臺(tái)的規(guī)模在不斷擴(kuò)大,逐一驗(yàn)證的方式易造成網(wǎng)絡(luò)的擁塞,并且挑戰(zhàn)方的性能也會(huì)制約可信證明的效率。因此,需要從虛擬機(jī)的平臺(tái)身份證明、平臺(tái)狀態(tài)證明以及可信證明框架的多個(gè)方面進(jìn)行系統(tǒng)化的設(shè)計(jì),為大規(guī)模、動(dòng)態(tài)化的云虛擬化平臺(tái)提供一個(gè)高效、靈活、可擴(kuò)展的可信證明系統(tǒng)。
隨著云計(jì)算技術(shù)進(jìn)一步成熟,隨之而來(lái)的云平臺(tái)的可信性問(wèn)題也將成為未來(lái)信息安全領(lǐng)域?qū)W術(shù)界和產(chǎn)業(yè)界的關(guān)注焦點(diǎn)。本文結(jié)合可信證明的定義,在物理平臺(tái)的可信證明關(guān)鍵技術(shù)的基礎(chǔ)上,對(duì)虛擬機(jī)的可信證明關(guān)鍵技術(shù)進(jìn)行梳理、分析和總結(jié),為研究人員進(jìn)行下一步的研究工作提供有益探索。