?

基于硬件虛擬化TCM的信任鏈擴展方法

2019-01-24 09:29劉明達拾以娟
小型微型計算機系統 2019年1期
關鍵詞:虛擬環境管理器度量

劉明達,周 懿,拾以娟

(江南計算技術研究所,江蘇 無錫 214083)

1 引 言

虛擬化是云計算的關鍵技術,其安全問題已經得到了廣泛的研究[1].可信計算與虛擬化的結合是其中一個重要的研究方向.建立一條從可信密碼模塊(Trusted Cryptography Module,TCM)到虛擬機的信任鏈,實現信任關系的傳遞,從而增強虛擬計算環境的安全性[2].

傳統可信虛擬架構中,虛擬信任根(Virtual Trusted Cryptography Module,vTCM)在軟件層實現,但是在安全性方面安全隔離性差,密碼資源缺乏硬件保護;在效率方面,軟算法性能不足,并且局限于低效的I/O虛擬化模型.

針對上述問題,本文團隊將硬件虛擬化技術SR-IOV與TCM虛擬化結合,提出了硬件虛擬化TCM的架構,在一個硬件之上實現物理信任根(Physical Trusted Cryptography Module,pTCM)和虛擬信任根[3].基于硬件虛擬化TCM,提出了一種新型的可信虛擬環境架構,并重點對核心密鑰結構進行描述,提出了“密鑰基礎種子、pTCM密鑰層、vTCM密鑰層、應用層密鑰”的四層密鑰結構.其結構如圖1所示.

經過分析表明,該思路安全高效,具有較高的可行性,能夠滿足特殊應用場景下對高安全可信虛擬環境的需求.

但是,針對信任鏈擴展這個核心問題,前期研究僅提出了大致思路,并未提出較為詳細的技術方案.傳統可信虛擬化架構下,信任鏈擴展的思路大致相同,主要分為兩個層面:1)pTCM到vTCM的擴展,此處vTCM是軟件實現的;2)vTCM到虛擬機的信任鏈.學術界和工業街對信任鏈傳遞能夠有效增強虛擬計算環境安全已經有了共識,目前主流的操作系統,如CentOs,RedHat均已支持這種信任鏈的傳遞機制.

圖1 可信虛擬環境Fig.1 Trusted virtual environment

王麗娜等[4]提出了虛擬環境下信任關系擴展的模型,作者指出,由于沒有硬件虛擬化的信任根,只能通過信任根軟虛擬的方式實現.余發江等[5]針對頻繁遷移的應用場景,在虛擬環境信任模型的基礎上,引入了時間令牌的機制,實現了一種動態的信任擴展方法.金鑫等[6]針對TPM-vTPM可信映射的缺陷,提引入了TPM和vTPM間的管理中心層,實現了一種松耦合的可信映射關系,但仍舊無法擺脫vTPM軟件化的缺陷.紀祥敏等[7]提出了云環境下靜態度量和動態度量結合的并行信任傳遞機制,將信任基有效擴展到復雜的用戶應用.常德顯等[8]對安全系統邏輯LS2進行擴展,形式化得驗證了信任鏈的正確性和信任傳遞的唯一性.

結合上述研究的思路,綜合硬件虛擬化TCM支持的可信虛擬環境的特點,本文提出了新型可信虛擬環境下,信任鏈擴展方法,對信任鏈的擴展的詳細過程進行了描述,構建了從pTCM到虛擬機的完整的信任關系,并提出了虛擬機與可信計算基綁定的方案.最后搭建了原型系統對核心功能進行測試,證明了方案切實有效,并具備可容忍的開銷.

2 信任鏈擴展

2.1 信任鏈擴展方法

將信任關系從pTCM擴展到整個計算平臺的過程,就是信任鏈的擴展.對虛擬環境而言,可信計算基(Trusted Computing Base,TCB)是可信虛擬環境構建的基礎,信任鏈擴展過程如圖2所示.

圖2 信任鏈的擴展Fig.2 Extension of trust chain

在本文的架構中,信任鏈的擴展可以分為三個主要層次:pTCM到TCB的信任鏈,TCB到虛擬機的信任鏈,vTCM到虛擬機的信任鏈.

2.1.1 pTCM到TCB的信任鏈

信任關系從TCM傳遞到物理運行環境的過程,也是TCB構建的過程.在國產可信計算的體系架構下,TCM是整個系統最先啟動的部分,芯片加電之后,首先依次對BIOS、Boot Loader進行度量,完成硬件平臺的可信引導;然后對操作系統內核、初始化進程、VMM、VM管理器、vTCM管理器等軟件層的部件進行可信度量,如果均安全可信的話,就證明了TCB整體的安全可信.這樣就建立了pTCM到TCB的信任鏈.虛擬機運行在TCB之上,TCB的安全是虛擬機安全的基礎.這一部分和傳統虛擬架構下的技術路線和設計思想基本一致.

