一種針對(duì)云平臺(tái)虛擬機(jī)度量的主動(dòng)遠(yuǎn)程證明方法
【專(zhuān)利摘要】本發(fā)明提供一種針對(duì)云平臺(tái)虛擬機(jī)度量的主動(dòng)遠(yuǎn)程證明方法,包括遠(yuǎn)程證明客戶端主動(dòng)操作過(guò)程和云管理端的服務(wù)器可信驗(yàn)證過(guò)程,在云平臺(tái)虛擬機(jī)啟動(dòng)后進(jìn)行靜態(tài)度量和運(yùn)行后周期性的動(dòng)態(tài)度量,度量完成后,進(jìn)行主動(dòng)的遠(yuǎn)程證明,云管理端獲得度量的值和度量報(bào)告后,通過(guò)與基線值的對(duì)比,驗(yàn)證虛擬機(jī)的狀態(tài)是否被篡改。該方法改變了傳統(tǒng)的被動(dòng)式遠(yuǎn)程證明方法,由度量模塊主動(dòng)觸發(fā)遠(yuǎn)程證明客戶端,實(shí)時(shí)將度量結(jié)果發(fā)送給云管理服務(wù)器端,無(wú)需將度量值保存在TPM的PCR中,從而解決了云平臺(tái)中虛擬機(jī)動(dòng)態(tài)可變及定時(shí)動(dòng)態(tài)度量的遠(yuǎn)程證明問(wèn)題。
【專(zhuān)利說(shuō)明】一種針對(duì)云平臺(tái)虛擬機(jī)度量的主動(dòng)遠(yuǎn)程證明方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于信息安全【技術(shù)領(lǐng)域】,是一種針對(duì)虛擬機(jī)可信狀態(tài)檢測(cè)的遠(yuǎn)程證明方法。
【背景技術(shù)】
[0002]可信計(jì)算平臺(tái)提供了對(duì)外部實(shí)體進(jìn)行證明的功能,稱為遠(yuǎn)程證明。可信計(jì)算平臺(tái)具有三個(gè)可信根,分別是可信度量根、可信存儲(chǔ)根和可信報(bào)告根,支持可信度量、可信存儲(chǔ)和可信報(bào)告三個(gè)核心功能,這三個(gè)核心功能的存在,使得可信計(jì)算平臺(tái)能夠向外部實(shí)體報(bào)告平臺(tái)身份與平臺(tái)狀態(tài),遠(yuǎn)程證明本質(zhì)上是可信報(bào)告概念的延伸。
[0003]遠(yuǎn)程證明是對(duì)平臺(tái)做全面的度量,向遠(yuǎn)程通信方證明自身運(yùn)行環(huán)境是可信的。遠(yuǎn)程證明是一個(gè)綜合完整性校驗(yàn)和身份鑒別的過(guò)程,同時(shí)向驗(yàn)證者提供了一份可信的平臺(tái)狀態(tài)報(bào)告。TPM是報(bào)告的可信根,能夠保證對(duì)當(dāng)前完整性度量值作可信的報(bào)告。
[0004]目前,遠(yuǎn)程證明都是通過(guò)遠(yuǎn)程證明協(xié)議來(lái)實(shí)現(xiàn)的。一個(gè)平臺(tái)(挑戰(zhàn)者)向一個(gè)平臺(tái)(證明者)發(fā)送一個(gè)挑戰(zhàn)證明的消息和一個(gè)隨機(jī)數(shù),要求獲得一個(gè)或多個(gè)PCR (平臺(tái)配置寄存器)值以便對(duì)證明者的平臺(tái)狀態(tài)進(jìn)行驗(yàn)證。證明者利用AIK (身份認(rèn)證證書(shū))對(duì)挑戰(zhàn)者指定的PCR值進(jìn)行簽名后,附加上對(duì)應(yīng)的度量日志表項(xiàng)和AIK證書(shū)一起發(fā)送給挑戰(zhàn)者。挑戰(zhàn)者對(duì)證明值進(jìn)行驗(yàn)證,驗(yàn)證過(guò)程包括根據(jù)度量日志重新計(jì)算哈希值、對(duì)AIK證書(shū)進(jìn)行驗(yàn)證,以及將簽名值和期望值進(jìn)行匹配三個(gè)步驟。
[0005]在云計(jì)算平臺(tái)下,對(duì)于虛擬機(jī)狀態(tài)的遠(yuǎn)程證明與傳統(tǒng)的遠(yuǎn)程證明相比存在兩個(gè)問(wèn)題:1、虛擬機(jī)的個(gè)數(shù)是不確定的。在云平臺(tái)中,一臺(tái)服務(wù)器根據(jù)不同的硬件配置可以運(yùn)行多個(gè)虛擬機(jī),并且數(shù)量是不確定。然而,一般來(lái)講一臺(tái)服務(wù)器僅有一個(gè)TPM (可信平臺(tái)模塊)芯片,并且TPM的PCR數(shù)量是有限的,通常最多只有24個(gè)。因此,傳統(tǒng)的遠(yuǎn)程證明方法將度量值寫(xiě)入TPM的PCR中,然后進(jìn)行簽名和可信狀態(tài)驗(yàn)證無(wú)法滿足虛擬化平臺(tái)動(dòng)態(tài)可伸縮的需求。2、虛擬機(jī)的動(dòng)態(tài)度量需要主動(dòng)的遠(yuǎn)程證明。在云平臺(tái)中,為驗(yàn)證虛擬機(jī)的可信,需要對(duì)虛擬機(jī)進(jìn)行靜態(tài)和動(dòng)態(tài)的遠(yuǎn)程證明。傳統(tǒng)的遠(yuǎn)程證明協(xié)議由遠(yuǎn)程證明的服務(wù)器端挑戰(zhàn)遠(yuǎn)程證明的客戶端,客戶端收到遠(yuǎn)程證明請(qǐng)求之后,將PCR中的度量值和度量報(bào)告經(jīng)TPM簽名之后發(fā)送給遠(yuǎn)程證明服務(wù)器端。這種方法無(wú)法適應(yīng)虛擬機(jī)的動(dòng)態(tài)度量的遠(yuǎn)程證明。因?yàn)?,虛擬機(jī)的動(dòng)態(tài)度量通常是定時(shí)觸發(fā)的,例如5分鐘度量一次。因此,在云平臺(tái)分布式環(huán)境下,遠(yuǎn)程證明的服務(wù)器端很難同步客戶端以發(fā)送遠(yuǎn)程證明請(qǐng)求進(jìn)行可信驗(yàn)證。
[0006]針對(duì)云平臺(tái)的遠(yuǎn)程證明,文獻(xiàn)[廣3]中對(duì)TCG的遠(yuǎn)程證明協(xié)議進(jìn)行了安全增強(qiáng),文獻(xiàn)[4,5]提出了一種基于屬性的云計(jì)算遠(yuǎn)程證明方法,文獻(xiàn)[6?9]研究了云平臺(tái)中虛擬機(jī)所運(yùn)行的Host及虛擬機(jī)管理器(VMM)的可信度量和遠(yuǎn)程證明機(jī)制,但上述研究工作在協(xié)議設(shè)計(jì)上由于未考慮到虛擬機(jī)的動(dòng)態(tài)度量,因此遠(yuǎn)程證明依然采用服務(wù)器端發(fā)送請(qǐng)求給客戶端,然后客戶端的響應(yīng)的被動(dòng)遠(yuǎn)程證明方式。本發(fā)明針對(duì)云平臺(tái)中虛擬機(jī)的可信驗(yàn)證,提出了一種針對(duì)云平臺(tái)虛擬機(jī)動(dòng)態(tài)度量的主動(dòng)遠(yuǎn)程證明協(xié)議。
[0007]有關(guān)文獻(xiàn):[I]劉發(fā)貴,張曉杰,楊陽(yáng),王亮明.一種基于云計(jì)算IaaS環(huán)境的遠(yuǎn)程證明方法.華南理工大學(xué),2013.[2]楊陽(yáng).基于云計(jì)算IaaS環(huán)境的遠(yuǎn)程證明的研究與設(shè)計(jì).華南理工大學(xué),2012.[3]馬文麗.可信云平臺(tái)的遠(yuǎn)程證明.太原理工大學(xué),2011.[4]辛思遠(yuǎn);趙勇;林莉;王曉海.1aas環(huán)境可信證明方法研究[J].計(jì)算機(jī)工程,2012.[5]吳果;辛思遠(yuǎn).面向云計(jì)算的計(jì)算平臺(tái)遠(yuǎn)程證明[J]微計(jì)算機(jī)信息,2Ol2.[6] Santos N.Gummadi, K.P.Rodrigues R.Towards TrustedCloud Computing.1n:Proceedings of the 2009 Conference on Hot Topics in CloudComputing, HotCloud2009.USENIX Association, Berkeley (2009).[7] Schiffman,J.Moyer, T.Vijayakumar, H.Jaeger, T.McDaniel, P.SeedingClouds With TrustAnchors.1n: Proceedings of the, ACM Workshop on CloudComputing Security, CCSff2010, pp.43 - 46.ACM, New York (2010).[8] Aslam M.Gehrmann C.RasmussonL.Bjorkman M.Securely Launching Virtual Machines on Trustworthy Platforms ina Public Cloud - An Enterprise’ s Perspective.1n: Leymann, F.1vanov, 1.vanSinderen, M., Shan, T.(eds.) CLOSER, pp.511 - 521.SciTePress (2012).[9] PaladiN.Gehrmann C.Aslam M.Morenius F.TrustedLaunch of Virtual Machine InstancesinPublic IaaS Environments.1n:T.Kwon , M.-K.Lee , and D.Kwon ( E d s.):1CISC2012,LNCS 7839, pp.309 - 323, 2013。
【發(fā)明內(nèi)容】
[0008]針對(duì)上述問(wèn)題,本發(fā)明提出了一種針對(duì)云平臺(tái)虛擬機(jī)度量的主動(dòng)遠(yuǎn)程證明方法。
[0009]本發(fā)明的技術(shù)方案為一種針對(duì)云平臺(tái)虛擬機(jī)度量的主動(dòng)遠(yuǎn)程證明方法,云管理端的服務(wù)器選擇計(jì)算節(jié)點(diǎn)建立虛擬機(jī)后,計(jì)算節(jié)點(diǎn)的宿主操作系統(tǒng)中建立遠(yuǎn)程證明客戶端,由虛擬機(jī)的度量結(jié)果主動(dòng)觸發(fā)遠(yuǎn)程證明客戶端進(jìn)行遠(yuǎn)程證明,實(shí)時(shí)將度量所得度量值發(fā)送給云管理端的服務(wù)器,無(wú)需將度量值保存在TPM的PCR中;實(shí)現(xiàn)過(guò)程包括遠(yuǎn)程證明客戶端相關(guān)操作過(guò)程和云管理端的服務(wù)器可信驗(yàn)證過(guò)程,
所述遠(yuǎn)程證明客戶端相關(guān)操作過(guò)程實(shí)現(xiàn)如下,
云平臺(tái)的虛擬機(jī)每次被計(jì)算節(jié)點(diǎn)的虛擬機(jī)管理器中度量模塊進(jìn)行度量后,通過(guò)發(fā)送度量值和度量日志主動(dòng)觸發(fā)遠(yuǎn)程證明客戶端進(jìn)行遠(yuǎn)程證明,所述度量包括虛擬機(jī)啟動(dòng)后的靜態(tài)度量和虛擬機(jī)運(yùn)行后周期性的動(dòng)態(tài)度量;遠(yuǎn)程證明客戶端收到度量值和度量日志后,將主機(jī)名和虛擬機(jī)的UUID,從度量日志中讀出來(lái)并發(fā)送給云管理端的服務(wù)器,向服務(wù)器請(qǐng)求隨機(jī)數(shù);服務(wù)器收到主機(jī)名和虛擬機(jī)的UUID,為該虛擬機(jī)生成一個(gè)隨機(jī)數(shù),并發(fā)送給遠(yuǎn)程證明客戶端;遠(yuǎn)程證明客戶端收到隨機(jī)數(shù)后,首先,對(duì)度量值進(jìn)行迭代哈希得到最終哈希值,再用TPM中的簽名私鑰對(duì)哈希值進(jìn)行簽名,得到簽名值;然后,生成一個(gè)完整性報(bào)告,將隨機(jī)數(shù)、度量值、哈希值、簽名值及虛擬機(jī)的基本信息填入完整性報(bào)告中;最后,將完整性報(bào)告和度量日志發(fā)送給云管理服務(wù)器;
所述云管理端的服務(wù)器可信驗(yàn)證過(guò)程實(shí)現(xiàn)如下,
服務(wù)器每次接收完整性報(bào)告和度量日志后,將完整性報(bào)告中的各數(shù)據(jù)項(xiàng)解析出來(lái),首先檢查隨機(jī)數(shù);然后重新計(jì)算哈希,驗(yàn)證哈希值;再取出簽名公鑰驗(yàn)證簽名;默認(rèn)第一次的度量值為基線值,將之后每次的度量值與基線值比較,當(dāng)度量值等于基線值時(shí),驗(yàn)證結(jié)果為虛擬機(jī)可信,否則為不可信。[0010]而且,當(dāng)驗(yàn)證結(jié)果為虛擬機(jī)不可信時(shí),查找該虛擬機(jī)對(duì)應(yīng)的度量日志,重新迭代哈希,計(jì)算度量值,找出出錯(cuò)組件。
[0011]本發(fā)明所提供方法在云平臺(tái)虛擬機(jī)啟動(dòng)和運(yùn)行時(shí)對(duì)虛擬機(jī)進(jìn)行完整性度量,度量完成后,進(jìn)行主動(dòng)的遠(yuǎn)程證明,云管理端可信驗(yàn)證模塊獲得度量的值和度量報(bào)告后,通過(guò)與基線值的對(duì)比,驗(yàn)證虛擬機(jī)的狀態(tài)是否被篡改。該方法改變了傳統(tǒng)的被動(dòng)式遠(yuǎn)程證明方法,由虛擬機(jī)動(dòng)態(tài)度量模塊主動(dòng)觸發(fā)遠(yuǎn)程證明客戶端進(jìn)行遠(yuǎn)程證明,實(shí)時(shí)將度量結(jié)果發(fā)送給云管理服務(wù)器端,無(wú)需將度量值保存在TPM的PCR中,從而解決了上述云平臺(tái)中虛擬機(jī)動(dòng)態(tài)可變及定時(shí)動(dòng)態(tài)度量的遠(yuǎn)程證明問(wèn)題。本發(fā)明的技術(shù)方案有以下優(yōu)點(diǎn):
(I)虛擬機(jī)的度量值不存在PCR里面,因?yàn)橐话愕腡PM芯片里面只有24個(gè)PCR,而實(shí)際使用的虛擬機(jī)數(shù)量是動(dòng)態(tài)可變的,因此無(wú)法利用TPM的PCR存儲(chǔ)度量值,所以本發(fā)明直接將度量值經(jīng)TPM簽名后發(fā)送給遠(yuǎn)程證明客戶端。
[0012](2)虛擬機(jī)的度量日志不以文件形式存在本地,防止日志信息泄露,直接將度量日志以字符流的形式發(fā)送給遠(yuǎn)程證明客戶端。
[0013](3)因?yàn)橛卸鄠€(gè)客戶端,故有多臺(tái)主機(jī)和多個(gè)虛擬機(jī),所以我們用主機(jī)名來(lái)識(shí)別不同的主機(jī),用虛擬機(jī)的UUID來(lái)識(shí)別不同的虛擬機(jī)。每一個(gè)完整性報(bào)告和度量日志都會(huì)對(duì)應(yīng)某一臺(tái)主機(jī)上的某一個(gè)虛擬機(jī)。
[0014](4)先在TPM外面對(duì)度量值作哈希,再在TPM中對(duì)哈希值進(jìn)行簽名。
[0015](5)為每一臺(tái)主機(jī)創(chuàng)建一對(duì)簽名密鑰,簽名私鑰在TPM中用來(lái)簽名,簽名公鑰用服務(wù)器端的公鑰進(jìn)行加密,將簽名公鑰密文存在服務(wù)器端的密鑰管理中心,密鑰管理中心相當(dāng)于一個(gè)可信第三方。當(dāng)服務(wù)器需要驗(yàn)證簽名時(shí),將簽名公鑰從密鑰管理中心取出來(lái)使用。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0016]圖1是本發(fā)明實(shí)施例的場(chǎng)景圖。
[0017]圖2是本發(fā)明實(shí)施例的流程圖。
[0018]圖3是本發(fā)明的參考實(shí)施框架圖。
[0019]【具體實(shí)施方式】
以下結(jié)合附圖和實(shí)施例詳細(xì)說(shuō)明本發(fā)明技術(shù)方案。
[0020]虛擬機(jī)啟動(dòng)時(shí),虛擬機(jī)對(duì)自身平臺(tái)狀態(tài)作靜態(tài)度量,觸發(fā)遠(yuǎn)程證明,形成完整性報(bào)告并驗(yàn)證。實(shí)施例的虛擬機(jī)遠(yuǎn)程證明應(yīng)用場(chǎng)景圖如圖1所示,場(chǎng)景描述如下:
(I)用戶向云平臺(tái)管理端申請(qǐng)使用虛擬機(jī),云平臺(tái)管理端一般采用服務(wù)器技術(shù)實(shí)現(xiàn),即提供云管理服務(wù)器。具體實(shí)施時(shí),云管理服務(wù)器一般設(shè)置有虛擬機(jī)管理部分、密鑰中心、可信數(shù)據(jù)中心和可信驗(yàn)證部分。
[0021](2)云平臺(tái)管理端收到用戶請(qǐng)求后,選定一個(gè)計(jì)算節(jié)點(diǎn)作為主機(jī),在主機(jī)上為用戶啟動(dòng)一個(gè)虛擬機(jī)。具體實(shí)施時(shí),一般由云管理服務(wù)器的虛擬機(jī)管理部分實(shí)現(xiàn)。
[0022](3)當(dāng)虛擬機(jī)啟動(dòng)時(shí),所在計(jì)算節(jié)點(diǎn)的VMM (虛擬機(jī)管理器)中的度量模塊對(duì)虛擬機(jī)的啟動(dòng)加載項(xiàng)進(jìn)行靜態(tài)度量。虛擬機(jī)啟動(dòng)后,對(duì)虛擬機(jī)的運(yùn)行狀態(tài)進(jìn)行周期性的動(dòng)態(tài)度量。每次靜態(tài)和動(dòng)態(tài)度量結(jié)束后,立即觸發(fā)Domain O (宿主操作系統(tǒng))中的遠(yuǎn)程證明客戶端。度量結(jié)果包括度量值和度量日志。遠(yuǎn)程證明客戶端用于對(duì)度量值簽名和發(fā)送度量值給云管理端服務(wù)器。具體實(shí)施時(shí),遠(yuǎn)程證明客戶端可由本領(lǐng)域技術(shù)人員根據(jù)軟件技術(shù)實(shí)現(xiàn),在Domain 0中設(shè)置相應(yīng)程序。在計(jì)算節(jié)點(diǎn)上為用戶啟動(dòng)虛擬機(jī)后,Domain O即可建立遠(yuǎn)程證明客戶端。
[0023](4)遠(yuǎn)程證明客戶端開(kāi)始進(jìn)行遠(yuǎn)程證明,包括將度量結(jié)果利用TPM進(jìn)行簽名,形成完整性報(bào)告,并將完整性報(bào)告發(fā)送給云管理服務(wù)器。
[0024](5)云管理服務(wù)器進(jìn)行可信驗(yàn)證,包括從密鑰中心獲取該計(jì)算節(jié)點(diǎn)的公鑰,以驗(yàn)證度量結(jié)果的簽名,并與可信數(shù)據(jù)中心中存儲(chǔ)的基線值進(jìn)行對(duì)比,從而判斷該虛擬機(jī)是否可信。最后,將結(jié)果反饋給管理員和用戶。具體實(shí)施時(shí),一般由云管理服務(wù)器的可信驗(yàn)證部分實(shí)現(xiàn)。
[0025]本發(fā)明對(duì)遠(yuǎn)程證明方式進(jìn)行了改進(jìn),實(shí)施例的虛擬機(jī)遠(yuǎn)程證明流程圖如圖2所示,具體流程如下:
遠(yuǎn)程證明整個(gè)過(guò)程可分為兩部分,一是在遠(yuǎn)程證明客戶端的操作,二是服務(wù)器可信驗(yàn)證。
[0026](I)遠(yuǎn)程證明客戶端
虛擬機(jī)啟動(dòng)并度量后,將度量值和度量日志發(fā)送給Domain O中的遠(yuǎn)程證明客戶端。遠(yuǎn)程證明客戶端收到度量值和度量日志,將主機(jī)名和虛擬機(jī)的UUID (通用唯一識(shí)別碼)從日志中讀出來(lái),可通過(guò)Web Service發(fā)送給服務(wù)器,向服務(wù)器請(qǐng)求隨機(jī)數(shù)。服務(wù)器收到主機(jī)名和虛擬機(jī)的UUID,為該虛擬機(jī)生成一個(gè)隨機(jī)數(shù),并發(fā)送給遠(yuǎn)程證明客戶端。隨機(jī)數(shù)的作用是防止重放攻擊。遠(yuǎn)程證明客戶端收到隨機(jī)數(shù)后,對(duì)度量值進(jìn)行哈希(HASH)得到哈希值,再用TPM中的簽名私鑰對(duì)哈希值進(jìn)行簽名,得到簽名值??缮梢粋€(gè)XML格式的完整性報(bào)告,將隨機(jī)數(shù)、度量值、哈希值、簽名值及虛擬機(jī)的基本信息填入完整性報(bào)告中。最后,遠(yuǎn)程證明客戶端可通過(guò)Web Service將完整性報(bào)告和度量日志發(fā)送給云管理服務(wù)器。虛擬機(jī)的基本信息一般包括虛擬機(jī)的UUID、OS類(lèi)型(操作系統(tǒng)類(lèi)型)等基本信息。
[0027](2)可信驗(yàn)證
服務(wù)器每次接收完整性報(bào)告和度量日志后,將XML格式的完整性報(bào)告中的各數(shù)據(jù)項(xiàng)解析出來(lái)。首先檢查隨機(jī)數(shù);然后重新計(jì)算哈希,驗(yàn)證哈希值;再將簽名公鑰取出驗(yàn)證簽名,具體實(shí)施時(shí),簽名公鑰保管在云管理端密鑰中心,可從中取出;默認(rèn)第一次的度量值為基線值,將之后每次度量值與基線值比較,最終得出驗(yàn)證結(jié)果,將驗(yàn)證結(jié)果顯示在界面上。當(dāng)度量值等于基線值時(shí),驗(yàn)證結(jié)果為虛擬機(jī)可信,否則為不可信。度量日志的作用是一旦虛擬機(jī)不可信,查找該虛擬機(jī)對(duì)應(yīng)的度量日志,找出哪一個(gè)組件出錯(cuò)。
[0028]具體實(shí)施時(shí),可以對(duì)系統(tǒng)進(jìn)行模塊劃分,以便軟件實(shí)現(xiàn),例如圖3所示虛擬機(jī)遠(yuǎn)程證明實(shí)施框架,遠(yuǎn)程證明系統(tǒng)有6個(gè)模塊,它們的功能如下:
(1)虛擬機(jī)度量模塊:負(fù)責(zé)在虛擬機(jī)啟動(dòng)后對(duì)其進(jìn)行靜態(tài)和動(dòng)態(tài)度量,可參考現(xiàn)有技術(shù)
(2)虛擬機(jī)發(fā)起模塊:負(fù)責(zé)觸發(fā)遠(yuǎn)程證明
(3)遠(yuǎn)程證明響應(yīng)模塊:負(fù)責(zé)開(kāi)始遠(yuǎn)程證明形成完整性報(bào)告。遠(yuǎn)程證明響應(yīng)模塊收到度量值和度量日志后,便開(kāi)始進(jìn)行遠(yuǎn)程證明,生成完整性報(bào)告,將完整性報(bào)告和度量日志發(fā)送給云管理服務(wù)器。
[0029](4)遠(yuǎn)程證明發(fā)送模塊:負(fù)責(zé)發(fā)送完整性報(bào)告和度量日志
(5)云管理服務(wù)器接收模塊:負(fù)責(zé)接收虛擬機(jī)的完整性報(bào)告和度量日志
(6)云管理服務(wù)器驗(yàn)證模塊:負(fù)責(zé)驗(yàn)證虛擬機(jī)是否可信。云管理服務(wù)器收到完整性報(bào)告和度量日志,對(duì)完整性報(bào)告進(jìn)行驗(yàn)證。若驗(yàn)證結(jié)果為可信,則顯示可信狀態(tài),若不可信,則可進(jìn)一步查看該虛擬機(jī)的度量日志,定位哪一個(gè)組件出了問(wèn)題。
[0030]虛擬機(jī)度量模塊、虛擬機(jī)發(fā)起模塊設(shè)置于計(jì)算節(jié)點(diǎn)的虛擬機(jī)管理器中,遠(yuǎn)程證明響應(yīng)模塊和遠(yuǎn)程證明發(fā)送模塊設(shè)置于遠(yuǎn)程證明客戶端,云管理服務(wù)器接收模塊和云管理服務(wù)器驗(yàn)證模塊設(shè)置于云管理端的服務(wù)器。
[0031 ] 具體實(shí)施時(shí),客戶端上虛擬機(jī)啟動(dòng)后,虛擬機(jī)管理器中度量模塊對(duì)Grub、虛擬機(jī)內(nèi)核、應(yīng)用程序、關(guān)鍵模塊等組件進(jìn)行靜態(tài)度量,對(duì)運(yùn)行后的虛擬機(jī)周期性的進(jìn)行動(dòng)態(tài)度量。每次度量后對(duì)度量的值進(jìn)行迭代哈希,得到相應(yīng)靜態(tài)或動(dòng)態(tài)的度量值,并生成靜態(tài)或動(dòng)態(tài)度量的相應(yīng)度量日志,日志中記錄了整個(gè)度量的過(guò)程,包括度量了哪些組件,每個(gè)組件的度量值以及度量時(shí)間等等。度量結(jié)束后,虛擬機(jī)發(fā)起模塊,將度量值和度量日志發(fā)送給遠(yuǎn)程證明響應(yīng)模塊,用來(lái)觸發(fā)遠(yuǎn)程證明的簽名和發(fā)送。具體度量和迭代哈希的實(shí)現(xiàn)采用傳統(tǒng)遠(yuǎn)程證明中的方式即可,一般是進(jìn)行一次度量后,對(duì)所有度量模塊的HASH值進(jìn)行迭代HASH,形成一個(gè)最終的度量值,本發(fā)明不予贅述。
[0032]本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神作舉例說(shuō)明。本發(fā)明所屬【技術(shù)領(lǐng)域】的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類(lèi)似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書(shū)所定義的范圍。
【權(quán)利要求】
1.一種針對(duì)云平臺(tái)虛擬機(jī)度量的主動(dòng)遠(yuǎn)程證明方法,其特征在于:云管理端的服務(wù)器選擇計(jì)算節(jié)點(diǎn)建立虛擬機(jī)后,計(jì)算節(jié)點(diǎn)的宿主操作系統(tǒng)中建立遠(yuǎn)程證明客戶端,由虛擬機(jī)的度量結(jié)果主動(dòng)觸發(fā)遠(yuǎn)程證明客戶端進(jìn)行遠(yuǎn)程證明,實(shí)時(shí)將度量所得度量值發(fā)送給云管理端的服務(wù)器,無(wú)需將度量值保存在TPM的PCR中;實(shí)現(xiàn)過(guò)程包括遠(yuǎn)程證明客戶端相關(guān)操作過(guò)程和云管理端的服務(wù)器可信驗(yàn)證過(guò)程, 所述遠(yuǎn)程證明客戶端相關(guān)操作過(guò)程實(shí)現(xiàn)如下, 云平臺(tái)的虛擬機(jī)每次被計(jì)算節(jié)點(diǎn)的虛擬機(jī)管理器中度量模塊進(jìn)行度量后,通過(guò)發(fā)送度量值和度量日志主動(dòng)觸發(fā)遠(yuǎn)程證明客戶端進(jìn)行遠(yuǎn)程證明,所述度量包括虛擬機(jī)啟動(dòng)后的靜態(tài)度量和虛擬機(jī)運(yùn)行后周期性的動(dòng)態(tài)度量;遠(yuǎn)程證明客戶端收到度量值和度量日志后,將主機(jī)名和虛擬機(jī)的UUID,從度量日志中讀出來(lái)并發(fā)送給云管理端的服務(wù)器,向服務(wù)器請(qǐng)求隨機(jī)數(shù);服務(wù)器收到主機(jī)名和虛擬機(jī)的UUID,為該虛擬機(jī)生成一個(gè)隨機(jī)數(shù),并發(fā)送給遠(yuǎn)程證明客戶端;遠(yuǎn)程證明客戶端收到隨機(jī)數(shù)后,首先,對(duì)度量值進(jìn)行迭代哈希得到最終哈希值,再用TPM中的簽名私鑰對(duì)哈希值進(jìn)行簽名,得到簽名值;然后,生成一個(gè)完整性報(bào)告,將隨機(jī)數(shù)、度量值、哈希值、簽名值及虛擬機(jī)的基本信息填入完整性報(bào)告中;最后,將完整性報(bào)告和度量日志發(fā)送給云管理服務(wù)器; 所述云管理端的服務(wù)器可信驗(yàn)證過(guò)程實(shí)現(xiàn)如下, 服務(wù)器每次接收完整性報(bào)告和度量日志后,將完整性報(bào)告中的各數(shù)據(jù)項(xiàng)解析出來(lái),首先檢查隨機(jī)數(shù);然后重新計(jì)算哈希,驗(yàn)證哈希值;再取出簽名公鑰驗(yàn)證簽名;默認(rèn)第一次的度量值為基線值,將之后每次的度量值與基線值比較,當(dāng)度量值等于基線值時(shí),驗(yàn)證結(jié)果為虛擬機(jī)可信,否則為不可信。
2.根據(jù)權(quán)利要求1所述針對(duì)云平臺(tái)虛擬機(jī)度量的主動(dòng)遠(yuǎn)程證明方法,其特征在于:當(dāng)驗(yàn)證結(jié)果為虛擬機(jī)不可信時(shí),查找該虛擬機(jī)對(duì)應(yīng)的度量日志,重新迭代哈希,計(jì)算度量值,找出出錯(cuò)組件。
【文檔編號(hào)】H04L9/32GK103501303SQ201310474995
【公開(kāi)日】2014年1月8日 申請(qǐng)日期:2013年10月12日 優(yōu)先權(quán)日:2013年10月12日
【發(fā)明者】王鵑, 周司珺, 王江, 嚴(yán)飛, 趙波, 張煥國(guó) 申請(qǐng)人:武漢大學(xué)