999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于標簽的vTPM私密信息保護方案

2018-12-19 07:11:32陳興蜀王偉金鑫
通信學報 2018年11期
關鍵詞:信息

陳興蜀,王偉,金鑫

?

基于標簽的vTPM私密信息保護方案

陳興蜀1,2,王偉1,3,金鑫1,3

(1. 四川大學網絡空間安全研究院,四川 成都 610065; 2. 四川大學網絡空間安全學院,四川 成都 610065;3. 四川大學計算機學院,四川 成都 610065)

虛擬可信平臺模塊是可信計算技術虛擬化的重要組件。vTPM的私密信息存在被竊取、濫用的風險,為此,提出一種基于標簽的安全保護方案。首先,為每個虛擬機建立vTPM標簽,標簽包括簽名信息、加密信息、度量信息和狀態信息。然后,基于vTPM標簽的狀態信息設計安全增強的vTPM動態遷移協議,保障遷移前后vTPM私密信息的機密性、完整性以及虛擬機與vTPM實例關聯關系的一致性。實驗表明,所提方案能夠有效保護vTPM的私密信息,并且給虛擬機動態遷移帶來的性能開銷只有19.36%。

可信計算;虛擬可信平臺模塊;TPM2.0;動態遷移

1 引言

虛擬化平臺Xen、開源的系統虛擬化模塊(KVM, kernel-based virtual machine)都有虛擬可信平臺模塊(vTPM, virtual trusted platform module)的實現方案,兩者均涉及TPM(trusted platform module)非易失性信息的模擬。由于TPM的非易失性信息存儲了背書密鑰(EK, endorsement key)等非對稱密鑰、訪問口令等私密信息,因此本文將vTPM的非易失性信息稱為vTPM的私密信息。

vTPM私密信息面臨的威脅主要表現在其機密性、完整性以及vTPM和虛擬機(VM, virtual machine)之間的關聯關系上。文獻[1]在Xen上采用設備驅動分離的方式實現vTPM,每個vTPM實例的私密信息存儲于根vTPM實例中,利用根vTPM實例的存儲密鑰對其進行加密存儲。Hypervisor維護了vTPM和虛擬機的關聯列表,該vTPM-VM列表最終存放于domain0中,需要進一步的安全防護。文獻[2]利用事務性同步擴展技術(TSX, transactional synchronization extension)對vTPM的私密信息進行安全防護,利用硬件CPU相關的AES主密鑰進行加解密,由于該密鑰不能被遷移,因此該方法不支持vTPM遷移。文獻[3]借助于Intel的軟件防護擴展技術(SGX, software guard extension)將vTPM的代碼和數據存放到安全內存enclave中,利用基于enclave身份的密封機制加密存儲vTPM私密信息,然而密封的數據不能被遷移到較新版本的應用或安全區中,不存在一種vTPM版本更新機制。文獻[4]使用物理TPM2.0的可遷移密鑰加密存儲vTPM私密信息,基于可遷移密鑰的復制機制實現了vTPM的安全遷移,但無法識別虛擬機配置為“vm_1_uuid,vm_2_鏡像,vm_1_vTPM”下虛擬機1的vTPM私密信息被虛擬機2使用的情況。文獻[5]建立管理中心維護vTPM和虛擬機的關聯關系,建立vTPM實例文件的度量列表保證虛擬機關閉時vTPM私密信息的完整性,但無法保證虛擬機運行時vTPM私密信息的完整性。以上文獻都沒有提及虛擬機動態遷移中如何保護vTPM私密信息的安全。文獻[6]提出一種基于KVM的vTPM動態遷移方案,但該方案只適用于配置共享存儲的情況,而且沒有關注遷移過程中vTPM的安全問題。文獻[7]利用SGX技術的遠程認證機制建立安全遷移信道,實現虛擬機(包括vTPM)的安全動態遷移,但是需要修改vTPM的源碼結構,改變了原本遷移雙方的信息交互方式。文獻[8-9]在遷移協議中加入新的安全驗證與密鑰生成機制,增強vTPM動態遷移的安全。文獻[10]提出一種位于TPM和vTPM之間的密鑰層次來解決Xen上虛擬機遷移造成的vTPM密鑰失效的問題,該方案僅適用于暫停?遷移?重啟的遷移模式,這種遷移模式不是真正意義上的動態遷移。

本文針對本地存儲和動態遷移兩個階段提出一種新的vTPM私密信息保護方案,主要貢獻如下:1) 提出vTPM標簽結構,利用物理TPM2.0保護vTPM私密信息的機密性、完整性以及vTPM和虛擬機的對應關系;2) 基于vTPM標簽的狀態屬性,在不改變遷移雙方信息交互方式的情況下,設計了安全增強的vTPM動態遷移協議;3) 實現了原型系統,并進行了功能和性能測試。

2 背景知識

2.1 KVM虛擬化平臺的全虛擬化TPM