2.1.2 TCB到虛擬機的信任鏈

虛擬機的啟動與物理計算機的啟動是不同的,虛擬機沒有具體的硬件環境,其本質上是一個鏡像文件,啟動過程是由特權域的虛擬機管理工具來控制完成,將分配虛擬資源的組件看作為虛擬機的BIOS.客觀而言,虛擬機真正根的實現過程應當如下:采用硬件虛擬化技術SR-IOV虛擬TCM,在虛擬機管理域中將vTCM分配給創建的虛擬機.在虛擬機啟動時,用vTCM對創建的虛擬機直接進行度量,虛擬機運行過程需要的密碼運算直接由vTCM完成.完成這些功能邏輯上都不需要pTCM參與,但是SR-IOV技術是能夠實現設備獨占的,vTCM一旦被虛擬機管理器分配給虛擬機,vTCM就會被虛擬機獨占.此時,物理機驅動層無法注冊這個vTCM,也就無法調用該虛擬化設備.只有在虛擬機管理器中將vTCM在虛擬機上卸載,物理機才能夠重新調用該vTCM,并且卸載過程必須在虛擬機關閉狀態下完成.vTCM本質上是分配給虛擬機的PCIe設備,而在虛擬內核啟動之前,虛擬機并不具備調用PCIe設備的能力.而物理機也無法啟動vTCM.如果要實現vTCM直接控制虛擬機啟動,需要進一步研究其他的技術路線,結合可信平臺控制模塊(Trusted Platform Control Module)TPCM的技術路線設計vTPCM,但是需要更大的工作量.

為了解決這一個計算機體系結構與可信需求的矛盾,在本文的方案中,虛擬機的啟動仍舊由pTCM進行控制.在系統啟動的時候,pTCM對虛擬BIOS,虛擬BootLoader和虛擬機系統的關鍵部件進行完整性度量,收集虛擬機啟動的度量信息,同時生成相關的日志文件,用vTCM公鑰加密存儲到pTCM與vTCM的共享存儲區中.

2.1.3 vTCM到虛擬機的信任鏈

在虛擬機完成系統啟動,虛擬操作系統內核加載完成,可以調用PCIe設備后,就要建立vTCM到虛擬機的信任鏈.其核心分為三個步驟,具體如下:

1.vTCM獲取可信度量信息

vTCM從共享存儲區中讀取度量信息和日志文件,也就是獲取pTCM控制虛擬機啟動過程中的可信度量信息.然后,將度量值寫入vPCR,共享存儲是硬件虛擬TCM特殊的設計,在2.2中進行描述.

2.vTCM驗證狀態信息

vTCM對度量信息進行驗證,判斷本次虛擬機是否處于可信的運行狀態,如果驗證通過,執行3(a)步驟.如果驗證不通過,證明系統不安全,則執行3(b)步驟.

假設虛擬機創建時處于可信的狀態,記錄其狀態的可信度量值作為可信狀態自檢的基礎值,加密后存儲在虛擬機的磁盤中.當虛擬機進行可信啟動之后,讀取基準值的明文,送入vTCM中解密,解密后的的值與vPCR寄存器的內容進行比對,判斷當前虛擬機的是否是可信啟動的,并生成一個可信狀態報告,向特權域報告.

3.完整信任鏈的建立

(a)虛擬機運行后,此時虛擬機能夠獲得vTCM的控制權,進而完成對虛擬機內核,初始進程以及應用程序的完整性度量,建立vTCM到虛擬機的信任鏈,并將相關度量值寫入vPCR.

(b)若虛擬機非可信啟動,則生成錯誤報告,通知特權域進行處理.

4.虛擬機運行過程中的可信度量

在建立了完整信任鏈以后,虛擬機進入工作模式.前面的部分屬于靜態度量的范疇,度量速度快,度量部件固定.而虛擬機運行后,需要選擇合適的模型進行動態度量,以獲得更加細粒度的可信服務.本文不對動態度量模型進行限制,因為此時vTCM被虛擬機獨占,能夠提供完整的高速的可信密碼支持.無論選擇何種動態度量模型,都是在此基礎之上建立.而動態度量模型[9,10]目前也有比較多的研究成果,根據實際需求選擇即可.

2.2 虛擬機與可信計算基綁定

