(1.海軍計(jì)算技術(shù)研究所 北京 100841)(2.海司信息化部工程設(shè)計(jì)室 北京 100841)
虛擬化是一種將底層物理設(shè)備與上層操作系統(tǒng)、軟件分離的去耦合技術(shù),其本質(zhì)是針對(duì)用戶需求,高效組織計(jì)算資源,隔離具體的硬件體系結(jié)構(gòu)和軟件系統(tǒng)之間的緊密依賴關(guān)系,在動(dòng)態(tài)環(huán)境中按需構(gòu)建計(jì)算系統(tǒng)的虛擬映像。系統(tǒng)級(jí)虛擬化通過在計(jì)算機(jī)硬件和操作系統(tǒng)之間增加虛擬機(jī)管理器來解除二者之間的依賴[1]。
可信計(jì)算技術(shù)[2~7]是在計(jì)算和通信系統(tǒng)中廣泛使用基于硬件安全模塊支持下的可信計(jì)算平臺(tái),通過引入可信計(jì)算芯片和修改相應(yīng)的硬件、固件和軟件,以提高計(jì)算機(jī)系統(tǒng)整體的安全性。
虛擬機(jī)環(huán)境[8~9]作為特殊的一類計(jì)算機(jī)系統(tǒng),其體系結(jié)構(gòu)與傳統(tǒng)的計(jì)算機(jī)系統(tǒng)不同,虛擬機(jī)環(huán)境下的可信計(jì)算機(jī)制的應(yīng)用也與傳統(tǒng)計(jì)算機(jī)系統(tǒng)有所不同,這給研究人員提出了新的挑戰(zhàn)。本文重點(diǎn)研究可信計(jì)算技術(shù)在系統(tǒng)級(jí)虛擬化計(jì)算環(huán)境中的應(yīng)用。
可信計(jì)算技術(shù)的核心是解決系統(tǒng)的完整性問題,建立一條系統(tǒng)從開機(jī)到應(yīng)用啟動(dòng)的信任鏈,防止程序和重要數(shù)據(jù)被非法篡改。在運(yùn)用可信計(jì)算技術(shù)為虛擬計(jì)算環(huán)境提供可信服務(wù)方面,需重點(diǎn)解決以下三個(gè)問題。
1)信任鏈建立
傳統(tǒng)計(jì)算平臺(tái)基于可信平臺(tái)模塊開始建立信任鏈,按照可信平臺(tái)模塊、可信BIOS、主引導(dǎo)記錄、操作系統(tǒng)裝載器、操作系統(tǒng)內(nèi)核、服務(wù)應(yīng)用的順序,逐層進(jìn)行完整性驗(yàn)證并建立信任鏈。與傳統(tǒng)計(jì)算平臺(tái)不同,虛擬機(jī)環(huán)境下虛擬機(jī)管理器可以按需建立和關(guān)閉虛擬機(jī),虛擬機(jī)運(yùn)行的起點(diǎn)在虛擬機(jī)管理器而不是BIOS,傳統(tǒng)的單一靜態(tài)鏈?zhǔn)叫湃蝹鬟f關(guān)系已不能滿足虛擬計(jì)算平臺(tái)信任鏈建立的需求[10]。
2)虛擬可信平臺(tái)模塊
在傳統(tǒng)計(jì)算平臺(tái)上,用戶通過可信軟件棧和可信平臺(tái)模塊驅(qū)動(dòng)調(diào)用可信平臺(tái)模塊提供的可信服務(wù),其中可信軟件棧、可信平臺(tái)模塊驅(qū)動(dòng)和可信平臺(tái)模塊之間是一對(duì)一關(guān)系。然而,虛擬計(jì)算平臺(tái)多個(gè)虛擬機(jī)中的操作系統(tǒng)實(shí)例在同一虛擬化平臺(tái)上獨(dú)立運(yùn)行,考慮到硬件資源有限和效率問題,不可能為動(dòng)態(tài)創(chuàng)建的每個(gè)操作系統(tǒng)實(shí)例提供單獨(dú)的物理可信平臺(tái)模塊,因此需要構(gòu)建虛擬可信平臺(tái)模塊[11]解決虛擬計(jì)算環(huán)境下的可信服務(wù)問題。
3)可信服務(wù)遷移
虛擬計(jì)算平臺(tái)能夠?yàn)橛脩魟?chuàng)建一種可遷移、可重構(gòu)的使用環(huán)境,方便用戶重構(gòu)歷史操作的環(huán)境鏡像,無縫實(shí)現(xiàn)用戶操作狀態(tài)遷移。在可信服務(wù)遷移過程中,虛擬機(jī)上的操作系統(tǒng)和應(yīng)用環(huán)境可在不影響應(yīng)用程序執(zhí)行的情況下遷移到新的硬件環(huán)境中,這就需要解決如何將相應(yīng)的可信平臺(tái)模塊及服務(wù)安全地隨著應(yīng)用環(huán)境遷移的問題。
系統(tǒng)級(jí)虛擬化的核心是虛擬機(jī)管理器。一般來說,虛擬機(jī)管理器有監(jiān)控模式、主機(jī)模式和混合模式三種實(shí)現(xiàn)方式。
監(jiān)控模式下虛擬機(jī)管理器直接運(yùn)行在宿主計(jì)算機(jī)的物理平臺(tái)上,位于處理器的最高特權(quán)級(jí),所有的虛擬機(jī)則運(yùn)行在較低的特權(quán)級(jí)。主機(jī)模式下虛擬機(jī)管理器運(yùn)行在操作系統(tǒng)上,虛擬機(jī)管理器可以充分利用宿主操作系統(tǒng)所提供的設(shè)備驅(qū)動(dòng)和底層服務(wù),但宿主操作系統(tǒng)的介入可能會(huì)導(dǎo)致系統(tǒng)性能損失。混合模式集成了監(jiān)控模式和主機(jī)模式的優(yōu)點(diǎn),既可以利用主機(jī)操作系統(tǒng)的現(xiàn)成設(shè)備驅(qū)動(dòng)實(shí)現(xiàn)虛擬機(jī)的設(shè)備使用模型,又不會(huì)丟失監(jiān)控模式的高效率?;旌夏J降牡湫痛硎怯鴦虼髮W(xué)開發(fā)的Xen虛擬機(jī)??尚庞?jì)算虛擬計(jì)算環(huán)境應(yīng)用框架基于混合模式系統(tǒng)虛擬平臺(tái)架構(gòu)實(shí)現(xiàn)如圖1所示。
圖1 可信計(jì)算虛擬化計(jì)算環(huán)境應(yīng)用結(jié)構(gòu)框架
構(gòu)成可信計(jì)算虛擬化計(jì)算環(huán)境應(yīng)用框架的實(shí)體包括物理可信平臺(tái)模塊(Trusted Platform Module,TPM)、可信BIOS、虛擬機(jī)管理器、可信系統(tǒng)軟件、前端虛擬TPM 驅(qū)動(dòng)、后端驅(qū)動(dòng)、虛擬TPM 管理器、虛擬TPM 實(shí)例和TPM 驅(qū)動(dòng)。
物理TPM 是整個(gè)系統(tǒng)的信任根,同時(shí)為特權(quán)虛擬機(jī)(運(yùn)行于處理器最高特權(quán)級(jí)即VM#0)提供服務(wù)。
在啟動(dòng)過程中可信BIOS完成對(duì)硬件、虛擬機(jī)管理器、特權(quán)虛擬機(jī)的完整性度量。
虛擬機(jī)管理器完成對(duì)各個(gè)虛擬機(jī)中虛擬機(jī)裝載器、可信系統(tǒng)軟件和操作系統(tǒng)內(nèi)核文件的完整性度量。
可信系統(tǒng)軟件為各虛擬機(jī)提供可信運(yùn)行控制等服務(wù)。
前端虛擬TPM 驅(qū)動(dòng)與后端驅(qū)動(dòng)通信傳遞可信服務(wù)命令。
虛擬TPM 管理器維護(hù)虛擬TPM 實(shí)例,接收后端驅(qū)動(dòng)發(fā)送的命令傳遞到相應(yīng)的虛擬TPM 實(shí)例中,必要時(shí)通過TPM 驅(qū)動(dòng)調(diào)用物理TPM 提供的服務(wù)。
虛擬TPM 實(shí)例對(duì)應(yīng)相應(yīng)的虛擬機(jī),為虛擬機(jī)提供可信服務(wù)。
TPM 驅(qū)動(dòng)對(duì)應(yīng)于物理TPM,與物理TPM 通信傳遞相應(yīng)的可信服務(wù)命令。
針對(duì)系統(tǒng)級(jí)可信計(jì)算虛擬化計(jì)算環(huán)境應(yīng)用結(jié)構(gòu)框架的特點(diǎn),需要部署的關(guān)鍵技術(shù)包括:虛擬機(jī)可信計(jì)算服務(wù)實(shí)現(xiàn)、信任鏈傳遞和虛擬可信平臺(tái)模塊實(shí)例的遷移技術(shù)。本節(jié)詳細(xì)說明以上關(guān)鍵技術(shù)。
在可信虛擬平臺(tái)架構(gòu)中,一個(gè)平臺(tái)只有一個(gè)物理TPM,但有多個(gè)虛擬機(jī),需要為每個(gè)虛擬機(jī)創(chuàng)建一個(gè)虛擬TPM 實(shí)例。虛擬機(jī)使用前端虛擬TPM 驅(qū)動(dòng)和虛擬TPM實(shí)例交互。其中,前端TPM 驅(qū)動(dòng)運(yùn)行在需要訪問虛擬TPM 實(shí)例的虛擬機(jī)中,即VM#N;后端驅(qū)動(dòng)運(yùn)行在具有特權(quán)的虛擬機(jī)VM#0中。
虛擬TPM 管理器負(fù)責(zé)創(chuàng)建、保存、恢復(fù)和刪除虛擬TPM 實(shí)例。虛擬TPM 管理器分別接受來自后端驅(qū)動(dòng)、虛擬TPM 實(shí)例和虛擬TPM 管理器控制臺(tái)的命令或數(shù)據(jù)。必要時(shí)虛擬TPM 管理器負(fù)責(zé)與物理TPM 的交互。
虛擬機(jī)可信計(jì)算服務(wù)由虛擬TPM 實(shí)例直接面向虛擬機(jī)提供服務(wù),每個(gè)虛擬TPM 實(shí)例中存儲(chǔ)與虛擬機(jī)對(duì)應(yīng)的密鑰、完整性度量值、完整性度量日志等資源,并提供相應(yīng)的可信計(jì)算服務(wù)。
物理TPM 完成以下三個(gè)功能。1)對(duì)應(yīng)管理特權(quán)域,為管理特權(quán)域提供可信計(jì)算服務(wù);2)虛擬TPM 實(shí)例資源的保護(hù)。利用物理TPM,保護(hù)存放在計(jì)算存儲(chǔ)介質(zhì)虛擬TPM 實(shí)例資源,保護(hù)密鑰存放于物理TPM 內(nèi);3)虛擬TPM 實(shí)例真實(shí)性證明。在遠(yuǎn)程證明過程中,遠(yuǎn)程挑戰(zhàn)者為了確保虛擬機(jī)管理器不能修改虛擬機(jī)行為和認(rèn)證報(bào)告,可再次驗(yàn)證虛擬TPM 實(shí)例的運(yùn)行環(huán)境是可信的。挑戰(zhàn)者除了驗(yàn)證虛擬平臺(tái)實(shí)例對(duì)PCR 的簽名外,還需驗(yàn)證物理TPM 對(duì)PCR 的簽名,從而驗(yàn)證虛擬機(jī)和物理平臺(tái)的整體安全性。
由于虛擬TPM 實(shí)例運(yùn)行于特權(quán)管理域中,特權(quán)管理域必須提供安全性保證,保證每個(gè)虛擬TPM 實(shí)例中的資源不被非授權(quán)修改和竊取。
傳統(tǒng)可信計(jì)算平臺(tái)信任鏈的建立是基于物理TPM 或BIOS實(shí)現(xiàn)的,從信任根代碼開始運(yùn)行,在信任當(dāng)前部件的前提下,對(duì)下一個(gè)將要執(zhí)行的部件進(jìn)行度量,確定下個(gè)部件可信后將控制權(quán)轉(zhuǎn)交給它。啟動(dòng)過程通過“先度量,后執(zhí)行”的方式運(yùn)行,建立起信任鏈。
由于運(yùn)行在虛擬機(jī)管理器之上的虛擬機(jī)可以多次重啟和關(guān)閉,信任鏈傳遞演變成“樹型”結(jié)構(gòu)。虛擬機(jī)管理器作為啟動(dòng)后相對(duì)固定的度量根,度量虛擬機(jī)啟動(dòng)過程的完整性,因此虛擬機(jī)管理器自身完整性顯得尤為重要。
由于虛擬機(jī)頻繁遷移,可信虛擬平臺(tái)在虛擬機(jī)遷移過程中如何保證其安全性是一個(gè)關(guān)鍵問題。傳統(tǒng)的可信度量根是與物理平臺(tái)進(jìn)行綁定的,不能移動(dòng)到另一個(gè)平臺(tái)上。在虛擬平臺(tái)中,虛擬機(jī)的可信度量根(即虛擬TPM)沒有與物理平臺(tái)進(jìn)行綁定,這樣虛擬TPM 就可以被復(fù)制、遷移或刪除。為了防止虛擬環(huán)境下未授權(quán)的虛擬可信度量根的復(fù)制、遷移或刪除,需要采取如下措施。
首先,遠(yuǎn)程挑戰(zhàn)者需要對(duì)虛擬機(jī)進(jìn)行安全認(rèn)證(類似于平臺(tái)安全認(rèn)證),同時(shí)希望評(píng)估虛擬機(jī)遷移的可能性和可以遷移的新主機(jī)平臺(tái)。遠(yuǎn)程挑戰(zhàn)者不僅需要認(rèn)證虛擬機(jī)和虛擬機(jī)管理器,而且需要認(rèn)證其遷移組件和遷移控制器。
在確定遷移控制器運(yùn)行在可信的配置上后,遠(yuǎn)程挑戰(zhàn)者獲取虛擬機(jī)的遷移策略。遷移策略主要包括以下幾個(gè)方面:對(duì)目標(biāo)物理平臺(tái)的要求,包括可信平臺(tái)模塊廠商、可信平臺(tái)模塊版本號(hào)等;對(duì)目標(biāo)虛擬平臺(tái)的要求,如虛擬機(jī)管理器廠商、虛擬機(jī)管理器版本號(hào)、虛擬機(jī)管理器架構(gòu)等;對(duì)系統(tǒng)架構(gòu)的一些要求,如目標(biāo)平臺(tái)安全級(jí)別不能低于當(dāng)前平臺(tái);目標(biāo)平臺(tái)和當(dāng)前平臺(tái)擁有者相同。
當(dāng)遷移控制器決定需要移動(dòng)一個(gè)虛擬機(jī),遷移管理員通知遷移系統(tǒng)遷移事件發(fā)生。具體遷移步驟包括:首先掛起虛擬機(jī);然后將虛擬機(jī)的狀態(tài)進(jìn)行打包存儲(chǔ);接下來創(chuàng)建遷移會(huì)話;之后傳輸虛擬機(jī)狀態(tài)包;最后刪除虛擬機(jī)。
由于一個(gè)虛擬可信平臺(tái)模塊包含了虛擬機(jī)的許多秘密信息,所以在遷移過程中,虛擬可信平臺(tái)模塊必須被嚴(yán)格保護(hù),進(jìn)而保證這些信息只對(duì)授權(quán)實(shí)體可見。從源平臺(tái)到目標(biāo)平臺(tái),虛擬機(jī)狀態(tài)包的遷移,必須在安全的遷移傳輸協(xié)議下進(jìn)行。
虛擬機(jī)環(huán)境作為特殊的一類計(jì)算機(jī)系統(tǒng),其體系結(jié)構(gòu)與傳統(tǒng)的計(jì)算機(jī)系統(tǒng)不同,虛擬機(jī)環(huán)境下的可信計(jì)算機(jī)制的應(yīng)用也與傳統(tǒng)計(jì)算機(jī)系統(tǒng)有所不同。在虛擬化環(huán)境下建立可信計(jì)算環(huán)境面臨虛擬環(huán)境下信任鏈建立、虛擬可信平臺(tái)模塊管理和可信服務(wù)遷移等問題。針對(duì)系統(tǒng)級(jí)可信計(jì)算虛擬化計(jì)算環(huán)境應(yīng)用結(jié)構(gòu)框架的特點(diǎn),需要重點(diǎn)突破虛擬機(jī)可信計(jì)算服務(wù)實(shí)現(xiàn)、信任鏈傳遞、虛擬可信平臺(tái)模塊實(shí)例的遷移等關(guān)鍵技術(shù)。
[1]鄭緯民.虛擬機(jī)監(jiān)視器的運(yùn)行層次與實(shí)現(xiàn)技術(shù)[J].中國計(jì)算機(jī)學(xué)會(huì)通訊,2008,4(4):42-48.
[2]Trusted Computing Group.TPM Main Part 1:Design Principles Specification Version 1.2[EB/OL].2006.[2013-04-07].https://www.Trusted computinggroup.org/developers/tpm.
[3]Trusted Computing Group.TPM Main Part 2:TPM Structures Specification version l-2[EB/OL].2006.[2013-04-07].https://www.Trusted computinggroup.org/developers/tpm.
[4]Trusted Computing Group.TPM Main Part 3:Commands Specification Version 1.2[EB/OL].2006.[2013-04-07].https://www.Trustedcomputinggroup.org/developers/tpm.
[5]Trusted Computing Group.TCG Architecture Overview[EB/OL].2007.[2013-04-07].https://www.Trustedcomputinggroup.org/developers/infrastructure.
[6]Trusted Computing Group.PC Client Work Group PC Client Specific TPM Interface Specification(TIS),Version 1.2[EB/OL].2007.[2013-04-07].https://www.Trustedcomputinggroup.org/developers/pc_client.
[7]Trusted Computing Group.TCG PC Client Specific Implementation Specification For Conventional BIOS[EB/OL].2007.[2013-04-07].https://www.Trustedcomputinggroup.org/developers/pc_client.
[8]Intel virtualization Technology http://www.intel.com/technology/virtulization/index.htm.
[9]AMD.AMD Virtualization [EB/OL].http://www.amd.com/virtualization,2013-04-07.
[10]Trusted Computing Group.Virtualized Trusted Platform Architecture Specification[EB/OL].http://www.trustedcomputinggroup.org/resources/virtualized_trusted_platform_architecture_specification,2013-04-07.
[11]IBM.vTPM:Virtualizing the Trusted Platform Module[EB/OL].http://domino.research.ibm.com/library/cyberdig.nsf/1e4115aea78b6e7c85256b360066f0d4/a0163fff5b1a61fe85 257178004eee39.2013-04-07.