KVM虛擬化平臺的TPM虛擬化技術主要有3類:TPM passthrough實現方式、基于libtpms[11]的全虛擬化TPM實現方式以及CUSE(character device in userspace)TPM[12]實現方式,其中,后兩者屬于全虛擬化TPM的實現方式。TPM passthrough實現方式允許虛擬機直接使用物理TPM,同一時刻物理TPM被單個虛擬機獨占。基于libtpms的全虛擬化TPM(如圖1(a)所示)在QEMU(quick emulator)內部使用libtpms函數庫模擬物理TPM,可同時為每個虛擬機提供單獨的vTPM設備,與物理TPM完全脫離關系。CUSE TPM(如圖1(b)所示)是基于libtpms的全虛擬化TPM的變種,在QEMU外部使用libtpms函數庫來模擬物理TPM,在宿主機上創建用戶空間字符設備/dev/vtpm0,提供IOCTL訪問接口,在QEMU內部的CUSE TPM驅動利用該IOCTL訪問vTPM,與物理TPM完全脫離關系。

圖1 全虛擬化TPM

KVM虛擬化平臺的全虛擬化TPM有如下不足:1) 采用libtpms函數庫模擬物理TPM的全部功能,與物理TPM完全脫離關系;2) 將vTPM私密信息存儲在宿主機文件非易失存儲器(NVRAM, non-volatile RAM)中,沒有添加任何安全措施;3)通過QEMU的命令行參數加載對應的vTPM實例,vTPM和VM之間的關聯關系薄弱。

2.2 TPM2.0的密鑰結構

TPM2.0中包含3個持久性密鑰層次[13],即背書層次(endorsement hierarchy)、存儲層次(storage hierarchy)和平臺層次(platform hierarchy),與一個臨時性密鑰,即層次?空層次(NULL hierarchy)。每個密鑰層次對應一個私有種子,即大隨機數。背書私有種子(EPS, endorsement primary seed)產生背書密鑰(EK, endorsement keys),存儲私有種子(SPS, storage primary seed)產生存儲根密鑰(SRK, storage root keys),平臺私有種子(PPS, platform primary seed)由平臺固件使用,空私有種子(NS, NULL seed)是每次系統重啟時產生的隨機數。

本文將TPM2.0存儲根密鑰的兩個非對稱的不可遷移子密鑰——RSA_local和RSA_mig,分別用于本地存儲和動態遷移過程中的vTPM私密信息保護,如圖2所示。另外,RSA_mig需要被CA簽名,形成對應的數字證書,用于vTPM動態遷移安全增強。

圖2 TPM2.0密鑰層次結構

3 方案設計

3.1 設計原則

文獻[2,14-16]在vTPM與虛擬機的關聯關系、vTPM與其可信計算基(TCB, trusted computing base)[17]的依賴關系、vTPM私密信息存儲、基于證書的信任鏈擴展、vTPM的密鑰管理、vTPM的遷移等6個方面對vTPM的實現提出了安全要求。

結合上述文獻中的安全要求,本文認為KVM下的vTPM私密信息保護應該滿足以下3點設計原則需求:1) vTPM私密信息在本地存儲時的機密性、完整性由硬件TPM保證;2) vTPM和虛擬機保持一一對應的強關聯關系;3) vTPM支持動態遷移,并且遷移不會破壞以上兩種安全需求。

3.2 vTPM標簽

vTPM標簽(vTPM_label)是本文提出的一種數據結構,是vTPM私密信息本地存儲保護方案和動態遷移保護方案的核心元素。vTPM標簽的結構類似于數字證書,其完整性受硬件TPM2.0的簽名保護。vTPM標簽結構及大小如圖3所示。

圖3 vTPM標簽結構

vTPM標簽主要內容描述如下。

1) 狀態(status):vTPM標簽有兩種存在狀態,即本地狀態和遷移狀態;2) 有效期(time):在時間段[start,end]內vTPM標簽是有效的,過期的vTPM標簽需要被重新生成;3) 加密信息(secret):vTPM私密信息保護所使用key的密文,利用物理TPM的密鑰RSA_local對key進行加密;4) UUID(universally unique identifier)的hash值(uuid_hash):UUID是虛擬機在云平臺中的唯一標識,UUID的hash值建立了vTPM標簽與虛擬機之間的一一對應關系,同時secret字段建立了vTPM標簽和vTPM之間的一一對應關系,最終建立起vTPM和虛擬機之間的一一對應關系;5) QEMU度量值(qemu_ digest):在KVM虛擬化平臺中,QEMU是虛擬機監控器(VMM, virtual machine monitor)的一部分,同時也是vTPM實例的訪問者,該字段是對QEMU代碼段進行散列運算得到的值,作為vTPM實例的訪問者身份認證的證據,防止被篡改劫持的QEMU或其他惡意程序使用vTPM實例;6) 簽名算法(alg):標簽簽名值的生成算法;7) 標簽的簽名值(sig):由TPM2.0的密鑰RSA_local對以上字段進行簽名得到的值,防止標簽被惡意篡改。

vTPM標簽存在兩種狀態:本地狀態和遷移狀態。其中,遷移狀態是一種臨時狀態,只出現在遷移的過程中。

