本發(fā)明涉及虛擬機(jī)技術(shù)領(lǐng)域,特別涉及一種虛擬機(jī)可信遷移方法及裝置。
背景技術(shù):
隨著虛擬機(jī)技術(shù)的快速發(fā)展,虛擬機(jī)的使用越來(lái)越廣泛,這些虛擬機(jī)可以安裝在物理主機(jī)上,且一個(gè)物理主機(jī)上可以安裝多個(gè)虛擬機(jī)。為了實(shí)現(xiàn)物理主機(jī)的維護(hù)、升級(jí)或者動(dòng)態(tài)負(fù)載均衡,可以將該物理主機(jī)上安裝的虛擬機(jī)遷移到其它物理主機(jī)上,此時(shí),該虛擬機(jī)所在的物理主機(jī)可以稱為源主機(jī),其它物理主機(jī)可以稱為目的主機(jī)。而為了防止源主機(jī)將安裝的虛擬機(jī)遷移到目的主機(jī)的過(guò)程中發(fā)生數(shù)據(jù)泄露等不安全事件,需要保證目的主機(jī)運(yùn)行環(huán)境的安全性,以及保證遷移過(guò)程中該虛擬機(jī)的完整性和機(jī)密性,也即是,需要對(duì)該虛擬機(jī)進(jìn)行可信遷移。
目前,提供了一種基于XEN平臺(tái)的虛擬機(jī)可信遷移方法,具體為:在XEN平臺(tái)所在的每個(gè)物理主機(jī)上設(shè)置有一個(gè)可信管理虛擬機(jī)以及多個(gè)客戶虛擬機(jī),可信管理虛擬機(jī)上部署有可信平臺(tái)模塊(英文:Trusted Platform Module,簡(jiǎn)稱:TPM)驅(qū)動(dòng)和虛擬可信平臺(tái)模塊(英文:Virtual Trusted Platform Module,簡(jiǎn)稱:vTPM)管理器,vTPM管理器負(fù)責(zé)為該多個(gè)客戶虛擬機(jī)生成vTPM實(shí)例,并通過(guò)每個(gè)客戶虛擬機(jī)的vTPM實(shí)例保證每個(gè)客戶虛擬機(jī)與可信管理虛擬機(jī)之間的可信鏈。而當(dāng)某一客戶虛擬機(jī)從源主機(jī)向目的主機(jī)遷移時(shí),源主機(jī)將該客戶虛擬機(jī)對(duì)應(yīng)的vTPM實(shí)例靜態(tài)遷移到目的主機(jī)上,再將該客戶虛擬機(jī)動(dòng)態(tài)遷移到目的主機(jī)上,之后,目的主機(jī)將該客戶虛擬機(jī)對(duì)應(yīng)的vTPM實(shí)例添加到目標(biāo)主機(jī)的vTPM管理器中,以建立該vTPM實(shí)例與目的主機(jī)的可信管理虛擬機(jī)之間的可信鏈,進(jìn)而通過(guò)目的主機(jī)的TPM驅(qū)動(dòng),建立該vTPM實(shí)例與該客戶虛擬機(jī)之間的通信,以建立該vTPM實(shí)例和該客戶虛擬機(jī)之間的可信鏈,從而實(shí)現(xiàn)該客戶虛擬機(jī)的可信遷移。
而由于遷移過(guò)程中,目的主機(jī)的可信管理虛擬機(jī)不僅要將vTPM實(shí)例添加 到vTPM管理器中,還要建立vTPM實(shí)例與客戶虛擬機(jī)之間的可信鏈,從而導(dǎo)致可信管理虛擬機(jī)的實(shí)現(xiàn)機(jī)制比較復(fù)雜,降低了客戶虛擬機(jī)的可信遷移效率。
技術(shù)實(shí)現(xiàn)要素:
為了提高虛擬機(jī)的可信遷移效率,本發(fā)明實(shí)施例提供了一種虛擬機(jī)可信遷移方法及裝置。所述技術(shù)方案如下:
第一方面,提供了一種虛擬機(jī)可信遷移方法,所述方法包括:
源主機(jī)向目的主機(jī)發(fā)送遷移請(qǐng)求,所述遷移請(qǐng)求中攜帶目標(biāo)虛擬機(jī)的遷移信息,以使所述目的主機(jī)基于所述遷移信息進(jìn)行遷移響應(yīng),所述遷移響應(yīng)中攜帶遷移身份碼;
當(dāng)所述源主機(jī)接收到所述目的主機(jī)返回的所述遷移響應(yīng)時(shí),基于所述目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的明文、所述遷移身份碼和所述源主機(jī)的私鑰,生成簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文;
所述源主機(jī)將所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文發(fā)送給所述目的主機(jī),以使所述目的主機(jī)基于所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文,建立所述目標(biāo)sTPM實(shí)例與所述目的主機(jī)的硬件TPM之間的可信鏈;
當(dāng)所述源主機(jī)接收到所述目的主機(jī)發(fā)送的虛擬機(jī)遷移響應(yīng)時(shí),將所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到所述目的主機(jī)上,以使所述目的主機(jī)基于所述虛擬機(jī)實(shí)例建立所述目標(biāo)虛擬機(jī)與所述目標(biāo)sTPM實(shí)例之間的可信鏈。
其中,在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,進(jìn)而恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
需要說(shuō)明的是,遷移身份碼為目的主機(jī)預(yù)先建立的臨時(shí)sTPM實(shí)例的哈希值,遷移身份碼與臨時(shí)sTPM實(shí)例唯一對(duì)應(yīng)。
還需要說(shuō)明的是,硬件TPM為滿足TPM規(guī)范的硬件實(shí)現(xiàn),硬件TPM用于保證源主機(jī)的物理環(huán)境的可信性,另外,sTPM為滿足TPM規(guī)范的軟件實(shí)現(xiàn),也即是sTPM借助軟件模塊來(lái)實(shí)現(xiàn)TPM功能。再者,sTPM實(shí)例是sTPM的文件表現(xiàn)形式,sTPM實(shí)例中保存有sTPM的狀態(tài)信息,sTPM實(shí)例與sTPM唯一 對(duì)應(yīng)。
結(jié)合第一方面,在上述第一方面的第一種可能的實(shí)現(xiàn)方式中,所述源主機(jī)基于所述目標(biāo)虛擬機(jī)對(duì)應(yīng)的目標(biāo)sTPM實(shí)例的明文、所述遷移身份碼和所述源主機(jī)的私鑰,生成簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文,包括:
所述源主機(jī)生成所述目標(biāo)sTPM實(shí)例的描述文件;
所述源主機(jī)基于所述描述文件和所述遷移身份碼,生成簽章文件;
所述源主機(jī)基于所述簽章文件的明文、所述目標(biāo)sTPM實(shí)例的明文和所述源主機(jī)的私鑰,生成所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文。
在另一種可能的實(shí)現(xiàn)方式中,所述源主機(jī)基于所述簽章文件的明文、所述目標(biāo)sTPM實(shí)例的明文和所述源主機(jī)的私鑰,生成所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文,包括:
所述源主機(jī)基于所述簽章文件的明文,對(duì)所述目標(biāo)sTPM實(shí)例的明文進(jìn)行加密,得到所述目標(biāo)sTPM實(shí)例的密文;所述源主機(jī)基于所述源主機(jī)的私鑰,對(duì)所述簽章文件的明文進(jìn)行加密,得到所述簽章文件的密文。
由于簽章文件是基于遷移身份碼和描述文件生成的,因此,用簽章文件的明文對(duì)目標(biāo)sTPM實(shí)例的明文進(jìn)行加密,可以加強(qiáng)保密性。
結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在上述第一方面的第二種可能的實(shí)現(xiàn)方式中,所述源主機(jī)基于所述目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的明文、所述遷移身份碼和所述源主機(jī)的私鑰,生成簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文之前,還包括:
所述源主機(jī)對(duì)所述目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行備份;
所述源主機(jī)對(duì)所述目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行卸載。
其中,源主機(jī)對(duì)目標(biāo)sTPM實(shí)例進(jìn)行備份,可以使源主機(jī)在進(jìn)行目標(biāo)sTPM實(shí)例的遷移時(shí),通過(guò)備份的目標(biāo)sTPM實(shí)例保證目標(biāo)虛擬機(jī)的可信性,以維持目標(biāo)虛擬機(jī)的運(yùn)行狀態(tài),實(shí)現(xiàn)目標(biāo)虛擬機(jī)上業(yè)務(wù)的連續(xù)性。
又由于sTPM借助軟件模塊來(lái)實(shí)現(xiàn)TPM功能,而sTPM實(shí)例為sTPM的文件表現(xiàn)形式,因此sTPM實(shí)例可以作為一個(gè)整體,簡(jiǎn)單方便地在物理主機(jī)上進(jìn)行卸載,也就使得sTPM實(shí)例具有較高的使用和遷移的靈活性。
結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在上述第一方面的第三種可能的實(shí)現(xiàn)方式中,所述源主機(jī)基于所述目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí) 例的明文、所述遷移身份碼和所述源主機(jī)的私鑰,生成簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文之前,還包括:
所述源主機(jī)向證書(shū)認(rèn)證CA管理中心發(fā)送密鑰獲取請(qǐng)求,所述密鑰獲取請(qǐng)求中攜帶所述源主機(jī)的數(shù)字證書(shū),以使所述CA管理中心基于所述源主機(jī)的數(shù)字證書(shū)返回所述源主機(jī)的私鑰;
所述源主機(jī)接收所述CA管理中心返回的所述源主機(jī)的私鑰。
其中,CA管理中心在向源主機(jī)發(fā)送源主機(jī)的私鑰時(shí),還可以將源主機(jī)的公鑰在CA管理中心中進(jìn)行公布,以使目的主機(jī)可以在CA管理中心中獲取源主機(jī)的公鑰,從而可以對(duì)源主機(jī)向目的主機(jī)發(fā)送的加密文件進(jìn)行解密。
需要說(shuō)明的是,CA管理中心是證書(shū)授權(quán)機(jī)構(gòu),用于對(duì)稱加密密鑰的分發(fā)、身份認(rèn)證、信息的完整性檢驗(yàn)和交易防抵賴等,是安全電子信息交換的核心。
結(jié)合第一方面,在上述第一方面的第四種可能的實(shí)現(xiàn)方式中,所述源主機(jī)將所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到所述目的主機(jī)上之后,還包括:
當(dāng)所述源主機(jī)接收到所述目的主機(jī)發(fā)送的刪除請(qǐng)求時(shí),刪除備份的目標(biāo)sTPM實(shí)例和所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例。
其中,當(dāng)目的主機(jī)完成目標(biāo)虛擬機(jī)遷移之后,目的主機(jī)可以向源主機(jī)發(fā)送刪除請(qǐng)求,使源主機(jī)基于該刪除請(qǐng)求,刪除備份的目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例,以節(jié)省源主機(jī)上的存儲(chǔ)空間,減輕源主機(jī)的負(fù)載。
第二方面,提供了一種虛擬機(jī)可信遷移方法,所述方法包括:
當(dāng)目的主機(jī)接收到源主機(jī)發(fā)送的遷移請(qǐng)求時(shí),基于所述遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,向所述源主機(jī)發(fā)送遷移響應(yīng),所述遷移響應(yīng)中攜帶遷移身份碼,以使所述源主機(jī)基于所述遷移身份碼返回簽章文件的密文和所述目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的密文;
當(dāng)所述目的主機(jī)接收到所述源主機(jī)發(fā)送的所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文時(shí),基于所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文,建立所述目標(biāo)sTPM實(shí)例與所述目的主機(jī)的硬件TPM之間的可信鏈;
在所述目的主機(jī)建立所述目標(biāo)sTPM實(shí)例與所述目的主機(jī)的硬件TPM之間的可信鏈之后,向所述源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng),以使所述源主機(jī)將所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到所述目的主機(jī)上;
當(dāng)所述目的主機(jī)接收到所述源主機(jī)動(dòng)態(tài)遷移的所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例時(shí),基于所述虛擬機(jī)實(shí)例,建立所述目標(biāo)虛擬機(jī)與所述目標(biāo)sTPM實(shí)例之間的可信鏈。
其中,在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,進(jìn)而恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
結(jié)合第二方面,在上述第二方面的第一種可能的實(shí)現(xiàn)方式中,所述目的主機(jī)基于所述遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,向所述源主機(jī)發(fā)送遷移響應(yīng),包括:
所述目的主機(jī)基于所述遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,建立臨時(shí)sTPM實(shí)例;
所述目的主機(jī)對(duì)所述臨時(shí)sTPM實(shí)例進(jìn)行哈希運(yùn)算,得到所述臨時(shí)sTPM實(shí)例的哈希值;
所述目的主機(jī)將所述臨時(shí)sTPM實(shí)例的哈希值確定為遷移身份碼;
所述目的主機(jī)向所述源主機(jī)發(fā)送遷移響應(yīng),所述遷移響應(yīng)中攜帶所述遷移身份碼。
結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在上述第一方面的第二種可能的實(shí)現(xiàn)方式中,所述目的主機(jī)基于所述遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,建立臨時(shí)sTPM實(shí)例,包括:
所述目的主機(jī)基于所述遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,判斷是否接受所述虛擬機(jī)的遷移;
當(dāng)所述目的主機(jī)接受所述虛擬機(jī)的遷移時(shí),建立臨時(shí)sTPM實(shí)例。
其中,目的主機(jī)可以基于自身的資源狀況判斷是否接受目標(biāo)虛擬機(jī)的遷移,以避免當(dāng)目標(biāo)虛擬機(jī)遷移到目的主機(jī)上時(shí),目的主機(jī)上的業(yè)務(wù)負(fù)載超出目的主機(jī)的業(yè)務(wù)負(fù)載極限,導(dǎo)致目標(biāo)虛擬機(jī)不能正常運(yùn)行。
結(jié)合第二方面,在上述第二方面的第三種可能的實(shí)現(xiàn)方式中,所述目的主機(jī)基于所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文,建立所述目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,包括:
所述目的主機(jī)基于所述源主機(jī)的公鑰,對(duì)所述簽章文件的密文進(jìn)行解密,得到所述簽章文件的明文,所述源主機(jī)的公鑰為所述目的主機(jī)從證書(shū)認(rèn)證CA管理中心中獲取得到;
所述目的主機(jī)對(duì)所述簽章文件的明文進(jìn)行解析,得到描述文件和遷移身份碼;
所述目的主機(jī)基于所述簽章文件的明文,對(duì)所述目標(biāo)sTPM實(shí)例的密文進(jìn)行解密,得到所述目標(biāo)sTPM實(shí)例的明文;
所述目的主機(jī)基于所述描述文件、所述遷移身份碼和所述目標(biāo)sTPM實(shí)例的明文,建立所述目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
由于CA管理中心中公布了源主機(jī)的公鑰,因此,目的主機(jī)可以在CA管理中心中獲取源主機(jī)的公鑰,并基于源主機(jī)的公鑰,對(duì)簽章文件的密文進(jìn)行解密。
結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在上述第二方面的第四種可能的實(shí)現(xiàn)方式中,所述目的主機(jī)基于所述描述文件、所述遷移身份碼和所述目標(biāo)sTPM實(shí)例的明文,建立所述目標(biāo)sTPM實(shí)例與所述目的主機(jī)的硬件TPM之間的可信鏈,包括:
所述目的主機(jī)基于所述遷移身份碼,對(duì)所述簽章文件的新鮮性進(jìn)行驗(yàn)證;
如果所述簽章文件的新鮮性驗(yàn)證通過(guò),則所述目的主機(jī)基于所述描述文件和所述目標(biāo)sTPM實(shí)例的明文,對(duì)所述目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,所述描述文件中包括所述目標(biāo)sTPM實(shí)例的哈希值;
如果所述目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),則所述目的主機(jī)基于所述目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;
所述目的主機(jī)將所述描述文件中包括的哈希值存儲(chǔ)在所述臨時(shí)度量列表中;
所述目的主機(jī)基于所述目的主機(jī)的指定寄存器,對(duì)所述臨時(shí)度量列表進(jìn)行密封,以建立所述目標(biāo)sTPM實(shí)例與所述目的主機(jī)的硬件TPM之間的可信鏈。
其中,目的主機(jī)基于遷移身份碼,對(duì)該簽章文件的新鮮性進(jìn)行驗(yàn)證,可以避免除源主機(jī)之外的其它物理主機(jī)將sTPM實(shí)例遷移到目的主機(jī)上。
而目的主機(jī)基于描述文件和目標(biāo)sTPM實(shí)例的明文,對(duì)目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,可以當(dāng)目標(biāo)sTPM實(shí)例在遷移時(shí)發(fā)生數(shù)據(jù)泄露而變得不完整時(shí),終止目標(biāo)sTPM實(shí)例的遷移,有效避免黑客的攻擊。
結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在上述第二方面的第五種可能的實(shí)現(xiàn)方式中,所述目的主機(jī)基于所述描述文件和所述目標(biāo)sTPM實(shí)例的明文,對(duì)所述目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,包括:
所述目的主機(jī)基于所述目標(biāo)sTPM實(shí)例的明文,確定所述目標(biāo)sTPM實(shí)例的哈希值;
如果確定的哈希值與所述描述文件中包括的哈希值相同,則所述目的主機(jī)確定所述目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),否則,所述目的主機(jī)確定所述目標(biāo)sTPM實(shí)例的完整性驗(yàn)證不通過(guò)。
結(jié)合第二方面,在上述第二方面的第六種可能的實(shí)現(xiàn)方式中,所述目的主機(jī)向所述源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng)之前,還包括:
所述目的主機(jī)建立空白虛擬機(jī);
相應(yīng)地,所述目的主機(jī)基于所述虛擬機(jī)實(shí)例,建立所述目標(biāo)虛擬機(jī)與所述目標(biāo)sTPM實(shí)例之間的可信鏈,包括:
所述目的主機(jī)將所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例存儲(chǔ)到所述空白虛擬機(jī)中,得到所述目的主機(jī)上的目標(biāo)虛擬機(jī);
所述目的主機(jī)基于所述虛擬機(jī)實(shí)例,將所述目標(biāo)sTPM實(shí)例加載到所述目標(biāo)虛擬機(jī)中。
由于sTPM借助軟件模塊來(lái)實(shí)現(xiàn)TPM功能,而sTPM實(shí)例為sTPM的文件表現(xiàn)形式,因此sTPM實(shí)例可以作為一個(gè)整體,簡(jiǎn)單方便地在物理主機(jī)上進(jìn)行加載,也就使得sTPM實(shí)例具有較高的使用和遷移的靈活性。
結(jié)合第二方面的第六種可能的實(shí)現(xiàn)方式,在上述第二方面的第七種可能的實(shí)現(xiàn)方式中,所述目的主機(jī)基于所述虛擬機(jī)實(shí)例,將所述目標(biāo)sTPM實(shí)例加載到所述目標(biāo)虛擬機(jī)中,包括:
所述目的主機(jī)基于所述虛擬機(jī)實(shí)例,從存儲(chǔ)的虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中,獲取對(duì)應(yīng)的sTPM實(shí)例;
所述目的主機(jī)確定獲取的sTPM實(shí)例的哈希值;
所述目的主機(jī)基于所述目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;
所述目的主機(jī)從所述臨時(shí)度量列表中,獲取所述目標(biāo)sTPM實(shí)例的哈希值;
所述目的主機(jī)基于確定的哈希值與獲取的哈希值,對(duì)所述獲取的sTPM實(shí) 例的完整性進(jìn)行驗(yàn)證;
如果所述獲取的sTPM實(shí)例的完整性驗(yàn)證通過(guò),則所述目的主機(jī)將所述獲取的sTPM實(shí)例確定為所述目標(biāo)sTPM實(shí)例,并加載到所述目標(biāo)虛擬機(jī)中。
由于當(dāng)目的主機(jī)的基礎(chǔ)環(huán)境發(fā)生變化時(shí),指定寄存器也會(huì)發(fā)生變化,而此時(shí)源主機(jī)將不能對(duì)密封后的度量列表進(jìn)行解密封,因此,目的主機(jī)通過(guò)對(duì)度量列表進(jìn)行密封以及解密封的操作,不僅保證了度量列表的可信性,也間接驗(yàn)證了目的主機(jī)的基礎(chǔ)環(huán)境的可信性。
結(jié)合第二方面的第七種可能的實(shí)現(xiàn)方式,在上述第二方面的第八種可能的實(shí)現(xiàn)方式中,所述目的主機(jī)基于所述虛擬機(jī)實(shí)例,建立所述目標(biāo)虛擬機(jī)與所述目標(biāo)sTPM實(shí)例之間的可信鏈之前,還包括:
所述目的主機(jī)將所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例和所述目標(biāo)sTPM實(shí)例,存儲(chǔ)到所述虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中。
由于sTPM可以為虛擬機(jī)提供TPM功能,且sTPM實(shí)例與sTPM唯一對(duì)應(yīng),虛擬機(jī)實(shí)例與虛擬機(jī)唯一對(duì)應(yīng),因此,可以通過(guò)虛擬機(jī)實(shí)例與sTPM實(shí)例的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)sTPM與虛擬機(jī)之間的可信鏈,并且可以有效地避免sTPM被另一個(gè)虛擬機(jī)讀取而發(fā)生安全信息泄漏。
結(jié)合第二方面的第七種可能的實(shí)現(xiàn)方式,在上述第二方面的第九種可能的實(shí)現(xiàn)方式中,所述目的主機(jī)從所述臨時(shí)度量列表中,獲取所述目標(biāo)sTPM實(shí)例的哈希值之后,還包括:
所述目的主機(jī)基于所述目的主機(jī)的指定寄存器,對(duì)所述臨時(shí)度量列表進(jìn)行密封。
第三方面,提供了一種虛擬機(jī)可信遷移裝置,所述裝置包括:
第一發(fā)送模塊,用于向目的主機(jī)發(fā)送遷移請(qǐng)求,所述遷移請(qǐng)求中攜帶目標(biāo)虛擬機(jī)的遷移信息,以使所述目的主機(jī)基于所述遷移信息進(jìn)行遷移響應(yīng),所述遷移響應(yīng)中攜帶遷移身份碼;
生成模塊,用于當(dāng)接收到所述目的主機(jī)返回的所述遷移響應(yīng)時(shí),基于所述目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的明文、所述遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文;
第二發(fā)送模塊,用于將所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文 發(fā)送給所述目的主機(jī),以使所述目的主機(jī)基于所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文,建立所述目標(biāo)sTPM實(shí)例與所述目的主機(jī)的硬件TPM之間的可信鏈;
遷移模塊,用于當(dāng)接收到所述目的主機(jī)發(fā)送的虛擬機(jī)遷移響應(yīng)時(shí),將所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到所述目的主機(jī)上,以使所述目的主機(jī)基于所述虛擬機(jī)實(shí)例建立所述目標(biāo)虛擬機(jī)與所述目標(biāo)sTPM實(shí)例之間的可信鏈。
其中,在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,進(jìn)而恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
結(jié)合第三方面,在上述第三方面的第一種可能的實(shí)現(xiàn)方式中,所述生成模塊包括:
第一生成單元,用于生成所述目標(biāo)sTPM實(shí)例的描述文件;
第二生成單元,用于基于所述描述文件和所述遷移身份碼,生成簽章文件;
第三生成單元,用于基于所述簽章文件的明文、所述目標(biāo)sTPM實(shí)例的明文和所述源主機(jī)的私鑰,生成所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文。
在另一種可能的實(shí)現(xiàn)方式中,所述第三生成單元包括:
第一加密子單元,用于基于所述簽章文件的明文,對(duì)所述目標(biāo)sTPM實(shí)例的明文進(jìn)行加密,得到所述目標(biāo)sTPM實(shí)例的密文;
第二加密子單元,用于基于所述源主機(jī)的私鑰,對(duì)所述簽章文件的明文進(jìn)行加密,得到所述簽章文件的密文。
由于簽章文件是基于遷移身份碼和描述文件生成的,因此,用簽章文件的明文對(duì)目標(biāo)sTPM實(shí)例的明文進(jìn)行加密,可以加強(qiáng)保密性。
結(jié)合第三方面或第三方面的第一種可能實(shí)現(xiàn)方式,在上述第三方面的第二種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
備份模塊,用于對(duì)所述目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行備份;
卸載模塊,用于對(duì)所述目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行卸載。
其中,源主機(jī)對(duì)目標(biāo)sTPM實(shí)例進(jìn)行備份,可以使源主機(jī)在進(jìn)行目標(biāo)sTPM 實(shí)例的遷移時(shí),通過(guò)備份的目標(biāo)sTPM實(shí)例保證目標(biāo)虛擬機(jī)的可信性,以維持目標(biāo)虛擬機(jī)的運(yùn)行狀態(tài),實(shí)現(xiàn)目標(biāo)虛擬機(jī)上業(yè)務(wù)的連續(xù)性。
其中,源主機(jī)對(duì)目標(biāo)sTPM實(shí)例進(jìn)行備份,可以使源主機(jī)在進(jìn)行目標(biāo)sTPM實(shí)例的遷移時(shí),通過(guò)備份的目標(biāo)sTPM實(shí)例保證目標(biāo)虛擬機(jī)的可信性,以維持目標(biāo)虛擬機(jī)的運(yùn)行狀態(tài),實(shí)現(xiàn)目標(biāo)虛擬機(jī)上業(yè)務(wù)的連續(xù)性。
又由于sTPM借助軟件模塊來(lái)實(shí)現(xiàn)TPM功能,而sTPM實(shí)例為sTPM的文件表現(xiàn)形式,因此sTPM實(shí)例可以作為一個(gè)整體,簡(jiǎn)單方便地在物理主機(jī)上進(jìn)行卸載,也就使得sTPM實(shí)例具有較高的使用和遷移的靈活性。
結(jié)合第三方面或第三方面的第一種可能的實(shí)現(xiàn)方式,在上述第三方面的第三種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
第三發(fā)送模塊,用于向證書(shū)認(rèn)證CA管理中心發(fā)送密鑰獲取請(qǐng)求,所述密鑰獲取請(qǐng)求中攜帶所述源主機(jī)的數(shù)字證書(shū),以使所述CA管理中心基于所述源主機(jī)的數(shù)字證書(shū)返回所述源主機(jī)的私鑰;
接收模塊,用于接收所述CA管理中心返回的所述源主機(jī)的私鑰。
其中,CA管理中心在向源主機(jī)發(fā)送源主機(jī)的私鑰時(shí),還可以將源主機(jī)的公鑰在CA管理中心中進(jìn)行公布,以使目的主機(jī)可以在CA管理中心中獲取源主機(jī)的公鑰,從而可以對(duì)源主機(jī)向目的主機(jī)發(fā)送的加密文件進(jìn)行解密。
結(jié)合第三方面,在上述第三方面的第四種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
刪除模塊,用于當(dāng)接收到所述目的主機(jī)發(fā)送的刪除請(qǐng)求時(shí),刪除備份的目標(biāo)sTPM實(shí)例和所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例。
其中,當(dāng)目的主機(jī)完成目標(biāo)虛擬機(jī)遷移之后,目的主機(jī)可以向源主機(jī)發(fā)送刪除請(qǐng)求,使源主機(jī)基于該刪除請(qǐng)求,刪除備份的目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例,以節(jié)省源主機(jī)上的存儲(chǔ)空間,減輕源主機(jī)的負(fù)載。
第四方面,提供了一種虛擬機(jī)可信遷移裝置,所述裝置包括:
第一發(fā)送模塊,用于當(dāng)接收到源主機(jī)發(fā)送的遷移請(qǐng)求時(shí),基于所述遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,向所述源主機(jī)發(fā)送遷移響應(yīng),所述遷移響應(yīng)中攜帶遷移身份碼,以使所述源主機(jī)基于所述遷移身份碼返回簽章文件的密文和所述目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的密文;
第一建立模塊,用于當(dāng)接收到所述源主機(jī)發(fā)送的所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文時(shí),基于所述簽章文件的密文和所述目標(biāo)sTPM實(shí)例的密文,建立所述目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈;
第二發(fā)送模塊,用于在建立所述目標(biāo)sTPM實(shí)例與所述目的主機(jī)的硬件TPM之間的可信鏈之后,向所述源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng),以使所述源主機(jī)將所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到所述目的主機(jī)上;
第二建立模塊,用于當(dāng)接收到所述源主機(jī)動(dòng)態(tài)遷移的所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例時(shí),基于所述虛擬機(jī)實(shí)例,建立所述目標(biāo)虛擬機(jī)與所述目標(biāo)sTPM實(shí)例之間的可信鏈。
其中,在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,進(jìn)而恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
結(jié)合第四方面,在上述第四方面的第一種可能的實(shí)現(xiàn)方式中,所述第一發(fā)送模塊包括:
第一建立單元,用于基于所述遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,建立臨時(shí)sTPM實(shí)例;
運(yùn)算單元,用于對(duì)所述臨時(shí)sTPM實(shí)例進(jìn)行哈希運(yùn)算,得到所述臨時(shí)sTPM實(shí)例的哈希值;
確定單元,用于將所述臨時(shí)sTPM實(shí)例的哈希值確定為遷移身份碼;
發(fā)送單元,用于向所述源主機(jī)發(fā)送遷移響應(yīng),所述遷移響應(yīng)中攜帶所述遷移身份碼。
結(jié)合第四方面的第一種可能的實(shí)現(xiàn)方式,在上述第四方面的第二種可能的實(shí)現(xiàn)方式中,所述第一建立單元包括:
判斷子單元,用于基于所述遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,判斷是否接受所述虛擬機(jī)的遷移;
建立子單元,用于當(dāng)接受所述虛擬機(jī)的遷移時(shí),建立臨時(shí)sTPM實(shí)例。
其中,目的主機(jī)可以基于自身的資源狀況判斷是否接受目標(biāo)虛擬機(jī)的遷移,以避免當(dāng)目標(biāo)虛擬機(jī)遷移到目的主機(jī)上時(shí),目的主機(jī)上的業(yè)務(wù)負(fù)載超出目的主 機(jī)的業(yè)務(wù)負(fù)載極限,導(dǎo)致目標(biāo)虛擬機(jī)不能正常運(yùn)行。
結(jié)合第四方面,在上述第四方面的第三種可能的實(shí)現(xiàn)方式中,所述第一建立模塊包括:
第一解密單元,用于基于所述源主機(jī)的公鑰,對(duì)所述簽章文件的密文進(jìn)行解密,得到所述簽章文件的明文,所述源主機(jī)的公鑰為所述目的主機(jī)從證書(shū)認(rèn)證CA管理中心中獲取得到;
解析單元,用于對(duì)所述簽章文件的明文進(jìn)行解析,得到描述文件和遷移身份碼;
第二解密單元,用于基于所述簽章文件的明文,對(duì)所述目標(biāo)sTPM實(shí)例的密文進(jìn)行解密,得到所述目標(biāo)sTPM實(shí)例的明文,;
第二建立單元,用于基于所述描述文件、所述遷移身份碼和所述目標(biāo)sTPM實(shí)例的明文,建立所述目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
由于CA管理中心中公布了源主機(jī)的公鑰,因此,目的主機(jī)可以在CA管理中心中獲取源主機(jī)的公鑰,并基于源主機(jī)的公鑰,對(duì)簽章文件的密文進(jìn)行解密。
結(jié)合第四方面的第三種可能的實(shí)現(xiàn)方式,在上述第四方面的第四種可能的實(shí)現(xiàn)方式中,所述第二建立單元包括:
第一驗(yàn)證子單元,用于基于所述遷移身份碼,對(duì)所述簽章文件的新鮮性進(jìn)行驗(yàn)證;
第二驗(yàn)證子單元,用于如果所述簽章文件的新鮮性驗(yàn)證通過(guò),則基于所述描述文件和所述目標(biāo)sTPM實(shí)例的明文,對(duì)所述目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,所述描述文件中包括所述目標(biāo)sTPM實(shí)例的哈希值;
第一解密封子單元,用于如果所述目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),則基于所述目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;
存儲(chǔ)子單元,用于將所述描述文件中包括的哈希值存儲(chǔ)在所述臨時(shí)度量列表中;
第一密封子單元,用于基于所述目的主機(jī)的指定寄存器,對(duì)所述臨時(shí)度量列表進(jìn)行密封,以建立所述目標(biāo)sTPM實(shí)例與所述目的主機(jī)的硬件TPM之間的可信鏈。
其中,目的主機(jī)基于遷移身份碼,對(duì)該簽章文件的新鮮性進(jìn)行驗(yàn)證,可以 避免除源主機(jī)之外的其它物理主機(jī)將sTPM實(shí)例遷移到目的主機(jī)上。
而目的主機(jī)基于描述文件和目標(biāo)sTPM實(shí)例的明文,對(duì)目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,可以當(dāng)目標(biāo)sTPM實(shí)例在遷移時(shí)發(fā)生數(shù)據(jù)泄露而變得不完整時(shí),終止目標(biāo)sTPM實(shí)例的遷移,有效避免黑客的攻擊。
結(jié)合第四方面的第四種可能的實(shí)現(xiàn)方式,在上述第四方面的第五種可能的實(shí)現(xiàn)方式中,所述第二驗(yàn)證子單元包括:
第一確定子單元,用于基于所述目標(biāo)sTPM實(shí)例的明文,確定所述目標(biāo)sTPM實(shí)例的哈希值;
第二確定子單元,用于如果確定的哈希值與所述描述文件中包括的哈希值相同,則確定所述目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),否則,確定所述目標(biāo)sTPM實(shí)例的完整性驗(yàn)證不通過(guò)。
結(jié)合第四方面,在上述第四方面的第六種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
第三建立模塊,用于建立空白虛擬機(jī);
相應(yīng)地,基于第二建立模塊包括:
第一存儲(chǔ)單元,用于將所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例存儲(chǔ)到所述空白虛擬機(jī)中,得到所述目的主機(jī)上的目標(biāo)虛擬機(jī);
加載單元,用于基于所述虛擬機(jī)實(shí)例,將所述目標(biāo)sTPM實(shí)例加載到所述目標(biāo)虛擬機(jī)中。
由于sTPM借助軟件模塊來(lái)實(shí)現(xiàn)TPM功能,而sTPM實(shí)例為sTPM的文件表現(xiàn)形式,因此sTPM實(shí)例可以作為一個(gè)整體,簡(jiǎn)單方便地在物理主機(jī)上進(jìn)行加載,也就使得sTPM實(shí)例具有較高的使用和遷移的靈活性。
結(jié)合第四方面的第六種可能的實(shí)現(xiàn)方式,在上述第四方面的第七種可能的實(shí)現(xiàn)方式中,所述加載單元包括:
第一獲取子單元,用于基于所述虛擬機(jī)實(shí)例,從存儲(chǔ)的虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中,獲取對(duì)應(yīng)的sTPM實(shí)例;
第三確定子單元,用于確定獲取的sTPM實(shí)例的哈希值;
第二解密封子單元,用于基于所述目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;
第二獲取子單元,用于從所述臨時(shí)度量列表中,獲取所述目標(biāo)sTPM實(shí)例 的哈希值;
第三驗(yàn)證子單元,用于基于確定的哈希值與獲取的哈希值,對(duì)所述獲取的sTPM實(shí)例的完整性進(jìn)行驗(yàn)證;
第四確定子單元,用于如果所述獲取的sTPM實(shí)例的完整性驗(yàn)證通過(guò),則將所述獲取的sTPM實(shí)例確定為所述目標(biāo)sTPM實(shí)例,并加載到所述目標(biāo)虛擬機(jī)中。
由于當(dāng)目的主機(jī)的基礎(chǔ)環(huán)境發(fā)生變化時(shí),指定寄存器也會(huì)發(fā)生變化,而此時(shí)源主機(jī)將不能對(duì)密封后的度量列表進(jìn)行解密封,因此,目的主機(jī)通過(guò)對(duì)度量列表進(jìn)行密封以及解密封的操作,不僅保證了度量列表的可信性,也間接驗(yàn)證了目的主機(jī)的基礎(chǔ)環(huán)境的可信性。
結(jié)合第四方面的第七種可能的實(shí)現(xiàn)方式,在上述第四方面的第八種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
存儲(chǔ)模塊,用于將所述目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例和所述目標(biāo)sTPM實(shí)例,存儲(chǔ)到所述虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中。
由于sTPM可以為虛擬機(jī)提供TPM功能,且sTPM實(shí)例與sTPM唯一對(duì)應(yīng),虛擬機(jī)實(shí)例與虛擬機(jī)唯一對(duì)應(yīng),因此,可以通過(guò)虛擬機(jī)實(shí)例與sTPM實(shí)例的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)sTPM與虛擬機(jī)之間的可信鏈,并且可以有效地避免sTPM被另一個(gè)虛擬機(jī)讀取而發(fā)生安全信息泄漏。
結(jié)合第四方面的第七種可能的實(shí)現(xiàn)方式,在上述第四方面的第九種可能的實(shí)現(xiàn)方式中,所述加載單元還包括:
第二密封子單元,用于基于所述目的主機(jī)的指定寄存器,對(duì)所述臨時(shí)度量列表進(jìn)行密封。
在本發(fā)明實(shí)施例中,源主機(jī)基于目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的明文、目的主機(jī)發(fā)送的遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,并將簽章文件的密文和目標(biāo)sTPM實(shí)例的密文發(fā)送給目的主機(jī),使目的主機(jī)建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,之后,目的主機(jī)再將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上,使目的主機(jī)基于虛擬機(jī)實(shí)例建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈,以完成目標(biāo)虛擬機(jī)的遷移,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的 主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,以恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1是本發(fā)明實(shí)施例的提供的一種物理主機(jī)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例的提供的一種虛擬機(jī)的可信遷移方法的流程圖;
圖3是本發(fā)明實(shí)施例的提供的另一種虛擬機(jī)的可信遷移方法的流程圖;
圖4是本發(fā)明實(shí)施例的提供的又一種虛擬機(jī)的可信遷移方法的流程圖;
圖5是本發(fā)明實(shí)施例提供的第一種虛擬機(jī)可信遷移裝置的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例提供的一種生成模塊的結(jié)構(gòu)示意圖;
圖7是本發(fā)明實(shí)施例提供的一種第三生成單元的結(jié)構(gòu)示意圖;
圖8是本發(fā)明實(shí)施例提供的另一種生成模塊的結(jié)構(gòu)示意圖;
圖9是本發(fā)明實(shí)施例提供的第二種虛擬機(jī)可信遷移裝置的結(jié)構(gòu)示意圖;
圖10是本發(fā)明實(shí)施例提供的第三種虛擬機(jī)可信遷移裝置的結(jié)構(gòu)示意圖;
圖11是本發(fā)明實(shí)施例提供的第四種虛擬機(jī)可信遷移裝置的結(jié)構(gòu)示意圖;
圖12是本發(fā)明實(shí)施例提供的一種第一發(fā)送模塊的結(jié)構(gòu)示意圖;
圖13是本發(fā)明實(shí)施例提供的一種第一建立單元的結(jié)構(gòu)示意圖;
圖14是本發(fā)明實(shí)施例提供的一種第一建立模塊的結(jié)構(gòu)示意圖;
圖15是本發(fā)明實(shí)施例提供的一種第二建立單元的結(jié)構(gòu)示意圖;
圖16是本發(fā)明實(shí)施例提供的一種第二驗(yàn)證子單元的結(jié)構(gòu)示意圖;
圖17是本發(fā)明實(shí)施例提供的第五種虛擬機(jī)可信遷移裝置的結(jié)構(gòu)示意圖;
圖18是本發(fā)明實(shí)施例提供的一種第二建立模塊的結(jié)構(gòu)示意圖;
圖19是本發(fā)明實(shí)施例提供的一種加載單元的結(jié)構(gòu)示意圖;
圖20是本發(fā)明實(shí)施例提供的第六種虛擬機(jī)可信遷移裝置的結(jié)構(gòu)示意圖;
圖21是本發(fā)明實(shí)施例提供的另一種加載單元的結(jié)構(gòu)示意圖;
圖22是本發(fā)明實(shí)施例提供的第七種虛擬機(jī)可信遷移裝置的結(jié)構(gòu)示意圖;
圖23是本發(fā)明實(shí)施例提供的第八種虛擬機(jī)可信遷移裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
圖1是本發(fā)明實(shí)施例提供的一種物理主機(jī)的結(jié)構(gòu)示意圖,參見(jiàn)圖1,該物理主機(jī)主要包括硬件層的硬件TPM、虛擬機(jī)監(jiān)視器(英文:Virtual Machine Monitor,簡(jiǎn)稱VMM)、TPM管理中心以及多個(gè)虛擬機(jī)等。物理主機(jī)上安裝有多個(gè)虛擬機(jī),該多個(gè)虛擬機(jī)的每個(gè)虛擬機(jī)上安裝有驅(qū)動(dòng),該驅(qū)動(dòng)保存有該虛擬機(jī)的配置信息,該驅(qū)動(dòng)對(duì)應(yīng)該虛擬機(jī)上的多個(gè)應(yīng)用程序(英文:Application,簡(jiǎn)稱:app),且該多個(gè)虛擬機(jī)是基于物理主機(jī)的硬件TPM建立的,硬件TPM是具有可信性的處理芯片,在硬件TPM和該多個(gè)虛擬機(jī)之間設(shè)置有TPM管理中心,TPM管理中心上維護(hù)有一個(gè)度量列表,該度量列表用于存儲(chǔ)多個(gè)軟件可信平臺(tái)模塊(英文:Software Trusted Platform Module,簡(jiǎn)稱:sTPM)實(shí)例對(duì)應(yīng)的多個(gè)哈希值,該多個(gè)sTPM實(shí)例與該多個(gè)虛擬機(jī)一一對(duì)應(yīng),用于保證該多個(gè)虛擬機(jī)的可信性。其中,VMM為管理虛擬機(jī)的平臺(tái),例如可以為KVM平臺(tái)。
圖2是本發(fā)明實(shí)施例提供的一種虛擬機(jī)的可信遷移方法的流程圖。參見(jiàn)圖2,該方法用于源主機(jī)中,包括:
步驟201:源主機(jī)向目的主機(jī)發(fā)送遷移請(qǐng)求,遷移請(qǐng)求中攜帶目標(biāo)虛擬機(jī)的遷移信息,以使目的主機(jī)基于遷移信息進(jìn)行遷移響應(yīng),遷移響應(yīng)中攜帶遷移身份碼。
步驟202:當(dāng)源主機(jī)接收到目的主機(jī)返回的遷移響應(yīng)時(shí),基于目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的明文、遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文。
步驟203:源主機(jī)將簽章文件的密文和目標(biāo)sTPM實(shí)例的密文發(fā)送給目的主 機(jī),以使目的主機(jī)基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
步驟204:當(dāng)源主機(jī)接收到目的主機(jī)發(fā)送的虛擬機(jī)遷移響應(yīng)時(shí),將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上,以使目的主機(jī)基于虛擬機(jī)實(shí)例建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈。
在本發(fā)明實(shí)施例中,源主機(jī)基于目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的明文、目的主機(jī)發(fā)送的遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,并將簽章文件的密文和目標(biāo)sTPM實(shí)例的密文發(fā)送給目的主機(jī),使目的主機(jī)建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,之后,目的主機(jī)再將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上,使目的主機(jī)基于虛擬機(jī)實(shí)例建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈,以完成目標(biāo)虛擬機(jī)的遷移,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,以恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
可選地,源主機(jī)基于目標(biāo)虛擬機(jī)對(duì)應(yīng)的目標(biāo)sTPM實(shí)例的明文、遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,包括:
源主機(jī)生成目標(biāo)sTPM實(shí)例的描述文件;
源主機(jī)基于描述文件和遷移身份碼,生成簽章文件;
源主機(jī)基于簽章文件的明文、目標(biāo)sTPM實(shí)例的明文和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文。
可選地,源主機(jī)基于簽章文件的明文、目標(biāo)sTPM實(shí)例的明文和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,包括:
源主機(jī)基于簽章文件的明文,對(duì)目標(biāo)sTPM實(shí)例的明文進(jìn)行加密,得到目標(biāo)sTPM實(shí)例的密文;
源主機(jī)基于源主機(jī)的私鑰,對(duì)簽章文件的明文進(jìn)行加密,得到簽章文件的密文。
可選地,源主機(jī)基于目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的明文、遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí) 例的密文之前,還包括:
源主機(jī)對(duì)目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行備份;
源主機(jī)對(duì)目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行卸載。
可選地,源主機(jī)基于目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的明文、遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文之前,還包括:
源主機(jī)向證書(shū)認(rèn)證CA管理中心發(fā)送密鑰獲取請(qǐng)求,密鑰獲取請(qǐng)求中攜帶源主機(jī)的數(shù)字證書(shū),以使CA管理中心基于源主機(jī)的數(shù)字證書(shū)返回源主機(jī)的私鑰;
源主機(jī)接收CA管理中心返回的源主機(jī)的私鑰。
可選地,源主機(jī)將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上之后,還包括:
當(dāng)源主機(jī)接收到目的主機(jī)發(fā)送的刪除請(qǐng)求時(shí),刪除備份的目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例。
上述所有可選技術(shù)方案,均可按照任意結(jié)合形成本發(fā)明的可選實(shí)施例,本發(fā)明實(shí)施例對(duì)此不再一一贅述。
圖3是本發(fā)明實(shí)施例提供的一種虛擬機(jī)的可信遷移方法的流程圖。參見(jiàn)圖1,該方法用于目的主機(jī)中,包括:
步驟301:當(dāng)目的主機(jī)接收到源主機(jī)發(fā)送的遷移請(qǐng)求時(shí),基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,向源主機(jī)發(fā)送遷移響應(yīng),遷移響應(yīng)中攜帶遷移身份碼,以使源主機(jī)基于遷移身份碼返回簽章文件的密文和目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的密文。
步驟302:當(dāng)目的主機(jī)接收到源主機(jī)發(fā)送的簽章文件的密文和目標(biāo)sTPM實(shí)例的密文時(shí),基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
步驟303:在目的主機(jī)建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈之后,向源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng),以使源主機(jī)將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上。
步驟304:當(dāng)目的主機(jī)接收到源主機(jī)動(dòng)態(tài)遷移的目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例時(shí),基于虛擬機(jī)實(shí)例,建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈。
在本發(fā)明實(shí)施例中,源主機(jī)基于目的主機(jī)發(fā)送的遷移身份碼返回簽章文件的密文和目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的密文,目的主機(jī)基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,并在接收到源主機(jī)動(dòng)態(tài)遷移的目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例時(shí),基于虛擬機(jī)實(shí)例,建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈,完成目標(biāo)虛擬機(jī)的遷移,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,以恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
可選地,目的主機(jī)基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,向源主機(jī)發(fā)送遷移響應(yīng),包括:
目的主機(jī)基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,建立臨時(shí)sTPM實(shí)例;
目的主機(jī)對(duì)臨時(shí)sTPM實(shí)例進(jìn)行哈希運(yùn)算,得到臨時(shí)sTPM實(shí)例的哈希值;
目的主機(jī)將臨時(shí)sTPM實(shí)例的哈希值確定為遷移身份碼;
目的主機(jī)向源主機(jī)發(fā)送遷移響應(yīng),遷移響應(yīng)中攜帶遷移身份碼。
可選地,目的主機(jī)基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,建立臨時(shí)sTPM實(shí)例,包括:
目的主機(jī)基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,判斷是否接受虛擬機(jī)的遷移;
當(dāng)目的主機(jī)接受虛擬機(jī)的遷移時(shí),建立臨時(shí)sTPM實(shí)例。
可選地,目的主機(jī)基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,包括:
目的主機(jī)基于源主機(jī)的公鑰,對(duì)簽章文件的密文進(jìn)行解密,得到簽章文件的明文,源主機(jī)的公鑰為目的主機(jī)從證書(shū)認(rèn)證CA管理中心中獲取得到;
目的主機(jī)對(duì)簽章文件的明文進(jìn)行解析,得到描述文件和遷移身份碼;
目的主機(jī)基于簽章文件的明文,對(duì)目標(biāo)sTPM實(shí)例的密文進(jìn)行解密,得到目標(biāo)sTPM實(shí)例的明文;
目的主機(jī)基于描述文件、遷移身份碼和目標(biāo)sTPM實(shí)例的明文,建立目標(biāo) sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
可選地,目的主機(jī)基于描述文件、遷移身份碼和目標(biāo)sTPM實(shí)例的明文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,包括:
目的主機(jī)基于遷移身份碼,對(duì)簽章文件的新鮮性進(jìn)行驗(yàn)證;
如果簽章文件的新鮮性驗(yàn)證通過(guò),則目的主機(jī)基于描述文件和目標(biāo)sTPM實(shí)例的明文,對(duì)目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,描述文件中包括目標(biāo)sTPM實(shí)例的哈希值;
如果目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),則目的主機(jī)基于目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;
目的主機(jī)將描述文件中包括的哈希值存儲(chǔ)在臨時(shí)度量列表中;
目的主機(jī)基于目的主機(jī)的指定寄存器,對(duì)臨時(shí)度量列表進(jìn)行密封,以建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
可選地,目的主機(jī)基于描述文件和目標(biāo)sTPM實(shí)例的明文,對(duì)目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,包括:
目的主機(jī)基于目標(biāo)sTPM實(shí)例的明文,確定目標(biāo)sTPM實(shí)例的哈希值;
如果確定的哈希值與描述文件中包括的哈希值相同,則目的主機(jī)確定目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),否則,目的主機(jī)確定目標(biāo)sTPM實(shí)例的完整性驗(yàn)證不通過(guò)。
可選地,目的主機(jī)向源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng)之前,還包括:
目的主機(jī)建立空白虛擬機(jī);
相應(yīng)地,目的主機(jī)基于虛擬機(jī)實(shí)例,建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈,包括:
目的主機(jī)將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例存儲(chǔ)到空白虛擬機(jī)中,得到目的主機(jī)上的目標(biāo)虛擬機(jī);
目的主機(jī)基于虛擬機(jī)實(shí)例,將目標(biāo)sTPM實(shí)例加載到目標(biāo)虛擬機(jī)中。
可選地,目的主機(jī)基于虛擬機(jī)實(shí)例,將目標(biāo)sTPM實(shí)例加載到目標(biāo)虛擬機(jī)中,包括:
目的主機(jī)基于虛擬機(jī)實(shí)例,從存儲(chǔ)的虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中,獲取對(duì)應(yīng)的sTPM實(shí)例;
目的主機(jī)確定獲取的sTPM實(shí)例的哈希值;
目的主機(jī)基于目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;
目的主機(jī)從臨時(shí)度量列表中,獲取目標(biāo)sTPM實(shí)例的哈希值;
目的主機(jī)基于確定的哈希值與獲取的哈希值,對(duì)獲取的sTPM實(shí)例的完整性進(jìn)行驗(yàn)證;
如果獲取的sTPM實(shí)例的完整性驗(yàn)證通過(guò),則目的主機(jī)將獲取的sTPM實(shí)例確定為目標(biāo)sTPM實(shí)例,并加載到目標(biāo)虛擬機(jī)中。
可選地,目的主機(jī)基于虛擬機(jī)實(shí)例,建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈之前,還包括:
目的主機(jī)將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例和目標(biāo)sTPM實(shí)例,存儲(chǔ)到虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中。
可選地,目的主機(jī)從臨時(shí)度量列表中,獲取目標(biāo)sTPM實(shí)例的哈希值之后,還包括:
目的主機(jī)基于目的主機(jī)的指定寄存器,對(duì)臨時(shí)度量列表進(jìn)行密封。
上述所有可選技術(shù)方案,均可按照任意結(jié)合形成本發(fā)明的可選實(shí)施例,本發(fā)明實(shí)施例對(duì)此不再一一贅述。
圖4是本發(fā)明實(shí)施例提供的一種虛擬機(jī)的可信遷移方法的流程圖。參見(jiàn)圖4,該方法包括:
步驟401:源主機(jī)向目的主機(jī)發(fā)送遷移請(qǐng)求,該遷移請(qǐng)求中攜帶目標(biāo)虛擬機(jī)的遷移信息。
當(dāng)源主機(jī)為了實(shí)現(xiàn)自身的維護(hù)、升級(jí)或者動(dòng)態(tài)負(fù)載均衡時(shí),源主機(jī)需要將自身安裝的虛擬機(jī)遷移到其它物理主機(jī)上,此時(shí),可以將其它物理主機(jī)稱為目的主機(jī),之后,該源主機(jī)可以向目的主機(jī)發(fā)送遷移請(qǐng)求,該遷移請(qǐng)求用于請(qǐng)求將源主機(jī)上的目標(biāo)虛擬機(jī)和該目標(biāo)虛擬機(jī)對(duì)應(yīng)的業(yè)務(wù)遷移到目的主機(jī)上。
其中,遷移信息是指目標(biāo)虛擬機(jī)的屬性信息和目標(biāo)虛擬機(jī)上運(yùn)行的業(yè)務(wù)信息,例如,該遷移信息可以包括目標(biāo)虛擬機(jī)的大小、目標(biāo)虛擬機(jī)運(yùn)行時(shí)所需的內(nèi)存等等,本發(fā)明實(shí)施例對(duì)此不做具體限定。
進(jìn)一步地,在本發(fā)明實(shí)施例中,當(dāng)源主機(jī)或者目的主機(jī)上每新建立一個(gè)虛擬機(jī)時(shí),都需要對(duì)自身進(jìn)行可信環(huán)境初始化,以源主機(jī)為例,可信環(huán)境初始化 是指需要建立源主機(jī)上的可信運(yùn)行環(huán)境,由于源主機(jī)的硬件TPM是可信的,因此,建立源主機(jī)上的可信運(yùn)行環(huán)境的操作可以為:源主機(jī)建立自身包括的硬件TPM與該虛擬機(jī)的sTPM之間的可信鏈,并建立該虛擬機(jī)的sTPM與該虛擬機(jī)之間的可信鏈。
由于源主機(jī)的硬件TPM是可信的,因此,可以通過(guò)硬件TPM與sTPM之間的可信鏈,保證sTPM的可信性,而當(dāng)sTPM可信時(shí),又可以通過(guò)sTPM與虛擬機(jī)之間的可信鏈,保證源主機(jī)上安裝的虛擬機(jī)的可信性,從而保證源主機(jī)運(yùn)行環(huán)境的可信性。
需要說(shuō)明的是,硬件TPM為滿足TPM規(guī)范的硬件實(shí)現(xiàn),硬件TPM用于保證源主機(jī)的物理環(huán)境的可信性,例如,硬件TPM可以為滿足TPM規(guī)范的安全芯片等等,本發(fā)明實(shí)施例對(duì)此不做具體限定。另外,sTPM為滿足TPM規(guī)范的軟件實(shí)現(xiàn),也即是sTPM借助軟件模塊來(lái)實(shí)現(xiàn)TPM功能。
其中,源主機(jī)建立硬件TPM與sTPM的可信鏈時(shí),源主機(jī)可以在硬件TPM與sTPM之間設(shè)置一個(gè)TPM管理中心,并在該TPM管理中心中建立一個(gè)度量列表,該度量列表由TPM管理中心進(jìn)行維護(hù),而由于源主機(jī)中安裝的多個(gè)虛擬機(jī)分別對(duì)應(yīng)一個(gè)sTPM實(shí)例,也即是,在源主機(jī)的本地會(huì)存儲(chǔ)多個(gè)sTPM實(shí)例,對(duì)于本地存儲(chǔ)的多個(gè)sTPM實(shí)例中的每個(gè)sTPM實(shí)例,源主機(jī)可以對(duì)該sTPM實(shí)例進(jìn)行哈希運(yùn)算,得到該sTPM實(shí)例的哈希值,并將該sTPM實(shí)例的哈希值存儲(chǔ)在度量列表中。
由于硬件TPM是可信的,因此,硬件TPM可以對(duì)TPM管理中心進(jìn)行安全度量,從而保證TPM管理中心的可信性,而當(dāng)TPM管理中心可信時(shí),TPM管理中心中維護(hù)的度量列表也是可信的,從而度量列表中存儲(chǔ)的sTPM實(shí)例的哈希值也是可信的,而由于sTPM實(shí)例的哈希值與sTPM實(shí)例唯一對(duì)應(yīng),sTPM實(shí)例又與sTPM唯一對(duì)應(yīng),因此,可以保證sTPM的可信性。
其中,源主機(jī)通過(guò)在硬件TPM和sTPM之間設(shè)置一個(gè)度量列表,在保證了硬件TPM與sTPM的可信性的同時(shí)實(shí)現(xiàn)了二者之間松散耦合,該松散耦合是指兩者之間是通過(guò)一定的消息架構(gòu)來(lái)進(jìn)行通信,因此,源主機(jī)可以通過(guò)多級(jí)信任過(guò)程,建立TPM與sTPM的可信鏈,實(shí)現(xiàn)sTPM對(duì)硬件TPM的可信復(fù)用。
需要說(shuō)明的是,sTPM實(shí)例是sTPM的文件表現(xiàn)形式,sTPM實(shí)例中保存有sTPM的狀態(tài)信息,sTPM實(shí)例與sTPM唯一對(duì)應(yīng)。另外,sTPM的狀態(tài)信息可 以為sTPM的文件系統(tǒng)、內(nèi)存狀態(tài)等運(yùn)行信息,本發(fā)明實(shí)施例對(duì)此不做具體限定。
還需要說(shuō)明的是,哈希運(yùn)算是指將任意長(zhǎng)度的二進(jìn)制值映射為固定長(zhǎng)度的較小二進(jìn)制值,該較小二進(jìn)制值稱為哈希值,哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式,也即是,每個(gè)sTPM實(shí)例都有其唯一且對(duì)應(yīng)的哈希值。另外,源主機(jī)對(duì)sTPM實(shí)例進(jìn)行哈希運(yùn)算的過(guò)程可以參考相關(guān)技術(shù),本發(fā)明實(shí)施例對(duì)此不進(jìn)行詳細(xì)闡述。
進(jìn)一步地,源主機(jī)將sTPM實(shí)例的哈希值存儲(chǔ)在度量列表之后,還可以通過(guò)硬件TPM中的指定寄存器對(duì)該度量列表進(jìn)行密封,并清除密封前的度量列表,在TPM管理中心中只保留密封后的度量列表。其中,指定寄存器可以預(yù)先設(shè)置,例如,該指定寄存器可以為平臺(tái)配置寄存器(英文:Platform Configuration Register,簡(jiǎn)稱:PCR),當(dāng)然,還可以是其它的寄存器,本發(fā)明實(shí)施例對(duì)此不做具體限定。
進(jìn)一步地,當(dāng)源主機(jī)通過(guò)指定寄存器對(duì)該度量列表進(jìn)行密封時(shí),源主機(jī)還可以通過(guò)指定寄存器中的指定位對(duì)該度量列表進(jìn)行密封,指定位也可以預(yù)先設(shè)置,例如,指定位可以為該指定寄存器中的前八位PCR0-PCR7,本發(fā)明實(shí)施例同樣對(duì)此不做具體限定。
其中,由于密封操作和解密封操作所使用的指定寄存器中的指定位上的數(shù)值必須相同,因此,當(dāng)源主機(jī)通過(guò)指定寄存器中的指定位對(duì)度量列表進(jìn)行密封時(shí),源主機(jī)可以將指定位上的數(shù)值進(jìn)行存儲(chǔ)。而當(dāng)源主機(jī)對(duì)密封后的度量列表進(jìn)行解密封時(shí),源主機(jī)需要獲取當(dāng)前時(shí)間該指定寄存器中指定位上的數(shù)值,并將獲取的指定位上的數(shù)值與存儲(chǔ)的指定位上的數(shù)值進(jìn)行比較,當(dāng)兩者相同時(shí),源主機(jī)才能對(duì)密封后的度量列表進(jìn)行解密封。
需要說(shuō)明的是,由于當(dāng)源主機(jī)的基礎(chǔ)環(huán)境發(fā)生變化時(shí),指定位上的數(shù)值也會(huì)發(fā)生變化,而此時(shí)源主機(jī)將不能對(duì)密封后的度量列表進(jìn)行解密封,因此,源主機(jī)通過(guò)對(duì)度量列表進(jìn)行密封以及解密封的操作,不僅保證了度量列表的可信性,也間接驗(yàn)證了源主機(jī)的基礎(chǔ)環(huán)境的可信性。其中,源主機(jī)的基礎(chǔ)環(huán)境可以包括源主機(jī)中被保護(hù)的程序、代碼等等,本發(fā)明實(shí)施例對(duì)此不做具體限定。
另外,源主機(jī)通過(guò)指定寄存器的指定位對(duì)度量列表進(jìn)行密封時(shí),源主機(jī)可以利用相關(guān)加密算法進(jìn)行密封,例如,源主機(jī)可以利用哈希運(yùn)算消息認(rèn)證碼(英 文:Hash-based Message Authentication Code,簡(jiǎn)稱:HMAC)算法、安全哈希算法(英文:Secure Hash Algorithm,簡(jiǎn)稱:SHA1)等加密算法進(jìn)行密封,本發(fā)明實(shí)施例對(duì)此不做具體限定。
其中,源主機(jī)建立sTPM與虛擬機(jī)之間的可信鏈時(shí),源主機(jī)可以通過(guò)源主機(jī)上設(shè)置的TPM管理中心創(chuàng)建虛擬機(jī)實(shí)例,當(dāng)該虛擬機(jī)為可信虛擬機(jī)時(shí),TPM管理中心建立與該虛擬機(jī)對(duì)應(yīng)的sTPM實(shí)例,并將該虛擬機(jī)實(shí)例與該sTPM實(shí)例,存儲(chǔ)到虛擬機(jī)實(shí)例與sTPM實(shí)例的對(duì)應(yīng)關(guān)系中。
需要說(shuō)明的是,虛擬機(jī)實(shí)例是虛擬機(jī)的文件表現(xiàn)形式,虛擬機(jī)實(shí)例中保存有虛擬機(jī)的狀態(tài)信息,虛擬機(jī)實(shí)例與虛擬機(jī)唯一對(duì)應(yīng)。另外,虛擬機(jī)的狀態(tài)信息可以為虛擬機(jī)的文件系統(tǒng)、內(nèi)存狀態(tài)等運(yùn)行信息,本發(fā)明實(shí)施例對(duì)此不做具體限定。另外,可信虛擬機(jī)是指虛擬機(jī)中部署有TPM驅(qū)動(dòng)。再者,虛擬機(jī)實(shí)例與sTPM實(shí)例的對(duì)應(yīng)關(guān)系由TPM管理中心進(jìn)行維護(hù)。
由于sTPM可以為虛擬機(jī)提供TPM功能,且sTPM實(shí)例與sTPM唯一對(duì)應(yīng),虛擬機(jī)實(shí)例與虛擬機(jī)唯一對(duì)應(yīng),因此,可以通過(guò)虛擬機(jī)實(shí)例與sTPM實(shí)例的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)sTPM與虛擬機(jī)之間的可信鏈,并且可以有效地避免sTPM被另一個(gè)虛擬機(jī)讀取而發(fā)生安全信息泄漏。
需要說(shuō)明的是,目的主機(jī)上每新建立一個(gè)虛擬機(jī)時(shí),對(duì)自身進(jìn)行可信環(huán)境初始化的操作與步驟401中源主機(jī)對(duì)自身進(jìn)行可信環(huán)境初始化的操作相類似,本發(fā)明實(shí)施例在此不做贅述。
步驟402:當(dāng)目的主機(jī)接收到源主機(jī)發(fā)送的遷移請(qǐng)求時(shí),基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,向源主機(jī)發(fā)送遷移響應(yīng),遷移響應(yīng)中攜帶遷移身份碼。
具體地,目的主機(jī)基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,建立臨時(shí)sTPM實(shí)例;對(duì)該臨時(shí)sTPM實(shí)例進(jìn)行哈希運(yùn)算,得到該臨時(shí)sTPM實(shí)例的哈希值;將該臨時(shí)sTPM實(shí)例的哈希值確定為遷移身份碼;向源主機(jī)發(fā)送遷移響應(yīng),該遷移響應(yīng)中攜帶遷移身份碼。
需要說(shuō)明的是,臨時(shí)sTPM實(shí)例為目的主機(jī)隨機(jī)建立的sTPM實(shí)例。
其中,目的主機(jī)基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,建立臨時(shí)sTPM實(shí)例時(shí),目的主機(jī)基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,判斷是否接受目標(biāo)虛擬機(jī)的遷移,當(dāng)接受目標(biāo)虛擬機(jī)的遷移時(shí),建立臨時(shí)sTPM實(shí)例。
由于目的主機(jī)上的資源有限,因此目的主機(jī)所能承受的業(yè)務(wù)負(fù)載也是有限的,而為了避免當(dāng)目標(biāo)虛擬機(jī)遷移到目的主機(jī)上時(shí),目的主機(jī)上的業(yè)務(wù)負(fù)載超出目的主機(jī)的業(yè)務(wù)負(fù)載極限,導(dǎo)致目標(biāo)虛擬機(jī)不能正常運(yùn)行,目的主機(jī)需要先基于自身的資源狀況判斷是否接受目標(biāo)虛擬機(jī)的遷移。例如,當(dāng)該遷移信息包括目標(biāo)虛擬機(jī)運(yùn)行時(shí)所需的內(nèi)存時(shí),目的主機(jī)可以獲取自身剩余的內(nèi)存容量,并基于該剩余的內(nèi)存容量,判斷是否接受目標(biāo)虛擬機(jī)的遷移,當(dāng)目的主機(jī)剩余的內(nèi)存容量大于目標(biāo)虛擬機(jī)運(yùn)行時(shí)所需的內(nèi)存時(shí),目的主機(jī)接受目標(biāo)虛擬機(jī)的遷移,否則,目的主機(jī)不接受目標(biāo)虛擬機(jī)的遷移,從而保證目標(biāo)虛擬機(jī)遷移到目的主機(jī)后可以正常運(yùn)行。
步驟403:當(dāng)源主機(jī)接收到目的主機(jī)返回的遷移響應(yīng)時(shí),源主機(jī)基于目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的明文、遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文。
具體地,源主機(jī)生成目標(biāo)sTPM實(shí)例的描述文件,該描述文件中包括目標(biāo)sTPM實(shí)例的哈希值;基于該描述文件和遷移身份碼,生成簽章文件;基于簽章文件的明文、目標(biāo)sTPM實(shí)例的明文和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文。
需要說(shuō)明的是,目標(biāo)sTPM實(shí)例的描述文件與目標(biāo)sTPM實(shí)例唯一對(duì)應(yīng)。
其中,源主機(jī)基于描述文件和遷移身份碼,生成簽章文件時(shí),源主機(jī)可以基于該描述文件中包括的哈希值和遷移身份碼,按照指定格式生成簽章文件。其中,該指定格式可以預(yù)先設(shè)置,例如,指定格式為“哈希值#遷移身份碼”,描述文件中包括的哈希值為E8C636D,遷移身份碼為86378BF,則可以按照指定格式,基于該描述文件中包括的哈希值與遷移身份碼,生成的簽章文件為E8C636D#86378BF。當(dāng)然,目的主機(jī)也可以以其它方式生成簽章文件,只要保證目的主機(jī)在接收到簽章文件時(shí),可以基于該簽章文件,解析出描述文件和遷移身份碼即可。
其中,源主機(jī)基于簽章文件的明文、目標(biāo)sTPM實(shí)例的明文和源主機(jī)的私鑰,生成該簽章文件的密文和目標(biāo)sTPM實(shí)例的密文時(shí),源主機(jī)可以基于簽章文件的明文,對(duì)目標(biāo)sTPM實(shí)例的明文進(jìn)行加密,得到目標(biāo)sTPM實(shí)例的密文;基于源主機(jī)的私鑰,對(duì)簽章文件的明文進(jìn)行加密,得到該簽章文件的密文。
另外,源主機(jī)可以利用相關(guān)加密算法對(duì)目標(biāo)sTPM實(shí)例的明文以及對(duì)簽章 文件的明文進(jìn)行加密,例如,源主機(jī)可以利用高級(jí)加密標(biāo)準(zhǔn)(英文:Advanced Encryption Standard簡(jiǎn)稱:AES)算法、數(shù)字簽名算法(英文:Digital Signature Algorithm,簡(jiǎn)稱:DSA)等加密算法對(duì)目標(biāo)sTPM實(shí)例的明文以及對(duì)簽章文件的明文進(jìn)行加密,本發(fā)明實(shí)施例對(duì)此不做具體限定。
進(jìn)一步地,源主機(jī)基于目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的明文、遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文之前,源主機(jī)可以對(duì)目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行備份,之后,源主機(jī)對(duì)目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行卸載。
為了保證在遷移過(guò)程中源主機(jī)的目標(biāo)虛擬機(jī)上業(yè)務(wù)的運(yùn)行連續(xù)性,在源主機(jī)卸載目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例以進(jìn)行目標(biāo)sTPM實(shí)例的遷移之前,源主機(jī)需要對(duì)目標(biāo)sTPM實(shí)例進(jìn)行備份,從而使源主機(jī)可以在進(jìn)行目標(biāo)sTPM實(shí)例的遷移時(shí),通過(guò)備份的目標(biāo)sTPM實(shí)例保證目標(biāo)虛擬機(jī)的可信性,以維持目標(biāo)虛擬機(jī)的運(yùn)行狀態(tài),實(shí)現(xiàn)目標(biāo)虛擬機(jī)上業(yè)務(wù)的連續(xù)性。
需要說(shuō)明的是,由于sTPM借助軟件模塊來(lái)實(shí)現(xiàn)TPM功能,而sTPM實(shí)例為sTPM的文件表現(xiàn)形式,因此sTPM實(shí)例可以作為一個(gè)整體,在物理主機(jī)上進(jìn)行卸載。例如,可以將該sTPM實(shí)例保存在通用串行總線(英文:Universal Serial Bus,簡(jiǎn)稱:USB)設(shè)備中,由于USB設(shè)備具有可插拔性,從而可以通過(guò)斷開(kāi)USB設(shè)置,以卸載sTPM實(shí)例,當(dāng)然,sTPM實(shí)例還可以以其它方式在物理主機(jī)上進(jìn)行卸載,本發(fā)明實(shí)施例對(duì)此不做具體限定。
進(jìn)一步地,源主機(jī)基于目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的明文、遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文之前,源主機(jī)還可以向證書(shū)認(rèn)證(英文:Certificate Authority,簡(jiǎn)稱:CA)管理中心發(fā)送密鑰獲取請(qǐng)求,該密鑰獲取請(qǐng)求中攜帶源主機(jī)的數(shù)字證書(shū),使CA管理中心基于源主機(jī)的數(shù)字證書(shū)返回源主機(jī)的私鑰。
由于源主機(jī)需要基于源主機(jī)的私鑰,對(duì)簽章文件的明文進(jìn)行加密,因此,源主機(jī)需要向CA管理中心請(qǐng)求源主機(jī)的私鑰,具體地,源主機(jī)可以向CA管理中心發(fā)送密鑰獲取請(qǐng)求,當(dāng)CA管理中心接收到該密鑰獲取請(qǐng)求時(shí),可以基于密鑰獲取請(qǐng)求中攜帶的源主機(jī)的數(shù)字證書(shū),對(duì)源主機(jī)的身份的真實(shí)性進(jìn)行驗(yàn)證,當(dāng)CA管理中心確認(rèn)源主機(jī)的身份真實(shí)時(shí),CA管理中心向源主機(jī)發(fā)送源主機(jī)的私鑰。
需要說(shuō)明的是,CA管理中心在向源主機(jī)發(fā)送源主機(jī)的私鑰時(shí),還可以將源主機(jī)的公鑰在CA管理中心中進(jìn)行公布,以使目的主機(jī)可以在CA管理中心中獲取源主機(jī)的公鑰,從而可以對(duì)源主機(jī)向目的主機(jī)發(fā)送的加密文件進(jìn)行解密。
還需要說(shuō)明的是,CA管理中心是證書(shū)授權(quán)機(jī)構(gòu),用于對(duì)稱加密密鑰的分發(fā)、身份認(rèn)證、信息的完整性檢驗(yàn)和交易防抵賴等,是安全電子信息交換的核心。
步驟404:源主機(jī)將簽章文件的密文和目標(biāo)sTPM實(shí)例的密文發(fā)送給目的主機(jī)。
源主機(jī)將簽章文件的密文和目標(biāo)sTPM實(shí)例的密文發(fā)送給目的主機(jī)時(shí),由于簽章文件中含有遷移身份碼,而目標(biāo)sTPM實(shí)例又是通過(guò)簽章文件加密的,因此,在進(jìn)行目標(biāo)sTPM實(shí)例的遷移時(shí),目標(biāo)sTPM實(shí)例的遷移是與遷移身份碼綁定的,由于遷移身份碼是目的主機(jī)產(chǎn)生的,因此,可以有效避免目標(biāo)sTPM實(shí)例遷移到目的主機(jī)之外的其它物理主機(jī)上。
需要說(shuō)明的是,由于sTPM實(shí)例用于保證虛擬機(jī)的可信性,因此,在進(jìn)行目標(biāo)虛擬機(jī)的可信遷移時(shí),需要先將目標(biāo)虛擬機(jī)對(duì)應(yīng)的目標(biāo)sTPM實(shí)例進(jìn)行遷移。
步驟405:當(dāng)目的主機(jī)接收到源主機(jī)發(fā)送的簽章文件的密文和目標(biāo)sTPM實(shí)例的密文時(shí),基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
具體地,目的主機(jī)基于源主機(jī)的公鑰,對(duì)簽章文件的密文進(jìn)行解密,得到該簽章文件的明文,源主機(jī)的公鑰為目的主機(jī)從CA管理中心中獲取得到;對(duì)該簽章文件的明文進(jìn)行解析,得到描述文件和遷移身份碼;基于該簽章文件的明文,對(duì)目標(biāo)sTPM實(shí)例的密文進(jìn)行解密,得到目標(biāo)sTPM實(shí)例的明文;基于該描述文件、遷移身份碼和目標(biāo)sTPM實(shí)例的明文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
需要說(shuō)明的是,由于CA管理中心中公布了源主機(jī)的公鑰,因此,目的主機(jī)可以在CA管理中心中獲取源主機(jī)的公鑰,并基于源主機(jī)的公鑰,對(duì)簽章文件的密文進(jìn)行解密。
其中,目的主機(jī)基于該描述文件、遷移身份碼和目標(biāo)sTPM實(shí)例的明文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈可以包括如下步驟(1)-(5):
(1)、目的主機(jī)基于遷移身份碼,對(duì)簽章文件的新鮮性進(jìn)行驗(yàn)證。
由于遷移身份碼為目的主機(jī)預(yù)先建立的臨時(shí)sTPM實(shí)例的哈希值,遷移身份碼與臨時(shí)sTPM實(shí)例唯一對(duì)應(yīng),因此,目的主機(jī)可以基于遷移身份碼,檢驗(yàn)簽章文件中解析出的遷移身份碼與臨時(shí)sTPM實(shí)例的遷移身份碼是否相同,如果相同,則確定該簽章文件的新鮮性驗(yàn)證通過(guò),而由于源主機(jī)是通過(guò)簽章文件加密目標(biāo)sTPM實(shí)例,因此,也可以間接確定接收到的目標(biāo)sTPM實(shí)例具有新鮮性,新鮮性是指接收到的目標(biāo)sTPM實(shí)例為經(jīng)目的主機(jī)同意遷移的源主機(jī)遷移的目標(biāo)sTPM實(shí)例,如果不相同,則目的主機(jī)終止目標(biāo)sTPM實(shí)例的遷移,從而可以避免除源主機(jī)之外的其它物理主機(jī)將sTPM實(shí)例遷移到目的主機(jī)上。
(2)、如果該簽章文件的新鮮性驗(yàn)證通過(guò),則目的主機(jī)基于該描述文件和目標(biāo)sTPM實(shí)例的明文,對(duì)目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,該描述文件中包括目標(biāo)sTPM實(shí)例的哈希值。
具體地,如果該簽章文件的新鮮性驗(yàn)證通過(guò),則目的主機(jī)基于目標(biāo)sTPM實(shí)例的明文,確定目標(biāo)sTPM實(shí)例的哈希值,如果確定的哈希值與該描述文件中包括的哈希值相同,則確定目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),否則,確定目標(biāo)sTPM實(shí)例的完整性驗(yàn)證不通過(guò)。
由于每個(gè)sTPM實(shí)例都有其對(duì)應(yīng)且唯一的哈希值,而描述文件中包括的哈希值是源主機(jī)對(duì)目標(biāo)sTPM實(shí)例進(jìn)行哈希運(yùn)算得到,因此,目的主機(jī)可以先確定接收到的目標(biāo)sTPM實(shí)例的哈希值,并將確定的哈希值與描述文件中包括的哈希值進(jìn)行比較,如果相同,則確定接收的目標(biāo)sTPM實(shí)例是完整的,如果不相同,則確定接收到的目標(biāo)sTPM實(shí)例是不完整的,此時(shí)目的主機(jī)終止目標(biāo)sTPM實(shí)例的遷移,從而可以當(dāng)目標(biāo)sTPM實(shí)例在遷移時(shí)發(fā)生數(shù)據(jù)泄露而變得不完整時(shí),通過(guò)終止目標(biāo)sTPM實(shí)例的遷移,有效避免黑客的攻擊。
需要說(shuō)明的是,該描述文件中不僅可以包括目標(biāo)sTPM實(shí)例的哈希值,當(dāng)然,該描述文件中還可以包括與目標(biāo)sTPM實(shí)例唯一對(duì)應(yīng)的其它內(nèi)容,本發(fā)明實(shí)施例對(duì)此不做具體限定
(3)、如果目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),則目的主機(jī)基于目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表。
具體地,如果目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),則目的主機(jī)獲取當(dāng)前時(shí)間該指定寄存器的指定位上的數(shù)值,判斷獲取的指定位上的數(shù)值與密封該度量 列表時(shí)所使用的指定位上的數(shù)值是否相同,當(dāng)獲取的指定位上的數(shù)值與密封該度量列表時(shí)所使用的指定位上的數(shù)值相同時(shí),基于獲取的指定位上的數(shù)值,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,否則,不對(duì)存儲(chǔ)的度量列表進(jìn)行解密封。
需要說(shuō)明的是,指定寄存器為目的主機(jī)對(duì)度量列表進(jìn)行密封時(shí)的寄存器。
(4)、目的主機(jī)將該描述文件中包括的哈希值存儲(chǔ)在該臨時(shí)度量列表中。
由于描述文件中包括的哈希值為目標(biāo)sTPM實(shí)例的哈希值,目標(biāo)sTPM實(shí)例的哈希值與目標(biāo)sTPM實(shí)例唯一對(duì)應(yīng)。因此,目的主機(jī)可將描述文件中包括的哈希值存儲(chǔ)在臨時(shí)度量列表中,通過(guò)臨時(shí)度量列表的可信性保證目標(biāo)sTPM實(shí)例的可信性。
(5)、目的主機(jī)基于目的主機(jī)的指定寄存器,對(duì)臨時(shí)度量列表進(jìn)行密封,以建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
由于硬件TPM可以保證TPM管理中心的可信性,而TPM管理中心可以保證存儲(chǔ)的度量列表的可信性,由于臨時(shí)度量列表為對(duì)存儲(chǔ)的度量列表解密封后得到,因此,臨時(shí)度量列表也具有可信性。而當(dāng)目的主機(jī)將目標(biāo)sTPM實(shí)例的哈希值存儲(chǔ)在臨時(shí)度量列表中時(shí),目的主機(jī)可以通過(guò)該臨時(shí)度量列表的可信性保證目標(biāo)sTPM實(shí)例的哈希值的可信性,由于目標(biāo)sTPM實(shí)例的哈希值與目標(biāo)sTPM實(shí)例唯一對(duì)應(yīng),因此,可以通過(guò)目標(biāo)sTPM實(shí)例的哈希值的可信性保證目標(biāo)sTPM實(shí)例的可信性,從而當(dāng)目的主機(jī)基于目的主機(jī)的指定寄存器,對(duì)該臨時(shí)度量列表進(jìn)行密封后,可以完成目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈的建立。
步驟406:目的主機(jī)在建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈之后,向源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng)。
當(dāng)目的主機(jī)完成目標(biāo)sTPM實(shí)例的遷移后,目的主機(jī)可以向源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng),以表明可以開(kāi)始將目標(biāo)虛擬機(jī)動(dòng)態(tài)遷移到目的主機(jī)上。
進(jìn)一步地,目的主機(jī)向源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng)之前,目的主機(jī)還可以建立空白虛擬機(jī)。
具體地,為了保證該空白虛擬機(jī)能夠運(yùn)行目標(biāo)虛擬機(jī)所運(yùn)行的業(yè)務(wù),目的主機(jī)可以從遷移請(qǐng)求中獲取目標(biāo)虛擬機(jī)的大小,并基于目標(biāo)虛擬機(jī)的大小,建立空白虛擬機(jī),使該空白虛擬機(jī)的大小大于或等于目標(biāo)虛擬機(jī)的大小。
需要說(shuō)明的是,在目標(biāo)虛擬機(jī)的動(dòng)態(tài)遷移完成之前,目的主機(jī)都將控制該 空白虛擬機(jī)處于停止?fàn)顟B(tài)。
步驟407:當(dāng)源主機(jī)接收到目的主機(jī)發(fā)送的虛擬機(jī)遷移響應(yīng)時(shí),將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上。
需要說(shuō)明的是,動(dòng)態(tài)遷移是指在遷移目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例的過(guò)程中,源主機(jī)的目標(biāo)虛擬機(jī)上的業(yè)務(wù)可以繼續(xù)運(yùn)行,也即是,源主機(jī)的目標(biāo)虛擬機(jī)提供的服務(wù)并不中斷。源主機(jī)將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上的過(guò)程可以參考相關(guān)技術(shù),本發(fā)明實(shí)施例在此不進(jìn)行詳細(xì)闡述。
另外,源主機(jī)還可以查詢目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例的動(dòng)態(tài)遷移進(jìn)度,當(dāng)源主機(jī)查詢到目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例的動(dòng)態(tài)遷移沒(méi)有完成時(shí),源主機(jī)控制自身安裝的目標(biāo)虛擬機(jī)處于運(yùn)行狀態(tài),當(dāng)源主機(jī)查詢到目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例的動(dòng)態(tài)遷移已經(jīng)完成時(shí),源主機(jī)可以控制自身安裝的目標(biāo)虛擬機(jī)處于停止?fàn)顟B(tài)。
步驟408:當(dāng)目的主機(jī)接收到源主機(jī)動(dòng)態(tài)遷移的目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例時(shí),基于目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例,建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈。
具體地,目的主機(jī)將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例存儲(chǔ)到空白虛擬機(jī)中,得到目的主機(jī)上的目標(biāo)虛擬機(jī);基于源主機(jī)動(dòng)態(tài)遷移的目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例,將目標(biāo)sTPM實(shí)例加載到目標(biāo)虛擬機(jī)中。
需要說(shuō)明的是,目的主機(jī)將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例存儲(chǔ)到空白虛擬機(jī)時(shí),目的主機(jī)可以基于目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例配置該空白虛擬機(jī),使該空白虛擬機(jī)可以運(yùn)行目標(biāo)虛擬機(jī)所運(yùn)行的業(yè)務(wù),提供目標(biāo)虛擬機(jī)所提供的服務(wù),從而得到目的主機(jī)上的目標(biāo)虛擬機(jī)。
其中,目的主機(jī)基于源主機(jī)動(dòng)態(tài)遷移的目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例,將目標(biāo)sTPM實(shí)例加載到目標(biāo)虛擬機(jī)中的操作可以為:目的主機(jī)基于目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例,從存儲(chǔ)的虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中,獲取對(duì)應(yīng)的sTPM實(shí)例;確定獲取的sTPM實(shí)例的哈希值;基于目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;從該臨時(shí)度量列表中,獲取目標(biāo)sTPM實(shí)例的哈希值;基于確定的哈希值與獲取的哈希值,對(duì)獲取的sTPM實(shí)例的完整性進(jìn)行驗(yàn)證;如果獲取的sTPM實(shí)例的完整性驗(yàn)證通過(guò),則將獲取的sTPM實(shí)例確定為目標(biāo)sTPM實(shí)例,并加載到目標(biāo)虛擬機(jī)中。
由于目標(biāo)sTPM實(shí)例用于保證目標(biāo)虛擬機(jī)的可信性,因此,目標(biāo)虛擬機(jī)和 目標(biāo)sTPM實(shí)例必須同時(shí)使用,因而當(dāng)啟動(dòng)目標(biāo)虛擬機(jī)時(shí),需要加載目標(biāo)虛擬機(jī)對(duì)應(yīng)的sTPM實(shí)例,而在加載該sTPM實(shí)例時(shí),需要對(duì)該sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,當(dāng)該sTPM實(shí)例的完整性驗(yàn)證通過(guò)時(shí),目的主機(jī)進(jìn)行加載操作,否則,目的主機(jī)終止加載操作。
其中,目的主機(jī)對(duì)目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證的過(guò)程與上述步驟405中的步驟(2)類似,本發(fā)明實(shí)施例在此不再進(jìn)行贅述。
需要說(shuō)明的是,由于sTPM借助軟件模塊來(lái)實(shí)現(xiàn)TPM功能,而sTPM實(shí)例為sTPM的文件表現(xiàn)形式,因此sTPM實(shí)例可以作為一個(gè)整體,在物理主機(jī)上進(jìn)行加載。例如,可以將目標(biāo)sTPM實(shí)例保存在USB設(shè)備中,當(dāng)虛擬機(jī)動(dòng)態(tài)遷移完成后,目的主機(jī)可以連接該USB設(shè)備,以USB驅(qū)動(dòng)方式加載目標(biāo)sTPM實(shí)例,從而可以快速建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈。同時(shí),由于sTPM實(shí)例可以作為一個(gè)整體,簡(jiǎn)單方便的在物理主機(jī)上進(jìn)行加載和卸載,因此,sTPM實(shí)例具有較高的使用和遷移的靈活性。
還需要說(shuō)明的是,當(dāng)目的主機(jī)關(guān)閉虛擬機(jī)時(shí),目的主機(jī)需要退出該虛擬機(jī)對(duì)應(yīng)sTPM實(shí)例,而在目的主機(jī)退出該虛擬機(jī)對(duì)應(yīng)的sTPM實(shí)例時(shí),目的主機(jī)可以對(duì)該sTPM實(shí)例進(jìn)行哈希運(yùn)算,得到該sTPM實(shí)例的哈希值,并將該哈希值更新到度量列表中,從而保證度量列表的實(shí)時(shí)性和可信性。
進(jìn)一步地,目的主機(jī)基于源主機(jī)動(dòng)態(tài)遷移的虛擬機(jī)實(shí)例,建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈之前,目的主機(jī)還可以將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例和目標(biāo)sTPM實(shí)例,存儲(chǔ)到虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中。
更進(jìn)一步地,目的主機(jī)從臨時(shí)度量列表中,獲取目標(biāo)sTPM實(shí)例的哈希值之后,目的主機(jī)還可以基于目的主機(jī)的指定寄存器,對(duì)臨時(shí)度量列表進(jìn)行密封。
需要說(shuō)明的是,當(dāng)目的主機(jī)建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈,也即是完成目標(biāo)虛擬機(jī)的遷移之后,目的主機(jī)可以控制目標(biāo)虛擬機(jī)處于運(yùn)行狀態(tài),繼續(xù)運(yùn)行業(yè)務(wù),且目的主機(jī)還可以向源主機(jī)發(fā)送刪除請(qǐng)求,使源主機(jī)基于該刪除請(qǐng)求,刪除備份的目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例,以節(jié)省源主機(jī)上的存儲(chǔ)空間,減輕源主機(jī)的負(fù)載。
還需要說(shuō)明的是,源主機(jī)刪除備份的目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例時(shí),源主機(jī)可以基于目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例,從存儲(chǔ)的虛擬機(jī)實(shí)例與sTPM實(shí)例的對(duì)應(yīng)關(guān)系中,獲取目標(biāo)sTPM實(shí)例,并將該對(duì)應(yīng)關(guān)系中的目標(biāo)sTPM 實(shí)例和目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例進(jìn)行刪除,之后,源主機(jī)刪除備份的目標(biāo)sTPM實(shí)例,從而可以保證源主機(jī)上sTPM實(shí)例和虛擬機(jī)實(shí)例的一致性。
本發(fā)明實(shí)施例中,源主機(jī)向目的主機(jī)發(fā)送遷移請(qǐng)求,目的主機(jī)基于遷移請(qǐng)求,向源主機(jī)發(fā)送遷移響應(yīng),以進(jìn)行目標(biāo)虛擬機(jī)的可信遷移,源主機(jī)將目標(biāo)虛擬機(jī)對(duì)應(yīng)的目標(biāo)sTPM實(shí)例進(jìn)行備份,并將目標(biāo)sTPM實(shí)例靜態(tài)遷移到目的主機(jī)上,而在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,目的主機(jī)通過(guò)目的主機(jī)上的度量列表,可以快速建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,之后,目的主機(jī)向源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng),源主機(jī)將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上,目的主機(jī)可以簡(jiǎn)單方便地加載目標(biāo)sTPM實(shí)例,快速建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈,從而快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,以恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率,并且由于目標(biāo)sTPM實(shí)例可以簡(jiǎn)單方便的在源主機(jī)和目的主機(jī)上進(jìn)行卸載和加載,因此,也提高了sTPM實(shí)例使用和遷移的靈活性。
圖5是本發(fā)明實(shí)施例提供的一種虛擬機(jī)可信遷移裝置的結(jié)構(gòu)示意圖。參見(jiàn)圖5,該裝置包括:
第一發(fā)送模塊501,用于向目的主機(jī)發(fā)送遷移請(qǐng)求,遷移請(qǐng)求中攜帶目標(biāo)虛擬機(jī)的遷移信息,以使目的主機(jī)基于遷移信息進(jìn)行遷移響應(yīng),遷移響應(yīng)中攜帶遷移身份碼;
生成模塊502,用于當(dāng)接收到目的主機(jī)返回的遷移響應(yīng)時(shí),基于目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的明文、遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文;
第二發(fā)送模塊503,用于將簽章文件的密文和目標(biāo)sTPM實(shí)例的密文發(fā)送給目的主機(jī),以使目的主機(jī)基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈;
遷移模塊504,用于當(dāng)接收到目的主機(jī)發(fā)送的虛擬機(jī)遷移響應(yīng)時(shí),將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上,以使目的主機(jī)基于虛擬機(jī)實(shí)例建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈。
可選地,如圖6所示,該生成模塊502包括:
第一生成單元5021,用于生成目標(biāo)sTPM實(shí)例的描述文件;
第二生成單元5022,用于基于描述文件和遷移身份碼,生成簽章文件;
第三生成單元5023,用于基于簽章文件的明文、目標(biāo)sTPM實(shí)例的明文和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文。
可選地,如圖7所示,該第三生成單元5023包括:
第一加密子單元50231,用于基于簽章文件的明文,對(duì)目標(biāo)sTPM實(shí)例的明文進(jìn)行加密,得到目標(biāo)sTPM實(shí)例的密文;
第二加密子單元50232,用于基于源主機(jī)的私鑰,對(duì)簽章文件的明文進(jìn)行加密,得到簽章文件的密文。
可選地,如圖8所示,該裝置還包括:
備份模塊505,用于對(duì)目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行備份;
卸載模塊506,用于對(duì)目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行卸載。
可選地,如圖9所示,該裝置還包括:
第三發(fā)送模塊507,用于向證書(shū)認(rèn)證CA管理中心發(fā)送密鑰獲取請(qǐng)求,密鑰獲取請(qǐng)求中攜帶源主機(jī)的數(shù)字證書(shū),以使CA管理中心基于源主機(jī)的數(shù)字證書(shū)返回源主機(jī)的私鑰;
接收模塊508,用于接收CA管理中心返回的源主機(jī)的私鑰。
可選地,如圖10所示,該裝置還包括:
刪除模塊509,用于當(dāng)接收到目的主機(jī)發(fā)送的刪除請(qǐng)求時(shí),刪除備份的目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例。
在本發(fā)明實(shí)施例中,源主機(jī)基于目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的明文、目的主機(jī)發(fā)送的遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,并將簽章文件的密文和目標(biāo)sTPM實(shí)例的密文發(fā)送給目的主機(jī),使目的主機(jī)建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,之后,目的主機(jī)再將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上,使目的主機(jī)基于虛擬機(jī)實(shí)例建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈,以完成目標(biāo)虛擬機(jī)的遷移,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性, 以恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
圖11是本發(fā)明實(shí)施例提供的一種虛擬機(jī)可信遷移裝置的結(jié)構(gòu)示意圖。參見(jiàn)圖11,該裝置包括:
第一發(fā)送模塊601,用于當(dāng)接收到源主機(jī)發(fā)送的遷移請(qǐng)求時(shí),基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,向源主機(jī)發(fā)送遷移響應(yīng),遷移響應(yīng)中攜帶遷移身份碼,以使源主機(jī)基于遷移身份碼返回簽章文件的密文和目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的密文;
第一建立模塊602,用于當(dāng)接收到源主機(jī)發(fā)送的簽章文件的密文和目標(biāo)sTPM實(shí)例的密文時(shí),基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈;
第二發(fā)送模塊603,用于在建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈之后,向源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng),以使源主機(jī)將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上;
第二建立模塊604,用于當(dāng)接收到源主機(jī)動(dòng)態(tài)遷移的目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例時(shí),基于虛擬機(jī)實(shí)例,建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈。
可選地,如圖12所示,該第一發(fā)送模塊601包括:
第一建立單元6011,用于基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,建立臨時(shí)sTPM實(shí)例;
運(yùn)算單元6012,用于對(duì)臨時(shí)sTPM實(shí)例進(jìn)行哈希運(yùn)算,得到臨時(shí)sTPM實(shí)例的哈希值;
確定單元6013,用于將臨時(shí)sTPM實(shí)例的哈希值確定為遷移身份碼;
發(fā)送單元6014,用于向源主機(jī)發(fā)送遷移響應(yīng),遷移響應(yīng)中攜帶遷移身份碼。
可選地,如圖13所示,該第一建立單元6011包括:
判斷子單元60111,用于基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,判斷是否接受虛擬機(jī)的遷移;
建立子單元60112,用于當(dāng)接受虛擬機(jī)的遷移時(shí),建立臨時(shí)sTPM實(shí)例。
可選地,如圖14所示,該第一建立模塊602包括:
第一解密單元6021,用于基于源主機(jī)的公鑰,對(duì)簽章文件的密文進(jìn)行解密,得到簽章文件的明文,源主機(jī)的公鑰為目的主機(jī)從證書(shū)認(rèn)證CA管理中心中獲取 得到;
解析單元6022,用于對(duì)簽章文件的明文進(jìn)行解析,得到描述文件和遷移身份碼;
第二解密單元6023,用于基于簽章文件的明文,對(duì)目標(biāo)sTPM實(shí)例的密文進(jìn)行解密,得到目標(biāo)sTPM實(shí)例的明文;
第二建立單元6024,用于基于描述文件、遷移身份碼和目標(biāo)sTPM實(shí)例的明文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
可選地,如圖15所示,該第二建立單元6024包括:
第一驗(yàn)證子單元60241,用于基于遷移身份碼,對(duì)簽章文件的新鮮性進(jìn)行驗(yàn)證;
第二驗(yàn)證子單元60242,用于如果簽章文件的新鮮性驗(yàn)證通過(guò),則基于描述文件和目標(biāo)sTPM實(shí)例的明文,對(duì)目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,該描述文件中包括目標(biāo)sTPM實(shí)例的哈希值;
第一解密封子單元60243,用于如果目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),則基于目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;
存儲(chǔ)子單元60244,用于將描述文件中包括的哈希值存儲(chǔ)在臨時(shí)度量列表中;
第一密封子單元60245,用于基于目的主機(jī)的指定寄存器,對(duì)臨時(shí)度量列表進(jìn)行密封,以建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
可選地,如圖16所示,該第二驗(yàn)證子單元60242包括:
第一確定子單元602421,用于基于目標(biāo)sTPM實(shí)例的明文,確定目標(biāo)sTPM實(shí)例的哈希值;
第二確定子單元602424,用于如果確定的哈希值與描述文件中包括的哈希值相同,則確定目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),否則,確定目標(biāo)sTPM實(shí)例的完整性驗(yàn)證不通過(guò)。
可選地,如圖17所示,該裝置還包括:
第三建立模塊605,用于建立空白虛擬機(jī);
相應(yīng)地,如圖18所示,該第二建立模塊604包括:
第一存儲(chǔ)單元6041,用于將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例存儲(chǔ)到空白虛擬機(jī)中, 得到目的主機(jī)上的目標(biāo)虛擬機(jī);
加載單元6042,用于基于虛擬機(jī)實(shí)例,將目標(biāo)sTPM實(shí)例加載到目標(biāo)虛擬機(jī)中。
可選地,如圖19所示,該加載單元6042包括:
第一獲取子單元60421,用于基于虛擬機(jī)實(shí)例,從存儲(chǔ)的虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中,獲取對(duì)應(yīng)的sTPM實(shí)例;
第三確定子單元60422,用于確定獲取的sTPM實(shí)例的哈希值;
第二解密封子單元60423,用于基于目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;
第二獲取子單元60424,用于從臨時(shí)度量列表中,獲取目標(biāo)sTPM實(shí)例的哈希值;
第三驗(yàn)證子單元60425,用于基于確定的哈希值與獲取的哈希值,對(duì)獲取的sTPM實(shí)例的完整性進(jìn)行驗(yàn)證;
第四確定子單元60426,用于如果獲取的sTPM實(shí)例的完整性驗(yàn)證通過(guò),則將獲取的sTPM實(shí)例確定為目標(biāo)sTPM實(shí)例,并加載到目標(biāo)虛擬機(jī)中。
可選地,如圖20所示,該裝置還包括:
存儲(chǔ)模塊606,用于將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例和目標(biāo)sTPM實(shí)例,存儲(chǔ)到虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中。
可選地,如圖21所示,該加載單元6042還包括:
第二密封子單元60427,用于基于目的主機(jī)的指定寄存器,對(duì)臨時(shí)度量列表進(jìn)行密封。
在本發(fā)明實(shí)施例中,源主機(jī)基于目的主機(jī)發(fā)送的遷移身份碼返回簽章文件的密文和目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的密文,目的主機(jī)基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,并在接收到源主機(jī)動(dòng)態(tài)遷移的目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例時(shí),基于虛擬機(jī)實(shí)例,建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈,完成目標(biāo)虛擬機(jī)的遷移,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,以恢 復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
需要說(shuō)明的是:上述實(shí)施例提供的虛擬機(jī)可信遷移裝置在虛擬機(jī)可信遷移時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的虛擬機(jī)可信遷移的裝置與虛擬機(jī)可信遷移的方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過(guò)程詳見(jiàn)方法實(shí)施例,這里不再贅述。
圖22是本發(fā)明實(shí)施例提供的一種虛擬機(jī)可信遷移裝置結(jié)構(gòu)示意圖,參見(jiàn)圖22,該裝置包括發(fā)射機(jī)2201、接收機(jī)2202、存儲(chǔ)器2203、處理器2204和通信總線2205,包括:
存儲(chǔ)器2203,用于存儲(chǔ)消息和數(shù)據(jù);
發(fā)射機(jī)2201,用于向目的主機(jī)發(fā)送遷移請(qǐng)求,遷移請(qǐng)求中攜帶目標(biāo)虛擬機(jī)的遷移信息,以使目的主機(jī)基于遷移信息進(jìn)行遷移響應(yīng),遷移響應(yīng)中攜帶遷移身份碼;
處理器2204,用于當(dāng)接收到目的主機(jī)返回的遷移響應(yīng)時(shí),基于目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的明文、遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文;
發(fā)射機(jī)2201,還用于將簽章文件的密文和目標(biāo)sTPM實(shí)例的密文發(fā)送給目的主機(jī),以使目的主機(jī)基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈;
處理器2204,用于當(dāng)接收到目的主機(jī)發(fā)送的虛擬機(jī)遷移響應(yīng)時(shí),將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上,以使目的主機(jī)基于虛擬機(jī)實(shí)例建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈。
可選地,處理器2204還用于:
生成目標(biāo)sTPM實(shí)例的描述文件;
基于描述文件和遷移身份碼,生成簽章文件;
基于簽章文件的明文、目標(biāo)sTPM實(shí)例的明文和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文。
可選地,處理器2204還用于:
基于簽章文件的明文,對(duì)目標(biāo)sTPM實(shí)例的明文進(jìn)行加密,得到目標(biāo)sTPM實(shí)例的密文;
基于源主機(jī)的私鑰,對(duì)簽章文件的明文進(jìn)行加密,得到簽章文件的密文。
可選地,處理器2204還用于:
對(duì)目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行備份;
對(duì)目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例進(jìn)行卸載。
可選地,發(fā)射機(jī)2201還用于:
向證書(shū)認(rèn)證CA管理中心發(fā)送密鑰獲取請(qǐng)求,密鑰獲取請(qǐng)求中攜帶源主機(jī)的數(shù)字證書(shū),以使CA管理中心基于源主機(jī)的數(shù)字證書(shū)返回源主機(jī)的私鑰。
可選地,接收機(jī)2202還用于:
接收CA管理中心返回的源主機(jī)的私鑰。
可選地,處理器2204還用于:
當(dāng)接收到目的主機(jī)發(fā)送的刪除請(qǐng)求時(shí),刪除備份的目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例。
其中,處理器2204可能是一種集成電路芯片,具有信號(hào)的處理能力。在實(shí)現(xiàn)過(guò)程中,上述方法的各步驟可以通過(guò)處理器中的硬件的集成邏輯電路或者軟件形式的指令完成。這些指令可以通過(guò)其中的處理器以配合實(shí)現(xiàn)及控制,用于執(zhí)行本發(fā)明實(shí)施例揭示的方法。上述處理器還可以是通用處理器、數(shù)字信號(hào)處理器(Digital Signal Processing,DSP)、專用集成電路(application specific integrated circuit)、現(xiàn)成可編程門(mén)陣列(Field Programmable Gate Array,F(xiàn)PGA)或者其他可編程邏輯器件、分立門(mén)或者晶體管邏輯器件、分立硬件組件。
其中,上述通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器,解碼器等。結(jié)合本發(fā)明實(shí)施例所公開(kāi)的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲(chǔ)器,閃存、只讀存儲(chǔ)器,可編程只讀存儲(chǔ)器或者電可擦寫(xiě)可編程存儲(chǔ)器、寄存器等本領(lǐng)域成熟的存儲(chǔ)介質(zhì)中。
另外,虛擬機(jī)可信遷移裝置的各個(gè)硬件組件通過(guò)通信總線2205耦合在一起,其中通信總線2205除包括數(shù)據(jù)總線之外,還包括電源總線、控制總線和狀態(tài)信號(hào)總線。但是為了清楚說(shuō)明,在圖22中將各種總線都標(biāo)為通信總線2205。
本裝置實(shí)施例中提供的一種虛擬機(jī)可信遷移裝置,可以集成在第二服務(wù)器網(wǎng)元設(shè)備中,應(yīng)用于方法實(shí)施例附圖2所示的場(chǎng)景中,實(shí)現(xiàn)虛擬機(jī)可信遷移裝置的功能。虛擬機(jī)可信遷移裝置可以實(shí)現(xiàn)的其他附加功能、以及與其他網(wǎng)元設(shè)備的交互過(guò)程,請(qǐng)參照方法實(shí)施例中對(duì)虛擬機(jī)可信遷移裝置的描述,在這里不再贅述。
在本發(fā)明實(shí)施例中,源主機(jī)基于目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的明文、目的主機(jī)發(fā)送的遷移身份碼和源主機(jī)的私鑰,生成簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,并將簽章文件的密文和目標(biāo)sTPM實(shí)例的密文發(fā)送給目的主機(jī),使目的主機(jī)建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,之后,目的主機(jī)再將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上,使目的主機(jī)基于虛擬機(jī)實(shí)例建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈,以完成目標(biāo)虛擬機(jī)的遷移,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,以恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
圖23是本發(fā)明實(shí)施例提供的一種虛擬機(jī)可信遷移裝置結(jié)構(gòu)示意圖,參見(jiàn)圖23,該裝置包括發(fā)射機(jī)2301、接收機(jī)2302、存儲(chǔ)器2303、處理器2304和通信總線2305,包括:
存儲(chǔ)器2303,用于存儲(chǔ)消息和數(shù)據(jù);
發(fā)射機(jī)2301,用于當(dāng)接收到源主機(jī)發(fā)送的遷移請(qǐng)求時(shí),基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,向源主機(jī)發(fā)送遷移響應(yīng),遷移響應(yīng)中攜帶遷移身份碼,以使源主機(jī)基于遷移身份碼返回簽章文件的密文和目標(biāo)虛擬機(jī)中加載的目標(biāo)軟件可信平臺(tái)模塊sTPM實(shí)例的密文;
處理器2304,用于當(dāng)接收到源主機(jī)發(fā)送的簽章文件的密文和目標(biāo)sTPM實(shí)例的密文時(shí),基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈;
發(fā)射機(jī)2301,用于在建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈之后,向源主機(jī)發(fā)送虛擬機(jī)遷移響應(yīng),以使源主機(jī)將目標(biāo)虛擬機(jī)的虛擬機(jī) 實(shí)例動(dòng)態(tài)遷移到目的主機(jī)上;
處理器2304,用于當(dāng)接收到源主機(jī)動(dòng)態(tài)遷移的目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例時(shí),基于虛擬機(jī)實(shí)例,建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈。
可選地,處理器2304還用于:
基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,建立臨時(shí)sTPM實(shí)例;
對(duì)臨時(shí)sTPM實(shí)例進(jìn)行哈希運(yùn)算,得到臨時(shí)sTPM實(shí)例的哈希值;
將臨時(shí)sTPM實(shí)例的哈希值確定為遷移身份碼;
向源主機(jī)發(fā)送遷移響應(yīng),遷移響應(yīng)中攜帶遷移身份碼。
可選地,處理器2304還用于:
基于遷移請(qǐng)求中攜帶的目標(biāo)虛擬機(jī)的遷移信息,判斷是否接受虛擬機(jī)的遷移;
當(dāng)接受虛擬機(jī)的遷移時(shí),建立臨時(shí)sTPM實(shí)例。
可選地,處理器2304還用于:
基于源主機(jī)的公鑰,對(duì)簽章文件的密文進(jìn)行解密,得到簽章文件的明文,源主機(jī)的公鑰為目的主機(jī)從CA管理中心中獲取得到;
對(duì)簽章文件的明文進(jìn)行解析,得到描述文件和遷移身份碼;
基于簽章文件的明文,對(duì)目標(biāo)sTPM實(shí)例的密文進(jìn)行解密,得到目標(biāo)sTPM實(shí)例的明文;
基于描述文件、遷移身份碼和目標(biāo)sTPM實(shí)例的明文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
可選地,處理器2304還用于:
基于遷移身份碼,對(duì)簽章文件的新鮮性進(jìn)行驗(yàn)證;
如果簽章文件的新鮮性驗(yàn)證通過(guò),則基于描述文件和目標(biāo)sTPM實(shí)例的明文,對(duì)目標(biāo)sTPM實(shí)例的完整性進(jìn)行驗(yàn)證,該描述文件中包括目標(biāo)sTPM實(shí)例的哈希值;
如果目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),則基于目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;
將描述文件中包括的哈希值存儲(chǔ)在臨時(shí)度量列表中;
基于目的主機(jī)的指定寄存器,對(duì)臨時(shí)度量列表進(jìn)行密封,以建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈。
可選地,處理器2304還用于:
基于目標(biāo)sTPM實(shí)例的明文,確定目標(biāo)sTPM實(shí)例的哈希值;
如果確定的哈希值與描述文件中包括的哈希值相同,則確定目標(biāo)sTPM實(shí)例的完整性驗(yàn)證通過(guò),否則,確定目標(biāo)sTPM實(shí)例的完整性驗(yàn)證不通過(guò)。
可選地,處理器2304還用于:
建立空白虛擬機(jī);
相應(yīng)地,處理器2304還用于:
將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例存儲(chǔ)到空白虛擬機(jī)中,得到目的主機(jī)上的目標(biāo)虛擬機(jī);
基于虛擬機(jī)實(shí)例,將目標(biāo)sTPM實(shí)例加載到目標(biāo)虛擬機(jī)中。
可選地,處理器2304還用于:
基于虛擬機(jī)實(shí)例,從存儲(chǔ)的虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中,獲取對(duì)應(yīng)的sTPM實(shí)例;
確定獲取的sTPM實(shí)例的哈希值;
基于目的主機(jī)的指定寄存器,對(duì)存儲(chǔ)的度量列表進(jìn)行解密封,得到臨時(shí)度量列表;
從臨時(shí)度量列表中,獲取目標(biāo)sTPM實(shí)例的哈希值;
基于確定的哈希值與獲取的哈希值,對(duì)獲取的sTPM實(shí)例的完整性進(jìn)行驗(yàn)證;
如果獲取的sTPM實(shí)例的完整性驗(yàn)證通過(guò),則將獲取的sTPM實(shí)例確定為目標(biāo)sTPM實(shí)例,并加載到目標(biāo)虛擬機(jī)中。
可選地,存儲(chǔ)器2303還用于:
將目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例和目標(biāo)sTPM實(shí)例,存儲(chǔ)到虛擬機(jī)實(shí)例與sTPM實(shí)例之間的對(duì)應(yīng)關(guān)系中。
可選地,處理器2304還用于:
基于目的主機(jī)的指定寄存器,對(duì)臨時(shí)度量列表進(jìn)行密封。
其中,處理器2304可能是一種集成電路芯片,具有信號(hào)的處理能力。在實(shí)現(xiàn)過(guò)程中,上述方法的各步驟可以通過(guò)處理器中的硬件的集成邏輯電路或者軟件形式的指令完成。這些指令可以通過(guò)其中的處理器以配合實(shí)現(xiàn)及控制,用于執(zhí)行本發(fā)明實(shí)施例揭示的方法。上述處理器還可以是通用處理器、數(shù)字信號(hào)處 理器(Digital Signal Processing,DSP)、專用集成電路(application specific integrated circuit)、現(xiàn)成可編程門(mén)陣列(Field Programmable Gate Array,F(xiàn)PGA)或者其他可編程邏輯器件、分立門(mén)或者晶體管邏輯器件、分立硬件組件。
其中,上述通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器,解碼器等。結(jié)合本發(fā)明實(shí)施例所公開(kāi)的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲(chǔ)器,閃存、只讀存儲(chǔ)器,可編程只讀存儲(chǔ)器或者電可擦寫(xiě)可編程存儲(chǔ)器、寄存器等本領(lǐng)域成熟的存儲(chǔ)介質(zhì)中。
另外,虛擬機(jī)可信遷移裝置的各個(gè)硬件組件通過(guò)通信總線2305耦合在一起,其中通信總線2305除包括數(shù)據(jù)總線之外,還包括電源總線、控制總線和狀態(tài)信號(hào)總線。但是為了清楚說(shuō)明,在圖23中將各種總線都標(biāo)為通信總線2305。
本裝置實(shí)施例中提供的一種虛擬機(jī)可信遷移裝置,可以集成在第二服務(wù)器網(wǎng)元設(shè)備中,應(yīng)用于方法實(shí)施例附圖3所示的場(chǎng)景中,實(shí)現(xiàn)虛擬機(jī)可信遷移裝置的功能。虛擬機(jī)可信遷移裝置可以實(shí)現(xiàn)的其他附加功能、以及與其他網(wǎng)元設(shè)備的交互過(guò)程,請(qǐng)參照方法實(shí)施例中對(duì)虛擬機(jī)可信遷移裝置的描述,在這里不再贅述。
在本發(fā)明實(shí)施例中,源主機(jī)基于目的主機(jī)發(fā)送的遷移身份碼返回簽章文件的密文和目標(biāo)虛擬機(jī)中加載的目標(biāo)sTPM實(shí)例的密文,目的主機(jī)基于簽章文件的密文和目標(biāo)sTPM實(shí)例的密文,建立目標(biāo)sTPM實(shí)例與目的主機(jī)的硬件TPM之間的可信鏈,并在接收到源主機(jī)動(dòng)態(tài)遷移的目標(biāo)虛擬機(jī)的虛擬機(jī)實(shí)例時(shí),基于虛擬機(jī)實(shí)例,建立目標(biāo)虛擬機(jī)與目標(biāo)sTPM實(shí)例之間的可信鏈,完成目標(biāo)虛擬機(jī)的遷移,不僅保證了目標(biāo)sTPM實(shí)例和目標(biāo)虛擬機(jī)在遷移前后的一致性和可用性,而且在目的主機(jī)已經(jīng)具有可信運(yùn)行環(huán)境的基礎(chǔ)上,通過(guò)建立目的主機(jī)上的硬件TPM與目標(biāo)sTPM實(shí)例之間的可信鏈,以及建立目標(biāo)sTPM實(shí)例與目標(biāo)虛擬機(jī)之間的可信鏈,快速建立了目標(biāo)虛擬機(jī)在目的主機(jī)上的可信性,以恢復(fù)目的主機(jī)上目標(biāo)虛擬機(jī)的運(yùn)行,提高了目標(biāo)虛擬機(jī)的可信遷移效率。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或 光盤(pán)等。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。