鄭志蓉
(海軍計算技術研究所 北京 100841)
?
虛擬計算平臺可信平臺模塊構建技術研究*
鄭志蓉
(海軍計算技術研究所北京100841)
摘要對虛擬計算平臺的引導過程進行了分析,提出了可信平臺模塊虛擬構建和物理擴展構建的基本原理和流程??尚牌脚_模塊虛擬構建方式采用單一物理可信平臺模塊通過虛擬機管理器為虛擬機提供邏輯獨立的可信安全服務??尚牌脚_模塊物理構建方式采用多個物理可信平臺模塊為虛擬機提供物理獨立的可信安全服務。
關鍵詞可信平臺模塊; 虛擬計算平臺; 虛擬可信平臺模塊
Construction Technology of Trust Platform Module in the Virtual Computing Platform
ZHENG Zhirong
(Computer Technology Institute of Navy, Beijing100841)
AbstractThe boot way of the virtual computing platform is analyzed. The principle and the process of the virtual trust platform module and the real trust platform module construction are put forward. The virtual trust platform module gives logical service for every virtual machine using single real trust platform. The real trust platform module gives physical service for every virtual machine using many real trust platforms.
Key Wordstrust computing platform module, virtual trust computing platform, virtual trust computing platform module
Class NumberTP309.1
1引言
虛擬計算平臺[1]采用的虛擬化技術包括指令級虛擬化、硬件抽象級虛擬化和操作系統(tǒng)級虛擬化,目前研究最廣泛的虛擬化技術是硬件抽象級虛擬化。硬件抽象級虛擬化中的混合模式充分利用了操作系統(tǒng)已有的設備驅動實現虛擬機的設備模型,是一種高效和相對安全的虛擬化實現模式。
在虛擬計算平臺中構建可信平臺模塊(TPM)[2~8],充分利用虛擬化技術的優(yōu)勢,以TPM為信任根,建立信任鏈,保證虛擬機運行環(huán)境及其上層操作系統(tǒng)的完整性,能確保整個虛擬計算平臺的安全可信。
2虛擬計算平臺的引導過程
虛擬計算平臺加電后,BIOS會對機器的硬件設備進行加電自檢,BIOS初始化完成后為虛擬機管理程序(Hypervisor)提供變量相關、時間、喚醒、虛擬內存服務、重啟關機、時鐘、交換信息等硬件相關服務。隨后BIOS啟動Hypervisor和虛擬機主控制域(Domian0),Hypervisor負責虛擬機的執(zhí)行。Domain0控制物理I/O資源,并同時與其他運行于該平臺上的虛擬機交互[9~10]。
Domain 0啟動其它虛擬機用戶虛擬域(Domain U)。Domain0包含了兩個驅動,支持來自于其它虛擬機的網絡和本地磁盤請求。由于Hypervisor和Domin0先于用戶虛擬域操作系統(tǒng)(Guest OS)啟動,虛擬機系統(tǒng)中Guest OS是不能直接通過訪問BIOS來獲取啟動時所需要的硬件信息的。為了使Guest OS能夠得到BIOS提供的硬件信息,虛擬機系統(tǒng)通過啟動信息頁的方式向Guest OS提供硬件信息,使用共享信息頁用于在Guest OS運行過程中Hypervisor和Guest OS之間對CPU狀態(tài)相關的基本信息進行共享。虛擬BIOS被插入到每個Domain U中,確保操作系統(tǒng)收到所有標準的啟動指令[11]。
對每個虛擬機內存的初始化分配都是在該機創(chuàng)建的時候完成的,不同DomainU間內存分配是靜態(tài)完成的,保證了不同虛擬機之間內存空間的隔離。用戶虛擬機初始化時候根據其配置文件由Domain0分配管理屬于DomainU的虛擬塊設備。原生的虛擬磁盤驅動為操作系統(tǒng)提供了抽象的虛擬設備接口,塊設備虛擬化實現了基于前后端驅動模型的虛擬磁盤。前端驅動為客戶機操作系統(tǒng)提供虛擬磁盤設備抽象,后端驅動調用原生磁盤驅動與磁盤交互,相互間利用事件通道、共享內存進行異步通信和數據傳輸。同樣Domain0也管理分配DomainU對網絡資源的訪問。每個分配DomainU的虛擬網絡接口模擬了真實的網絡適配器。
在虛擬計算平臺下,操作系統(tǒng)和物理TPM的一一對應關系不再存在,虛擬TPM方構建和物理TPM擴展構建兩種技術思路能夠有效解決虛擬計算平臺的TPM共享和隔離問題。
3虛擬TPM構建
虛擬計算平臺中有一個物理TPM,使用虛擬化方法為每個需要TPM服務的虛擬機都創(chuàng)建一個vTPM實例,每個實例都需要提供類似于物理TPM所提供的服務。
虛擬TPM構建方式如圖1所示。
圖1 虛擬TPM構建方式
每個虛擬機有一個vTPM實例。vTPM管理器負責管理vTPM實例,并負責與物理TPM進行交互。虛擬機使用前后端驅動模型和vTPM交互。其中,前端驅動運行在需要訪問vTPM實例的虛擬機中,即VM#N;后端驅動運行在管理vTPM的虛擬機中,即VM#0。
在教學中,教師首先要對文本插圖進行深度研究,從中挖掘教學契機。人教版一年級《我們愛整潔》,這一節(jié)的內容旨在培養(yǎng)學生養(yǎng)成講衛(wèi)生、愛整潔的好習慣。教師首先利用多媒體出示整潔的桌面和不整潔的桌面,讓學生觀看并選擇出自己喜歡的桌面。學生自然選擇整潔的桌面,這時教師順勢導入新課。對整潔和不整潔有了初步認知后,教師讓學生回憶生活中見到的不整潔的例子,學生一時想不起來。這時,教師借助文本中的三幅插圖,讓學生說一說插圖中有哪些不整潔的現象。學生紛紛舉手回答?;卮鸾Y束后,教師引導學生思考:“這些不整潔的現象如何才能清除呢?你來幫幫他們吧,愛整潔的他們又會是什么樣子的呢?”學生紛紛出謀劃策。
vTPM必須滿足以下條件:
1) vTPM為在虛擬機中運行的操作系統(tǒng)提供與物理TPM同樣的使用模型和命令集。
2) vTPM維護著唯一的狀態(tài)信息和安全信息(如密鑰),虛擬機和其對應的vTPM實例之間的聯系必須在虛擬機的整個生命周期中都保持著。當虛擬機在休眠或遷移時,vTPM實例也隨著它所關聯的虛擬機而休眠和遷移。
vTPM管理器負責創(chuàng)建、保存、恢復和刪除vTPM實例。vTPM管理器需要維護一張記錄虛擬機及其vTPM實例間綁定的關系表,一個用于記錄虛擬機和vTPM實例間連接狀態(tài)的表,用于明確區(qū)分虛擬機是新創(chuàng)建的還是被喚醒的。在vTPM管理器中vTPM管理程序分別接受來自后端驅動、vTPM實例和vTPM管理器控制臺的命令或數據。在需要的時候,vTPM管理器還負責與物理TPM的交互。
虛擬機TPM驅動通過前后端驅動的方式實現的。虛擬機使用TPM功能,將通過前端驅動與后端驅動交互,后端驅動監(jiān)聽前端發(fā)送的請求,并與vTPM管理器進行交互,將請求發(fā)送對應的vTPM實例加以處理。前后端驅動的數據交換采取的方式是共享內存機制,通過事件通道產生中斷進行異步通知。前后端驅動具體數據交換過程如下。
1) 虛擬機中運行的應用程序向前端驅動發(fā)送TPM請求,前端驅動首先申請并初始化用于前后端共享數據的內存頁;然后將TPM請求數據復制到共享內存頁,并且通過授權的方式使得后端驅動有訪問共享頁的權限;最后使用事件通道產生中斷通知后端驅動獲取TPM請求。
2) 后端驅動接受到來自前端驅動的TPM請求后,從共享內存頁中讀出數據,復制到指定的緩存中;然后將其交到vTPM管理程序,vTPM管理程序根據附加的vTPM實例標識號分發(fā)到對應的vTPM實例中加以處理。
3) TPM命令處理完后,后端驅動從vTPM管理器接收到TPM響應,將其復制到共享內存頁,然后通過授權和中斷的方式通知對應的前端驅動獲取響應。
4) vTPM前端驅動接收到來自后端驅動的TPM響應后,從共享內存頁中讀出數據,復制到指定的寄存器中,最后將其交到提出TPM請求的應用程序中。
4密鑰結構
由于vTPM提供與物理TPM類似的安全功能、同樣的使用模型和命令集,可信虛擬平臺采用獨立的vTPM密鑰結構。在vTPM中,為每個vTPM實例創(chuàng)建一個獨立的密鑰層次結構,與物理TPM的密鑰層次結構分開。此時,平臺需要為每一個vTPM實例生成一個存儲根密鑰和背書密鑰。
· 背書密鑰(EK):每個TPM都配置唯一的一個EK,它存儲在TPM內部。EK最初由TPM芯片廠商創(chuàng)建,以后可以由平臺廠商和平臺擁有者重新創(chuàng)建。由于一個EK與唯一的一個平臺綁定,代表平臺的真實身份,并關系到整個系統(tǒng)的安全性,因此它從不用作數據加密和簽名,只執(zhí)行兩個操作:一是創(chuàng)建TPM平臺所有者;二是創(chuàng)建身份密鑰。
· 存儲根密鑰(SRK):SRK在TPM內部產生,一個TPM僅存在唯一一個SRK。它用于加密保護其他密鑰,是TPM密鑰樹中最高級密鑰。
· 身份密鑰(AIK):AIK是EK的代替物,它加密存儲在TPM外部。當要使用AIK時,再將它裝入TPM,解密后使用。AIK可以有多個,僅用于對TPM內部產生的數據(如PCR值等)進行簽名和驗證簽名,用來證明平臺的身份和平臺的環(huán)境配置。在平臺安全認證中,可使用AIK向遠程挑戰(zhàn)者提供平臺狀態(tài)的可信報告。
· 存儲密鑰(SK):用于對數據或其他密鑰進行加密的非對稱密鑰。
· 用戶密鑰:用戶用來完成某種安全功能的密鑰,如簽名密鑰(SIGK),綁定密鑰(BK),繼承密鑰(LK),鑒別密鑰(AK)。
單個平臺上,物理TPM密鑰管理分為內部密鑰管理和外部密鑰管理。在所有密鑰中,只有兩組密鑰對永久存儲在TPM內部,即EK和SRK。其他密鑰在不使用時加密后存儲在外部存儲設備中,需要時加載到TPM的保護區(qū)域。密鑰在外部是以一個樹形結構進行存儲的,其中樹的根節(jié)點是存儲根密鑰SRK,SRK是整個密鑰樹的可信根源。加密的原則是父密鑰對子密鑰加密。
獨立的密鑰層次結構使得vTPM實例密鑰的生成速度加快,并簡化了vTPM實例的遷移,也解決了由虛擬化產生的虛擬存儲密鑰、平臺身份密鑰的遷移問題。此方案有如下好處:
1) vTPM實例密鑰的生成速度非???因為密鑰的產生不再依賴于物理TPM;
2) 簡化了vTPM實例的遷移過程,每個vTPM實例都有自己的可信基密鑰、平臺身份密鑰、存儲密鑰,因此對于那些依賴存儲密鑰加密信息的TPM命令(如,遷移過程中的解封操作就需要用存儲密鑰進行加解密),在vTPM實例遷移后仍然能工作;
3) 確保了源平臺的安全性,因為vTPM實例密鑰結構的獨立性及物理平臺無關性,即便vTPM實例遷移到目的平臺,也不會泄漏源平臺的秘密信息和數據。
由于vTPM實例是以軟件形式存在的,它的所有內部狀態(tài)數據如EK、SRK、隱私數據、PCRs值等都是存放在外部磁盤中,因此,必須要確保這些狀態(tài)數據的安全性??梢杂袃煞N保護方式:一種是用物理TPM密鑰體系中的一個對稱密鑰加密這些數據,而這個對稱密鑰可以在平臺啟動時用物理TPM的PCR值進行密封,以對該密鑰實施更好的保護。當需要獲取該vTPM實例的狀態(tài)數據時,先要解封該密鑰,然后再用該密鑰解密磁盤中的vTPM實例的狀態(tài)數據。另一種方法是用一個授權口令密鑰對狀態(tài)數據進行加密,授權口令密鑰是受物理TPM保護的,這樣只有在授權的情況下,才能使用該密鑰解密磁盤中的狀態(tài)數據。
5物理TPM擴展構建
為了實現多個TPM的功能,除了上述用vTPM的方式實現解決方案,另一種解決方案是采用物理TPM擴展方案,如圖2所示。
圖2 物理TPM擴展方式
TPM管理器統(tǒng)一管理多個TPM。虛擬機VM#0是具有特權的虛擬機,是硬件的所有者,它擁有一個TPM,其他TPM分配給其他客戶虛擬機(VM#1~VM#N)使用。一個代理進程負責在服務端驅動和外部安全協處理器間傳遞TPM信息??蛻籼摂M機的TPM代碼和運行在特權虛擬機VM#0上TPM代碼的略有不同,主要的區(qū)別是兩者通過不同的傳輸接口接受TPM命令。
6結語
傳統(tǒng)可信平臺只有一個物理TPM芯片,操作系統(tǒng)和物理TPM之間是一對一的關系。然而,在虛擬環(huán)境下,允許多個操作系統(tǒng)在一個平臺上獨立運行,而且運行操作系統(tǒng)的虛擬機可以動態(tài)創(chuàng)建。在只有一個物理TPM的情況下,操作系統(tǒng)和物理TPM的一一對應關系不再存在。在此情況下,如何確保TPM的安全性,又讓TPM共享和隔離,提出了兩種解決方案:虛擬TPM方案和物理TPM擴展方案。
虛擬TPM和物理TPM擴展都能在虛擬計算平臺中作為信任根的構建方式,表1描述了上述實現方式與傳統(tǒng)TPM構建方式的效果比較。
表1 TPM構建方式效果比較
考慮到可實施性和實現效率性,虛擬TPM構建方式是虛擬計算平臺可信平臺模塊構建的一種有效方式。
參 考 文 獻
[1] Xen. Xen Virtualization[EB/OL]. 2014. [2014-09-01]. http://www.xen.org.
[2] Ahmad Ubaidah Omar. Trusted computer system: understanding and issues[EB/OL]. 2002. [2014-09-01]. http://www.ahmad_ubaidh_omar.net/trusted_computer_system_3819.html.
[3] Trusted Computing Group. TPM Main Part 1: Design Principles Specification Version 1.2[EB/OL]. 2006. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/tpm.
[4] Trusted Computing Group. TPM Main Part 2: TPM Structures Specification version l-2[EB/OL]. 2006. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/tpm.
[5] Trusted Computing Group. TPM Main Part 3: Commands Specification Version 1.2[EB/OL]. 2006. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/tpm.
[6] Trusted Computing Group. TCG Architecture Overview[EB/OL]. 2007. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/infrastructure.
[7] Trusted Computing Group. PC Client Work Group PC Client Specific TPM Interface Specification (TIS), Version 1.2[EB/OL]. 2007. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/pc_client.
[8] Trusted Computing Group. TCG PC Client Specific Implementation Specification For Conventional BIOS[EB/OL]. 2007. [2014-09-01]. https://www.Trustedcomputinggroup.org/developers/pc_client.
[9] Xen. Users Manual Xen v3.0[EB/OL]. 2008. [2014-09-01]. http://www.cl.cam.ac.uk/research/srg/netos/xen/readmes/user/user.html.
[10] Intel. Intel virtualization technology[EB/OL]. 2009. http://www.intel.com.
[11] 王麗娜,高漢軍,等.基于信任擴展的可信虛擬執(zhí)行環(huán)境構建方法研究[J].通信學報,2011(9):1-8.
中圖分類號TP309.1
DOI:10.3969/j.issn.1672-9730.2016.02.025
作者簡介:鄭志蓉,女,博士,高級工程師,研究方向:信息安全。
*收稿日期:2015年8月6日,修回日期:2015年9月24日