本地狀態是指該vTPM標簽的sig字段由本地TPM2.0的密鑰RSA_local生成,標簽中的secret字段由本地TPM2.0密鑰RSA_local加密,即vTPM_label.sig=RSA_local.privsign(vTPM_label),vTPM_label.secret= RSA_local.pubencrypt(key)。

遷移狀態是指該vTPM標簽的sig字段由遷移源主機TPM2.0的密鑰RSA_mig生成,標簽中的secret字段由遷移目的主機TPM2.0的密鑰RSA _mig加密,即vTPM_label.sig=src.RSA_mig.privsign(vTPM_label),vTPM_label.secret=dst.RSA_mig. pubencrypt(key)。

其中,src、dst分別代表遷移源主機和遷移目的主機,pub和priv分別表示公鑰和私鑰。由于vTPM標簽兩種狀態之間可以轉換,此處給出vTPM標簽狀態的轉換函數exchange(vTPM_label)的偽代碼,如算法1所示。

算法1 vTPM標簽狀態的轉換函數exchange (vTPM_label)

輸入 vTPM_label

輸出 succ或者fail

if vTPM_label.status==本地狀態 then:

if RSA_ local. pubverify(vTPM_label.sig) == succ then:

KEY = RSA_local. Pubdecrypt(vTPM_label. secret)

vTPM_label.secret = dst.RSA_mig.pubencrypt(KEY)

vTPM_label.sig = local.RSA_mig.privsign(vTPM _label)

vTPM_label.status = 遷移狀態

return succ

else if vTPM_label.status = 遷移狀態 then

if src.RSA_mig. pubverify(vTPM_label.sig)== succ then

KEY = local RSA_mig.privdecrypt(vTPM_ label. secret)

vTPM_label.secret= RSA_local.pubencrypt(KEY)

vTPM_label.sig = RSA_local. privsign(vTPM _label)

vTPM_label.status = 本地狀態

return succ

return fail

由于一臺物理機可以運行多個虛擬機,如果每個虛擬機對應一個vTPM實例,便會有多個vTPM標簽需要管理。為了減小由vTPM標簽存儲與管理帶來的復雜性和攻擊面,本文方案將vTPM標簽存儲于對應的虛擬機鏡像中,在減小管理復雜度的同時也增加了vTPM和VM之間的關聯強度。

QCOW2(QEMU copy on write version 2)[18]是QEMU模擬器官方支持的虛擬機鏡像文件格式。一個QCOW2文件被劃分為固定大小的塊,這些固定大小的塊被稱為cluster,每個cluster的大小必須在512 B~2 MB之間,而且必須是512 B的整數倍,默認的cluster大小為64 kB。其中,QCOW2文件的第一個cluster用于存儲頭部信息和頭部擴展信息,如圖4所示。QCOW2的頭部信息占據72 B,緊隨其后的是頭部擴展信息。每個頭部拓展包含3個字段:type、length、data,其中,type字段和length字段各占據4 B,data字段的長度由length字段指定,type=0x00000000是頭部擴展的結束標志。本文構造一個QCOW2的頭部擴展{0x12345678, 368, vTPM標簽+padding},用來存儲vTPM標簽,因為頭部擴展是8 B對齊的,于是通過填充0x00擴展vTPM標簽為8 B的整數倍。

圖4 QCOW2的第一個cluster

3.3 本地存儲保護方案

3.3.1 總體設計

針對vTPM在本地存儲上的安全問題,本文設計了vTPM私密信息本地存儲保護方案。方案包括3個組件:本地存儲保護代理、vTPM標簽、本地存儲保護內核部分,如圖5所示。

本地存儲保護代理位于QEMU進程空間內部,針對vTPM私密信息的機密性、完整性進行實時的保護,最終將vTPM私密信息加密存儲在非易失性隨機訪問存儲(NVRAM, non-volatile RAM)文件中,所需要的key在虛擬機啟動時向本地存儲保護內核部分請求。

vTPM標簽是上文所述的一種數據結構,受控于內核中的vTPM標簽管理子模塊。

本地存儲保護內核部分包括4個子模塊:vTPM標簽管理模塊、vTPM訪問控制模塊、對應關系檢測模塊和TPM命令管理模塊。vTPM標簽管理子模塊提供vTPM標簽的生成、完整性和有效期驗證、更新和銷毀等功能。vTPM訪問控制子模塊根據vTPM標簽的qemu_digest字段檢測訪問者是否合法,因此,當本地存儲保護代理請求key時,它是第一個接收訪問請求的子模塊。對應關系檢測子模塊根據vTPM標簽中的“UUID”字段檢測訪問者是否為該標簽對應的虛擬機。TPM命令管理子模塊向vTPM標簽管理子模塊提供TPM2.0的各種服務,尤其是密鑰RSA_local和RSA_mig的加解密、簽名、驗證等功能。

另外,tpm_crb(TPM2.0 command response buffer)[19]是TPM2.0在內核中的驅動程序。用戶層TCG軟件棧(TSS, TCG software stack)通過該驅動操作TPM2.0,使TPM命令管理子模塊對tpm_crb驅動向上層TSS提供的IOCTL接口進行掛鉤,截取TSS發送給tpm_crb的TPM命令,按照一定的規則對部分TPM命令進行過濾,防止管理員的誤操作,保護本文方案所使用的物理TPM密鑰的安全。

