一種虛擬機運行時的可信驗證方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種虛擬機運行時的可信驗證方法和設(shè)備。
【背景技術(shù)】
[0002]用戶使用基礎(chǔ)設(shè)施云計算系統(tǒng)時需將自己的資料和應(yīng)用部署在運行于遠(yuǎn)端物理機器上的虛擬機上,為了保證資料和應(yīng)用的安全且不影響使用,用戶需要信任云計算服務(wù)提供者本身,對該虛擬機在運行時的可信性(即,虛擬機是否正確運行了它所聲稱的功能,包括:虛擬機上所有的程序文件如核心系統(tǒng)、配置文件、腳本、可執(zhí)行程序等是否被篡改,虛擬機中是否有其它危險程序在運行等)有需求,因此有必要在虛擬機運行時,采集和驗證虛擬機系統(tǒng)的可信性。
[0003]TPM (Trusted Platform Module,可信平臺模塊)是 TCG (Trusted ComputingGroup,可信計算組織)定義的一個可信模塊。TPM芯片是指根據(jù)TPM規(guī)范實現(xiàn)TPM功能的安全芯片。TPM有三個功能:安全存儲、平臺完整性報告以及平臺驗證。TPM密鑰的作用是提供加解密和數(shù)字簽名的功能,保證數(shù)據(jù)的安全性和平臺身份的可驗證性。TPM密鑰主要包括EK、SRK (Storage Root Key,存儲根密鑰)和身份驗證密鑰AIK。其中,EK和SRK永久的存儲在TPM芯片內(nèi)部,AIK可在CPU中使用。EK是一個TPM的唯一標(biāo)識,SRK是2048比特的RSA密鑰對,一般情況下會使用AIK來執(zhí)行EK的某些操作。
[0004]現(xiàn)有技術(shù),為了保證在虛擬機運行時,采集和驗證虛擬機系統(tǒng)的可信性,通常采用以下方式:
[0005]1、直接對自己的資料進行加密保護,防止云計算提供商本身篡改資料;
[0006]2、引入審計模塊,如日志,記錄云提供商的行為用來在未來某個時間點對云進行評估;
[0007]3、直接構(gòu)建一個可信的云平臺,并直接向用戶證明其可信性:用戶處保有正確的配置信息,當(dāng)向云平臺發(fā)送可信驗證請求時,基于TPM技術(shù),虛擬機、節(jié)點控制器、存儲控制器相應(yīng)采集各自的運行程序、正在運行的VM鏡像、綁定的虛擬存儲等信息并發(fā)送給用戶來驗證;
[0008]4、引入一個名為可信完整性驗證者(TIV)的可信第三方,確保用戶的虛擬機只能在滿足完整性驗證的物理節(jié)點上啟動。該平臺只考慮了虛擬機啟動和遷移時的物理節(jié)點的可信性,沒有考慮虛擬機運行過程中因為不可信威脅所弓I起的狀態(tài)變化。
[0009]在實現(xiàn)本發(fā)明的過程中,本發(fā)明發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在以下問題:
[0010]1、直接對自己的資料進行加密保護,無法發(fā)揮在云平臺上部署的各種云服務(wù)的對數(shù)據(jù)進行有效計算、管理和挖掘的優(yōu)勢;
[0011]2、審計功能的順利實現(xiàn)需要計算模型中下層的可信性支持,如果下層的虛擬化層將系統(tǒng)調(diào)用篡改了,則審計和訪問控制模塊,是很容易被破壞或繞過的;
[0012]3、直接構(gòu)建一個可信的云平臺,并直接向用戶證明其可信性,在驗證過程中會暴露所有物理節(jié)點的軟硬件配置信息、IP地址等,這給云平臺帶來很大的安全威脅;另外每個用戶端都需要維護一個包含所有可能配置的特征數(shù)據(jù)區(qū)以確定云平臺的可信性,難于管理并且缺少可擴展性;
[0013]4、引入一個名為可信完整性驗證者(TIV)的可信第三方,確保用戶的虛擬機只能在滿足完整性驗證的物理節(jié)點上啟動。該平臺只考慮了虛擬機啟動和遷移時的物理節(jié)點的可信性,沒有考慮虛擬機運行過程中因為不可信威脅所弓I起的狀態(tài)變化。
【發(fā)明內(nèi)容】
[0014]本發(fā)明提供了一種虛擬機運行時的可信驗證方法和設(shè)備,用以在不影響云計算本身操作數(shù)據(jù)的功能的前提下,提高虛擬機可信驗證的安全性和可實現(xiàn)性。
[0015]為了達到以上目的,本發(fā)明實施例提供了一種虛擬機運行時的可信驗證方法,應(yīng)用于包括虛擬機和外部可信任實體的系統(tǒng),所述虛擬機中包括遠(yuǎn)程驗證服務(wù)模塊,虛擬可信平臺模塊VTPM,以及虛擬機操作系統(tǒng)內(nèi)核中的配置信息收集模塊,該方法包括:
[0016]虛擬機的操作系統(tǒng)內(nèi)核中的配置信息收集模塊在配置信息列表中保存所述虛擬機的操作系統(tǒng)內(nèi)核中的其他內(nèi)核模塊的名稱和hash值,以及向內(nèi)存中加載的可執(zhí)行程序和腳本的名稱和hash值,并將所述其他內(nèi)核模塊的hash值,以及所述可執(zhí)行程序的hash值和腳本的hash值追加到所述VTPM的程序控制寄存器PCR中;
[0017]當(dāng)所述虛擬機的遠(yuǎn)程驗證服務(wù)模塊接收到外部可信任實體發(fā)送的可信證據(jù)驗證請求時,獲取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回給所述外部可信任實體,以使所述外部可信任實體在根據(jù)所述PCR值確定所述配置信息列表未被修改后,根據(jù)本地特征數(shù)據(jù)庫對所述配置信息列表進行驗證,并根據(jù)驗證結(jié)果確定所述虛擬機是否可/[目。
[0018]本發(fā)明實施例還提供了一種虛擬機運行時的可信驗證方法,應(yīng)用于包括虛擬機和外部可信任實體的系統(tǒng),所述虛擬機中包括配置信息收集模塊,遠(yuǎn)程驗證服務(wù)模塊,以及可信任平臺模塊VTPM,該方法包括:
[0019]外部可信任實體向所述虛擬機的遠(yuǎn)程驗證服務(wù)模塊發(fā)送可信證據(jù)驗證請求;
[0020]所述外部可信任實體接收所述遠(yuǎn)程驗證服務(wù)模塊返回的配置信息列表,以及所述虛擬機的VTPM的程序控制寄存器PCR中的PCR值;其中,所述配置信息列表中存儲有所述虛擬機的操作系統(tǒng)內(nèi)核中的配置信息收集模塊保存的所述虛擬機的操作系統(tǒng)內(nèi)核中的其他內(nèi)核模塊的名稱和hash值,以及向內(nèi)存中加載的可執(zhí)行程序和腳本的名稱和hash值;所述VTPM的PCR中的PCR值是由所述配置信息收集模塊將所述其他內(nèi)核模塊的hash值,以及所述可執(zhí)行程序的hash值和腳本的hash值追加到所述VTPM的PCR中得到的;
[0021]當(dāng)所述外部可信任實體根據(jù)所述PCR值確定所述配置信息列表未被修改后,根據(jù)本地特征數(shù)據(jù)庫對所述配置信息列表進行驗證,并根據(jù)驗證結(jié)果確定所述虛擬機是否可?目。
[0022]本發(fā)明實施例還提供了一種虛擬機,應(yīng)用于包括外部可信任實體的系統(tǒng)其特征在于,所述虛擬機中包括遠(yuǎn)程驗證服務(wù)模塊,虛擬可信平臺模塊VTPM,以及虛擬機操作系統(tǒng)內(nèi)核中的配置信息收集模塊,其中:
[0023]所述配置信息收集模塊,用于在配置信息列表中保存所述虛擬機的操作系統(tǒng)內(nèi)核中的其他內(nèi)核模塊的名稱和hash值,以及向內(nèi)存中加載的可執(zhí)行程序和腳本的名稱和hash值,并將所述其他內(nèi)核模塊的hash值,以及所述可執(zhí)行程序的hash值和腳本的hash值追加到所述VTPM的程序控制寄存器PCR中;
[0024]所述遠(yuǎn)程驗證服務(wù)模塊,用于當(dāng)接收到外部可信任實體發(fā)送的可信證據(jù)驗證請求時,獲取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回給所述外部可信任實體,以使所述外部可信任實體在根據(jù)所述PCR值確定所述配置信息列表未被修改后,根據(jù)本地特征數(shù)據(jù)庫對所述配置信息列表進行驗證,并根據(jù)驗證結(jié)果確定所述虛擬機是否可?目。
[0025]本發(fā)明實施例還提供了一種虛擬機運行時的可信驗證設(shè)備,作為外部可信任實體應(yīng)用于包括虛擬機的系統(tǒng),所述虛擬機中包括配置信息收集模塊,遠(yuǎn)程驗證服務(wù)模塊,以及可信任平臺模塊VTPM,該設(shè)備包括:
[0026]發(fā)送模塊,用于向所述虛擬機的遠(yuǎn)程驗證服務(wù)模塊發(fā)送可信證據(jù)驗證請求;
[0027]接收模塊,用于接收所述遠(yuǎn)程驗證服務(wù)模塊返回的配置信息列表,以及所述虛擬機的VTPM的程序控制寄存器PCR中的PCR值;其中,所述配置信息列表中存儲有所述虛擬機的操作系統(tǒng)內(nèi)核中的配置信息收集模塊保存的所述虛擬機的操作系統(tǒng)內(nèi)核中的其他內(nèi)核模塊的名稱和hash值,以及向內(nèi)存中加載的可執(zhí)行程序和腳本的名稱和hash值;所述VTPM的PCR中的PCR值是由所述配置信息收集模塊將所述其他內(nèi)核模塊的hash值,以及所述可執(zhí)行程序的hash值和腳本的hash值追加到所述VTPM的PCR中得到的;
[0028]處理模塊,用于當(dāng)根據(jù)所述PCR值確定所述配置信息列表未被修改后,根據(jù)本地特征數(shù)據(jù)庫對所述配置信息列表進行驗證,并根據(jù)驗證結(jié)果確定所述虛擬機是否可信。
[0029]本發(fā)明上述實施例中,虛擬機的操作系統(tǒng)內(nèi)核中的配置信息收集模塊在配置信息列表中保存所述虛擬機的操作系統(tǒng)內(nèi)核中的其他內(nèi)核模塊的名稱和hash值,以及向內(nèi)存中加載的可執(zhí)行程序和腳本的名稱和hash值,并將該其他內(nèi)核模塊的hash值,以及該可執(zhí)行程序的hash值和腳本的hash值追加到VTPM的PCR中;當(dāng)虛擬機的遠(yuǎn)程驗證服務(wù)模塊接收到外部可信任實體發(fā)送的可信證據(jù)驗證請求時,獲取所述配置信息列表,和所述VTPM的PCR中保存的PCR值,并返回給所述外部可信任實體,以使所述外部可信任實體在根據(jù)所述PCR值確定所述配置信息列表未被修改后,根據(jù)本地特征數(shù)據(jù)庫對所述配置信息列表進行驗證,并根據(jù)驗證結(jié)果確定所述虛擬機是否可信,在不影響云計算本身操作數(shù)據(jù)的功能的前提下,提高虛擬機可信驗證的安全性和可實現(xiàn)性。
【附圖說明】
[0030]圖1為本發(fā)明實施例提供的一種虛擬機可信驗證方法的流程示意圖;
[0031]圖2為本發(fā)明實施例提供的一種具體應(yīng)用場景的系統(tǒng)架構(gòu)圖;
[0032]圖3為本發(fā)明實施例提供的一種虛擬機運行時可信證據(jù)采集的示意圖;
[0033]圖4為本發(fā)明實施例提供的一種虛擬機的結(jié)構(gòu)示意圖;
[0034]圖