吳 昊,范九倫,劉建華,張俊生
(1.西安郵電大學(xué)通信與信息工程學(xué)院 西安710121;2.西安郵電大學(xué)信息中心 西安710121)
隨著計算機(jī)和互聯(lián)網(wǎng)技術(shù)的發(fā)展,人們對計算機(jī)存儲的要求越來越高,傳統(tǒng)的集中式存儲已不能滿足用戶需求,云存儲技術(shù)作為一種新興的基于網(wǎng)絡(luò)的存儲技術(shù)應(yīng)運(yùn)而生。它旨在通過互聯(lián)網(wǎng)為用戶提供更強(qiáng)的存儲服務(wù),將網(wǎng)絡(luò)中大量處于不同計算機(jī)、不同類型的存儲設(shè)備通過網(wǎng)絡(luò)和應(yīng)用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問,用戶可以隨時隨地通過網(wǎng)絡(luò)訪問“云”中的數(shù)據(jù),從而有效地解決了存儲的性能瓶頸問題。然而,在云存儲服務(wù)給人們帶來極大便利的同時,安全問題也日益凸顯。在云存儲系統(tǒng)中,用戶所屬的數(shù)據(jù)外包給云服務(wù)提供商,云服務(wù)提供商就獲得了該數(shù)據(jù)或應(yīng)用的優(yōu)先訪問權(quán),由于存在內(nèi)部人員失職、黑客攻擊及系統(tǒng)故障導(dǎo)致的安全機(jī)制失效等多種風(fēng)險,云服務(wù)商沒有充足的證據(jù)讓用戶確信其數(shù)據(jù)被正確地存儲和使用[1,2]。為了解決這一問題,研究人員已經(jīng)提出了一些解決辦法。參考文獻(xiàn)[3]提出了一種基于數(shù)據(jù)分割與分級的云存儲數(shù)據(jù)隱私保護(hù)機(jī)制,按不同的安全級別需求將數(shù)據(jù)分割為大小數(shù)據(jù)塊,聯(lián)合采用數(shù)據(jù)染色和不同強(qiáng)度的數(shù)據(jù)加密技術(shù)進(jìn)行數(shù)據(jù)染色或加密。由于文件塊大小的差異,黑客有可能直接從大數(shù)據(jù)塊中恢復(fù)出原文件的隱私信息;參考文獻(xiàn)[4]提出了一種基于ID特征碼的云存儲數(shù)據(jù)分片與備份策略,利用文件塊ID和可用存儲節(jié)點ID的對應(yīng)關(guān)系隨機(jī)分配有效存儲節(jié)點。該方法解決了服務(wù)器的負(fù)載均衡問題,但建立多個數(shù)據(jù)副本增加了存儲成本。本文提出一種基于指紋魔方算法的云存儲數(shù)據(jù)保護(hù)機(jī)制,運(yùn)用魔方加密算法對存儲文件進(jìn)行加密處理,同時將門限分解思想加入保護(hù)機(jī)制中,不僅使數(shù)據(jù)泄露問題得到了有效解決,還能有效防止數(shù)據(jù)被破壞或者丟失,系統(tǒng)存儲效率高,數(shù)據(jù)冗余度低。
整個數(shù)據(jù)保護(hù)機(jī)制包括文件上傳和下載兩個過程。文件上傳流程分為4個步驟,如圖1所示,具體介紹如下。
·文件傳輸:由客戶端向服務(wù)端發(fā)送連接請求,服務(wù)端允許連接后,客戶端發(fā)送文件,由服務(wù)端接收模塊開辟一個線程負(fù)責(zé)接收文件流。
·文件接收:服務(wù)端根據(jù)客戶端請求,接收上傳的文件。
·魔方加密:把文件按字節(jié)附于魔方表面,運(yùn)用用戶指紋特征值和當(dāng)前時間戳取得散列值,由該值控制魔方的旋轉(zhuǎn)面、旋轉(zhuǎn)方向和操作輪數(shù)。
·門限存儲:依據(jù)所設(shè)計的門限方案,將文件分塊,每塊增加頭部信息,存儲在“云”中不同的服務(wù)器主機(jī)上。
文件下載主要分為5個步驟,如圖2所示,具體介紹如下。
·文件選擇:選擇已上傳到服務(wù)器中需要下載的文件。
·門限重組:對各文件做散列運(yùn)算,檢查服務(wù)器上各文件是否被破壞,根據(jù)參數(shù)做出文件分割表,組合出完整文件。
·魔方解密:把組合出的文件附于魔方表面,同樣利用用戶指紋特征值和文件存儲時間取得散列值,按加密時的逆方向旋轉(zhuǎn)魔方解密文件。
·文件傳輸:由客戶端向服務(wù)端發(fā)送連接請求,服務(wù)端允許連接后,客戶端接收文件。由服務(wù)端發(fā)送模塊開辟一個線程負(fù)責(zé)發(fā)送文件流。
·文件接收:服務(wù)器將客戶端請求下載的文件發(fā)送至客戶端,客戶端接收文件。
圖1 文件上傳流程
圖2 文件下載流程
一個N階魔方是指其長、寬、高均為N個單位小方格的正方體,與魔方某個表面平行的平面上的各小方格構(gòu)成一個可轉(zhuǎn)動的層面。魔方加密的原理就是利用魔方旋轉(zhuǎn)變化的不確定性,用數(shù)學(xué)方法把魔方的旋轉(zhuǎn)規(guī)則模擬出來[5]。一個N維魔方旋轉(zhuǎn)M次,會出現(xiàn)的旋轉(zhuǎn)方式總數(shù)可以由式(1)得出,其中R=骔M/4」,L=M mod 4,Total表示不同的旋轉(zhuǎn)種數(shù)。
由式(1)可知,隨著N或者M(jìn)的增長,Total將迅速增加。這樣,只要增加魔方的維數(shù)或者增加旋轉(zhuǎn)的次數(shù)就可以大幅度提高加密算法的安全性。本文設(shè)計的云存儲數(shù)據(jù)保護(hù)機(jī)制,就是利用魔方加密的原理,將要存儲的文件分割成6×N2份,寫入N階魔方的“小方格”里,再利用用戶個人的指紋特征值控制魔方旋轉(zhuǎn)來加密文件,這樣可以保證只有用戶自己能解密自己存儲的文件,大大提高了用戶數(shù)據(jù)的安全性。
以三階魔方為例,三階魔方共有6個面,分別記作:頂、底、左、右、前、后。對于不同的面分別有兩種基本的操作:順時針旋轉(zhuǎn)90°、逆時針旋轉(zhuǎn)90°。其他選擇方式均可由這兩種組合得到,因此共有6×2=12種控制方式。這12種控制方式分別對應(yīng)一個操作函數(shù)。而控制系統(tǒng)選擇哪一個函數(shù)進(jìn)行旋轉(zhuǎn)操作,取決于用戶注冊時的指紋特征值和當(dāng)前系統(tǒng)時間。這樣既能保證加密密鑰為用戶獨(dú)有,又能保證用戶在不同時刻密鑰不同,防止黑客的竊聽。具體的實現(xiàn)步驟如下。
(1)用戶注冊時,通過客戶端提取指紋特征值Fingerprint。
(2)將客戶端上傳的文件分成6×9=54塊,使之與魔方表面的54個分塊一一對應(yīng)。
(3)取當(dāng)前系統(tǒng)時間time,計算Key=Hash(Fingerprint||time),Key[i]分別代表密鑰的第i字節(jié)數(shù)據(jù),i=1,2,3,…,32。
(4)對于i=1,2,3,…,32,每一個Key[i]計算控制數(shù)值res=Key[i]mod 12。根據(jù)表1進(jìn)行不同的旋轉(zhuǎn)操作(解密時,對應(yīng)加密的操作逆向還原)。
表1 魔方操作控制
(5)將加密后的文件塊分別存儲在不同的服務(wù)器主機(jī)上。
該加密方案在多輪加密的情況下,可以形成足夠數(shù)量級的加密組合,從而能夠抵擋窮舉攻擊的威脅。另外,魔方的維度可以任意擴(kuò)展,從而提高加密強(qiáng)度。
由于云存儲系統(tǒng)所部署環(huán)境的復(fù)雜性,在實際應(yīng)用中數(shù)據(jù)可能會受到一定程度的損壞,此外,黑客的攻擊也不可避免,這就更需要在存儲以及傳輸時對每個文件塊進(jìn)行完整性驗證[6,7]。因此,云存儲保護(hù)機(jī)制引入門限方案,利用多個服務(wù)器中存儲文件塊存在的冗余,通過這些冗余補(bǔ)齊丟失或者破壞的文件塊,獲得所有源文件數(shù)據(jù)后重組文件。這樣,當(dāng)云存儲服務(wù)器集群中的某一臺或幾臺服務(wù)器的文件被破壞后,仍可以通過其他服務(wù)器上的文件碎片恢復(fù)完整的用戶文件。
為了保證文件可以實現(xiàn)逆向恢復(fù),需要對所有服務(wù)器上的文件塊增加一些頭部信息,見表2。
表2 文件頭信息
表3 文件塊存儲情況
門限算法分為文件分割和文件恢復(fù)兩部分,分別在用戶上傳和用戶下載時使用。
4.3.1 分割算法
分割算法的具體步驟如下。
(1)設(shè)文件大小為FileSize byte。對于(n,t)門限,記代表可供存儲的服務(wù)器數(shù),t表示未被破壞的服務(wù)器數(shù)閾值,U表示分割的文件塊數(shù)。
(2)計算PartSize=FileSize/U,作為每臺服務(wù)器存儲文件的大小。若FileSize≠k1×U,k1∈N,在文件末尾填充FileSize-骔FileSize/1」×U個字節(jié)0x00。若FileSize=k×U,k∈N,繼續(xù)。
(3)填充如表1所示的各文件塊的頭信息,其中散列值待文件組合后再計算。
(4)依據(jù)(n,t)值設(shè)計分割表,以(5,3)門限為例,文件塊存儲情況見表3。每一行代表1臺服務(wù)器,這里有5臺,分別是A、B、C、D、E。然后對每個文件進(jìn)行分塊,事實上在經(jīng)過第(2)步的處理后,文件正好能被平均分成U份,這里U=10。表3中√表示該文件塊在相應(yīng)的服務(wù)器中有存儲,空白代表不存儲。
(5)根據(jù)分割表對文件進(jìn)行分割,將屬于不同服務(wù)器的文件塊重新組合。
(6)將文件分別存儲到各服務(wù)器上。
4.3.2 恢復(fù)算法
恢復(fù)算法的具體步驟如下。
(1)獲取門限參數(shù)(n,t)、文件大小FileSize,計算
(2)對各文件做散列運(yùn)算,檢查服務(wù)器上各文件是否被破壞。文件破壞的服務(wù)器∈A={SET1|文件被破壞},未被破壞的服務(wù)器∈B={SET2|文件完整}。
(3)若被破壞文件數(shù)大于n-t,超過門限值,無法恢復(fù)文件,結(jié)束。否則繼續(xù)。
(4)對于文件塊1~U,獲取集合B中服務(wù)器上的文件塊,恢復(fù)完整文件。
4.3.3 系統(tǒng)冗余度
假設(shè)文件大小為FileSize byte,門限參數(shù)為(n,t)。將文件分成∈塊,每塊的大小為PartSize=FileSize/U byte。對于每臺服務(wù)器來說,存儲的文件塊數(shù)為PartCnt=U-U×(n-t)/n。所以實際上,每臺服務(wù)器存儲的文件大小是源文件大小的PartCnt/U=t/n。若使用(5,3)門限,就只有60%的占用率。
系統(tǒng)測試搭建了一個小型云平臺作為實驗環(huán)境,選取1臺PC作為客戶端,5臺服務(wù)器作為云存儲服務(wù)器,對幾個不同大小的數(shù)據(jù)文件的上傳和下載速度進(jìn)行了測試。
(1)文件上傳和下載速度測試
實驗選擇了4個文件,大小分別為10 MB、100 MB、500 MB、1 GB,記錄每個文件上傳和下載所花費(fèi)的時間,測試結(jié)果如圖3所示。測試中,文件平均下載速率為1.9 MB/s,上傳速率為1.4 MB/s,與整個文件上傳下載相比,本方案增加了數(shù)據(jù)分割和加密操作,產(chǎn)生了一定的額外時間開銷,經(jīng)計算時間開銷為O(n),n為文件塊數(shù),增加的時間開銷對系統(tǒng)影響不大,但分割和加密操作大大增強(qiáng)了數(shù)據(jù)隱私的安全性。
(2)文件分塊破壞恢復(fù)情況
圖3 文件上傳和下載速度測試結(jié)果
實驗采用(3,5)的門限方案進(jìn)行測試,對存儲在5臺服務(wù)器上的文件分塊進(jìn)行不同程度的破壞,看系統(tǒng)能否恢復(fù)出完整文件。測試結(jié)果見表4。
實驗結(jié)果表明:在(3,5)門限方案下,當(dāng)被破壞文件塊數(shù)小于3時,系統(tǒng)仍能完整地恢復(fù)用戶文件;當(dāng)被破壞文件塊數(shù)大于或等于3時,系統(tǒng)不能恢復(fù)用戶文件,測試結(jié)果完全符合系統(tǒng)設(shè)計目標(biāo)。
表4 文件塊破壞恢復(fù)測試
用戶數(shù)據(jù)的安全問題已經(jīng)成為云存儲應(yīng)用發(fā)展的瓶頸。本文提出了一種基于指紋魔方算法的云存儲數(shù)據(jù)保護(hù)機(jī)制,利用用戶的指紋特征值控制魔方旋轉(zhuǎn)對用戶文件進(jìn)行加密存儲,具有算法效率高、安全性高的特點。另外,利用門限分割技術(shù)提出了一種安全云存儲策略,使得云端各服務(wù)器分擔(dān)系統(tǒng)負(fù)載,并且使得任意指定數(shù)目的存儲服務(wù)器均能恢復(fù)出用戶上傳的文件,避免了個別服務(wù)器遭到破壞后無法恢復(fù)文件的情況。機(jī)制從存儲策略和數(shù)據(jù)本身都對用戶數(shù)據(jù)安全進(jìn)行了有效防護(hù),也在一定程度上降低了數(shù)據(jù)冗余,提高了系統(tǒng)的性能。
1 馮登國,張敏,張妍等.云計算安全研究.軟件學(xué)報,2011,20(1):71~83
2 鄒德清,金海,衛(wèi)中等.云計算安全挑戰(zhàn)與實踐.中國計算機(jī)學(xué)會通訊,2011,7(12):55~61
3 徐小龍,周靜嵐,楊庚.一種基于數(shù)據(jù)分割與分級的云存儲數(shù)據(jù)隱私保護(hù)機(jī)制.計算機(jī)科學(xué),2013,40(2):98~102
4 錢進(jìn)進(jìn),凌捷.基于ID特征碼的云存儲數(shù)據(jù)分片與備份策略.微電子學(xué)與計算機(jī),2013,30(8):16~22
5 楊志國.基于魔方的混合加密算法及應(yīng)用研究.蘭州大學(xué)碩士學(xué)位論文,2010
6 于洋洋,虞慧群,范貴生.一種云存儲數(shù)據(jù)完整性驗證方法.華東理工大學(xué)學(xué)報,2013,39(2):211~216
7 曹夕,許力,陳蘭香.云存儲系統(tǒng)中數(shù)據(jù)完整性驗證協(xié)議.計算機(jī)應(yīng)用,2012,32(1):8~12