圖5 本地存儲保護方案

3.3.2 本地存儲保護代理

本地存儲保護代理包括兩個部分:完整性保護引擎和機密性保護引擎,如圖6所示。

完整性保護引擎可以有效地識別出虛擬機加載的vTPM私密信息是否被惡意篡改。該引擎擴展vTPM私密信息的存儲結構,新添加一個hash[]數組,用于存儲對vTPM私密信息進行散列計算得到的值,然后使用物理TPM的密鑰RSA_local對該數組進行加密,防止其被惡意篡改。

機密性保護引擎將vTPM私密信息加密存儲在NVRAM中,防止信息泄露。因為vTPM私密信息是vTPM的非易失性信息,所以長度是有限的(本實驗平臺上,其最大長度為0x4 000 B),再加上引擎使用AES加密算法,因此加解密過程帶來的性能消耗較小,實驗證明平均一次加密耗時為0.1 ms左右。

在虛擬機整個生命周期內,vTPM對NVRAM的讀寫是有規律的。虛擬機啟動時初始化vTPM,此時會讀取NVRAM一次,vTPM私密信息成功加載后,vTPM便不再讀取NVRAM,然而當vTPM執行TPM命令導致加載的vTPM私密信息發生變化時,vTPM私密信息便會被覆蓋式地寫入NVRAM。結合對以上兩種引擎的分析可知,在虛擬機運行中,頻繁的操作是添加hash和加密,如圖6所示,對于系統的性能影響較小。

圖6 本地存儲保護代理

3.3.3 vTPM訪問控制

vTPM訪問控制子模塊對訪問者身份進行驗證,如圖7所示。假設訪問者為進程V,則主要步驟為:1) 獲取V的啟動參數args,按照QEMU的參數格式解析V.args,找到鏡像文件路徑image_path;2) 獲取V打開的文件列表open_f_list,檢查image_path是否在open_f_list中,通過檢查則表示找到了鏡像文件image_path;3) 調用vTPM標簽管理子模塊的功能,對image_path中的vTPM標簽進行完整性和有效期驗證,然后提取qemu_digest字段;4) 度量V的代碼段得到V.hash;5) 對比V.hash和vTPM_label.qemu_digest,驗證通過則交給子模塊對應關系檢測,否則返回錯誤值。

圖7 vTPM訪問控制

3.3.4 vTPM和虛擬機的一一對應關系

對應關系檢測子模塊驗證vTPM和虛擬機的一一對應關系,如圖8所示,該檢測的前提是訪問者通過了vTPM訪問控制子模塊的驗證。假設訪問者為V,則主要步驟為:1) 獲取V的啟動參數args,按照QEMU的參數格式解析V.args,找到虛擬機唯一標識符——UUID;2) 調用vTPM標簽管理子模塊的功能,對鏡像文件中的vTPM標簽進行完整性和有效期驗證,然后提取uuid_hash字段;3) 對比hash(UUID)和vTPM_label.uuid_hash,驗證通過則認為對應關系正確,否則返回錯誤值。

圖8 對應關系檢測

3.4 動態遷移保護方案

3.4.1 遷移流程

動態遷移是虛擬化平臺的一項基本功能。為了保證動態遷移不會破壞vTPM私密信息和易失性信息的安全需求,即機密性、完整性、vTPM和虛擬機的一一對應關系,本文利用vTPM標簽的狀態信息設計了動態遷移保護方案,如圖9所示。相比本地存儲保護方案,本方案新增了動態遷移保護代理子模塊和遷移管理子模塊。

遷移管理子模塊與本地存儲保護內核部分進行交互,利用算法1轉換vTPM標簽的狀態。

圖9 vTPM動態遷移框架

動態遷移保護代理子模塊為虛擬機動態遷移增加了3個新的階段,分別負責安全遷移vTPM的易失性信息、私密信息(NVRAM)和vTPM標簽。1) 同步vTPM設備狀態(即vTPM易失性信息)階段,動態遷移保護代理子模塊注冊vTPM設備為可遷移設備,從QEMU進程空間中收集vTPM的易失性信息,封裝到數據結構vTPM_status中,作為虛擬機設備狀態的一部分進行遷移;2) vTPM標簽拷貝階段,動態遷移保護代理子模塊從虛擬機鏡像中收集vTPM標簽,與遷移管理子模塊交互進行vTPM標簽狀態的轉換,然后封裝vTPM標簽到數據結構vTPM_label中,作為虛擬機鏡像的一部分進行遷移;3) NVRAM拷貝階段,塊設備的遷移由QEMU的init_ blk_migration函數進行初始化,該函數會檢查虛擬機所有的塊設備文件,包括vTPM的塊設備文件NVRAM,一旦vTPM被注冊為可遷移設備,NVRAM便和虛擬機鏡像文件采用相同的臟頁重傳機制進行動態遷移。

圖10 vTPM動態遷移協議

3.4.2 遷移協議