在vTCM到虛擬機信任鏈的建立過程中,為了保證數據的安全性,涉及到一個重要的問題:pTCM與vTCM的數據交換.

由于虛擬機的部分度量信息是特權域控制生成的,需要實現數據交換的機制,將這些信息從pTCM傳遞到vTCM.在SR-IOV的體系規范中,并未對PF和VF的具體通信方法進行定義,目前主流的方案是信箱門鈴機制,其本質上是共享內存以及虛擬機管理器提供的事件通道.每一個VF都有一個獨立信箱(共享內存)和信箱寄存器.獨立信箱用于存儲雙方需要發送的數據,兩個寄存器用于同步PF和VF之間的消息.

但是本文的應用場景是特殊的.PF和VF之間進行交換的敏感信息時,如果采用信箱門鈴機制,這些信息通過虛擬機管理器的通道機制進行傳輸,會暴露在軟件層,帶來安全隱患.所以,必須建立一種更加安全的機制,使敏感數據數據能夠在設備內部進行交換.最簡單的實現思路是特權域將度量值直接寫入vTCM的存儲區域中,但這并不符合TCM只能被單個機器獨占的特性,并且需要特權域掌握每個vTCM內部存儲的地址,不符合虛擬機獨占安全設備的思想.為了增強安全性和降低實現難度,在本文的設計中,pTCM與vTCM在設備內部共享一塊專門用于數據交換的存儲區域.共享存儲和PCR映射的方式如圖3所示.

圖3 共享存儲與PCR映射Fig.3 Shared storage and PCR mapping

vTCM中的vPCR是一段連續的存儲區域,在邏輯上分為三個部分.其中,Part1是宿主機PCR的映射,代表了物理環境的可信狀態;Part2是特權域對虛擬機可信引導的度量值,由pTCM驅動寫入pTCM中,進而將物理機的PCR和VM1_PCR寫入共享存儲區中,具體度量內容根據安全需求靈活確定;Part3是虛擬機自身調用vTCM對其關鍵部件進行完整性度量的信息.為了節約存儲資源,共享存儲區能夠被所有的vTCM共用.數據傳遞時,將相關PCR和度量日志等信息封裝成一個數據包,并打上對應TCM的標簽,并且在寫入之前用對應vTCM的公鑰將其進行加密,以保證只能由合法的vTCM獲取明文信息,防止惡意虛擬機的竊取.

受到計算體系結構的限制,本文方案借助了pTCM的計算資源和存儲.但是虛擬機獲得了基于硬件的信任根可信支撐,并且vTCM到虛擬機的信任鏈是有效的.從3個方面進行論證:

1)物理機系統安全與否不影響pTCM的安全.在可信計算的最基本的安全假設中,信任根是可信的,這包括pTCM和vTCM,并且pTCM是最可信的部件.即使物理機處于非法的運行狀態,pTCM仍舊是可信的.若信任根不可信,則超越了可信計算的安全假設范疇.

2)pTCM和vTCM處于同等的安全狀態之下.位于同一顆芯片上的pTCM和vTCM同時出廠,同時注入根密鑰,由相同的CA中心進行證書簽發.并且在TCM的SOC系統中共享計算和存儲資源.所以,pTCM和vTCM安全等級相同,vTCM能夠相信pTCM的度量結論.

3)pTCM只提供計算支持,但不進行驗證.根據完整性度量證據判斷啟動狀態仍然是由vTCM完成,并且度量的基準值是由vTCM的密鑰加密保護的,pTCM無法進行修改.并且本文實現了從硬件芯片開始,結合設備直連技術,實現了從芯片直接到虛擬機的信任鏈傳遞模型,比傳統軟件模擬的虛擬信任根具有更高的安全性.

3 實驗與分析

3.1 原型測試

宿主機選擇浪潮英信服務器(NF5270M3);CPU:Intel E5-2620v2*2;宿主機操作系統:CentOS 7.1;虛擬機操作系統:Ubuntu;虛擬機管理器:KVM(CentOS集成);BIOS選項:開啟Intel VT-x和VT-d.虛擬化TCM原型基于Altera Stratix V FPGA實現,使用PCIe接口與系統集成,實現1個pTCM和3個vTCM.需要說明的是,由于工程量的問題,TCM原型僅實現了驗證本文思想的最基本功能,主要包括用于度量的哈希算法和用于交換數據的共享存儲,共享存儲的加密暫未實現.

3.1.1 啟動時間測試

對比虛擬機增加可信芯片時的啟動時間和虛擬機不配置可信芯片時的啟動時間,分別進行5次實驗取平均值,性能開

