一種虛擬機環(huán)境下可信平臺模塊的虛擬化方法【專利摘要】本發(fā)明提供一種虛擬機環(huán)境下可信平臺模塊的虛擬化方法,包括以下步驟:對虛擬平臺配置寄存器vPCR進行保存、恢復和遷移;生成且遷移虛擬身份認證密鑰vAIK,并進行虛擬機身份認證。本發(fā)明提供一種虛擬機環(huán)境下可信平臺模塊的虛擬化方法,模擬傳統(tǒng)可信平臺模塊的平臺配置寄存器功能,為虛擬機的遷移、保存和恢復等操作提供支持。在虛擬機遷移或恢復時,它保證存儲在虛擬平臺配置寄存器vPCR中的完整性測試結(jié)果代表虛擬機之前的狀態(tài)。支持平臺間虛擬機遷移時平臺身份的建立與認證,便于用戶基于遠程證明等技術(shù)對自己的虛擬機狀態(tài)進行檢查與驗證?!緦@f明】一種虛擬機環(huán)境下可信平臺模塊的虛擬化方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及一種虛擬化方法,具體涉及一種虛擬機環(huán)境下可信平臺模塊的虛擬化方法?!?br>背景技術(shù):
】[0002]可信平臺模塊(TrustedPlatformModules,TPM)嵌入到PC平板的安全芯片,存儲了平臺配置信息和加密密鑰,并內(nèi)置加密引擎和用于產(chǎn)生密鑰的隨機數(shù)發(fā)生器;是獨立、被隔離的硬件,只有通過特定的訪問方式、經(jīng)驗證授權(quán)后,外部實體才可以訪問TPM的功能和數(shù)據(jù);具有防范物理攻擊的能力,為系統(tǒng)的安全存儲和認證功能提供了硬件支持。可信密碼模塊(TrustedCryptographyModule,TCM)是一種使能控存儲安全數(shù)據(jù)的微控制器的規(guī)格,與上述的TPM功能類似。Xen系統(tǒng)為開放源代碼虛擬機系統(tǒng),在該系統(tǒng)中,管理程序作為虛擬機(VM)監(jiān)視器并將運行在其上的VM地址空間隔開,把每個虛擬機成為domainU,DomO是負責管理其它domaniU的特權(quán)VM,DomO通過調(diào)用由多個超級調(diào)用組成的控制面板實現(xiàn)管理任務(wù)。平臺配置寄存器(PlatformConfigurationRegister,PCR)可擴展但不能被重置,平臺所有者無法隱藏被執(zhí)行的惡意部件的完整性度量結(jié)果。身份認證密鑰(AttestationIdentityKey,AIK)只能用于簽署TPM的內(nèi)部數(shù)據(jù)如PCR,阻止驗證者利用AIK篡改驗證。[0003]云計算由一系列可動態(tài)升級和被虛擬化的資源組成,這些資源被云計算的用戶共享且方便地通過網(wǎng)絡(luò)訪問。用戶無需掌握云計算的技術(shù),只需要按照個人或者團體的需要租賃云計算的資源即可。繼個人計算機變革、互聯(lián)網(wǎng)變革之后,云計算被看作第三次IT浪潮,是中國戰(zhàn)略性新興產(chǎn)業(yè)的重要組成部分。它將帶來生活、生產(chǎn)方式和商業(yè)模式的根本性改變,云計算將成為當前全社會關(guān)注的熱點之一。目前,雖然云計算在中國行業(yè)的應(yīng)用還僅僅是“冰山一角”,但隨著云計算技術(shù)產(chǎn)品、解決方案的不斷成熟,云計算理念的迅速推廣普及,云計算必將成為未來中國重要行業(yè)領(lǐng)域的主流IT應(yīng)用模式,為重點行業(yè)用戶的信息化建設(shè)與IT運維管理工作奠定核心基礎(chǔ)。未來,在醫(yī)藥醫(yī)療、制造業(yè)、金融與能源、電子政務(wù)、教育科研、電信等多個領(lǐng)域,云計算將更好地發(fā)揮作用,有效地促進產(chǎn)業(yè)的發(fā)展與進步。然而,因云計算付費即可使用的特點,安全性成為云計算服務(wù)的一個瓶頸。如何保證某虛擬機即是用戶所租賃的、如何保證虛擬機上各資源未被攻擊者盜取或更改,這些都是云計算必須解決的問題。攻擊者非法訪問虛擬機,會涉及到個人隱私、財產(chǎn)等敏感信息,從而嚴重威脅用戶終端安全,損害用戶個人利益。[0004]目前,νΤΡΜ主要有IBM設(shè)計的νΤΡΜ和微軟設(shè)計的半虛擬化TPM技術(shù)。νΤΡΜ為虛擬機提供一個前端和后端驅(qū)動。domaniU訪問TPM時,訪問命令從前端傳到后端,再傳給運行在管理域DomO中的νΤΡΜ管理程序,該程序為其分派相應(yīng)的νΤΡΜ后臺程序,后臺程序利用相應(yīng)的物理TPM執(zhí)行訪問命令。半虛擬化TPM為domaniU提供TPM的訪問接口,并負責調(diào)解domaniU對TPM的訪問。[0005]然而,上述各機制存在很多不安全因素。νΤΡΜ的安全性主要依賴硬件、運行在管理域DomO中的νΤΡΜ管理程序和DomO。如果DomO由惡意管理員控制,則無法保證νΤΡΜ的安全性。半虛擬化TPM在設(shè)計時假設(shè)所有賬戶安全地共享存儲根密鑰(StorageRootKey,SRK)和簽署密鑰(EndorsementKey,EK),授權(quán)用戶都可以創(chuàng)建并利用ΑΙΚ,這使得用戶無法通過該AIK識別唯一的虛擬機,從而導致惡意用戶可能濫用AIK,實現(xiàn)虛擬機平臺身份的偽造,所以,半虛擬化TPM同樣存在很多安全性問題?!?br/>發(fā)明內(nèi)容】[0006]為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供一種虛擬機環(huán)境下可信平臺模塊的虛擬化方法,模擬傳統(tǒng)可信平臺模塊的平臺配置寄存器功能,為虛擬機的遷移、保存和恢復等操作提供支持。在虛擬機遷移或恢復時,它保證存儲在虛擬平臺配置寄存器vPCR中的完整性測試結(jié)果代表虛擬機之前的狀態(tài)。[0007]為了實現(xiàn)上述發(fā)明目的,本發(fā)明采取如下技術(shù)方案:[0008]本發(fā)明提供一種虛擬機環(huán)境下可信平臺模塊的虛擬化方法,所述方法包括以下步驟:[0009]步驟1:對虛擬平臺配置寄存器vPCR進行保存、恢復和遷移;[0010]步驟2:生成且遷移虛擬身份認證密鑰vAIK,并進行虛擬機身份認證。[0011]所述步驟I中,domainU保存、恢復和遷移時,Xen系統(tǒng)完成對vPCR進行保存、恢復和遷移,以保證vPCR完整性度量結(jié)果的一致性。[0012]所述步驟I具體包括以下步驟:[0013]步驟1-1:domainU保存時,對其vPCR進行保存;[0014]步驟1-1-1:Xen系統(tǒng)保存domainU時,管理域DomO運行調(diào)用程序,啟動vPCR的保存;[0015]步驟1-1-2:Xen系統(tǒng)中的管理程序計算所有屬于domainU存儲頁的哈希值;[0016]步驟1-1-3:管理程序利用可信存儲保存計算的哈希值和vPCR的當前值;[0017]步驟1-2:domainU恢復時,對其vPCR進行恢復;[0018]步驟1-2-1:domainU恢復時,管理域DomO在內(nèi)存空間恢復之后、且domainU插入任務(wù)列表之前,運行調(diào)用程序啟動vPCR的恢復;[0019]步驟1-2-2:管理程序根據(jù)可信存儲中的哈希值,對domainU現(xiàn)有的存儲空間的安全性進行驗證;[0020]步驟1-2-3:驗證通過后,恢復vPCR之前的存儲值;[0021]步驟1-3:domainU遷移時,對其vPCR進行遷移;[0022]步驟1-3-1:系統(tǒng)遷移domainU時,管理域DomO運行調(diào)用程序啟動vPCR的遷移;[0023]步驟1-3-2:管理程序用vAIK簽署vPCR的當前值和可信存儲中的哈希值;[0024]步驟1-3-3=Xen系統(tǒng)將簽名發(fā)送到管理程序;[0025]步驟1-3-4:管理程序檢驗該簽名是否由要被遷移的虛擬機的vAIK簽署并檢測vPCR,驗證通過后進行存儲。[0026]所述步驟2包括以下步驟:[0027]步驟2-1:用戶從云端租賃虛擬機時生成vAIK;[0028]步驟2-2:虛擬機從一個平臺遷移到另一個平臺時,進行vAIK遷移;[0029]步驟2-3:用戶要驗證domainU是否為自己租賃的虛擬機時,進行虛擬機身份認證。[0030]所述步驟2-1包括以下步驟:[0031]步驟2-1-1:用戶生成用戶證書certuser和隨機數(shù)nonce,發(fā)送給管理程序;[0032]步驟2-1-2:管理程序調(diào)用TCM生成密鑰AuthKey和vAIK,其實現(xiàn)方法為:[0033]AuthKey=TCM_CreateffrapKey(non-migratable,PCRO-8,localityO);[0034]vAIK=TCM_CreateffrapKey(migratable,PCRO-8,localityO);[0035]其中,TCM_CreateffrapKey(non-migratabIe,PCRO-8,localityO)表不可信密碼模塊TCM生成不可遷移的AuthKey,并把AuthKey與localityO和PCR0-8綁定;TCM_CreateffrapKey(migratable,PCRO-8,localityO)表不TCM生成可遷移的vAIK,并把vAIK與locality。、PCRO-8綁定;[0036]步驟2-1-3:管理程序把vAIK和certuser保存在可信平臺模塊中的可信存儲器上;[0037]步驟2-1-4:管理程序使用平臺AuthKey和平臺AIK驗證vAIK和AuthKey的屬性,生成證書CertvAII^PCertAuthKey,其實現(xiàn)方法為:[0038]CertvAIK=TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce));[0039]CertAuthKey=TCM_CertifyKey(AIK,AuthKey,hash(certuser|nonce));[0040]其中,TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce))表不使用平臺AuthKey驗證vAIK的屬性,生成相應(yīng)的CertvAIK,TCM_CertifyKey(AIK,AuthKey,hash(cert.|nonce))表示使用平臺AIK驗證AuthKey的屬性,生成相應(yīng)的CertAuthKey;[0041]步驟2-1-5:管理程序?qū)ertvAIK和CertAuthKey發(fā)送給用戶。`[0042]所述步驟2-2包括以下步驟:[0043]步驟2-2-1:初始操作平臺的管理程序向目標操作平臺的管理程序發(fā)送隨機數(shù)nonce;[0044]步驟2-2-2:目標操作平臺的管理程序生成僅能被管理程序訪問的密鑰ExgKey,同時用AIK驗證ExgKey,生成密鑰CertExgKey,其實現(xiàn)方法是:[0045]ExgKey=TCM_CreateffrapKey(non-migratable,PCRO-8,localityO);[0046]CertExgKey=TCM_CertifyKey(AIK,ExgKey,nonce);[0047]其中,TCM_CreateffrapKey(non-migratabIe,PCRO-8,localityO)表不可信密碼模塊TCM生成不可遷移的AuthKey,并把AuthKey與localityO和PCR0-8綁定;TCM_CertifyKey(AIK,ExgKey,nonce)表不用AIK驗證ExgKey。[0048]步驟2-2-3:目標操作平臺的管理程序?qū)ertExgKey發(fā)送給初始操作平臺的管理程序;[0049]步驟2-2-4:初始操作平臺的管理程序檢驗ExgKey的屬性,確保它只能被可信的管理程序訪問,同時用ExgKey加密要遷移的虛擬機的vAIK和certUSOT,生成密鑰BlobvAIK,其實現(xiàn)方法為:[0050]BlobvAIK=TCM_CreateMigrationBlob((vAIK,certuser),ExgKey);[0051]其中,TCM_CreateMigrationBlob((vAIK,certuser),ExgKey)表不用ExgKey加密vAIK和certuser。[0052]步驟2-2-5:初始操作平臺的管理程序從可信存儲器刪除vAIK和CertUSCT;[0053]步驟2-2-6:初始操作平臺的管理程序向目標操作平臺的管理程序發(fā)送BlobvAIK,并刪除vAIK和certuser的認證,目標操作平臺的管理程序解密vAIK和certUSOT,同時將vAIK和certUSOT放在可信存儲器上,其實現(xiàn)方法為:[0054](vAIK,certuser)=TCM_ConvertMigrationBlob(BlobvAIK,ExgKey);[0055]其中,TCM_ConvertMigrationBlob(BlobvAIK,ExgKey)表不用ExgKey解密B1bvAIK。[0056]所述2-3包括以下步驟:[0057]步驟2-3-1:驗證者向虛擬機發(fā)送nonce;[0058]步驟2-3-2:虛擬機請求管理程序為其建立驗證;[0059]步驟2-3-3:管理程序收到請求,為虛擬機下載相應(yīng)的vAIK和certUSOT,用vAIK簽署vPCR,為vAIK和AuthKey的安全屬性建立證書,生成Attestation、CertvAIK和CertAuthKey;其實現(xiàn)方法為:[0060]Attestation=TCM_Sign(vPCR,nonce,vAIK);[0061]CertvAIK=TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce));[0062]CertAuthKey=TCM_CertifyKey(AIK,AuthKey,hash(certuser|nonce));[0063]其中,TCM_Sign(vPCR,nonce,vAIK)表示用vAIK簽署vPCR;TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce))表不用平臺AuthKey驗證vAIK的屬性,TCM_CertifyKey(AIK,AuthKey,hash(certuser|nonce))表不用平臺AIK驗證AuthKey的屬性;[0064]步驟2-3-4:管理程序?qū)ttestation、CertvAIK和CertAutttey發(fā)送給虛擬機,虛擬機把attestation、CertvAII^PCertAuthKey建成測試列表即(Measure_list,Attestion,CertvAIK>CertAuthKey)并發(fā)給驗證者;[0065]步驟2-3-5:驗證者對(Measure_list,Attestion,CertvAIK、CertAuthKey)進行驗證,驗證步驟為:[0066](I)驗證Certusw保證vAIK只能被單個可信的管理程序訪問,而且只屬于它自己的虛擬機;[0067](2)驗證簽名保證由上述vAIK簽署;[0068](3)通過擴展測試列表計算驗證vPCR;[0069](4)根據(jù)參考數(shù)據(jù)驗證測試列表。[0070]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:[0071](I)虛擬平臺配置寄存器由位于管理程序地址空間的內(nèi)部數(shù)據(jù)表示,管理程序的安全性保證了虛擬平臺配置寄存器的安全性;[0072](2)管理域DomO負責虛擬平臺配置寄存器的恢復,虛擬機的存儲空間根據(jù)先前狀態(tài)的哈希值進行驗證,避免了攻擊者在虛擬機恢復時對虛擬平臺配置寄存器的惡意修改;[0073](3)虛擬身份認證密鑰vAIK由TCM產(chǎn)生,TCM的安全性有效防止攻擊者破壞其機密性;[0074](4)管理程序?qū)⑻摂M機和vAIK綁定并存儲在管理程序的內(nèi)部地址空間中,管理程序的安全性避免了攻擊者對其的篡改;[0075](5)用戶證書與vAIK的綁定并存儲在可信存儲中,可信存儲機制的安全性避免了攻擊者對其的篡改?!緦@綀D】【附圖說明】[0076]圖1是本發(fā)明實施例中vAIK生成流程圖;[0077]圖2是本發(fā)明實施例中vAIK遷移流程圖;[0078]圖3是本發(fā)明實施例中虛擬機身份認證流程圖?!揪唧w實施方式】[0079]下面結(jié)合附圖對本發(fā)明作進一步詳細說明。[0080]本發(fā)明提供一種虛擬機環(huán)境下可信平臺模塊的虛擬化方法,所述方法包括以下步驟:[0081]步驟1:對虛擬平臺配置寄存器vPCR進行保存、恢復和遷移;[0082]步驟2:生成且遷移虛擬身份認證密鑰vAIK,并進行虛擬機身份認證。[0083]所述步驟I中,domainU保存、恢復和遷移時,Xen系統(tǒng)完成對vPCR進行保存、恢復和遷移,以保證vPCR完整性度量結(jié)果的一致性。[0084]所述步驟I具體包括以下步驟:[0085]步驟1-1:domainU保存時,對其vPCR進行保存;[0086]步驟1-1-1:Xen系統(tǒng)保存domainU時,管理域DomO運行調(diào)用程序,啟動vPCR的保存;[0087]步驟1-1-2:Xen系統(tǒng)中的管理程序計算所有屬于domainU存儲頁的哈希值;[0088]步驟1-1-3:管理程序利用可信存儲保存計算的哈希值和vPCR的當前值;[0089]步驟1-2:domainU恢復時,對其vPCR進行恢復;[0090]步驟1-2-1:domainU恢復時,管理域DomO在內(nèi)存空間恢復之后、且domainU插入任務(wù)列表之前,運行調(diào)用程序啟動vPCR的恢復;[0091]步驟1-2-2:管理程序根據(jù)可信存儲中的哈希值,對domainU現(xiàn)有的存儲空間的安全性進行驗證;[0092]步驟1-2-3:驗證通過后,恢復vPCR之前的存儲值;[0093]步驟1-3:domainU遷移時,對其vPCR進行遷移;[0094]步驟1-3-1:系統(tǒng)遷移domainU時,管理域DomO運行調(diào)用程序啟動vPCR的遷移;[0095]步驟1-3-2:管理程序用vAIK簽署vPCR的當前值和可信存儲中的哈希值;[0096]步驟1-3-3=Xen系統(tǒng)將簽名發(fā)送到管理程序;[0097]步驟1-3-4:管理程序檢驗該簽名是否由要被遷移的虛擬機的vAIK簽署并檢測vPCR,驗證通過后進行存儲。[0098]所述步驟2包括以下步驟:[0099]步驟2-1:用戶從云端租賃虛擬機時生成vAIK;[0100]所述步驟2-1包括以下步驟:[0101]步驟2-1-1:用戶生成用戶證書certuser和隨機數(shù)nonce,發(fā)送給管理程序;[0102]步驟2-1-2:管理程序調(diào)用TCM生成密鑰AuthKey和vAIK,其實現(xiàn)方法為:[0103]AuthKey=TCM_CreateffrapKey(non-migratable,PCRO-8,localityO);[0104]vAIK=TCM_CreateffrapKey(migratable,PCRO-8,localityO);[0105]其中,TCM_CreateffrapKey(non-migratabIe,PCRO-8,localityO)表不可信密碼模塊TCM生成不可遷移的AuthKey,并把AuthKey與localityO和PCR0-8綁定;TCM_CreateffrapKey(migratable,PCRO-8,localityO)表不TCM生成可遷移的vAIK,并把vAIK與locality。、PCRO-8綁定;[0106]步驟2-1-3:管理程序把vAIK和certuser保存在可信平臺模塊中的可信存儲器上;[0107]步驟2-1-4:管理程序使用平臺AuthKey和平臺AIK驗證vAIK和AuthKey的屬性,生成證書CertvAII^PCertAuthKey,其實現(xiàn)方法為:[0108]CertvAIK=TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce));[0109]CertAuthKey=TCM_CertifyKey(AIK,AuthKey,hash(certuser|nonce));[0110]其中,TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce))表不使用平臺AuthKey驗證vAIK的屬性,生成相應(yīng)的CertvAIK,TCM_CertifyKey(AIK,AuthKey,hash(cert.|nonce))表示使用平臺AIK驗證AuthKey的屬性,生成相應(yīng)的CertAuthKey;[0111]步驟2-1-5:管理程序?qū)ertvAIK和CertAuthKey發(fā)送給用戶。[0112]用戶證書和隨機數(shù)的哈希在認證過程中被加入,因此用戶可以保證vAIK與他的請求相對應(yīng);AuthKey只產(chǎn)生一次,在隨后其他虛擬平臺身份建立過程中,系統(tǒng)仍使用該AuthKey。vAIK創(chuàng)建后,管理程序把它與DomainU綁定,同時vAIK與虛擬機用戶的證書綁定。用戶關(guān)閉虛擬機需重啟時,他須先向管理程序驗證自己的身份,管理程序根據(jù)用戶證書從可信存儲器下載vAIK,并把它與虛擬機再次綁定。為保證vAIK的唯一性,VM在快速復制時,vAIK不會同步復制,同樣地,VM狀態(tài)恢復時,vAIK不會隨之恢復。[0113]步驟2-2:虛擬機從一個平臺遷移到另一個平臺時,進行vAIK遷移;[0114]所述步驟2-2包括以下步驟:[0115]步驟2-2-1:初始操作平臺的管理程序向目標操作平臺的管理程序發(fā)送隨機數(shù)nonce;[0116]步驟2-2-2:目標操作平臺的管理程序生成僅能被管理程序訪問的密鑰ExgKey,同時用AIK驗證ExgKey,生成密鑰CertExgKey,其實現(xiàn)方法是:[0117]ExgKey=TCM_CreateffrapKey(non-migratable,PCRO-8,localityO);[0118]CertExgKey=TCM_CertifyKey(AIK,ExgKey,nonce);[0119]其中,TCM_CreateWrapKey(non-migratable,PCRO-8,localityO)表不可信密碼模塊TCM生成不可遷移的AuthKey,并把AuthKey與localityO和PCR0-8綁定;TCM_CertifyKey(AIK,ExgKey,nonce)表不用AIK驗證ExgKey。[0120]步驟2-2-3:目標操作平臺的管理程序?qū)ertExgKey發(fā)送給初始操作平臺的管理程序;[0121]步驟2-2-4:初始操作平臺的管理程序檢驗ExgKey的屬性,確保它只能被可信的管理程序訪問,同時用ExgKey加密要遷移的虛擬機的vAIK和certUSOT,生成密鑰BlobvAIK,其實現(xiàn)方法為:[0122]BlobvAIK=TCM_CreateMigrationBlob((vAIK,certuser),ExgKey);[0123]其中,TCM_CreateMigrationBlob((vAIK,certuser),ExgKey)表不用ExgKey加密vAIK和certuser。[0124]步驟2-2-5:初始操作平臺的管理程序從可信存儲器刪除vAIK和CertUSCT;[0125]步驟2-2-6:初始操作平臺的管理程序向目標操作平臺的管理程序發(fā)送BlobvAIK,并刪除vAIK和certuser的認證,目標操作平臺的管理程序解密vAIK和certUSOT,同時將vAIK和certUSOT放在可信存儲器上,其實現(xiàn)方法為:[0126](vAIK,certuser)=TCM_ConvertMigrationBlob(BlobvAIK,ExgKey);[0127]其中,TCM_ConvertMigrationBlob(BlobvAIK,ExgKey)表示用ExgKey解密B1bvAIK。[0128]步驟2-3:用戶要驗證domainU是否為自己租賃的虛擬機時,進行虛擬機身份認證。[0129]所述2-3包括以下步驟:[0130]步驟2-3-1:驗證者向虛擬機發(fā)送nonce;[0131]步驟2-3-2:虛擬機請求管理程序為其建立驗證;[0132]步驟2-3-3:管理程序收到請求,為虛擬機下載相應(yīng)的vAIK和certUSOT,用vAIK簽署vPCR,為vAIK和AuthKey的安全屬性建立證書,生成Attestation、CertvAIK和CertAuthKey;其實現(xiàn)方法為:[0133]Attestation=TCM_Sign(vPCR,nonce,vAIK);[0134]CertvAIK=TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce));[0135]CertAuthKey=TCM_CertifyKey(AIK,AuthKey,hash(certuser|nonce));[0136]其中,TCM_Sign(vPCR,nonce,vAIK)表示用vAIK簽署vPCR;TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce))表不用平臺AuthKey驗證vAIK的屬性,TCM_CertifyKey(AIK,AuthKey,hash(certuser|nonce))表不用平臺AIK驗證AuthKey的屬性;[0137]步驟2-3-4:管理程序?qū)ttestation、CertvAII^[ICertAutttey發(fā)送給虛擬機,虛擬機把attestation、CertvAII^PCertAuthKey建成測試列表即(Measure_list,Attestion,CertvAIK>CertAuthKey)并發(fā)給驗證者;[0138]步驟2-3-5:驗證者對(Measure_list,Attestion,CertvAIK、CertAuthKey)進行驗證,驗證步驟為:[0139](I)驗證cert.,保證vAIK只能被單個可信的管理程序訪問,而且只屬于它自己的虛擬機;[0140](2)驗證簽名保證由上述vAIK簽署;[0141](3)通過擴展測試列表計算驗證vPCR;[0142](4)根據(jù)參考數(shù)據(jù)驗證測試列表。[0143]最后應(yīng)當說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,盡管參照上述實施例對本發(fā)明進行了詳細的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當理解:依然可以對本發(fā)明的【具體實施方式】進行修改或者等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當中?!緳?quán)利要求】1.一種虛擬機環(huán)境下可信平臺模塊的虛擬化方法,其特征在于:所述方法包括以下步驟:步驟1:對虛擬平臺配置寄存器VPCR進行保存、恢復和遷移;步驟2:生成且遷移虛擬身份認證密鑰vAIK,并進行虛擬機身份認證。2.根據(jù)權(quán)利要求1所述的虛擬機環(huán)境下可信平臺模塊的虛擬化方法,其特征在于:所述步驟I中,domainU保存、恢復和遷移時,Xen系統(tǒng)完成對vPCR進行保存、恢復和遷移,以保證vPCR完整性度量結(jié)果的一致性。3.根據(jù)權(quán)利要求2所述的虛擬機環(huán)境下可信平臺模塊的虛擬化方法,其特征在于:所述步驟I具體包括以下步驟:步驟1-1:domainU保存時,對其vPCR進行保存;步驟1-1-1=Xen系統(tǒng)保存domainU時,管理域DomO運行調(diào)用程序,啟動vPCR的保存;步驟1-1-2:Xen系統(tǒng)中的管理程序計算所有屬于domainU存儲頁的哈希值;步驟1-1-3:管理程序利用可信存儲保存計算的哈希值和vPCR的當前值;步驟1-2:domainU恢復時,對其vPCR進行恢復;步驟1-2-1:domainU恢復時,管理域DomO在內(nèi)存空間恢復之后、且domainU插入任務(wù)列表之前,運行調(diào)用程序啟動vPCR的恢復;步驟1-2-2:管理程序根據(jù)可信存儲中的哈希值,對domainU現(xiàn)有的存儲空間的安全性進行驗證;步驟1-2-3:驗證通過后,恢復vPCR之前的存儲值;步驟1-3:domainU遷移時,對其vPCR進行遷移;步驟1-3-1:系統(tǒng)遷移domainU時,管理域DomO運行調(diào)用程序啟動vPCR的遷移;步驟1-3-2:管理程序用vAIK簽署vPCR的當前值和可信存儲中的哈希值;步驟1-3-3=Xen系統(tǒng)將簽名發(fā)送到管理程序;步驟1-3-4:管理程序檢驗該簽名是否由要被遷移的虛擬機的vAIK簽署并檢測vPCR,驗證通過后進行存儲。4.根據(jù)權(quán)利要求1所述的虛擬機環(huán)境下可信平臺模塊的虛擬化方法,其特征在于:所述步驟2包括以下步驟:步驟2-1:用戶從云端租賃虛擬機時生成vAIK;步驟2-2:虛擬機從一個平臺遷移到另一個平臺時,進行vAIK遷移;步驟2-3:用戶要驗證domainU是否為自己租賃的虛擬機時,進行虛擬機身份認證。5.根據(jù)權(quán)利要求4所述的虛擬機環(huán)境下可信平臺模塊的虛擬化方法,其特征在于:所述步驟2-1包括以下步驟:步驟2-1-1:用戶生成用戶證書certuser和隨機數(shù)nonce,發(fā)送給管理程序;步驟2-1-2:管理程序調(diào)用TCM生成密鑰AuthKey和vAIK,其實現(xiàn)方法為:AuthKey=TCM_CreateffrapKey(non-migratable,PCRO-8,localityO);vAIK=TCM_CreateffrapKey(migratable,PCRO-8,localityO);其中,TCM_CreateffrapKey(non-migratabIe,PCRO-8,localityO)表不可信密碼模塊TCM生成不可遷移的AuthKey,并把AuthKey與localityO和PCR0-8綁定;TCM_CreateffrapKey(migratable,PCRO-8,localityO)表不TCM生成可遷移的vAIK,并把vAIK與locality。、PCR0-8綁定;步驟2-1-3:管理程序把vAIK和certuser保存在可信平臺模塊中的可信存儲器上;步驟2-1-4:管理程序使用平臺AuthKey和平臺AIK驗證vAIK和AuthKey的屬性,生成證書CertvAII^[ICertAuthKey,其實現(xiàn)方法為:CertvAIK=TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce));CertAuthKey=TCM_CertifyKey(AIK,AuthKey,hash(certuser|nonce));其中,TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce))表不使用平臺AuthKey驗證vAIK的屬性,生成相應(yīng)的CertvAIK,TCM_CertifyKey(AIK,AuthKey,hash(cert.|nonce))表示使用平臺AIK驗證AuthKey的屬性,生成相應(yīng)的CertAuthKey;步驟2-1-5:管理程序?qū)ertvAIK和CertAutttey發(fā)送給用戶。6.根據(jù)權(quán)利要求4所述的虛擬機環(huán)境下可信平臺模塊的虛擬化方法,其特征在于:所述步驟2-2包括以下步驟:步驟2-2-1:初始操作平臺的管理程序向目標操作平臺的管理程序發(fā)送隨機數(shù)nonce;步驟2-2-2:目標操作平臺的管理程序生成僅能被管理程序訪問的密鑰ExgKey,同時用AIK驗證ExgKey,生成密鑰CertExgKey,其實現(xiàn)方法是:ExgKey=TCM_CreateffrapKey(non-migratable,PCRO-8,locality。);CertExgKey=TCM_CertifyKey(AIK,ExgKey,nonce);其中,TCM_CreateWrapKey(non-migratable,PCRO-8,localityO)表不可信密碼模塊TCM生成不可遷移的AuthKey,并把AuthKey與1calityO和PCR0-8綁定;TCM_CertifyKey(AIK,ExgKey`,nonce)表不用AIK驗證ExgKey。步驟2-2-3:目標操作平臺的管理程序?qū)ertExgKey發(fā)送給初始操作平臺的管理程序;步驟2-2-4:初始操作平臺的管理程序檢驗ExgKey的屬性,確保它只能被可信的管理程序訪問,同時用ExgKey加密要遷移的虛擬機的vAIK和certUSOT,生成密鑰BlobvAIK,其實現(xiàn)方法為:BlobvAIK=TCM_CreateMigrationBlob((vAIK,certuser),ExgKey);其中,TCM_CreateMigrationBlob((vAIK,certuser),ExgKey)表不用ExgKey加密vAIK和certuser。步驟2-2-5:初始操作平臺的管理程序從可信存儲器刪除vAIK和Certusw;步驟2-2-6:初始操作平臺的管理程序向目標操作平臺的管理程序發(fā)送BlobvAIK,并刪除vAIK和certuser的認證,目標操作平臺的管理程序解密vAIK和certUSOT,同時將vAIK和certUSCT放在可信存儲器上,其實現(xiàn)方法為:(vAIK,certuser)=TCM_ConvertMigrationBlob(BlobvAIK,ExgKey);其中,TCM_ConvertMigrationBlob(BlobvAIK,ExgKey)表示用ExgKey解密BlobvAIK。7.根據(jù)權(quán)利要求4所述的虛擬機環(huán)境下可信平臺模塊的虛擬化方法,其特征在于:所述2-3包括以下步驟:步驟2-3-1:驗證者向虛擬機發(fā)送nonce;步驟2-3-2:虛擬機請求管理程序為其建立驗證;步驟2-3-3:管理程序收到請求,為虛擬機下載相應(yīng)的vAIK和certUSOT,用vAIK簽署vPCR,為vAIK和AuthKey的安全屬性建立證書,生成Attestation、CertvAIK和CertAuthKey;其實現(xiàn)方法為:Attestation=TCM—Sign(vPCR,nonce,vAIK);CertvAIK=TCM—CertifyKey(AuthKey,vAIK,hash(certuser|nonce));CertAuthKey=TCM_CertifyKey(AIK,AuthKey,hash(certuser|nonce));其中,TCM—Sign(vPCR,nonce,vAIK)表不用vAIK簽署vPCR;TCM_CertifyKey(AuthKey,vAIK,hash(certuser|nonce))表不用平臺AuthKey驗證vAIK的屬性,TCM—CertifyKey(AIK,AuthKey,hash(certuser|nonce))表不用平臺AIK驗證AuthKey的屬性;步驟2-3-4:管理程序?qū)ttestation、CertvAIK和CertAuthKey發(fā)送給虛擬機,虛擬機把attestation、CertvAIK和CertAuthKey建成測試列表即(Measure—list,Attestion,CertvAIK、CertAuthKey)并發(fā)給驗證者;步驟2-3-5:驗證者對(Measure—list,Attestion,CertvAIK、CertAuthKey)進行驗證,驗證步驟為:(1)驗證certUSCT保證vAIK只能被單個可信的管理程序訪問,而且只屬于它自己的虛擬機;(2)驗證簽名保證由上述vAIK簽署;(3)通過擴展測試列表計算驗證vPCR;(4)根據(jù)參考數(shù)據(jù)驗證測試列表。`【文檔編號】H04L29/08GK103701607SQ201310728458【公開日】2014年4月2日申請日期:2013年12月25日優(yōu)先權(quán)日:2013年12月25日【發(fā)明者】徐震,于愛民,汪丹,周曉湄,趙保華,王志皓申請人:國家電網(wǎng)公司,中國電力科學研究院,中國科學院信息工程研究所,國網(wǎng)浙江省電力公司