本發(fā)明涉及一種基于云環(huán)境分布式虛擬機(jī)代理架構(gòu)及數(shù)據(jù)完整性保障方法,屬于可信計(jì)算、云計(jì)算和信息安全等技術(shù)領(lǐng)域。
背景技術(shù):
云計(jì)算技術(shù)的日益普及、發(fā)展,為用戶便捷、低成本地使用計(jì)算資源打開方便之門,成為了“互聯(lián)網(wǎng)+”賴以發(fā)展的新基礎(chǔ)設(shè)施。但是,云用戶數(shù)據(jù)的所有權(quán)和控制權(quán)分離,導(dǎo)致了眾多安全問題,例如數(shù)據(jù)隱私泄漏、數(shù)據(jù)完整性破壞,因此云用戶有必要對其數(shù)據(jù)進(jìn)行完整性驗(yàn)證。遠(yuǎn)程數(shù)據(jù)完整性驗(yàn)證是解決這一問題的有效方法,其能夠在不下載用戶數(shù)據(jù)的基礎(chǔ)上,根據(jù)事先存儲數(shù)據(jù)標(biāo)簽和“挑戰(zhàn)——響應(yīng)”協(xié)議對數(shù)據(jù)進(jìn)行驗(yàn)證。目前,數(shù)據(jù)完整性驗(yàn)證機(jī)制根據(jù)是否對數(shù)據(jù)文件采用了容錯(cuò)預(yù)處理分為數(shù)據(jù)持有效證明PDP機(jī)制和數(shù)據(jù)可恢復(fù)證明POR機(jī)制,為了減少客戶端計(jì)算、存儲和傳輸開銷,這兩種機(jī)制大都采用了基于第三方審計(jì)的方案,而一個(gè)理想的支持公開審計(jì)方案應(yīng)具有以下特性:不會增加額外的計(jì)算、存儲代價(jià),數(shù)據(jù)隱私性不會泄露,和支持?jǐn)?shù)據(jù)的動態(tài)操作。同時(shí),如何建立一個(gè)安全、可信、高效率的第三方審計(jì)機(jī)構(gòu)也是一種重大挑戰(zhàn)。
為了保證在云基礎(chǔ)設(shè)施中數(shù)據(jù)和計(jì)算的完整性,可信云計(jì)算技術(shù)應(yīng)運(yùn)而生。可信云計(jì)算從引入可信的外在協(xié)調(diào)方開始,通過協(xié)調(diào)方對云端網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行認(rèn)證,維護(hù)可信節(jié)點(diǎn),并保證客戶虛擬機(jī)僅在可信節(jié)點(diǎn)上運(yùn)行。其通過安裝可信平臺模塊芯片并執(zhí)行一個(gè)安全啟動過程來進(jìn)行安裝,能夠防止特權(quán)用戶對客戶的虛擬機(jī)進(jìn)行監(jiān)視或修改。
可信計(jì)算是在計(jì)算和通信系統(tǒng)中廣泛使用基于硬件安全模塊支持下的可信計(jì)算平臺,以提高系統(tǒng)整體的安全性。為了保證云計(jì)算使用主體之間的信任,盡可能避免安全威脅、及時(shí)發(fā)現(xiàn)并處理不可信事件,一種基于TPM的可信云計(jì)算架構(gòu)被提出。TPM作為目前普遍認(rèn)可的可信計(jì)算模塊,被廣泛應(yīng)用為可信系統(tǒng)的可信根,以此保障基于可信根的所有應(yīng)用主體行為的可信性。
現(xiàn)有的數(shù)據(jù)完整性驗(yàn)證協(xié)議將注意力集中在數(shù)據(jù)可能被非法篡改后,進(jìn)行概率性的驗(yàn)證,不能在數(shù)據(jù)發(fā)生非法篡改時(shí),及時(shí)準(zhǔn)確的判別正常修改和非法篡改。經(jīng)計(jì)算,如果想要達(dá)到99%的驗(yàn)證準(zhǔn)確度,當(dāng)損壞數(shù)據(jù)塊數(shù)目與數(shù)據(jù)塊總數(shù)比為0.1%時(shí),假設(shè)數(shù)據(jù)塊總數(shù)為10000塊,則挑戰(zhàn)數(shù)目應(yīng)為4600塊;當(dāng)損壞比為1%時(shí),挑戰(zhàn)數(shù)目為460塊,因此,在損壞比較低的情況下,所有的完整性協(xié)議表現(xiàn)相對不足,另外,引進(jìn)第三方審計(jì)實(shí)體將導(dǎo)致數(shù)據(jù)隱私性泄露給第三方的潛在威脅,雖然可采用隨機(jī)掩碼技術(shù)對數(shù)據(jù)標(biāo)簽進(jìn)行,但是無疑增加了計(jì)算開銷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種采用全新設(shè)計(jì)模式,能夠有效保證數(shù)據(jù)完整性的基于云環(huán)境分布式虛擬機(jī)代理架構(gòu)。
本發(fā)明為了解決上述技術(shù)問題采用以下技術(shù)方案:本發(fā)明設(shè)計(jì)了一種基于云環(huán)境分布式虛擬機(jī)代理架構(gòu),包括用于聯(lián)系用戶虛擬機(jī)與云服務(wù)提供服務(wù)器的虛擬機(jī)代理,用戶虛擬機(jī)中設(shè)置自驗(yàn)證模塊,云服務(wù)提供服務(wù)器中設(shè)置可信任控制芯片,虛擬機(jī)代理包括主體模塊、附屬模塊和可信安全保障沒模塊,其中,主體模塊包括初始化模塊、數(shù)據(jù)庫模塊、數(shù)據(jù)完整性驗(yàn)證模塊和數(shù)據(jù)主動監(jiān)測模塊,初始化模塊用于針對多臺用戶虛擬機(jī),通過預(yù)設(shè)指定地址初始化構(gòu)建代理網(wǎng)絡(luò),為各臺用戶虛擬機(jī)初始代理指令,同時(shí)用于實(shí)現(xiàn)針對用戶虛擬機(jī)管理與監(jiān)督;數(shù)據(jù)庫模塊用于存儲用戶虛擬機(jī)進(jìn)行驗(yàn)證的公開驗(yàn)證信息;數(shù)據(jù)完整性驗(yàn)證模塊用于接收云服務(wù)提供服務(wù)器響應(yīng)的挑戰(zhàn)數(shù)據(jù)塊信息,并通過調(diào)用數(shù)據(jù)庫模塊中所存儲的公開驗(yàn)證信息計(jì)算挑戰(zhàn)證據(jù);數(shù)據(jù)主動監(jiān)測模塊用于與用戶虛擬機(jī)中自驗(yàn)證模塊進(jìn)行協(xié)作完成數(shù)據(jù)監(jiān)測;
附屬模塊包括虛擬機(jī)代理標(biāo)識存儲模塊、虛擬機(jī)代理屬性存儲模塊、虛擬機(jī)代理狀態(tài)信息存儲模塊、通信模塊和虛擬機(jī)代理映射鏈接信息存儲模塊;虛擬機(jī)代理標(biāo)識存儲模塊用于存儲虛擬機(jī)代理的唯一標(biāo)識;虛擬機(jī)代理屬性存儲模塊用于存儲虛擬機(jī)代理的指定屬性項(xiàng)目信息;虛擬機(jī)代理狀態(tài)信息存儲模塊用于存儲虛擬機(jī)代理執(zhí)行過程中的狀態(tài)信息;虛擬機(jī)代理映射鏈接信息存儲模塊用于存儲虛擬機(jī)代理與各個(gè)用戶虛擬機(jī)之間的映射鏈接關(guān)系;
可信安全保障模塊包括加解密模塊、可信評估模塊、自銷毀模塊、信任證模塊和安全接口,加解密模塊用于針對用戶虛擬機(jī)的文件進(jìn)行加解密操作;可信評估模塊用于針對所監(jiān)督的用戶虛擬機(jī)進(jìn)行信任評估;自銷毀模塊用于針對由可信評估模塊評估為威脅的用戶虛擬機(jī),實(shí)現(xiàn)用戶虛擬機(jī)信息和所操作數(shù)據(jù)的銷毀;信任證模塊用于負(fù)責(zé)用戶虛擬機(jī)與虛擬機(jī)代理初始交互時(shí),提供身份認(rèn)證操作與本地資源初始操作;安全接口用于實(shí)現(xiàn)與外界的通信;
自驗(yàn)證模塊用于負(fù)責(zé)監(jiān)測用戶虛擬機(jī)數(shù)據(jù),并與虛擬機(jī)代理內(nèi)主體模塊中的數(shù)據(jù)主動監(jiān)測模塊協(xié)同完成數(shù)據(jù)主動監(jiān)測操作;
可信任控制芯片用于針對各個(gè)啟動軟件實(shí)現(xiàn)后續(xù)軟件的度量,以及度量結(jié)果的存儲。
作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述可信安全保障模塊中的安全接口為基于SSH協(xié)議的通信接口。
本發(fā)明所述一種基于云環(huán)境分布式虛擬機(jī)代理架構(gòu)采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:本發(fā)明設(shè)計(jì)基于云環(huán)境分布式虛擬機(jī)代理架構(gòu),采用可信技術(shù)對用戶虛擬機(jī)進(jìn)行擴(kuò)展,創(chuàng)建適合虛擬機(jī)代理中各個(gè)模塊所需的環(huán)境,使得整個(gè)設(shè)計(jì)系統(tǒng)具有靈活性、跨平臺和可擴(kuò)展性;而且虛擬機(jī)代理是動態(tài)生成的,并具有一定的生存周期,因此對其功能進(jìn)行修改和擴(kuò)展都非常簡便。
相應(yīng)的,本發(fā)明還要解決的技術(shù)問題是基于所設(shè)計(jì)基于云環(huán)境分布式虛擬機(jī)代理架構(gòu),設(shè)計(jì)全新控制策略,通過虛擬機(jī)代理進(jìn)行數(shù)據(jù)主動監(jiān)測和周期性完整性驗(yàn)證,能夠提高驗(yàn)證效率,保護(hù)用戶數(shù)據(jù)完整性的數(shù)據(jù)完整性保障方法。
本發(fā)明為了解決上述技術(shù)問題采用以下技術(shù)方案:本發(fā)明設(shè)計(jì)了一種基于云環(huán)境分布式虛擬機(jī)代理架構(gòu)的數(shù)據(jù)完整性保障方法,用于目標(biāo)用戶針對其在云環(huán)境中所存儲的數(shù)據(jù)實(shí)現(xiàn)完整性驗(yàn)證,包括如下步驟:
步驟A.建立虛擬機(jī)代理,并構(gòu)建虛擬機(jī)代理分別與用戶虛擬機(jī)、云服務(wù)提供服務(wù)器的連接;
步驟B.目標(biāo)用戶通過用戶虛擬機(jī),經(jīng)虛擬機(jī)代理建立與云服務(wù)提供服務(wù)器之間的通信;
步驟C.目標(biāo)用戶通過用戶虛擬機(jī),經(jīng)虛擬機(jī)代理與云服務(wù)提供服務(wù)器通信,驗(yàn)證所存儲數(shù)據(jù)的完整性。
作為本發(fā)明的一種優(yōu)選技術(shù)方案,所述步驟A包括如下步驟:
步驟A01.目標(biāo)用戶通過用戶虛擬機(jī)生成用戶RSA非對稱密鑰和時(shí)間戳,并向云服務(wù)提供服務(wù)器發(fā)送虛擬機(jī)代理建立請求,其中,虛擬機(jī)代理建立請求包含用戶RSA公鑰和時(shí)間戳;
步驟A02.云服務(wù)提供服務(wù)器響應(yīng)虛擬機(jī)代理建立請求,并生成一個(gè)會話密鑰,將用戶RSA公鑰、時(shí)間戳和會話密鑰用散列函數(shù)計(jì)算得到一個(gè)散列值,此散列值作為可信任控制芯片的第一個(gè)度量值;
步驟A03.云服務(wù)提供服務(wù)器使用用戶RSA公鑰將會話密鑰加密,連同TPM證言和CA證書發(fā)送給用戶虛擬機(jī);
步驟A04.用戶虛擬機(jī)首先驗(yàn)證CA證書的合法性,確認(rèn)后,對TPM證言進(jìn)行驗(yàn)證,確認(rèn)是可信任控制芯片的簽名,證明當(dāng)前運(yùn)行的云服務(wù)提供服務(wù)器可信;
步驟A05.用戶虛擬機(jī)用RSA私鑰將會話密鑰解密,用散列函數(shù)將RSA公鑰、時(shí)間戳和會話密鑰進(jìn)行求值,比較是否和本地值一致,若一致,則證明通信沒有受到中間攻擊;若不一致,則證明通信受到中間攻擊,則結(jié)束;
步驟A06.用戶虛擬機(jī)首先用會話密鑰加密虛擬機(jī)代理鏡像,然后將預(yù)先配置的虛擬機(jī)代理上傳至云端;
步驟A07.云服務(wù)提供服務(wù)器將待啟動的軟件的度量值記錄在可信任控制芯片中。待啟動完畢后,將虛擬機(jī)代理標(biāo)識為活動狀態(tài),并執(zhí)行步驟A03操作,然后進(jìn)入步驟A08;
步驟A08.執(zhí)行步驟A04操作,驗(yàn)證虛擬機(jī)代理是否建立成功,若成功,用戶虛擬機(jī)使用會話密鑰與虛擬機(jī)代理通信,若失敗,向云服務(wù)提供服務(wù)器反饋,返回步驟A01。
作為本發(fā)明的一種優(yōu)選技術(shù)方案,所述步驟B包括如下步驟:
步驟B01.取大素?cái)?shù)p,Zp是p上的域,設(shè)G1,G2,GT是素?cái)?shù)p的乘法循環(huán)群,g1是G1的生成元,g2是G2的生成元,存在雙線性映射l:G1×G2→GT,隨機(jī)選取a,x∈Zp,用戶在本地生成密鑰對{SK={a,sk},PK={g1,u,pk}};其中私鑰sk=x,
步驟B02.用戶虛擬機(jī)向云服務(wù)提供服務(wù)器發(fā)送請求,請求云服務(wù)提供服務(wù)器打開用戶虛擬機(jī)所對應(yīng)的虛擬機(jī)代理,云服務(wù)提供服務(wù)器接到用戶虛擬機(jī)請求,驗(yàn)證其是否合法,若合法,開啟虛擬機(jī)代理,同時(shí)向用戶虛擬機(jī)返回虛擬機(jī)代理的唯一標(biāo)識,若不合法,返回拒絕連接響應(yīng);
步驟B03.用戶虛擬機(jī)連接虛擬機(jī)代理;
步驟B04.用戶虛擬機(jī)調(diào)用數(shù)據(jù)初始化信息在本地初始化數(shù)據(jù)信息文件F,并將數(shù)據(jù)信息文件F(F_Id,Φ={(σi)|1≤i≤n})發(fā)送給虛擬機(jī)代理,F(xiàn)_Id是數(shù)據(jù)信息文件F的唯一標(biāo)志符,Φ是數(shù)據(jù)信息文件F數(shù)據(jù)塊的標(biāo)簽集合;
步驟B05.用戶虛擬機(jī)將數(shù)據(jù)信息文件F上傳到虛擬機(jī)代理,由虛擬機(jī)代理調(diào)用標(biāo)簽生成算法為每一數(shù)據(jù)塊生成標(biāo)簽σi,然后通過該代理私鑰加密上傳數(shù)據(jù)信息文件F至云服務(wù)提供服務(wù)器的分布式文件存儲系統(tǒng)中,并在虛擬機(jī)代理中保存數(shù)據(jù)信息文件F數(shù)據(jù)塊的標(biāo)簽集合Φ。
作為本發(fā)明的一種優(yōu)選技術(shù)方案,所述步驟B03中,用戶虛擬機(jī)通過SSH協(xié)議連接虛擬機(jī)代理。
作為本發(fā)明的一種優(yōu)選技術(shù)方案,所述步驟B04包括:將數(shù)據(jù)信息文件F進(jìn)行分塊F={m1、…、mi、…、mn},1≤i≤n,再分別針對各個(gè)分塊mi進(jìn)行平均分塊,分別分成k個(gè)段,即mi={mi,1,…,mi,j,…,mi,k},并且針對各個(gè)段編號bn,獲得分塊mi的簽名為σi,如下所示:
其中,H是哈希函數(shù):H:{0,1}*→G1,j為數(shù)據(jù)段序號:1≤j≤k。
作為本發(fā)明的一種優(yōu)選技術(shù)方案,所述步驟C包括如下步驟:
步驟C01.用戶虛擬機(jī)針對所存儲待檢測文件,向虛擬機(jī)代理發(fā)出待檢測文件的數(shù)據(jù)完整性驗(yàn)證請求,數(shù)據(jù)完整性驗(yàn)證請求chal包括:待檢測文件數(shù)據(jù)塊集合IDX={idxi|1≤i≤c,c≤n}和對應(yīng)的隨機(jī)數(shù)集合R={ri|i∈IDX,r∈Zp}:
接著,虛擬機(jī)代理向云服務(wù)提供服務(wù)器發(fā)出待檢測文件的數(shù)據(jù)完整性驗(yàn)證請求;其中,c為待檢測的數(shù)據(jù)塊總數(shù),n為待檢測文件數(shù)據(jù)塊集合中數(shù)據(jù)塊總數(shù);
步驟C02.云服務(wù)提供服務(wù)器根據(jù)待檢測文件的數(shù)據(jù)完整性驗(yàn)證請求,確定待檢測文件所處位置,先向虛擬機(jī)代理返回待檢測文件的唯一標(biāo)志符F_Id;
步驟C03.虛擬機(jī)代理根據(jù)待檢測文件的唯一標(biāo)志符F_Id,獲取到待檢測文件的相應(yīng)數(shù)據(jù)塊,計(jì)算總數(shù)據(jù)塊M:
其中,mij表示待檢測文件數(shù)據(jù)塊集合中第i個(gè)數(shù)據(jù)塊、第j段數(shù)據(jù),mi={mi,1,…,mi,j,…,mi,k},待檢測文件數(shù)據(jù)塊集合IDX={idxi|1≤i≤c,c≤n},根據(jù)虛擬機(jī)代理數(shù)據(jù)庫中存儲的公開信息,計(jì)算待挑戰(zhàn)數(shù)據(jù)塊標(biāo)簽值的一部分D:
利用標(biāo)簽生成算法計(jì)算待檢測文件塊標(biāo)簽值,虛擬機(jī)代理從自身數(shù)據(jù)庫讀取待檢測文件的數(shù)據(jù)塊標(biāo)簽值計(jì)算T,同時(shí)計(jì)算對應(yīng)的待檢測文件的數(shù)據(jù)塊編號的哈希值B;
其中ti表示待檢測文件數(shù)據(jù)塊集合中第i個(gè)數(shù)據(jù)塊的數(shù)據(jù)簽名,ri表示數(shù)據(jù)完整性驗(yàn)證請求chal中第i個(gè)數(shù)據(jù)塊所對應(yīng)的隨機(jī)數(shù);
生成證據(jù)proof={D,B,T},返回給用戶虛擬機(jī);
步驟C04.用戶虛擬機(jī)接收虛擬機(jī)代理所返回的證據(jù)proof,并計(jì)算若等式成立,則證明待檢測文件完整,若等式不成立,則證明待檢測文件不完整。
本發(fā)明所述一種基于云環(huán)境分布式虛擬機(jī)代理架構(gòu)的數(shù)據(jù)完整性保障方法采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:本發(fā)明所設(shè)計(jì)基于云環(huán)境分布式虛擬機(jī)代理架構(gòu)的數(shù)據(jù)完整性保障方法,基于云環(huán)境,采用動態(tài)虛擬機(jī)代理技術(shù),針對數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控,有效保證數(shù)據(jù)的完整性,提高實(shí)際工作安全性和效率。
附圖說明
圖1是本發(fā)明所設(shè)計(jì)基于云環(huán)境分布式虛擬機(jī)代理架構(gòu)的示意圖;
圖2本發(fā)明所設(shè)計(jì)中基于虛擬機(jī)代理的數(shù)據(jù)主動監(jiān)測流程圖;
圖3本發(fā)明所設(shè)計(jì)基于虛擬機(jī)代理數(shù)據(jù)完整性驗(yàn)證協(xié)議的示意圖。
具體實(shí)施方式
下面結(jié)合說明書附圖對本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)的說明。
如圖1所示,本發(fā)明設(shè)計(jì)了一種基于云環(huán)境分布式虛擬機(jī)代理架構(gòu),實(shí)際應(yīng)用中,具體包括用于聯(lián)系用戶虛擬機(jī)與云服務(wù)提供服務(wù)器的虛擬機(jī)代理,用戶虛擬機(jī)中設(shè)置自驗(yàn)證模塊,云服務(wù)提供服務(wù)器中設(shè)置可信任控制芯片,虛擬機(jī)代理包括主體模塊、附屬模塊和可信安全保障沒模塊,其中,主體模塊包括初始化模塊、數(shù)據(jù)庫模塊、數(shù)據(jù)完整性驗(yàn)證模塊和數(shù)據(jù)主動監(jiān)測模塊,初始化模塊用于針對多臺用戶虛擬機(jī),通過預(yù)設(shè)指定地址初始化構(gòu)建代理網(wǎng)絡(luò),為各臺用戶虛擬機(jī)初始代理指令,同時(shí)用于實(shí)現(xiàn)針對用戶虛擬機(jī)管理與監(jiān)督;數(shù)據(jù)庫模塊用于存儲用戶虛擬機(jī)進(jìn)行驗(yàn)證的公開驗(yàn)證信息;數(shù)據(jù)完整性驗(yàn)證模塊用于接收云服務(wù)提供服務(wù)器響應(yīng)的挑戰(zhàn)數(shù)據(jù)塊信息,并通過調(diào)用數(shù)據(jù)庫模塊中所存儲的公開驗(yàn)證信息計(jì)算挑戰(zhàn)證據(jù);數(shù)據(jù)主動監(jiān)測模塊用于與用戶虛擬機(jī)中自驗(yàn)證模塊進(jìn)行協(xié)作完成數(shù)據(jù)監(jiān)測。附屬模塊包括虛擬機(jī)代理標(biāo)識存儲模塊、虛擬機(jī)代理屬性存儲模塊、虛擬機(jī)代理狀態(tài)信息存儲模塊、通信模塊和虛擬機(jī)代理映射鏈接信息存儲模塊;虛擬機(jī)代理標(biāo)識存儲模塊用于存儲虛擬機(jī)代理的唯一標(biāo)識;虛擬機(jī)代理屬性存儲模塊用于存儲虛擬機(jī)代理的指定屬性項(xiàng)目信息;虛擬機(jī)代理狀態(tài)信息存儲模塊用于存儲虛擬機(jī)代理執(zhí)行過程中的狀態(tài)信息;虛擬機(jī)代理映射鏈接信息存儲模塊用于存儲虛擬機(jī)代理與各個(gè)用戶虛擬機(jī)之間的映射鏈接關(guān)系。可信安全保障模塊包括加解密模塊、可信評估模塊、自銷毀模塊、信任證模塊和安全接口,加解密模塊用于針對用戶虛擬機(jī)的文件進(jìn)行加解密操作;可信評估模塊用于針對所監(jiān)督的用戶虛擬機(jī)進(jìn)行信任評估;自銷毀模塊用于針對由可信評估模塊評估為威脅的用戶虛擬機(jī),實(shí)現(xiàn)用戶虛擬機(jī)信息和所操作數(shù)據(jù)的銷毀;信任證模塊用于負(fù)責(zé)用戶虛擬機(jī)與虛擬機(jī)代理初始交互時(shí),提供身份認(rèn)證操作與本地資源初始操作;可信安全保障模塊中的安全接口為基于SSH協(xié)議的通信接口,安全接口用于實(shí)現(xiàn)與外界的通信。自驗(yàn)證模塊用于負(fù)責(zé)監(jiān)測用戶虛擬機(jī)數(shù)據(jù),并與虛擬機(jī)代理內(nèi)主體模塊中的數(shù)據(jù)主動監(jiān)測模塊協(xié)同完成數(shù)據(jù)主動監(jiān)測操作。可信任控制芯片用于針對各個(gè)啟動軟件實(shí)現(xiàn)后續(xù)軟件的度量,以及度量結(jié)果的存儲。
上述技術(shù)方案所設(shè)計(jì)基于云環(huán)境分布式虛擬機(jī)代理架構(gòu),采用可信技術(shù)對用戶虛擬機(jī)進(jìn)行擴(kuò)展,創(chuàng)建適合虛擬機(jī)代理中各個(gè)模塊所需的環(huán)境,使得整個(gè)設(shè)計(jì)系統(tǒng)具有靈活性、跨平臺和可擴(kuò)展性;而且虛擬機(jī)代理是動態(tài)生成的,并具有一定的生存周期,因此對其功能進(jìn)行修改和擴(kuò)展都非常簡便。
基于上述所設(shè)計(jì)基于云環(huán)境分布式虛擬機(jī)代理架構(gòu),本發(fā)明還進(jìn)一步設(shè)計(jì)了如下基于云環(huán)境分布式虛擬機(jī)代理架構(gòu)的數(shù)據(jù)完整性保障方法,用于目標(biāo)用戶針對其在云環(huán)境中所存儲的數(shù)據(jù)實(shí)現(xiàn)完整性驗(yàn)證,實(shí)際應(yīng)用中,如圖3所示,具體包括如下步驟:
步驟A.建立虛擬機(jī)代理,并構(gòu)建虛擬機(jī)代理分別與用戶虛擬機(jī)、云服務(wù)提供服務(wù)器的連接。其中,步驟A具體包括如下步驟:
步驟A01.目標(biāo)用戶通過用戶虛擬機(jī)生成用戶RSA非對稱密鑰和時(shí)間戳,并向云服務(wù)提供服務(wù)器發(fā)送虛擬機(jī)代理建立請求,其中,虛擬機(jī)代理建立請求包含用戶RSA公鑰和時(shí)間戳。
步驟A02.云服務(wù)提供服務(wù)器響應(yīng)虛擬機(jī)代理建立請求,并生成一個(gè)會話密鑰,將用戶RSA公鑰、時(shí)間戳和會話密鑰用散列函數(shù)計(jì)算得到一個(gè)散列值,此散列值作為可信任控制芯片的第一個(gè)度量值。
步驟A03.云服務(wù)提供服務(wù)器使用用戶RSA公鑰將會話密鑰加密,連同TPM證言和CA證書發(fā)送給用戶虛擬機(jī)。
步驟A04.用戶虛擬機(jī)首先驗(yàn)證CA證書的合法性,確認(rèn)后,對TPM證言進(jìn)行驗(yàn)證,確認(rèn)是可信任控制芯片的簽名,證明當(dāng)前運(yùn)行的云服務(wù)提供服務(wù)器可信。
步驟A05.用戶虛擬機(jī)用RSA私鑰將會話密鑰解密,用散列函數(shù)將RSA公鑰、時(shí)間戳和會話密鑰進(jìn)行求值,比較是否和本地值一致,若一致,則證明通信沒有受到中間攻擊;若不一致,則證明通信受到中間攻擊,則結(jié)束。
步驟A06.用戶虛擬機(jī)首先用會話密鑰加密虛擬機(jī)代理鏡像,然后將預(yù)先配置的虛擬機(jī)代理上傳至云端。
步驟A07.云服務(wù)提供服務(wù)器將待啟動的軟件的度量值記錄在可信任控制芯片中。待啟動完畢后,將虛擬機(jī)代理標(biāo)識為活動狀態(tài),并執(zhí)行步驟A03操作,然后進(jìn)入步驟A08。
步驟A08.執(zhí)行步驟A04操作,驗(yàn)證虛擬機(jī)代理是否建立成功,若成功,用戶虛擬機(jī)使用會話密鑰與虛擬機(jī)代理通信,若失敗,向云服務(wù)提供服務(wù)器反饋,返回步驟A01。
步驟B.目標(biāo)用戶通過用戶虛擬機(jī),經(jīng)虛擬機(jī)代理建立與云服務(wù)提供服務(wù)器之間的通信。
上述步驟B包括如下步驟:
步驟B01.取大素?cái)?shù)p,Zp是p上的域,設(shè)G1,G2,GT是素?cái)?shù)p的乘法循環(huán)群,g1是G1的生成元,g2是G2的生成元,存在雙線性映射l:G1×G2→GT,隨機(jī)選取a,x∈Zp,用戶在本地生成密鑰對{SK={a,sk},PK={g1,u,pk}};其中私鑰sk=x,
步驟B02.用戶虛擬機(jī)向云服務(wù)提供服務(wù)器發(fā)送請求,請求云服務(wù)提供服務(wù)器打開用戶虛擬機(jī)所對應(yīng)的虛擬機(jī)代理,云服務(wù)提供服務(wù)器接到用戶虛擬機(jī)請求,驗(yàn)證其是否合法,若合法,開啟虛擬機(jī)代理,同時(shí)向用戶虛擬機(jī)返回虛擬機(jī)代理的唯一標(biāo)識,若不合法,返回拒絕連接響應(yīng)。
步驟B03.用戶虛擬機(jī)通過SSH協(xié)議連接虛擬機(jī)代理。
步驟B04.用戶虛擬機(jī)調(diào)用數(shù)據(jù)初始化信息在本地初始化數(shù)據(jù)信息文件F,將數(shù)據(jù)信息文件F進(jìn)行分塊F={m1、…、mi、…、mn},1≤i≤n,再分別針對各個(gè)分塊mi進(jìn)行平均分塊,分別分成k個(gè)段,即mi={mi,1,…,mi,j,…,mi,k},并且針對各個(gè)段編號bn,獲得分塊mi的簽名為σi,如下所示:
其中,H是哈希函數(shù):H:{0,1}*→G1,j為數(shù)據(jù)段序號:1≤j≤k;然后將數(shù)據(jù)信息文件F(F_Id,Φ={(σi)|1≤i≤n})發(fā)送給虛擬機(jī)代理,F(xiàn)_Id是數(shù)據(jù)信息文件F的唯一標(biāo)志符,Φ是數(shù)據(jù)信息文件F數(shù)據(jù)塊的標(biāo)簽集合。
步驟B05.用戶虛擬機(jī)將數(shù)據(jù)信息文件F上傳到虛擬機(jī)代理,由虛擬機(jī)代理調(diào)用標(biāo)簽生成算法為每一數(shù)據(jù)塊生成標(biāo)簽σi,然后通過該代理私鑰加密上傳數(shù)據(jù)信息文件F至云服務(wù)提供服務(wù)器的分布式文件存儲系統(tǒng)中,并在虛擬機(jī)代理中保存數(shù)據(jù)信息文件F數(shù)據(jù)塊的標(biāo)簽集合Φ。
步驟C.目標(biāo)用戶通過用戶虛擬機(jī),經(jīng)虛擬機(jī)代理與云服務(wù)提供服務(wù)器通信,驗(yàn)證所存儲數(shù)據(jù)的完整性。
上述步驟C具體包括如下步驟:
步驟C01.用戶虛擬機(jī)針對所存儲待檢測文件,向虛擬機(jī)代理發(fā)出待檢測文件的數(shù)據(jù)完整性驗(yàn)證請求,數(shù)據(jù)完整性驗(yàn)證請求chal包括:待檢測文件數(shù)據(jù)塊集合IDX={idxi|1≤i≤c,c≤n}和對應(yīng)的隨機(jī)數(shù)集合R={ri|i∈IDX,r∈Zp}:
接著,虛擬機(jī)代理向云服務(wù)提供服務(wù)器發(fā)出待檢測文件的數(shù)據(jù)完整性驗(yàn)證請求;其中,c為待檢測的數(shù)據(jù)塊總數(shù),n為待檢測文件數(shù)據(jù)塊集合中數(shù)據(jù)塊總數(shù)。
步驟C02.云服務(wù)提供服務(wù)器根據(jù)待檢測文件的數(shù)據(jù)完整性驗(yàn)證請求,確定待檢測文件所處位置,先向虛擬機(jī)代理返回待檢測文件的唯一標(biāo)志符F_Id。
步驟C03.虛擬機(jī)代理根據(jù)待檢測文件的唯一標(biāo)志符F_Id,獲取到待檢測文件的相應(yīng)數(shù)據(jù)塊,計(jì)算總數(shù)據(jù)塊M:
其中,mij表示待檢測文件數(shù)據(jù)塊集合中第i個(gè)數(shù)據(jù)塊、第j段數(shù)據(jù),mi={mi,1,…,mi,j,…,mi,k},待檢測文件數(shù)據(jù)塊集合IDX={idxi|1≤i≤c,c≤n},根據(jù)虛擬機(jī)代理數(shù)據(jù)庫中存儲的公開信息,計(jì)算待挑戰(zhàn)數(shù)據(jù)塊標(biāo)簽值的一部分D:
利用標(biāo)簽生成算法計(jì)算待檢測文件塊標(biāo)簽值,虛擬機(jī)代理從自身數(shù)據(jù)庫讀取待檢測文件的數(shù)據(jù)塊標(biāo)簽值計(jì)算T,同時(shí)計(jì)算對應(yīng)的待檢測文件的數(shù)據(jù)塊編號的哈希值B。
其中ti表示待檢測文件數(shù)據(jù)塊集合中第i個(gè)數(shù)據(jù)塊的數(shù)據(jù)簽名,ri表示數(shù)據(jù)完整性驗(yàn)證請求chal中第i個(gè)數(shù)據(jù)塊所對應(yīng)的隨機(jī)數(shù)。
最后證據(jù)proof={D,B,T},返回給用戶虛擬機(jī)。
步驟C04.用戶虛擬機(jī)接收虛擬機(jī)代理所返回的證據(jù)proof,并計(jì)算若等式成立,則證明待檢測文件完整,若等式不成立,則證明待檢測文件不完整。
實(shí)際應(yīng)用中,用戶將數(shù)據(jù)上傳至云端后,數(shù)據(jù)的控制權(quán)交于云服務(wù)提供服務(wù)器,因此數(shù)據(jù)監(jiān)測要求能夠及時(shí)、有效的檢測出異常篡改;如圖2示,數(shù)據(jù)監(jiān)測包括以下步驟:
步驟1、當(dāng)訪問者發(fā)出數(shù)據(jù)訪問請求,首先向虛擬機(jī)代理發(fā)出請求,查看虛擬機(jī)代理是否處于活動狀態(tài),若虛擬機(jī)代理處于活動狀態(tài),則轉(zhuǎn)步驟2,否則,轉(zhuǎn)步驟8;
步驟2、虛擬機(jī)代理收到訪問請求后,首先由可信安全保障模塊進(jìn)行授權(quán)驗(yàn)證,根據(jù)訪問者屬性,給予相應(yīng)讀、寫、執(zhí)行和下載等權(quán)限,轉(zhuǎn)步驟3。若驗(yàn)證權(quán)限失敗轉(zhuǎn)步驟8;
步驟3、虛擬機(jī)代理向云服務(wù)提供服務(wù)器發(fā)出數(shù)據(jù)訪問請求,云服務(wù)提供服務(wù)器根據(jù)請求,定位到對應(yīng)的分布式文件存儲系統(tǒng),將存儲時(shí)使用虛擬機(jī)代理公鑰加密后的數(shù)據(jù)傳給虛擬機(jī)代理;
步驟4、虛擬機(jī)代理使用虛擬機(jī)代理私鑰將數(shù)據(jù)解密,計(jì)算數(shù)據(jù)標(biāo)簽Ta,并與存儲在虛擬機(jī)代理中的文件標(biāo)簽Tt對比,若一致,表明文件正常,未被非法篡改,轉(zhuǎn)步驟5,否則轉(zhuǎn)步驟8;
步驟5、虛擬機(jī)代理將文件傳輸給訪問者,訪問者獲取到文件,可在權(quán)限許可內(nèi)對文件進(jìn)行處理;
步驟6、訪問者對文件進(jìn)行處理完畢后,向虛擬機(jī)代理發(fā)出結(jié)束請求,虛擬機(jī)代理重新利用用戶RSA公鑰更新文件標(biāo)簽,并用虛擬機(jī)代理公鑰對文件進(jìn)行加密上傳至云服務(wù)提供服務(wù)器,云服務(wù)提供服務(wù)器更新分布式存儲系統(tǒng)中的文件,轉(zhuǎn)步驟7;
步驟7、由附屬模塊將訪問者信息記錄和文件修改信息寫入到日志文件,為問責(zé)提供依據(jù),并向發(fā)出正常修改信息。
步驟8、拒絕數(shù)據(jù)訪問請求,由附屬模塊寫入日志文件,為問責(zé)提供依據(jù),并向用戶發(fā)送非法篡改警告。
如果用戶要將數(shù)據(jù)保存到分布式文件存儲系統(tǒng),虛擬機(jī)代理會在存儲前對數(shù)據(jù)進(jìn)行加密;反之,如果用戶要從分布式文件存儲系統(tǒng)中讀取數(shù)據(jù),虛擬機(jī)代理機(jī)制會讀取后將數(shù)據(jù)解密。該方法另一個(gè)特點(diǎn)是將云操作系統(tǒng)和分布式文件系統(tǒng)進(jìn)行了隔離,數(shù)據(jù)加解密由虛擬機(jī)代理機(jī)制來完成,實(shí)現(xiàn)了云操作系統(tǒng)和用戶數(shù)據(jù)的隔離。由于對于云操作系統(tǒng)而言數(shù)據(jù)始終是已加密的密文,當(dāng)分布式存儲系統(tǒng)被入侵時(shí),攻擊者得到的是已加密的密文數(shù)據(jù),保證了數(shù)據(jù)的安全性和機(jī)密性。
上述所設(shè)計(jì)基于云環(huán)境分布式虛擬機(jī)代理架構(gòu)的數(shù)據(jù)完整性保障方法,采用可信技術(shù)對用戶虛擬機(jī)進(jìn)行擴(kuò)展,創(chuàng)建適合虛擬機(jī)代理各個(gè)模塊所需的環(huán)境,如,自驗(yàn)證模塊驗(yàn)證負(fù)責(zé)用戶所屬虛擬機(jī)本身的完整性,做到事先預(yù)防,虛擬機(jī)代理負(fù)責(zé)用戶所屬虛擬機(jī)的管理和完整性驗(yàn)證,做到事后反饋。系統(tǒng)具有靈活性、跨平臺和可擴(kuò)展性;而且虛擬機(jī)代理是動態(tài)生成的,并具有一定的生存周期,因此對其功能進(jìn)行修改和擴(kuò)展都非常簡便。并在基于虛擬機(jī)代理的租戶環(huán)境中,當(dāng)虛擬機(jī)自驗(yàn)證模塊監(jiān)測到遭受非法篡改,能夠及時(shí)通知虛擬機(jī)代理和云管理員,警告其所在環(huán)境可能處于危險(xiǎn)狀態(tài),并作出相應(yīng)措施,如遷移、銷毀等。設(shè)計(jì)中,虛擬機(jī)代理本身處于云環(huán)境中,可作為用戶與云服務(wù)提供商之間的可信封裝器,能夠保存用戶與云服務(wù)提供商的交互信息,以及紀(jì)錄云環(huán)境中對用戶數(shù)據(jù)操作的不可抵賴的信息,對數(shù)據(jù)泄露等問題進(jìn)行有效、可靠的法律依據(jù)取證,從而建立完善的問責(zé)機(jī)制,做到事后取證。
上面結(jié)合附圖對本發(fā)明的實(shí)施方式作了詳細(xì)說明,但是本發(fā)明并不限于上述實(shí)施方式,在本領(lǐng)域普通技術(shù)人員所具備的知識范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下做出各種變化。