程戈,李聰
湘潭大學(xué) 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,湖南 湘潭 411105
可信計(jì)算環(huán)境構(gòu)建機(jī)制研究進(jìn)展
程戈,李聰
湘潭大學(xué) 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,湖南 湘潭 411105
隨著信息技術(shù)的發(fā)展,現(xiàn)代社會(huì)越來(lái)越依賴計(jì)算機(jī)系統(tǒng)。特別是近年來(lái),在互聯(lián)網(wǎng)技術(shù)的推動(dòng)下,計(jì)算機(jī)越來(lái)越多地應(yīng)用到社會(huì)政治、經(jīng)濟(jì)、教育和軍事等領(lǐng)域中,使計(jì)算平臺(tái)的安全性變得愈發(fā)的重要。然而自從計(jì)算機(jī)問世以來(lái),計(jì)算機(jī)安全問題就一直伴隨著計(jì)算機(jī)的發(fā)展而存在,近三十年來(lái),其造成的損失也越來(lái)越嚴(yán)重。造成這種情況的一個(gè)重要原因,是傳統(tǒng)的安全防護(hù)方式和軟件的固有缺陷不足以防御日益增多的計(jì)算機(jī)安全問題。
(1)防火墻、入侵監(jiān)測(cè)和病毒防范是構(gòu)成傳統(tǒng)信息安全系統(tǒng)的主要技術(shù)手段,這些技術(shù)手段是一種事后響應(yīng)方式,即在攻擊發(fā)生后或是進(jìn)行中,通過(guò)對(duì)已發(fā)生過(guò)的滯后信息進(jìn)行分析來(lái)判定是否存在攻擊,從而進(jìn)行相應(yīng)的響應(yīng)或是防護(hù)。面對(duì)當(dāng)今日趨復(fù)雜和變化多端的惡意攻擊手段,這些事后響應(yīng)的傳統(tǒng)防護(hù)手段往往無(wú)力應(yīng)對(duì)新的攻擊方式。
(2)現(xiàn)有平臺(tái)架構(gòu)是開放式的,計(jì)算機(jī)資源可任意被使用,尤其是執(zhí)行代碼可被任意修改。因此,在現(xiàn)有軟件架構(gòu)下,惡意程序很容易植入軟件系統(tǒng)中。如果缺乏相關(guān)硬件的支持,僅僅依靠軟件本身是不能完全檢測(cè)出惡意代碼的,因?yàn)樗性噲D通過(guò)軟件檢測(cè)惡意代碼的方法都無(wú)法證明檢測(cè)軟件自身是安全的。
為克服這些問題,可信計(jì)算提供一個(gè)新的思路:從接入端增強(qiáng)系統(tǒng)的安全性,使系統(tǒng)每個(gè)接入端的計(jì)算平臺(tái)都具有一定的物理保護(hù),并在這樣的平臺(tái)上通過(guò)軟硬件結(jié)合的方式構(gòu)建可信的計(jì)算環(huán)境。可信計(jì)算環(huán)境可以確保其上進(jìn)行的計(jì)算具有某些特性,例如,保證可信計(jì)算環(huán)境中運(yùn)行程序和數(shù)據(jù)的真實(shí)性、機(jī)密性、可控性等。利用可信計(jì)算環(huán)境提供的這些特性可以彌補(bǔ)僅依靠軟件安全防護(hù)方式帶來(lái)的不足,從而更好地解決計(jì)算機(jī)安全面臨的問題和挑戰(zhàn)。
本文介紹了可信計(jì)算環(huán)境構(gòu)建的硬件基礎(chǔ),分析和歸納了近年來(lái)可信計(jì)算環(huán)境的主要的構(gòu)建方式,指出了現(xiàn)有可信計(jì)算環(huán)境構(gòu)建機(jī)制的不足,并對(duì)今后的研究方向進(jìn)行了討論。
可信計(jì)算環(huán)境構(gòu)建是通過(guò)軟硬件結(jié)合的方式構(gòu)建滿足可信計(jì)算定義的系統(tǒng),其目的是提升系統(tǒng)的安全性,其關(guān)注內(nèi)容是服務(wù)器、網(wǎng)絡(luò)和終端的行為及其相互間的影響??尚庞?jì)算平臺(tái)是可信計(jì)算環(huán)境構(gòu)建的硬件基礎(chǔ)。構(gòu)建可信計(jì)算環(huán)境需要可信計(jì)算平臺(tái)及軟件相互協(xié)作。可信計(jì)算平臺(tái)是具有一定物理防護(hù)的計(jì)算平臺(tái),該平臺(tái)可以提供一定級(jí)別硬件安全來(lái)確保運(yùn)行于該平臺(tái)物理保護(hù)邊界內(nèi)的代碼及數(shù)據(jù)具有某些特性,例如機(jī)密性、完整性、真實(shí)性等。
2.1 早期的可信平臺(tái)
IBM4758安全協(xié)處理器[1]是早期的可信硬件,它是一個(gè)與主處理器相獨(dú)立的處理器單元,用于負(fù)責(zé)和安全相關(guān)的計(jì)算。IBM4758設(shè)計(jì)目的是即使在存在本地?cái)呈值那闆r下也能滿足某些計(jì)算與存儲(chǔ)性能。這些本地?cái)呈挚梢允怯?jì)算系統(tǒng)的操作者或是主處理器上正在運(yùn)行的進(jìn)程。安全協(xié)處理器可以提供一個(gè)隔離的運(yùn)行環(huán)境確保該環(huán)境中計(jì)算的完整性和機(jī)密性,并能對(duì)外證明在這個(gè)環(huán)境中進(jìn)行運(yùn)算的真實(shí)性。
XOM[2]是斯坦福大學(xué)提出的一種基于只執(zhí)行內(nèi)存的安全增強(qiáng)型處理器結(jié)構(gòu),應(yīng)用程序可以只信任處理器而不必信任操作系統(tǒng)。XOM體系可加密進(jìn)程執(zhí)行空間,只有處理器處于可信模式下才能用密匙解密程序。AEGIS[3]是是麻省理工學(xué)院提出的一種安全增強(qiáng)性處理器結(jié)構(gòu)。類似IBM4758,該結(jié)構(gòu)以處理器為信任根并假定處理器擁有一個(gè)秘密的密匙,AEGIS架構(gòu)的處理器新增一種類似XOM的“安全執(zhí)行模式”,并增加了新的指令用于進(jìn)入/退出“全執(zhí)行模式”和使用受保護(hù)的秘密密匙。AEGIS可用于認(rèn)證執(zhí)行和數(shù)字版權(quán)保護(hù)。Ceriums[4]是麻省理工學(xué)院提出的另一種可信處理器。Cerium結(jié)合上述增強(qiáng)型處理器的優(yōu)點(diǎn),它可以像XOM及AEGIS一樣,通過(guò)加密被保護(hù)進(jìn)程的地址空間來(lái)實(shí)現(xiàn)類似IBM4758中的認(rèn)證執(zhí)行。然而不同的是,Gerium采用軟件的方式來(lái)實(shí)現(xiàn)加密保護(hù)進(jìn)程,Gerium將一個(gè)可信微內(nèi)核放入處理器內(nèi)部,對(duì)被保護(hù)進(jìn)程地址空間的所有操作都會(huì)觸發(fā)這段微內(nèi)核代碼,由它來(lái)處理加密地址空間。
2.2 主流的商用可信平臺(tái)
基于TCG[5]規(guī)范的TPM是商品化可信計(jì)算平臺(tái)中的核心組件。TPM提供一組平臺(tái)配置寄存器(Platform Configuration Registers,PCR)進(jìn)行平臺(tái)的配置證明。擁有TPM的可信計(jì)算平臺(tái)可以通過(guò)PCR來(lái)記錄從系統(tǒng)加電啟動(dòng)后進(jìn)行的操作順序和參與的軟件。在“遞歸信任”過(guò)程中,前一階段的代碼在將控制權(quán)傳遞給下一階段前,先對(duì)其進(jìn)行度量,并把度量值保存到PCR中。這種遞歸信任必須有一個(gè)被稱為可信度量根實(shí)體作為度量的起點(diǎn),這個(gè)實(shí)體本身被假設(shè)為可信的,無(wú)法再被其他實(shí)體所度量。TPM提供可信報(bào)告根(Root of Trust for Reporting,RTR),RTR用簽名密鑰簽名來(lái)證實(shí)PCR中數(shù)據(jù)的真實(shí)性。TPM還提供可信的存儲(chǔ)根(Root of Trust of Storage,RTS),用于保護(hù)所有委托給TPM的密鑰和數(shù)據(jù)。
商用CPU中,Intel和AMD分別推出了自己的增強(qiáng)型安全處理器技術(shù):Intel的TXT[6]和AMD的SVM[7]。不同于前面介紹的其他的增強(qiáng)型安全處理器,TXT和SVM不提供加密進(jìn)程空間的功能,僅在處理器中增加了新的指令作為動(dòng)態(tài)可信度量根(Dynamic Root of Trust Measurement,DRTM),這條指令可以實(shí)現(xiàn)進(jìn)程的保護(hù)執(zhí)行,但是TXT或是SVM需要和TPM(1.2版本)相結(jié)合,才能夠提供封裝存儲(chǔ)和對(duì)外認(rèn)證的功能。
早期的可信硬件平臺(tái)依賴于可信硬件在其物理保護(hù)邊界內(nèi)的可信計(jì)算環(huán)境。物理保護(hù)代價(jià)是比較昂貴的,這也注定了單純依賴硬件保護(hù)的早期可信計(jì)算平臺(tái)其計(jì)算能力是有限的,不能滿足大部分的應(yīng)用需求,只能應(yīng)用于一些特定的場(chǎng)景(例如用于保存?zhèn)€人密鑰的個(gè)人令牌)。而現(xiàn)有的商用可信平臺(tái)是作為可信計(jì)算平臺(tái)附屬設(shè)備,可信硬件為構(gòu)建可信計(jì)算環(huán)境提供了硬件基礎(chǔ),然而只有通過(guò)軟件的協(xié)助才能構(gòu)建滿足多種應(yīng)用需求的可信計(jì)算環(huán)境。
本文將單獨(dú)依賴硬件保護(hù)的計(jì)算平臺(tái)和把可信硬件作為附屬設(shè)備的計(jì)算平臺(tái)統(tǒng)一稱為可信計(jì)算平臺(tái)。
構(gòu)建基于靜態(tài)可信度量根的可信計(jì)算環(huán)境,主要是構(gòu)建靜態(tài)信任鏈,通常由固化在主板BIOS中一段稱為可信度量根(Root of Trust for Measurement,RTM)的代碼開始,隨著平臺(tái)的啟動(dòng),通過(guò)一種“遞歸信任”的過(guò)程將信任由RTM擴(kuò)展到整個(gè)平臺(tái)。
3.1 構(gòu)建機(jī)制
安全硬件加強(qiáng)的MyProxy(SHEMP)[8]是Dartmouth大學(xué)2004年的一個(gè)項(xiàng)目,主要研究使用IBM4758協(xié)處理器來(lái)管理終端,通過(guò)控制安全邊界來(lái)加強(qiáng)安全性,可用于MyProxy服務(wù)器。
TrustedGRUB[9]是Sourceforge支持的開源項(xiàng)目,它擴(kuò)展了原始的GRUB引導(dǎo)程序來(lái)支持TPM提供的遞歸信任。在TrustedGRUB的引導(dǎo)過(guò)程中,TrustedGRUB擴(kuò)展了引導(dǎo)加載程序GRUB(Grand Unified Boot Loader)的Stage1,可以度量GRUB Stage2的第1個(gè)扇區(qū),包括Stage2的輸入?yún)?shù)(內(nèi)核、啟動(dòng)模塊和相關(guān)配置信息)。TrustedGRUB將信任鏈擴(kuò)展到操作系統(tǒng)層。
BEAR[10-11]是Dartmouth大學(xué)PKI實(shí)驗(yàn)室的研究項(xiàng)目,主要研究在具有TCG/TPM的商用可信平臺(tái)上使用Linux構(gòu)建可信桌面計(jì)算環(huán)境,該可信計(jì)算環(huán)境需要修改Linux操作系統(tǒng),但保持對(duì)操作系統(tǒng)上的應(yīng)用透明,即傳統(tǒng)軟件和應(yīng)用程序可以不加修改地在這個(gè)平臺(tái)上運(yùn)行。BEAR將信任鏈擴(kuò)展到文件層,操作系統(tǒng)下任意一個(gè)目錄第一次被打開時(shí),BEAR都會(huì)檢查該目錄下文件的完整性。同時(shí)BEAR可以提供遠(yuǎn)程認(rèn)證和安全存儲(chǔ)功能。
IMA[12]是IBM提出的一種可信計(jì)算環(huán)境構(gòu)建架構(gòu),類似BEAR項(xiàng)目,IMA同樣是在擁有TCG/TPM的商用可信計(jì)算平臺(tái)上使用Linux構(gòu)建可信計(jì)算環(huán)境,并提供遠(yuǎn)程認(rèn)證和安全存儲(chǔ)的功能。不同的是,IMA采用在一些系統(tǒng)調(diào)用中加鉤子的方式,當(dāng)可加載內(nèi)核模塊和程序載入內(nèi)存時(shí),對(duì)其進(jìn)行完整性校檢,以使信任鏈可以擴(kuò)展到應(yīng)用程序?qū)印?/p>
在20世紀(jì)70年代,IBM公司開發(fā)了安全內(nèi)核的虛擬機(jī)監(jiān)控模塊KVM/370[13];在20世紀(jì)80年代,在VAX機(jī)上也開發(fā)了基于VMM的安全內(nèi)核[14];在2000年4月,IBM又推出Z系列大型安全服務(wù)器系統(tǒng)[15]。這些基于虛擬機(jī)的可信計(jì)算環(huán)境在大型機(jī)上的長(zhǎng)期使用,證明了基于虛擬機(jī)架構(gòu)構(gòu)建可信計(jì)算環(huán)境對(duì)增強(qiáng)系統(tǒng)安全的有效性。
斯坦福大學(xué)在2003年研發(fā)的Terra系統(tǒng)[16],是一個(gè)基于虛擬機(jī)架構(gòu)的可信計(jì)算平臺(tái)。Terra通過(guò)可信的虛擬機(jī)監(jiān)視器(TVMM),在具有防篡改功能(temper-resistant)的可信硬件平臺(tái)上(例如IBM4758協(xié)處理器)實(shí)現(xiàn)多個(gè)相互獨(dú)立的虛擬機(jī)(VM)。這些虛擬機(jī)可以是具有通用性而對(duì)安全性沒有特殊要求的Open Box,也可以是有特殊用途的、高安全性的Close Box。可信虛擬機(jī)的引入也為原有的專屬平臺(tái)上的應(yīng)用,例如ATM,提供了向普通商用平臺(tái)移植的可能。IBM實(shí)現(xiàn)的VTPM[17]為單一硬件平臺(tái)的多個(gè)虛擬機(jī)提供可信計(jì)算支持。通過(guò)虛擬化可信平臺(tái)模塊(TPM),TPM的安全存儲(chǔ)和加解密功能能夠應(yīng)用于虛擬機(jī)上的操作系統(tǒng)和應(yīng)用程序。原有的基于TPM的可信計(jì)算環(huán)境,在引入虛擬層后,可以將TPM的信任鏈向上擴(kuò)展建立可信虛擬機(jī),建立可信虛擬機(jī)的方式采用傳統(tǒng)方式,如IBM IMA架構(gòu)。
3.2 主要問題
可信硬件作為構(gòu)建可信計(jì)算環(huán)境的硬件基礎(chǔ),通過(guò)逐級(jí)度量的方式擴(kuò)展信任環(huán)境,解決了早期單純依賴硬件的物理保護(hù)造成的成本過(guò)高問題,使可信計(jì)算進(jìn)入商業(yè)應(yīng)用成為可能。然而,逐級(jí)度量也存在諸多問題。
IBM的安全協(xié)處理器和TCG的可信度量從系統(tǒng)加電開始,首先將控制權(quán)交給BIOS中固化的一段代碼(信任根),信任根通過(guò)計(jì)算哈希值的方式度量BIOS中其他部分,并把度量值存儲(chǔ)到TPM的PCR中,然后將控制權(quán)移交給被度量的代碼,這個(gè)過(guò)程一直進(jìn)行下去直到操作系統(tǒng)啟動(dòng)完畢。MyProxy(SHEMP)和TrustedGRUB[9]都通過(guò)這種方式構(gòu)建可信計(jì)算環(huán)境。然而,IBM的安全協(xié)處理器和TCG的可信啟動(dòng)只定義了度量加載的固定啟動(dòng)序列,而沒有定義如何將信任鏈擴(kuò)展到應(yīng)用程序?qū)?。?shí)際上當(dāng)操作系統(tǒng)啟動(dòng)后,還有大量可執(zhí)行的代碼被加載(內(nèi)核模塊、二進(jìn)制的共享庫(kù)、腳本、插件、進(jìn)程等),這些被加載的代碼依據(jù)實(shí)際的需求而沒有固定的序列。
Dartmouth大學(xué)PKI實(shí)驗(yàn)室的研究項(xiàng)目BEAR[10-11]和IBM研究中心Sailer等人的IMA系統(tǒng)[12]通過(guò)修改操作系統(tǒng)內(nèi)核的方式(對(duì)某些系統(tǒng)調(diào)用加鉤子)來(lái)度量操作系統(tǒng)啟動(dòng)后載入的可執(zhí)行代碼,如圖1所示。但是,在操作系統(tǒng)中增加鉤子函數(shù)的方式同樣存在諸多問題。首先,修改操作系統(tǒng)的內(nèi)核意味著這些方法對(duì)操作系統(tǒng)是不透明的,這使現(xiàn)有的操作系統(tǒng)無(wú)法支持應(yīng)用程序級(jí)的完整性度量和認(rèn)證;其次,該方式以操作系統(tǒng)為信任基(TCB),操作系統(tǒng)代碼龐大,系統(tǒng)漏洞數(shù)量多且很難發(fā)現(xiàn)。
圖1 IMA的完整性度量方式
基于虛擬機(jī)架構(gòu)的可信計(jì)算以虛擬機(jī)監(jiān)控器作為信任鏈中的一環(huán),采用TCG信任鏈的擴(kuò)展方式從可信根構(gòu)建到應(yīng)用層的信任鏈。這種方式使原本已經(jīng)過(guò)長(zhǎng)的靜態(tài)信任鏈問題變得更加嚴(yán)重。還有一些研究采用粗粒度的信任鏈構(gòu)建方式。例如,Terra以虛擬機(jī)鏡像為單位進(jìn)行度量。一方面,這種方式會(huì)產(chǎn)生較大的度量值,以4 GB的鏡像為例,Terra大約要產(chǎn)生一個(gè)20 MB的度量值;另一方面,這種度量值不能用于解釋度量?jī)?nèi)容,很難應(yīng)用于遠(yuǎn)程認(rèn)證的場(chǎng)景。
靜態(tài)可信度量根自身的缺陷是造成上述問題的主要原因。因?yàn)樵诨陟o態(tài)可信度量根的可信計(jì)算環(huán)境中,上層應(yīng)用是否可信不僅取決于其自身的完整性,還包括其下層軟件棧中每一個(gè)實(shí)體的完整性。同時(shí),可信計(jì)算環(huán)境提供的隔離性可能比較弱,除非是在具有強(qiáng)制訪問控制的系統(tǒng)中,否則,所有的進(jìn)程都可能相互影響。因此,所有的軟件實(shí)體,不管它是固化到BIOS中的代碼還是由操作系統(tǒng)加載、動(dòng)態(tài)加載器或是程序代碼加載的都需要被度量。這就不可避免地造成信任鏈過(guò)長(zhǎng)的問題。
基于靜態(tài)可信度量根的可信計(jì)算系統(tǒng)存在著運(yùn)行時(shí)刻和驗(yàn)證時(shí)刻不一致的問題。例如,在遠(yuǎn)程證明中,通過(guò)向質(zhì)詢的一方報(bào)告平臺(tái)上已經(jīng)運(yùn)行程序的散列值(PCRs),以提供平臺(tái)可信的證據(jù),可是這些證據(jù)僅僅代表了程序在完整性度量時(shí)刻的狀態(tài),并不能表明度量后程序在執(zhí)行時(shí)的狀態(tài),靜態(tài)的散列值并不能充分表明程序當(dāng)前的動(dòng)態(tài)行為也可信。攻擊者完全可能恰好在遠(yuǎn)程證明結(jié)束后,在平臺(tái)中植入惡意程序。此外,由于現(xiàn)有軟件的復(fù)雜性,出現(xiàn)漏洞的幾率很高,經(jīng)過(guò)度量后的程序在運(yùn)行時(shí)很可能產(chǎn)生非預(yù)期的結(jié)果。例如,遭受病毒發(fā)起的緩沖區(qū)溢出攻擊,程序行為發(fā)生改變,平臺(tái)進(jìn)入非預(yù)期的狀態(tài)。
動(dòng)態(tài)可信度量根(Dynamic Root of Trust for Measurement,DRTM)不依賴于系統(tǒng)加電重啟的過(guò)程,而是允許系統(tǒng)從任何一個(gè)不被信任的狀態(tài)作為測(cè)量的起點(diǎn)來(lái)建立信任鏈?;趧?dòng)態(tài)可信根的可信計(jì)算環(huán)境構(gòu)建是近年來(lái)的研究重點(diǎn)。
4.1 構(gòu)建機(jī)制
OSLO[18](Open Secure Loader)是基于AMD64位處理器的動(dòng)態(tài)可信度量根的開源引導(dǎo)加載器,它通過(guò)AMD動(dòng)態(tài)可信度量根技術(shù)中新增加的SKINIT指令來(lái)替代基于BIOS的靜態(tài)可信度量根。OSLO啟動(dòng)加載器作為操作系統(tǒng)內(nèi)核的一部分,它初始化TPM,通過(guò)TPM設(shè)備驅(qū)動(dòng)來(lái)實(shí)現(xiàn)與TPM通信,調(diào)用SKINIT指令,度量所有被加載的文件,并將度量值擴(kuò)展到TPM的動(dòng)態(tài)PCR中。TBoot[19](Trusted Boot)類似于OSLO,但是TBoot使用的是Intel TXT(Trusted eXecution Technology)技術(shù)提供的動(dòng)態(tài)可信度量根來(lái)度量操作系統(tǒng)內(nèi)核/虛擬機(jī)監(jiān)控器(Virtual Machine Monitor,VMM)。TBoot可以實(shí)現(xiàn)可信啟動(dòng),撤銷度量環(huán)境,重置數(shù)據(jù)保護(hù),保護(hù)TXT內(nèi)存范圍等功能。
Flicker[20]利用AMD SVM中新增的動(dòng)態(tài)可信度量根擴(kuò)展指令暫停操作系統(tǒng)和其上運(yùn)行的其他程序,為敏感代碼創(chuàng)建一個(gè)完全隔離于操作系統(tǒng)的運(yùn)行環(huán)境,并可以實(shí)現(xiàn)遠(yuǎn)程證明和安全存儲(chǔ)。Flicker直接以動(dòng)態(tài)可信度量根作為可信計(jì)算基,力圖實(shí)現(xiàn)可信計(jì)算基的最小化。Flicker給出了創(chuàng)建可信執(zhí)行環(huán)境——執(zhí)行可信計(jì)算基——保存運(yùn)行結(jié)果——撤銷可信執(zhí)行環(huán)境的具體實(shí)現(xiàn)。
Intel TXT安全架構(gòu)是Intel在其增強(qiáng)型安全處理器上提出的一種可信計(jì)算環(huán)境構(gòu)建架構(gòu)。TXT架構(gòu)為被保護(hù)軟件提供安全的執(zhí)行環(huán)境,防止其他軟件訪問到被保護(hù)軟件的資源。Intel TXT并不像其他的增強(qiáng)型安全處理器一樣具有安全模式,并當(dāng)處理器離開安全模式時(shí),由處理器來(lái)加密被保護(hù)軟件的資源,將其同其他的軟件實(shí)體隔離開。Intex TXT并不像其他的增強(qiáng)型安全處理器一樣具有安全模式(當(dāng)處理器離開安全模式時(shí),由處理器來(lái)加密被保護(hù)軟件的資源,將其同其他的軟件實(shí)體隔離開),而是通過(guò)動(dòng)態(tài)可信度量根技術(shù)暫停操作系統(tǒng)和其上正在運(yùn)行的其他軟件來(lái)實(shí)現(xiàn)安全執(zhí)行環(huán)境。如果要在Intel TXT的可信平臺(tái)上同時(shí)運(yùn)行不安全的代碼與安全的代碼,必須依賴軟件的方法。虛擬化技術(shù)提供的隔離性正好可以滿足這個(gè)需求,在支持TXT處理器中幾乎都同時(shí)支持Intel的硬件輔助虛擬化技術(shù)。在TXT安全架構(gòu)中除了要求平臺(tái)的處理器支持TXT技術(shù)外,還要求平臺(tái)擁有特定的芯片組,及可信的I/O外設(shè)(鍵盤、鼠標(biāo)和顯卡)和TPM1.2。TXT安全架構(gòu)的設(shè)計(jì)目標(biāo)提供以下的安全特性:
(1)安全運(yùn)行環(huán)境。為程序提供隔離的安全運(yùn)行環(huán)境,防止其他未被授權(quán)的平臺(tái)軟件實(shí)體獲取或是損害在這個(gè)保護(hù)運(yùn)行環(huán)境中的程序。
(2)封印存儲(chǔ)。為密鑰、數(shù)據(jù)和其他敏感內(nèi)容提供基于平臺(tái)可信硬件(依賴于TPM)的封印存儲(chǔ):將這些數(shù)據(jù)同他們被存儲(chǔ)時(shí)的系統(tǒng)環(huán)境綁定在一起,只有在同樣的運(yùn)行環(huán)境中才能被解密。
(3)可信輸入和顯示。提供輸入設(shè)備,例如,鍵盤/鼠標(biāo)到安全運(yùn)行環(huán)境中應(yīng)用程序以及安全運(yùn)行環(huán)境中應(yīng)用程序到顯卡緩沖區(qū)間的安全路徑,防止平臺(tái)上運(yùn)行的其他沒有被授權(quán)的軟件實(shí)體竊取或是篡改輸入和顯示的信息(需要特定的可信鍵盤、鼠標(biāo)和顯卡)。
(4)對(duì)外認(rèn)證。提供安全執(zhí)行環(huán)境和運(yùn)行于其中程序的完整性證明。
圖2顯示了Intel TXT安全架構(gòu)。不同安全需求的操作環(huán)境被虛擬機(jī)監(jiān)控器隔離到不同的虛擬域,這個(gè)架構(gòu)同Terra類似。但不同的是,依據(jù)TXT的設(shè)計(jì),這個(gè)虛擬機(jī)監(jiān)控器可以依據(jù)保護(hù)需要?jiǎng)討B(tài)加載而不需要重啟系統(tǒng),并通過(guò)TPM1.2可以提供從TXT動(dòng)態(tài)可信度量根到虛擬機(jī)監(jiān)控器的信任鏈證明。TXT安全架構(gòu)建議的隔離環(huán)境分為以下幾種:
標(biāo)準(zhǔn)隔離域。該域提供一個(gè)標(biāo)準(zhǔn)的IA-32平臺(tái),在這個(gè)域中用戶可以運(yùn)行任何能在物理IA-32 PC平臺(tái)上運(yùn)行的操作系統(tǒng)和軟件。在TXT架構(gòu)設(shè)計(jì)中,虛擬機(jī)監(jiān)控器可以依據(jù)保護(hù)需要在運(yùn)行的操作系統(tǒng)中啟動(dòng),并將原有的操作系統(tǒng)和其上的應(yīng)用軟件遷移到標(biāo)準(zhǔn)的隔離域中。
保護(hù)域。該域同標(biāo)準(zhǔn)隔離域共同運(yùn)行于虛擬機(jī)監(jiān)控器之上,運(yùn)行于該域的軟件實(shí)體同標(biāo)準(zhǔn)域中的軟件實(shí)體都是完全隔離的,不會(huì)被標(biāo)準(zhǔn)域的軟件實(shí)體侵害。當(dāng)保護(hù)域停止運(yùn)行時(shí),安全域中的敏感數(shù)據(jù)將被保護(hù)到TPM中。
圖2 Intel TXT安全架構(gòu)圖
微軟的下一代安全計(jì)算基礎(chǔ)(Next-Generation Secure Computing Base,NGSCB)[21]是TXT安全架構(gòu)的一個(gè)特例化實(shí)現(xiàn)。虛擬機(jī)監(jiān)控器將硬件資源分割成兩個(gè)部分:左側(cè)運(yùn)行原生的遺留操作系統(tǒng);右側(cè)是一個(gè)微型的安全內(nèi)核稱為節(jié)點(diǎn)(nexus),其上運(yùn)行的應(yīng)用程序稱為代理(agent),代理運(yùn)行于一個(gè)隔離的地址空間并使用認(rèn)證過(guò)的操作原語(yǔ)。虛擬機(jī)監(jiān)控器和微安全內(nèi)核一起為代理提供與TXT安全架構(gòu)一致的安全特性:安全運(yùn)行環(huán)境、封印存儲(chǔ)、可信輸入和顯示及對(duì)外認(rèn)證。
4.2 優(yōu)勢(shì)和問題
動(dòng)態(tài)可信度量允許系統(tǒng)從任何一個(gè)不被信任的狀態(tài)作為測(cè)量的起點(diǎn)來(lái)建立信任鏈,因此可以建立比靜態(tài)度量更短的信任鏈。OSLO和TBoot使用動(dòng)態(tài)可信度量根可以將BIOS和GRUB排除在信任鏈之外,然而它們延續(xù)的依然是傳統(tǒng)的信任鏈構(gòu)建方式,操作系統(tǒng)還必須包括進(jìn)信任鏈中。這使其不可避免地具有和基于靜態(tài)信任度量根的信任鏈相同的缺點(diǎn)。
Flicker直接以動(dòng)態(tài)可信度量根作為信任基,其擁有最短的信任鏈。然而這是以暫停操作系統(tǒng)和其上正在運(yùn)行的其他軟件來(lái)實(shí)現(xiàn)的。因此,F(xiàn)licker架構(gòu)提供給用戶的是一個(gè)近似裸機(jī)的編程環(huán)境,其架構(gòu)下代碼無(wú)法調(diào)用操作系統(tǒng)的系統(tǒng)調(diào)用,無(wú)法調(diào)用庫(kù)函數(shù),甚至無(wú)法調(diào)用程序本身不屬于本次會(huì)話的代碼,這也極大地限制了Flicker的應(yīng)用范圍。
如果要在動(dòng)態(tài)可信度量根加載后,同時(shí)在平臺(tái)上運(yùn)行不安全的代碼與安全的代碼,必須保證可信代碼同不可信代碼之間的隔離性,這需要依賴軟件的方法。虛擬化技術(shù)提供的隔離性正好可以滿足這個(gè)需求,在支持動(dòng)態(tài)可信度量根的處理器中幾乎都同時(shí)支持硬件輔助虛擬化技術(shù)。Intel的TXT架構(gòu)和微軟的NGSCB架構(gòu)結(jié)合動(dòng)態(tài)可信根和虛擬化技術(shù),基本上克服基于靜態(tài)可信根構(gòu)建可信計(jì)算環(huán)境的缺點(diǎn)。
然而,Intel TXT和微軟的NGSCB的可信計(jì)算環(huán)境依然是建立在隔離域的基礎(chǔ)上的,這不可避免地使虛擬機(jī)監(jiān)控器因?yàn)橘Y源管理和提供有效的虛擬域隔離而變得龐大(以Xen為例,不包括管理域,其Hypervisor的代碼大約是50 000行)。同時(shí),Intel TXT和微軟NGSCB架構(gòu)的可信基復(fù)雜度類似于操作系統(tǒng)。雖然可以利用動(dòng)態(tài)可信度量根和硬件輔助虛擬化技術(shù)將宿主操作系統(tǒng)排除在信任基外,而其隔離域內(nèi)的信任鏈構(gòu)建卻依然類似傳統(tǒng)的靜態(tài)信任鏈的構(gòu)建,無(wú)法解決維護(hù)數(shù)量巨大的散列值的問題。因此,上述研究隨著微軟放棄了NGSCB計(jì)劃而停留在構(gòu)想階段,缺乏可實(shí)施的設(shè)計(jì)。
依賴于可信硬件構(gòu)建可信計(jì)算環(huán)境,無(wú)論采用靜態(tài)可信度量根或是動(dòng)態(tài)可信度量根都存在著信任鏈構(gòu)建的性能損失問題,同時(shí)通用目的的虛擬機(jī)監(jiān)控軟件是為服務(wù)器端的資源聚合和管理而設(shè)計(jì)的,虛擬化帶來(lái)較大的性能開銷。近期的一些研究,嘗試采用經(jīng)過(guò)裁剪的輕量級(jí)虛擬機(jī)監(jiān)控器作為可信根來(lái)構(gòu)建可信計(jì)算環(huán)境。
SecVisor[22]使用輕量虛擬機(jī)監(jiān)控器防止在內(nèi)核模式下執(zhí)行未經(jīng)授權(quán)的代碼訪問內(nèi)核頁(yè)表,來(lái)維護(hù)內(nèi)核代碼的完整性。SecVisor還使用IOMMU來(lái)防止通過(guò)DMA寫操作訪問內(nèi)核。BitVisor[23]通過(guò)輕量虛擬機(jī)管理器攔截訪問I/O指令的一個(gè)子集,并通過(guò)解析和控制I/O指令來(lái)提升I/O操作的安全性。TrustVisor[24]通過(guò)輕量虛擬機(jī)監(jiān)控器提供為進(jìn)程特定的代碼和數(shù)據(jù)提供完整性保護(hù)。Tsunghan Lin[25]在多核嵌入式平臺(tái)上使用輕量虛擬機(jī),提供更好的系統(tǒng)可靠性和安全性。NOVA[26]提出一種虛擬機(jī)監(jiān)控器的裁剪方案,可以提供更小的可信基,也能提供傳統(tǒng)虛擬機(jī)監(jiān)控器支持的多個(gè)隔離虛擬域,可為多個(gè)原生的操作系統(tǒng)提供隔離的運(yùn)行環(huán)境。HyperSafe[27]通過(guò)內(nèi)存鎖和限制控制流,提出了一種能夠保護(hù)自身完整性的輕量虛擬化方案。Cloud-Visor[28]采用嵌套的虛擬化技術(shù),使用輕量虛擬機(jī)監(jiān)控器,在云計(jì)算場(chǎng)景下,確保上層用戶的虛擬機(jī)即使在云提供商的虛擬機(jī)監(jiān)控器不可信的情況下,依然能夠保護(hù)它們的數(shù)據(jù)隱私和完整性。
這些基于輕量虛擬化的安全機(jī)制探討了采用輕量虛擬化架構(gòu)為高安全需求的應(yīng)用提供更好的隔離性,提升I/O操作安全性以及如何確保上層應(yīng)用的完整性的問題,并部分解決了虛擬機(jī)管理器代碼龐大及自身的完整性問題,以及依賴硬件構(gòu)建信任鏈的性能問題。然而,它卻忽略了可信計(jì)算環(huán)境的構(gòu)建必須解決可信基的自適應(yīng)性、兼容性以及信任架構(gòu)和可信服務(wù)等方面的問題。
從以上相關(guān)工作來(lái)看,操作系統(tǒng)的固有缺陷和虛擬化架構(gòu)的優(yōu)勢(shì)使現(xiàn)有的研究主要關(guān)注于基于虛擬機(jī)架構(gòu)構(gòu)建可信計(jì)算環(huán)境。裁剪虛擬機(jī)監(jiān)控器提供更小的可信基,是基于虛擬化技術(shù)構(gòu)建可信計(jì)算環(huán)境的研究趨勢(shì)[22-28]。結(jié)合動(dòng)態(tài)可信度量根和輕量虛擬化技術(shù)構(gòu)建的可信計(jì)算環(huán)境能夠解決傳統(tǒng)信任鏈過(guò)長(zhǎng),運(yùn)行時(shí)刻和驗(yàn)證時(shí)刻不一致等問題。同時(shí),虛擬機(jī)化架構(gòu)提供的隔離性使這些實(shí)體在操作系統(tǒng)恢復(fù)后運(yùn)行于一個(gè)獨(dú)立的環(huán)境中,而不依賴于操作系統(tǒng)和其他平臺(tái)實(shí)體[6-7,13-16,20-21]。
可信基、信任鏈和可信執(zhí)行環(huán)境的實(shí)現(xiàn)機(jī)制是解決可信計(jì)算環(huán)境構(gòu)建的三個(gè)關(guān)鍵要素,這三者又是相互關(guān)聯(lián)和制約的。但現(xiàn)有的解決方案還存在如下問題:
(1)如何依據(jù)定制的安全策略和軟件狀態(tài)變化動(dòng)態(tài)加載和卸載輕量虛擬化可信基,如何實(shí)現(xiàn)可信基的動(dòng)態(tài)可擴(kuò)展性以及可信基及其組件的通信機(jī)制?
(2)由于操作系統(tǒng)自身的諸多缺陷以及輕量虛擬化可信基的動(dòng)態(tài)性,如何確??尚呕陨淼目尚判?動(dòng)態(tài)可信度量如何處理輕量虛擬化可信基的自適應(yīng)問題和可信基及軟件組件間的信任傳遞?
(3)如何基于輕量虛擬化可信基對(duì)應(yīng)用軟件的敏感操作及信息進(jìn)行標(biāo)記,并進(jìn)行有效跟蹤?由于應(yīng)用需求的多樣性,標(biāo)記策略需要解決這種針對(duì)多樣性帶來(lái)的復(fù)雜性問題,另外跟蹤模型需要適應(yīng)資源變化的動(dòng)態(tài)性。
(4)如何在操作系統(tǒng)中依據(jù)用戶制定的安全策略進(jìn)行細(xì)粒度的內(nèi)存隔離?如何基于輕量虛擬化可信基為應(yīng)用提供可信服務(wù)?由于可信基的輕量化設(shè)計(jì),需要解決輕量化設(shè)計(jì)與遺留代碼保護(hù)帶來(lái)的兼容性問題。
針對(duì)這些問題,本文認(rèn)為構(gòu)建可信執(zhí)行環(huán)境所涉及的諸多要素進(jìn)包括可信基的剪裁,自適應(yīng)和完整性機(jī)制,動(dòng)態(tài)信任架構(gòu),行為監(jiān)控機(jī)制,細(xì)粒度內(nèi)存隔離和可信服務(wù)調(diào)用等,這些將是未來(lái)可信計(jì)算研究的方向。
(1)輕量虛擬化可信基的構(gòu)建機(jī)制:研究解決輕量虛擬化可信基的動(dòng)態(tài)拆裝和自適應(yīng)問題;
(2)基于輕量虛擬化可信基的動(dòng)態(tài)可信架構(gòu):研究解決基于輕量虛擬化可信基的動(dòng)態(tài)信任鏈構(gòu)建和完整性保護(hù)等問題;
(3)基于輕量虛擬化可信基的軟件行為監(jiān)控機(jī)制:研究解決基于輕量級(jí)虛擬化可信基的軟件行為監(jiān)控問題;
(4)基于輕量級(jí)虛擬化的軟件可信執(zhí)行機(jī)制:研究解決軟件執(zhí)行過(guò)程中的內(nèi)存隔離和可信服務(wù)調(diào)用等問題。
這些問題的解決將為有高安全性需求的應(yīng)用提供可信保障,推動(dòng)虛擬化技術(shù)在構(gòu)建可信計(jì)算環(huán)境方面的商業(yè)化應(yīng)用。
本文總結(jié)和歸納了現(xiàn)有可信計(jì)算環(huán)境的構(gòu)建機(jī)制,分析了基于靜態(tài)可信度量根及及動(dòng)態(tài)可信度量根的可信計(jì)算環(huán)境存在的問題,并指出了可信計(jì)算環(huán)境的研究趨勢(shì)。
[1]Dyer J G,Lindemann M,Perez R,et al.Building the IBM4758 secure coprocessor[J].IEEE Computer,2001,34(10):57-66.
[2]Lie D,Thekkath C,Mitchell M,et al.Architectural support for copy and tamper resistant software[C]//Proceedings of the 9th International Conference on Architectural Support for ProgrammingLanguagesandOperatingSystems,Cambridge,MA,USA,2000:168-177.
[3]Suh G,Clarke D,Gassend B,et al.ARGIS:architecture for tamperevident and tamper resistant processing[C]//Proceedings of the 17th International Conference on Supercomputing,San Francisco,CA,USA,2003:160-171.
[4]Chen B,Morris T.Certifying program execution with secure processors[C]//Proceedings of the 9th Hot Topics in Operating Systems,Lihue,Hawaii,USA,2003,9:23-29.
[5]Trusted Computing Group.TCG 1_4 architecture overview[EB/OL]. [2012-10-01].http://www.Trustedcomputinggroup.org/files/resource_ files/AC652DE1109-3519-ADA026A0C05CFAC2/TCG_1_4 Architecture_Overview.pdf.
[6]Intel Corporation.Intel trusted execution technology software development guide[EB/OL].[2012-10-01].http://www.intel.com/ technology/security/down-loads/315168.htm.
[7]Advanced Micro Devices.AMD64 virtualization:secure virtual machine architecture reference manual[M].[S.l.]:AMD Publication,2005-05.
[8]Marchesini J,SmithS.SHEMP:securehardwareenhanced MyProxy[C]//Proceedingsof3rdAnnualConferenceon Privacy,Security and Trust,New Brunswick,Canada,2005.
[9]Trustedgrub[EB/OL].[2012-10-01].http://sourceforge.net/projects/ trustedgrub.
[10]MacDonald R,Smith S W,Marchesini J,et al.Bear:an opensource virtual secure coprocessor based on TCPA,Technical Report TR2003-4-71[R].Hanover,New Hampshire:Dartmouth College,2003.
[11]Marchesini J,Smith S W,Wild O,et al.Experi menting with TCPA/TCG hardware,or:How I learned to stop worrying and love the bear,Technical Report TR2003-476[R].Hanover,New Hampshire:Dartmouth College,2003.
[12]Sailer R,Zhang X,Jaeger T,et al.Design and implementation ofaTCG-basedintegritymeasurementarchitecture[C]// Proceedings of the 13th Conference on USENIX Security Symposium,Berkeley,CA,USA,2004:223-238.
[13]Goldberg R.Survey of virtual machine research[J].IEEE Computer Magazine,1974,7:34-45.
[14]Karger P A,Zurko M E,Bonin D W,et al.A retrospective on the VAX VMM security kernel[J].IEEE Transactions on Software Engineering,1991,17(11):1147-1165.
[15]Security:IBM zSeries partitioning achieves highest certification[EB/OL].[2012-10-01].http://www.ibm.com/servers/eserver/ zseries/security/certification.html.
[16]Garfinkel T,Pfaff B,Chow J,et al.Terra:a virtual machinebased platform for trusted computing[C]//Proceedings of the 19th ACM Symposium on Operating Systems Principles,Bolton Landing,NY,USA,2003:193-206.
[17]Berger S,Cáceres R,Goldman K,et al.vTPM:virtualizing the trusted platform module[C]//Proceedings of the 15th Conference on USENIX Security Symposium,2006.
[18]Open Secure Loader[EB/OL].[2012-10-01].http://os.inf.tudresden.de/~kauer/oslo/.
[19]Trusted Boot[EB/OL].[2012-10-01].http://sourceforge.net/projects/tboot/.
[20]McCune J M,Parno B J,Perrig A,et al.Flicker:an execution infrastructure for TCB minimization[C]//Proceedings of the 3rdSIGOPS/EuroSysConferenceonComputerSystems,Glasgow Scotland UK,2008:315-328.
[21]Microsoft Corp.Next generation secure computing base[EB/OL]. [2012-10-01].http://www.Microsoft.com/resources/ngscb/default. mspx.
[22]Seshadri A,Luk M,Qu N,et al.SecVisor:a tiny hypervisor to provide lifetime kernel code integrity for commodity OSes[C]// Proceedings of the 21st ACM Symposium on Operating SystemPrinciples,Stevenson,Washington,USA,October,2007:335-350.
[23]Shinagawa T,Eiraku H,Tanimoto K,et al.BitVisor:a thin hypervisor for enforcing I/O device security[C]//Proceeding oftheACMSIGPLAN/SIOPSInternationalConference on Virtual Execution Environments,Washington DC,USA,March 2009:121-130.
[24]McCune J M,Li Y,Qu N,et al.TrustVisor:efficient TCB reduction and attestation[J]//Proceedings of IEEE Symposium on Security and Privacy,Washington DC,USA,May 2010.
[25]Lin T,Kinebuchi Y,Courbot A,et al.Hardware-assisted reliability enhancement for embedded multi-core virtualization design[J]//Proceedings of 14th IEEE International SymposiumonObject/Component/ServiceOrientedReal-Time Distributed Computing(ISORC),Newport Beach,CA,April 2011:241-249.
[26]Steinberg U,Kauer B.NOVA:a microhypervisor-based secure virtualization architecture[C]//Proceedings of the 5th European Conference on Computer Systems,New York,NY,USA,March 2010:209-222.
[27]Wang Z,Jiang X.HyperSafe:a lightweight approach to provide lifetime hypervisor control flow integrity[C]//Proceedings of the the IEEE Symposium on Security and Privacy(SP),Oakland,CA,USA,July 2010:380-395.
[28]Zhang F,Chen J,Chen H,et al.CloudVisor:retrofitting protection of virtual machines in multitenant cloud with nested virtualization[C]//Proceedings of the 23rd ACM Symposium on Operating Systems Principles(SOSP-2011),Cassias,Portugal,October 2011:203-216.
CHENG Ge,LI Cong
School of Mathematics and Computational Science,Xiangtan University,Xiangtan,Hunan 411105,China
Trusted computing environment provides a new arena to address the challenges in computer security by combining software and hardware to meet the definition of trusted computing.The authenticity,confidentiality,controllability and other properties that it provides can make up the deficiencies of traditional security methods.This paper describes the hardware basis of trusted computing,summarizes the recent trusted computing environment which is based on the DRTM(Dynamic Root of Trust for Measurement)and SRTM(Static Root of Trust for Measurement),analyzes the advantages and disadvantages of existed trusted computing environment,and indicates the direction of future research by analyzing the trust chain.
trusted computing environment;chain of trust;root of trust measurement
可信計(jì)算環(huán)境構(gòu)建是通過(guò)軟硬件結(jié)合的方式構(gòu)建滿足可信計(jì)算定義的系統(tǒng),使其上進(jìn)行的計(jì)算具有真實(shí)性、機(jī)密性、可控性等特性,并利用這些特性來(lái)彌補(bǔ)僅依靠傳統(tǒng)安全防護(hù)方式的不足,從而更好地解決計(jì)算機(jī)安全面臨的挑戰(zhàn)和問題。介紹了可信計(jì)算環(huán)境構(gòu)建的硬件基礎(chǔ),歸納了近年來(lái)基于靜態(tài)可信度量根、動(dòng)態(tài)可信度量根以及輕量虛擬機(jī)監(jiān)控器的可信計(jì)算環(huán)境的構(gòu)建機(jī)制,分析了現(xiàn)有可信計(jì)算環(huán)境構(gòu)建機(jī)制的優(yōu)勢(shì)和不足;通過(guò)對(duì)可信計(jì)算環(huán)境中信任鏈的分析,指明了今后的研究方向。
可信計(jì)算環(huán)境;信任鏈;可信度量根
A
TP309
10.3778/j.issn.1002-8331.1211-0049
CHENG Ge,LI Cong.Research progress of trusted computing environment.Computer Engineering and Applications, 2013,49(13):59-64.
國(guó)家自然科學(xué)青年基金(No.61202397);湘潭大學(xué)科研啟動(dòng)費(fèi)項(xiàng)目(No.11QDZ42)。
程戈(1977—),男,博士,副教授,碩導(dǎo),主要研究領(lǐng)域?yàn)榭尚庞?jì)算,云計(jì)算;李聰(1988—),男,碩士研究生,主要研究領(lǐng)域?yàn)榭尚庞?jì)算。E-mail:chengge@xtu.edu.cn
2012-11-05
2013-02-05
1002-8331(2013)13-0059-06