本發(fā)明涉及云計算安全技術(shù)領(lǐng)域,尤其是一種基于MD5和密鑰的云存儲數(shù)據(jù)持久性檢測方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,基于云計算的應(yīng)用已經(jīng)滲透到社會的各個領(lǐng)域,云存儲數(shù)據(jù)完整性技術(shù)是云計算的重要內(nèi)容,因此,不少科學院校、專家學者對如何驗證云存儲數(shù)據(jù)的完整性提出了一些算法。
消息摘要算法第5版(MD5)是計算機安全領(lǐng)域廣泛使用的一種散列函數(shù),用來驗證數(shù)據(jù)的完整性。MD5可以為任何文件(不管其大小、格式、數(shù)量)產(chǎn)生一個同樣獨一無二的“數(shù)字指紋”,MD5將任意長度的字符串映射為一個128bit的大整數(shù),這個整數(shù)就是字符串的“數(shù)字指紋”。文件發(fā)生任何改動,其MD5值(也就是對應(yīng)的“數(shù)字指紋”)都會發(fā)生變化。這一特性能夠很好地實現(xiàn)對數(shù)據(jù)完整性的驗證。但是,如果在檢測中我們單純采用MD5算法進行數(shù)據(jù)完整性檢測,可能會出現(xiàn)存儲方在收到原數(shù)據(jù)后,就立刻計算其MD5值并存儲下來,用于后續(xù)驗證的情況,這樣就導(dǎo)致檢測結(jié)果不具備可信性,
我們綜合現(xiàn)狀,提出更加完善的云存儲數(shù)據(jù)持久性概念。所謂“持久”,即保持恒定且維持某一特定狀態(tài),那么數(shù)據(jù)持久性應(yīng)為相關(guān)的數(shù)據(jù)在云中能夠恒定且維持某一特定狀態(tài)(往往是一個具體的數(shù)值),直至用戶對其進行操作,也就是說,持久性不應(yīng)該只是考慮數(shù)據(jù)是否丟失(即恒定),也同時要考慮是否有改動(即狀態(tài))。因此,云存儲數(shù)據(jù)的持久性指的是用戶存儲在云中的數(shù)據(jù)在合同期內(nèi)是否丟失、是否被篡改”。
持久性的概念要包含完整性的概念,一個字節(jié)的丟失或者被改動都應(yīng)歸為數(shù)據(jù)的持久性缺失,即完整性是持久性的應(yīng)有之意。
技術(shù)實現(xiàn)要素:
針對上述問題,本發(fā)明提供一種基于MD5和密鑰的云存儲數(shù)據(jù)持久性檢測方法。
一種基于MD5和密鑰的云存儲數(shù)據(jù)持久性檢測方法,包括以下步驟:
步驟1:檢測方在檢測之前利用隨機函數(shù)生成包含充足密鑰的密鑰庫,密鑰庫可根據(jù)要求及時進行更新;
步驟2:檢測方在本地計算并存儲有所有數(shù)據(jù)塊與密鑰隨機聚合數(shù)據(jù)的MD5值,構(gòu)成MD5驗證庫;
步驟3:檢測方隨機生成待檢測數(shù)據(jù)塊的序號,序號的順序及數(shù)量無規(guī)則,但序號的數(shù)量小于或等于最大聚合數(shù),然后將其與一個隨機密鑰發(fā)送給云存儲方,發(fā)起挑戰(zhàn);
步驟4:云存儲方收到挑戰(zhàn)信息后,將序號相對應(yīng)的數(shù)據(jù)塊和收到的隨機密鑰進行聚合,然后計算聚合數(shù)據(jù)的MD5值,最后將計算得出的MD5值回傳至檢測方;
步驟5:檢測方將收到的MD5值與本地MD5驗證庫中與待檢測數(shù)據(jù)塊相對應(yīng)的MD5值進行對比,若一致則認為待檢測數(shù)據(jù)仍具有持久性,若不一致,則認為待檢測數(shù)據(jù)的持久性缺失,要求云存儲方將持久性缺失的數(shù)據(jù)全部傳回;
步驟6:檢測方收到云存儲方傳回的持久性缺失的數(shù)據(jù)后,將其與本地原數(shù)據(jù)進行逐字節(jié)比較,統(tǒng)計丟失字節(jié)數(shù)以及被篡改字節(jié)數(shù),并進行記錄;
步驟7:整個檢測結(jié)束后,對檢測結(jié)果進行統(tǒng)計,得出云存儲方數(shù)據(jù)持久性定量結(jié)果;
進一步的,所述檢測過程均為并行計算。
進一步的,所述云存儲數(shù)據(jù)持久性定量結(jié)果為,在服務(wù)周期內(nèi)的單位時間里,用戶存儲在云存儲方的數(shù)據(jù)未丟失的字節(jié)數(shù)且未被篡改的字節(jié)數(shù)占整個存儲數(shù)據(jù)比率的平均數(shù);所述單位時間為一個月。
本發(fā)明的有益效果:對MD5數(shù)據(jù)完整性檢測技術(shù)進行應(yīng)用創(chuàng)新,通過待檢測數(shù)據(jù)與密鑰先聚合,后計算其MD5值,避免云存儲方預(yù)先計算好MD5值等待檢測方檢測的問題,提高了檢測的準確性和可信度;對待檢測數(shù)據(jù)進行聚合,不僅提高了可信度,也在很大程度上提高了檢測效率。
附圖說明
圖1為基于MD5和密鑰的云存儲數(shù)據(jù)持久性檢測方法流程圖。
具體實施方式
下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步詳細的說明。本發(fā)明的實施例是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對于本領(lǐng)域的普通技術(shù)人員而言是顯而易見的。選擇和描述實施例是為了更好說明本發(fā)明的原理和實際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計適于特定用途的帶有各種修改的各種實施例。
實施例1
一種基于MD5和密鑰的云存儲數(shù)據(jù)持久性檢測方法,包括以下步驟:
步驟1:檢測方在檢測之前利用隨機函數(shù)生成包含充足密鑰的密鑰庫,密鑰庫可根據(jù)要求及時進行更新;
步驟2:檢測方在本地計算并存儲有所有數(shù)據(jù)塊與密鑰隨機聚合數(shù)據(jù)的MD5值,構(gòu)成MD5驗證庫,主要的聚合方式為數(shù)據(jù)塊中數(shù)據(jù)的簡單拼接;
步驟3:檢測方隨機生成待檢測數(shù)據(jù)塊的序號,序號的順序及數(shù)量無規(guī)則,但序號的數(shù)量小于或等于最大聚合數(shù),然后將其與一個隨機密鑰發(fā)送給云存儲方,發(fā)起挑戰(zhàn);
步驟4:云存儲方收到挑戰(zhàn)信息后,將序號相對應(yīng)的數(shù)據(jù)塊和收到的隨機密鑰進行聚合,然后計算聚合數(shù)據(jù)的MD5值,最后將計算得出的MD5值回傳至檢測方;
步驟5:檢測方將收到的MD5值與本地MD5驗證庫中與待檢測數(shù)據(jù)塊相對應(yīng)的MD5值進行對比,若一致則認為待檢測數(shù)據(jù)仍具有持久性,若不一致,則認為待檢測數(shù)據(jù)的持久性缺失,要求云存儲方將持久性缺失的數(shù)據(jù)全部傳回;
步驟6:檢測方收到云存儲方傳回的持久性缺失的數(shù)據(jù)后,將其與本地原數(shù)據(jù)進行逐字節(jié)比較,統(tǒng)計丟失字節(jié)數(shù)以及被篡改字節(jié)數(shù),并進行記錄;
步驟7:整個檢測結(jié)束后,對檢測結(jié)果進行統(tǒng)計,得出云存儲方數(shù)據(jù)持久性定量結(jié)果;
本發(fā)明對MD5數(shù)據(jù)完整性檢測技術(shù)進行應(yīng)用創(chuàng)新,融入獨創(chuàng)的可行性保障機制,確保檢測的高效性和結(jié)果的可靠性,可有效彌補云服務(wù)第三方檢測中數(shù)據(jù)持久性指標檢測的空白,為云服務(wù)等級協(xié)議(SLA)中的數(shù)據(jù)持久性指標的可信度提供可靠的驗證途徑。
檢測方每次要求檢測的數(shù)據(jù)塊序號不僅順序是無規(guī)則的,且數(shù)量也是無規(guī)則的,即每次檢測若干數(shù)據(jù)塊的聚合塊,只有檢測方知道最大聚合數(shù)是多少?!熬酆稀钡淖饔貌粌H提高了可信度,也在很大程度上提高了檢測效率。引入“密鑰庫”概念,其中包含一系列密鑰,每次向云存儲方發(fā)出挑戰(zhàn)的時候,也將一個隨機密鑰傳送過去,要求計算數(shù)據(jù)塊與密鑰聚合數(shù)據(jù)的MD5值。
通過以上可行性保障機制,云存儲方便無法提前計算好所有可能的MD5值,也就確保了云存儲方發(fā)來的MD5值是實時的。對于檢測方,由于在檢測前有充足的時間和足夠的存儲空間,且知道最大聚合數(shù)以及密鑰庫,因此可以提前計算出所有數(shù)據(jù)塊組合加上所有密鑰后,聚合數(shù)據(jù)的MD5值,并存儲在本地,用于后續(xù)的驗證。
持久性與完整性的不同點在于,完整性只檢測數(shù)據(jù)本身是否正確,即假如云存儲方是10,結(jié)果變成了9,這就是完整性缺失了;持久性指的不僅是數(shù)據(jù)本身是否正確,還有數(shù)據(jù)是否丟失。 數(shù)據(jù)持久性相對于數(shù)據(jù)完整性更加全面,既包括完整性,也包括丟失的情況。
為節(jié)省運行時間,所述檢測過程均為并行計算。
所述云存儲數(shù)據(jù)持久性定量結(jié)果,定義為在服務(wù)周期內(nèi)的單位時間里,用戶存儲在云存儲方的數(shù)據(jù)未丟失的字節(jié)數(shù)且未被篡改的字節(jié)數(shù)占整個存儲數(shù)據(jù)比率的平均數(shù);所述單位時間為一個月。
顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域及相關(guān)領(lǐng)域的普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都應(yīng)屬于本發(fā)明保護的范圍。