邢劍鋒,王鵬飛,沈 松
(海軍蚌埠士官學校 信息技術系,安徽 蚌埠233012)
云計算服務能夠大大節約存儲和計算數據的成本,但由于安全問題,多數企業卻對此表現很冷淡。近期有研究[1]發現,企業最關心的是數據的安全性和失去數據控制權會對隱私帶來什么樣的危害,而不僅僅是如何降低數據存儲和處理的成本。云服務商的雇員很有可能篡改或者泄露用戶數據,甚至是公司的財務狀況,從而對用戶造成巨大危害。
本文提出一種可信賴云計算平臺(TCCP),可以確保外包給基礎設施服務(IaaS)的計算的保密性和完整性。TCCP為用戶VM提供了一個封閉的執行環境,避免云服務商的特權用戶窺視或者篡改內容,在執行VM申請前,用戶可以遠程判斷服務后臺運行的TCCP是否可信。該方法拓展了整體服務驗證的概念,使用戶能夠預估計算執行安全性。
當前眾多云服務商提供不同的軟件層級服務,在較低層可以提供客戶訪問服務商控制的整體虛擬機,客戶和系統用戶需要配備虛擬機上運行的軟件;在較高層級可以完全在線運行,無需客戶干預;在高軟件層級運行服務更難保證計算的保密性,因為服務本身需要操作客戶數據的軟件。本文主要研究低層級IaaS云服務商,此時更容易保證客戶虛擬機安全運行。
如圖1所示,以Eucalyptus為例,系統包含一個或多個運行客戶虛擬機的鏡像(典型的如Xen)的節點簇,而Eucalyptus擁有一系列組件來管理這些簇。簡言之,需要將所有這些組件集中到一個云管理者CM(Cloud Manager)。

從客戶角度,Eucalyptus提供了一個可執行、可管理和可終止VM的Web服務接口,虛擬機鏡像VMI運行VM,而CM負載VMI。VM啟動以后,用戶可以利用普通工具登錄,如ssh。除了用戶接口,CM還提供管理服務,如添加或刪除VMI或用戶。Xen支持熱遷移,允許VM在執行時更換物理主機,而過程對用戶透明,這種遷移對于簇內資源整合和負載平衡有重要意義。
云服務商的系統管理員擁有控制后臺的特權,可以實施多種攻擊以訪問客戶虛擬機內存。IaaS提供商不會允許某人擁有全部特權,而且也部署了嚴格的安全設施,嚴格訪問權限策略,保護硬件的物理安全。可以認為服務商能夠阻止對機器物理訪問的攻擊,但系統管理員還是需要簇內機器的訪問特權來管理機器上運行的軟件。因此TCCP必須做到以下兩點:(1)確保虛擬機在安全保護域內運行;(2)任何時候,擁有根權限的系統管理員遠程登錄運行虛擬機的機器,都不能訪問虛擬機內存。
可信賴計算群(TCG)提出了一系列的軟硬件技術來構建可信賴平臺,而且給出了可信賴平臺模塊(TPM)集成的設計標準。TPM支持私鑰(EK)并將此作為身份識別的唯一標準,還支持一些不可修改的加密方法,不同廠商設備使用不同的公鑰識別集成模塊。
可信賴平臺[2-4]改進了TPM集成特性,使其可以遠程識別。在啟動時,主機計算一個由啟動軟件序列哈希值組成的測度列表ML,啟動軟件即BIOS、啟動項、軟件執行平臺等。ML安全載入主機TPM,遠程一方利用當前nU挑戰運行在主機的平臺,平臺調用TPM生成包含ML和nU的應答信息,并用TPM的私鑰加密,主機將信息反饋給遠程方,遠程方利用對應的EK公鑰解密,這樣就完成了對主機的認證。通過核驗ML和nU,遠程方可以鑒別主機上運行的平臺是否可信賴。
可信賴平臺如 Terra[3],執行瘦 VMM,即強制使用封閉執行環境,這樣擁有主機全部特權的用戶也無法窺視和篡改客戶VM,即使機器重啟VMM也可以保證自身的完整性。因此遠程方可以通過驗證主機上運行的平臺,證實VMM的可信性,如此即可保證其客戶VM的計算是安全的。
假設傳統可信賴平臺能夠保證單臺主機上的計算安全性,保證IaaS服務的最自然的想法就是在服務后臺每個節點都部署平臺,然而這樣是不夠的,不論VM載入時(通過操作CM)還是運行時(通過遷移),系統管理員都可以將客戶VM轉移到沒有運行平臺的節點上。所以平臺驗證機制并不能保證遠程方得到的測度列表ML就是VM運行 (或即將運行)主機的真實信息。因此,TCCP需要設計遠程驗證方法,保證后臺平臺資源持久安全。
可信賴云計算平臺TCCP加強了IaaS后臺,使其可以在不改變結構的情況下提供封閉執行環境,如圖2所示。TCCP可信賴計算的基礎包含可信賴虛擬機映像(TVMM)和可信賴協調者(TC)兩個方面。

