何欣楓,田俊峰,劉凡鳴
(1. 河北大學(xué)管理學(xué)院,河北 保定 071002;2. 河北大學(xué)網(wǎng)絡(luò)空間安全與計(jì)算機(jī)學(xué)院,河北 保定 071002;3. 河北省高可信信息系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,河北 保定 071002)
以虛擬化、資源租用、應(yīng)用托管、服務(wù)外包等為典型應(yīng)用的云計(jì)算(cloud computing),實(shí)現(xiàn)了人們長(zhǎng)期以來(lái)的“把計(jì)算作為一種設(shè)施”的夢(mèng)想[1]。當(dāng)前,云計(jì)算發(fā)展面臨許多關(guān)鍵性問(wèn)題,其中的安全問(wèn)題已成為制約云計(jì)算進(jìn)一步發(fā)展的重要因素[2]。
一般認(rèn)為,云計(jì)算環(huán)境自身的結(jié)構(gòu)特點(diǎn)是造成安全問(wèn)題的主要原因[3]。在云計(jì)算環(huán)境中,用戶(hù)基本喪失了對(duì)私有信息和數(shù)據(jù)的控制能力,從而引起了一系列重要的安全挑戰(zhàn)[4],增強(qiáng)云計(jì)算平臺(tái)自身的安全性是保證云計(jì)算安全的基礎(chǔ),提高用戶(hù)對(duì)云計(jì)算平臺(tái)的信任度是云計(jì)算技術(shù)向更深層次領(lǐng)域發(fā)展、全面普及和應(yīng)用的關(guān)鍵。構(gòu)建可信云計(jì)算平臺(tái)是解決上述問(wèn)題的一個(gè)有效手段。2017年,中國(guó)工程院院士沈昌祥在《用可信計(jì)算構(gòu)筑云計(jì)算安全》主旨報(bào)告中提出,要用可信計(jì)算構(gòu)筑云計(jì)算安全,在云的基礎(chǔ)上解決數(shù)據(jù)安全[5]。其他學(xué)者也從數(shù)據(jù)存儲(chǔ)外包、計(jì)算外包、虛擬機(jī)外包等涉及云服務(wù)安全可信的領(lǐng)域開(kāi)展了相關(guān)的研究工作[6]。
本文將從可信虛擬化、可信云平臺(tái)構(gòu)建和可信虛擬機(jī)等角度出發(fā),綜述近年來(lái)可信云計(jì)算技術(shù)的研究進(jìn)展,具體分類(lèi)如圖1所示。通過(guò)介紹相關(guān)研究進(jìn)展,分析并對(duì)比典型方案的特點(diǎn)和適用范圍,討論已有工作的局限性,進(jìn)而指出未來(lái)發(fā)展趨勢(shì)和后續(xù)研究方向。
圖1 可信云計(jì)算研究分類(lèi)
虛擬化是云計(jì)算的核心特征之一,通過(guò)虛擬化技術(shù)使CPU、內(nèi)存、硬盤(pán)等計(jì)算資源和存儲(chǔ)資源得到合理共享和充分利用。將可信計(jì)算技術(shù)引入云計(jì)算,也需要進(jìn)行虛擬化處理,以滿(mǎn)足云計(jì)算的需求。可信計(jì)算組織(TCG, trusted computing group)虛擬化工作組(virtualized platform)提出了虛擬可信平臺(tái)模塊(vTPM, virtual trusted platform module)的概念[7-8],為云計(jì)算環(huán)境提供可信功能。它通過(guò)模擬硬件TPM(trusted platform module)的接口和功能,使每個(gè)虛擬機(jī)擁有自己獨(dú)立的vTPM,達(dá)到保護(hù)敏感信息、存儲(chǔ)虛擬環(huán)境度量值、提供遠(yuǎn)程證明等目的,從而實(shí)現(xiàn)多個(gè)虛擬機(jī)TPM 硬件資源的共享與復(fù)用。
TPM的虛擬化主要有TPM passthrough、基于函數(shù)庫(kù)(如libtpms)模擬以及CUSE(character device in userspace)TPM這3種實(shí)現(xiàn)方式,其中后2種都屬于軟件模擬TPM虛擬化方式[9]。3種實(shí)現(xiàn)方式的各自特征如表1所示。
表1 TPM的虛擬化方式
由于 TPM passthrough方式可實(shí)現(xiàn)虛擬機(jī)與TPM的直接綁定,具有較好的可信性,大量的研究者基于此方式開(kāi)展可信云平臺(tái)構(gòu)建研究,詳見(jiàn) 3.2節(jié)內(nèi)容。
我國(guó)在可信計(jì)算領(lǐng)域起步并不晚,水平也不低,成果可喜[10],已經(jīng)建立了完整的自主可控可信計(jì)算體系,以國(guó)產(chǎn)密碼算法為基礎(chǔ)提出了可信密碼模塊(TCM, trusted cryptography module)標(biāo)準(zhǔn)。文獻(xiàn)[11]給出了基于可信根服務(wù)器的虛擬 TCM 密鑰管理方案。在該方案中,所有的虛擬可信密碼模塊vTCM密鑰均通過(guò)vTCM管理器調(diào)用物理可信密碼模塊TCM芯片來(lái)產(chǎn)生,保證了密鑰產(chǎn)生的規(guī)范性。文獻(xiàn)[12]提出了一種全新的虛擬可信根設(shè)計(jì)方案,該方案以模塊化的結(jié)構(gòu)對(duì)可信根進(jìn)行重構(gòu),各個(gè)模塊之間通過(guò)內(nèi)部統(tǒng)一的消息格式來(lái)協(xié)調(diào)合作,為云環(huán)境提供安全可靠的計(jì)算保障。
為了解決原有 TPM 存在的安全問(wèn)題,滿(mǎn)足更多場(chǎng)景的應(yīng)用,TCG將可信平臺(tái)規(guī)范族升級(jí)到2.0版本。結(jié)合TPM 2.0的新特性,文獻(xiàn)[13]提出了一個(gè)Ng-vTPM框架,由物理TPM產(chǎn)生vTPM密鑰提供安全存儲(chǔ)屬性,基于物理 TPM 背書(shū)平臺(tái)種子與虛擬背書(shū)密鑰的映射關(guān)系,提供虛擬機(jī)可信身份,將信任鏈由物理平臺(tái)擴(kuò)展到虛擬機(jī)平臺(tái),并提出使用基于平臺(tái)配置寄存器策略的封裝存儲(chǔ)方法解決vTPM 遷移后數(shù)據(jù)的可用性。
目前,可信虛擬化還面臨功能缺失和性能受限這兩方面的問(wèn)題。從功能角度考慮,多數(shù)虛擬化方案通過(guò)軟件來(lái)模擬 TPM 的功能,失去了可信計(jì)算技術(shù)使用硬件保護(hù)敏感信息的初衷。因此,可信計(jì)算技術(shù)原有的技術(shù)特征并不能完全體現(xiàn)在虛擬化后的方案中,如非易失存儲(chǔ)、平臺(tái)配置信息等。從性能角度考慮,當(dāng)虛擬化方案采用TPM passthrough實(shí)現(xiàn)方式時(shí),則某一時(shí)刻物理 TPM 只能被單個(gè)虛擬機(jī)獨(dú)占,這將嚴(yán)重影響可用性,不適合在大規(guī)模的云平臺(tái)使用。此外,云計(jì)算和虛擬化環(huán)境具有大規(guī)模、分布式、動(dòng)態(tài)、不確定性的特點(diǎn),這就需要進(jìn)行大量的、高效率的可信度量。受限于目前TPM的設(shè)計(jì)及實(shí)現(xiàn)方式,現(xiàn)有虛擬化方案面對(duì)大量的、高頻率的可信度量時(shí)顯得力不從心,無(wú)法滿(mǎn)足云計(jì)算平臺(tái)的全部可信度量需求。
為了更好地適應(yīng)云計(jì)算平臺(tái)的需求,根本的解決方法是增加可信芯片的運(yùn)算能力和控制能力,更好地為云計(jì)算平臺(tái)服務(wù)。國(guó)產(chǎn)可信計(jì)算標(biāo)準(zhǔn)創(chuàng)新性地提出了主動(dòng)控制的可信平臺(tái)控制模塊(TPCM,trusted platform control module)概念[14],使用對(duì)稱(chēng)密碼與非對(duì)稱(chēng)密碼相結(jié)合, 以TPCM為根進(jìn)行主動(dòng)控制和可信度量,提高了安全性和效率,改變了TPM模塊作為被動(dòng)設(shè)備的傳統(tǒng)思路, 將可信平臺(tái)模塊設(shè)計(jì)為主動(dòng)控制節(jié)點(diǎn),實(shí)現(xiàn)了TPCM對(duì)整個(gè)平臺(tái)的主動(dòng)控制[15]。以TPCM為基礎(chǔ)進(jìn)行可信虛擬化設(shè)計(jì),一方面可以利用TPCM主動(dòng)的、絕對(duì)的控制能力,對(duì)云平臺(tái)節(jié)點(diǎn)實(shí)施動(dòng)態(tài)監(jiān)控,保持其運(yùn)行環(huán)境的可信性。一旦有惡意代碼入侵而導(dǎo)致系統(tǒng)失控,TPCM可以采取切斷物理通道、關(guān)閉電源等絕對(duì)性保護(hù)措施保護(hù)數(shù)據(jù)及網(wǎng)絡(luò)安全。另一方面,TPCM不再?gòu)膶儆?CPU,可以進(jìn)行獨(dú)立的設(shè)計(jì),具有比TPM更好的性能,可較好地解決功能缺失和性能受限的問(wèn)題。TPCM必將成為未來(lái)可信計(jì)算虛擬化技術(shù)的一個(gè)發(fā)展方向。但目前國(guó)產(chǎn)可信計(jì)算標(biāo)準(zhǔn)還處于發(fā)展的初期階段,TPCM普及程度較低,相關(guān)產(chǎn)品較少,還需要進(jìn)一步加快產(chǎn)業(yè)化進(jìn)程。
可信云平臺(tái)通過(guò)可信計(jì)算技術(shù)為用戶(hù)提供可信云服務(wù),是可信云計(jì)算技術(shù)最直接的體現(xiàn)方式。目前,構(gòu)造可信云平臺(tái)的主要方案包括:1)借助硬件隔離技術(shù)構(gòu)造可信執(zhí)行環(huán)境(TEE, trusted execution environment),如 Intel的 SGX(software guard extension)、ARM的TrustZone等,為虛擬機(jī)監(jiān)控器添加安全隔離、可信驗(yàn)證等功能;2)基于可信虛擬化(如vTPM)技術(shù)構(gòu)建可信云平臺(tái);3)通過(guò)建立可信第三方,對(duì)云計(jì)算平臺(tái)進(jìn)行動(dòng)態(tài)可信度量;4)以可信安全芯片的密鑰管理為基礎(chǔ),將終端密鑰管理轉(zhuǎn)化為云平臺(tái)密鑰管理,借此為虛擬機(jī)提供可信服務(wù)。此外,還出現(xiàn)了其他可信云平臺(tái)構(gòu)建方案。
TEE技術(shù)主要通過(guò)硬件隔離技術(shù)保證代碼的機(jī)密性和完整性,從而達(dá)到在不可信的環(huán)境中保證特定應(yīng)用可信的目的。
早在2003年,Garfinkel等[16]就提出了Terra模型,構(gòu)建可信虛擬機(jī)監(jiān)控器(TVMM, trusted virtual machine monitor),通過(guò)將虛擬機(jī)放置于 open box和closed box的方式來(lái)實(shí)現(xiàn)安全隔離,但受限于當(dāng)時(shí)硬件平臺(tái)的性能,方案的優(yōu)勢(shì)不能充分發(fā)揮。為了更好地實(shí)現(xiàn)安全隔離,Intel和ARM分別提出了基于處理器的安全隔離方案,為T(mén)EE的實(shí)現(xiàn)奠定了良好的基礎(chǔ)。
Intel SGX技術(shù)首先應(yīng)用于Skylake處理器,用于增強(qiáng)軟件的安全性。這種方式將合法代碼和數(shù)據(jù)封裝在一個(gè)被稱(chēng)作 enclave的容器中,保護(hù)其不受惡意軟件的攻擊,特權(quán)或者非特權(quán)的軟件都無(wú)法訪(fǎng)問(wèn)enclave,即使操作系統(tǒng)或者VMM(hypervisor)也無(wú)法影響enclave里面的代碼和數(shù)據(jù)。enclave的安全邊界只包含CPU和它自身。同時(shí)SGX還提供了對(duì)這些代碼和數(shù)據(jù)的遠(yuǎn)程證明功能。
TrustZone是ARM針對(duì)消費(fèi)電子設(shè)備設(shè)計(jì)的一種硬件架構(gòu),目的是為消費(fèi)電子產(chǎn)品構(gòu)建一個(gè)安全框架來(lái)抵御各種可能的攻擊。TrustZone在概念上將SoC(system on chip)的硬件和軟件資源劃分為安全世界(secure world)和非安全世界(normal world),所有需要保密的操作(如指紋識(shí)別、密碼處理、數(shù)據(jù)加解密、安全認(rèn)證等)在安全世界執(zhí)行,其余操作(如用戶(hù)操作系統(tǒng)、各種應(yīng)用程序等)在非安全世界執(zhí)行,安全世界和非安全世界通過(guò)一個(gè)名為monitor mode的模式進(jìn)行轉(zhuǎn)換。
Inter SGX和TrustZone的基本體系如圖2所示,這2種方式的聯(lián)系與區(qū)別如表2所示。
基于SGX技術(shù),Schuster等[17]提出了VC3模型,保證在使用云平臺(tái)進(jìn)行MapReduce計(jì)算時(shí),代碼、數(shù)據(jù)以及運(yùn)算結(jié)果的可信性。Jain等[18]還提出了開(kāi)源的TEE實(shí)驗(yàn)平臺(tái)OpenSGX,可實(shí)現(xiàn)Intel SGX的指令級(jí)模擬,為硬件安全隔離技術(shù)的應(yīng)用、開(kāi)發(fā)提供實(shí)驗(yàn)、測(cè)試環(huán)境。
在移動(dòng)云計(jì)算領(lǐng)域,文獻(xiàn)[19]利用 TrustZone硬件隔離技術(shù)構(gòu)建可信移動(dòng)終端,保護(hù)云服務(wù)客戶(hù)端及安全敏感操作在移動(dòng)終端上的安全執(zhí)行, 結(jié)合物理不可克隆函數(shù)技術(shù),給出了移動(dòng)終端密鑰與敏感數(shù)據(jù)管理機(jī)制。Santos等[20]利用TrustZone技術(shù)提出并實(shí)現(xiàn)了TLR(trusted language runtime),用于構(gòu)建與操作系統(tǒng)和其他應(yīng)用隔離的可信組件,從而保證移動(dòng)應(yīng)用的機(jī)密性和完整性。
圖2 Intel SGX和TrustZone的基本體系
表2 Intel SGX和TrustZone的聯(lián)系與區(qū)別
可信虛擬化的目標(biāo)是為云計(jì)算環(huán)境提供可信支持,因此,基于vTPM構(gòu)建可信云平臺(tái)是此類(lèi)研究的主要方向之一。文獻(xiàn)[21]提出了一種基于信任擴(kuò)展的可信虛擬執(zhí)行環(huán)境的構(gòu)建方法,實(shí)現(xiàn)vTPM與底層可信計(jì)算基的綁定,從而構(gòu)建了可信虛擬執(zhí)行環(huán)境。文獻(xiàn)[22-23]通過(guò)vTPM擴(kuò)展現(xiàn)有可信鏈,將可信傳遞到用戶(hù)虛擬機(jī)內(nèi)部,提出了一種動(dòng)態(tài)的用戶(hù)運(yùn)行環(huán)境可信性驗(yàn)證機(jī)制,并將vTPM和可信審計(jì)技術(shù)結(jié)合起來(lái),建立了用戶(hù)可信運(yùn)行環(huán)境的構(gòu)建與審計(jì)機(jī)制。文獻(xiàn)[24]提出的多租戶(hù)可信計(jì)算環(huán)境模型(MTCEM, multi-tenancy trusted computing environment model)利用TPM/vTPM將云計(jì)算服務(wù)的安全職責(zé)進(jìn)行分離,采用云提供商和用戶(hù)協(xié)作的方式保證云節(jié)點(diǎn)平臺(tái)的執(zhí)行環(huán)境可信,云提供商負(fù)責(zé)基礎(chǔ)設(shè)施的可信,用戶(hù)負(fù)責(zé)虛擬機(jī)實(shí)例和應(yīng)用程序的可信。文獻(xiàn)[25]提出的 POSTER利用基于TPM/vTPM 的可信網(wǎng)絡(luò)連接保護(hù)云服務(wù)端和云客戶(hù)端之間的通信安全,從而為云計(jì)算提供端到端的可信保護(hù)。
在產(chǎn)業(yè)界,Intel給出了基于TPM/vTPM的,以全面保護(hù)虛擬計(jì)算環(huán)境為目的的數(shù)據(jù)可信方案——可信執(zhí)行技術(shù)(TXT, trusted execution technology)。TXT通過(guò)硬件密鑰和子系統(tǒng)雙路控制電腦內(nèi)部資源,并決定哪些程序、哪些用戶(hù)允許訪(fǎng)問(wèn)或拒絕訪(fǎng)問(wèn)這些資源。TPM與DMA(direct memory access)頁(yè)面保護(hù)共同構(gòu)成了這項(xiàng)技術(shù)的主要內(nèi)容。以TXT為基礎(chǔ),Intel還給出了trusted pool和trusted cloud的概念,為以 Intel處理器為核心的云計(jì)算節(jié)點(diǎn)提供可信服務(wù),支持可信云平臺(tái)的構(gòu)建。
使用可信第三方(TTP, trusted third party)實(shí)現(xiàn)安全管理是簡(jiǎn)化管理過(guò)程的最佳手段,TTP已經(jīng)在大量的安全協(xié)議中有成熟的應(yīng)用。結(jié)合TTP也可實(shí)現(xiàn)云計(jì)算平臺(tái)的可信管理。使用TTP的主要思想是建立一個(gè)獨(dú)立于云提供商的可信協(xié)調(diào)中心(TC,trusted coordinator),提供用戶(hù)對(duì)云計(jì)算平臺(tái)執(zhí)行環(huán)境、虛擬機(jī)狀態(tài)的可信狀態(tài)監(jiān)測(cè)和控制,如圖3所示。
圖3 基于TTP的可信云平臺(tái)架構(gòu)
Santos等[26]提出了可信云計(jì)算平臺(tái)(TCCP,trusted cloud computing platform),該平臺(tái)通過(guò)TC管理云中的所有可信節(jié)點(diǎn),但當(dāng)節(jié)點(diǎn)規(guī)模很大時(shí),管理這些節(jié)點(diǎn)的時(shí)間開(kāi)銷(xiāo)過(guò)大。隨后 Santos等[27]對(duì)TCCP進(jìn)行了改進(jìn),設(shè)計(jì)了Excalibur系統(tǒng),該系統(tǒng)通過(guò)引入多個(gè)中心化的監(jiān)視器來(lái)改進(jìn)管理可信節(jié)點(diǎn)所造成的性能瓶頸。文獻(xiàn)[28]針對(duì)可信云平臺(tái)構(gòu)建過(guò)程中可信節(jié)點(diǎn)動(dòng)態(tài)管理存在的性能瓶頸問(wèn)題,提出了基于 TPM 聯(lián)盟的可信云平臺(tái)體系結(jié)構(gòu)及管理模型,引入了時(shí)間樹(shù)的概念組織TPM聯(lián)盟,利用TPM和認(rèn)證加密技術(shù)解決數(shù)據(jù)在 TPM 聯(lián)盟內(nèi)節(jié)點(diǎn)間的可信傳輸問(wèn)題。
此外,從其他角度實(shí)現(xiàn)可信云平臺(tái)的構(gòu)建方案也非常具有參考價(jià)值。針對(duì) TPM 進(jìn)行可信度量時(shí)的效率和多租戶(hù)安全隔離問(wèn)題,文獻(xiàn)[29]提出的cTPM 通過(guò) TPM 和云平臺(tái)共享一個(gè)云密鑰來(lái)解決TPM資源受限的問(wèn)題。文獻(xiàn)[30]給出了一個(gè)高度自治的多租戶(hù)網(wǎng)絡(luò)安全框架 Jobber,用于適應(yīng)云數(shù)據(jù)中心的動(dòng)態(tài)特性和優(yōu)化租戶(hù)之間的通信。文獻(xiàn)[31]對(duì)云租戶(hù)隔離機(jī)制進(jìn)行定義,并制定了云計(jì)算平臺(tái)中域間信息流策略控制方式。文獻(xiàn)[32]提出了基于可驗(yàn)證計(jì)算的可信云計(jì)算研究,成為實(shí)現(xiàn)可信云計(jì)算的一種建設(shè)性思路。
上述研究工作雖然以不同的方式研究了云計(jì)算平臺(tái)的安全、可信問(wèn)題,并給出了相應(yīng)的解決方案,但大多方案集中在如何保障計(jì)算節(jié)點(diǎn)的可信性,忽略了云計(jì)算環(huán)境的典型特征,即高度資源共享和分布式管理。云平臺(tái)作為管理各類(lèi) IT資源的基礎(chǔ)設(shè)施,需要實(shí)現(xiàn)計(jì)算節(jié)點(diǎn)、虛擬機(jī)、存儲(chǔ)、網(wǎng)絡(luò)等全面的可信方案,這就需要可信證據(jù)的傳遞與管理、跨主機(jī)/網(wǎng)絡(luò)的可信度量、分布式可信協(xié)同機(jī)制等一系列技術(shù)的支持。單個(gè)計(jì)算節(jié)點(diǎn)可信并不等同于云平臺(tái)可信,上述研究方案中使用的硬件隔離技術(shù)(如 SGX等)和可信虛擬化技術(shù)(如 vTPM等)都以保證節(jié)點(diǎn)內(nèi)部可信為基礎(chǔ),缺乏可信證據(jù)跨節(jié)點(diǎn)傳遞和度量的機(jī)制,無(wú)法做到在云平臺(tái)范圍內(nèi)可信狀態(tài)的一致性與連續(xù)性?;诿荑€共享類(lèi)方案,如文獻(xiàn)[29],雖可實(shí)現(xiàn)云平臺(tái)節(jié)點(diǎn)間的信任傳遞,但由于缺乏可信硬件的支持,難以實(shí)現(xiàn)真正意義上的可信云平臺(tái),因此,現(xiàn)有的研究工作還缺乏完善的解決方案。
可信計(jì)算主要解決計(jì)算終端可信問(wèn)題,為此提出了諸如密鑰管理、數(shù)據(jù)綁定、可信啟動(dòng)、身份認(rèn)證、遠(yuǎn)程證明等一系列保證終端可信的概念。在云計(jì)算平臺(tái)中,虛擬機(jī)是保證云服務(wù)可信的前提,保證其行為可預(yù)期至關(guān)重要,將可信計(jì)算用于計(jì)算終端的相關(guān)技術(shù)移植到虛擬機(jī),來(lái)保障虛擬機(jī)的可信自然就成為可信云計(jì)算的一個(gè)重要研究方向??尚庞?jì)算技術(shù)的引入可以增強(qiáng)云平臺(tái)租戶(hù)對(duì)虛擬機(jī)的信心,提高對(duì)云計(jì)算技術(shù)的信任程度。
針對(duì)虛擬化安全監(jiān)控技術(shù)的研究出現(xiàn)較早,其主要思想是利用虛擬機(jī)管理器隔離和保護(hù)特定的安全工具。從實(shí)現(xiàn)技術(shù)的角度來(lái)看,基于虛擬化安全監(jiān)控的研究工作主要分為內(nèi)部監(jiān)控和外部監(jiān)控這2種方式。內(nèi)部監(jiān)控是在虛擬機(jī)中加載內(nèi)核模塊來(lái)攔截目標(biāo)虛擬機(jī)的內(nèi)部事件,而內(nèi)核模塊的安全通過(guò)虛擬機(jī)管理器來(lái)進(jìn)行保護(hù);外部監(jiān)控通過(guò)在虛擬機(jī)管理器中對(duì)虛擬機(jī)中事件進(jìn)行攔截,從而在虛擬機(jī)外部進(jìn)行檢測(cè)[33]。與內(nèi)部監(jiān)控相比,外部監(jiān)控在安全性和生存性方面具有一定的優(yōu)勢(shì),不易被攻擊者屏蔽。虛擬機(jī)自?。╒MI, virtual machine introspection)[34]技術(shù)是外部監(jiān)控中最為流行的一種,被廣泛地研究與改進(jìn),其架構(gòu)如圖 4所示。美國(guó)Sandia國(guó)家實(shí)驗(yàn)室的 Payne等[35]開(kāi)發(fā)了提供 VMI功能的程序庫(kù) LibVMI,該程序庫(kù)可對(duì)虛擬機(jī)的內(nèi)存、硬件中斷和vCPU的寄存器進(jìn)行監(jiān)控。VMI利用一個(gè)隔離和安全的虛擬機(jī)監(jiān)視其他的虛擬機(jī),隔離主要依賴(lài) VMM 來(lái)實(shí)現(xiàn)。由于 VMI只能通過(guò)VMM 獲取虛擬機(jī)的原始數(shù)據(jù),語(yǔ)義級(jí)別較低,而安全監(jiān)控往往需要了解數(shù)據(jù)的高層語(yǔ)義信息,因此,如何跨越語(yǔ)義鴻溝是 VMI的一個(gè)研究熱點(diǎn)問(wèn)題[36-39]。文獻(xiàn)[40]首次提出了基于虛擬化安全監(jiān)控的通用性問(wèn)題,同時(shí)提出了一種基于驅(qū)動(dòng)的通用監(jiān)控系統(tǒng)——VMDriver來(lái)實(shí)現(xiàn)細(xì)粒度監(jiān)控,從而動(dòng)態(tài)地屏蔽虛擬機(jī)中客戶(hù)操作系統(tǒng)的差異,保證了監(jiān)控系統(tǒng)的通用性。
圖4 虛擬機(jī)自省技術(shù)架構(gòu)
但基于虛擬化的安全監(jiān)控技術(shù)并不能覆蓋可信虛擬機(jī)的全部要求,如可信啟動(dòng)、數(shù)據(jù)平臺(tái)綁定等,同時(shí)VMI默認(rèn)VMM和VMI的代碼是絕對(duì)可信的,但現(xiàn)實(shí)中這個(gè)假設(shè)未必成立。針對(duì)這個(gè)問(wèn)題,文獻(xiàn)[41]給出了一個(gè)T-VMI模型,該模型借助硬件隔離技術(shù)在云計(jì)算環(huán)境中實(shí)現(xiàn)虛擬機(jī)安全監(jiān)控。此外,由于設(shè)計(jì)目標(biāo)的不同,VMI重點(diǎn)研究的是低級(jí)語(yǔ)義與高級(jí)語(yǔ)義之間的語(yǔ)義鴻溝問(wèn)題,以此來(lái)判斷虛擬機(jī)是否遭受惡意的外部攻擊,但并不能保證虛擬機(jī)自身的動(dòng)態(tài)可信。在現(xiàn)有的研究中,大量模型并沒(méi)有引入可信計(jì)算技術(shù),無(wú)法給出一個(gè)得到廣泛認(rèn)可的可信根,虛擬機(jī)的可信性也就無(wú)法保障。
可信啟動(dòng)是可信計(jì)算技術(shù)中用于保證終端可信的技術(shù)之一,已經(jīng)廣泛應(yīng)用于多種類(lèi)型的操作系統(tǒng),如用于 Linux平臺(tái)的 IMA(IBM integrity measurement)架構(gòu)及Windows8/Windows10的可信啟動(dòng)技術(shù)。將上述技術(shù)移植到虛擬機(jī),實(shí)現(xiàn)虛擬機(jī)的可信啟動(dòng)成為保證虛擬機(jī)可信的方案之一。但虛擬機(jī)與計(jì)算終端有著明顯的區(qū)別,因此還需要對(duì)可信啟動(dòng)方案進(jìn)行適當(dāng)調(diào)整。
文獻(xiàn)[42]提出了一種解決在云平臺(tái)基礎(chǔ)設(shè)施服務(wù)策略下虛擬機(jī)的安全存儲(chǔ)和可信啟動(dòng)方案SSTL。根據(jù)TPM的一些核心功能,分別從VM鏡像加解密、VM宿主平臺(tái)信息的遠(yuǎn)程證明和VM度量機(jī)制來(lái)保證VM存儲(chǔ)安全、運(yùn)行環(huán)境安全以及可信啟動(dòng)。利用可信技術(shù)中的封裝、綁定等技術(shù),文獻(xiàn)[43]提出一個(gè)用于保證虛擬機(jī)實(shí)例可信啟動(dòng)的協(xié)議,為公有云用戶(hù)虛擬機(jī)可信度量提供支持。
目前,專(zhuān)門(mén)針對(duì)虛擬機(jī)可信啟動(dòng)的技術(shù)研究較少,虛擬機(jī)的可信啟動(dòng)涉及虛擬鏡像可信、云存儲(chǔ)可信、節(jié)點(diǎn)環(huán)境可信、同駐虛擬機(jī)可信[44-45]等一系列問(wèn)題。同時(shí),虛擬機(jī)可信啟動(dòng)又是虛擬機(jī)可信的前提條件,未來(lái)的發(fā)展方向必然是與新一代的可信計(jì)算和虛擬化技術(shù)緊密結(jié)合,共同構(gòu)筑虛擬機(jī)可信的第一道防線(xiàn)。
IMA對(duì)計(jì)算終端的身份認(rèn)證與遠(yuǎn)程證明也進(jìn)行了相關(guān)的討論,并提出了2種方案。一種方案是借助隱私簽證機(jī)構(gòu)PCA(privacy CA),通過(guò)PCA對(duì)TPM身份驗(yàn)證、頒發(fā)證書(shū)AIK(attestation identity key),并且對(duì)網(wǎng)內(nèi)的TPM密鑰管理分發(fā)、注銷(xiāo)等;另一種方案稱(chēng)為直接匿名認(rèn)證(DAA, direct anonymous attestation),根據(jù)零知識(shí)證明技術(shù)進(jìn)行TPM身份的認(rèn)證[46]。針對(duì)上述方案存在的計(jì)算開(kāi)銷(xiāo)大和無(wú)法滿(mǎn)足跨域匿名認(rèn)證需求等不足,還出現(xiàn)了一些改進(jìn)方案[47-48]。
虛擬機(jī)托管在遠(yuǎn)程的云計(jì)算平臺(tái),租戶(hù)無(wú)法對(duì)其進(jìn)行直接控制,其運(yùn)行可信狀態(tài)的獲取只能通過(guò)間接和遠(yuǎn)程的方式實(shí)現(xiàn),對(duì)其身份認(rèn)證和遠(yuǎn)程證明的需求比計(jì)算終端更為迫切。此外,虛擬機(jī)動(dòng)態(tài)特性表現(xiàn)明顯,其身份認(rèn)證與遠(yuǎn)程證明必然也是動(dòng)態(tài)進(jìn)行的。而傳統(tǒng)的可信計(jì)算技術(shù)往往采用AIK、PCR等靜態(tài)內(nèi)容作為認(rèn)證的依據(jù),與虛擬機(jī)的特征不符,一些研究工作針對(duì)傳統(tǒng)方案進(jìn)行了改進(jìn)。
文獻(xiàn)[49]提出了一種虛擬機(jī)身份證明方案,在保障原有認(rèn)證和信任關(guān)系的情況下,實(shí)現(xiàn)了身份證明過(guò)程中對(duì)身份權(quán)威信息的隱藏,避免了上述組織結(jié)構(gòu)、位置等信息的暴露,支持云環(huán)境結(jié)構(gòu)透明、位置無(wú)關(guān)的特點(diǎn)。為了解決目前云環(huán)境下用戶(hù)與云端之間進(jìn)行身份認(rèn)證時(shí)所存在的安全問(wèn)題和不足,文獻(xiàn)[50]將PTPM(portable TPM)和無(wú)證書(shū)公鑰密碼體制應(yīng)用到云環(huán)境中,提出了一種實(shí)現(xiàn)用戶(hù)與云端之間雙向身份認(rèn)證的方案,確保了終端平臺(tái)的安全可信和云端與用戶(hù)之間認(rèn)證結(jié)果的真實(shí)正確。
目前關(guān)于遠(yuǎn)程證明的研究主要包括基于實(shí)體標(biāo)識(shí)的二進(jìn)制證明和基于屬性的遠(yuǎn)程證明[51-52]。其中,二進(jìn)制遠(yuǎn)程證明方案通過(guò)實(shí)體對(duì)象散列值的完整性驗(yàn)證,得出終端是否可信的結(jié)論;而在云計(jì)算環(huán)境下,所有實(shí)體均被虛擬化、動(dòng)態(tài)化,使用散列值已經(jīng)難以描述VM的可信狀態(tài)。此外,二進(jìn)制遠(yuǎn)程證明只能驗(yàn)證VM啟動(dòng)等特定時(shí)刻的可信狀態(tài),而VM是動(dòng)態(tài)的,狀態(tài)隨時(shí)會(huì)發(fā)生遷移等影響其可信性的操作,需要進(jìn)行動(dòng)態(tài)遠(yuǎn)程證明,二進(jìn)制證明很難做到這一點(diǎn)。因此,已經(jīng)有部分研究工作探討如何在云環(huán)境下使用屬性證明的方式實(shí)現(xiàn)虛擬機(jī)的遠(yuǎn)程證明。
文獻(xiàn)[53]利用基于遠(yuǎn)程屬性證明技術(shù),監(jiān)測(cè)和阻止針對(duì)云基礎(chǔ)設(shè)施的安全攻擊,從而保障租戶(hù)的安全。文獻(xiàn)[54]提出并設(shè)計(jì)了云安全監(jiān)控系統(tǒng)CloudPass,利用TPM和屬性證明實(shí)現(xiàn)系統(tǒng)完整性和身份認(rèn)證的目的。
目前的虛擬機(jī)身份認(rèn)證與遠(yuǎn)程證明方案仍存在功能單一、可信屬性缺乏規(guī)范性等不足,大量方案僅集中在解決虛擬機(jī)安全監(jiān)控、匿名等部分問(wèn)題,不能對(duì)云平臺(tái)中的虛擬機(jī)實(shí)現(xiàn)實(shí)時(shí)、動(dòng)態(tài)的身份認(rèn)證和遠(yuǎn)程證明?;趯傩缘纳矸菡J(rèn)證和遠(yuǎn)程證明依然是未來(lái)研究工作的熱點(diǎn),但需對(duì)虛擬機(jī)實(shí)例在整個(gè)生命周期內(nèi)的可信屬性進(jìn)行規(guī)范化處理,提出了對(duì)可信屬性的形式化證明方法,進(jìn)一步給出了虛擬機(jī)可信的理論依據(jù)。
虛擬機(jī)與計(jì)算終端存在著很多不同之處,使可信計(jì)算技術(shù)無(wú)法全面覆蓋虛擬機(jī)可信的全部安全需求。虛擬機(jī)管理涉及虛擬機(jī)的生成、分配、回收、遷移等一系列問(wèn)題[55]。保證虛擬機(jī)整個(gè)生命周期內(nèi)的安全是實(shí)現(xiàn)云平臺(tái)可信的基礎(chǔ),尤其是當(dāng)虛擬機(jī)發(fā)生遷移后,如何確保目標(biāo)平臺(tái)的可信性和虛擬機(jī)可信狀態(tài)的一致性是虛擬機(jī)整個(gè)生命周期安全管理需要解決的重點(diǎn)問(wèn)題,也是難點(diǎn)問(wèn)題。而傳統(tǒng)的可信計(jì)算技術(shù)中并沒(méi)有針對(duì)該問(wèn)題的解決方案,導(dǎo)致虛擬機(jī)安全管理的功能缺失。虛擬機(jī)的可信遷移給上述問(wèn)題的解決提供了一個(gè)可行方案。
虛擬機(jī)的可信遷移是指以現(xiàn)有可信計(jì)算技術(shù)為基礎(chǔ),保證虛擬機(jī)從云計(jì)算平臺(tái)原計(jì)算節(jié)點(diǎn)遷移到目標(biāo)計(jì)算節(jié)點(diǎn)后,仍可保持其可信狀態(tài)的一致性和連續(xù)性,從而實(shí)現(xiàn)虛擬機(jī)生命周期內(nèi)的可信度量。這里的可信狀態(tài)主要指與虛擬機(jī)綁定的各類(lèi)密鑰(包括 AIK、存儲(chǔ)根密鑰等)、軟硬件平臺(tái)配置信息(PCR內(nèi)容)、隱私數(shù)據(jù)及其他相關(guān)數(shù)據(jù)。
虛擬機(jī)遷移是云計(jì)算中的核心技術(shù)之一,具有負(fù)載均衡、解除硬件依賴(lài)、高效利用資源等優(yōu)點(diǎn),但也會(huì)將虛擬機(jī)信息和用戶(hù)信息暴露在網(wǎng)絡(luò)通信中,成為云計(jì)算脆弱性的源頭之一。虛擬機(jī)遷移過(guò)程除了會(huì)受到傳統(tǒng)的網(wǎng)絡(luò)攻擊外,還有可能導(dǎo)致co-residence攻擊的出現(xiàn)。co-residence攻擊是針對(duì)云平臺(tái)的一種新型攻擊手段,基本思想是利用虛擬機(jī)之間共享的硬件計(jì)算資源,進(jìn)行旁路(side channel)攻擊,獲取敏感信息。傳統(tǒng)的網(wǎng)絡(luò)安全措施對(duì)其無(wú)法防范。文獻(xiàn)[56]給出了co-residence攻擊產(chǎn)生的原因,并實(shí)現(xiàn)了名為 HomeAlone的系統(tǒng)工具,用于檢測(cè)用戶(hù)虛擬機(jī)是否存在 co-residence攻擊。文獻(xiàn)[57]給出了一種虛擬機(jī)分配策略,該策略降低產(chǎn)生co-residence攻擊的可能性。文獻(xiàn)[58]則在Amazon EC2(elastic compute cloud)公有云上進(jìn)行了測(cè)試,說(shuō)明了co-residence攻擊存在的普遍性。文獻(xiàn)[59]深入分析了跨虛擬機(jī) cache側(cè)信道攻擊的機(jī)理和實(shí)現(xiàn)方式,對(duì)跨虛擬機(jī)cache側(cè)信道攻擊技術(shù)的研究現(xiàn)狀與進(jìn)展進(jìn)行總結(jié)。
依據(jù)可信云平臺(tái)的實(shí)現(xiàn)機(jī)制不同,目前虛擬機(jī)可信遷移方案也分為多種類(lèi)型,如基于vTPM的虛擬機(jī)可信遷移、基于密鑰管理的虛擬機(jī)可信遷移等。文獻(xiàn)[60]提出了一種適用于私有云環(huán)境的虛擬機(jī)安全遷移協(xié)議,該協(xié)議基于vTPM構(gòu)建分級(jí)云密鑰來(lái)保證虛擬機(jī)在遷移前后的機(jī)密性和完整性。文獻(xiàn)[61]給出了一個(gè)VM-vTPM虛擬機(jī)可信遷移協(xié)議,并對(duì)協(xié)議的安全性和性能進(jìn)行了定量分析。在公有云領(lǐng)域,文獻(xiàn)[62]給出了虛擬機(jī)從一個(gè)云服務(wù)提供商(CSP, cloud service provider)遷移到其他CSP的安全機(jī)制。文獻(xiàn)[63]給出了在異構(gòu)的云環(huán)境中,如何使用可信計(jì)算技術(shù)來(lái)增強(qiáng)云平臺(tái)的可信性,特別是虛擬機(jī)遷移時(shí)的可信性。文獻(xiàn)[64]結(jié)合可信計(jì)算中的密鑰管理技術(shù),提出了虛擬機(jī)可信證據(jù)的概念,并給出了一種應(yīng)用于IaaS平臺(tái)的可信虛擬機(jī)遷移協(xié)議,確保虛擬機(jī)在遷移前后的可信狀態(tài)的一致性和連續(xù)性,為IaaS平臺(tái)提供虛擬機(jī)的可信遷移支持。文獻(xiàn)[65]分析了虛擬機(jī)動(dòng)態(tài)遷移時(shí)的內(nèi)存泄漏安全隱患,結(jié)合KVM(kernel-based virtual machine)虛擬化技術(shù)原理、通信機(jī)制、遷移機(jī)制,設(shè)計(jì)并提出一種基于混合隨機(jī)變換編碼方式的安全防護(hù)模型,保證虛擬機(jī)動(dòng)態(tài)遷移時(shí)的數(shù)據(jù)安全。文獻(xiàn)[66]針對(duì)可信虛擬機(jī)的遷移缺乏統(tǒng)一的安全模型及測(cè)試方法問(wèn)題,提出了一種可信虛擬機(jī)遷移框架,對(duì)可信遷移的過(guò)程進(jìn)行了抽象,并使用標(biāo)號(hào)遷移系統(tǒng)LTS進(jìn)行了形式化的描述。
虛擬機(jī)的可信遷移是保證虛擬機(jī)在整個(gè)生命周期內(nèi)行為可控、可預(yù)期的基礎(chǔ),對(duì)整個(gè)云平臺(tái)的可信性起著至關(guān)重要的作用,是保證虛擬機(jī)可信的重要一環(huán)。虛擬機(jī)有著比物理終端更為動(dòng)態(tài)化的行為,對(duì)其進(jìn)行可信度量和評(píng)價(jià)也是一個(gè)較為復(fù)雜的問(wèn)題?,F(xiàn)有研究工作分別從虛擬機(jī)可信啟動(dòng)、身份認(rèn)證與遠(yuǎn)程證明及可信遷移等多方面進(jìn)行了討論,但尚無(wú)完整機(jī)制能夠全面保障虛擬機(jī)可信。結(jié)合可信云平臺(tái)構(gòu)建方案,開(kāi)展統(tǒng)一的虛擬機(jī)可信度量、評(píng)價(jià)機(jī)制研究,保證虛擬機(jī)在整個(gè)生命周期內(nèi)行為的可控、可預(yù)期,必將是未來(lái)研究工作的重點(diǎn)。
本文主要圍繞可信云計(jì)算的最新研究?jī)?nèi)容展開(kāi)綜述,介紹了近年來(lái)具有代表性的可信虛擬化及可信云平臺(tái)構(gòu)建技術(shù)。通過(guò)分析可以看出,現(xiàn)有可信云計(jì)算領(lǐng)域仍然存在大量尚未解決的問(wèn)題,未來(lái)的科研工作可以更多地關(guān)注以下幾點(diǎn)。
1)適用于云計(jì)算的可信虛擬化方案。前述內(nèi)容已說(shuō)明,現(xiàn)有的可信虛擬化方案存在可信功能缺失和性能受限兩方面的問(wèn)題,不能滿(mǎn)足云計(jì)算平臺(tái)的可信度量的全部要求。要實(shí)現(xiàn)該問(wèn)題的突破,需要對(duì)現(xiàn)有可信計(jì)算技術(shù)的體系做較大規(guī)模的調(diào)整,這有可能成為可信云計(jì)算技術(shù),甚至是可信計(jì)算技術(shù)未來(lái)研究的重點(diǎn)之一。
2)可信云平臺(tái)的協(xié)同工作問(wèn)題?,F(xiàn)有的可信云平臺(tái)構(gòu)建方案重點(diǎn)在于對(duì)計(jì)算節(jié)點(diǎn)可信度量,而針對(duì)節(jié)點(diǎn)間可信協(xié)同問(wèn)題的研究相對(duì)較少。但云計(jì)算平臺(tái)是一個(gè)典型的分布式系統(tǒng),所有機(jī)制均建立在協(xié)同工作的基礎(chǔ)上,研究適用于云計(jì)算平臺(tái)的分布式可信度量方案是未來(lái)可信云平臺(tái)的研究方向之一。
3)提出更為完善的虛擬機(jī)可信度量機(jī)制,支持虛擬機(jī)啟動(dòng)、遠(yuǎn)程證明、動(dòng)態(tài)遷移等整個(gè)生命周期的可信狀態(tài)一致性、連續(xù)性和完整性,形成一套完整的可信云平臺(tái)構(gòu)建解決方案。
4)建立自主可控可信云平臺(tái)構(gòu)建標(biāo)準(zhǔn)。2016年,微軟公布所有Win10新設(shè)備必須默認(rèn)支持TPM 2.0規(guī)范,并且TPM芯片必須默認(rèn)激活狀態(tài),這說(shuō)明可信計(jì)算技術(shù)在計(jì)算終端領(lǐng)域已逐步進(jìn)入推廣階段。與國(guó)外普遍采用的 TCG系列標(biāo)準(zhǔn)不同,我國(guó)已經(jīng)初步建立了自主可控的可信計(jì)算標(biāo)準(zhǔn),要占領(lǐng)信息安全高地,必須也要建立自己的可信云平臺(tái)構(gòu)建標(biāo)準(zhǔn),從云計(jì)算節(jié)點(diǎn)可信、虛擬機(jī)可信、傳輸可信、用戶(hù)行為可信等多角度保障云基礎(chǔ)設(shè)施的自主、安全、可控,掌握芯片、云操作系統(tǒng)、網(wǎng)絡(luò)服務(wù)器等軟硬件的核心技術(shù),扼守我國(guó)關(guān)鍵信息基礎(chǔ)設(shè)施的安全大門(mén)。
可信云計(jì)算技術(shù)將可信計(jì)算理論及技術(shù)應(yīng)用于云平臺(tái)的構(gòu)建,以保證云平臺(tái)的可信性,增加用戶(hù)對(duì)云計(jì)算技術(shù)的信任度。在可信云計(jì)算領(lǐng)域,國(guó)內(nèi)外已取得較好的研究成果,但是仍有許多遺留問(wèn)題尚待探討,本文重點(diǎn)介紹了當(dāng)前可信云計(jì)算技術(shù)中可信計(jì)算、云計(jì)算相互融合、相互支持的方式,分別圍繞可信虛擬化、可信云平臺(tái)構(gòu)建和可信虛擬機(jī)3個(gè)研究熱點(diǎn)問(wèn)題展開(kāi)綜述,以期為可信云計(jì)算技術(shù)的未來(lái)研究做出一些有益的探索。