• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于VMI的虛擬機(jī)遠(yuǎn)程證明方案

      2018-12-26 10:16:36王偉陳興蜀蘭曉金鑫
      關(guān)鍵詞:宿主機(jī)挑戰(zhàn)者布谷鳥

      王偉,陳興蜀,蘭曉,金鑫

      ?

      基于VMI的虛擬機(jī)遠(yuǎn)程證明方案

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

      (1. 四川大學(xué)計(jì)算機(jī)學(xué)院,四川 成都 610065;2. 四川大學(xué)網(wǎng)絡(luò)空間安全研究院,四川 成都 610065;3. 四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,四川 成都 610065)

      可信計(jì)算組織(TCG,trusted computing group)提出的虛擬機(jī)遠(yuǎn)程證明方案可以為云計(jì)算平臺(tái)提供虛擬機(jī)完整性驗(yàn)證服務(wù),而直接使用TCG提出的方案性能較低,并且會(huì)受到布谷鳥攻擊的威脅。利用虛擬機(jī)自省技術(shù)(VMI,virtual machine introspection)設(shè)計(jì)了新的虛擬機(jī)遠(yuǎn)程證明方案。通過在虛擬機(jī)監(jiān)視器(VMM,virtual machine monitor)中獲取虛擬機(jī)遠(yuǎn)程驗(yàn)證證據(jù)的方法消除在虛擬機(jī)內(nèi)執(zhí)行布谷鳥攻擊的路徑,利用物理可信平臺(tái)模塊(TPM,trusted platform module)保證虛擬機(jī)遠(yuǎn)程驗(yàn)證證據(jù)的完整性,減少了身份證明密鑰(AIK,attestation identity key)證書的產(chǎn)生數(shù)量,降低了私有證書頒發(fā)機(jī)構(gòu)的負(fù)載。實(shí)驗(yàn)表明,方案可以有效驗(yàn)證虛擬機(jī)的完整性狀態(tài),在虛擬機(jī)數(shù)量較多的情況下,性能優(yōu)于TCG提出的虛擬機(jī)遠(yuǎn)程證明方案。

      虛擬機(jī)遠(yuǎn)程證明;布谷鳥攻擊;虛擬機(jī)自省技術(shù);可信平臺(tái)模塊;身份證明密鑰

      1 引言

      隨著云計(jì)算的廣泛應(yīng)用,虛擬機(jī)的完整性狀態(tài)受到越來越多的關(guān)注??尚庞?jì)算技術(shù)[1]可以為云計(jì)算提供可靠的運(yùn)行環(huán)境完整性解決方案。然而,傳統(tǒng)的可信計(jì)算技術(shù)無法驗(yàn)證虛擬機(jī)狀態(tài)的完整性,于是Berger等[2]提出了虛擬可信計(jì)算技術(shù)。

      可信計(jì)算組織(TCG,trusted computing group)提出了基于可信平臺(tái)模塊(TPM,trusted platform module)的遠(yuǎn)程證明機(jī)制,并制定了虛擬可信平臺(tái)規(guī)范,其中包括基于虛擬可信平臺(tái)模塊(vTPM,virtual trusted platform module)的虛擬機(jī)遠(yuǎn)程證明機(jī)制。

      文獻(xiàn)[3]提出直接使用TCG的遠(yuǎn)程證明協(xié)議會(huì)受到偽裝攻擊的威脅,研究該攻擊路徑并改進(jìn)了遠(yuǎn)程證明協(xié)議;文獻(xiàn)[4]首次提出布谷鳥攻擊模型,與文獻(xiàn)[3]提到的攻擊原理類似;文獻(xiàn)[5]利用串空間模型對(duì)遠(yuǎn)程證明協(xié)議進(jìn)行分析,對(duì)布谷鳥攻擊進(jìn)行了實(shí)驗(yàn)驗(yàn)證;文獻(xiàn)[6]提出用于檢測(cè)布谷鳥攻擊的時(shí)序模型,但每次遠(yuǎn)程證明需要重復(fù)進(jìn)行TPM_Quote運(yùn)算,消耗物理TPM芯片計(jì)算資源;文獻(xiàn)[7]提出5條設(shè)計(jì)原則用于指導(dǎo)遠(yuǎn)程證明系統(tǒng)的開發(fā);文獻(xiàn)[8]以用戶空間字符設(shè)備(CUSE,character device in user space)模擬TPM,向虛擬機(jī)提供vTPM設(shè)備,基于TCG的遠(yuǎn)程證明方案提出大規(guī)模虛擬機(jī)遠(yuǎn)程證明模型,但沒有考慮布谷鳥攻擊的影響;文獻(xiàn)[9]提出基于屬性的虛擬機(jī)遠(yuǎn)程證明方案,利用虛擬機(jī)自?。╒MI,virtual machine introspection)技術(shù)獲取虛擬機(jī)的特定屬性;文獻(xiàn)[10]針對(duì)TPM性能瓶頸導(dǎo)致的遠(yuǎn)程證明協(xié)議只支持有限數(shù)量虛擬機(jī)的問題,提出了基于虛擬機(jī)監(jiān)視器(VMM,virtual machine monitor)的遠(yuǎn)程證明設(shè)計(jì)框架,但沒有給出具體的實(shí)現(xiàn)方案,并且設(shè)計(jì)框架中忽略了虛擬機(jī)和遠(yuǎn)程驗(yàn)證證據(jù)之間的關(guān)聯(lián)性。

      針對(duì)以上問題,本文基于VMI技術(shù)設(shè)計(jì)了虛擬機(jī)遠(yuǎn)程證明方案,主要貢獻(xiàn)如下。

      1) 利用VMI技術(shù)在VMM中獲取虛擬機(jī)遠(yuǎn)程驗(yàn)證證據(jù),并與虛擬機(jī)進(jìn)行有效綁定。

      2) 重新設(shè)計(jì)了遠(yuǎn)程證明協(xié)議的證據(jù)收集階段,利用物理TPM保證虛擬機(jī)遠(yuǎn)程驗(yàn)證證據(jù)的完整性。

      3) 實(shí)現(xiàn)了原型系統(tǒng),證明該方案可以有效驗(yàn)證虛擬機(jī)的運(yùn)行狀態(tài)、提高虛擬機(jī)遠(yuǎn)程證明的性能、消除虛擬機(jī)遠(yuǎn)程證明過程中在虛擬機(jī)內(nèi)執(zhí)行布谷鳥攻擊的路徑。

      2 相關(guān)知識(shí)

      2.1 虛擬機(jī)自省

      自省是在虛擬機(jī)外部對(duì)虛擬機(jī)內(nèi)部軟件進(jìn)行分析和監(jiān)控的一類技術(shù),Garfinkel等[11]第一次提出虛擬機(jī)自省的概念,并利用VMI技術(shù)構(gòu)建了基于Hypervisor的入侵檢測(cè)系統(tǒng)。

      VMI技術(shù)可以在Hypervisor層訪問虛擬機(jī)的內(nèi)存和硬件狀態(tài)信息,然而這些信息需要經(jīng)過高級(jí)語義的重構(gòu)才能夠反映虛擬機(jī)內(nèi)部軟件的狀態(tài)和行為,該問題被稱為語義鴻溝。根據(jù)解決語義鴻溝問題所使用方法的不同,文獻(xiàn)[12]將現(xiàn)有的VMI技術(shù)分為4類:基于目標(biāo)虛擬機(jī)的依賴型自省、基于安全虛擬機(jī)的依賴型自省、基于軟件結(jié)構(gòu)知識(shí)的獨(dú)立型自省和基于硬件結(jié)構(gòu)知識(shí)的獨(dú)立型自省。KVM下主流的VMI開源項(xiàng)目LibVMI[13]主要借助于虛擬機(jī)的內(nèi)核符號(hào)表及內(nèi)核重要結(jié)構(gòu)體的成員偏移量來解決語義鴻溝問題,屬于基于軟件結(jié)構(gòu)知識(shí)的獨(dú)立型自省方式,其可以支持簡(jiǎn)單的虛擬機(jī)內(nèi)部狀態(tài)的監(jiān)控,如進(jìn)程鏈表、內(nèi)核模塊鏈表等。通過擴(kuò)展LibVMI擁有的軟件結(jié)構(gòu)知識(shí),增強(qiáng)LibVMI對(duì)于二進(jìn)制內(nèi)存的高級(jí)語義翻譯能力,可以得到更多的虛擬機(jī)內(nèi)部的實(shí)時(shí)狀態(tài)信息。

      2.2 虛擬機(jī)遠(yuǎn)程證明

      TCG提出的虛擬機(jī)遠(yuǎn)程證明機(jī)制分為兩部分:驗(yàn)證虛擬機(jī)內(nèi)部狀態(tài)、驗(yàn)證虛擬機(jī)監(jiān)視器的狀態(tài),基本的運(yùn)行流程如圖1所示。

      協(xié)議運(yùn)行前,宿主機(jī)和虛擬機(jī)分別向私有證書頒發(fā)機(jī)構(gòu)申請(qǐng)身份證明密鑰(AIK,attestation identity key)證書和虛擬機(jī)身份證明密鑰(vAIK,virtual machine′s attestation identity key)證書。

      1) 挑戰(zhàn)者向某個(gè)虛擬機(jī)請(qǐng)求完整性驗(yàn)證證據(jù),并傳輸隨機(jī)值GuestNonce,位于虛擬機(jī)內(nèi)部的遠(yuǎn)程證明代理RA_Agent接收該請(qǐng)求。

      圖1 虛擬機(jī)遠(yuǎn)程證明

      1a) RA_Agent采集完整性度量架構(gòu)(IMA,integrity measurement architecture)模塊的度量日志imaSML。

      1b) RA_Agent采集SeaBIOS和TrustedGrub的度量日志biosSML。

      1c) RA_Agent采集vPCR的值,并利用本地的vTPM執(zhí)行TPM_Quote操作,即使用vAIK證書對(duì)GuestNonce和vPCR值進(jìn)行簽名。

      2) RA_Agent將采集的完整性證據(jù)發(fā)送給挑戰(zhàn)者,然后挑戰(zhàn)者依次驗(yàn)證vPCR完整性、imaSML完整性、biosSML完整性,進(jìn)而根據(jù)具體的日志內(nèi)容判定虛擬機(jī)當(dāng)前狀態(tài)。

      3) 挑戰(zhàn)者向虛擬機(jī)所在的宿主機(jī)請(qǐng)求VMM的完整性證據(jù),并傳輸隨機(jī)值HostNonce,位于宿主機(jī)內(nèi)部的遠(yuǎn)程證明代理RA_Agent接收該請(qǐng)求。

      3a) RA_Agent采集IMA的度量日志imaSML。

      3b) RA_Agent采集BIOS和TrustedGrub的度量日志biosSML。

      3c) RA_Agent采集相應(yīng)PCR的值,并利用本地的TPM執(zhí)行TPM_Quote操作,即使用AIK證書對(duì)HostNonce和PCR值進(jìn)行簽名。

      4) RA_Agent將采集的VMM完整性證據(jù)發(fā)送給挑戰(zhàn)者,然后挑戰(zhàn)者依次驗(yàn)證PCR完整性、imaSML完整性、biosSML完整性,進(jìn)而根據(jù)具體的日志內(nèi)容判定VMM當(dāng)前狀態(tài)。

      2.3 布谷鳥攻擊

      文獻(xiàn)[4]首次提出布谷鳥攻擊,它是一種針對(duì)遠(yuǎn)程證明過程的中間人攻擊方式,其在虛擬機(jī)遠(yuǎn)程證明過程中的利用方式如圖2所示,流程如下:1) 攻擊者申請(qǐng)一臺(tái)正常的虛擬機(jī)C,入侵目標(biāo)虛擬機(jī)M,并劫持虛擬機(jī)M上的遠(yuǎn)程證明代理軟件RA_Agent;2) 當(dāng)挑戰(zhàn)者對(duì)虛擬機(jī)M進(jìn)行遠(yuǎn)程證明時(shí),虛擬機(jī)M上的RA_Agent冒充挑戰(zhàn)者將請(qǐng)求轉(zhuǎn)發(fā)給正常虛擬機(jī)C,利用正常虛擬機(jī)C的完整性證據(jù)來欺騙挑戰(zhàn)者;3) 挑戰(zhàn)者把正常虛擬機(jī)C的完整性證據(jù)當(dāng)成被劫持虛擬機(jī)M的完整性證據(jù),認(rèn)為虛擬機(jī)M的狀態(tài)是正常的。

      3 方案設(shè)計(jì)

      3.1 總體設(shè)計(jì)

      本文基于VMI技術(shù)對(duì)于虛擬機(jī)的遠(yuǎn)程證明過程進(jìn)行了改進(jìn),主要思路是:將虛擬機(jī)內(nèi)部的遠(yuǎn)程證明代理工作下移到宿主機(jī)的VMM中,利用VMI技術(shù)實(shí)現(xiàn),如圖3所示,VMI_Agent就是在VMM中完成此工作的代理。

      具體的運(yùn)行過程如下。

      1) 挑戰(zhàn)者向宿主機(jī)請(qǐng)求虛擬機(jī)和VMM的完整性證據(jù),并傳輸隨機(jī)值Nonce,位于宿主機(jī)上的RA_Agent接收該請(qǐng)求。

      1a) RA_Agent從VMI_Agent處獲取虛擬機(jī)的完整性證據(jù)。

      ① VMI_Agent通過VMI技術(shù)獲取虛擬機(jī)內(nèi)IMA的度量日志imaSML,獲取該日志的具體流程將在3.3.2節(jié)給出。

      圖2 布谷鳥攻擊

      圖3 總體設(shè)計(jì)

      ② VMI_Agent通過VMI技術(shù)獲取虛擬機(jī)內(nèi)SeaBIOS和TrustedGrub的度量日志biosSML,獲取該日志的具體流程將在3.3.1節(jié)給出。

      ③ VMI_Agent截獲虛擬機(jī)和vTPM的交互過程,采集vPCR值,獲取vPCR值的具體流程將在3.2節(jié)給出。

      1b) RA_Agent獲取宿主機(jī)IMA的度量日志imaSML。

      1c) RA_Agent獲取宿主機(jī)BIOS和TrustedGrub的度量日志biosSML。

      1d) RA_Agent采集TPM的PCR值,并利用本地的TPM芯片執(zhí)行TPM_Quote操作,即使用AIK證書對(duì)Nonce、PCR值和vPCR值進(jìn)行簽名,具體流程將在3.4節(jié)給出。

      2) RA_Agent將完整性證據(jù)發(fā)送給挑戰(zhàn)者,然后挑戰(zhàn)者驗(yàn)證證據(jù)完整性,并根據(jù)遠(yuǎn)程驗(yàn)證證據(jù)判定VMM狀態(tài)、虛擬機(jī)狀態(tài)。

      3.2 獲取虛擬機(jī)的vPCR

      正常虛擬機(jī)和其vTPM交互的過程如圖4(a)所示,虛擬機(jī)內(nèi)核中的TPM_TIS驅(qū)動(dòng)與VMM中實(shí)現(xiàn)的vTPM后端設(shè)備進(jìn)行交互,通過vTPM后端驅(qū)動(dòng)向虛擬機(jī)提供的接口發(fā)送命令和接收響應(yīng);同時(shí)虛擬機(jī)內(nèi)核中的TPM_TIS驅(qū)動(dòng)向虛擬機(jī)用戶空間提供/dev/tpm0接口,以供用戶空間的應(yīng)用程序使用VMM中實(shí)現(xiàn)的vTPM后端設(shè)備。

      如圖4(b)所示,VMI_Agent在VMM層截獲虛擬機(jī)內(nèi)核的TPM_TIS驅(qū)動(dòng)和vTPM后端設(shè)備交互的消息,然后判斷當(dāng)前執(zhí)行的TPM命令,如果是vPCR相關(guān)的操作,VMI_Agent則通過執(zhí)行TPM_ReadPCR操作更新其維護(hù)的vPCR列表。具體的執(zhí)行流程如下。

      1) 虛擬機(jī)內(nèi)應(yīng)用程序向TPM_TIS驅(qū)動(dòng)發(fā)送TPM命令流Cnormal。

      2) VMI_Agent截獲TPM_TIS驅(qū)動(dòng)發(fā)送給vTPM后端驅(qū)動(dòng)的Cnormal,然后解析Cnormal,如果該命令與vPCR操作相關(guān),則標(biāo)記ReadAgain為True,否則標(biāo)記為False。

      圖4 虛擬機(jī)vPCR的獲取

      3) VMI_Agent將Cnormal發(fā)送給vTPM后端設(shè)備執(zhí)行。

      4) VMI_Agent截獲vTPM后端設(shè)備返回給TPM_TIS的響應(yīng)流Rnormal。

      5) VMI_Agent判斷ReadAgain的值,如果為True,則構(gòu)造一個(gè)TPM_ReadPCR的命令Creadpcr,并發(fā)送給vTPM后端設(shè)備;如果為False,則進(jìn)入步驟7)。

      6) VMI_Agent接收vTPM后端設(shè)備的響應(yīng)流Rreadpcr,解析Rreadpcr,并更新其維護(hù)的vPCR列表。

      7) VMI_Agent將響應(yīng)流Rnormal返回給虛擬機(jī)內(nèi)核的TPM_TIS驅(qū)動(dòng)。

      3.3 獲取虛擬機(jī)的度量日志

      3.3.1 獲取虛擬機(jī)內(nèi)的biosSML日志

      biosSML日志是BIOS用來保存度量歷史記錄的日志,同時(shí)TrustedGrub利用相應(yīng)的中斷向該日志中寫入自身的度量歷史記錄,因此,該日志記錄了BIOS和TrustedGrub這2個(gè)組件的度量?jī)?nèi)容。BIOS將計(jì)算機(jī)主板上所有硬件的信息以高級(jí)配置和電源管理接口(ACPI,advancedonfiguration and power management interface)表的形式提供上層操作系統(tǒng),每個(gè)ACPI表都有特定的標(biāo)識(shí)符。SeaBIOS是KVM虛擬化平臺(tái)中QEMU用來模擬BIOS的開源項(xiàng)目,其集成了對(duì)于vTPM的支持,而且按照TCG規(guī)定的ACPI表格式[14]向上層虛擬機(jī)提供關(guān)于vTPM硬件相關(guān)的信息,如廠商、版本、biosSML度量日志起始地址和長(zhǎng)度等。目前,SeaBIOS使用TPM1.2客戶端版本的ACPI表,其標(biāo)識(shí)符為“TCPA”。

      從虛擬機(jī)的角度來看,SeaBIOS提供的ACPI表之間是有關(guān)聯(lián)的,如圖5所示,可以根據(jù)ACPI表的根來檢索其他ACPI表,而該ACPI表的根則由虛擬機(jī)內(nèi)核符號(hào)表中導(dǎo)出的符號(hào)acpi_gbl_ root_table_list來指定。

      biosSML日志的獲取過程如下。

      1) VMI_Agent根據(jù)內(nèi)核符號(hào)acpi_gbl_root_ table_list的地址讀取ACPI表的根所在結(jié)構(gòu)體rootACPI的內(nèi)容。

      2) VMI_Agent解析結(jié)構(gòu)體rootACPI的內(nèi)容,獲取ACPI表數(shù)組的起始地址SACPI_array。

      3) VMI_Agent依次讀取從地址SACPI_array開始的每個(gè)ACPI表的內(nèi)容,假設(shè)第個(gè)ACPI表的內(nèi)容是C。

      4) VMI_Agent解析當(dāng)前內(nèi)容C,判斷其標(biāo)識(shí)符是不是“TCPA”,如果是,則按照TCG規(guī)定的TPM的ACPI表格式解析當(dāng)前內(nèi)容C,取出biosSML日志在虛擬機(jī)物理內(nèi)存中的地址AddrbiosSML和日志最大長(zhǎng)度MaxLbiosSML,進(jìn)入步驟5),否則,返回步驟3)。

      5) VMI_Agent訪問從虛擬機(jī)物理地址AddrbiosSML開始的長(zhǎng)度為MaxLbiosSML的一段內(nèi)存區(qū)域MembiosSML,按照日志的格式解析MembiosSML,得到虛擬機(jī)內(nèi)部biosSML度量日志。

      3.3.2 獲取虛擬機(jī)內(nèi)的imaSML日志

      圖5 biosSML日志的獲取

      IMA是Linux內(nèi)核的完整性度量架構(gòu),當(dāng)加載應(yīng)用程序、動(dòng)態(tài)鏈接庫(kù)或者內(nèi)核模塊時(shí),IMA對(duì)加載對(duì)象的重要配置和代碼段進(jìn)行度量,將度量結(jié)果擴(kuò)展到TPM的PCR10上,并將度量?jī)?nèi)容記錄到日志imaSML中,用于遠(yuǎn)程證明。

      imaSML是一種特殊的日志文件,其本質(zhì)上是IMA提供給上層應(yīng)用程序的日志內(nèi)容讀取接口,真實(shí)的內(nèi)容被存儲(chǔ)在IMA維護(hù)的一段內(nèi)存中。IMA使用鏈表來維護(hù)度量日志的內(nèi)容,日志的每一條度量記錄為鏈表上的一個(gè)節(jié)點(diǎn),整個(gè)鏈表可以通過內(nèi)核中導(dǎo)出的符號(hào)ima_measurements來索引。

      imaSML日志的獲取過程如下。

      1) VMI_Agent根據(jù)內(nèi)核符號(hào)ima_ measurements讀取該符號(hào)所在結(jié)構(gòu)體Mima的內(nèi)容。

      2) VMI_Agent解析結(jié)構(gòu)體Mima的內(nèi)容,獲取日志鏈表的表頭節(jié)點(diǎn)地址HimaSML。

      3) VMI_Agent依次讀取HimaSML開始的日志鏈表上的每一個(gè)節(jié)點(diǎn),直至鏈表結(jié)尾,假設(shè)當(dāng)前讀取的第個(gè)節(jié)點(diǎn)的內(nèi)容為C。

      4) VMI_Agent解析內(nèi)容C,然后獲取當(dāng)前日志記錄在虛擬機(jī)內(nèi)核地址空間中的位置Addr。

      圖6 imaSML日志的獲取

      5) VMI_Agent讀取虛擬機(jī)內(nèi)核地址空間中地址Addr開始的一段內(nèi)存Mem。

      6) VMI_Agent解析獲得的內(nèi)存Mem,根據(jù)解析的結(jié)果更新其維護(hù)的imaSML日志列表,然后返回步驟3) 。

      3.4 遠(yuǎn)程證明協(xié)議的證據(jù)收集階段

      遠(yuǎn)程證明協(xié)議是挑戰(zhàn)者與遠(yuǎn)程證明代理交互所遵循的規(guī)范,可以分為兩部分:證據(jù)收集階段、證據(jù)驗(yàn)證階段。由于本文方案的證據(jù)收集方法不同于原本TCG的虛擬機(jī)遠(yuǎn)程證明方案,所以需要修改TCG提出的遠(yuǎn)程證明協(xié)議的證據(jù)收集階段(如圖7所示)來規(guī)范本文方案各個(gè)組件的工作方式。

      協(xié)議運(yùn)行前,宿主機(jī)向私有證書頒發(fā)機(jī)構(gòu)申請(qǐng)AIK證書。

      操作原語設(shè)定:Challenger代表挑戰(zhàn)者,RA_Agent代表宿主機(jī)的認(rèn)證代理,VMI_Agent代表虛擬機(jī)證據(jù)收集代理,TPM代表宿主機(jī)上的物理可信平臺(tái)模塊,Hash代表一種散列算法,Sig代表一種簽名算法,Ver代表一種簽名驗(yàn)證算法,CertAIK代表宿主機(jī)申請(qǐng)的身份認(rèn)證密鑰證書,KAIK代表宿主機(jī)TPM生成的身份認(rèn)證密鑰。

      具體交互過程如下:

      1) Challenger->RA_Agent:Nonce;

      2) RA_Agent->VMI_Agent:vm_i || Nonce,其中,∈(0,],若>,則進(jìn)入步驟7);

      3) VMI_Agent->RA_Agent:vPCR || vSML || Hvm_i|| Hash(UUIDvm_i),其中,Hvm_i= Hash (vPCR0|| vPCR1|| … || vPCRM|| Hash(UUIDvm_i) || Nonce),M∈[0, 24];

      4) RA_Agent->TPM:PCRindex|| Hvm_i;

      5) TPM->RA_Agent:vm_i_SAIK|| Hvm_i,vm_i_SAIK= TPM_Quote(PCRindex, Hvm_i) = Sig(KAIK, Hash (PCRindex|| Hvm_i) );

      6) RA_Agent:P= vPCR || vSML || Hash (UUIDvm_i) || vm_i_SAIK,然后i++,進(jìn)入步驟2);

      7) RA_Agent->TPM:PCRindex|| Nonce;

      8) TPM->RA_Agent:SAIK|| Nonce,SAIK= TPM_Quote(PCRindex, Nonce) = Sig(KAIK, Hash (PCRindex|| Nonce) );

      9) RA_Agent:P0= PCR || SML || Nonce || SAIK,msg = P0|| P1|| … || P;

      10) RA_Agent->Challenger:msg;

      11) Challenger:Ver(CertAIK, P),其中,∈[0,],然后進(jìn)入證據(jù)驗(yàn)證階段。

      接下來對(duì)上述每一步進(jìn)行詳細(xì)解釋,如下。

      步驟1:挑戰(zhàn)者向宿主機(jī)上的認(rèn)證代理RA_ Agent發(fā)送隨機(jī)值Nonce。

      步驟2:RA_Agent向VMI_Agent發(fā)送虛擬機(jī)編號(hào)vm_i和Nonce,其中,∈(0,],為一次遠(yuǎn)程證明可以驗(yàn)證的虛擬機(jī)個(gè)數(shù)。

      步驟3:VMI_Agent采集編號(hào)為vm_i的虛擬機(jī)的vPCR、vSML,并計(jì)算該虛擬機(jī)在云平臺(tái)上唯一標(biāo)識(shí)的散列值Hash(UUIDvm_i),避免直接使用UUID泄露虛擬機(jī)身份,然后根據(jù)vPCR和Nonce計(jì)算得到Hvm_i,用以將遠(yuǎn)程證明證據(jù)和對(duì)應(yīng)虛擬機(jī)進(jìn)行有效綁定,計(jì)算方法為Hvm_i= Hash (vPCR0|| vPCR1|| … || vPCRM|| Hash(UUIDvm_i) || Nonce),其中,為編號(hào)vm_i的虛擬機(jī)的vPCR個(gè)數(shù),最后將{vPCR || vSML || Hvm_i|| Hash(UUIDvm_i)}返回給RA_Agent。

      圖7 虛擬機(jī)遠(yuǎn)程證明協(xié)議證據(jù)收集階段

      步驟4:RA_Agent給TPM發(fā)送命令TPM_ Quote(PCRindex, Hvm_i),利用AIK密鑰對(duì)Hvm_i和當(dāng)前宿主機(jī)的PCRindex值進(jìn)行簽名,利用物理TPM保證虛擬機(jī)遠(yuǎn)程驗(yàn)證證據(jù)的完整性。

      步驟5:TPM將簽名結(jié)果{vm_i_SAIK|| Hvm_i}返回給RA_Agent。

      步驟6:RA_Agent打包編號(hào)vm_i的虛擬機(jī)的完整性證據(jù)P= {vPCR || vSML || Hash(UUIDvm_i) || vm_i_SAIK},然后自增,并判斷和的大小關(guān)系,如果>,則進(jìn)入步驟7,否則進(jìn)入步驟2。

      步驟7:RA_Agent向TPM發(fā)送命令TPM_ Quote(PCRindex, Nonce),利用AIK密鑰對(duì)Nonce和當(dāng)前宿主機(jī)的PCRindex值進(jìn)行簽名。

      步驟8:TPM返回簽名結(jié)果{SAIK|| Nonce}。

      步驟9:RA_Agent打包宿主機(jī)上VMM的完整性證據(jù)P0= {PCR || SML || Nonce || SAIK},然后打包虛擬機(jī)和VMM的完整性證據(jù)msg = {P0|| P1|| … || P}。

      步驟10:RA_Agent將msg發(fā)送給挑戰(zhàn)者。

      步驟11:挑戰(zhàn)者首先根據(jù)AIK證書驗(yàn)證msg中每個(gè)P(∈[0,])的完整性,然后進(jìn)入證據(jù)驗(yàn)證階段,分別根據(jù)VMM和每個(gè)虛擬機(jī)的度量日志和PCR/vPCR值判定各自的當(dāng)前狀態(tài),并生成虛擬機(jī)遠(yuǎn)程證明報(bào)告。

      4 安全性分析

      本文提出基于VMI的虛擬機(jī)遠(yuǎn)程證明方案,首先將位于虛擬機(jī)內(nèi)部的遠(yuǎn)程證明代理的工作放到VMM中完成,然后改進(jìn)傳統(tǒng)的遠(yuǎn)程證明協(xié)議以保證宿主機(jī)中采集到的虛擬機(jī)和VMM的證據(jù)完整性,該方案可以有效抵抗在虛擬機(jī)內(nèi)部執(zhí)行的布谷鳥攻擊,并且減少遠(yuǎn)程證明過程中涉及的AIK證書的生成數(shù)量,降低私有證書頒發(fā)機(jī)構(gòu)的負(fù)載。

      4.1 消除布谷鳥攻擊路徑

      如圖2所示,布谷鳥攻擊之所以會(huì)成功,是因?yàn)楣粽咝薷牧四繕?biāo)虛擬機(jī)M上的遠(yuǎn)程證明代理程序,將挑戰(zhàn)者引導(dǎo)向攻擊者自己的正常虛擬機(jī)C,成功欺騙挑戰(zhàn)者。而本文方案在宿主機(jī)VMM中借助VMI技術(shù)獲取虛擬機(jī)的度量日志和vPCR值,不需要在虛擬機(jī)內(nèi)部部署遠(yuǎn)程證明代理,因此,在虛擬機(jī)內(nèi)部執(zhí)行布谷鳥攻擊的這條攻擊路徑是不存在的。

      如果攻擊者可以入侵宿主機(jī),那么針對(duì)宿主機(jī)遠(yuǎn)程證明過程的布谷鳥攻擊是可以成功的,本文建議使用文獻(xiàn)[3]所提出的方法增強(qiáng)宿主機(jī)遠(yuǎn)程證明過程的安全。

      4.2 降低私有證書頒發(fā)機(jī)構(gòu)的負(fù)載

      在TCG提出的虛擬機(jī)遠(yuǎn)程證明過程中,需要依次對(duì)虛擬機(jī)和VMM進(jìn)行遠(yuǎn)程證明,而且每次證明都會(huì)由私有證書頒發(fā)機(jī)構(gòu)為虛擬機(jī)和VMM分別頒發(fā)一個(gè)臨時(shí)的vAIK/AIK證書,如果同時(shí)對(duì)多個(gè)虛擬機(jī)進(jìn)行遠(yuǎn)程證明,會(huì)導(dǎo)致私有證書頒發(fā)機(jī)構(gòu)的負(fù)載過大甚至產(chǎn)生拒絕服務(wù)攻擊。本文方案將虛擬機(jī)的完整性證據(jù)采集代理放到VMM中執(zhí)行,取消了虛擬機(jī)遠(yuǎn)程證明過程中私有證書頒發(fā)機(jī)構(gòu)為虛擬機(jī)頒發(fā)vAIK證書的步驟,減少了遠(yuǎn)程證明過程中產(chǎn)生AIK證書的數(shù)量,降低了虛擬機(jī)遠(yuǎn)程證明過程中私有證書頒發(fā)機(jī)構(gòu)的負(fù)載以及對(duì)私有證書頒發(fā)機(jī)構(gòu)實(shí)施拒絕服務(wù)攻擊產(chǎn)生的風(fēng)險(xiǎn)。

      5 原型系統(tǒng)實(shí)現(xiàn)與測(cè)試

      5.1 系統(tǒng)實(shí)現(xiàn)

      本文首先在KVM虛擬化平臺(tái)上為每一個(gè)虛擬機(jī)提供基于Libtpms[15]函數(shù)庫(kù)的vTPM設(shè)備,然后在VMM中實(shí)現(xiàn)VMI_Agent,通過修改IBM的遠(yuǎn)程證明開源項(xiàng)目TPM 2.0 Attestation Client Server實(shí)現(xiàn)RA_Agent和挑戰(zhàn)者,最后以表1的配置為基礎(chǔ)環(huán)境設(shè)計(jì)并實(shí)現(xiàn)了本文方案的原型系統(tǒng)。

      表1 系統(tǒng)配置

      5.2 功能測(cè)試與分析

      功能測(cè)試主要測(cè)試基于VMI的虛擬機(jī)遠(yuǎn)程證明方案的有效性。

      本文對(duì)IBM的遠(yuǎn)程證明開源項(xiàng)目進(jìn)行了修改,與原系統(tǒng)相比,修改后的系統(tǒng)調(diào)整了宿主機(jī)視圖(如圖8(a)所示),并且增加了虛擬機(jī)視圖(如圖8(b)所示),然后通過部署在控制節(jié)點(diǎn)上的挑戰(zhàn)者向計(jì)算節(jié)點(diǎn)發(fā)起虛擬機(jī)遠(yuǎn)程證明請(qǐng)求。圖8(a)宿主機(jī)視圖展示了兩臺(tái)計(jì)算節(jié)點(diǎn)的驗(yàn)證結(jié)果都是正常的,驗(yàn)證結(jié)果的最后一個(gè)表項(xiàng)“VMs′ Reports”鏈接了對(duì)該計(jì)算節(jié)點(diǎn)上運(yùn)行的虛擬機(jī)的遠(yuǎn)程證明結(jié)果,表項(xiàng)的值為虛擬機(jī)的個(gè)數(shù)。圖8(b)虛擬機(jī)視圖展示了計(jì)算節(jié)點(diǎn)computer1上虛擬機(jī)的遠(yuǎn)程證明結(jié)果,虛擬機(jī)視圖的驗(yàn)證內(nèi)容和宿主機(jī)視圖是一致的,不同的是虛擬機(jī)視圖中驗(yàn)證結(jié)果的唯一標(biāo)識(shí)是虛擬機(jī)UUID的散列值。

      5.3 性能測(cè)試與分析

      性能測(cè)試主要針對(duì)2種方案的比較:基于VMI的虛擬機(jī)遠(yuǎn)程證明方案和TCG提出的虛擬機(jī)遠(yuǎn)程證明方案。本文在計(jì)算節(jié)點(diǎn)設(shè)置10組運(yùn)行不同數(shù)量虛擬機(jī)的場(chǎng)景,對(duì)于每個(gè)場(chǎng)景分別實(shí)施2種方案的遠(yuǎn)程證明,在特定場(chǎng)景下對(duì)每個(gè)方案分別進(jìn)行20次遠(yuǎn)程證明,最后計(jì)算耗時(shí)平均值,結(jié)果如圖9所示。

      隨著虛擬機(jī)數(shù)量的增加,2種遠(yuǎn)程證明方案的耗時(shí)均呈線性增長(zhǎng)的趨勢(shì)。假設(shè)2種方案耗時(shí)均滿足函數(shù)=+,其中,是虛擬機(jī)個(gè)數(shù),是遠(yuǎn)程證明的耗時(shí),、為參數(shù)。通過線性回歸擬合可得,基于VMI的虛擬機(jī)遠(yuǎn)程證明方案耗時(shí)的參數(shù)為1 287.55,TCG虛擬機(jī)遠(yuǎn)程證明方案耗時(shí)的參數(shù)為3 148.44,由此可見,當(dāng)比較大時(shí),本文方案性能較好。

      圖8 功能測(cè)試

      圖9 性能測(cè)試

      表2給出了一次完整的虛擬機(jī)遠(yuǎn)程證明過程中不同方案的通信開銷、可以驗(yàn)證的虛擬機(jī)數(shù)量、TPM_Quote執(zhí)行次數(shù)和產(chǎn)生的AIK證書數(shù)量。其中,在某個(gè)遠(yuǎn)程證明協(xié)議內(nèi)部發(fā)送和接收一次消息稱為一次交互(連接建立和釋放時(shí)傳輸?shù)南⒉挥?jì)算),是本文方案一次遠(yuǎn)程證明可以驗(yàn)證的虛擬機(jī)個(gè)數(shù)。TCG RA是TCG提出的虛擬機(jī)遠(yuǎn)程證明方案,RIRP RA是文獻(xiàn)[3]提出的抵抗布谷鳥攻擊頑健性的遠(yuǎn)程證明方案,VMI RA是本文提出的基于VMI的虛擬機(jī)遠(yuǎn)程證明方案。

      表2 方案性能對(duì)比

      TCG RA在一次虛擬機(jī)遠(yuǎn)程證明過程中,分別對(duì)虛擬機(jī)、VMM進(jìn)行一次遠(yuǎn)程證明,因此需要2輪交互,每一輪都需要1個(gè)AIK證書和1次TPM_Quote操作,1次虛擬機(jī)遠(yuǎn)程證明過程只能驗(yàn)證1臺(tái)虛擬機(jī)狀態(tài);RIRP RA為了解決布谷鳥攻擊的威脅,在對(duì)虛擬機(jī)、VMM進(jìn)行遠(yuǎn)程證明時(shí)增加了Diffie-Hellman密鑰交換協(xié)議,因此需要4輪交互,TPM_Quote操作次數(shù)和AIK證書數(shù)量與TCG RA一樣,一次虛擬機(jī)遠(yuǎn)程證明過程也只能驗(yàn)證1臺(tái)虛擬機(jī)狀態(tài);本文方案在一次虛擬機(jī)遠(yuǎn)程證明過程中,通過VMI_Agent得到了虛擬機(jī)的遠(yuǎn)程驗(yàn)證證據(jù),因此只需要1輪交互、1個(gè)AIK證書,由于一次虛擬機(jī)遠(yuǎn)程證明過程可以驗(yàn)證臺(tái)虛擬機(jī)狀態(tài),而每個(gè)虛擬機(jī)遠(yuǎn)程驗(yàn)證證據(jù)都需要計(jì)算一次TPM_Quote,再加上對(duì)于宿主機(jī)的遠(yuǎn)程證明過程,共需要+1次TPM_Quote操作。

      6 結(jié)束語

      為了消除在虛擬機(jī)遠(yuǎn)程證明過程中產(chǎn)生的布谷鳥攻擊,本文提出利用VMI技術(shù)在VMM中獲取虛擬機(jī)遠(yuǎn)程驗(yàn)證證據(jù)的方法,重新設(shè)計(jì)了虛擬機(jī)遠(yuǎn)程證明協(xié)議的證據(jù)收集階段。該方案可以消除虛擬機(jī)遠(yuǎn)程證明過程中在虛擬機(jī)內(nèi)執(zhí)行布谷鳥攻擊的路徑,減少遠(yuǎn)程證明過程中產(chǎn)生的AIK證書數(shù)量,進(jìn)而降低私有證書頒發(fā)機(jī)構(gòu)的負(fù)載,而且通過對(duì)原型系統(tǒng)的測(cè)試與分析可知,在虛擬機(jī)數(shù)量較多的情況下,本文方案的性能優(yōu)于TCG提出的虛擬機(jī)遠(yuǎn)程證明方案。

      [1] 馮登國(guó), 秦宇, 汪丹, 等. 可信計(jì)算技術(shù)研究[J]. 計(jì)算機(jī)研究與發(fā)展, 2011, 48(8): 1332-1349.FENG D G, QIN Y, WANG D, et al. Research on trusted computing technology[J]. Journal of Computer Research and Development, 2011, 48(8):1332-1349.

      [2] 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.

      [3] STUMPF F, TAFRESCHI O, R?DER P, et al. A robust integrity reporting protocol for remote attestation[C]//The 2nd Work shop on Advances in Trusted Computing. Tokey, Japan, 2006.

      [4] PARNO B. Bootstrapping trust in a trusted platform[C]//The USENIX Workshop on Hot Topics in Security. 2008.

      [5] 馮偉, 馮登國(guó). 基于串空間的可信計(jì)算協(xié)議分析[J]. 計(jì)算機(jī)學(xué)報(bào), 2015, 38(4): 701-706.FENG W, FENG D G. Analyzing trusted computing protocol based on the strand space model[J]. Chinese Journal of Computers, 2015, 38(4): 701-706.

      [6] FINK R A, SHERMAN A T, MITCHELL A O, et al. Catching the cuckoo: verifying TPM proximity using a quote timing side- channel[C]// The Trust and Trustworthy Computing. 2011: 294-301.

      [7] COKER G, GUTTMAN J, LOSCOCCO P, et al. Principles of remote attestation[C]//The International Journal of Information Security. 2010: 63-81.

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

      [9] ZHANG T, B. LEE R. Cloud Monatt: an architecture for security health monitoring and attestation of virtual machines in cloud computing[C]//The IEEE 42nd Annual International Symposium on Computer Architecture (ISCA). 2015: 362-374.

      [10] LAUER H, KUNTZE N. Hypervisor-based attestation of virtual environments[C]//The Ubiquitous Intelligence Computing Advanced and Trusted Computing Scalable Computing and Communications Cloud and Big Data Computing Internet of People and Smart World Congress. 2016:333-340.

      [11] GARFINKEL T, ROSENBLUM M. A Virtual machine introspection based architecture for intrusion detection[C]//The Network and Distributed Systems Security Symposium. 2003:191-206.

      [12] 李保琿, 方濱興, 徐克付, 等. 虛擬機(jī)自省技術(shù)研究與應(yīng)用進(jìn)展[J].軟件學(xué)報(bào), 2016, 27(6): 1384-1401.LI B H, FANG B X, XU K F, et al. Research and application progress of virtual machine introspection technology[J]. Journal of Software, 2016, 27(6):1384-1401.

      [13] 彭春洪. 基于KVM虛擬機(jī)的惡意行為檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 成都: 電子科技大學(xué), 2015.PENG C H. The design and implementation of the malicious behavior detecting system based on KVM virtual machine[D]. Chengdu: University of Electronic Science and Technology of China, 2015.

      [14] DUFLOT L, LEVILLAIN O, MORIN B. ACPI: design principles and concerns[C]//The 2nd International Conference on Trusted Computing. 2009: 14-28.

      [15] HENDERSON A, YIN H, HAN H, et al. VDF: targeted evolutionary fuzz testing of virtual devices[C]//The International Symposium on Research in Attacks, Intrusions, and Defenses. 2017: 3-25.

      VMI-based virtual machine remote attestation scheme

      WANG Wei1,2, CHEN Xingshu2,3, LAN Xiao2, JIN Xin1,2

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

      The virtual machine attestation scheme proposed by trusted computing group (TCG) can provide attestation service of virtual machine for cloud computing. However, the service using the scheme proposed by the TCG directly would be threatened by the cuckoo attack and its performance would be lower. Therefore, a new virtual machine remote attestation scheme based on virtual machine introspection (VMI) was proposed. Firstly, it eliminated the path to perform cuckoo attacks in virtual machines via obtaining virtual machines′ remote attestation evidence in virtual machine monitor (VMM). Secondly, it used physical trusted platform module (TPM) to ensure the integrity of virtual machines’ remote attestation evidence and reduced the number of attestation identity key (AIK) certificates required during remote attestation to balance the load of private CA. Experiments show that the proposed scheme can verify the status of virtual machines correctly and increase the performance of bulk virtual machines’ remote attestation significantly.

      virtual machine remote attestation, the cuckoo attack, virtual machine introspection, TPM, attestation identity key

      TP309

      A

      10.11959/j.issn.2096-109x.2018098

      2018-11-02;

      2018-11-29

      陳興蜀,chenxsh@scu.edu.cn

      國(guó)家自然科學(xué)基金資助項(xiàng)目(No.61802270);國(guó)家“雙創(chuàng)”示范基地之變革性技術(shù)國(guó)際研發(fā)轉(zhuǎn)化平臺(tái)基金資助項(xiàng)目(No.C700011)

      The National Natural Science Foundation of China (No.61802270), The Transformational Technology International Research Platform for National Dual Innovation Base (No.C700011)

      王偉(1992-),男,山東聊城人,四川大學(xué)碩士生,主要研究方向?yàn)榭尚庞?jì)算、虛擬化安全。

      陳興蜀(1968-),女,貴州六枝人,博士,四川大學(xué)教授、博士生導(dǎo)師,主要研究方向?yàn)樵朴?jì)算與大數(shù)據(jù)安全、可信計(jì)算與信息保障。

      蘭曉(1990-),女,四川自貢人,博士,四川大學(xué)助理研究員,主要研究方向?yàn)檎J(rèn)證密鑰協(xié)商協(xié)議、區(qū)塊鏈安全。

      金鑫(1976-),男,遼寧營(yíng)口人,四川大學(xué)博士生,主要研究方向?yàn)榭尚庞?jì)算、虛擬化安全。

      猜你喜歡
      宿主機(jī)挑戰(zhàn)者布谷鳥
      “挑戰(zhàn)者”最后的絕唱
      布谷鳥讀信
      布谷鳥讀信
      閃電遠(yuǎn)擊俠“挑戰(zhàn)者”2
      噓!布谷鳥來了
      大灰狼(2019年4期)2019-05-14 16:38:38
      虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室在農(nóng)村職校計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)教學(xué)中的應(yīng)用研究
      嵌入式計(jì)算機(jī)軟件測(cè)試關(guān)鍵技術(shù)的思考
      挑戰(zhàn)者 敢闖敢創(chuàng)激發(fā)無限可能
      挑戰(zhàn)者
      布谷鳥叫醒的清晨
      仙桃市| 临清市| 治多县| 浦城县| 德兴市| 景泰县| 含山县| 中西区| 黄山市| 措勤县| 武城县| 黄平县| 保德县| 巫山县| 秀山| 元阳县| 门头沟区| 天长市| 汝南县| 赫章县| 麦盖提县| 安国市| 德清县| 平顶山市| 黄山市| 荥阳市| 威宁| 偃师市| 全南县| 堆龙德庆县| 阿拉善盟| 互助| 湘西| 保山市| 德安县| 麟游县| 象山县| 澄迈县| 沁水县| 云霄县| 法库县|