利用vTPM標簽的狀態信息,本文設計了安全的vTPM動態遷移協議,如圖10所示。該協議借助于普通虛擬機動態遷移的通道傳輸vTPM相關信息,不改變遷移源平臺和遷移目的平臺之間的信息交互方式。

本文對協議中涉及的操作原語定義如下。

update(secret, vTPM_label):更新vTPM標簽的secret字段。

update(time,vTPM_label):更新vTPM標簽的time字段,更新后的time.start為當前時間。

request_cert(ip):向CA查詢某個IP對應的數字證書,遷移源平臺IP為src.ip,遷移目的平臺IP為dst.ip。

exchange(vTPM_label):轉換vTPM標簽的狀態,偽代碼如算法1所示。

transfer(content):普通虛擬機動態遷移使用的傳輸函數,傳輸內容為content。

encrypt(content,key):使用key加密內容content。

decrypt(package,key):使用key解密內容package。

store(vTPM_status):收集vTPM的易失性信息,存儲到數據結構vTPM_status中。

load(vTPM_status):從數據結構vTPM_status中提取vTPM的易失性信息,并加載到vTPM設備狀態中。

hash(content):生成content的hash值。

validate(vTPM_status, package):驗證package中vTPM_status的hash值。

reload(NVRAM):重新加載NVRAM。

該協議運行的前提是:1) 遷移源平臺和目的平臺分別向CA申請生成密鑰RSA_mig對應的數字證書,以便在遷移過程中,遷移源平臺和目的平臺能夠向CA查詢對方的數字證書,進行雙方身份的認證;2) 遷移源平臺和目的平臺保持時間同步,用于防止舊的vTPM標簽被重放。

協議運行過程主要步驟如下。

1) 目的平臺啟動空殼虛擬機和空殼vTPM,然后暫停虛擬機運行,等待源端虛擬機的遷入,此時記錄當前時間為1。

2) 源平臺向目的平臺發起遷移請求,雙方初始化遷移,建立連接。

3) 源平臺更新vTPM標簽中的secret域,保證每次遷移過程中,加密使用的key值都是不同的,由于該key值被用于加密遷移過程中傳輸的vTPM相關信息,因此該操作可以防止舊的vTPM相關信息的重放。

4) 源平臺更新vTPM標簽中的time域,保證每次遷移過程中都有time.start,這樣在目的平臺對vTPM標簽的time.start進行檢查,便可以防止舊的vTPM標簽的重放。

5) 源平臺使用RSA_local.priv解密vTPM標簽的secret域,得到key值。

6) 源平臺向CA查詢目的平臺的數字證書,CA返回目的平臺的數字證書,提取對應目的平臺RSA_mig的公鑰dst.RSA_mig.pub。

7) 源平臺利用dst.RSA_mig.pub轉換vTPM標簽為遷移狀態。

8) 源平臺利用臟頁重傳的機制,開始傳輸虛擬機的內存、鏡像文件以及NVRAM,此時NVRAM中的信息處于加密狀態。

9) 源平臺向目的平臺傳輸vTPM標簽。

10) 目的平臺檢查vTPM標簽的time.start,防止舊的vTPM標簽的重放。

11) 目的平臺向CA查詢源平臺的數字證書,CA返回源平臺的數字證書,提取對應源平臺RSA_mig的公鑰src.RSA_mig.pub。

12) 目的平臺利用src.RSA_mig.pub轉換vTPM標簽為本地狀態。

13) 目的平臺使用RSA_local.priv解密vTPM標簽的secret域,得到key值。

14) 源平臺暫停虛擬機運行,并開始傳輸虛擬機的設備狀態VM_device_status。

15) 源平臺收集vTPM的設備狀態(即vTPM易失性信息),存儲在數據結構vTPM_status中,計算vTPM _ status的hash值,然后將vTPM _ status ||hash (vTPM_status)打包成package,使用key對其進行加密。

16) 源平臺傳輸加密后的package。

17) 目的平臺使用key值解密package,得到vTPM_status,然后校驗vTPM_status的hash值。

18) 目的平臺重新加載NVRAM,同步源平臺虛擬機暫停前對vTPM私密信息的所有修改。

19) 目的平臺加載vTPM_status,恢復vTPM的設備狀態。

20) 遷移結束,源平臺銷毀虛擬機,目的平臺運行虛擬機。

3.4.3 RSA_mig數字證書的生成

密鑰RSA_mig是TPM2.0的不可遷移密鑰,其工作原理和AIK密鑰類似。因此,本文借助AIK數字證書的生成協議[20]來生成密鑰RSA_mig的數字證書。

密鑰RSA_mig的數字證書只需要生成一次即可,因此,在部署整個系統之前便可以完成所有硬件TPM2.0芯片的RSA_mig數字證書的生成工作。

如圖11所示,CA指證書頒發機構,owner指硬件TPM2.0的授權者,RSA_mig證書的生成協議過程如下。

圖11 RSA_mig數字證書的生成

1) 使用TPM2_Create創建RSA_mig密鑰,使用TPM2_EvictControl將RSA_mig密鑰持久化存儲到TPM2.0芯片中。

