程曉榮 岳 嬌 張 蘭
(華北電力大學(xué)計(jì)算機(jī)系 河北 071003)
隨著數(shù)據(jù)的產(chǎn)生,數(shù)據(jù)保護(hù)也因此誕生。許多數(shù)據(jù)信息都遷移到“云”中,云存儲在為用戶提供服務(wù)時(shí),通常為用戶數(shù)據(jù)提供加密的方式實(shí)現(xiàn)對數(shù)據(jù)的保護(hù),如AES加密技術(shù)。云存儲中,用戶對數(shù)據(jù)僅擁有所有權(quán)而無管理權(quán)。目前,對于云存儲服務(wù)商所提供的安全策略用戶很難完全相信,為了實(shí)現(xiàn)對數(shù)據(jù)的保護(hù),尤其是隱私性,用戶大多采用本地加密的方法。加密算法的安全性主要依賴于密鑰,如果需要對大量文件進(jìn)行加密也會產(chǎn)生大量的密鑰,對其的管理問題也不容忽視。本文從數(shù)據(jù)存儲方面進(jìn)行研究,給出了位拆分、位合并技術(shù)的規(guī)則,設(shè)計(jì)了HDFS中數(shù)據(jù)存儲的策略。
主流的數(shù)據(jù)保護(hù)通常采用加密的方式,即對于數(shù)據(jù)的比特位采用移位和擴(kuò)散的方式。本文也采用該思想,假設(shè)將一份文件拆分成兩份,給出如下規(guī)則。
首先從文件中按順序先讀取兩個字節(jié)的數(shù)據(jù)叫字節(jié)1和字節(jié)2,并將字節(jié)1、2分離出高、低四位,即字節(jié)1(高1、低1),字節(jié) 2(高 2、低 2);其次交換高、低四位的順序,即字節(jié) 1(低1、高1),字節(jié)2(低2、高2),并將此時(shí)字節(jié)1的高四位和字節(jié)2的低四位相組合,組成一個新的字節(jié)1’,即(低1、高2),將此時(shí)字節(jié)1的低四位和字節(jié)2的高四位相組合,組成一個新的字節(jié)2’,即(低2、高1);最后將得到的字節(jié)1’、字節(jié)2’分別寫入到文件1、2中,重復(fù)執(zhí)行此過程直到文件讀取完畢。
位合并技術(shù)實(shí)際上是位拆分技術(shù)的逆過程,假設(shè)按照上述拆分技術(shù)規(guī)則得到了文件1和文件2,按照如下過程進(jìn)行位合并:分別讀取上述兩個文件各一個字節(jié)的數(shù)據(jù),分別分離這兩個字節(jié)的高、低四位,即假設(shè)讀取的是上述位拆分技術(shù)拆分的數(shù)據(jù),即字節(jié)1’(低1、高2),字節(jié)2’(低2、高1),此時(shí)將字節(jié)1’的高四位和字節(jié)2’的低四位組合成一個新的字節(jié)1,即字節(jié)1(低1、高1);將字節(jié)1’的低四位和字節(jié)2’的高四位組合成另外一個新的字節(jié)2.即字節(jié)2(低2、高2);然后分別交換字節(jié)1、2的高、低四位,此時(shí)字節(jié)1、2分別變?yōu)樽止?jié)1(高1、低1),字節(jié)2(高2、低2);按照字節(jié)1在前,字節(jié)2在后的順序?qū)⑦@兩個字節(jié)寫入到新文件里,重復(fù)執(zhí)行直到文件1和文件2結(jié)束。
由于云存儲提供商可以直接獲取云端各類用戶的數(shù)據(jù),所以用戶存儲數(shù)據(jù)時(shí)為了不讓云端知道,可以在客戶端和 HDFS集群之間添加一個接口從而保護(hù)數(shù)據(jù),該接口是位于客戶端之上的。如圖1所示。
圖1 存儲策略架構(gòu)圖
元數(shù)據(jù)(Metadata)是最小的數(shù)據(jù)單位,在云存儲中元數(shù)據(jù)主要分為兩種,即元數(shù)據(jù)文件和內(nèi)存元數(shù)據(jù),其能夠維護(hù)HDFS(分布式文件系統(tǒng))中文件和目錄的信息。當(dāng)客戶端需要寫入若干文件時(shí),首先在接口中對文件進(jìn)行拆分(按照之前提到的拆分規(guī)則),在拆分的過程中,生成相關(guān)的元數(shù)據(jù)信息,比如原文件名到拆分文件名的映射文件、拆分文件名到拆分文件元數(shù)據(jù)的映射文件、拆分文件元數(shù)據(jù)等。然后將拆分后的文件和相關(guān)元數(shù)據(jù),按照原HDFS寫入文件的方式一同上傳至HDFS中,其中名字節(jié)點(diǎn)存儲相關(guān)元數(shù)據(jù),數(shù)據(jù)節(jié)點(diǎn)存儲拆分的文件。
當(dāng)客戶端需要取某個文件時(shí),首先從名字節(jié)點(diǎn)獲取該文件所在的元數(shù)據(jù)信息,然后從數(shù)據(jù)節(jié)點(diǎn)讀取該文件被拆分后的所有拆分文件,并在接口中對拆分文件進(jìn)行位合并并緩存到客戶端。
除了HDFS原有的元數(shù)據(jù)之外,又增加了兩個映射文件和兩類元數(shù)據(jù)。兩個映射文件分別為 Origina1ToSp1itFi1eMap(原文件名到拆分文件名的映射文件)和 Sp1itToMetadataMap(拆分文件名到拆分文件元數(shù)據(jù)的映射文件)。兩類元數(shù)據(jù)分別為Origina1Fi1eMetadata(原文件元數(shù)據(jù))和Sp1itF1ieMetadata(拆分文件元數(shù)據(jù))。這兩類映射文件是為了在NameNode中查找原文件拆分后的拆分文件所必須的信息。在讀取原文件時(shí),首先在NameNode內(nèi)查找原文件名到拆分文件名的映射文件,得到拆分文件名,然后查找拆分文件名到拆分文件元數(shù)據(jù)的映射文件,得到原文件被拆分后拆分文件的元數(shù)據(jù),這樣才能連接DataNode獲取原文件被拆分后的各個拆分文件。
當(dāng)C1ient端將所有原文件拆分得到拆分文件之后,會將生成的拆分文件元數(shù)據(jù)、原文件名到拆分文件名的映射文件、拆分文件名到拆分文件元數(shù)據(jù)的映射文件一起上傳至 NameNode的內(nèi)存中,拆分文件會被存儲在DataNode。
現(xiàn)今云存儲的技術(shù)發(fā)展地非常迅速,其數(shù)據(jù)安全問題開始越來越受到人們的重視,非常值得人們好好研究。本文從數(shù)據(jù)存儲方向入手,分析了當(dāng)前主流數(shù)據(jù)存儲策略,利用移位和擴(kuò)散的基本思想,給出了位拆分、位合并技術(shù)的規(guī)則,設(shè)計(jì)了HDFS中數(shù)據(jù)存儲的策略,構(gòu)建的策略能夠不依賴于密鑰就可以加密文件,無需管理密鑰,能夠保護(hù)數(shù)據(jù)的隱私。
[1]黃汝維,桂小林,余思,莊威.云環(huán)境中支持隱私保護(hù)的可計(jì)算加密方法[J].計(jì)算機(jī)學(xué)報(bào).2011.
[2]毛劍,李坤,徐先棟.云計(jì)算環(huán)境下隱私保護(hù)方案[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版).2011.
[3]周靜嵐.云存儲數(shù)據(jù)隱私保護(hù)機(jī)制的研究[D].南京郵電大學(xué).2014.
[4]孫辛未,張偉,徐濤.面向云存儲的高性能數(shù)據(jù)隱私保護(hù)方法[J].計(jì)算機(jī)科學(xué).2014.
[5]Sugumaran,M.;Murugan,B.B.;Kamalraj,D.,"An Architecture for Data Security in Cloud Computing," Computing and Communication Technologies(WCCCT),2014 World Congress on,vol.,no.,pp.252,255,F(xiàn)eb.27 2014-March 1 2014.