專利名稱:虛擬機全生命周期安全管理方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及計算環(huán)境安全領域,更為具體地,涉及一種用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的方法及系統(tǒng)。
背景技術:
當前,眾所周知,服務器虛擬化技術,特別是在當今云計算數(shù)據(jù)中心里已經形成了事實工業(yè)標準服務器平臺X86架構(或標準的htel體系架構“IA架構”)上的服務器虛擬化技術,有效實現(xiàn)了云計算以提供服務為模型的信息處理方法,可以將數(shù)據(jù)中心的計算、 存儲、網絡等信息處理的資源以租賃的方式出租給“租客用戶”,得到了高效率的多租客服務應用。所述云計算與云存儲服務平臺比如是云計算數(shù)據(jù)中心里的服務器,存儲器與網絡傳輸設備。在用虛擬化技術實現(xiàn)的云計算環(huán)境中通常保存有大量租客用戶以明文形式存在的軟件代碼和數(shù)據(jù)。為了防止被以任何未授權的形式訪問而導致租客用戶代碼與數(shù)據(jù)的執(zhí)行完整性和/或數(shù)據(jù)的機密性受到破壞,一些軟件代碼和數(shù)據(jù)需要在被隔離的安全計算環(huán)境中運行。對用虛擬化技術實現(xiàn)的計算環(huán)境進行強而有效的隔離是云計算與云存儲服務平臺的重要安全需求。服務器虛擬化的一項重要功能是將多個用戶共享使用的硬件資源進行隔離,比如將一臺服務器硬件平臺分割成多個虛擬機(VM),每個VM是一個獨立的信息處理單元,各自具有獨享的CPU使用權、內存、網絡設備和外部存儲空間。由此,可以向在各個VM中處理的用戶數(shù)據(jù)提供安全保護,從而使得數(shù)據(jù)免遭任何入侵攻擊、篡改或破壞,避免非授權使用。 通常,云計算所使用的服務器虛擬化技術利用各個“虛擬機”(Virtual Machine, VM)之間的自然分離,可以在不同租客用戶之間形成某種程度的安全隔離。為了解決上述問題,業(yè)界提出了一種“可信計算技術”(Trusted Computing Technology),比如TCG(Trusted Computing Group)技術及其在工業(yè)標準上的最優(yōu)化實現(xiàn)Intel公司的“TXT技術”(Trusted eXecute Technology),是專門為防止惡意更改系統(tǒng)服務軟件而設計的一種技術手段。采用可信計算技術可以對一個系統(tǒng)軟件進行“度量”(Measurement)固化,即,將軟件的二進制執(zhí)行代碼輸入一個散列函數(shù),取散列函數(shù)輸出值作為度量,將度量值存入一個“可信平臺模塊”(Trusted Platform Module, TPM,或對應的中國標準“可信密碼模塊”(Trusted Cryptographic Module, TCM),或者“可信計算基”CTrusted Computing Base,TCB),并應用密碼協(xié)議方法將度量的結果由TPM/TCM報告給一個外部檢查者,以檢查系統(tǒng)軟件的完整性是否遭到(比如數(shù)據(jù)中心內部攻擊者發(fā)起的) 惡意破壞??尚庞嬎慵夹g按照TCG標準的實現(xiàn)方法必須從計算平臺上軟件棧最底部軟件開始逐層向上對每一個軟件進行度量,直至位于軟件棧頂部的應用軟件。通過這種方式的度量,建立一個所謂的“可信鏈”(Chain of Trust) 0這一樸素的可信鏈實現(xiàn)方法雖然正確, 但由于越往軟件棧上部,軟件系統(tǒng)越龐大復雜,逐層度量方法自TCG標準制定以來歷經工業(yè)界10多年努力,從來未曾得到有效實現(xiàn)。目前工業(yè)界已達成共識,可信計算方法學中可信鏈的頂端終止于一個叫做“度量過的啟動環(huán)境”(Measured Launch Environment,MLE)的軟件。通常MLE是一個系統(tǒng)底部軟件,離開應用軟件尚有很長的距離。比如IntelTXT技術建議MLE為hypervisor,即,運行在虛擬軟件架構最高特權層(也就是虛擬軟件架構底層) 用于管理監(jiān)控虛擬機的系統(tǒng)軟件。如何將軟件度量工作可信地上升至位于軟件棧高層的應用軟件,又要避免度量介于高層應用與MLE之間龐大復雜的系統(tǒng)軟件層,這是一個尚未解決的難題。難處不僅在于高復雜度帶來的系統(tǒng)實現(xiàn)困難,更因為隨著軟件棧中位置的逐層增高,系統(tǒng)權限逐層下降,惡意攻擊軟件的行為也越容易得逞。這也是為什么可信計算工業(yè)界已經多年形成如下事實標準將可信鏈終止于MLE,并且認可MLE充當一個可信計算基 (Trusted Computing Base, TCB)的角色。由于提供安全保護功能的部件本身必須具有抗攻擊能力,所以TCB必須運行在計算平臺上系統(tǒng)特權級別較高的位置。在現(xiàn)有商業(yè)成熟的虛擬化技術(如VMware的ESX, Citrix的Xen,Microsoft的Hyper-V,開源社區(qū)的KVM等)中,虛擬架構上保護功能都是由運行在虛擬架構最高特權層的hypervisor提供的,在這些架構中,hypervisor被看作是一個軟件形式的TCB。
一個客體虛擬機所需的保護必須貫穿VM運行的整個生命周期。在現(xiàn)有商業(yè)成熟虛擬化云數(shù)據(jù)中心提供的服務,比如Amazon提供的公有云服務EC2,假定數(shù)據(jù)中心虛擬化平臺上的系統(tǒng)軟件環(huán)境,以及系統(tǒng)管理員都是可信的。用戶VM是在一個可信的環(huán)境中定制,被可信的系統(tǒng)操作人員服務的情況下得到初始化,然后被部署運行在可信的虛擬系統(tǒng)架構上。然而,在惡意攻擊是由云數(shù)據(jù)中心的系統(tǒng)管理員發(fā)起時,這個假定不成立。因此, 在這種情況下,客體虛擬機的計算環(huán)境是不安全的。Intel的Trusted eXecution Technology,TXT技術使用基于硬件的信任根對 hypervisor( = TCB)提供完整性保護,并通過公鑰密碼學認證的方式向用戶證明這一完整性保護的存在??墒钱斠粋€用戶VM被定制和被初始化時,如何證明所得到的VM處于可信的狀態(tài)(比如VM的客戶操作系統(tǒng)中不含惡意程序,比如root password的設置是可信的與唯一的,等等重要安全初始化問題),TXT技術并未給出解決方案。僅僅證明軟件TCB具有基于硬件信任根提供的完整性保護并無法推斷出數(shù)據(jù)中心是可信的,特別無法通過使用TXT 技術本身來推斷出數(shù)據(jù)中心系統(tǒng)管理員可能插手的VM定制與初始化工作是可信的。所以一個僅僅使用TXT技術的云數(shù)據(jù)中心仍然依賴一個很強的安全假定VM的定制與初始化工作是在一個可信的條件下完成的。同樣,在惡意攻擊是由云數(shù)據(jù)中心的系統(tǒng)管理員發(fā)起時, 這個假定不成立。因此,在這種情況下,客體虛擬機的計算環(huán)境是不安全的。下面說明具體理由。由于TCB或MLE處于軟件棧底層,自身缺乏對外通信交互能力,TCB —般通過中層系統(tǒng)管理軟件作為中介與外部世界發(fā)生交互。比如部署客體虛擬機這一簡單問題就必須讓 TCB與客體虛擬機通信才能完成。通常部署客體虛擬機的工作是利用中層管理軟件提供的的通信中介作用完成的。回到上面對可信計算標準問題的討論,可信度量終止于TCB,所以中層管理軟件因為未經度量所以是不可信的,所以通過這種不可信的中層管理軟件中介部署的客體虛擬機自然也缺乏可信度。本發(fā)明利用另外一個獨立可信的計算環(huán)境構造一個TCB代理。TCB代理是一個應用層軟件。通過公鑰密碼學方法與公鑰認證體系架構(Public Key Infrastructure,PKI), 在TCB與另外一個獨立可信的計算環(huán)境中可以建立一個由密碼學方法保護的排他性安全通道。通過此安全通道,TCB代理可以安全部署至TCB所在的虛擬計算平臺,作為TCB對外安全通信的代理。部署TCB代理的過程由于采用了密碼學保護,平臺上不可信的中層管理管理軟件無法對TCB代理形成惡意攻擊,只能按通信規(guī)定部署這個TCB代理。本發(fā)明采用密碼學方法屏蔽旁路了平臺上不可信的中層管理軟件,使軟件棧頂端部署了一個與TCB互信的應用服務軟件,代理TCB實現(xiàn)TCB對外可信通信,比如可信部署其它客體虛擬機。本專利對于可信計算實現(xiàn)了將可信鏈從TCB向上延續(xù)至可信應用,無需將龐大的中層管理軟件包含在可信鏈中。
發(fā)明內容
鑒于上述問題,本發(fā)明的目的是提供一種用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的方法及系統(tǒng),利用該方法及系統(tǒng),通過讓一個運行于虛擬化計算平臺底層的可信計算基(Trusted Computing Base, TCB)授權一個運行于虛擬化計算平臺的客體虛擬機層且被TCB信任和保護的可信計算基代理客體虛擬機(TCB Proxy Guest Virtual Machine, TPGVM)來代理TCB為客戶端用戶提供服務,比如由TPGVM代理TCB來為用戶定制客體虛擬機,確認、認證和維護客體虛擬機的用戶身份,并由TPGVM向客體虛擬機用戶證明在該虛擬化平臺上運行著TCB向客體虛擬機提供保護機制,從而可以抵抗甚至來自于數(shù)據(jù)中心內部系統(tǒng)管理員發(fā)起的攻擊。此外,在該系統(tǒng)中,由于僅僅在創(chuàng)建可信計算基代理客體虛擬機時,才需要額外的可信計算環(huán)境,從而使得成本降低。根據(jù)本發(fā)明的一個方面,提供了一種用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的系統(tǒng),包括可信計算基,運行在虛擬化計算平臺的底層,用于為可信計算基代理客體虛擬機以及客體虛擬機提供虛擬機內存保護以及虛擬機CPU上下文保護;可信計算基代理客體虛擬機,運行在所述虛擬化計算平臺的客體虛擬機層;以及一個或多個客體虛擬機,運行在所述客體虛擬機層,其中,所述可信計算基代理客體虛擬機是在與所述虛擬化計算平臺獨立的另一可信安全計算環(huán)境中創(chuàng)建的,并通過基于公鑰密碼學機制和可信第三方提供的認證機制建立的排他性私密安全通信信道傳遞到所述可信計算基,并且所述可信計算基代理客體虛擬機作為所述虛擬化計算平臺啟動后部署的特殊客體虛擬機運行來代理所述可信計算基為客戶端用戶提供服務。此外,在本發(fā)明的一個或多個實施例中,所述可信計算基代理客體虛擬機可以包括平臺報告單元,用于在接收到用戶發(fā)送的客體虛擬機生命周期維護請求后,應用可信計算方法向用戶報告所述虛擬化計算平臺上的系統(tǒng)軟件裝載狀況;身份認證單元,用于根據(jù)用戶發(fā)送的用戶身份認證信息,對用戶進行身份認證;密碼學保護處理單元,用于在完成平臺報告并且用戶身份認證成功后,對與用戶通信的信道提供密碼學保護,建立雙向安全通信信道來與用戶進行雙向安全通信;通知單元,用于在建立起所述雙向安全通信信道后,通知所述可信計算基基于用戶通過所述雙向安全通信信道提交的所述客體虛擬機生命周期維護請求,進行客體虛擬機生命周期維護管理。
此外,在本發(fā)明的一個或多個實施例中,所述客體虛擬機生命周期維護請求可以包括客體虛擬機創(chuàng)建請求。在這種情況下,所述可信計算基包括客體虛擬機創(chuàng)建單元,并且在建立起所述雙向安全通信信道后,所述通知單元通知所述客體虛擬機創(chuàng)建單元基于用戶通過所述雙向安全通信信道提交的客體虛擬機定制信息,為用戶創(chuàng)建客體虛擬機。此外,在本發(fā)明的一個或多個實施例中,所述客體虛擬機生命周期維護請求可以包括客體虛擬機啟動請求。在這種情況下,所述可信計算基包括客體虛擬機啟動單元,并且在建立起所述雙向安全通信信道后,所述通知單元通知所述客體虛擬機啟動單元進行啟動狀態(tài)驗證,并且在啟動狀態(tài)驗證成功后啟動客體虛擬機,并為該客體虛擬機提供虛擬機內存保護以及虛擬機CPU上下文保護。此外,在本發(fā)明的一個或多個實施例中,所述客體虛擬機生命周期維護請求可以包括客體虛擬機停機請求。在這種情況下,所述可信計算基包括客體虛擬機停機單元,并且在建立起所述雙向安全通信信道后,所述通知單元通知所述客體虛擬機停機單元停止客體虛擬機的運行,并且為該客體虛擬機提供停機狀態(tài)保護。此外,在本發(fā)明的一個或多個實施例中,所述客體虛擬機生命周期維護請求包括客體虛擬機銷毀請求。在這種情況下,所述可信計算基包括客體虛擬機銷毀單元,并且在建立所述雙向安全通信信道后,所述通知單元通知所述客體虛擬機銷毀單元銷毀客體虛擬機。此外,在本發(fā)明的一個或多個實施例中,所述可信計算基可以包括虛擬機內 存保護單元,用于對客體虛擬機所用內存進行保護,以確保各個客體虛擬機各自訪問各自的內存;以及虛擬機CPU上下文保護單元,用于保護與管理所述客體虛擬機的CPU上下文。根據(jù)本發(fā)明的另一方面,提供了一種用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的方法,由可信計算基代理客體虛擬機執(zhí)行,所述方法包括在接收到用戶發(fā)送的客體虛擬機生命周期維護請求后,向所述用戶報告虛擬化計算平臺上的系統(tǒng)軟件裝載狀況,所述虛擬化計算平臺包括可信計算基、所述可信計算基代理客體虛擬機以及客體虛擬機;根據(jù)從所述用戶發(fā)送的用戶身份認證信息,對所述用戶進行身份認證;在完成所述報告并且身份認證成功后,對與所述用戶通信的信道進行密碼學保護,建立雙向安全通信信道來與用戶進行雙向安全通信;在所述安全通信信道建立后,通知所述可信計算基基于用戶通過所述雙向安全通信信道提交的所述客體虛擬機生命周期維護請求,進行客體虛擬機生命周期管理,其中,所述可信計算基代理客體虛擬機是在與所述虛擬化計算平臺獨立的另一可信安全計算環(huán)境中創(chuàng)建的,并通過基于公鑰密碼學機制和可信第三方提供的認證機制建立的排他性私密安全通信信道傳遞到所述可信計算基,并且所述可信計算基代理客體虛擬機作為所述虛擬化計算平臺啟動后部署的特殊客體虛擬機運行來代理所述可信計算基為客戶端用戶提供服務。此外,在本發(fā)明的一個或多個實施例中,所述客體虛擬機生命周期維護請求包括客體虛擬機創(chuàng)建請求。在這種情況下,所述通知所述可信計算基進行客體虛擬機生命周期管理的步驟包括在建立起所述雙向安全通信信道后,通知所述可信計算基基于用戶通過所述雙向安全通信信道提交的客體虛擬機定制信息,為用戶創(chuàng)建客體虛擬機。此外,在本發(fā)明的一個或多個實施例中,所述客體虛擬機生命周期維護請求包括客體虛擬機啟動請求。在這種情況下,所述通知所述可信計算基進行客體虛擬機生命周期管理的步驟包括在建立起所述雙向安全通信信道后,通知所述可信計算基進行啟動狀態(tài)驗證,并且在啟動狀態(tài)驗證成功后啟動客體虛擬機,并為該客體虛擬機提供虛擬機內存保護以及虛擬機CPU上下文保護。 此外,在本發(fā)明的一個或多個實施例中,所述客體虛擬機生命周期維護請求包括客體虛擬機停機請求。在這種情況下,所述通知所述可信計算基進行客體虛擬機生命周期管理的步驟包括在建立起所述雙向安全通信信道后,通知所述可信計算基停止客體虛擬機的運行,并且為該客體虛擬機提供停機狀態(tài)保護。此外,在本發(fā)明的一個或多個實施例中,所述客體虛擬機生命周期維護請求包括客體虛擬機銷毀請求。在這種情況下,所述通知所述可信計算基進行客體虛擬機生命周期管理的步驟包括在建立所述雙向安全通信信道后,通知所述可信計算基銷毀客體虛擬機。為了實現(xiàn)上述以及相關目的,本發(fā)明的一個或多個方面包括后面將詳細說明并在權利要求中特別指出的特征。下面的說明以及附圖詳細說明了本發(fā)明的某些示例性方面。 然而,這些方面指示的僅僅是可使用本發(fā)明的原理的各種方式中的一些方式。此外,本發(fā)明旨在包括所有這些方面以及它們的等同物。
根據(jù)下述參照附圖進行的詳細描述,本發(fā)明的上述和其他目的、特征和優(yōu)點將變得更加顯而易見。在附圖中圖1示出了根據(jù)本發(fā)明的用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的系統(tǒng)的方框示意圖;圖2示出了可信計算基與另一可信安全計算環(huán)境的互信建立過程的示意圖;圖3示出了圖1中的可信計算基代理客體虛擬機的細節(jié)圖;以及圖4示出了根據(jù)本發(fā)明的用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的方法的流程圖。在所有附圖中相同的標號指示相似或相應的特征或功能。
具體實施例方式下面描述本公開的各個方面。應該明白的是,本文的教導可以以多種多樣形式具體體現(xiàn),并且在本文中公開的任何具體結構、功能或兩者僅僅是代表性的?;诒疚牡慕虒?,本領域技術人員應該明白的是,本文所公開的一個方面可以獨立于任何其它方面實現(xiàn), 并且這些方面中的兩個或多個方面可以按照各種方式組合。例如,可以使用本文所闡述的任何數(shù)目的方面,實現(xiàn)裝置或實踐方法。另外,可以使用其它結構、功能、或除了本文所闡述的一個或多個方面之外或不是本文所闡述的一個或多個方面的結構和功能,實現(xiàn)這種裝置或實踐這種方法。此外,本文所描述的任何方面可以包括權利要求的至少一個元素。關于虛擬化系統(tǒng),在此使用的術語“虛擬化系統(tǒng)”是指以下中的任意一種具有虛擬機管理功能的單獨的計算機系統(tǒng)、虛擬機主機、具有虛擬機管理功能的單獨的計算機系統(tǒng)的集合、以及可通信地與單獨的計算機系統(tǒng)連接的一個或多個虛擬機主機等。虛擬化系統(tǒng)的例子可以包括商用實施方式,例如,作為示例而非限制的,可以從VMware公司(帕洛阿爾托,加利福尼亞)獲得的VMware ESX服務器 (VMware和ESX服務器是VMware公司的商標)、VMware 服務器和VMware 工作站;具有虛擬化支持功能的操作系統(tǒng),諸如-Microsoft 虛擬服務器2005 ;以及開源代碼的實施方式,例如,作為示例而非限制的,可以從XenSource公司獲得。在計算機科學領域眾所周知的,虛擬機是軟件的抽象概念_對實際的物理計算機系統(tǒng)的“虛擬化”。通常在VM內的客戶端軟件與基礎的硬件平臺中的各種硬件組件和設備之間設置一些接口。這種接口,通常被稱為“虛擬化層”,通常可以包括一個或多個軟件組件和/或層,可能包括一個或多個在虛擬機技術領域中公知的軟件組件,如“虛擬機監(jiān)視器 (VMM) ”、“管理程序(hypervisor) ”、或者虛擬化“內核”。由于虛擬化技術的逐步發(fā)展,這些術語(在業(yè)內使用時)并不總能在軟件層和他們所涉及的組件之間提供明顯的區(qū)別。例如,術語“管理程序(hypervisor) ”通常用來描述 VMM和內核二者,也可以是單獨地但是協(xié)作的組件,或者全部或部分地并入內核自身中的一個或多個VMM。然而,術語“管理程序”有時用于單獨表示VMM的一些變體,所述管理程序與某些其它軟件層或組件接口以支持虛擬化。此外,在一些系統(tǒng)中,某些虛擬化代碼包括在至少一個“超級"VM中以利于其它VM的運行。此外,在主機OS自身中有時包含特定的軟件支持。以下將結合附圖對本發(fā)明的具體實施例進行詳細描述。圖1示出了根據(jù)本發(fā)明的一個實施例的用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的安全管理系統(tǒng)10的方框示意圖。如圖1所示,所述安全管理系統(tǒng)10包括可信計算基110、可信計算基代理客體虛擬機(TPGVM) 120以及一個或多個用戶虛擬機(VM) 130,比如VMl,VM2,......,VMn。所述可信計算基110運行在通常位于虛擬化架構管理器(即,hypervisor)之下的虛擬化計算平臺的底層中,用于對一個或多個用戶創(chuàng)建的客體虛擬機進行管理,以及為虛擬化計算環(huán)境中的可信計算基代理客體虛擬機以及一個或多個用戶創(chuàng)建的客體虛擬機提供虛擬機內存保護以及虛擬機CPU上下文保護。如圖中所示,所述可信計算基110可以包括虛擬機內存保護單元111和虛擬機CPU上下文保護單元113。所述虛擬機內存保護單元111用于對客體虛擬機所用內存進行保護,以確保各個客體虛擬機各自訪問各自的內存。例如,在一個示例中,所述虛擬機內存保護單元111還可以包括記錄單元(未示出),用于紀錄內存頁面的所有者;檢查單元(未示出),用于在操作時,檢查客體虛擬機所請求的內存頁面是否是自己擁有的頁面;以及頁面訪問處理單元 (未示出),用于基于所述檢查單元的檢查結果,確定是允許該客體虛擬機訪問所請求的內存頁面,還是禁止該客體虛擬機訪問所請求的內存頁面。其中,在所述檢查單元的檢查結果示出客體虛擬機所請求的內存頁面是自己擁有的頁面時,允許該客體虛擬機訪問所請求的內存頁面。在所述檢查單元的檢查結果示出客體虛擬機所請求的內存頁面不是自己擁有的頁面時,禁止該客體虛擬機訪問所請求的內存頁面。所述虛擬機CPU上下文保護單元113用于保護與管理所述一個或多個虛擬機的 CPU上下文。所謂CPU上下文,是指當硬件CPU作為一個共享資源從向一個虛擬機(如VMl) 提供服務切換至向另一個虛擬機(如VM2)提供服務時,系統(tǒng)需要將CPU各個寄存器中處理 VMl相關的內容換成處理VM2相關內容。這叫做CPU上下文切換。上下文切換時先要將各寄存器當前處理VMl的內容保存起來,再從以前為處理VM2所保存的內容回填至相應寄存器,才開始讓CPU繼續(xù)處理VM2任務,直至下一次CPU上下文切換(如切換至VM3)。 所述可信計算基代理客體虛擬機(TPGVM) 120運行在客體虛擬機層中,該客體虛擬機層通常位于所述虛擬化架構管理器之上。其中,所述可信計算基代理客體虛擬機是在與所述虛擬化計算平臺(即,所述可信計算基的計算環(huán)境)獨立的另一可信安全計算環(huán)境 (例如,通過第三方安全計算實體)中創(chuàng)建的。在初始創(chuàng)建后,基于公鑰密碼學機制和可信第三方提供的認證機制,確認所述另一可信安全計算環(huán)境與所述虛擬化計算平臺二者之間是否已經建立了由密碼學方法保護的相互信任的排他性私密安全通信信道。在確認已經建立所述排他性私密安全通信信道后,由所述另一可信安全計算環(huán)境對所創(chuàng)建的所述可信計算基代理客體虛擬機完成密碼學運算保護處理,然后將所述可信計算基代理客體虛擬機 120傳遞至所述虛擬計算平臺中的可信計算基110,并且在由所述可信計算基110完成密碼學逆運算解保護處理后,作為所述虛擬計算平臺啟動后所部署的一個特殊客體虛擬機運行來代理所述可信計算基為客戶端用戶提供服務。此時,所述可信計算基Iio為TPGVM 120 提供虛擬機內存保護以及虛擬機CPU上下文保護。
這里,虛擬計算平臺上的可信計算基與該另一可信安全計算環(huán)境的互信是由一個可信第三方(Certification Authority, CA)通過公鑰認證框架(Public-key Authentication Infrastructure, PKI)方法實現(xiàn)的。具體地,如圖2所示,在步驟S210 和S220,CA向可信計算基以及該另一可信安全計算環(huán)境頒發(fā)公鑰認證證書,然后,在步驟 S230,雙方可以使用所接收的證書建立由密碼學保護的雙向排他性安全通信通道。在步驟 S240中,通過所建立的雙向排他姓安全通信信道,將所創(chuàng)建的可信計算基代理客體虛擬機安全地傳遞到虛擬計算平臺中的可信計算基。所述一個或多個用戶虛擬機(VM) 130運行在所述虛擬用戶層中,用于為用戶提供諸如計算的各種應用或服務。圖3示出了圖1中的可信計算基代理客體虛擬機120的細節(jié)圖。如圖2所示,所述可信計算機代理客體虛擬機120包括平臺報告單元121、身份認證單元123、密碼學保護處理單元125以及通知單元127。所述平臺報告單元121用于在接收到用戶發(fā)送的客體虛擬機生命周期維護請求后,應用可信計算方法向用戶報告所述虛擬化計算平臺上的系統(tǒng)軟件裝載狀況。這里,所述客體虛擬機生命周期維護請求可以包括客體虛擬機創(chuàng)建請求、客體虛擬機啟動請求、客體虛擬機停機請求和/或客體虛擬機銷毀請求。所述身份認證單元123用于在接收到用戶發(fā)送的用戶身份認證信息后,根據(jù)所接收的用戶身份認證信息,對所述用戶進行身份認證。所述密碼學保護處理單元125用于在完成平臺報告并且用戶身份認證成功后,對與用戶通信的信道提供密碼學保護,建立雙向安全通信信道來與用戶進行雙向安全通信。這里所說的密碼學保護可以是密碼學完整性保護,也可以是密碼學隱私性保護。所述通知單元127用于在建立起所述雙向安全通信信道后,基于用戶通過所述雙向安全通信信道提交的客體虛擬機生命周期維護請求,進行客體虛擬機生命周期維護管理。在本發(fā)明的一個示例中,在所述客體虛擬機生命周期請求是客體虛擬機創(chuàng)建請求的情況下,用戶還會通過所述雙向安全通信信道向可信計算基代理客體虛擬機120發(fā)送客體虛擬機定制信息,所述客體虛擬機定制信息用于為用戶定制客體虛擬機。例如,所述客體虛擬機定制信息可以包括客體虛擬機的內存大小、性能等。這里,所述客體虛擬機定制信息可以包含在客體虛擬機創(chuàng)建請求中發(fā)送給可信計算基代理客體虛擬機120。在另一示例中, 所述客體虛擬機定制信息也可以與客體虛擬機創(chuàng)建請求分離,但兩者一起發(fā)送給可信計算基代理客體虛擬機120。或者,所述客體虛擬機定制信息也可以不是與客體虛擬機創(chuàng)建請求同時發(fā)送給可信計算基代理客體虛擬機120。在這種情況下,所述可信計算基110可以包括客體虛擬機創(chuàng)建單元(未示出)。在如上建立起所述雙向安全通信信道后,所述通知單元127通知所述客體虛擬機創(chuàng)建單元來基于所述客體虛擬機定制信息,為用戶創(chuàng)建客體虛擬機。此外,在本發(fā)明的一個或多個示例中,所述客體虛擬機定制信息還可以包括安全信息,比如要設置的密碼等。。在這種情況下,所述客體虛擬機創(chuàng)建單元基于所述客體虛擬機定制信息中的安全信息,對要創(chuàng)建的客體虛擬機進行安全設定。 此外,在本發(fā)明的一個或多個示例中,所述可信計算基還可以包括客體虛擬機初始化單元(未示出),用于基于用戶通過所述雙向安全通信信道提交的客體虛擬機初始化信息,對所創(chuàng)建的一個或多個客體虛擬機進行初始化,從而使得該一個或多個客體虛擬機成為用戶排他性使用的客體虛擬機。在本發(fā)明的另一示例中,在所述客體虛擬機生命周期請求是客體虛擬機啟動請求的情況下,所述可信計算基110還可以包括客體虛擬機啟動單元(未示出)。在這種情況下,在建立起所述雙向安全通信信道后,所述通知單元127通知所述客體虛擬機啟動單元進行啟動狀態(tài)驗證,并且在啟動狀態(tài)驗證成功后啟動客體虛擬機,并且所述可信計算基110 為該客體虛擬機提供虛擬機內存保護以及虛擬機CPU上下文保護。這里所述的啟動狀態(tài)驗證過程指的是當一個用戶請求啟動一個客體虛擬機時,計算所述客體虛擬機的啟動狀態(tài), 采用密碼學方法取出該客體虛擬機的虛擬機保護狀態(tài),將所述啟動狀態(tài)與所述虛擬機保護狀態(tài)進行比較,當比較結果為“一致”時,允許該所述虛擬機啟動。在本發(fā)明的另一示例中,在所述客體虛擬機生命周期請求是客體虛擬機停止請求的情況下,所述可信計算基110還可以包括客體虛擬機停機單元(未示出)。在這種情況下, 在建立起所述雙向安全通信信道后,所述通知單元120通知所述客體虛擬機停機單元停止客體虛擬機的運行,并且為該客體虛擬機提供停機狀態(tài)保護。這里所述的停機狀態(tài)保護指的是當一個客體虛擬機請求關機時,計算所述客體虛擬機狀態(tài),采用密碼學方法保護所計算的虛擬機狀態(tài)。在本發(fā)明的另一示例中,在所述客體虛擬機生命周期請求是客體虛擬機銷毀請求的情況下,所述可信計算基110還可以包括客體虛擬機銷毀單元(未示出)。在這種情況下, 在建立所述雙向安全通信信道后,所述通知單元127通知所述客體虛擬機銷毀單元銷毀客體虛擬機。如上參照圖1、圖2和圖3對根據(jù)本發(fā)明的用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的安全管理系統(tǒng)10進行了描述,下面將參照圖4描述由上述系統(tǒng)執(zhí)行的過程。圖4示出了根據(jù)本發(fā)明的用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的方法的流程圖。首先,在根據(jù)本發(fā)明的安全管理系統(tǒng)10啟動時,當可信計算基以及虛擬化計算平臺啟動后,在與所述虛擬化計算平臺(即,所述可信計算基的計算環(huán)境)獨立的另一可信安全計算環(huán)境(例如,通過第三方安全計算實體)中創(chuàng)建的。在初始創(chuàng)建后,基于公鑰密碼學機制和可信第三方提供的認證機制,確認所述另一可信安全計算環(huán)境與所述虛擬計算平臺二者之間是否已經建立了由密碼學方法保護的相互信任的排他性私密安全通信信道。在確認已經建立所述排他性私密安全通信信道后,由所述另一可信安全計算環(huán)境對所創(chuàng)建的所述可信計算基代理客體虛擬機完成密碼學運算保護處理,然后將所述可信計算基代理客體虛擬機120轉移至所述虛擬化計算平臺中的可信計算基110,并且在由所述可信計算基110 完成密碼學逆運算解保護處理后,作為所述虛擬化計算平臺啟動后所部署的一個特殊客體虛擬機運行來代理所述可信計算基為客戶端用戶提供服務。此時,所述可信計算基110為 TPGVM 120提供虛擬機內存保護以及虛擬機CPU上下文保護。在完成上述后,如果用戶需要進行客體虛擬機生命周期維護,例如進行客體虛擬機創(chuàng)建、客體虛擬機啟動、客體虛擬機停機和/或客體虛擬機銷毀,則如圖4所示,在步驟 S410,用戶向TPGVM 120發(fā)送客體虛擬機生命周期維護請求。這里,所述客體虛擬機生命周期維護請求可以包括客體虛擬機創(chuàng)建請求、客體虛擬機啟動請求、客體虛擬機停機請求和/ 或客體虛擬機銷毀請求。在接收到用戶發(fā)送的客體虛擬機生命周期維護請求后,在步驟S420中,向所述用戶報告所述虛擬化計算平臺上的系統(tǒng)軟件裝載狀態(tài)。并且,在接收到用戶發(fā)送的用戶身份認證信息后,在步驟S430,基于所接收的用戶身份認證信息,對所述用戶進行用戶身份認證。這里,步驟S420和步驟S430的順序也可以顛倒,即,可以先執(zhí)行步驟S430,然后執(zhí)行步驟 S420。在完成上述系統(tǒng)軟件裝載狀態(tài)報告以及用戶身份認證成功后,在步驟S440,對與所述用戶通信的信道進行密碼學保護,在用戶和可信計算基代理客體虛擬機之間建立起雙向安全通信信道,從而使得可信計算基代理客體虛擬機能夠與用戶進行雙向安全通信。這里所說的密碼學保護例如包括密碼學完整性保護和/或密碼學隱私性保護以及本領域中公知的其他密碼學保護方法。在建立起雙向安全通信信道后,在步驟S450,所述可信計算基代理客體虛擬機基于用戶通過所述雙向安全通信信道提交的客體虛擬機生命周期維護請求,進行客體虛擬機生命周期管理。在本發(fā)明的一個示例中,在所述客體虛擬機生命周期請求是客體虛擬機創(chuàng)建請求的情況下,用戶還會通過所述雙向安全通信信道向可信計算基代理客體虛擬機120發(fā)送客體虛擬機定制信息,所述客體虛擬機定制信息用于為用戶定制客體虛擬機。例如,所述客體虛擬機定制信息可以包括客體虛擬機的內存大小、性能等。這里,所述客體虛擬機定制信息可以包含在客體虛擬機創(chuàng)建請求中發(fā)送給可信計算基代理客體虛擬機120。在另一示例中, 所述客體虛擬機定制信息也可以與客體虛擬機創(chuàng)建請求分離,但兩者一起發(fā)送給可信計算基代理客體虛擬機120?;蛘?,所述客體虛擬機定制信息也可以不是與客體虛擬機創(chuàng)建請求同時發(fā)送給可信計算基代理客體虛擬機120。在這種情況下,在步驟S450中,所述可信計算基代理客體虛擬機向所述可信計算基110發(fā)送客體虛擬機創(chuàng)建請求以及客體虛擬機定制信息。在接收到客體虛擬機創(chuàng)建請求以及客體虛擬機定制信息,所述可信計算基110基于所接收的客體虛擬機定制信息創(chuàng)建客體虛擬機。此外,在本發(fā)明的一個或多個示例中,所述客體虛擬機定制信息還可以包括安全信息,比如要設置的密碼等。在這種情況下,所述可信計算基基于所述客體虛擬機定制信息中的安全信息,對要創(chuàng)建的客體虛擬機進行安全設定。此外,在本發(fā)明的一個或多個示例中,所述可信計算基還可以基于用戶通過所述雙向安全通信信道提交的客體虛擬機初始化信息,對所創(chuàng)建的一個或多個客體虛擬機進行初始化,從而使得該一個或多個客體虛擬機成為用戶排他性使用的客體虛擬機。在本發(fā)明的另一示例中,在所述客體虛擬機生命周期請求是客體虛擬機啟動請求的情況下,在步驟S450中,在建立起所述雙向安全通信信道后,所述可信計算基代理客體虛擬機通知所述可信計算基進行客體虛擬機啟動。在接收到上述通知后,所述可信計算基進行啟動狀態(tài)驗證,并且在啟動狀態(tài)驗證成功后啟動客體虛擬機,并且在啟動客體虛擬機后,為該客體虛擬機提供虛擬機內存保護以及虛擬機CPU上下文保護。在本發(fā)明的另一示例中,在所述客體虛擬機生命周期請求是客體虛擬機停止請求的情況下,在步驟S450中,在建立起所述雙向安全通信信道后,所述可信計算基代理客體虛擬機通知所述可信計算基停止客體虛擬機的運行,并且為該客體虛擬機提供停機狀態(tài)保護。在接收到上述通知后,所述可信計算基停止客體虛擬機的運行,并且為該客體虛擬機提供停機狀態(tài)保護。這里所述的停機狀態(tài)保護指的是當一個客體虛擬機請求關機時,計算所述客體虛擬機狀態(tài),采用密碼學方法保護所計算的虛擬機狀態(tài)。在本發(fā)明的另一示例中,在所述客體虛擬機生命周期請求是客體虛擬機銷毀請求的情況下,在步驟S450中,在建立所述雙向安全通信信道后,所述可信計算基代理客體虛擬機通知所述可信計算基銷毀客體虛擬機。在接收到上述通知后,所述可信計算基銷毀客體虛擬機。如上參照圖4對根據(jù)本發(fā)明的用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的方法進行了描述。在本發(fā)明的方法及系統(tǒng)中,由于可信計算基(TCB)授權可信計算基帶領客體虛擬機(TPGVM)代理TCB來為用戶定制客體虛擬機,確認、認證和維護客體虛擬機的用戶身份, 并由TPGVM向客體虛擬機用戶證明在該虛擬化平臺上運行著TCB向客體虛擬機提供保護機制,從而可以抵抗甚至來自于數(shù)據(jù)中心內部系統(tǒng)管理員發(fā)起的攻擊。此外,在該系統(tǒng)中,由于僅僅在創(chuàng)建可信計算基代理客體虛擬機(TPGVM)時,才需要額外的可信計算環(huán)境,而在創(chuàng)建用戶想要創(chuàng)建的一個或多個客體虛擬機時,是利用處于同一客體虛擬機層的TPGVM的可信計算環(huán)境來進行的,從而可以降低成本。這里要說明的,上述方法步驟以及系統(tǒng)單元也可以利用控制器以及用于使得控制器實現(xiàn)上述步驟或單元功能的計算機程序實現(xiàn),所述計算機程序存儲在計算機可讀取存儲設備中。此外,應該明白的是,本文所述的數(shù)據(jù)存儲(例如,存儲器)設備可以是易失性存儲器或非易失性存儲器,或者可以包括易失性存儲器和非易失性存儲器兩者。作為例子而非限制性的,非易失性存儲器可以包括只讀存儲器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦寫可編程ROM(EEPROM)或快閃存儲器。易失性存儲器可以包括隨機存取存儲器(RAM),該RAM可以充當外部高速緩存存儲器。作為例子而非限制性的,RAM 可以以多種形式獲得,比如同步RAM (DRAM)、動態(tài)RAM (DRAM)、同步DRAM (SDRAM)、雙數(shù)據(jù)速率 SDRAM (DDR SDRAM)、增強 SDRAM (ESDRAM)、同步鏈路 DRAM (SLDRAM)以及直接 Rambus RAM(DRRAM)。所公開的方面的存儲設備意在包括但不限于這些和其它合適類型的存儲器。
盡管前面公開的內容示出了本發(fā)明的示例性實施例,但是應當注意,在不背離權利要求限定的本發(fā)明的范圍的前提下,可以進行多種改變和修改。根據(jù)這里描述的發(fā)明實施例的方法權利要求的功能、步驟和/或動作不需以任何特定順序執(zhí)行。此外,盡管本發(fā)明的元素可以以個體形式描述或要求,但是也可以設想多個,除非明確限制為單數(shù)。雖然如上參照圖描述了根據(jù)本發(fā)明的各個實施例進行了描述,但是本領域技術人員應當理解,對上述本發(fā)明所提出的各個實施例,還可以在不脫離本發(fā)明內容的基礎上做出各種改進。因此,本發(fā)明的保護范圍應當由所附的權利要求書的內容確定。
權利要求
1.一種用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的系統(tǒng),包括可信計算基,運行在虛擬化計算平臺的底層,用于為可信計算基代理客體虛擬機以及客體虛擬機提供虛擬機內存保護以及虛擬機CPU上下文保護;可信計算基代理客體虛擬機,運行在所述虛擬化計算平臺的客體虛擬機層;以及一個或多個客體虛擬機,運行在所述客體虛擬機層,其中,所述可信計算基代理客體虛擬機是在與所述虛擬化計算平臺獨立的另一可信安全計算環(huán)境中創(chuàng)建的,并通過基于公鑰密碼學機制和可信第三方提供的認證機制建立的排他性私密安全通信信道傳遞到所述可信計算基,并且所述可信計算基代理客體虛擬機作為所述虛擬化計算平臺啟動后部署的特殊客體虛擬機運行來代理所述可信計算基為客戶端用戶提供服務。
2.如權利要求1所述的系統(tǒng),其中,所述可信計算基代理客體虛擬機包括平臺報告單元,用于在接收到用戶發(fā)送的客體虛擬機生命周期維護請求后,應用可信計算方法向用戶報告所述虛擬化計算平臺上的系統(tǒng)軟件裝載狀況;身份認證單元,用于根據(jù)用戶發(fā)送的用戶身份認證信息,對用戶進行身份認證;密碼學保護處理單元,用于在完成平臺報告并且用戶身份認證成功后,對與用戶通信的信道提供密碼學保護,建立雙向安全通信信道來與用戶進行雙向安全通信;通知單元,用于在建立起所述雙向安全通信信道后,通知所述可信計算基基于用戶通過所述雙向安全通信信道提交的所述客體虛擬機生命周期維護請求,進行客體虛擬機生命周期維護管理。
3.如權利要求2所述的系統(tǒng),其中,所述客體虛擬機生命周期維護請求包括客體虛擬機創(chuàng)建請求,以及所述可信計算基包括客體虛擬機創(chuàng)建單元,其中,在建立起所述雙向安全通信信道后,所述通知單元通知所述客體虛擬機創(chuàng)建單元基于用戶通過所述雙向安全通信信道提交的客體虛擬機定制信息,為用戶創(chuàng)建客體虛擬機。
4.如權利要求2所述的系統(tǒng),其中,所述客體虛擬機生命周期維護請求包括客體虛擬機啟動請求,以及所述可信計算基包括客體虛擬機啟動單元,在建立起所述雙向安全通信信道后,所述通知單元通知所述客體虛擬機啟動單元進行啟動狀態(tài)驗證,并且在啟動狀態(tài)驗證成功后啟動客體虛擬機,并為該客體虛擬機提供虛擬機內存保護以及虛擬機CPU上下文保護。
5.如權利要求2所述的系統(tǒng),其中,所述客體虛擬機生命周期維護請求包括客體虛擬機停機請求,以及所述可信計算基包括客體虛擬機停機單元,在建立起所述雙向安全通信信道后,所述通知單元通知所述客體虛擬機停機單元停止客體虛擬機的運行,并且為該客體虛擬機提供停機狀態(tài)保護。
6.如權利要求2所述的系統(tǒng),其中,所述客體虛擬機生命周期維護請求包括客體虛擬機銷毀請求,以及所述可信計算基包括客體虛擬機銷毀單元,在建立所述雙向安全通信信道后,所述通知單元通知所述客體虛擬機銷毀單元銷毀客體虛擬機。
7.如權利要求1到6中任何一個所述的系統(tǒng),其中,所述可信計算基包括虛擬機內存保護單元,用于對客體虛擬機所用內存進行保護,以確保各個客體虛擬機各自訪問各自的內存;以及虛擬機CPU上下文保護單元,用于保護與管理所述客體虛擬機的CPU上下文。
8.一種用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的方法,由可信計算基代理客體虛擬機執(zhí)行,所述方法包括在接收到用戶發(fā)送的客體虛擬機生命周期維護請求后,向所述用戶報告虛擬化計算平臺上的系統(tǒng)軟件裝載狀況,所述虛擬化計算平臺包括可信計算基、所述可信計算基代理客體虛擬機以及客體虛擬機;根據(jù)從所述用戶發(fā)送的用戶身份認證信息,對所述用戶進行身份認證; 在完成所述報告并且身份認證成功后,對與所述用戶通信的信道進行密碼學保護,建立雙向安全通信信道來與用戶進行雙向安全通信;在所述安全通信信道建立后,通知所述可信計算基基于用戶通過所述雙向安全通信信道提交的所述客體虛擬機生命周期維護請求,進行客體虛擬機生命周期管理,其中,所述可信計算基代理客體虛擬機是在與所述虛擬化計算平臺獨立的另一可信安全計算環(huán)境中創(chuàng)建的,并通過基于公鑰密碼學機制和可信第三方提供的認證機制建立的排他性私密安全通信信道傳遞到所述可信計算基,并且所述可信計算基代理客體虛擬機作為所述虛擬化計算平臺啟動后部署的特殊客體虛擬機運行來代理所述可信計算基為客戶端用戶提供服務。
9.如權利要求8所述的方法,其中,所述客體虛擬機生命周期維護請求包括客體虛擬機創(chuàng)建請求,以及所述通知所述可信計算基進行客體虛擬機生命周期管理的步驟包括 在建立起所述雙向安全通信信道后,通知所述可信計算基基于用戶通過所述雙向安全通信信道提交的客體虛擬機定制信息,為用戶創(chuàng)建客體虛擬機。
10.如權利要求8或9所述的方法,其中,所述客體虛擬機生命周期維護請求包括客體虛擬機啟動請求,以及所述通知所述可信計算基進行客體虛擬機生命周期管理的步驟包括 在建立起所述雙向安全通信信道后,通知所述可信計算基進行啟動狀態(tài)驗證,并且在啟動狀態(tài)驗證成功后啟動客體虛擬機,并為該客體虛擬機提供虛擬機內存保護以及虛擬機 CPU上下文保護。
11.如權利要求8或9所述的方法,其中,所述客體虛擬機生命周期維護請求包括客體虛擬機停機請求,以及所述通知所述可信計算基進行客體虛擬機生命周期管理的步驟包括 在建立起所述雙向安全通信信道后,通知所述可信計算基停止客體虛擬機的運行,并且為該客體虛擬機提供停機狀態(tài)保護。
12.如權利要求8或9所述的方法,其中,所述客體虛擬機生命周期維護請求包括客體虛擬機銷毀請求,以及所述通知所述可信計算基進行客體虛擬機生命周期管理的步驟包括 在建立所述雙向安全通信信道后,通知所述可信計算基銷毀客體虛擬機。
全文摘要
本發(fā)明提供一種用于提供虛擬化計算平臺上虛擬機全生命周期安全管理的系統(tǒng)及方法,該系統(tǒng)包括運行在虛擬化計算平臺的底層的可信計算基;以及運行在所述虛擬化計算平臺的客體虛擬機層的可信計算基代理客體虛擬機和一個或多個客體虛擬機。可信計算基代理客體虛擬機是在與虛擬化計算平臺獨立的另一可信安全計算環(huán)境中創(chuàng)建的,并通過基于公鑰密碼學機制和可信第三方提供的認證機制建立的排他性私密安全通信信道傳遞到可信計算基,并且可信計算基代理客體虛擬機作為虛擬化計算平臺啟動后部署的特殊客體虛擬機運行來代理可信計算基為客戶端用戶提供服務。利用上述系統(tǒng),可以抵抗甚至來自于數(shù)據(jù)中心內部系統(tǒng)管理員發(fā)起的攻擊。
文檔編號G06F21/00GK102332069SQ20111030066
公開日2012年1月25日 申請日期2011年9月29日 優(yōu)先權日2011年8月5日
發(fā)明者毛文波 申請人:道里云信息技術(北京)有限公司