2) 返回成功信息。

3) 使用TPM2_ReadPublic提取RSA_mig的公鑰。

4) TPM2.0芯片返回RSA_mig的公鑰。

5) 利用RSA_mig的公鑰信息,生成證書簽名請求文件RSA_mig.csr。

6) 使用TPM2_Sign生成RSA_mig.csr的簽名值,SRSA_mig=signRSA_mig(RSA_mig.csr)。

7) 返回簽名值SRSA_mig。

8) 填充RSA_mig.csr中的簽名值SRSA_mig,收集背書證書cred,生成對稱密鑰K和隨機數nonce。利用K加密需要發送給CA的信息,而K則由CA的公鑰pkCA進行加密,即msg=(encK(RSA_ mig.csr,cred,Nonce),encpkCA(K))。

9) 發送msg。

10) 用CA私鑰解密并驗證RSA_mig.csr和cred,簽發RSA_mig證書,生成對稱密鑰K′,使用K′加密傳輸的信息,而K′則由EK的公鑰pkEK進行加密,respCA=(encpkEK(K′), encK′(nonce, RSA _mig.cert));然后,CA將密鑰RSA_mig的數字證書加入自己的證書列表中。

11) 發送respCA。

12) 執行TPM2_RSA_Decrypt,使用EK私鑰解密respCA得到K′。

13) 返回K′。

14) Owner利用K′解密驗證Nonce,得到證書RSA_mig.cert。

表1 系統配置

4 實現與測試

4.1 系統實現

本文基于KVM虛擬化平臺,通過qemu2.3.0、模擬TPM2.0功能的開源libtpms、支持libtpms的qemu-patch實現了基于libtpms的全虛擬化TPM2.0。以表1所列組件作為基礎的實驗環境,設計并實現了vTPM私密信息保護方案,同時在控制節點上部署CA,并對本文方案進行功能測試和性能測試。另外,動態遷移是在沒有部署共享存儲系統的環境下進行的。

4.2 功能測試

針對vTPM私密信息完整性保護引擎、機密性保護引擎、vTPM和VM之間的一一對應關系進行功能測試。

在虛擬機內執行TPM命令“tpm2_ takeownership- oAAA-l BBB-e CCC”,如圖12(a)所示。在沒有vTPM私密信息機密性保護引擎的情況下,由于vTPM私密信息的明文存儲,通過分析NVRAM可以得到vTPM2.0的tpm owner授權信息。而圖12(b)顯示機密性保護引擎可以有效防止vTPM2.0私密信息泄露。

首先建立兩個虛擬機VM_1和VM_2以及對應的vTPM_1和vTPM_2,VM_1和VM_2的UUID分別是UUID_1和UUID_2。然后,分別使用“VM_1的鏡像、vTPM_2、UUID_1”“VM_1的鏡像、vTPM_1、UUID_2”“VM_2的鏡像、vTPM_1、UUID_1”這3種組合來啟動虛擬機,結果如圖12(c)~圖12(e)所示。實驗結果證明該方案可以有效保證vTPM、VM之間的一一對應關系,同時圖12(c)也證明了完整性保護引擎可以有效識別出vTPM私密信息的不同。

圖12 功能測試

4.3 性能測試

針對虛擬機的動態遷移進行性能測試,實驗環境建立在沒有配置共享存儲的情況下。為了減小虛擬機鏡像傳輸帶來的影響,性能測試使用大小固定為4 GB的虛擬機鏡像。測試的虛擬機有3種:VM、vTPM-VM、添加vTPM私密信息保護方案的vTPM-VM(即圖13中SvTPM-VM),分別記錄動態遷移的總用時、用戶可感知的停機時間的變化。本文設置5組不同的虛擬機內存,在每組設置中對以上3種虛擬機分別執行10次動態遷移,計算每種虛擬機動態遷移用時的平均值,結果如圖13所示。

本文提出的vTPM私密信息保護方案在VM動態遷移過程中添加了3個新階段:NVRAM拷貝、vTPM標簽拷貝、同步vTPM設備狀態(即vTPM易失性信息)。其中,NVRAM拷貝和vTPM標簽拷貝這兩個階段處于虛擬機運行階段,不會對用戶可感知的停機時間造成影響,但是會增加動態遷移的總體用時。由圖13(a)可知,SvTPM-VM比vTPM-VM平均增加耗時2 373.67 ms,平均增長率為1.65%,該差異是新增vTPM標簽拷貝階段的平均耗時;vTPM-VM比VM平均增加耗時379.80 ms,平均增長率為0.27%,兩者總體用時非常接近,該差異是新增NVRAM拷貝階段的平均耗時。另外,同步vTPM設備狀態(即vTPM易失性信息)階段會增加用戶可感知的停機時間。由圖13(b)可知,SvTPM-VM比vTPM-VM平均增加耗時27.22 ms,平均增長率為19.36%,增加的耗時不會影響正常虛擬機用戶使用;vTPM-VM比VM平均增加耗時0.116 ms,平均增加率為0.41%,兩者非常接近。

