◆田 楠 賈源泉 王樂東
面向虛擬機(jī)系統(tǒng)的可信驗(yàn)證模型研究
◆田 楠 賈源泉 王樂東
(中國人民解放軍91977 部隊(duì) 北京 100841)
虛擬機(jī)系統(tǒng)提高了計(jì)算的效率,但同時(shí)也存在很多安全問題??尚庞?jì)算技術(shù)中對計(jì)算機(jī)系統(tǒng)的可信驗(yàn)證需要物理可信根作為基礎(chǔ)。在虛擬機(jī)系統(tǒng)中,如何基于單物理可信根,實(shí)現(xiàn)對多個(gè)用戶虛擬機(jī)的可信驗(yàn)證是本文研究的重點(diǎn)。本文基于硬件虛擬化技術(shù),提出了一種面向虛擬機(jī)系統(tǒng)的可信驗(yàn)證模型,分析了在該模型下的可信驗(yàn)證流程,為解決虛擬機(jī)系統(tǒng)的安全問題提供了一種解決思路。
虛擬機(jī);可信驗(yàn)證;硬件虛擬化
虛擬機(jī)系統(tǒng)提高了計(jì)算資源的使用效率,但同時(shí)引入了新的安全問題[1]。不同用戶共享物理計(jì)算資源,存在跨虛擬機(jī)非授權(quán)訪問數(shù)據(jù)等一系列安全問題,傳統(tǒng)的安全防護(hù)手段在虛擬機(jī)環(huán)境下難以完全發(fā)揮作用。
可信計(jì)算[2]作為一種新型安全防護(hù)技術(shù),通過可信根,在系統(tǒng)中建立一套完整的可信驗(yàn)證機(jī)制,監(jiān)控系統(tǒng)的運(yùn)行狀態(tài)和用戶行為,區(qū)分可信和非可信的狀態(tài),可以從根本上解決系統(tǒng)的安全問題。
在傳統(tǒng)計(jì)算機(jī)系統(tǒng)中,可信驗(yàn)證的實(shí)現(xiàn)以可信密碼模塊(trusted cryptography module,TCM)作為可信根[3]。虛擬機(jī)環(huán)境下不同用戶系統(tǒng)共享同一套物理計(jì)算資源,由于密碼資源的分割性和獨(dú)立性,單個(gè)可信根不能為多虛擬用戶提供物理支撐。圍繞這一問題,國內(nèi)外學(xué)者開展了一系列研究[4][5],這些研究大多采用軟件虛擬的方式,通過為每一臺(tái)虛擬機(jī)分配一個(gè)虛擬的可信密碼模塊(virtual trusted cryptography module ,vTCM),實(shí)現(xiàn)TCM的全部功能,這樣做在一定程度上能夠?yàn)樘摂M機(jī)提供可信支撐,但是受限于vTCM的軟件特性,仍然存在一些問題:
(1)安全性。vTCM中的密碼資源缺乏硬件保護(hù),即使對vTCM中的密碼資源進(jìn)行加密保護(hù),但是在使用時(shí)仍會(huì)明文暴露于內(nèi)存中,存在泄密風(fēng)險(xiǎn)。
(2)效率。vTCM中的密碼算法都是以軟件形式實(shí)現(xiàn),計(jì)算效率與硬件實(shí)現(xiàn)相比要低得多,無法滿足高效計(jì)算的需求。
本文基于硬件虛擬化技術(shù)提出了一種基于虛擬TCM硬件的可信驗(yàn)證模型,為虛擬環(huán)境下應(yīng)用可信驗(yàn)證解決虛擬機(jī)安全問題提供了解決思路。
可信計(jì)算的目標(biāo)是保障計(jì)算機(jī)系統(tǒng)按照預(yù)期的狀態(tài)運(yùn)行,其技術(shù)手段是在計(jì)算機(jī)正常工作時(shí),由可信度量部件對系統(tǒng)的狀態(tài)和行為進(jìn)行度量,根據(jù)度量值來判斷系統(tǒng)是否按照預(yù)期情況運(yùn)行,從而拒絕各種非預(yù)期行為對系統(tǒng)的干擾。其防御機(jī)理類似于人體的免疫系統(tǒng),免疫系統(tǒng)能夠在不影響人體正常工作的情況下,排斥進(jìn)入人體的有害物質(zhì),從而保證人體的安全。
可信計(jì)算的基礎(chǔ)是可信根,可信根由控制芯片和密碼芯片組成,能實(shí)現(xiàn)對系統(tǒng)的可信度量,可信存儲(chǔ)等功能。可信根的可信性是系統(tǒng)可信的基礎(chǔ)。基于可信根的可信,可信度量部件首先對系統(tǒng)的BIOS進(jìn)行度量,在BIOS可信的基礎(chǔ)上,再對系統(tǒng)的boot loader進(jìn)行度量,然后是對操作系統(tǒng)內(nèi)核進(jìn)行度量,最后對上層的應(yīng)用進(jìn)行度量,一級(jí)驗(yàn)證一級(jí),一級(jí)信任一級(jí),從而最終把這種可信性擴(kuò)展到整個(gè)系統(tǒng),構(gòu)成可信的計(jì)算環(huán)境。圖1顯示了可信驗(yàn)證的過程。
可信度量的功能實(shí)現(xiàn)需要密碼的支持,可信根中存儲(chǔ)的密碼主要有背書密鑰(endorsement key,EK)、存儲(chǔ)根密鑰(storage root key,SRK)、平臺(tái)身份密鑰(platform identity key,PIK)等,其中背書密鑰具有唯一性,它代表了每個(gè)平臺(tái)的真實(shí)身份,用于生成以及授權(quán)PIK密鑰。對于虛擬機(jī)平臺(tái)的多用戶,可由背書密鑰授權(quán)生存多個(gè)PIK密鑰。
圖1 系統(tǒng)可信驗(yàn)證過程
I/O虛擬化[6]是虛擬化技術(shù)的重要組成部分,在虛擬化技術(shù)領(lǐng)域,計(jì)算虛擬化(如CPU和內(nèi)存虛擬化)已經(jīng)日趨成熟,但是, I/O虛擬化技術(shù)的發(fā)展相對比較滯后。當(dāng)前,主流的I/O虛擬化技術(shù)有三種:軟件模擬、設(shè)備直通和單根I/0虛擬化(Single Root I/O Virtualization,SR-IOV)。這三種虛擬化技術(shù)在不同程度上實(shí)現(xiàn)了I/O設(shè)備的虛擬化功能。其中,軟件模擬是通過虛擬化Hypervisor層模擬虛擬設(shè)備,實(shí)現(xiàn)與物理設(shè)備完全一樣的接口,虛擬機(jī)操作系統(tǒng)無須修改就能直接驅(qū)動(dòng)虛擬設(shè)備,其最大的缺點(diǎn)是性能相對較差;設(shè)備直通方式支持虛擬機(jī)繞過Hypervisor層,直接訪問物理I/O設(shè)備,具有最高的性能,但是,在同一時(shí)刻,同一I/O設(shè)備只能被一個(gè)虛擬機(jī)獨(dú)享;SR-IOV是Intel在2007年提出的解決虛擬化I/O硬件的技術(shù)方案,該技術(shù)不僅有設(shè)備直通方式的高性能優(yōu)勢,而且同時(shí)支持物理I/O設(shè)備的跨虛擬機(jī)共享,具有較好的應(yīng)用前景。
SR-IOV引入了兩個(gè)新的功能類型:PF(Physical Function,物理功能)和VF(Virtual Function,虛擬功能),一個(gè)PF可以擴(kuò)展出若干個(gè)VF,每個(gè)VF都具有一個(gè)PCI-E內(nèi)存空間,用于映射其寄存器集,VF設(shè)備驅(qū)動(dòng)程序可以通過PF的總線、設(shè)備和功能編號(hào)訪問各個(gè)VF的PCI-E配置空間,對寄存器集進(jìn)行操作以啟用其功能,并且顯示為實(shí)際存在的PCI-E設(shè)備。創(chuàng)建VF后,可以直接將其指定給虛擬機(jī)用戶。此功能使得虛擬機(jī)可以共享物理設(shè)備,并在沒有CPU和虛擬機(jī)管理程序軟件開銷的情況下執(zhí)行I/O。這樣不僅增強(qiáng)了各VF之間的隔離性,使虛擬機(jī)環(huán)境更加安全,其通信效更能接近真實(shí)物理設(shè)備。
TCM虛擬化的硬件結(jié)構(gòu)設(shè)計(jì)如圖2所示,其主要結(jié)構(gòu)包括多通道DMA,計(jì)算部件和存儲(chǔ)部件。
多通道DMA支持各vTCM同時(shí)進(jìn)行I/0數(shù)據(jù)的交換,發(fā)送和接收的數(shù)據(jù)被存儲(chǔ)在緩沖區(qū)中各自的獨(dú)立空間中,相互之間不會(huì)影響。計(jì)算部件包括多個(gè)算法核,為了提高計(jì)算能力,各算法核可以同時(shí)執(zhí)行不同的密碼計(jì)算任務(wù)。存儲(chǔ)部件與傳統(tǒng)的TCM相同,分為易失性存儲(chǔ)區(qū)和非易失性存儲(chǔ)區(qū)。易失性存儲(chǔ)區(qū)為每個(gè)vTCM提供一個(gè)PCR寄存器,用于存儲(chǔ)可信度量的度量值,非易失性存儲(chǔ)區(qū)中,存儲(chǔ)vTCM的密碼資源,vTCM中的vAIK和vSRK分別由存儲(chǔ)在pTCM中的EK和SRK生成。
圖2 TCM虛擬化硬件設(shè)計(jì)
圖3所示是在虛擬機(jī)環(huán)境下應(yīng)用虛擬硬件TCM進(jìn)行安全防護(hù)的架構(gòu)圖。在虛擬機(jī)系統(tǒng)的底層除了真實(shí)的pTCM之外,還有若干個(gè)虛擬vTCM,pTCM負(fù)責(zé)為宿主機(jī)/特權(quán)域提供可信驗(yàn)證服務(wù)。在宿主機(jī)/特權(quán)域中,除了虛擬機(jī)管理器之外,維護(hù)有一個(gè)vTCM管理器,它負(fù)責(zé)vTCM的創(chuàng)建、收回和管理。當(dāng)系統(tǒng)創(chuàng)建一個(gè)虛擬機(jī)時(shí),vTCM管理器會(huì)相應(yīng)創(chuàng)建一個(gè)vTCM,并完成vTCM密鑰分配、初始化、與虛擬機(jī)綁定等功能,vTCM基于硬件實(shí)現(xiàn)被獨(dú)立地分配給對應(yīng)的虛擬機(jī)使用,不需要虛擬機(jī)管理器管理。
圖3 基于虛擬硬件TCM的架構(gòu)圖
與傳統(tǒng)計(jì)算機(jī)系統(tǒng)相比,虛擬機(jī)系統(tǒng)中的可信驗(yàn)證包括兩部分:宿主機(jī)/特權(quán)域的可信驗(yàn)證和用戶虛擬機(jī)的可信驗(yàn)證。
(1)宿主機(jī)/特權(quán)域的可信驗(yàn)證
宿主機(jī)/特權(quán)域的可信驗(yàn)證過程與傳統(tǒng)計(jì)算機(jī)系統(tǒng)相同,在系統(tǒng)上電后,首先啟動(dòng)TCM對BIOS、boot loader 進(jìn)行驗(yàn)證,驗(yàn)證了硬件平臺(tái)的可信后,平臺(tái)啟動(dòng)操作系統(tǒng)內(nèi)核,對操作系統(tǒng)內(nèi)核進(jìn)行可信度量。可信的硬件和可信的操作系統(tǒng)共同構(gòu)建了可信的計(jì)算環(huán)境,為上層的應(yīng)用環(huán)境提供了可信計(jì)算基礎(chǔ)(Trusted Computing Base,TCB)。
(2)用戶虛擬機(jī)的可信驗(yàn)證
按照傳統(tǒng)可信模型,可信驗(yàn)證應(yīng)該是從硬件開始,對應(yīng)到用戶虛擬機(jī),應(yīng)該先啟動(dòng)vTCM,對虛擬BIOS和虛擬boot loader進(jìn)行驗(yàn)證。但是在虛擬機(jī)系統(tǒng)中,vTCM是分配給用戶虛擬機(jī)的PCI-E設(shè)備,在用戶虛擬機(jī)內(nèi)核啟動(dòng)前,用戶虛擬機(jī)并不具備調(diào)用PCI-E設(shè)備的能力。因此,對用戶虛擬機(jī)系統(tǒng)不能使用vTCM來完成啟動(dòng)階段的可信驗(yàn)證。
為了解決可信需求與虛擬機(jī)體系結(jié)構(gòu)的矛盾,用戶虛擬機(jī)的可信驗(yàn)證被分設(shè)計(jì)為兩個(gè)階段。啟動(dòng)階段,用戶虛擬機(jī)的虛擬BIOS和虛擬boot loade等硬件平臺(tái)可信仍然由物理TCM進(jìn)行驗(yàn)證,可信度量信息和相關(guān)日志文件保存在TCM中。用戶虛擬機(jī)內(nèi)核加載完成后,啟動(dòng)vTCM從TCM中讀取用戶虛擬機(jī)啟動(dòng)階段的可信度量信息和相關(guān)日志文件,vTCM接替TCM對虛擬操作系統(tǒng)內(nèi)核和應(yīng)用程序進(jìn)行驗(yàn)證,構(gòu)建最終的可信計(jì)算環(huán)境。其可信驗(yàn)證流程如圖4所示。
圖4 虛擬機(jī)系統(tǒng)可信驗(yàn)證流程
本文基于硬件虛擬化技術(shù),提出了基于單物理可信根的虛擬機(jī)系統(tǒng)可信驗(yàn)證模型,通過虛擬TCM硬件,將信任關(guān)系從物理環(huán)境擴(kuò)展到虛擬機(jī)系統(tǒng),能夠滿足虛擬化環(huán)境的高安全可信應(yīng)用需求。
[1]LUO S, LIN Z, CHEN X, et al. Virtualization security for cloud computing service[C]. Internatio-nal Conference on Cloud and Service Computing.
[2]Washington D.C:IEEE Computer Society,2011:174-179.
[3]沈昌祥,張煥國,王懷民,等.可信計(jì)算的研究與發(fā)展[J].中國科學(xué):信息科學(xué),2010,40(2):139-166.
[4]Luo J,Yan F,Yu F J,et al. Research on cryptology mechanism of trusted computing platform module[J]. Computer Applications,2008,28(8):1907–1915.羅捷,嚴(yán)飛,余發(fā)江等.可信計(jì)算平臺(tái)模塊密碼機(jī)制研究[J].計(jì)算機(jī)應(yīng)用,2008,28(8):1907-1915.
[5]BERGER S, CERES R, GOLDMAN K A, et al. vTPM: virtualizing the trusted platform module[C]// Conference on Usenix Security Symposium. USENIX Association, 2006:21.
[6]STEFAN B, RAMóN C, KENNETH A G, et al. vTPM: virtualizing the trusted platform module[J]. Usenix Security, 2007,15:305-320.
[7]DONG Y,YANG X,LI X,et al. High perfor-mance network virtualization with SR-IOV[C]. High Performance Computer Architecture(HPCA),2010 IEEE 16thInternational Symposium on, Wash-Ington D.C:IEEE Computer Society,2010:1-10.
[8]王麗娜,高漢軍,余榮威,等.基于信任擴(kuò)展的可信虛擬執(zhí)行環(huán)境構(gòu)建方法研究[J].通信學(xué)報(bào),2011,32(9):1-8.