一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng)及實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開了一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng)及實(shí)現(xiàn)方法,屬于信息安全領(lǐng)域,本發(fā)明要解決的技術(shù)問題為如何能夠?qū)崿F(xiàn)用戶對(duì)自己VM運(yùn)行的底層環(huán)境進(jìn)行驗(yàn)證,確保對(duì)VM的安全生產(chǎn),采用的技術(shù)方案為:(1)、一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng),該系統(tǒng)包括物理平臺(tái)和VM,所述物理平臺(tái)上設(shè)置有TPM或TCM芯片,在該物理平臺(tái)上為每個(gè)VM虛擬各自對(duì)應(yīng)的vTPM。(2)一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的實(shí)現(xiàn)方法,該方法包括兩個(gè)階段,分別為標(biāo)準(zhǔn)PCR值封裝階段和PCR值對(duì)比解封裝階段。
【專利說(shuō)明】
一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng)及實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及信息安全領(lǐng)域,具體地說(shuō)是一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng)及實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]VMM (Virtual Machine Monitor,虛擬機(jī)監(jiān)控器)是一個(gè)系統(tǒng)軟件,可以維護(hù)多個(gè)高效的、隔離的程序環(huán)境,該環(huán)境支持用戶直接去訪問真實(shí)硬件,這樣的程序環(huán)境就稱為虛擬機(jī)(Virtual Machine,VM)。物理機(jī)通過VMM管理計(jì)算機(jī)系統(tǒng)的真實(shí)資源,為虛擬機(jī)提供接口。即,VMM是VM與底層硬件交互的橋梁,一旦VMM被攻擊或惡意修改,VM的安全就會(huì)受到威脅。
[0003]在云計(jì)算環(huán)境中,雖然邏輯上,用戶有管理自己VM的權(quán)限,但物理上VM是運(yùn)行在某臺(tái)物理服務(wù)器上,同時(shí)受VMM的直接管理,而這種管理對(duì)用戶來(lái)說(shuō)是透明的,用戶無(wú)法對(duì)自己VM運(yùn)行的底層環(huán)境進(jìn)行驗(yàn)證,進(jìn)而對(duì)VM的安全產(chǎn)生顧慮。
[0004]專利號(hào)為CN103995732 A的專利文獻(xiàn)公開了一種虛擬可信平臺(tái)模塊功能實(shí)現(xiàn)方法和管理設(shè)備,其中,該方法在采用ARMV8架構(gòu)的處理器的異常層級(jí)EL3中執(zhí)行,該方法包括:根據(jù)一個(gè)或多個(gè)VM的需求,生成一個(gè)或多個(gè)與每個(gè)VM對(duì)應(yīng)的νΤΡΜ實(shí)例,將生成的一個(gè)或多個(gè)的νΤΡΜ實(shí)例存儲(chǔ)在預(yù)設(shè)安全空間中,其中,每個(gè)νΤΡΜ實(shí)例有專用的實(shí)例通信隊(duì)列給與其對(duì)應(yīng)的VM使用,每個(gè)實(shí)例通信隊(duì)列分配有物理地址;通過與VMM以及所述VM交互,使得VM獲取VM的虛擬地址空間中與νΤΡΜ實(shí)例的通信隊(duì)列物理地址對(duì)應(yīng)的VM的通信隊(duì)列虛擬地址,并使得VM通過VM的通信隊(duì)列虛擬地址與νΤΡΜ實(shí)例的通信隊(duì)列進(jìn)行通信。該專利存在實(shí)施不便且安全性較低的缺點(diǎn),而且不能夠?qū)崿F(xiàn)用戶對(duì)自己VM運(yùn)行的底層環(huán)境的完整性檢測(cè)。
[0005]如何能夠?qū)崿F(xiàn)用戶對(duì)自己VM運(yùn)行的底層環(huán)境進(jìn)行驗(yàn)證,確保對(duì)VM的安全生產(chǎn)是目前現(xiàn)有技術(shù)中存在的技術(shù)問題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足,提供一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng)及實(shí)現(xiàn)方法,來(lái)解決如何能夠?qū)崿F(xiàn)用戶對(duì)自己VM運(yùn)行的底層環(huán)境進(jìn)行驗(yàn)證,確保對(duì)VM的安全生產(chǎn)的問題。
[0007]本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的,一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng),該系統(tǒng)包括物理平臺(tái)和VM(虛擬機(jī)),所述物理平臺(tái)上設(shè)置有TPM或TCM芯片,且TPM或TCM芯片能夠正常啟動(dòng)和運(yùn)行,在該物理平臺(tái)上為每個(gè)VM虛擬各自對(duì)應(yīng)的vTPM(虛擬可信平臺(tái)模塊),該系統(tǒng)實(shí)現(xiàn)完整性檢測(cè)的方法:將存有VMM狀態(tài)的物理PCR映射到νΤΡΜ對(duì)應(yīng)的vPCR中,VM用戶指定VM中的機(jī)密數(shù)據(jù),將機(jī)密數(shù)據(jù)與該vPCR中的狀態(tài)信息封裝為數(shù)據(jù)塊并保存;數(shù)據(jù)塊解封裝時(shí),只有在當(dāng)前存儲(chǔ)VMM狀態(tài)信息的vPCR值與封裝的數(shù)據(jù)塊中的vPCR值一致時(shí),才能成功解封裝數(shù)據(jù)塊得到機(jī)密數(shù)據(jù)。
[0008]其中,可信計(jì)算技術(shù)的核心是用來(lái)作為可信存儲(chǔ)根和可信報(bào)告根的TPM/TCM芯片。嵌入TPM芯片的平臺(tái)在啟動(dòng)過程中,會(huì)將每層平臺(tái)狀態(tài)通過擴(kuò)展操作寫入TPM的PCR中,TPM中的PCR只允許擴(kuò)展和重置,不允許修改,從而保證了 PCR中狀態(tài)的真實(shí)可靠性。TPM提供的封裝功能可以將平臺(tái)數(shù)據(jù)與指定狀態(tài)(如特定PCR)綁定在一起,只允許在同樣的狀態(tài)下解封裝。同時(shí)針對(duì)虛擬化的問題,可信計(jì)算組織(Trusted Computing Group, TCG)提出了虛擬可信平臺(tái)架構(gòu),IBM公司也實(shí)現(xiàn)了νΤΡΜ框架,借此可以將可信傳遞到VM層次。
[0009]一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的實(shí)現(xiàn)方法,該實(shí)現(xiàn)方法包括兩個(gè)階段,分別為標(biāo)準(zhǔn)PCR值封裝階段和PCR值對(duì)比解封裝階段;
所述標(biāo)準(zhǔn)PCR值封裝階段指的是在VMM首次啟動(dòng)時(shí),將存有VMM(虛擬機(jī)監(jiān)控器)狀態(tài)的物理PCR映射到νΤΡΜ(虛擬可信平臺(tái)模塊)對(duì)應(yīng)的vPCR中,由VM用戶指定VM中的機(jī)密數(shù)據(jù),將機(jī)密數(shù)據(jù)與該vPCR中的狀態(tài)信息封裝為數(shù)據(jù)塊并保存;其中,標(biāo)準(zhǔn)PCR值封裝階段的前提是默認(rèn)VMM首次啟動(dòng)為正常狀態(tài)。
[0010]所述PCR值對(duì)比解封裝階段指的是在后續(xù)VM再啟動(dòng)時(shí),先對(duì)數(shù)據(jù)塊執(zhí)行解封裝操作,只有在當(dāng)前存儲(chǔ)VMM狀態(tài)信息的vPCR值與數(shù)據(jù)塊中的vPCR值一致時(shí),才能成功解封裝得到機(jī)密數(shù)據(jù);如果解封裝失敗,VM用戶報(bào)告VMM異常。其中,PCR值對(duì)比解封裝階段依賴于每當(dāng)物理平臺(tái)重啟,TPM會(huì)如實(shí)記錄當(dāng)前物理平臺(tái)狀態(tài),保證PCR中是真實(shí)的物理平臺(tái)狀態(tài)。[0011 ]作為優(yōu)選,所述標(biāo)準(zhǔn)PCR值封裝階段具體的工作流程如下:
(1)、物理平臺(tái)正常啟動(dòng),按照8103->800丨10&(16廣>03/¥11的順序度量胃狀態(tài),并將度量值擴(kuò)展到相應(yīng)的PCR中;
(2 )、VM用戶啟動(dòng)VM及VM對(duì)應(yīng)的νΤΡΜ ;
(3)、將TPM(可信平臺(tái)模塊)的PCR[0]到PCR[8]映射到對(duì)應(yīng)的νΤΡΜ(虛擬可信平臺(tái)模塊)的 PCR[0]到PCR[8]中;
(4)、用戶指定本VM中的機(jī)密數(shù)據(jù),請(qǐng)求νΤΡΜ將機(jī)密數(shù)據(jù)與指定PCR或PCR組封裝為數(shù)據(jù)塊(DataBlob);
(5)、VM用戶將νΤΡΜ返回的數(shù)據(jù)塊保存在本地。
[0012]作為優(yōu)選,所述PCR值對(duì)比解封裝階段具體的工作流程如下:
(1)、物理平臺(tái)重啟;
(2)、按照B10S->BOOtlOader->0S/VMM的順序度量VMM當(dāng)前狀態(tài),并將度量值擴(kuò)展到相應(yīng)的PCR中;
(3 )、VM用戶啟動(dòng)VM及VM對(duì)應(yīng)的νΤΡΜ ;
(4)、將當(dāng)前TPM的PCR[0]到PCR[8]映射到對(duì)應(yīng)的νΤΡΜ的PCR[0]到PCR[8]中;
(5)、VM用戶請(qǐng)求νΤΡΜ解封裝標(biāo)準(zhǔn)PCR值封裝階段保存的數(shù)據(jù)塊;
(6)、νΤΡΜ對(duì)比數(shù)據(jù)塊中的PCR的值與對(duì)應(yīng)的當(dāng)前PCR值是否一致:
①、若一致,則解封裝數(shù)據(jù)塊并返回機(jī)密數(shù)據(jù),VM正常運(yùn)行;
②、若不一致,則νΤΡΜ返回錯(cuò)誤,VM用戶報(bào)告VMM檢測(cè)異常。
[0013]本發(fā)明的一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng)及實(shí)現(xiàn)方法具有以下優(yōu)點(diǎn):
1、為了使VM的用戶能夠驗(yàn)證VMM的完整性,進(jìn)而采取保護(hù)措施,本發(fā)明提出了如下的基本思路:在VMM首次啟動(dòng)時(shí),將存有VMM狀態(tài)的物理PCR映射到νΤΡΜ對(duì)應(yīng)的vPCR中,由用戶指定本VM中的機(jī)密數(shù)據(jù),將其與該vPCR中的狀態(tài)信息封裝保存;在后續(xù)VM再啟動(dòng)時(shí),需要先對(duì)封裝數(shù)據(jù)塊執(zhí)行解封裝操作,只有在當(dāng)前存儲(chǔ)VMM狀態(tài)信息的vPCR值與封裝數(shù)據(jù)塊中的vPCR值一致時(shí),才能成功解封裝得到機(jī)密數(shù)據(jù),如果解封裝失敗,虛擬機(jī)用戶報(bào)告VMM異常,能夠?qū)崿F(xiàn)用戶對(duì)自己VM運(yùn)行的底層環(huán)境進(jìn)行驗(yàn)證,確保對(duì)VM的安全生產(chǎn);
2、本發(fā)明通過本地檢測(cè)虛擬機(jī)監(jiān)控器(Virtual Machine Monitor, VMM)真實(shí)的狀態(tài)防止惡意VMM對(duì)VM機(jī)密數(shù)據(jù)的窺視或竊取的方法。
[0014]故本發(fā)明具有設(shè)計(jì)合理、結(jié)構(gòu)簡(jiǎn)單、使用方便、一物多用等特點(diǎn),因而,具有很好的推廣使用價(jià)值。
【附圖說(shuō)明】
[0015]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說(shuō)明。
[0016]附圖1為TPM中的PCR與νΤΡΜ中的PCR映射關(guān)系示意圖;
附圖2為一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的實(shí)現(xiàn)方法中的標(biāo)準(zhǔn)PCR值封裝階段的工作流程圖;
附圖3為一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的實(shí)現(xiàn)方法中的PCR值對(duì)比解封裝階段的工作流程圖。
【具體實(shí)施方式】
[0017]參照說(shuō)明書附圖和具體實(shí)施例對(duì)本發(fā)明的一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng)及實(shí)現(xiàn)方法作以下詳細(xì)地說(shuō)明。
[0018]實(shí)施例1:
如附圖1所示,本發(fā)明的一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng),該系統(tǒng)包括物理平臺(tái)和VM(虛擬機(jī)),所述物理平臺(tái)上設(shè)置有TPM或TCM芯片,且TPM或TCM芯片能夠正常啟動(dòng)和運(yùn)行,在該物理平臺(tái)上為每個(gè)VM虛擬各自對(duì)應(yīng)的νΤΡΜ(虛擬可信平臺(tái)模塊),該系統(tǒng)實(shí)現(xiàn)完整性檢測(cè)的方法:將存有VMM狀態(tài)的物理PCR映射到νΤΡΜ對(duì)應(yīng)的vPCR中,VM用戶指定VM中的機(jī)密數(shù)據(jù),將機(jī)密數(shù)據(jù)與該vPCR中的狀態(tài)信息封裝為數(shù)據(jù)塊并保存;數(shù)據(jù)塊解封裝時(shí),只有在當(dāng)前存儲(chǔ)VMM狀態(tài)信息的vPCR值與封裝的數(shù)據(jù)塊中的vPCR值一致時(shí),才能成功解封裝數(shù)據(jù)塊得到機(jī)密數(shù)據(jù)。
[0019]實(shí)施例2:
本發(fā)明的一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的實(shí)現(xiàn)方法,該實(shí)現(xiàn)方法包括兩個(gè)階段,分別為標(biāo)準(zhǔn)PCR值封裝階段和PCR值對(duì)比解封裝階段;標(biāo)準(zhǔn)PCR值封裝階段指的是在VMM(虛擬機(jī)控制器)首次啟動(dòng)時(shí),將存有VMM狀態(tài)的物理PCR映射到VTPiRtS的vPCR中,由VM用戶指定VM中的機(jī)密數(shù)據(jù),將機(jī)密數(shù)據(jù)與該vPCR中的狀態(tài)信息封裝為數(shù)據(jù)塊并保存;PCR值對(duì)比解封裝階段指的是在后續(xù)VM再啟動(dòng)時(shí),先對(duì)數(shù)據(jù)塊執(zhí)行解封裝操作,只有在當(dāng)前存儲(chǔ)VMM狀態(tài)信息的vPCR值與數(shù)據(jù)塊中的vPCR值一致時(shí),才能成功解封裝得到機(jī)密數(shù)據(jù);如果解封裝失敗,VM用戶報(bào)告VMM異常。
[0020]如附圖2所示,標(biāo)準(zhǔn)PCR值封裝階段的前提是默認(rèn)VMM首次啟動(dòng)為正常狀態(tài)。標(biāo)準(zhǔn)PCR值封裝階段具體的工作流程如下:
(1)、物理平臺(tái)正常啟動(dòng),按照8103->800丨10&(16廣>03/¥11的順序度量胃狀態(tài),并將度量值擴(kuò)展到相應(yīng)的PCR中;
(2 )、VM用戶啟動(dòng)VM及VM對(duì)應(yīng)的νΤΡΜ ; (3)、將TPM的PCR[0]到PCR[8]映射到對(duì)應(yīng)的νΤΡΜ的PCR[0]到PCR[8]中;
(4)、用戶指定本VM中的機(jī)密數(shù)據(jù),請(qǐng)求νΤΡΜ將機(jī)密數(shù)據(jù)與指定PCR或PCR組封裝為數(shù)據(jù)塊;
(5)、VM用戶將νΤΡΜ返回的數(shù)據(jù)塊保存在本地。
[0021]如附圖3所示,PCR值對(duì)比解封裝階段依賴于每當(dāng)物理平臺(tái)重啟,TPM會(huì)如實(shí)記錄當(dāng)前物理平臺(tái)狀態(tài),保證PCR中是真實(shí)的物理平臺(tái)狀態(tài)。PCR值對(duì)比解封裝階段具體的工作流程如下:
(1)、物理平臺(tái)重啟;
(2)、按照B10S->BOOtlOader->0S/VMM的順序度量VMM當(dāng)前狀態(tài),并將度量值擴(kuò)展到相應(yīng)的PCR中;
(3 )、VM用戶啟動(dòng)VM及VM對(duì)應(yīng)的νΤΡΜ ;
(4)、將當(dāng)前TPM的PCR[0]到PCR[8]映射到對(duì)應(yīng)的νΤΡΜ的PCR[0]到PCR[8]中;
(5)、VM用戶請(qǐng)求νΤΡΜ解封裝標(biāo)準(zhǔn)PCR值封裝階段保存的數(shù)據(jù)塊;
(6)、νΤΡΜ對(duì)比數(shù)據(jù)塊中的PCR的值與對(duì)應(yīng)的當(dāng)前PCR值是否一致:
①、若一致,則解封裝數(shù)據(jù)塊并返回機(jī)密數(shù)據(jù),VM正常運(yùn)行;
②、若不一致,則νΤΡΜ返回錯(cuò)誤,VM用戶報(bào)告VMM檢測(cè)異常。
[0022]通過上面【具體實(shí)施方式】,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的兩種【具體實(shí)施方式】。在公開的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。
[0023]除說(shuō)明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
【主權(quán)項(xiàng)】
1.一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的系統(tǒng),其特征在于:該系統(tǒng)包括物理平臺(tái)和VM,所述物理平臺(tái)上設(shè)置有TPM或TCM芯片,在該物理平臺(tái)上為每個(gè)VM虛擬各自對(duì)應(yīng)的νΤΡΜ,該系統(tǒng)實(shí)現(xiàn)完整性檢測(cè)的方法:將存有VMM狀態(tài)的物理PCR映射到νΤΡΜ對(duì)應(yīng)的vPCR中,VM用戶指定VM中的機(jī)密數(shù)據(jù),將機(jī)密數(shù)據(jù)與該vPCR中的狀態(tài)信息封裝為數(shù)據(jù)塊并保存;數(shù)據(jù)塊解封裝時(shí),只有在當(dāng)前存儲(chǔ)VMM狀態(tài)信息的vPCR值與封裝的數(shù)據(jù)塊中的vPCR值一致時(shí),才能成功解封裝數(shù)據(jù)塊得到機(jī)密數(shù)據(jù)。2.一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的實(shí)現(xiàn)方法,其特征在于:該實(shí)現(xiàn)方法包括兩個(gè)階段,分別為標(biāo)準(zhǔn)PCR值封裝階段和PCR值對(duì)比解封裝階段; 所述標(biāo)準(zhǔn)PCR值封裝階段指的是在VMM首次啟動(dòng)時(shí),將存有VMM狀態(tài)的物理PCR映射到νΤΡΜ對(duì)應(yīng)的vPCR中,由VM用戶指定VM中的機(jī)密數(shù)據(jù),將機(jī)密數(shù)據(jù)與該vPCR中的狀態(tài)信息封裝為數(shù)據(jù)塊并保存; 所述PCR值對(duì)比解封裝階段指的是在后續(xù)VM再啟動(dòng)時(shí),先對(duì)數(shù)據(jù)塊執(zhí)行解封裝操作,只有在當(dāng)前存儲(chǔ)VMM狀態(tài)信息的vPCR值與數(shù)據(jù)塊中的vPCR值一致時(shí),才能成功解封裝得到機(jī)密數(shù)據(jù);如果解封裝失敗,VM用戶報(bào)告VMM異常。3.根據(jù)權(quán)利要求2所述的一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的實(shí)現(xiàn)方法,其特征在于:所述標(biāo)準(zhǔn)PCR值封裝階段具體的工作流程如下: (1)、物理平臺(tái)正常啟動(dòng),按照8103->800丨10&(16廣>03/¥11的順序度量¥1^狀態(tài),并將度量值擴(kuò)展到相應(yīng)的PCR中; (2 )、VM用戶啟動(dòng)VM及VM對(duì)應(yīng)的νΤΡΜ ; (3 )、將TPM的PCR [ O ]到PCR [ 8 ]映射到對(duì)應(yīng)的νΤΡΜ的PCR [ O ]到PCR [ 8 ]中; (4)、用戶指定本VM中的機(jī)密數(shù)據(jù),請(qǐng)求νΤΡΜ將機(jī)密數(shù)據(jù)與指定PCR或PCR組封裝為數(shù)據(jù)塊; (5 )、VM用戶將νΤΡΜ返回的數(shù)據(jù)塊保存在本地。4.根據(jù)權(quán)利要求2所述的一種虛擬機(jī)監(jiān)控器本地完整性檢測(cè)的實(shí)現(xiàn)方法,其特征在于:所述PCR值對(duì)比解封裝階段具體的工作流程如下: (1)、物理平臺(tái)重啟; (2)、按照B1S->B00tl0ader->OS/VMM的順序度量VMM當(dāng)前狀態(tài),并將度量值擴(kuò)展到相應(yīng)的PCR中; (3 )、VM用戶啟動(dòng)VM及VM對(duì)應(yīng)的νΤΡΜ ; (4 )、將當(dāng)前TPM的PCR [ O ]到PCR [ 8 ]映射到對(duì)應(yīng)的νΤΡΜ的PCR [ O ]到PCR [ 8 ]中; (5)、VM用戶請(qǐng)求νΤΡΜ解封裝標(biāo)準(zhǔn)PCR值封裝階段保存的數(shù)據(jù)塊; (6 )、vTPMX^t比數(shù)據(jù)塊中的PCR的值與對(duì)應(yīng)的當(dāng)前PCR值是否一致: ①、若一致,則解封裝數(shù)據(jù)塊并返回機(jī)密數(shù)據(jù),VM正常運(yùn)行; ②、若不一致,則νΤΡΜ返回錯(cuò)誤,VM用戶報(bào)告VMM檢測(cè)異常。
【文檔編號(hào)】G06F9/455GK105930199SQ201610229787
【公開日】2016年9月7日
【申請(qǐng)日】2016年4月14日
【發(fā)明人】郝虹, 戴鴻君, 于治樓
【申請(qǐng)人】浪潮集團(tuán)有限公司