圖13 性能測試

5 結束語

本文設計了一種數據結構——vTPM標簽,借助于物理TPM2.0的密碼算法,提出一種新的vTPM私密信息保護方案。該方案分為本地保護和動態遷移保護兩個部分。本地保護方案使用vTPM標簽的各個字段加密存儲vTPM的私密信息、校驗其完整性、綁定虛擬機和vTPM的對應關系,有效實現了3.1節提出的設計原則1)和設計原則2);動態遷移保護方案使用vTPM標簽的狀態屬性,在不影響正常虛擬機動態遷移過程的情況下實現了vTPM的安全動態遷移,實現了3.1節提出的設計原則3)。通過實驗證明了所提方案能夠有效保護vTPM私密信息在本地存儲和動態遷移過程中的安全屬性,同時不會帶來較大的性能消耗。

[1] BERGER S, CáCERES R, GOLDMAN K A, et al. vTPM: virtualizing the trusted platform module[C]//The 15th Conference on USENIX Security Symposium. 2006: 305-320.

[2] 嚴飛, 龔玉鳳, 于釗. 基于硬件事務內存的vTPM安全保護方法: CN105678173[P]. 2016-06-15.

YAN F, GONG Y F, YU Z. vTPM security protection method based on hardware transaction memory[P]. CN105678173A, 2016-06-15.

[3] 嚴飛, 于釗, 張立強, 等. vTSE:一種基于SGX的vTPM安全增強方案[J]. 工程科學與技術, 2017, 49(2): 133-139.

YAN F, YU Z, ZHANG L Q, et al. vTSE: a solution of SGX-based vTPM secure enhancement[J]. Advanced Engineering Sciences, 2017, 49(2): 133-139.

[4] SHI Y, ZHAO B, YU Z, et al. A Security-improved scheme for virtual TPM based on KVM[J]. Wuhan University Journal of Natural Sciences, 2015, 20(6): 505-511.

[5] JIN X, CHEN X S, ZHAO C, et al. Trusted attestation architecture on an infrastructure-as-a-service[J]. Tsinghua Science and Technology, 2017, 22(5): 469-477.

[6] 黃宇晴, 趙波, 肖鈺, 等. 一種基于KVM的vTPM虛擬機動態遷移方案[J]. 山東大學學報(理學版), 2017, 52(6): 69-75.

HUANG Y Q, ZHAO B, XIAO Y, et al. A vTPM-VM live migration scheme based on KVM[J]. Journal of Shandong University (Natural Science), 2017, 52(6): 69-75.

[7] 石源, 張煥國, 趙波, 等. 基于SGX的虛擬機動態遷移安全增強方法[J]. 通信學報, 2017, 38(9): 65-75.

SHI Y, ZHANG H G, ZHAO B, et al. Security-enhanced live migration based on SGX for virtual machine[J]. Journal on Communications, 2017, 38(9): 65-75.

[8] FAN P R, ZHAO B, SHI Y, et al. An improved vTPM-VM live migration protocol[J]. Wuhan University Journal of Natural Sciences, 2015, 20(6): 512-520.

[9] WAN X, ZHANG X F, CHEN L, et al. An improved vTPM migration protocol based trusted channel[C]//International Conference on Systems and Informatics. 2012: 871-875.

[10] DANEV B, MASTI R J, KARAME G O, et al. Enabling secure VM-VTPM migration in private clouds[C]//The 27th Annual Computer Security Applications Conference. 2011: 187-196.

[11] CHALLENER D, YODER K, CATHERMAN R, et al. A practical guide to trusted computing[M]. Beijing: China Machine Press, 2008.

[12] BERGER S, GOLDMAN K, PENDARAKIS D, et al. Scalable attestation: a step toward secure and trusted clouds[C]//IEEE International Conference on Cloud Engineering. 2015: 185-194.

[13] ARTHUR W, CHALLENER D, GOLDMAN K. A practical guide to TPM 2.0: using the trusted platform module in the new age of security[M]. Berkeley: Apress, 2015.

[14] CUCURULL J, GUASCH S. Virtual TPM for a secure cloud: fallacy or reality?[C]//The 13th Spanish Meeting on Cryptology and Information Security. Alicante. 2014: 197-202.

[15] 楊永嬌, 嚴飛, 毛軍鵬, 等. Ng-vTPM: 新一代TPM虛擬化框架設計[J]. 武漢大學學報(理學版), 2015, 61(2): 103-111.

YANG Y J, YAN F, MAO J P, et al. Ng-vTPM: a next generation virtualized TPM architecture[J]. Wuhan University Journal of Natural Sciences, 2015, 61(2): 103-111.

[16] 王麗娜, 高漢軍, 余榮威. 基于信任擴展的可信虛擬執行環境構建方法研究[J]. 通信學報, 2011, 32(9): 1-8.

WANG L N, GAO H J, YU R W. Research of constructing trusted virtual execution environment based on trust extension[J]. Journal on Communications, 2011, 32(9): 1-8.