圖2 可信賴云計算平臺組成圖
后臺每個節點運行掌控客戶VM的TVMM,并防止被特權用戶窺視和篡改。TVMM可以保護自身安全性并遵守TCCP協議,節點被嵌入經驗證的TPM并通過安全啟動進程加載TVMM。
TC管理一系列可以安全運行客戶VM的節點,稱為可信賴節點,節點必須位于安全域內并運行TVMM,這要求TC保存節點安全域的記錄,并判斷該節點是否運行著可信賴TVMM。TC管理諸如簇中添加或移除節點、由于維修或升級需臨時關閉節點等事件。通過TC驗證,用戶可以判斷IaaS是否安全。
為了VM的安全,每個節點上運行的每個TVMM必須與TC相配合,目的是:(1)將VM限制在可信賴節點上;(2)在VM遷移時保證其狀態不受窺視和篡改。這些保護措施關鍵在加載和遷移VM時的操作,為了保護這些操作,TCCP制訂了具體協議。
假設由外部可信賴實體(ETE)來管理 TC,并為 TC更新部署在IaaS域中一系列節點和可信賴配置的信息,最重要的是管理IaaS的系統管理員在ETE內部沒有特權,因此不能篡改TC。本文假設ETE由沒有與IaaS服務商共謀動機的第三方維護。
通過保存包括安全域內節點、識別節點可信平臺模塊(TPM)的公開識別密鑰 E和預期測度列表MLN的目錄,TC可以動態管理一系列掌控VM的可信賴節點。ETE保證TC部分參數安全公開可用,包括E、MLTC和T,MLN和MLTC是遠程方在識別節點 N或TC上運行的平臺時希望收到的值。
節點必須在TC注冊,并遵守如圖3所描述的協議。前兩步節點N驗證TC,節點N向TC發起挑戰 nN,TC返回經E加密的MLTC,如果MLTC與預期相符,即表示TC是可信賴的。TC在返回信息2中包含了對節點N的挑戰nTC,第三步節點N產生密鑰對<T,T>,并將公鑰隨驗證消息3發給TC。如果TC成功驗證節點N的身份,則發送消息4確認節點是可信賴的。

圖3 節點遷移過程中的消息交換
當可信賴節點重啟時,TCCP必須保證節點仍然是可信賴的,否則節點會威脅TCCP的安全性。為此若節點內存僅保存T,機器重啟密鑰就會丟失,節點就會被TCCP阻止,因此節點必須重新注冊。
加載VM時,TCCP需要保證:(1)VM加載到可信賴節點;(2)系統管理員無權窺視和篡改初始VM狀態。VM初始狀態α包含虛擬機鏡像VMI和用戶公鑰。
參與VM裝載的各方都必須遵守如圖4所示的協議。該協議制定的依據是在加載VM前,用戶不知道VM將加載到哪個物理節點上,并且在服務的所有參與者中只有TC可信賴。首先用戶生成會話密鑰KVM,發送消息1到CM,消息包含α和α用會話密鑰加密的哈希值以及用T加密的KVM。用TC的公鑰加密會話密鑰,保證只有經TC授權的可信賴節點才能訪問α。

收到加載VM請求后,CM指派簇中節點N加載VM,并將請求轉發給N。因為啟動VM需要訪問α,節點N向TC發送消息2,TC用私鑰T解密消息,驗證N是否可信。如果TC信賴節點庫中沒有節點N的公鑰,則拒絕該請求,這可能是由于CM將請求轉移到了惡意系統管理員控制的節點,否則認為節點是可信賴的。TC解密會話密鑰,并在消息 3中發送給節點N,此時N就可以解密α并啟動VM。最后節點發送消息4給用戶,消息包含節點運行VM的證明。
在實時遷移[5]中,運行中的VM的狀態信息在源節點Ns和目標節點Nd間遷移。為保證操作的安全性必須使兩個節點互信,而且VM狀態必須可信并且在完成遷移前是不可修改的。圖5所示是參與VM安全遷移的消息隊列,首先Ns請求 TC檢驗 Nd是否可信,消息 3中,Ns向Nd發起VM遷移申請并附加會話密鑰KS。Nd驗證Ns是否可信。如果兩個節點都認證成功,Nd通知Ns接受KS,在消息7中Ns最終將 VM狀態哈希值加密發送給Nd,VM 遷移成功。

企業普遍應用云計算的主要阻力源自對數據和計算的保密性和完整性的擔心,本文提出一種可信云計算平臺TCCP,它可以為IaaS服務提供一個封閉執行環境,保證了客戶VM執行的機密性,允許用戶驗證IaaS提供商并在裝載其虛擬機前先判斷服務是否安全。
[1]CircleID Reporter.Survey:cloud computing‘No Hype’,but fear of security and control slowing adoption[C/OL].(2009-02-26)[2010-03-01].http://www.circleid.com/posts/2009-0226_cloud_computing_hype_security/.
[2]BERGER S,CACERES R,GOLDMAN K A.vTPM:virtualizing the trusted platform module[R].In Proc.of USENIXSS’06,Berkeley,CA,USA,2006.
[3]GARFINKEL T,PFAFF B,CHOW J.Terra:a virtual machinebased platform for trusted computing[C].In Proc.of SOSP’03,2003.
[4]MURRAY D G,MILOS G,HAND S.Improving xen security through disaggregation[C].In Proc.of VEE’08,New York,NY,USA,2008.
[5]CLARK C,FRASER K,HAND S.Live migration of virtual machines[C].In Proc.of NSDI’05,Berkeley,CA,USA,USENIX Association.