表1 虛擬機啟動時間測試
Table 1 Time of virtual machine starting

虛擬機VM1VM2VM3可信啟動24.2s25.8s26.2s正常啟動21.4s22.1s22.1s性能開銷13%16.7%15.6%

銷如表1所示.增加信任鏈機制后,系統性能開銷提高約15%,對于操作系統啟動而言,屬于一個可以忍受的范圍.

3.1.2 度量效率測試.

進一步測試vTCM到虛擬機應用程序的信任傳遞效率.以大小為430KB的運行程序為例,測試vTCM對應用程序的度量效率進行5次度量實驗,平均性能如表2所示.本文實現SHA1算法效率約為150MB/s,根據實驗結論,應用層的程序度量效率與算法效率基本相當.所以,本文的信任鏈模型帶來的系統開銷可容忍.

表2 度量效率測試
Table 2 Measurement efficiency test

虛擬機VM1VM2VM3第1次2.92ms3.1ms2.85ms第2次2.85ms3.07ms3.22ms第3次3.12ms2.99ms3.11ms第4次3.09ms2.87ms3.09ms第5次2.98ms2.90ms2.95ms平均2.99ms2.98ms3.04ms

3.1.3 PCR映射正確性測試

在三個虛擬機中查看PCR的度量值信息.需要說明的是,為了簡化實現,PCR的Part2部分直接對虛擬機整個鏡像進行度量.PCR[8]為KVM內核以及 vTCM 管理器的度量值,PCR[9]為虛擬機鏡像的度量值.結果如表3所示,可以看到PCR[8]反映的是物理機部件的完整性信息,三者都是相同的.而PCR[9]是各自虛擬機鏡像的度量值,是不同的.

表3 VM中部分PCR值
Table 3 Part of the PCR value in VM

虛擬機內容度量值VM1PRC[8]AEB58DE1BC97685F8BC6BFB0A614A8EF6903E318PCR[9]0B3490DE9839C3918E35F01AA8A05C9AE286FC94VM2PRC[8]AEB58DE1BC97685F8BC6BFB0A614A8EF6903E318PCR[9]7D79FDBD20602EC05438C3109961683A366B66E0VM3PRC[8]AEB58DE1BC97685F8BC6BFB0A614A8EF6903E318PCR[9]3A7CB1F2041FEE7C3C99C2AFC7F1BF60AC671C73

3.2 安全分析

本文提出了基于硬件虛擬化TCM的信任鏈擴展方法,安全性分析從兩個方面進行.

一方面,信任鏈擴展模型增強了虛擬環境的安全性.傳統虛擬環境中,虛擬信任根是軟實現的,本質上是硬件信任根的代理程序.對于虛擬機而言,密鑰雖然由TCM進行加密,但是仍舊保存在軟件層,在使用的時候存在泄露的風險.傳遞路徑越長,經過部件越多,信任的損耗就越嚴重.在本文方法中,虛擬機和硬件信任根緊密融合,在設備直連的情況下,信任關系從vTCM直接傳遞到虛擬機時,這是一種信任關系的強傳遞關系,這就大大增強了虛擬環境的安全性.

另一方面,本信任傳遞模型本身能夠有效傳遞信任關系,能夠有效抵抗攻擊者對信任鏈的惡意破壞.當信任鏈建立后,虛擬機能夠直接獲取硬件支持的密碼服務,其核心密鑰均能獲得硬件級別的保護.不僅能夠降低虛擬機之間的數據交叉,減少側信道攻擊平面;同時能夠在特權域或管理員不安全的時候,提供比較強的安全保護.

4 總 結

本文提出了基于硬件虛擬化TCM構建的可信虛擬環境下信任鏈擴展方法.對信任鏈的擴展的詳細過程進行了描述,構建了從pTCM到虛擬機的完整的信任關系,并提出了虛擬機與可信計算基綁定的方案.最后搭建了原型系統對核心功能進行測試,證明了方案切實有效,并具備可容忍的開銷.下一步將對信任鏈的傳遞問題展開研究.

猜你喜歡
虛擬環境管理器度量
鮑文慧《度量空間之一》
前庭刺激對虛擬環境三維空間定向的影響及與空間能力的相關關系
如何通過虛擬環境有效管理Python第三方庫
啟動Windows11任務管理器的幾種方法
應急狀態啟動磁盤管理器
突出知識本質 關注知識結構提升思維能力
度 量
三參數射影平坦芬斯勒度量的構造
動畫廣告設計中虛擬環境的構建方法與運用
用好Windows 10任務管理器
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合