齊 能,譚 良
(1.四川師范大學(xué) 計算機(jī)科學(xué)學(xué)院,成都 610101; 2.中國科學(xué)院 計算技術(shù)研究所,北京 100190)(*通信作者電子郵箱qihuaneng@163.com)
隨著云計算、大數(shù)據(jù)等大型計算應(yīng)用環(huán)境在實(shí)際業(yè)務(wù)上更多的應(yīng)用,具有提高效率、節(jié)約成本等優(yōu)點(diǎn)的虛擬化技術(shù)得到工業(yè)界和學(xué)術(shù)界的高度關(guān)注,并得以快速應(yīng)用和推廣。如何保障虛擬化平臺服務(wù)的可信[1-3],確認(rèn)虛擬化平臺向用戶提供可信任的資源和服務(wù)[4-6],是目前亟待解決的問題?;谟布湃胃目尚庞嬎慵夹g(shù)作為保障信息系統(tǒng)安全的關(guān)鍵技術(shù),通過構(gòu)建從平臺底層硬件到平臺上層應(yīng)用程序的信任鏈[7-8],并結(jié)合可信遠(yuǎn)程證明向平臺外部實(shí)體提供可信證明[9-11]。因此,利用可信計算技術(shù)保證虛擬機(jī)平臺可信、構(gòu)建可信虛擬平臺(Trusted Virtualization Platform, TVP)環(huán)境并構(gòu)建其信任鏈模型成為目前的研究熱點(diǎn)。
TVP的概念首先由Berger等[12]提出,隨后一些學(xué)者[13-16]針對如何構(gòu)建具體應(yīng)用場景的TVP功能應(yīng)用以及抽象和統(tǒng)一的TVP概念取得了很多較好的研究成果,并且達(dá)成了一些基本的共識。目前,相關(guān)學(xué)者絕大多數(shù)都認(rèn)為,在物理上,TVP作為一個可以支持虛擬化技術(shù)的可信計算物理主機(jī),與一般的可信計算的區(qū)別在于:擁有在物理硬件可信平臺模塊(Trusted Platform Module, TPM)構(gòu)建起來的虛擬可信信任根;可以為多個用戶虛擬機(jī)(Virtual Machine, VM)提供可信虛擬信任環(huán)境。這種TVP的運(yùn)行架構(gòu)如圖1所示。從功能上看,TVP架構(gòu)主要分為四個層次:第一層為硬件信任根TVP,為整個架構(gòu)提供信任的物理保證;第二層主要包括虛擬機(jī)監(jiān)視器(Virtual Machine Monitor, VMM),及構(gòu)建于VMM之上的管理域,它們通常被認(rèn)為是TVP的可信計算基(Trusted Computing Base, TCB);第三層是虛擬信任根(virtual Root of Trust, vRT),由于實(shí)現(xiàn)方案不同(如圖1中(a)、(b)所示),可作為傳統(tǒng)信任鏈的擴(kuò)展,或者利用動態(tài)度量信任根(Dynamic Root of Trusted Measurement, DRTM)機(jī)制啟動;第四層是與用戶緊密相關(guān)的用戶虛擬機(jī)。
圖1 TVP基本運(yùn)行架構(gòu)Fig. 1 Basic running architecture of TVP
盡管如此,上述的TVP基本運(yùn)行架構(gòu)以及信任鏈傳遞模型存在過粗且邏輯上不完全合理的問題,與云環(huán)境中虛擬化平臺也不完全相符合。如圖1所示,為了便于敘述,本文將圖1中從TPM到第三層的信任鏈稱為可信虛擬平臺信任鏈,將第四層的信任鏈稱為虛擬機(jī)信任鏈。具體問題表現(xiàn)在:
1)現(xiàn)有的TVP模型把整個第三層都作為TVP的TCB并作為虛擬機(jī)的vRT,顯然是不精細(xì)的,且邏輯上也不完全合理的。第三層包括VMM以及DOM管理域(即宿主機(jī)Domain0,為方便描述,后文稱為Dom0),信任鏈為CRTM(Core Root of Trust for Measurement)→BIOS→BootLoader→VMM→DOM OS→Apps,DOM管理域包含OS及大量的應(yīng)用程序,顯然不能采用鏈?zhǔn)蕉攘克械膽?yīng)用程序并存儲其平臺配置寄存器(Platform Configuration Register, PCR)值。
2)虛擬平臺信任鏈與虛擬機(jī)信任鏈?zhǔn)莾蓷l不同的信任鏈,即在整個TVP以及客戶虛擬機(jī)啟動過程中存在兩條在度量層次和度量時間上完全分隔的信任鏈,一條是可信虛擬平臺在啟動時的信任鏈,另一條是客戶虛擬機(jī)在啟動時的信任鏈。
針對上述問題,本文提出了一種具有瀑布特征的TVP架構(gòu)TVP-QT,并對TVP-QT信任鏈傳遞模型進(jìn)行了構(gòu)建,建立了擁有可信銜接點(diǎn)(Trusted-Joint Point, TJP)的TVP-QT及其完整的信任鏈模型。該模型以虛擬化硬件層物理TPM為起點(diǎn),在可信虛擬化平臺信任鏈和可信虛擬機(jī)信任鏈之間加入可信銜接點(diǎn)。當(dāng)信任鏈從可信云平臺傳遞到可信銜接點(diǎn)時,由可信銜接點(diǎn)負(fù)責(zé)對可信虛擬機(jī)的可信虛擬平臺模塊(virtualization Trusted Platform Module, vTPM)及相關(guān)組件進(jìn)行度量,之后再將控制權(quán)交給vTPM,由vTPM負(fù)責(zé)對虛擬機(jī)的VBIOS(Virtual BIOS)、VMOS(OS of Virtual Machine)到VM應(yīng)用進(jìn)行度量。該模型中可信銜接點(diǎn)具有承上啟下的瀑布特征,能滿足云環(huán)境的層次性和動態(tài)性特征,保證了整個可信虛擬平臺的可信性。
目前針對TVP及其抽象模型以及信任鏈傳遞模型的研究得到了國內(nèi)外學(xué)者的廣泛關(guān)注,本文就目前對TVP、TVP信任鏈模型的研究進(jìn)行了以下總結(jié)和分析。
對于TVP的研究,早在TVP概念出現(xiàn)之前,就出現(xiàn)了利用可信計算技術(shù)解決虛擬系統(tǒng)平臺安全的方案,為TVP的發(fā)展提供了一些理論和構(gòu)建基礎(chǔ),這些平臺包括Terra[17]、PERSEUS[18]等,這些平臺的主要思想是把底層計算平臺分為兩部分,包括運(yùn)行著高安全性需求虛擬機(jī)的可信區(qū)域和其他不可信區(qū)域。隨后,Berger等[12]首先提出構(gòu)建TVP的基本組件vRT、vTPM等基本思想,并且構(gòu)建了具體的TVP架構(gòu)。根據(jù)文獻(xiàn)[12]的vRT等概念,HP、IBM等研究機(jī)構(gòu)分別提出并構(gòu)建了相應(yīng)的TVP[13-14],其TVP架構(gòu)可根據(jù)不同應(yīng)用需求建立用戶可定制的TVP,在很大程度上推動了TVP的發(fā)展。隨后,Krautheim等[15]、王麗娜等[16]基于云計算環(huán)境建立了TVP,使其可以保護(hù)云計算環(huán)境下的虛擬機(jī)運(yùn)行,以及保護(hù)虛擬機(jī)運(yùn)行時上層服務(wù)軟件的完整性、安全性。之后,常德顯等[19]根據(jù)TVP的功能層次給出了包括虛擬機(jī)和虛擬可信根的TVP定義,并細(xì)分為VMM、Dom0、TPM、vRT等組件。Zhang等[20]提出一種具有可信域?qū)哟蔚腡VP,通過采用可信云平臺和可信虛擬機(jī)進(jìn)行分離的TVP構(gòu)建機(jī)制,實(shí)現(xiàn)了對可信云平臺以及可信虛擬機(jī)的安全保障。Yu等[21]、池亞平等[22]、李海威等[23]提出的可信虛擬平臺均為鏈?zhǔn)浇Y(jié)構(gòu),存在信任鏈分離的問題。徐天琦等[24]、楊麗芳等[25]、蔡誼等[26]也分別利用可信計算技術(shù)構(gòu)建TVP解決虛擬化平臺服務(wù)器的安全性問題。總結(jié)起來,目前已有的研究成果把TVP的VMM和管理域都作為TCB,一起作為虛擬機(jī)的vRT,這顯然存在過粗且邏輯上不完全合理的問題,因?yàn)楣芾碛虬琌S及大量的應(yīng)用程序,不能采用鏈?zhǔn)蕉攘克械膽?yīng)用程序并存儲其PCR值。
對于TVP信任鏈模型的研究,主要包括三個方面。其一是通過對可信計算組織(Trusted Computing Group, TCG)鏈?zhǔn)叫湃捂溎P偷臄U(kuò)展,實(shí)現(xiàn)TVP下可信度量以及信任傳遞。Scarlata等[27]提出在構(gòu)建TVP時,通過可信測量構(gòu)建從CRTM可信根到每個客戶虛擬機(jī)的信任鏈,就可以證明每個客戶虛擬機(jī)是可信的;這種信任鏈模型是不完善的,無法適應(yīng)比較復(fù)雜的TVP環(huán)境。Krautheim等[28]對信任鏈擴(kuò)展上提出了“Transitive Trust Chain”信任鏈模型,并且簡要地指出了信任鏈傳遞過程為TPM→VMM→TVEM manager→TVEM→VM OS→應(yīng)用程序(APP),但是此種信任鏈模型沒有詳細(xì)描述特權(quán)域操作系統(tǒng)以及虛擬機(jī)操作系統(tǒng)的可信度量。Shen等[29]根據(jù)TCG動態(tài)度量方法提出了一種基于Xen的可信虛擬機(jī)在DRTM下的信任鏈構(gòu)建,其具體的構(gòu)建過程為:CPU→可信代碼→Xen VMM→Dom0(→vTPM Manager→Domain Builder)→Guest OS→APP,此種信任鏈模型也存在Krautheim等[28]所提模型中的問題。其二是通過研究可信云平臺和可信虛擬機(jī)兩部分的信任鏈,構(gòu)建TVP下的信任鏈模型。常德顯等[19]提出的TVP信任鏈從功能層次可表示為:硬件TPM層→TCB層→vRT層→用戶虛擬機(jī)層的信任鏈模型,此信任鏈模型對vRT及層次間的連接定義比較模糊。Zhang等[20]提出一種基于無干擾的可信域?qū)哟涡湃捂溎P?,并且指出分別度量物理主機(jī)和VM的方式,即首先度量從物理的TPM到物理主機(jī)的應(yīng)用程序,然后度量VM的vTPM和應(yīng)用程序,此種信任鏈模型無法有效地在TVP下構(gòu)建完整的鏈?zhǔn)叫湃捂溎P?,不能向用戶虛擬機(jī)呈現(xiàn)一條完整的信任鏈模型,文獻(xiàn)[22-23]也存在此類問題。其三是樹型或者星型的信任鏈模型。一部分學(xué)者認(rèn)為TCG的鏈?zhǔn)叫湃捂溈尚哦攘糠绞皆谔摂M化環(huán)境下是難以有效構(gòu)建的。朱智強(qiáng)[30]、曲文濤[31]基于星型信任度量結(jié)構(gòu),提出基于信任根(Root of Trust, RT)對各個節(jié)點(diǎn)進(jìn)行度量的模型及其改進(jìn),但是此種信任鏈模型也存在負(fù)擔(dān)重的管理域(Management Domain, MD)節(jié)點(diǎn)。總結(jié)起來,目前針對TVP的信任鏈模型的共同問題是信任鏈模型過粗且邏輯上不合理,而且目前研究內(nèi)容中的可信虛擬平臺信任鏈與虛擬機(jī)信任鏈?zhǔn)莾蓷l在度量層次和度量時間上分離的信任鏈,不能向虛擬機(jī)用戶展示一條從TPM到虛擬機(jī)應(yīng)用的完整信任鏈。
綜上所述,TVP基本運(yùn)行架構(gòu)以及信任鏈傳遞模型均有待改進(jìn)。特別地,由于TVP具有層次性和動態(tài)性,已有的研究成果不能精細(xì)地描述虛擬化環(huán)境中復(fù)雜的信任鏈傳遞機(jī)制,且存在兩條分離的信任鏈。
為解決引言中提出的問題,本文提出了具有瀑布特征的TVP-QT及信任鏈模型。本文主要針對TVP-QT及信任鏈模型,而針對虛擬化平臺固有的安全性機(jī)制,比如VMM的特權(quán)域操作、VM之間的隔離性等安全性機(jī)制,可參考Barthe等[32]給出的形式化描述與分析。本章將對TVP-QT的功能組件以及TVP-QT信任鏈信任屬性進(jìn)行定義,并在下一章利用文獻(xiàn)[33]提出的安全邏輯形式化方法對信任鏈進(jìn)行形式化分析。本文主要對文獻(xiàn)[19]給出的定義進(jìn)行擴(kuò)展,其基本定義不再敘述。
基于已有的TVP研究方案,本文提出的TVP-QT信任模型如圖2所示。TVP-QT分為五個層次:第一層是硬件信任根TPM構(gòu)成的可信虛擬平臺底層。第二層主要包括VMM以及管理域Dom0的相關(guān)組件,包括VBOIS、VOSLoader、VMOS等組件,作為TVP-QT的可信計算基。把Dom0 Kernel看成是可信基,這比已有的TVP更合理,因?yàn)镈om0實(shí)際上是整個虛擬化平臺的管理域,含大量的應(yīng)用程序,這些管理程序無法采用TCG鏈?zhǔn)蕉攘?,也很容易受到攻擊而改變[34-37]。第三層是重點(diǎn)設(shè)計的可信銜接點(diǎn),可信銜接點(diǎn)位于Dom0,是Dom0的一組應(yīng)用程序,包括vTPM實(shí)例的創(chuàng)建模塊vTPM Builder、vTPM-VM映射組件vTPM-VM Binding以及VM的創(chuàng)建組件VM Builder,且作為vRT的一部分,在信任鏈上按照vTPM Builder→vTPM-VM Binding→VM Builder的順序依次進(jìn)行度量??尚陪暯狱c(diǎn)可對TVP-QT的第一、第二層與第四、第五層進(jìn)行有效銜接,保證TVP-QT信任鏈構(gòu)建的連貫性,起到承上啟下的作用,具有瀑布特征。第四層為vTPM,最上層為用戶虛擬機(jī)層次,其運(yùn)行時組件主要包括VBIOS、VOSLoader、VMOS、應(yīng)用程序(APP)等相關(guān)組件?;谏鲜鰧VP-QT的分析,本文依據(jù)文獻(xiàn)[19]的基礎(chǔ)定義進(jìn)行擴(kuò)展抽象定義。
圖2 TVP-QT運(yùn)行架構(gòu)Fig. 2 Running architecture of TVP-QT
定義1TVP-QT主要包括兩類功能組件:TVP-QT:={M, RT}。其中:M表示虛擬化平臺所有主機(jī)類型集合,包括構(gòu)成虛擬化平臺的基本組件VMM、管理域內(nèi)核、可信銜接點(diǎn)及用戶虛擬機(jī)等;信任根(RT)是構(gòu)建TVP信任環(huán)境的基礎(chǔ),也是TVP的核心組件,對TVP-QT來說,它包括硬件TPM、可信銜接點(diǎn)TJP和vTPM。
其中:M={m, vm},m:={VMM, Dom0 Kernel, TJP},vm:={vm1, vm2, …, vmn};RT:={TPM, vRT}={TPM, (TJP, vTPM)};并且m必須利用TPM進(jìn)行可信度量來提供信任,vm利用TJP和vm對應(yīng)的vTPM實(shí)例進(jìn)行可信度量??尚陪暯狱c(diǎn)TJP可以劃分為TJP:={vTPM Builder, vTPM-VM Binding, VM Builder},其中vTPM Builder表示與創(chuàng)建和管理vTPM實(shí)例相關(guān)的組件,并負(fù)責(zé)提供給vm運(yùn)行時的vTPM標(biāo)識以及端口;而vTPM-VM Binding則表示對vm和vTPM實(shí)例間綁定關(guān)系的相關(guān)組件;VM Builder表示與創(chuàng)建用戶虛擬機(jī)相關(guān)的配置文件、組件等。在TVP-QT涉及到的vTPM架構(gòu)中,每個vm必須與唯一對應(yīng)的vTPM實(shí)例綁定。可信銜接點(diǎn)TJP的來源如表1所示,其中vTPM管理組件可由VMM上的vTPM組件提供,比如目前存在于Xen上的vTPM Manager。
表1 TJP功能組件來源Tab. 1 Resource of TJP’s components
相對于已有的TVP,本文提出的TVP-QT信任模型具有如下特點(diǎn):
1)TVP-QT更加精細(xì)。已有的TVP把整個管理域作為TCB,TVP-QT模型僅把Dom0 Kernel、TJP及vTPM作為TCB。
2)TVP-QT在邏輯上更合理。一方面,TVP-QT可以按鏈?zhǔn)蕉攘克袑哟?,更符合TCG的鏈?zhǔn)蕉攘繕?biāo)準(zhǔn);另一方面,TVP-QT增加了TJP,從邏輯上比已有的TVP更加合理。
本文依據(jù)TCG對信任鏈的基本定義和要求構(gòu)建了基于TVP-QT的信任鏈模型,如圖3所示,從外部實(shí)體來看,虛擬化平臺仍然滿足TCG最初建立信任環(huán)境的思想。
圖3 虛擬化平臺可信環(huán)境信任鏈構(gòu)建與驗(yàn)證Fig. 3 Construction and validation of TVP-QT trust chain
本文將2.1節(jié)的可驗(yàn)證目標(biāo)抽象為信任鏈的信任屬性(Trusted Property, TP),其抽象定義如下。
定義2TVP-QT的信任屬性為一個二元組:TPTVP-QT:={TCTVP-QT,VerTVP-QT},其中TCTVP-QT表示2.1節(jié)對TVP-QT信任鏈模型具體構(gòu)建過程描述的各個組件序列,VerTVP-QT表示為需要對TVP-QT信任鏈模型進(jìn)行遠(yuǎn)程認(rèn)證的執(zhí)行序列。
按照定義1對TVP-QT中相應(yīng)功能組件的定義,該TVP-QT信任屬性可以進(jìn)一步細(xì)分為:
TPTVP-QT:={(TCm,(TCTJP,TCvTPM),TCvm),
(Verm,(VerTJP,VervTPM),Vervm)}
由定義可知TVP-QT信任屬性可以分為三類:m的信任屬性TCm,vRT的信任屬性TCvRT,以及vm的信任屬性TCvm。其中TCvRT包含TCTJP和TCvTPM兩個屬性。下面對TVP-QT三類組件的信任屬性進(jìn)行分別闡述。
1)主機(jī)m的信任屬性表示為TPm:={TCm,Verm},其中,TCm表示基于硬件信任根構(gòu)建的信任鏈,即CRTM→BIOS→OSLoader→VMM→Dom0 KernelTPM_Static,此部分信任鏈可基于硬件可信芯片TPM的可信度量,在TVP-QT信任鏈可信傳遞過程中沒有其他程序代碼加載或者執(zhí)行。Verm:=Verify(m, TCm)表示對外驗(yàn)證主機(jī)m所聲稱的信任屬性TCm,使遠(yuǎn)程驗(yàn)證者R相信TVP-QT平臺主機(jī)m擁有這樣的信任鏈屬性TCm。
2)vRT的信任屬性為TPvRT:={TCvRT, VervRT}。由定義1對vRT以及定義2對TVP-QT信任屬性的定義:
TPvRT:={(TCTJP, VerTJP), (TCvTPM, VervTPM)}
其中,TCTJP表示基于硬件信任根構(gòu)建的信任鏈銜接點(diǎn),其信任傳遞的過程包括兩種情況:其一是在m啟動時,需要采用靜態(tài)度量方式對TJP進(jìn)行度量,其信任傳遞的過程為 (…→Dom0 Kernel→TJP)TPM_Static,完整地表示為:(CRTM→BIOS→OSLoader→VMM→Dom0 Kernel →vTPM Builder → vTPM-VM Binding→VM Builder)TPM_Static;其二是在創(chuàng)建vm時,為了保證TJP的可信(由于TJP是應(yīng)用程序,惡意程序容易篡改),從而使得信任關(guān)系可以傳遞到新建的vm, 需要采用動態(tài)度量方式對TJP重新度量驗(yàn)證,信任傳遞的過程為 (TJP)TPM_Dynamic,完整表示為:(vTPM Builder→vTPM-VM Binding→VM Builder)TPM_Dynamic。在這兩種情況下,VerTJP:=Verify(TJP, TCTJP)表示對外驗(yàn)證可信銜接點(diǎn)所聲稱的信任屬性TCTJP;TCvTPM表示用戶虛擬機(jī)信任根vTPM。其中,TJP到vTPM的信任傳遞,既可以采用靜態(tài)度量,也可以采用動態(tài)度量,其信任傳遞的過程為:(TJP→vTPM)TPM_Staic或(TJP→vTPM)TPM_Dynamic。VervTPM:=Verify(vTPM, VervTPM)表示對外驗(yàn)證vTPM所聲稱的信任屬性TCvTPM。
3)vm的信任屬性表示為TPvm:={TCvm,Vervm},其中TCvm表示基于vTPM構(gòu)建的信任鏈,在創(chuàng)建vm時需采用動態(tài)度量方式對TJP進(jìn)行度量,vm從初始化到應(yīng)用的可信啟動過程為:(TJP)TPM_Dynamic→{INIT→VBIOS→VOSLoader→VMOS→APP}vTPM_Static。VerVM:=Verify(vm,TCvm)表示vm信任鏈的外部驗(yàn)證。
顯然,相對于已有的TVP信任鏈模型,本文提出的TVP-QT信任鏈模型具有如下特點(diǎn):
1)TVP-QT信任鏈模型具有瀑布特征。TJP將分離的兩條信任鏈鏈接起來,保證TVP-QT信任鏈構(gòu)建的連貫性,起到承上啟下的作用。
2)TVP-QT信任鏈模型具有動態(tài)性和層次性。動態(tài)性主要體現(xiàn)在兩個方面:其一,從時間上看ms的信任鏈和vm的信任鏈?zhǔn)莾蓷l分離的信任鏈;其二,可信銜接點(diǎn)TJP在ms啟動時采用的是靜態(tài)度量,而在vm創(chuàng)建時,需要動態(tài)度量。層次性主要體現(xiàn)在ms的信任鏈?zhǔn)腔A(chǔ),處于底層,而各vm的信任鏈?zhǔn)切湃螖U(kuò)展,處于頂層。底層信任鏈和頂層信任鏈通過銜接點(diǎn)TJP鏈接,保證底層信任鏈到頂層信任鏈的信任擴(kuò)展。
3)TVP-QT信任鏈模型利用構(gòu)建的可信銜接點(diǎn)解決了虛擬平臺信任鏈與虛擬機(jī)信任鏈的銜接問題。
本文將采用已有的形式化分析方法“擴(kuò)展安全邏輯(Logic of Secure System, LS2)”對TVP-QT信任鏈模型進(jìn)行形式化分析。對LS2的具體內(nèi)容可參考文獻(xiàn)[19,33]。
在對TVP-QT信任鏈屬性進(jìn)行形式化分析前,本文假定以下條件是成立的:1)TVP中的每個層次的鏡像文件未受破壞,用戶虛擬機(jī)可被可信度量;2)m支持 DRTM技術(shù),能夠動態(tài)度量TJP和vTPM;3)vTPM的平臺身份密鑰(Attestation Identity Key,AIK)已得到認(rèn)證并頒發(fā)證書,具體實(shí)現(xiàn)方案參見vTPM[14]及 Trust Visor[38]等;4)遠(yuǎn)程挑戰(zhàn)者 R 與本地TVP之間已經(jīng)建立了安全信道[19]。
從2.2節(jié)的分析可知,本文對TVP-QT 信任鏈的信任屬性分析驗(yàn)證主要包括三部分:
1)包括TJP在內(nèi)的m信任鏈構(gòu)建的驗(yàn)證及遠(yuǎn)程驗(yàn)證;
2)TJP動態(tài)度量驗(yàn)證及遠(yuǎn)程驗(yàn)證;
3)利用vTPM構(gòu)建的vm信任鏈驗(yàn)證及遠(yuǎn)程證明。
在這三部分中,對3)的驗(yàn)證分析與文獻(xiàn)[19]相同,具體過程可參見文獻(xiàn)[19],本文不再論述;下面本文只對1)、2)進(jìn)行驗(yàn)證分析。
3.2.1本地程序執(zhí)行
根據(jù)2.2節(jié)對TVP中m信任屬性TPm定義以及TPvRT中對TCTJP的定義,其信任鏈本地執(zhí)行過程中涉及到的程序如下列程序1(Code Segment 1)所示。
Code Segment 1:
SRTM(m)≡b=read m.bios_loc
Extend m.pcr.s,b;
Jump b
BIOS(m)≡o=read m.os_loader_loc
Extend m.pcr.s,o;
Jump o
OSLoader(m)≡v=read m.vmm_loc
Extend m.pcr.s,v;
Jump v
VMM(m)≡d=read m.dom0_Kernel_loc
Extend m.pcr.s,d;
Jump d
Dom0 Kernel(m)≡vb=read m.tjp_loc
Extend t.pcr.s,t;
Jump vb
vTPMBuilder(m)≡vv=read m.vtpm-vm-binding_loc
Extend m.pcr.s,vv;
Jump vv
vTPMVM Binding(m)≡vmb=read m.vm-builder_loc
Extend m.pcr.s,vm;
Jump vmb
VMBuilder(m)≡o_app=read m. o_app _loc
Extend m.pcr.s, o_app;
Jump o_app
OtherAPP(m)≡…
程序執(zhí)行流程:m首先從CRTM啟動執(zhí)行,它從主機(jī)內(nèi)存地址m.bios_loc中讀取BIOS的代碼b,將其擴(kuò)展到一個PCR中,之后執(zhí)行指令Jump b;然后CRTM將控制權(quán)傳遞給m的BIOS,它從主機(jī)內(nèi)存地址m.os_loader_loc中讀取OS_Loader代碼o,將其擴(kuò)展到一個PCR中,之后執(zhí)行指令Jump o,將控制權(quán)交給OSLoader;OSLoader繼續(xù)按序從內(nèi)存m.vmm_loc讀取VMM的代碼v,將其擴(kuò)展到m.pcr.s[19],然后轉(zhuǎn)換控制權(quán)給VMM,VMM、Dom0 Kernel執(zhí)行相似流程,直到可信銜接點(diǎn)TJP的加載。
3.2.2本地可信屬性描述
由上文信任鏈傳遞程序執(zhí)行過程可知,體現(xiàn)主機(jī)m信任鏈的是主機(jī)進(jìn)行可信度量后唯一對應(yīng)的PCR值。因此,基于定義2,可將m的本地信任傳遞屬性歸納為:信任鏈加載的正確由PCR中度量值決定。即m的本地信任傳遞屬性就是要求所有相應(yīng)啟動程序如BIOS、OSLoader、VMM、Dom0 Kernel、vTPM Builder、 vTPM-VM Binding、VM Builder等都能按確定的先后順序加載。以LS2將這種順序形式化表示為:
MeasuredBootSRTM(m,t)=
?tS.?tb.?to.?tv.?td.?tvb.?tvv.?tvmb.?to_app∧
?J.(tS (Reset(m,J)@tS)∧(Jump(J,BIOS(m))@tb)∧ (Jump(J,OSLoader(m))@to)∧ (Jump(J,VMM(m))@tv)∧ (Jump(J,Dom0_Kernel(m))@td)∧ (Jump(J,vTPM-Builder(m))@tvb)∧ (Jump(J,vTPM-VMBinding(m))@tvv)∧ (Jump(J,VM-Builder(m))@tvvb)∧ (Jump(J,VM-Builder(m))@to_app)∧ (┐Reset(m)on(tS,t])∧(┐Jump(J)on(tS,tb))∧ (┐Jump(J)on(tB,to))∧(┐Jump(J)on(to,tv))∧ (┐Jump(J)on(tv,td))∧(┐Jump(J)on(td,tvb))∧ (┐Jump(J)on(tvb,tvv))∧(┐Jump(J)on(tvv,tvvb))∧ (┐Jump(J)on(tvvb,to_app)) 上述公式表示:如果TVP的m基于信任鏈構(gòu)建了本地信任環(huán)境,則其啟動過程一定是從BIOS跳轉(zhuǎn)到OSLoader,從OSLoader到VMM,從VMM到Dom0_Kernel,然后從Dom0_ Kernel到TJP,而在此期間不會有其他程序執(zhí)行。為保證程序逐級加載順序與PCR值相對應(yīng),必須證明信任鏈本地屬性是成立的。 定理1如果m從CRTM啟動運(yùn)行,且與該m啟動過程對應(yīng)的PCR值為seq(BIOS(m),OSLoader(m),VMM(m),Dom0_Kernel(m), vTPM Builder(m), vTPM-VM Binding(m), VM Builder(m)),那么該m的本地信任鏈傳遞過程就是唯一的、正確的,即確定地從BIOS(m)到OSLoader(m)再到VMM(m)、Dom0 Kernel(m)、vTPM Builder(m)、 vTPM-VM Binding(m)、VM Builde(m)。該信任屬性形式化表示為: ProtectedSRTM(m)+Mem(m.pcr.s,seq(BIOS(m), OSLoader(m),VMM(m),Dom0_Kernel(m), vTPMBuilder(m),vTPM-VM Binding(m), VM Builder(m)))?MeasuredBootSRTM(m,t) 證明本文按照以下步驟進(jìn)行證明: 首先,由前提條件可知在時間點(diǎn)t,有Mem(m.pcr.s, seq(BIOS(m),OSLoader(m), VMM(m), Dom0_Kernel(m), vTPM Builder(m), vTPM-VM Binding(m), VM Builder(m)))成立,反復(fù)利用PCR公理即可直接得到在該序列中的所有子序列一定在時間t之前就出現(xiàn)在m.pcr.s中,即: ?tS,t1,t2,t3,t4,t5,t6,J.(tS≤t1 (Mem(m.pcr.s,seq(BIOS(m),OSLoader(m), VMM(m),Dom0_Kernel(m),vTPM Builder(m), vTPM-VM Binding(m),VM Builder(m)))@t)∧ (Mem(m.pcr.s,seq(BIOS(m),OSLoader(m), VMM(m),Dom0_Kernel(m),vTPM Builder(m), vTPM-VM Binding(m)))@t6)∧(Mem(m.pcr.s, seq(BIOS(m),OSLoader(m),VMM(m), Dom0_Kernel(m),vTPM Builder(m))),@t5)∧ (Mem(m.pcr.s,seq(BIOS(m),OSLoader(m), VMM(m),Dom0_Kernel(m)))@t4)∧(Mem(m.pcr.s, seq(BIOS(m),OSLoader(m),VMM(m)))@t3)∧ (Mem(m.pcr.s,seq(BIOS(m),OSLoader(m)))@t2)∧ (Mem(m.pcr.s,seq(BIOS(m)))@t1)∧ Reset(m,J)@tS∧(┐Reset(m)on(tS,t)) (1) 接下來對程序1中信任鏈的執(zhí)行過程進(jìn)行說明,最先執(zhí)行的操作是以CRTM為起點(diǎn)啟動m,即Reset(m,J),然后m執(zhí)行第一個信任程序BIOS(m)。利用LS2規(guī)則,在某個時間tB,程序會跳轉(zhuǎn)到b,此時內(nèi)存位置被鎖定,防止其他程序跳轉(zhuǎn)[19]。即有以下屬性(2)成立。 ?t′,b,o (((Mem(m.pcr.s,seq(BIOS,b,o))@t′)∧(ts ?tb·((ts (IsLocked(m.pcr.s,J)@tb) (2) 類似地,接下來的信任程序:OSLoader(m)、VMM(m)、Dom0_Kernel(m)、vTPM Builder(m)、vTPM-VM Binding(m)和VM Builder(m)也利用LS2規(guī)則,在某個時間to、tv、td、tvb、tvv、tvmb、to_app,程序會跳轉(zhuǎn)到o、v、d、vb、vv、vmb、o_app,且其他時間不會有程序跳轉(zhuǎn),相應(yīng)的內(nèi)存位置(即PCR值)被該線程鎖定,即有o、v等對應(yīng)的類似式(2)的屬性成立,限于篇幅,這些屬性略。 根據(jù)式(2)及o、v、d等對應(yīng)的屬性可知,如果前提條件滿足,那么m上執(zhí)行程序的順序一定是從BIOS(m)到OSLoader(m)再到VMM(m)、Dom0Kernel(m)、TJP(m)。 ?tS,tb,to,tv,td,tvb,tvv,tvmb,to_app (tS (┐Reset(m,I)on(tS,t])∧(Reset(m,J)@tS)∧ (Jump(J,BIOS(m))@tb)(┐Jump(J,BIOS(m)) on(tS,tb))∧(Jump(J,OSLoader(m))@to)∧ (┐Jump(J,OSLoader(m))on(tb,to))∧ (Jump(J,VMM(m))@tv)∧ (┐Jump(J,VMM(m))on(to,tv))∧ (Jump(J,Dom0_Kernel(m))@td)∧ (┐Jump(J,Dom0_Kernel(m))on(tv,td))∧ (Jump(J,vTPM-Builder(m))@tvb)∧ (┐Jump(J,vTPM-Builder(m))on(td,tvb))∧ (Jump(J,vTPM-VM Binding(m))@tvv)∧ (┐Jump(J,vTPM-Builder(m))on(tvb,tvv))∧ (Jump(J,VM Binding(m))@tvmb)∧ (┐Jump(J,VM Builder(m))on(tvv,tvmb))∧ (Jump(J,VM Binding(m))@to_app)∧ (┐Jump(J,VM Builder(m))on(tvmb,to_app)) (3) 定理1即得證。 可信計算技術(shù)提供的度量擴(kuò)展機(jī)制能夠保證只有程序得到正確的內(nèi)存值時才能繼續(xù)運(yùn)行下一個程序,可確保程序是在無攻擊者存在的情況下運(yùn)行的。 3.2.3信任鏈遠(yuǎn)程驗(yàn)證 TVP-QT的m需要對外部挑戰(zhàn)者證明自身的信任屬性,需要證明MeasuredBootSRTM(m,t)成立,證明方法可參照上文以及文獻(xiàn)[33],本文在此僅對驗(yàn)證程序進(jìn)行說明。m信任傳遞的遠(yuǎn)程驗(yàn)證過程中涉及到的程序,如程序2(Code Segment 2)所示。 Code Segment 2: TPMSRTM(m)≡w=read m.pcr.s; r=sign(PCR(s),w),AIK-1(m); send r Verifier(m)≡sig=recieve; v=verify sig, AIK(m); match v,(PCR(s), seq(BIOS(m),OSLoader(m),VMM(m), Dom0_Kernel(m),vTPM Builder(m), vTPM-VM Binding(m),VM Builder(m))) 首先,m讀取存儲的PCR值,用AIK簽名(AIK-1(m))并將其發(fā)送給遠(yuǎn)程驗(yàn)證者R。然后,R驗(yàn)證該簽名,如果PCR值是匹配的,則說明m的可信屬性是值得信任的。在此過程中R與m應(yīng)是不同的實(shí)體,以保證該驗(yàn)證過程的有效性,避免驗(yàn)證過程的偽造。 這些前提條件形式化表示為: {TPMSRTM(m),TPMDRTM(m)})} (4) 本節(jié)根據(jù)2.2節(jié)對TVP-QT中的相關(guān)定義和說明,對可信銜接點(diǎn)TJP的動態(tài)度量機(jī)制進(jìn)行本地驗(yàn)證和遠(yuǎn)程證明的形式化描述。 3.3.1本地程序執(zhí)行 根據(jù)2.2節(jié)對TVP-QT中TJP信任屬性TPTJP定義以及TPvRT中對TCTJP的定義,其信任鏈本地執(zhí)行過程中涉及到的程序如程序3(Code Segment 3)所示。 Code Segment 3: LatelaunchDTRM(vTPM-Builder) ≡vtb=read m.vTPM-Builder_loc; Extend m.dpcr.d,m; Jump vtb … vTPM-Builder(TJP)≡vvb= read m.vTPM-VM-Binding_loc; Extend m.dpcr.d,vvb; Jump vvb vTPM-VM Binding(TJP)≡vvmb=read m.VM-Builder_loc Extend m.dpcr.d,vvmb; Jump vvmb VM-Builder(TJP)≡vtpmb=read m.vTPM_loc Extend m.dpcr.d,vtpmB; Jump vtpmb vTPM(m)≡… 程序執(zhí)行流程:首先確保TJP的vTPM-Builder能正常加載。然后利用DRTM度量TJP的三個組件vTPM Builder、vTPM-VM Binding、VM Builder,從主機(jī)內(nèi)存地址中讀取vTPM Builder的代碼,將其擴(kuò)展到一個PCR中[19];之后執(zhí)行命令Jump vtb將控制權(quán)交給vTPM Builder,按照上面的過程依次度量vTPM-VM Binding、VM Builder。 在此過程中,對TJP的動態(tài)度量必須在m啟動之后且創(chuàng)建vm之前,否則會導(dǎo)致TJP無法按順序正確度量。將其表示為: Honest(TPMSRTM(m)?TJPDRTM(m)∧ TJPDRTM(m)?vTPMSRTM/DRTM(vm)) 此外,TVP在啟動m時,相應(yīng)的線程K對必須能夠?qū)Ξ?dāng)前m對應(yīng)的PCR值有鎖控制,這種控制對潛在的攻擊者也成立,表示為: ProtectedSRTM(m)=?t,K.(Reset(m,K)@t)? (IsLocked((m.pcr.s,m.pcr.d),K)@)t 由于TJP 的vTPM Builder被抽象為一個單獨(dú)的應(yīng)用程序,利用Latelaunch(vTPM Builder)動態(tài)加載機(jī)制確保其可信執(zhí)行,即KDRTM成立[27]。 3.3.2本地可信屬性描述 基于定義2及TJP度量后的PCR和其中的每個組件存在的唯一性、確定性映射關(guān)系,可將TJP的本地信任傳遞屬性歸納為:TJP信任鏈加載程序執(zhí)行順序的正確性由最終產(chǎn)生的PCR值決定。即TJP的本地信任傳遞屬性就是要求所有相應(yīng)啟動程序如vTPM Builder、vTPM-VM Binding、VM Builder等都能按確定的先后順序加載。以LS2將這種順序形式化表示為: MeasuredBootDRTM(TJP,t)= ?I∈m.?tvtb.?tvvb.?tvvmb.?tvtpmb. ?K.(tvtb (Jump(K,vTPM Builder(TJP))@tvtb)∧ (Jump(K,vTPM-VM Binding(TJP))@tvvb)∧ (Jump(K,VM Builder(TJP))@tvvmb)∧ (Jump(K,vTPM(TJP))@tvtpmb)∧ (┐Reset(m)on(tvtb,t])(┐Jump(K)on(tvtb,tvvb))∧ (┐Jump(K)on(tvvb,tvvmb))∧ (┐Jump(K)on(tvvmb,tvtpmb)) (5) 式(5)表示:如果TVP基于信任鏈構(gòu)建TJP信任環(huán)境,則其啟動過程一定是從vTPM Builder跳轉(zhuǎn)到vTPM-VM Binding,然后到VM Builder,在程序執(zhí)行期間,程序啟動序列都有唯一的PCR值,并且不會有其他應(yīng)用程序或者組件執(zhí)行。需要證明的信任鏈本地信任屬性如下。 定理2如果TJP加載成功,且與該TJP加載過程對應(yīng)的PCR值為seq(vTPM Builder(TJP),vTPM-VM Binding(TJP),VM Builder(TJP)),那么該TJP的本地信任鏈傳遞過程就是唯一的、正確的,即確定地從vTPM Builder(TJP)到vTPM-VM Binding(TJP)再到VM Builder(TJP)。該信任屬性形式化表示為: ProtectedDRTM(TJP)+ Mem(m.dpcr.d,seq(vTPM Builder(TJP), vTPM-VM Binding(TJP),VM Builder(TJP)))? MeasuredBootDRTM(TJP,t) (6) 證明過程類似m的信任鏈本地可信屬性的證明,在此不再敘述。 3.3.3信任鏈遠(yuǎn)程驗(yàn)證 TVP-QT的TJP 需要向R證明自己在信任鏈傳遞過程中進(jìn)行可信度量的組件的信任屬性及構(gòu)建的可信執(zhí)行環(huán)境,需要證明MeasuredBootDRTM(TJP,t)成立。 1)遠(yuǎn)程驗(yàn)證程序執(zhí)行。 首先,根據(jù) TCG 遠(yuǎn)程證明協(xié)議規(guī)范及在虛擬化平臺中的實(shí)現(xiàn),給出TJP 信任傳遞的遠(yuǎn)程驗(yàn)證過程中涉及到的程序,如程序4(Code Segment 4)所示。 Code Segment 4: TPMDRTM(TJP)≡w=read m.pcr.d; r=sign(PCR(s),w),AIK-1(m); send r Verifier(TJP)≡sig=recieve; v=verify sig, AIK(m); match v, (PCR(s), seq(vTPM Builder(TJP),vTPM-VM Binding(TJP),VM Builder(TJP))) 首先,m讀取本地TJP的PCR值,用AIK簽名(AIK-1(m))并將其發(fā)送給挑戰(zhàn)者。然后,由遠(yuǎn)程驗(yàn)證者R驗(yàn)證簽名,并用預(yù)期的度量值與收到的PCR值進(jìn)行匹配,驗(yàn)證TJP是否擁有可信屬性。在此過程中遠(yuǎn)程驗(yàn)證者與TJP所屬的主機(jī)m應(yīng)是不同實(shí)體。 這些前提條件形式化表示為: 2)信任鏈屬性的遠(yuǎn)程驗(yàn)證。 根據(jù)遠(yuǎn)程證明協(xié)議執(zhí)行流程,給出以下信任傳遞屬性的遠(yuǎn)程證明目標(biāo)。 定理3如果遠(yuǎn)程驗(yàn)證者確認(rèn)TJP提供的度量值是唯一的、正確的,那么該TJP對應(yīng)的PCR值一定是如下的確定序列seq(vTPM Builder(TJP),vTPM-VM Binding(TJP),VM Builder(TJP)),因?yàn)楦鶕?jù)定理2可知,該序列表明該虛擬機(jī)的確執(zhí)行了相應(yīng)的信任鏈傳遞過程。 形式化表示為: (Mem(m.pcr.d,seq(vTPM Builder(TJP), vTPM-VMBinding(TJP),VM Builder(TJP)))@t) (7) ΓDRTM,ProtectedSRTM(m) MeasureBootDRTM(m,t) (8) 證明過程類似m的信任鏈遠(yuǎn)程驗(yàn)證的證明,在此不再敘述。 本文基于Xen虛擬化平臺對TVP-QT信任鏈進(jìn)行實(shí)際的驗(yàn)證和分析,如圖4所示。其中,vRT被分散在Dom0、vTPMmanager域和vTPM域。本章根據(jù)第2章中對TVP-QT信任鏈的描述,將TVP-QT信任鏈分為三部分,結(jié)合Xen 4.4系統(tǒng),對這三部分信任鏈進(jìn)行實(shí)際的分析與討論。 對于第一部分,在Xen平臺硬件加電啟動之后,把CRTM作為整個信任鏈的起點(diǎn),并由CRTM首先度量物理平臺BIOS和其他有關(guān)BIOS的配置,然后BIOS獲得系統(tǒng)的控制權(quán)并度量Xen的引導(dǎo)程序Grub,主要度量grub-xen(head.S, trampoline.S, x86_32.S),Grub獲得控制權(quán)后會根據(jù)Xen的鏡像頭信息獲得入口地址Oxl0000后讀入Xen的鏡像,并對此鏡像和_startxen()進(jìn)行度量,然后把控制權(quán)交給Xen,Xen獲得信任之后對Dom0相關(guān)組件進(jìn)行度量,包括construct_dom0()、_start_32_、start_Kernel和LinuxOS鏡像等。然后把控制權(quán)交給Dom0。至此,第一部分可信引導(dǎo)結(jié)束。 圖4 基于Xen的TVP-QT系統(tǒng)Fig. 4 TVP-QT system based on Xen 對于第二部分,Dom0 Kernel獲得控制權(quán)后首先度量TJP的vTPM Builder,包括Xen中創(chuàng)建vTPMManager域的配置文件(.cfg)、vTPM Manger域(主要是MiniOS鏡像文件和vTPM Manger程序)以及啟動vTPM的vtpm-common.sh、vtpm-impl.sh等組件。然后把控制權(quán)交給vTPM Builder,vTPM Builder獲得控制權(quán),對TJP的vTPM-VM Binding進(jìn)行度量,包括Xen中xl、xenstore、vtpmd、tpm-xen、vtpm_manager_handle等針對vTPM-VM綁定的組件。隨后vTPMBuilder把控制權(quán)交給vTPM-VM Binding,vTPM-VM Binding獲得控制權(quán)后,對TJP的最后的組件VM Builder進(jìn)行度量,包括Xen的xl、libxl(Xen4.1之后xl作為默認(rèn)的管理工具)等創(chuàng)建虛擬機(jī)所需的組件以及創(chuàng)建虛擬機(jī)的配置文件(.cfg)和虛擬機(jī)的鏡像文件(.img)。完成VM Builder可信度量后,VM Builder獲得信任鏈控制權(quán)。至此,第二部分可信信任鏈傳遞結(jié)束。 對于第三部分,完成度量VM Builder后,可以采用兩種方法對vTPM進(jìn)行度量,其一是靜態(tài)度量,其二是動態(tài)度量。如果采用靜態(tài)度量,控制權(quán)在VM Builder;如果采用動態(tài)度量,則控制權(quán)在物理TPM。但無論是靜態(tài)度量還是動態(tài)度量,度量的對象都是vTPM實(shí)例域,包括vTPM實(shí)例域的配置文件(.cfg)以及啟動文件(.img)和Mini OS、tpm instance等組件。由于DRTM技術(shù)受硬件廠商所限制,利用靜態(tài)度量方式對vTPM實(shí)例域進(jìn)行可信度量。VM Builder完成對vTPM實(shí)例域的度量后,把控制權(quán)交給vTPM實(shí)例域,vTPM實(shí)例域獲得控制權(quán),對最后的DomU部分進(jìn)行可信度量,包括DomU啟動的內(nèi)核所需啟動信息頁的有關(guān)的xen.h、start_info、qemu-dm、qemu-xen、pc-bios等組件和Linux鏡像文件進(jìn)行度量。需要說明的是,Xen中虛擬機(jī)有關(guān)的BIOS、引導(dǎo)等組件是利用封裝在Xen中的Qemu實(shí)現(xiàn)的,所以需要對Xen中Qemu重要組件進(jìn)行可信度量,如qemu-io、qemu-img等。在DomU啟動相關(guān)組件完成度量之后,可信虛擬平臺最后一部分信任鏈完成可信度量和信任傳遞。 以上述實(shí)例系統(tǒng)為例完整展示了本文建立的通用抽象模型。值得注意的是,本實(shí)例系統(tǒng)的信任鏈得以正確傳遞需要滿足以下前提: 1)必須保障vRT:=TJP+vTPM自身的可信。在實(shí)例系統(tǒng)中,可信銜接點(diǎn)TJP包含的組件比較多,還涉及Dom0、vTPMManager和vTPM等域,需要度量的內(nèi)容多,不允許出現(xiàn)遺漏,特別是TJP和vTPM關(guān)鍵的組件和配置文件必須是被度量的對象。 2)必須確保TJP中的vTPM Builder、vTPM-VM Binding、VM Builder三個管理程序在啟動時按順序執(zhí)行。盡管vTPM Builder、vTPM-VM Binding和VM Builder是Dom0中的應(yīng)用程序,但必須保證按順序執(zhí)行才能度量結(jié)果。 基于Xen實(shí)現(xiàn)了TVP-QT的原型系統(tǒng),并進(jìn)行仿真實(shí)現(xiàn)和結(jié)果分析,對TVP-QT信任鏈進(jìn)行有效性驗(yàn)證和性能測試。下面對仿真實(shí)驗(yàn)的環(huán)境進(jìn)行描述。 使用TPM-Emulator對TPM功能進(jìn)行仿真模擬,實(shí)驗(yàn)的Xen VMM版本為Xen4.4.0[40-41],實(shí)驗(yàn)物理平臺的配置為Intel Core i3 @3.4 GHz處理器,內(nèi)存為8 GB,物理存儲為1 TB。Dom0采用Ubuntu LTS14.04,內(nèi)核版本為Linux3.19.0,DomU使用類型為Ubuntu LTS14.04的半虛擬化虛擬機(jī),內(nèi)存為4 GB,并且部署不同的應(yīng)用作為仿真實(shí)驗(yàn)的測試對比。 表2為TVP-QT實(shí)驗(yàn)環(huán)境所用物理平臺和DomU類型為Ubuntu的具體配置信息。 表2 物理平臺(Dom0)和用戶虛擬機(jī)(DomU-Ubuntu)配置Tab. 2 Configure infomation of Dom0 and (DomU-Ubuntu) 本文實(shí)驗(yàn)按照云計算環(huán)境實(shí)際建立了Dom0,DomU(Ubuntu LTS14.04)以及實(shí)驗(yàn)所需的vTPMManager域和vTPM實(shí)例域,它們的配置文件和啟動方式本文不再作詳細(xì)敘述。 TVP-QT信任鏈利用哈希函數(shù)對信任鏈各層次的構(gòu)建模塊、功能組件或文件進(jìn)行哈希值存儲,計算Hash值作為新的完整性度量值存儲到PCR中[29],描述如下: New PCRi=Hash(Old PCRi‖New Value) 其中:Hash函數(shù)選用SHA- 1,‖表示連接符號。在實(shí)驗(yàn)中成功運(yùn)行虛擬機(jī)UbuntuTest1,按照表3的順序?qū)CR進(jìn)行存儲。其中PCR[0]~PCR[7]存儲TVP-QT信任鏈第一層到第二層TCB的可信度量信息;PCR[8]~PCR[10]分別存儲信任鏈中可信銜接點(diǎn)三個重要的組件的度量信息;PCR[11]~PCR[15]存儲vTPM實(shí)例域和用戶虛擬機(jī)信任鏈度量信息。具體的存儲情況如表3所示。 按照TVP-QT信任鏈順序存儲的信任鏈信息結(jié)果如圖5所示。一旦程序或文件內(nèi)容發(fā)生變化,下次執(zhí)行該程序或者打開該文件時,用戶虛擬機(jī)就可以根據(jù)PCR值的信息判斷平臺狀態(tài)是否可信。 表3 仿真實(shí)驗(yàn)PCR存儲情況Tab. 3 Storage of PCR in simulation experiment 圖5 信任鏈PCR信息Fig. 5 PCR information of trust chain 與已有的TVP信任鏈模型相比,TVP-QT信任鏈模型增加了可信銜接點(diǎn)TJP,需要對其獨(dú)立度量并且?guī)眍~外的開銷。對于底層m信任鏈的構(gòu)建,TVP-QT信任鏈模型比已有的TVP信任鏈模型增加了對TJP的靜態(tài)度量;對于頂層vm信任鏈的構(gòu)建, TVP-QT信任鏈模型比已有的TVP信任鏈模型增加了對TJP的動態(tài)度量。 為此首先針對TVP-QT信任鏈構(gòu)建過程中有關(guān)主機(jī)m的信任鏈構(gòu)建進(jìn)行性能測試和結(jié)果分析,并與傳統(tǒng)的TVP架構(gòu)(圖1所示)進(jìn)行對比分析。 本節(jié)性能測試的實(shí)驗(yàn)環(huán)境采用表1所描述實(shí)驗(yàn)環(huán)境,并且在Dom0和DomU分別安裝一些常用軟件來模擬云計算開發(fā)環(huán)境和云用戶環(huán)境,比如Firefox[41]、WPS for Linux[42]、Wine[43]、Eclipse[44]等。下面本文分別針對在TVP-QT和傳統(tǒng)TVP下m、vm的信任鏈構(gòu)建實(shí)驗(yàn),對性能方面進(jìn)行對比和分析。 5.2.1 信任鏈構(gòu)建的性能分析 傳統(tǒng)TVP信任鏈中主機(jī)m的信任鏈構(gòu)建過程為: CRTM→BIOS→OSLoader→VMM→Dom0 OS Kernel →APP TVP-QT中主機(jī)m的信任鏈構(gòu)建過程為: CRTM→BIOS→OSLoader→VMM→Dom0 OS Kernel → vTPM Builder →vTPM-VM Binding→VM Builder→ other_app 對以上兩條信任鏈進(jìn)行10次實(shí)驗(yàn),并記錄每次的完成時間,結(jié)果如圖6所示。由圖6可知,雖然TVP-QT在主機(jī)m上比傳統(tǒng)TVP多了TJP的靜態(tài)度量,但是在時間上并沒有太大的多余開銷,對可信虛擬運(yùn)行的影響不大。所以,TJP的引入可以在保證可信虛擬平臺m相關(guān)組件實(shí)現(xiàn)完整度量的情況下,不會給平臺帶來太多的開銷。 圖6 m信任鏈構(gòu)建時間Fig. 6 Construction time of m trust chain 5.2.2vm信任鏈構(gòu)建的性能分析 傳統(tǒng)TVP信任鏈中vm的信任鏈構(gòu)建過程為: INIT→VBIOS→VOSLoader→VMOS→APP TVP-QT中主機(jī)vm的信任鏈構(gòu)建過程為: (TJP)TPM_Dynamic→vTPM→VBIOS→VOSLoader→ VMOS→APP 對以上兩條信任鏈進(jìn)行10次實(shí)驗(yàn),并記錄每次的完成時間,結(jié)果如圖7所示。由圖7可知,TVP-QT相比傳統(tǒng)TVP下對vm的信任鏈構(gòu)建過程,也僅僅多了由TJP帶來的額外開銷,可以保證對vm可信度量后的正常啟動。 圖7 vm信任鏈構(gòu)建時間Fig. 7 Construction time of vm trust chain 綜上對TVP-QT與TVP信任鏈構(gòu)建過程的對比實(shí)驗(yàn)來看,帶有可信銜接點(diǎn)TJP的可信虛擬平臺TVP-QT能夠保證在對整個平臺帶來足夠小開銷的情況下實(shí)現(xiàn)對平臺的可信度量,保證了虛擬化環(huán)境的安全可信。 利用可信計算技術(shù)構(gòu)建可信虛擬平臺并且構(gòu)建信任鏈模型是目前解決云計算安全一個重要的研究方向。本文為了解決已有TVP模型過粗且邏輯不完全合理,而且還存在底層虛擬化平臺和頂層用戶虛擬機(jī)兩條分離的信任鏈等問題,提出了一種具有可信銜接點(diǎn)的TVP-QT模型,對TVP-QT中的功能組件及其信任屬性進(jìn)行詳細(xì)定義,并結(jié)合可信銜接點(diǎn)在TVP-QT建立從虛擬化平臺硬件TPM開始的完整信任鏈模型TVP-QT。最后,本文基于Xen VMM實(shí)現(xiàn)了TVP-QT原型系統(tǒng),并對TVP-QT信任鏈的構(gòu)建過程進(jìn)行了詳細(xì)的描述,通過仿真實(shí)驗(yàn)對TVP-QT及其信任鏈的有效性和性能等進(jìn)行了測試,驗(yàn)證了該信任鏈的正確性和有效性。 參考文獻(xiàn): [1]林闖,蘇文博,孟坤,等.云計算安全:架構(gòu)、機(jī)制與模型評價[J].計算機(jī)學(xué)報,2013,36(9):1765-1784. (LIN C, SU W B, MENG K, et al. Cloud computing security: architecture, mechanism and modeling [J]. Chinese Journal of Computers, 2013, 36(9): 1765-1784.) [2]俞能海,郝卓,徐甲甲,等.云安全研究進(jìn)展綜述[J]. 電子學(xué)報,2013,41(2):371-381. (YU N H, HAO Z, XU J J, et al. Review of cloud computing security [J]. Acta Electronica Sinica, 2013, 41(2): 371-381.) [3]ALI M, KHAN S U, VASILAKOS A V. Security in cloud computing: opportunities and challenges [J]. Information Science, 2015, 305: 357-383.) [4]XU P, CHEN H, ZOU D, et al. Fine-grained and heterogeneous proxy re-encryption for secure cloud storage [J]. Chinese Science Bulletin, 2014, 59(32): 4201-4209. [5]XIANG S, ZHAO B, YANG A, et al. Dynamic measurement protocol in infrastructure as a service [J]. Tsinghua Science and Technology, 2014, 19(5): 470-477. [6]YU F, ZHANG H, ZHAO B, et al. A formal analysis of trusted platform module 2.0 hash-based message authentication code authorization under digital rights management scenario [J]. Security and Communication Networks, 2015, 9(15): 2802-2815. [7]譚良,徐志偉.基于可信計算平臺的信任鏈傳遞研究進(jìn)展[J].計算機(jī)科學(xué),2008,35(10):15-18. (TAN L, XU Z W. Development of the transitive trusted chain based on TPM [J]. Computer Science, 2008, 35(10): 15-18.) [8]徐明迪,張煥國,張帆,等.可信系統(tǒng)信任鏈研究綜述[J].電子學(xué)報,2014,42(10):2024-2031. (XU M D, ZHANG H G, ZHANG F, et al. Survey on chain of trust of trusted system [J]. Acta Electronica Sinica, 2014, 42(10): 2024-2031.) [9]譚良,陳菊,周明天.可信終端動態(tài)運(yùn)行環(huán)境的可信證據(jù)收集機(jī)制[J]. 電子學(xué)報,2013,41(1):77-85. (TAN L, CHEN J, ZHOU M T. Trustworthiness evidence collection mechanism of running dynamic environment of trusted terminal[J]. Acta Electronica Sinica, 2013, 41(1): 77-85.) [10]于愛民,馮登國,汪丹.基于屬性的遠(yuǎn)程證明模型[J].通信學(xué)報,2010,31(8):1-8. (YU A M, FENG D G, WANG D. Property-based remote attestation model [J]. Journal on Communications, 2010, 31(8):1-8.) [11]譚良,陳菊.一種可信終端運(yùn)行環(huán)境遠(yuǎn)程證明方案[J].軟件學(xué)報,2014,25(6):1273-1290. (TAN L, CHEN J. Remote attestation project of the running environment of the trusted terminal [J]. Journal of Software, 2014, 25(6): 1273-1290.) [13]DALTON C I, PLAQUIN D, WEIDNER W, et al. Trusted virtual platforms: a key enabler for converged client devices [J]. ACM SIGOPS Operating Systems Review, 2009, 43(1): 36-43. [15]KRAUTHEIM F J, PHATAK D S, SHERMAN A T. Introducing the trusted virtual environment module: a new mechanism for rooting trust in cloud computing [C]// TRUST’10: Proceedings of the 3rd International Conference on Trust and Trustworthy Computing, LNCS 6101. Berlin: Springer, 2010: 211-227. [16]王麗娜,高漢軍,余榮威,等.基于信任擴(kuò)展的可信虛擬執(zhí)行環(huán)境構(gòu)建方法研究[J].通信學(xué)報,2011,32(9):1-8. (WANG L N, GAO H J, YU R W, et al. Research of constructing trusted virtual execution environment based on trust extension[J]. Journal on Communications, 2011, 32(9): 1-8.) [17]GARFINKEL T, PFAFF B, CHOW J, et al. Terra: a virtual machine-based platform for trusted computing [C]// SOSP ’03: Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles. New York: ACM, 2003: 193-206. [18]PFITZMANN B, RIORDAN J, STüBLE C, et al. The PERSEUS system architecture, IBM Research Report RZ 3335 (#93381)[R]. Zurich: IBM Research, 2001. [19]常德顯,馮登國,秦宇,等.基于擴(kuò)展LS2的可信虛擬平臺信任鏈分析[J].通信學(xué)報,2013,34(5):31-41. (CHANG D X, FENG D G, QIN Y, et al. Analyzing the trust chain of trusted virtualization platform based on the extended LS2[J]. Journal on Communications, 2013, 34(5): 31-41.) [20]ZHANG L, CHEN X, LIU L, et al. Trusted domain hierarchical model based on noninterference theory [J]. The Journal of China Universities of Posts and Telecommunications, 2015, 22(4): 7-16. [21]YU Z, ZHANG W, DAI H, et al. A trusted architecture for virtual machines on cloud servers with trusted platform module and certificate authority [J]. Journal of Signal Processing Systems, 2017, 86(2/3): 327-336. [22]池亞平,李欣,王艷,等.基于KVM的可信虛擬化平臺設(shè)計與實(shí)現(xiàn)[J]. 計算機(jī)工程與設(shè)計,2016,37(6):1451-1455. (CHI Y P, LI X, WANG Y, et al. KVM-based trusted virtualization platform design and implementation[J]. Computer Engineering and Design, 2016, 37(6): 1451-1455.) [23]李海威,范博,李文鋒.一種可信虛擬平臺構(gòu)建方法的研究和改進(jìn)[J].信息網(wǎng)絡(luò)安全,2015(1):1-5. (LI H W, FAN B, LI W F. Research and improvement on constructing method of a trusted virtualization platform [J]. Netinfo Security, 2015(1): 1-5.) [24]徐天琦,劉淑芬,韓璐.基于KVM的可信虛擬化架構(gòu)模型[J]. 吉林大學(xué)學(xué)報(理學(xué)版),2014,52(3):531-534. (XU T Q, LIU S F, HAN L. KVM-based trusted virtualization architecture model [J]. Journal of Jilin University (Science Edition), 2014, 52(3): 531-534.) [25]楊麗芳,劉琳.基于虛擬機(jī)的可信計算安全平臺架構(gòu)設(shè)計[J].煤炭技術(shù),2014,33(2):170-172. (YANG L F, LIU L. Design of trusted computing security platform architecture based on virtual machine [J]. Coal Technology, 2014, 33(2): 170-172.) [26]蔡誼,左曉棟.面向虛擬化技術(shù)的可信計算平臺研究[J].信息安全與通信保密,2013(6):77-79. (CAI Y, ZUO X D. Trusted computing platform for virtualization technology [J]. Information Security and Communications Privacy, 2013(6): 77-79.) [27]SCARLATA V, ROZAS C, WISEMAN M, et al. TPM virtualization: building a general framework [M]// Trusted Computing. [S.l.]: Vieweg+Teubner, 2007, 2007: 43-56. [28]KRAUTHEIM F J, PHATAK D S, SHERMAN A T. Introducing the trusted virtual environment module: a new mechanism for rooting trust in cloud computing [C]// TRUST 2010: Proceedings of the 3rd International Conference on Trust and Trustworthy Computing, LNCS 6101. Berlin: Springer, 2010: 211-227. [29]SHEN C, ZHANG H, WANG H, et al. Research on trusted computing and its development [J]. Science China Information Sciences, 2010, 53(3): 405-433. [30]朱智強(qiáng).混合云服務(wù)安全若干理論與關(guān)鍵技術(shù)研究[D].武漢:武漢大學(xué),2011:91-117. (ZHU Z Q. The research on some theories and key technologes of hybrid cloud computing security [D]. Wuhan: Wuhan University, 2011: 91-117.) [31]曲文濤.虛擬機(jī)系統(tǒng)的可信檢測與度量[D].上海:上海交通大學(xué),2010. (QU W T. Trusted detect and measure for virtual machine system[D]. Shanghai: Shanghai Jiao Tong University, 2010.) [32]BARTHE G, BETARTE G, CAMPO J D, et al. Formally verifying isolation and availability in an idealized model of virtualization [C]// FM 2011: Proceedings of the 17th International Symposium on Formal Methods, LNCS 6664. Berlin: Springer, 2011: 231-245. [33]DATTA A, FRANKLIN J, GARG D, et al. A logic of secure systems and its application to trusted computing [C]// SP ’09: Proceedings of the 2009 30th IEEE Symposium on Security and Privacy. Washington, DC: IEEE Computer Society, 2009: 221-236. [34]CHEN G, JIN H, ZOU D, et al. SafeStack: automatically patching stack-based buffer overflow vulnerabilities [J]. IEEE Transactions on Dependable and Secure Computing, 2013, 10(6): 368-379. [35]VERMEULEN S. SELinux Cookbook [M]// Birmingham, UK: Packet Publishing, 2014: 2-9. [36]VARMA P D K, RADHA V. Prevention of buffer overflow attacks using advanced stackguard [C]// Proceedings of 2010 International Conference on Advances in Communication, Network, and Computing. Washington, DC: IEEE Computer Society, 2010: 357-359. [37]WANG Z, JIANG X. HyperSafe: a lightweight approach to provide lifetime hypervisor control-flow integrity [C]// SP ’10: Proceedings of the 2010 IEEE Symposium on Security and Privacy. Washington, DC: IEEE Computer Society, 2010: 380-395. [38]McCUNE J M, LI Y, QU N, et al. TrustVisor: efficient TCB reduction and attestation [C]// SP ’10: Proceedings of the 2010 IEEE Symposium on Security and Privacy. Washington, DC: IEEE Computer Society, 2010: 143-158. [39]TAKEMURA C, CRAWFORD L S. The Book of Xen: A Practical Guide for the System Administrator [M]. San Francisco, CA: No Starch Press, 2009: 2-15. [40]Xen Project. The Xen Project, the powerful open source industry standard for virtualization [EB/OL]. [2017- 03- 22]. http://www.xenproject.org. [41]Mozilla Firefox Ltd. The new, fast browser for Mac, PC and Linux | Firefox [EB/OL]. [2017- 04- 12]. https://www.mozilla.org/en-US/firefox/#. [42]Kingsoft Office Software. Best office run on Linux platform, WPS Office for Linux [EB/OL]. [2017- 05- 05]. https://www.wps.com/linux?from=download_page. [43]CodeWeavers Inc. WineHQ — Run Windows applications on Linux, BSD, Solaris and macOS [EB/OL]. [2017- 04- 12]. https://www.winehq.org/. [44]The Eclipse Foundation. Eclipse [EB/OL]. [2017- 04- 02]. https://www.eclipse.org/downloads/.3.3 可信銜接點(diǎn)TJP的本地驗(yàn)證及遠(yuǎn)程證明
4 實(shí)例系統(tǒng)分析與討論
5 實(shí)驗(yàn)及結(jié)果分析
5.1 TVP-QT信任鏈構(gòu)建
5.2 TVP-QT性能測試及分析
6 結(jié)語