[17] HOHMUTH M, PETER M, H¨ARTIG H, et al. Reducing TCB size by using untrusted components—small kernels versus virtual-machine monitors[C]//The 11th workshop on ACM SIGOPS European Workshop. 2004: 22.

[18] RAZAVI K, KIELMANN T. Scalable virtual machine deployment using VM image caches[C]//The International Conference on High Performance Computing, Networking, Storage and Analysis. 2013: 65.

[19] MAYES K, MARKANTONAKIS K. Smart cards, tokens, security and applications[M]. New York: Springer Publishing, 2010.

[20] TCG Infrastructure Working Group. A CMC profile for AIK certificate enrollment[M]. Beaverton, Oregon: TCG, 2011.

Label-based protection scheme of vTPM secret

CHEN Xingshu1,2, WANG Wei1,3, JIN Xin1,3

1. Cybersecurity Research Institute, Sichuan University, Chengdu 610065, China 2. College of Cybersecurity, Sichuan University, Chengdu 610065, China 3. College of Computer Science, Sichuan University, Chengdu 610065, China

The virtual trusted platform module (vTPM) played an important role in virtualization of trusted computing. According to security problems of existed vTPM, a protection scheme based on vTPM label was proposed. Firstly, a vTPM label was created for each virtual machine. This label had four main components, signature information, encryption information, measurement information and status information. Then, the security-enhanced vTPM dynamic migration protocol based on vTPM label status information was designed, to ensure the security of vTPM during live migration based on status information of vTPM label. Experiments show that the proposed scheme can protect vTPM secrets effectively and the increased performance cost during live migration is only 19.36%.

trusted computing, virtual trusted platform module, TPM2.0, live migration

TP309.2

A

10.11959/j.issn.1000-436x.2018242

陳興蜀(1968–),女,貴州六枝人,博士,四川大學教授、博士生導師,主要研究方向為云計算與大數據安全、可信計算與信息保障。

王偉(1992–),男,山東聊城人,四川大學碩士生,主要研究方向為可信計算、虛擬化安全。

金鑫(1976–),男,遼寧營口人,四川大學博士生,主要研究方向為可信計算、虛擬化安全。

2018?03?13;

2018?05?17

陳興蜀,chenxsh@scu.edu.cn

國家自然科學基金資助項目(No.61802270, No.61802271)

The National Natural Science Foundation of China (No.61802270, No.61802271)

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
大眾創業(2009年10期)2009-10-08 04:52:00
展會信息
展會信息
展會信息
展會信息
展會信息
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 好吊日免费视频| 亚洲成aⅴ人片在线影院八| 国产69囗曝护士吞精在线视频| 国内精品久久人妻无码大片高| 114级毛片免费观看| 中文字幕在线日韩91| 色综合久久无码网| 99久久亚洲综合精品TS| 国产美女精品人人做人人爽| 91免费片| 3344在线观看无码| 午夜日b视频| 亚洲一区网站| 久久精品人人做人人爽电影蜜月 | 亚洲精品无码专区在线观看 | 色老二精品视频在线观看| 91免费精品国偷自产在线在线| 亚洲视频二| 久久香蕉国产线看观看亚洲片| 亚洲无码免费黄色网址| 国产青榴视频在线观看网站| 国产免费羞羞视频| 久久动漫精品| 欧美国产三级| 亚洲天堂成人在线观看| 国产一区二区三区精品欧美日韩| 日本AⅤ精品一区二区三区日| 狠狠五月天中文字幕| 欧洲成人免费视频| 天天摸天天操免费播放小视频| 天天色天天综合| 中文字幕色在线| 亚洲人精品亚洲人成在线| 美女无遮挡拍拍拍免费视频| 91日本在线观看亚洲精品| 久久这里只精品热免费99| 亚洲一区二区约美女探花| 欧美日韩国产精品综合| 欧洲日本亚洲中文字幕| 国产一级毛片网站| 亚洲熟妇AV日韩熟妇在线| 亚洲天堂精品视频| 日韩视频福利| 亚洲乱码在线播放| 四虎AV麻豆| 国产香蕉在线视频| 秋霞午夜国产精品成人片| 成人国产免费| 欧美中文字幕第一页线路一| 尤物特级无码毛片免费| 国产综合日韩另类一区二区| 国产成人做受免费视频| 99视频在线免费看| 国产永久无码观看在线| 欧美午夜在线播放| 成人无码一区二区三区视频在线观看 | 人妻丰满熟妇αv无码| 性做久久久久久久免费看| 欧美成人国产| Aⅴ无码专区在线观看| 国产高清在线精品一区二区三区| 国产午夜一级毛片| 国产国语一级毛片| 色综合天天操| 日韩黄色在线| 日本人妻一区二区三区不卡影院 | 国产视频一二三区| 国产91在线|日本| 青草精品视频| 国产视频一二三区| 香蕉eeww99国产在线观看| 999精品视频在线| 欧美精品成人| 国产真实二区一区在线亚洲| 欧美69视频在线| 四虎国产永久在线观看| 精品一区二区久久久久网站| 欧美伦理一区| 午夜少妇精品视频小电影| 亚洲永久免费网站| 欧美伦理一区| 91福利免费视频|