一種云環(huán)境中虛擬機(jī)可信保障的方法
【專利摘要】本發(fā)明提出了一種云環(huán)境中虛擬機(jī)可信保障的方法,屬于信息安全領(lǐng)域,其特征在于將虛擬可信根模塊從云環(huán)境中的每臺(tái)服務(wù)器上分離出來,集中到一臺(tái)設(shè)備中,這臺(tái)設(shè)備含有物理可信根并且完成可信根虛擬化,為云環(huán)境中虛擬機(jī)提供可信計(jì)算相關(guān)工作,主要內(nèi)容包括可信根設(shè)備與云服務(wù)器之間通信機(jī)制建立和虛擬機(jī)可信保障方法兩部分內(nèi)容。本發(fā)明提供的方法中由于虛擬可信根與虛擬機(jī)不在同一平臺(tái),只需要進(jìn)行虛擬機(jī)遷移,然后在虛擬機(jī)遷移后重新關(guān)聯(lián)虛擬機(jī)和虛擬可信根,這樣有效地解決了虛擬機(jī)遷移問題。
【專利說明】一種云環(huán)境中虛擬機(jī)可信保障的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是一種云環(huán)境中虛擬機(jī)可信保障的方法,以云計(jì)算和可信計(jì)算技術(shù)為基礎(chǔ),為云平臺(tái)用戶提供安全可信的解決方案,屬于信息安全領(lǐng)域。
【背景技術(shù)】
[0002]云計(jì)算作為一種新興的計(jì)算模式,以按需付費(fèi)、降低成本、隨時(shí)隨地、節(jié)能降耗等優(yōu)勢,掀起新一輪產(chǎn)業(yè)浪潮。在云計(jì)算模式下,用戶需要將自己的數(shù)據(jù)和應(yīng)用程序轉(zhuǎn)移到云服務(wù)器或虛擬機(jī)上進(jìn)行存儲(chǔ)或者運(yùn)行。然而這些數(shù)據(jù)和應(yīng)用程序可能會(huì)遭受到來自于云中其他用戶的惡意竊取、篡改、威脅。
[0003]可信計(jì)算技術(shù)和安全芯片技術(shù)的不斷進(jìn)步為解決這些安全問題提出了新思路??尚庞?jì)算技術(shù)的基本思想是先在計(jì)算機(jī)系統(tǒng)中建立一個(gè)信任根,信任根可信性由物理安全、技術(shù)安全與管理安全共同確保;再建立一條信任鏈,從信任根開始,到硬件平臺(tái),到操作系統(tǒng),再到應(yīng)用,一級(jí)度量認(rèn)證一級(jí),一級(jí)信任一級(jí),把這種信任擴(kuò)展到整個(gè)計(jì)算機(jī)系統(tǒng)。
[0004]目前研究最多的是IBM提出的虛擬可信根體系架構(gòu),即在每一臺(tái)云服務(wù)器上都設(shè)置一個(gè)管理級(jí)別的虛擬機(jī)用來虛擬可信根,然后使用虛擬可信根完成虛擬機(jī)的可信性度量。這樣會(huì)帶來一些問題,首先云平臺(tái)中虛擬機(jī)遷移時(shí),其對(duì)應(yīng)的虛擬可信根也要遷移,目前的虛擬可信根與物理可信根的綁定是通過使用物理可信根的存儲(chǔ)根密鑰和身份認(rèn)證密鑰來直接保護(hù)和簽名虛擬背書密鑰及虛擬身份認(rèn)證密鑰,這使得虛擬背書密鑰及虛擬身份認(rèn)證密鑰成為不可遷移密鑰,因此虛擬機(jī)遷移到目的平臺(tái)后需要重新生成這些密鑰。并且可信平臺(tái)模塊規(guī)范中規(guī)定身份認(rèn)證密鑰只能對(duì)可信平臺(tái)模塊內(nèi)部產(chǎn)生的信息進(jìn)行簽名,而虛擬身份認(rèn)證密鑰不屬可信平臺(tái)模塊內(nèi)部信息,不符合規(guī)范。其次需要設(shè)計(jì)遷移協(xié)議,保證遷移過程中數(shù)據(jù)的機(jī)密性、完整性、不可抵賴性。最后,虛擬可信根模塊和虛擬機(jī)處在同一服務(wù)器,服務(wù)器除了向用戶提供服務(wù)外,還要向虛擬可信根模塊提供計(jì)算能力,計(jì)算壓力較大。
[0005]本發(fā)明提出的云環(huán)境中虛擬機(jī)可信保障方法,在保障云中虛擬機(jī)可信的基礎(chǔ)上,主要解決以下技術(shù)問題:
[0006](I)虛擬機(jī)遷移過程中存在的問題?,F(xiàn)有技術(shù)方案虛擬機(jī)遷移時(shí),其對(duì)應(yīng)的虛擬可信根也要遷移,然而虛擬可信根與物理可信根的綁定導(dǎo)致虛擬背書密鑰及虛擬身份認(rèn)證密鑰成為不可遷移密鑰??尚牌脚_(tái)模塊規(guī)范中規(guī)定身份認(rèn)證密鑰只能對(duì)可信平臺(tái)模塊內(nèi)部產(chǎn)生的信息進(jìn)行簽名,而虛擬身份認(rèn)證密鑰不屬可信平臺(tái)模塊內(nèi)部信息,不符合規(guī)范。本發(fā)明中虛擬可信根不需要隨著虛擬機(jī)遷移,只需要虛擬機(jī)遷移后,重新建立與虛擬可信根關(guān)聯(lián)關(guān)系。
[0007](2)云服務(wù)器的計(jì)算壓力問題?,F(xiàn)有的架構(gòu)中,虛擬可信根模塊和虛擬機(jī)處在同一服務(wù)器,服務(wù)器除了向用戶提供服務(wù)外,還要向虛擬可信根模塊提供計(jì)算能力,壓力較大。本發(fā)明中使用獨(dú)立設(shè)備完成對(duì)云平臺(tái)虛擬機(jī)的可信計(jì)算相關(guān)工作,可以減輕云平臺(tái)可信相關(guān)計(jì)算的壓力,提高性能。
【發(fā)明內(nèi)容】
[0008]本發(fā)明提出了一種云環(huán)境中虛擬機(jī)可信保障的方法。其特征在于將虛擬可信根模塊從云服務(wù)器中分離出來,集中到一臺(tái)設(shè)備上,這臺(tái)設(shè)備含有物理可信根并完成可信根的虛擬化,為云虛擬機(jī)提供可信計(jì)算相關(guān)工作。虛擬出的可信根都符合可信根規(guī)范,向虛擬機(jī)提供與可信根相同的功能和接口集,從虛擬機(jī)角度看,虛擬可信根實(shí)例就是它的可信根。
[0009]本發(fā)明提出的云環(huán)境虛擬機(jī)可信保障方法,主要內(nèi)容包括可信根設(shè)備與云服務(wù)器之間通信機(jī)制建立和虛擬機(jī)可信保障方法兩部分。
[0010]所述的可信根設(shè)備與云服務(wù)器之間的通信機(jī)制,包括如下步驟:
[0011]步驟1:通信雙方提出建立通信機(jī)制并進(jìn)行身份驗(yàn)證,由于每一個(gè)平臺(tái)中可信根模塊都有用于身份標(biāo)識(shí)的身份認(rèn)證密鑰,所以可以使用身份認(rèn)證密鑰進(jìn)行身份認(rèn)證。
[0012]步驟1.1:源端向目的端發(fā)送身份認(rèn)證密鑰證書;
[0013]步驟1.2:目的端驗(yàn)證證書是否過期,通過驗(yàn)證后,向源端發(fā)送自身的身份認(rèn)證密鑰證書,同時(shí)產(chǎn)生隨機(jī)數(shù)Nd32-bit,使用源端的身份認(rèn)證密鑰公鑰加密Nd,并發(fā)送給源端,只有源端的身份認(rèn)證密鑰私鑰才能正確解密得到這個(gè)隨機(jī)數(shù);
[0014]步驟1.3:源端驗(yàn)證目的端身份認(rèn)證密鑰證書是否過期,驗(yàn)證通過后,使用身份認(rèn)證密鑰私鑰解密得到隨機(jī)數(shù)Nd,源端也產(chǎn)生一個(gè)隨機(jī)數(shù)Ns32-bit,使用目的端身份認(rèn)證密鑰公鑰加密Ns和Nd,然后用自己的身份認(rèn)證密鑰私鑰簽名,發(fā)送給目的端;
[0015]步驟1.4目的平臺(tái)驗(yàn)證收到的Nd是否為自己發(fā)出的,如果是則使用源端身份認(rèn)證密鑰公鑰加密Ns,然后用自己的身份認(rèn)證密鑰私鑰簽名,發(fā)送給源端;
[0016]步驟1.5:源端驗(yàn)證收到的Ns是否為自己發(fā)出的,如果是則雙方身份驗(yàn)證完成;
[0017]步驟2:會(huì)話密鑰協(xié)商階段,采用D-H算法;
[0018]步驟2.1:源端和目的端協(xié)商兩個(gè)全局公開的參數(shù);
[0019]步驟2.2:源端計(jì)算出一個(gè)D-H公鑰A,發(fā)送給目的端;
[0020]步驟2.3:目的端計(jì)算出一個(gè)D-H公鑰B,發(fā)送給源端;
[0021]步驟2.4:源端根據(jù)B計(jì)算共享密鑰,并對(duì)共享密鑰進(jìn)行哈希運(yùn)算,發(fā)送給目的端,目的端根據(jù)A計(jì)算出共享密鑰,并對(duì)共享密鑰進(jìn)行哈希運(yùn)算,比較與收到的哈希值是否相同,如果相同則會(huì)話密鑰有效;
[0022]步驟3:數(shù)據(jù)傳輸
[0023]步驟3.1:源端使用自身計(jì)算的共享密鑰對(duì)數(shù)據(jù)進(jìn)行加密,同時(shí)產(chǎn)生一個(gè)隨機(jī)數(shù),加密結(jié)果與隨機(jī)數(shù)構(gòu)成一個(gè)數(shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行哈希計(jì)算,哈希值與數(shù)據(jù)包一起發(fā)送給目的端;
[0024]步驟3.2:目的端接收到消息后,進(jìn)行完整性驗(yàn)證。如果驗(yàn)證成功則通知目的端,數(shù)據(jù)接收正常;
[0025]虛擬機(jī)可信保障是通過可信鏈的建立與傳遞實(shí)現(xiàn)的,包括如下步驟:
[0026]步驟4.1:當(dāng)某個(gè)虛擬機(jī)需要實(shí)例化時(shí),虛擬機(jī)管理器向虛擬可信根管理器發(fā)出請求,虛擬可信根管理器在虛擬機(jī)啟動(dòng)之前創(chuàng)建并初始化一個(gè)新的虛擬可信根,與之關(guān)聯(lián),這樣核心可信度量根能夠度量虛擬機(jī)代碼的初始部分,然后將結(jié)果返回虛擬機(jī)管理器;
[0027]步驟4.2:當(dāng)虛擬機(jī)系統(tǒng)啟動(dòng)時(shí),執(zhí)行核心可信度量根這段代碼,調(diào)用虛擬可信根的SHA-1功能模塊對(duì)加電自檢代碼求摘要,得到其摘要值,然后存到虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步,如果相同則進(jìn)行步驟4.3,如果不同,則進(jìn)行步驟4.7 ;
[0028]步驟4.3:當(dāng)系統(tǒng)運(yùn)行加電自檢程序時(shí),已經(jīng)說明對(duì)加電自檢信任已經(jīng)建立,信任邊界已經(jīng)到加電自檢部分,加電自檢程序是可信的,加電自檢程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)基本輸入輸出系統(tǒng)代碼求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步,如果相同則進(jìn)行步驟4.4,如果不同,則進(jìn)行步驟4.7 ;
[0029]步驟4.4:當(dāng)系統(tǒng)運(yùn)行基本輸入輸出系統(tǒng)擴(kuò)展程序時(shí),已經(jīng)說明對(duì)基本輸入輸出系統(tǒng)擴(kuò)展程序信任已經(jīng)建立,信任邊界已經(jīng)到基本輸入輸出系統(tǒng)擴(kuò)展程序部分,基本輸入輸出系統(tǒng)擴(kuò)展程序是可信的,基本輸入輸出系統(tǒng)擴(kuò)展程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)引導(dǎo)加載擴(kuò)展代碼求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步,如果相同則進(jìn)行步驟4.5,如果不同,則進(jìn)行步驟4.7;
[0030]步驟4.5:當(dāng)系統(tǒng)運(yùn)行引導(dǎo)加載擴(kuò)展程序時(shí),已經(jīng)說明對(duì)引導(dǎo)加載擴(kuò)展程序信任已經(jīng)建立,信任邊界已經(jīng)到引導(dǎo)加載擴(kuò)展程序部分,引導(dǎo)加載擴(kuò)展程序是可信的,引導(dǎo)加載擴(kuò)展程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)操作系統(tǒng)擴(kuò)展代碼求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步,如果相同則進(jìn)行步驟4.6,如果不同,則進(jìn)行步驟4.7 ;
[0031]步驟4.6:當(dāng)系統(tǒng)運(yùn)行操作系統(tǒng)擴(kuò)展程序時(shí),已經(jīng)說明對(duì)操作系統(tǒng)擴(kuò)展程序信任已經(jīng)建立,信任邊界已經(jīng)到操作系統(tǒng)擴(kuò)展程序部分,操作系統(tǒng)擴(kuò)展程序是可信的,操作系統(tǒng)擴(kuò)展程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)可執(zhí)行程序、腳本、打開的文件、載入的內(nèi)核模塊和共享庫求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器的中,通過與同期值相比較,確定是否進(jìn)入下一步。如果相同則虛擬機(jī)和應(yīng)用程序都是可信的,如果不同,則進(jìn)行步驟4.7 ;
[0032]步驟4.7虛擬機(jī)不可信,終止虛擬機(jī)。
[0033]本發(fā)明與現(xiàn)有的技術(shù)相比具有以下優(yōu)勢:
[0034](I)本發(fā)明有效地解決了虛擬機(jī)遷移問題,由于虛擬可信根與虛擬機(jī)不在同一平臺(tái),只需要進(jìn)行虛擬機(jī)遷移,然后在虛擬機(jī)遷移后重新關(guān)聯(lián)虛擬機(jī)和虛擬可信根。
[0035](2)本發(fā)明中使用獨(dú)立設(shè)備完成對(duì)云平臺(tái)虛擬機(jī)的可信計(jì)算相關(guān)工作,可以減輕云平臺(tái)可信相關(guān)計(jì)算的壓力,提高性能。
【專利附圖】
【附圖說明】
[0036]圖1可信根設(shè)備與云服務(wù)器通信機(jī)制;
[0037]圖2可信鏈的建立與傳遞序列圖。
【具體實(shí)施方式】
[0038]本發(fā)明提出的虛擬機(jī)可信保障的方法主要思想是將云服務(wù)器中的虛擬可信根模塊與虛擬機(jī)分離出來,單獨(dú)設(shè)立一臺(tái)設(shè)備,利用這臺(tái)設(shè)備完成對(duì)虛擬機(jī)的可信性度量。主要內(nèi)容包括可信根設(shè)備與云服務(wù)器通信機(jī)制,虛擬機(jī)可信保障方法——可信鏈的建立與傳遞兩部分。具體實(shí)施方案將根據(jù)【專利附圖】
].gif)
【附圖說明】:
[0039]1、圖1介紹可信根設(shè)備與云服務(wù)器的通信機(jī)制
[0040]考慮到網(wǎng)絡(luò)傳輸?shù)陌踩珕栴},本發(fā)明設(shè)計(jì)一套安全的通信協(xié)議。通信協(xié)議要保證消息的機(jī)密性,完整性和不可抵賴性。協(xié)議分為三個(gè)步驟:(1)平臺(tái)雙方提出建立通信機(jī)制并進(jìn)行身份驗(yàn)證。(2)會(huì)話密鑰協(xié)商。(3)利用協(xié)商好的密鑰進(jìn)行數(shù)據(jù)傳輸。
[0041]步驟1:雙方提出建立通訊機(jī)制并進(jìn)行身份驗(yàn)證,由于每一個(gè)平臺(tái)中可信根模塊都有用于身份標(biāo)識(shí)的身份認(rèn)證密鑰。所以可以使用身份認(rèn)證密鑰進(jìn)行身份認(rèn)證。
[0042]步驟1.1:源端向目的端發(fā)送身份認(rèn)證密鑰證書SCert (AIK)。
[0043]步驟1.2:目的端驗(yàn)證證書是否過期,通過驗(yàn)證后,向源端發(fā)送自身的身份認(rèn)證密鑰證書DCert(AIK),同時(shí)產(chǎn)生隨機(jī)數(shù)Nd(32位),使用源端的身份認(rèn)證密鑰證書中公鑰SPubAIK加密Nd,加密結(jié)果Cl=E (SPubAIK, Nd)并發(fā)送給源端,只有源端的身份認(rèn)證密鑰私鑰才能正確解密得到這個(gè)隨機(jī)數(shù)。
[0044]步驟1.3:源端驗(yàn)證目的端身份認(rèn)證密鑰證書是否過期,驗(yàn)證通過后,使用身份認(rèn)證密鑰私鑰SPriAIK解密D(SPriAIK,Cl)得到隨機(jī)數(shù)Nd。源端也產(chǎn)生一個(gè)隨機(jī)數(shù)Ns (32位),使用目的端身份認(rèn)證密鑰公鑰DPubAIK加密Ns和Nd,結(jié)果為C2=E(DPubAIK, (Ns,Nd)),然后用自己的身份認(rèn)證密鑰私鑰簽名Sign (SPriAIK,C2),發(fā)送給目的端。
[0045]步驟1.4:目的平臺(tái)驗(yàn)證收到的Nd是否為自己發(fā)出的。如果是則使用源端身份認(rèn)證密鑰公鑰加密Ns,結(jié)果為C3=E(SPubAIK,Ns),然后用自己的身份認(rèn)證密鑰私鑰簽名Sign (DPriAIK, C3),發(fā)送給源端。
[0046]步驟1.5:源端驗(yàn)證收到的Ns是否為自己發(fā)出的,如果是則雙方身份驗(yàn)證完成。
[0047]步驟2:會(huì)話密鑰協(xié)商階段,采用D-H算法。
[0048]步驟2.1:源端和目的端協(xié)商兩個(gè)全局公開的參數(shù),一個(gè)素?cái)?shù)q和一個(gè)整數(shù)a,a是q的一個(gè)原根。
[0049]步驟2.2:源端選擇一個(gè)隨機(jī)數(shù)s(s〈q)作為私鑰,并計(jì)算出一個(gè)公鑰A=asmodq,發(fā)送給目的端。
[0050]步驟2.3:目的端選擇一個(gè)隨機(jī)數(shù)d(d〈q)作為私鑰,并計(jì)算出一個(gè)公鑰B=admodq,發(fā)送給源端。
[0051]步驟2.4:源端根據(jù)B計(jì)算共享密鑰Kl=BsHiod q,并對(duì)共享密鑰進(jìn)行哈希運(yùn)算,Hash(Kl)發(fā)送給目的端。目的端根據(jù)A計(jì)算出共享密鑰K2=Admod q,并對(duì)共享密鑰進(jìn)行哈希運(yùn)算Hash(K2),比較與收到的哈希值是否相同,如果相同則會(huì)話密鑰K有效,K=K1=K2。
[0052]步驟3:數(shù)據(jù)傳輸
[0053]步驟3.1:源端使用自身計(jì)算的共享密鑰對(duì)數(shù)據(jù)M進(jìn)行加密Ε(Κ,Μ),同時(shí)產(chǎn)生一個(gè)隨機(jī)數(shù)Ν(32位),加密結(jié)果與隨機(jī)數(shù)構(gòu)成一個(gè)數(shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行哈希計(jì)算Hash(E (K,Μ), N),哈希值與數(shù)據(jù)包一起發(fā)送給目的端。隨機(jī)數(shù)是防止重放攻擊,哈希計(jì)算是用來保證數(shù)據(jù)完整性的。
[0054]步驟3.2:目的端接收到消息后,進(jìn)行完整性驗(yàn)證。如果驗(yàn)證成功則通知目的端,數(shù)據(jù)接收正常。
[0055]2、圖2介紹虛擬機(jī)可信保障方法——可信鏈的建立與傳遞
[0056]云服務(wù)器的可信性分為兩部分,一部分是服務(wù)器硬件本身和系統(tǒng)的安全可信,另外一部分是云服務(wù)器上的虛擬機(jī)及運(yùn)行在虛擬機(jī)上的應(yīng)用程序的可信性。前者通過將可信平臺(tái)模塊嵌入到云服務(wù)器中,構(gòu)建靜態(tài)信任鏈來保證;后者利用可信根設(shè)備,保證云服務(wù)器上的虛擬機(jī)及運(yùn)行在虛擬機(jī)上的應(yīng)用程序的安全可信。這樣整個(gè)云服務(wù)器都是處于一個(gè)安全可信的狀態(tài),從而構(gòu)建了一條安全可信的可信鏈,再加上有效的可信傳遞,從而使整個(gè)云服務(wù)器成為一個(gè)安全可信終端平臺(tái)。
[0057]可信鏈的傳遞建立過程是先度量再傳遞,并且度量值都存儲(chǔ)到虛擬平臺(tái)配置寄存器中,這樣就形成一條完整的信任鏈。可信度量信任鏈建立與傳遞過程如下:
[0058]步驟4.1:虛擬機(jī)管理器監(jiān)測到某個(gè)虛擬機(jī)需要實(shí)例化,向虛擬可信根管理器發(fā)出創(chuàng)建虛擬可信根請求。虛擬可信根管理器在虛擬機(jī)啟動(dòng)之前創(chuàng)建并初始化一個(gè)新的虛擬可信根,與之關(guān)聯(lián),這樣核心可信度量根能夠度量虛擬機(jī)代碼的初始部分。
[0059]步驟4.2:虛擬機(jī)系統(tǒng)開始啟動(dòng),執(zhí)行核心可信度量根這段代碼,調(diào)用虛擬可信根的SHA-1功能模塊對(duì)加電自檢代碼求摘要,得到其摘要值,然后存到虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步。如果相同則進(jìn)行步驟4.3,如果不同,則進(jìn)行步驟4.7。
[0060]步驟4.3:系統(tǒng)運(yùn)行加電自檢程序,此時(shí)說明對(duì)加電自檢信任已經(jīng)建立,信任邊界已經(jīng)到加電自檢部分,加電自檢程序是可信的,加電自檢程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)基本輸入輸出系統(tǒng)代碼求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步。如果相同則進(jìn)行步驟4.4,如果不同,則進(jìn)行步驟4.7。
[0061]步驟4.4:系統(tǒng)運(yùn)行基本輸入輸出系統(tǒng)擴(kuò)展程序,此時(shí)說明對(duì)基本輸入輸出系統(tǒng)擴(kuò)展程序信任已經(jīng)建立,信任邊界已經(jīng)到基本輸入輸出系統(tǒng)擴(kuò)展程序部分,基本輸入輸出系統(tǒng)擴(kuò)展程序是可信的,基本輸入輸出系統(tǒng)擴(kuò)展程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)引導(dǎo)加載擴(kuò)展代碼求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步。如果相同則進(jìn)行步驟4.5,如果不同,則進(jìn)行步驟4.7。
[0062]步驟4.5:系統(tǒng)運(yùn)行引導(dǎo)加載擴(kuò)展程序,此時(shí)說明對(duì)引導(dǎo)加載擴(kuò)展程序信任已經(jīng)建立,信任邊界已經(jīng)到弓I導(dǎo)加載擴(kuò)展程序部分,弓I導(dǎo)加載擴(kuò)展程序是可信的,弓I導(dǎo)加載擴(kuò)展程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)操作系統(tǒng)擴(kuò)展代碼求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步。如果相同則進(jìn)行步驟4.6,如果不同,則進(jìn)行步驟4.7。
[0063]步驟4.6:系統(tǒng)運(yùn)行操作系統(tǒng)擴(kuò)展程序,此時(shí)說明對(duì)操作系統(tǒng)擴(kuò)展程序信任已經(jīng)建立,信任邊界已經(jīng)到操作系統(tǒng)擴(kuò)展程序部分,操作系統(tǒng)擴(kuò)展程序是可信的,操作系統(tǒng)擴(kuò)展程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)可執(zhí)行程序、腳本、打開的文件、載入的內(nèi)核模塊和共享庫等求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步。如果相同則虛擬機(jī)和應(yīng)用程序都是可信的,如果不同,則進(jìn)行步驟 4.7。
[0064]步驟4.7虛擬機(jī)不可信,終止虛擬機(jī)。
[0065]最后應(yīng)說明的是:以上示例僅用以說明本發(fā)明而并非限制本發(fā)明所描述的技術(shù)方案;因此,盡管本說明書參照上述的示例對(duì)本發(fā)明已進(jìn)行了詳細(xì)的說明,但是本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,仍然可以對(duì)本發(fā)明進(jìn)行修改或等同替換;而一切不脫離發(fā)明的精神和范圍的技術(shù)方案及其改進(jìn),其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
【權(quán)利要求】
1.本發(fā)明提出了一種云環(huán)境中虛擬機(jī)可信保障的方法,其特征在于將虛擬可信根模塊從云環(huán)境中的每臺(tái)服務(wù)器上分離出來,集中到一臺(tái)設(shè)備中,這臺(tái)設(shè)備含有物理可信根并且完成可信根虛擬化,為云環(huán)境中虛擬機(jī)提供可信計(jì)算相關(guān)工作,內(nèi)容主要包括設(shè)備與云服務(wù)器通信機(jī)制,虛擬機(jī)可信保障方法一可信鏈的建立與傳遞兩部分,虛擬可信根符合可信根規(guī)范,向虛擬機(jī)提供與可信根相同的功能和接口集,從虛擬機(jī)角度看,虛擬可信根實(shí)例就是它的可信根; 所述的可信根設(shè)備與云服務(wù)器之間的通信機(jī)制,包括如下步驟: 步驟1:通信雙方提出建立通訊機(jī)制并進(jìn)行身份驗(yàn)證,由于每一個(gè)平臺(tái)中可信根模塊都有用于身份標(biāo)識(shí)的身份認(rèn)證密鑰,所以可以使用身份認(rèn)證密鑰進(jìn)行身份認(rèn)證; 步驟1.1:源端向目的端發(fā)送身份認(rèn)證密鑰證書; 步驟1.2:目的端驗(yàn)證證書是否過期,通過驗(yàn)證后,向源端發(fā)送自身的身份認(rèn)證密鑰證書,同時(shí)產(chǎn)生隨機(jī)數(shù)Nd32-bit,使用源端的身份認(rèn)證密鑰公鑰加密Nd,并發(fā)送給源端,只有源端的身份認(rèn)證密鑰私鑰才能正確解密得到這個(gè)隨機(jī)數(shù); 步驟1.3:源端驗(yàn)證目的端身份認(rèn)證密鑰證書是否過期,驗(yàn)證通過后,使用身份認(rèn)證密鑰私鑰解密得到隨機(jī)數(shù)Nd,源端也產(chǎn)生一個(gè)隨機(jī)數(shù)Ns,使用目的端身份認(rèn)證密鑰公鑰加密Ns和Nd,然后用自己的身份認(rèn)證密鑰私鑰簽名,發(fā)送給目的端; 步驟1.4目的平臺(tái)驗(yàn)證收到的Nd是否為自己發(fā)出的,如果是則使用源端身份認(rèn)證密鑰公鑰加密Ns,然后用自己的身份認(rèn)證密鑰私鑰簽名,發(fā)送給源端; 步驟1.5:源端驗(yàn)證收到的Ns是否為自己發(fā)出的,如果是則雙方身份驗(yàn)證完成; 步驟2:會(huì)話密鑰協(xié)商階段,采用D-H算法; 步驟2.1:源端和目的端協(xié)商兩個(gè)全局公開的參數(shù); 步驟2.2:源端計(jì)算出一個(gè)D-H公鑰A,發(fā)送給目的端; 步驟2.3:目的端計(jì)算出一個(gè)D-H公鑰B,發(fā)送給源端; 步驟2.4:源端根據(jù)B計(jì)算共享密鑰,并對(duì)共享密鑰進(jìn)行哈希運(yùn)算,發(fā)送給目的端,目的端根據(jù)A計(jì)算出共享密鑰,并對(duì)共享密鑰進(jìn)行哈希運(yùn)算,比較與收到的哈希值是否相同,如果相同則會(huì)話密鑰有效; 步驟3:數(shù)據(jù)傳輸 步驟3.1:源端使用自身計(jì)算的共享密鑰對(duì)數(shù)據(jù)進(jìn)行加密,同時(shí)產(chǎn)生一個(gè)隨機(jī)數(shù),加密結(jié)果與隨機(jī)數(shù)構(gòu)成一個(gè)數(shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行哈希計(jì)算,哈希值與數(shù)據(jù)包一起發(fā)送給目的端; 步驟3.2:目的端接收到消息后,進(jìn)行完整性驗(yàn)證,如果驗(yàn)證成功則通知目的端,數(shù)據(jù)接收正常; 所述的虛擬機(jī)可信保障方法一可信鏈的建立與傳遞包括如下步驟: 步驟4.1:當(dāng)某個(gè)虛擬機(jī)需要實(shí)例化時(shí),虛擬機(jī)管理器向可信根管理器發(fā)出請求,虛擬可信根管理器能夠在虛擬機(jī)啟動(dòng)之前創(chuàng)建并初始化一個(gè)新的虛擬可信根,與之關(guān)聯(lián),這樣核心可信度量根能夠度量虛擬機(jī)代碼的初始部分,然后將結(jié)果返回虛擬機(jī)管理器; 步驟4.2:當(dāng)虛擬機(jī)系統(tǒng)啟動(dòng)時(shí),執(zhí)行核心可信度量根這段代碼,調(diào)用虛擬可信根的SHA-1功能模塊對(duì)加電 自檢代碼求摘要,得到其摘要值,然后存到虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步,如果相同則進(jìn)行步驟4.3,如果不同,則進(jìn)行步驟 4.7 ; 步驟4.3:當(dāng)系統(tǒng)運(yùn)行加電自檢程序時(shí),已經(jīng)說明對(duì)加電自檢信任已經(jīng)建立,信任邊界已經(jīng)到加電自檢部分,加電自檢程序是可信的,加電自檢程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)基本輸入輸出系統(tǒng)代碼求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步,如果相同則進(jìn)行步驟4.4,如果不同,則進(jìn)行步驟.4.7; 步驟4.4:當(dāng)系統(tǒng)運(yùn)行基本輸入輸出系統(tǒng)擴(kuò)展程序時(shí),已經(jīng)說明對(duì)基本輸入輸出系統(tǒng)擴(kuò)展程序信任已經(jīng)建立,信任邊界已經(jīng)到基本輸入輸出系統(tǒng)擴(kuò)展程序部分,基本輸入輸出系統(tǒng)擴(kuò)展程序是可信的,基本輸入輸出系統(tǒng)擴(kuò)展程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)引導(dǎo)加載擴(kuò)展代碼求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步,如果相同則進(jìn)行步驟4.5,如果不同,則進(jìn)行步驟4.7; 步驟4.5:當(dāng)系統(tǒng)運(yùn)行引導(dǎo)加載擴(kuò)展程序時(shí),已經(jīng)說明對(duì)引導(dǎo)加載擴(kuò)展程序信任已經(jīng)建立,信任邊界已經(jīng)到引導(dǎo)加載擴(kuò)展程序部分,引導(dǎo)加載擴(kuò)展程序是可信的,引導(dǎo)加載擴(kuò)展程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)操作系統(tǒng)擴(kuò)展代碼求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步,如果相同則進(jìn)行步驟4.6,如果不同,則進(jìn)行步驟4.7 ; 步驟4.6:當(dāng)系統(tǒng)運(yùn)行操作系統(tǒng)擴(kuò)展程序時(shí),已經(jīng)說明對(duì)操作系統(tǒng)擴(kuò)展程序信任已經(jīng)建立,信任邊界已經(jīng)到操作系統(tǒng)擴(kuò)展程序部分,操作系統(tǒng)擴(kuò)展程序是可信的,操作系統(tǒng)擴(kuò)展程序繼續(xù)調(diào)用虛擬可信根的SHA-1功能對(duì)可執(zhí)行程序、腳本、打開的文件、載入的內(nèi)核模塊和共享庫求摘要,得到其摘要值,然后存于虛擬平臺(tái)配置寄存器中,通過與同期值相比較,確定是否進(jìn)入下一步,如果相同則虛擬機(jī)和應(yīng)用程序都是可信的,如果不同,則進(jìn)行步驟.4.7; 步驟4.7虛擬機(jī)不可信,終止虛擬機(jī)。
2.根據(jù)權(quán)利I要求所述的可信根設(shè)備與云服務(wù)器的通信機(jī)制,其主要特征在于:步驟I中利用可信根的身份認(rèn)證密鑰進(jìn)行身份驗(yàn)證,每臺(tái)服務(wù)器中都嵌入一個(gè)可信根,并且每個(gè)可信根內(nèi)部都有一個(gè)唯一標(biāo)識(shí)符一背書密鑰,背書密鑰由芯片生產(chǎn)廠商生成,攻擊者不可修改,而身份認(rèn)證密鑰是背書密鑰的替代者,用來進(jìn)行簽名與加密等操作,通信信息中含有身份信息保障通信雙方不可抵賴性;步驟2完成協(xié)商密鑰,步驟3使用密鑰加密消息然后傳輸,保障消息的機(jī)密性;步驟3中使用哈希計(jì)算保證數(shù)據(jù)完整性的;步驟1,2,3中都使用隨機(jī)數(shù),防止重放攻擊。
3.根據(jù)權(quán)利要求1所述的虛擬機(jī)可信保障方法一可信鏈的建立與傳遞,其主要特征在于:利用可信根設(shè)備完成所有可信計(jì)算相關(guān)工作,虛擬機(jī)實(shí)例化時(shí)向虛擬可信根管理器發(fā)送請求,建立與之關(guān)聯(lián)的虛擬可信根,度量結(jié)果需要通過權(quán)利要求1提供的通信機(jī)制傳遞到可信根設(shè)備的虛擬平臺(tái)配置寄存器中。
【文檔編號(hào)】H04L9/30GK103888251SQ201410146308
【公開日】2014年6月25日 申請日期:2014年4月11日 優(yōu)先權(quán)日:2014年4月11日
【發(fā)明者】王冠, 張少華, 莊俊璽, 周珺, 梁社靜 申請人:北京工業(yè)大學(xué)