王敏燊,熊金波,林 倩,王麗麗
(福建師范大學 數(shù)學與信息學院,福州 350117)(*通信作者電子郵箱jinbo810@163.com)
隨著計算機網(wǎng)絡(luò)技術(shù)的快速發(fā)展與大數(shù)據(jù)時代的到來,云計算服務(wù)為人們帶來了極大的方便。計算能力強、成本低、存儲空間大、部署靈活且可擴展性強的云計算服務(wù),被越來越多用戶關(guān)注與使用。用戶一旦將個人數(shù)據(jù)上傳到云端,云數(shù)據(jù)的所有權(quán)與管理權(quán)分離,導致用戶失去對數(shù)據(jù)完全控制權(quán)。如果云數(shù)據(jù)過期后不及時刪除,“誠實且好奇”的云服務(wù)提供商可能在利益的驅(qū)使或法律的強迫下泄露隱私數(shù)據(jù);另外,還存在攻擊者從云服務(wù)器中竊取數(shù)據(jù),并使用蠻力破解等方法破解密文的風險。如:據(jù)消費者權(quán)益保障協(xié)會報道,有些網(wǎng)站收集達到7億多用戶的個人數(shù)據(jù)未能及時刪除,導致用戶的隱私信息被泄露;雅虎數(shù)據(jù)庫被攻擊,導致10億用戶信息被盜,這些信息包括:用戶名字、電話號碼、出生日期、密碼和密保信息等。云數(shù)據(jù)在授權(quán)期后,面臨的隱私泄露問題亟需解決,因此,云數(shù)據(jù)確定性刪除的研究對云數(shù)據(jù)的隱私保護具有重要的意義。
為確保數(shù)據(jù)的機密性,通常先將數(shù)據(jù)加密,再上傳到云端?,F(xiàn)有關(guān)于云數(shù)據(jù)確定性刪除的方法可分為集中式密鑰管理和分散式密鑰管理兩種方法[1]。
集中式密鑰管理方法有:文獻[2]提出了一種Timed-Ephemerizer的確定性刪除方法,通過第三方密鑰管理服務(wù)器產(chǎn)生公鑰對數(shù)據(jù)密鑰加密,并設(shè)定數(shù)據(jù)的生命周期。數(shù)據(jù)過期后,密鑰管理服務(wù)器刪除私鑰,進而數(shù)據(jù)密鑰和密文都無法解密。文獻[3]提出了一種基于訪問策略的確定性刪除方法,將數(shù)據(jù)分別關(guān)聯(lián)一條訪問策略或多條訪問策略的布爾組合,再用訪問策略對應(yīng)的控制密鑰加密數(shù)據(jù)密鑰,通過撤銷訪問策略并刪除控制密鑰使數(shù)據(jù)密鑰和密文無法解密。文獻[4]提出了一種基于密文抽樣分塊的確定性刪除方案,對完整密文進行抽樣處理,將密文分成抽樣密文和不完整密文。密鑰、抽樣密文以及抽樣密文的位置索引交于可信第三方管理,通過可信第三方銷毀密鑰和抽樣密文實現(xiàn)云數(shù)據(jù)的確定性刪除。文獻[5]使用全有或全無轉(zhuǎn)換(All Or Nothing Transform, AONT)算法實現(xiàn)云數(shù)據(jù)的刪除。云數(shù)據(jù)過期后,刪除包含密鑰和AONT算法生成的密文塊等信息的封裝對象,使密文無法解密。集中式密鑰管理的方法過于依賴密鑰管理服務(wù)器,當?shù)谌椒?wù)器失效,密鑰就無法正常刪除[6]。
分散式密鑰管理方法有:文獻[7]使用(n,t)門限秘密共享算法將數(shù)據(jù)密鑰分成n個子密鑰分布到分布式哈希表(Distributed Hash Table, DHT)網(wǎng)絡(luò)節(jié)點上存儲。DHT網(wǎng)絡(luò)具有周期性更新的功能,因此,DHT網(wǎng)絡(luò)更新前,能夠提取子密鑰重構(gòu)出密鑰;DHT網(wǎng)絡(luò)更新后,節(jié)點上的子密鑰被刪除。當n-t+1個子密鑰被刪除,密鑰就無法重構(gòu),進而無法解密密文。文獻[8]基于文獻[7]對秘密共享算法進行了改進,擴展子密鑰的長度和數(shù)量抵御DHT網(wǎng)絡(luò)中存在的跳躍攻擊。文獻[9]提出了一種基于DHT網(wǎng)絡(luò)和密鑰派生樹的確定性刪除方法,將密鑰通過轉(zhuǎn)換函數(shù)生成派生樹密鑰,然后將派生樹密鑰分發(fā)到DHT網(wǎng)絡(luò)節(jié)點上,通過節(jié)點周期性更新功能刪除派生樹密鑰,實現(xiàn)云數(shù)據(jù)確定性刪除。該方案節(jié)省了用戶管理密鑰的開銷,能防御跳躍攻擊和嗅探攻擊,但沒解決密文面臨的蠻力攻擊問題且增加了計算開銷。文獻[10-12]的方案中密鑰通過秘密共享算法分成多份子密鑰,完整密文經(jīng)過抽樣后,得到不完整密文和抽樣密文塊,再將子密鑰和抽樣密文組合分發(fā)到DHT網(wǎng)絡(luò)節(jié)點上存儲,利用DHT網(wǎng)絡(luò)的功能刪除子密鑰和抽樣密文,進而實現(xiàn)云數(shù)據(jù)的確定性刪除。上述方法沒考慮DHT網(wǎng)絡(luò)中存在惡意節(jié)點導致的風險,如:惡意節(jié)點沒有周期性刪除子密鑰,甚至泄露和偽造子密鑰等,這將導致無法重構(gòu)正確的密鑰和密鑰泄露的風險。另外,現(xiàn)有的研究僅通過刪除密鑰使密文無法解密來達到刪除云數(shù)據(jù)的目的,并未完全刪除云端密文,攻擊者可以通過密文分析和蠻力破解等方法破解云端密文。
針對現(xiàn)有研究存在的問題,本文提出一種基于分散式密鑰管理方法的云數(shù)據(jù)確定性刪除方案,與現(xiàn)有方案區(qū)別為本文方案基于秘密共享算法、DHT網(wǎng)絡(luò)實現(xiàn)密鑰管理,再結(jié)合信任值評估模型、隨機抽樣算法和覆寫算法實現(xiàn)云數(shù)據(jù)的確定性刪除。本文主要貢獻如下:提出一種基于密鑰分發(fā)和密文抽樣的云數(shù)據(jù)確定性刪除方案。該方案中使用隨機抽樣算法抽樣密文,使云端密文不完整,能有效抵御云數(shù)據(jù)生命周期內(nèi)攻擊者的密碼分析和蠻力破解;使用DHT網(wǎng)絡(luò)實現(xiàn)密鑰的定期自動刪除,通過信任值評估模型評估DHT網(wǎng)絡(luò)各節(jié)點的信任值,能有效防止DHT網(wǎng)絡(luò)中惡意節(jié)點對密鑰的不定期刪除、泄露和偽造等行為;上傳隨機數(shù)據(jù)覆寫密文,實現(xiàn)密文的及時刪除,避免了攻擊者重構(gòu)密鑰和密文、蠻力攻擊等的風險;通過安全性分析與實驗分析證明所提方案是安全和高效的。
Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System, HDFS)能存儲和處理大數(shù)據(jù)集,具有擴展性高、冗余存儲和容錯性強等特點[13]。主要由3個部分組成:
1)NameNode,系統(tǒng)管理節(jié)點。管理HDFS中的文件目錄、映射和屬性等,能接收用戶讀寫請求、記錄日志和配置副本策略。
2)SecondaryNameNode,NameNode的備份節(jié)點。保證NameNode失效時,數(shù)據(jù)的存儲過程不會中斷,數(shù)據(jù)不會丟失。
3)DataNode,數(shù)據(jù)存儲節(jié)點。負責存儲數(shù)據(jù)。HDFS將上傳的數(shù)據(jù)分成多份數(shù)據(jù)塊存儲在不同數(shù)據(jù)存儲節(jié)點上。DataNode與NameNode相互協(xié)調(diào)實現(xiàn)數(shù)據(jù)塊的讀寫。當用戶通過NameNode上傳數(shù)據(jù)到DataNode時,NameNode會反饋校驗文件.meta給用戶;當用戶發(fā)出數(shù)據(jù)請求并獲取數(shù)據(jù)內(nèi)容后,會將從DataNode處獲取到的數(shù)據(jù)與相應(yīng)的校驗和與文件中的校驗和進行匹配,如果不匹配,用戶可以從其他DataNode獲取相對應(yīng)數(shù)據(jù)塊的副本。
密文抽樣合成模型分為隨機抽樣縮減和合成兩個過程[4]。抽樣縮減過程:通過隨機抽樣算法對密文的序列塊隨機抽樣,生成不完整密文、抽樣密文及其位置索引,如圖1所示。由于文件流的I/O操作效率較低,因此只對密文中抽樣密文對應(yīng)位置的序列塊進行混淆處理。假設(shè)完整密文為C={x1,x2,…,xn},bi為第i次抽樣的比特數(shù),f為抽樣的次數(shù)。如:隨機抽樣次數(shù)f=3,從C中抽出C2={x3,x7,xn-2},算法生成隨機序列P={p3,p7,pn-2}用于填充C2,pi與bi長度相同。抽樣后得到不完整密文C1={x1,x2,…,xn-1,xn}、C2={x3,x7,xn-2}及其位置索引L。合成過程:根據(jù)L將C2中序列塊覆蓋C1中隨機序列P,合成完整密文C。
圖1 密文隨機抽樣
DHT網(wǎng)絡(luò)是一種分布式存儲網(wǎng)絡(luò)[14]。DHT網(wǎng)絡(luò)具有以下3個特性:
1)可用性。DHT網(wǎng)絡(luò)能夠?qū)?shù)據(jù)分散存儲到不同節(jié)點上,保證部分節(jié)點退出網(wǎng)絡(luò)后,存儲在其他節(jié)點上的數(shù)據(jù)仍能被提取。
2)大規(guī)模且分布范圍廣。VuzeDHT網(wǎng)絡(luò)中的活動節(jié)點已達到了數(shù)百萬個,并且地理分布涉及全球近兩百個國家和地區(qū)。非集中的分布方式使DHT網(wǎng)絡(luò)具有良好的健壯性和抗攻擊能力。
3)定期更新清除功能。只需設(shè)置DHT網(wǎng)絡(luò)的更新周期,DHT網(wǎng)絡(luò)能定期自動清除節(jié)點上存儲的數(shù)據(jù),釋放空間存儲新的數(shù)據(jù)。如:實驗表明OpenDHT可自主選擇節(jié)點更新周期[15];VuzeDHT網(wǎng)絡(luò)的自動更新周期為8 h,超過更新周期,節(jié)點上的數(shù)據(jù)將被清除[16]。
秘密共享方案(Shamir Secret Sharing, SSS)是一種將密鑰分成若干份分散式管理的方法[17]。原理是將密鑰分成n份子密鑰;至少擁有t個子密鑰,才能通過拉格朗日多項式重構(gòu)出密鑰;少于t個無法重構(gòu)密鑰。秘密共享方案能有效地解決直接將密鑰存儲在DHT網(wǎng)絡(luò)節(jié)點上導致密鑰高丟失率和不可用性的問題。通過自主設(shè)置門限閾值n、t找到密鑰分片長度和分片數(shù)量之間的平衡,能有效地抵御DHT網(wǎng)絡(luò)中的跳躍攻擊。
信任值評估模型是一種評估DHT網(wǎng)絡(luò)節(jié)點信任值的方法[18-19]。在用戶與節(jié)點的交互過程中,根據(jù)節(jié)點反饋數(shù)據(jù)是否及時、數(shù)據(jù)的正確性和是否定期刪除數(shù)據(jù)三方面指標評價該節(jié)點的信任值。令用戶u與節(jié)點id進行交互,fi(u,id)表示第i次數(shù)據(jù)交互的評價值。如果節(jié)點id滿足上述三方面指標,則fi(u,id)=1;全不滿足,則fi(U,v)=0;否則根據(jù)滿足的程度在(0,1)中取值。統(tǒng)計u與id進行n次交互的評價值,結(jié)合節(jié)點原有的信任值q,計算節(jié)點的局部信任值vuid,表示為:
(1)
當n=0時,用戶和節(jié)點未交互,則vuid為0。每計算一次vuid后,將其存儲節(jié)點管理處。當k個用戶與id交互后,節(jié)點id的全局信任值Vid表示為:
(2)
首先列出本文方案所用符號及其描述,如表1所示。然后給出所提方案的系統(tǒng)模型、安全假設(shè)、模型概述、具體實現(xiàn)流程和算法描述。
基于密鑰分發(fā)和密文抽樣的云數(shù)據(jù)確定性刪除方案的系統(tǒng)模型,如圖2所示。該模型由數(shù)據(jù)擁有者(Data Owner)、基于HDFS的云服務(wù)器、DHT網(wǎng)絡(luò)和數(shù)據(jù)使用者(Data User)組成。
表1 本文方案符號和描述
數(shù)據(jù)擁有者(Data Owner) 擁有大量數(shù)據(jù),選擇云服務(wù)器存儲數(shù)據(jù)。為防止用戶的個人隱私泄露,需要對數(shù)據(jù)進行加密,再上傳到云端。
基于HDFS的云服務(wù)器 根據(jù)用戶要求操作數(shù)據(jù)。為數(shù)據(jù)擁有者提供存儲服務(wù),提供數(shù)據(jù)給數(shù)據(jù)使用者下載。
DHT網(wǎng)絡(luò) 用于存儲子密鑰,子密鑰的生命周期過期后,節(jié)點自動刪除子密鑰。
數(shù)據(jù)使用者(Data User) 有權(quán)享有數(shù)據(jù)擁有者的數(shù)據(jù)用于其他用途,能夠遵守數(shù)據(jù)擁有者的隱私保護要求,不會泄露隱私信息。
圖2 系統(tǒng)模型
為實現(xiàn)方案構(gòu)造的安全性,作以下安全假設(shè):
1)“誠實且好奇”的云服務(wù)提供商。向用戶提供存儲計算服務(wù)并能按用戶要求處理數(shù)據(jù),但可能受利益驅(qū)使窺探用戶的個人數(shù)據(jù),或被迫將數(shù)據(jù)提交給法律機構(gòu)等實體。
2)安全信道。保障數(shù)據(jù)擁有者和數(shù)據(jù)使用者之間的通信安全,防止秘密信息傳輸時被攻擊者截取。
3)可信的數(shù)據(jù)使用者。數(shù)據(jù)使用者不會主動泄露密鑰和明文。使用完數(shù)據(jù)后,能按照數(shù)據(jù)擁有者的要求完全刪除密鑰、明文和密文等。
本文所提方案可分為4個階段:
第1階段 明文加密和密文抽樣。數(shù)據(jù)擁有者使用AES(Advanced Encryption Standard)256算法將F加密成C。使用隨機抽樣算法對C進行抽樣,生成C1和C2。然后將C1上傳到HDFS中。
第2階段 密鑰分發(fā)和提取。使用信任值評估模型評估DHT網(wǎng)絡(luò)節(jié)點的信任值,記錄具有高信任值的節(jié)點id。密鑰通過秘密共享算法分成n份子密鑰,子密鑰根據(jù)ID分發(fā)到DHT網(wǎng)絡(luò)中。然后將C2、L、URL和ID封裝成封裝體E。當數(shù)據(jù)使用者請求數(shù)據(jù)時,先通過安全信道獲取E,解封裝E得C2、L、URL和ID。數(shù)據(jù)使用者依據(jù)ID從DHT網(wǎng)絡(luò)中的節(jié)點上提取子密鑰,在DHT網(wǎng)絡(luò)的更新周期內(nèi),即云數(shù)據(jù)的生命期,可提取足夠多的子密鑰重構(gòu)出密鑰。
第3階段 密文合成和解密。數(shù)據(jù)使用者向云服務(wù)器發(fā)送身份認證信息請求數(shù)據(jù)。云服務(wù)器通過身份驗證后,提供與URL對應(yīng)的C1給數(shù)據(jù)使用者下載。然后根據(jù)L將C2與C1合成C,再用密鑰解密C。
第4階段 密鑰和密文刪除。云數(shù)據(jù)過期后,密鑰通過DHT網(wǎng)絡(luò)周期性更新功能自動刪除。密文通過調(diào)用HDFS接口,上傳隨機數(shù)據(jù)覆寫實現(xiàn)刪除。
2.4.1 明文加密抽樣處理
1)setup(k)→(Skey,f,b,n,t),初始化算法??蛻舳溯斎氚踩珔?shù)k通過初始化算法生成AES256對稱加密算法的密鑰Skey、密文抽樣的次數(shù)f、抽樣的數(shù)據(jù)大小b、秘密共享方案生成子密鑰個數(shù)n和重構(gòu)密鑰的門限值t。
2)AESEnc(F,Skey)→(C),AES256加密算法。明文數(shù)據(jù)F通過AES256對稱加密算法加密成密文C。
3)DataExtract(C,b,f)→(C1,C2,L),密文抽樣算法。對完整密文C進行抽樣縮減,抽樣的數(shù)據(jù)量為b比特,經(jīng)過f次抽樣后得到抽樣密文C2、C2的位置索引L和不完整密文C1。
4)DataUpload(C1)→(URL),數(shù)據(jù)上傳。不完整密文C1通過HDFS提供的接口上傳,上傳完成后,HDFS將數(shù)據(jù)存儲的位置信息URL反饋給數(shù)據(jù)擁有者。
加密抽樣偽代碼如下:
Input:k,F
Output:C1,C2
(Skey,f,b,n,t) ←setup(k)
public function encrypt ($str)
//傳入加密字符串
mcrypt_generic_init($td,$this->secret_key,$iv);
$cyper_text=mcrypt_generic($td,$str);
//加密數(shù)據(jù)
$rt=base64_encode($cyper_text);
//對數(shù)據(jù)編碼
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
(C1,C2,L) ←DataExtract(C,b,f);
//抽樣密文
end
2.4.2 密鑰分發(fā)提取處理
1)Trust({id1,id2,…,idm})→({id1,id2,…,idn}),信任值評估算法。從DHT網(wǎng)絡(luò)選取m個節(jié)點作為候選節(jié)點,發(fā)送隨機數(shù)據(jù)與候選節(jié)點交互。根據(jù)節(jié)點反饋數(shù)據(jù)的情況,記錄其中n個具有高信任值的節(jié)點的隨機種子ID={id1,id2,…,idn}。
2)SSShare(Skey)→({Skey1,Skey2,…,Skeyn}),密鑰分發(fā)算法。通過(n,t)秘密共享算法將密鑰分成n個子密鑰Skey={Skey1,Skey2,…,Skeyn}。
3)KeyDistribute({Skey1,Skey2,…,Skeyn},ID),密鑰分發(fā)算法。根據(jù)信任值評估算法選取的節(jié)點的隨機種子ID,將子密鑰分別存儲到DHT網(wǎng)絡(luò)的節(jié)點上。
4)Encapsulate(C2,L,URL,ID)→(E),封裝算法。將C2、L、URL和ID封裝成封裝體E。
5)Decapsulate(E)→(C2,L,URL,ID),解封裝算法。將E解封裝得C2、L、URL和ID。
6)SubkeyExtract(ID,t)→({Skey1,Skey2,…,Skeyn}),子密鑰提取算法。根據(jù)ID從DHT網(wǎng)絡(luò)中提取子密鑰。提取子密鑰后,對其進行正確性驗證,正確則記為滿意;不正確則記錄不滿意,繼續(xù)從DHT網(wǎng)絡(luò)其他節(jié)點中獲取子密鑰。直到獲取到至少t個正確的子密鑰。根據(jù)節(jié)點反饋的子密鑰的正確性和及時性等情況,用信任值評估算法計算節(jié)點的信任值。最后將各節(jié)點的新信任值存儲到節(jié)點管理處。
7)SSRecover({Skey1,Skey2,…,Skeyn})→(Skey),密鑰重構(gòu)算法。將t個正確子密鑰通過秘密共享算法重構(gòu)出密鑰Skey。
密鑰分發(fā)偽代碼如下:
public function Distribute(Skey)
({Skey1,Skey2,…,Skeyn}) ←SSShare(Skey);
for(u=1;u<=k;u++)
//選取節(jié)點
for(i=0;i<=m;i++)
if(fi(u,id)=1)
idi=i;
KeyDistribute({Skey1,Skey2,…,Skeyn},ID);
end
2.4.3 密文合成解密處理
1)DataDownload(URL)→(C1),數(shù)據(jù)下載。數(shù)據(jù)擁有者通過URL從云服務(wù)器中下載不完整密文C1。
2)DataRecover(C1,C2,L)→(C),密文合成算法。根據(jù)位置索引L將抽樣密文C2與不完整的密文C1組合成完整密文C。
3)AESDec(C,Skey)→(F),AES256解密算法。使用密鑰Skey解密C,恢復出明文F。
偽代碼如下:
Input:C1,C2,L,Skey
Output:F
C←DataRecover(C1,C2,L);
//恢復完整密文
if (DataRecover(C1,C2,L)=0)
//沒有合成完整密文
return decryption failed;
else
public function decrypt($str)
//傳入密文C字符串
mcrypt_generic_init($td,$this->secret_key,$iv);
$decrypted_text=mdecrypt_generic($td,
base64_decode($str));
$rt=$decrypted_text;
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $this->unpad($rt);
//恢復的明文數(shù)據(jù)
end
2.4.4 密鑰和密文刪除處理
云數(shù)據(jù)的生命周期過后,DHT網(wǎng)絡(luò)自動刪除子密鑰,攻擊者無法提取至少t個子密鑰重構(gòu)密鑰,進而實現(xiàn)密鑰的刪除。通過覆寫方法實現(xiàn)密文的刪除。
1)DataOW(C1,URL,r),數(shù)據(jù)覆寫算法。調(diào)用HDFS的接口上傳隨機數(shù)據(jù)r,對不完整密文C1進行多次覆寫。覆寫偽代碼如下:
public class DataOW(r)
FileSystem hdfs=FileSystem.get(conf);
//文件流
byte[] buff="r".getBytes();
//覆寫的內(nèi)容
Path dfs=new Path("xxxx");
//需要被覆寫的文檔路徑
FSDataOutputStream outputStream=hdfs.create(dfs);
outputStream.write(buff,0,buff.length);
end
本文方案的安全性主要從DHT網(wǎng)絡(luò)的安全性、密文隨機抽樣的安全性、算法的安全性和方案整體的安全性進行分析,然后與經(jīng)典方案從加密算法、抗攻擊能力等方面進行對比。通過算法的計算復雜度分析方案的性能,并通過實驗驗證方案的可行性。
1)DHT網(wǎng)絡(luò)的安全性。文獻[7-9,11,19]將子密鑰分發(fā)到網(wǎng)絡(luò)節(jié)點上,利用DHT網(wǎng)絡(luò)節(jié)點刪除密鑰。這種方式雖然避免了密鑰管理第三方存在的泄露風險,但也存在不足。如:文獻[7]中所提的方案存在由嗅探攻擊和跳躍攻擊導致的密鑰泄露問題,原因是分發(fā)到DHT網(wǎng)絡(luò)節(jié)點上的子密鑰較短且長度固定。為了防止嗅探攻擊和跳躍攻擊。文獻[8]使用非對稱加密算法的公鑰加密數(shù)據(jù)密鑰,然后分發(fā)到DHT網(wǎng)絡(luò)節(jié)點中。假設(shè)攻擊者能提取足夠多的子密鑰,但沒有與數(shù)據(jù)密鑰對應(yīng)的私鑰,也無法解密出數(shù)據(jù)密鑰。文獻[9]使用密鑰派生樹管理密鑰,攻擊者不知道派生樹密鑰的變換函數(shù),因此,能夠有效抵御嗅探攻擊和跳躍攻擊。文獻[19]先對DHT網(wǎng)絡(luò)節(jié)點進行信任值評估,再將密鑰分發(fā)到具有較高信任值的節(jié)點上,以減少惡意節(jié)點泄露子密鑰的風險。本文方案不但考慮節(jié)點的信任值評估,而且在密鑰分發(fā)時,保證了子密鑰的長度和數(shù)目,這能有效地防止惡意節(jié)點對子密鑰的泄露、篡改等行為,并能抵御嗅探攻擊和跳躍攻擊。本文方案和現(xiàn)有方案的對比,如表2所示。
表2 幾種相關(guān)方案對比分析
3)算法的安全性。本文方案中采用的密鑰共享方案的安全性是基于多線性離散對數(shù)和多線性Diffie-Hellman難解性的,因此密鑰分發(fā)和恢復過程的安全性可得到保證[17]。因為攻擊者對密文進行蠻力攻擊在多項式時間內(nèi)無法破解AES256算法,所以AES256加密算法保證了云數(shù)據(jù)在生命周期內(nèi)的安全。云數(shù)據(jù)過期后,密文通過覆寫算法實現(xiàn)刪除,因此,攻擊者無法解密出明文。
4)系統(tǒng)整體的安全性。本文方案采用AES256加密算法加密明文,通過隨機抽樣算法使上傳到云端的密文不完整,能抵御攻擊者的蠻力攻擊。利用DHT網(wǎng)絡(luò)的周期性更新功能刪除密鑰,避免了密鑰管理第三方的密鑰泄露風險。采用信任值評估模型評估DHT網(wǎng)絡(luò)節(jié)點并選擇信任值高的節(jié)點存儲子密鑰,能有效地防止惡意節(jié)點對子密鑰不定期刪除、泄露、篡改等行為。隨著計算機計算能力的提高,存儲在云端的密文依然存在被蠻力破解的風險。云數(shù)據(jù)過期后,調(diào)用HDFS接口上傳隨機數(shù)據(jù),對云端的密文進行多次覆寫,進而實現(xiàn)密文的刪除。所以從理論上分析,本文方案能有效保證云數(shù)據(jù)安全。
本文主要從系統(tǒng)流程的4個階段分析客戶端、云服務(wù)器和DHT網(wǎng)絡(luò)中的計算復雜度。
階段1 使用AES256算法加密明文F的復雜度為O(lF)·AES;密文抽樣算法的復雜度為O(b)·f。
階段2 信任值評估算法評估DHT網(wǎng)絡(luò)中m個節(jié)點的復雜度為O(m);秘密共享方案產(chǎn)生子密鑰的復雜度為O(lSkey)·SSShare;通過秘密共享算法重構(gòu)密鑰的復雜度為O(lSkey)·SSRecover。
階段3 合成完整密文的復雜度均為O(b)·f;解密密文的復雜度為O(lF)·AES。
階段4n個子密鑰通過DHT網(wǎng)絡(luò)節(jié)點刪除的復雜度O(lSkeyi)·n,數(shù)據(jù)擁有者調(diào)用接口,上傳隨機數(shù)據(jù)進行一次密文覆寫的復雜度O(lC1)·OW。
密文抽樣的抽樣次數(shù)少且每次抽樣的數(shù)據(jù)量很小,因此,數(shù)據(jù)抽樣和合成的復雜度不高。秘密共享算法由于密鑰的數(shù)據(jù)量不大,進行密鑰分片和重構(gòu)的復雜度也不高。由云服務(wù)器進行密文覆寫,因此,當數(shù)據(jù)量大時,客戶端最主要的開銷是明文加密和密文解密的開銷,由于本文采用是對稱加密算法,所以客戶端加解密的計算開銷在可承受的范圍內(nèi)。各階段開銷分析,如表3所示。
表3中:lF表示明文F的長度,AES表示對稱加密運算,lC1為不完整密文的長度,m為計算信任度的節(jié)點個數(shù),SSS表示SSShare+SSRecover運算,lSkey,lSkeyi表示密鑰和密鑰分量長度,OW表示覆寫運算。
表3 本文方案復雜度分析
實驗主要通過統(tǒng)計不同大小的數(shù)據(jù)的加解密和抽樣的時間開銷、不同大小的數(shù)據(jù)上傳到HDFS中的時間開銷以及子密鑰的提取成功率與時間的關(guān)系等來驗證本文所提方案的可行性。
實驗環(huán)境:云服務(wù)器為Hadoop2.7.3構(gòu)建的分布式環(huán)境,配置為Intel Core i5- 4539 CPU@3.30 GHz處理器,內(nèi)存為8 GB,硬盤1 024 GB,操作系統(tǒng)Ubuntu16.04。通過在Vmware-workstation 12.5.2虛擬機上創(chuàng)建兩臺虛擬機,其中一臺是NameNode,另一臺是DataNode,完成分布式文件系統(tǒng)的構(gòu)建,實現(xiàn)數(shù)據(jù)的本地存儲轉(zhuǎn)發(fā)。使用NS2網(wǎng)絡(luò)仿真工具模擬DHT網(wǎng)絡(luò),模擬DHT網(wǎng)絡(luò)中的節(jié)點數(shù)為50個,設(shè)置數(shù)據(jù)生命周期為8 h。JDK版本采用Jdk- 8u111-linux-x64.gz,數(shù)據(jù)加密采用AES256加密算法,密鑰長度為256比特??蛻舳说挠布渲脼镮ntel Core i5- 4200H處理器,4 GB內(nèi)存,操作系統(tǒng)Windows 10。
3.3.1 數(shù)據(jù)加密與解密
實驗數(shù)據(jù)的取值范圍為64 MB~320 MB,總抽樣密文大小為64比特,設(shè)置每次抽樣b=16比特,采樣次數(shù)f=4。不同大小的數(shù)據(jù)的加密(Encrypt)、抽樣(Extract)和解密(Decrypt)的時間開銷,如表4所示。實驗發(fā)現(xiàn)數(shù)據(jù)的加解密時間開銷不是很大,隨機抽樣比加密和解密的時間開銷小很多。
表4 不同大小的數(shù)據(jù)加解密和抽樣的時間對比
3.3.2 密文上傳
客戶端將密文上傳到HDFS中。首先,設(shè)置數(shù)據(jù)的本地路徑和HDFS中存放的路徑,然后將本地數(shù)據(jù)上傳到設(shè)置的文件夾中,刷新之后可看到HDFS中的數(shù)據(jù)。在數(shù)據(jù)上傳的過程中,監(jiān)測到上傳不同大小的數(shù)據(jù)時系統(tǒng)CPU、內(nèi)存(Mem)占用率的變化,如圖3所示。從圖中可知CPU占用率基本不變,內(nèi)存占用率會隨著存儲的數(shù)據(jù)越多而增大,但兩者的占用率都不是很大。
圖3 數(shù)據(jù)上傳時CPU和內(nèi)存的占用率
上傳不同大小的數(shù)據(jù)的時間開銷,如圖4所示,上傳的時間開銷隨著數(shù)據(jù)量的增大而增加,當數(shù)據(jù)大小為320 MB時,上傳時間大約為7.45 s,時間比較短,屬于可接受范圍內(nèi)。
圖4 數(shù)據(jù)上傳的時間
3.3.3 密鑰分發(fā)與重構(gòu)
密鑰隨機分成10個子密鑰,只要提取7個子密鑰就能重構(gòu)密鑰。然后根據(jù)信任值評估所選擇的信任值高的節(jié)點分發(fā)子密鑰,通過子密鑰的提取成功率和時間的關(guān)系確定密鑰是否被定期刪除。密鑰提取的成功率與時間的關(guān)系,如圖5所示。圖中前8 h密鑰提取的成功率約為100%,說明根據(jù)節(jié)點信任值評估模型所選擇的節(jié)點幾乎可靠,不會中途退出網(wǎng)絡(luò)或惡意刪除子密鑰。8 h之后,子密鑰被刪除,密鑰提取成功率迅速下降,由此可知使用DHT網(wǎng)絡(luò)刪除密鑰是可行的。
圖5 不同時間的密鑰提取成功率
3.3.4 密鑰覆寫
密文覆寫采用數(shù)據(jù)流覆蓋的形式,不同大小的密文數(shù)據(jù)分別采用5字節(jié)的數(shù)據(jù)流覆寫,覆寫不同大小的數(shù)據(jù)所需的時間,如圖6所示。由于HDFS是將數(shù)據(jù)分塊存儲,每塊的大小為固定值,不足固定值的數(shù)據(jù)塊按實際大小存儲,因此,可以并行覆寫,所以相同字節(jié)的隨機數(shù)據(jù)對不同大小的密文數(shù)據(jù)進行覆寫時,覆寫的時間開銷幾乎不變[20]。
圖6 密文覆寫的時間
云計算服務(wù)為用戶存儲數(shù)據(jù)提供了諸多方便,同時也導致了隱私泄露的問題。針對DHT網(wǎng)絡(luò)惡意節(jié)點對子密鑰的不定期刪除、泄露和偽造等行為以及云端的完整密文被蠻力破解等問題,本文提出了一種基于密鑰分發(fā)和密文抽樣的云數(shù)據(jù)確定性刪除方案,結(jié)合信任值評估模型、密文抽樣算法和覆寫算法實現(xiàn)云數(shù)據(jù)確定性刪除。從安全性分析表明,該方案能保證云數(shù)據(jù)的確定性刪除和防止隱私泄露,通過實驗數(shù)據(jù)表明所提方案滿足隱私保護的前提下是高效可行的。
References)
[1] 熊金波,李鳳華,王彥超,等.基于密鑰學的云數(shù)據(jù)確定性刪除研究進展[J].通信學報, 2016,37(8):168-184.(XIONG J B, LI F H, WANG Y C, et al. Research progress on cloud data assured deletion based on cryptography [J]. Journal on Communication, 2016, 37(8): 168-184.)
[2] TANG Q. Timed-Ephemerizer: make assured data appear and disappear [C]// Proceedings of the 2009 ACM Conference on Public Key Infrastructure, Services and Applications. Berlin: Springer, 2009: 195-208.
[3] TANG Y, LEE P, LUI J. Secure overlay cloud storage with access control and assured deletion [J]. IEEE Transactions on Dependable and Secure Computing, 2012, 9(6): 903-916.
[4] 張坤,楊超,馬建峰,等.基于密文采樣分片的云端數(shù)據(jù)確定性刪除方法[J].通信學報,2015,36(11):108-117.(ZHANG K, YANG C, MA J F, et al. Novel cloud data assured deletion approach based on ciphertext sample slice [J]. Journal on Communications, 2015,36(11):108-117.)
[5] 曹景源,李立新,李全良,等.云存儲環(huán)境下生命周期可控的數(shù)據(jù)銷毀模型[J].計算機應(yīng)用,2017,37(5):1335-1340.(CAO J Y, LI L X, LI Q L, et al. Data destruction model for cloud storage based on lifecycle control [J]. Journal of Computer Applications, 2017, 37(5): 1335-1340.)
[6] XIONG J B, LI F H, MA J F, et al. A full lifecycle privacy protection scheme for sensitive data in cloud computing [J]. Peer-to-Peer Networking and Applications, 2015, 8(6): 1025-1037.
[7] GEAMBASU R, KOHNO T, LEVY A, et al. Vanish: increasing data privacy with self-destructing data [C]// Proceedings of the 2009 ACM Conference on USENIX Security Symposium. Berkeley, CA: USENIX Association, 2009: 299-316.
[8] ZENG L, SHI Z, XU S, et al. SafeVanish: an improved data self-destruction for protecting data privacy [C]// Proceedings of the 2010 IEEE International Conference on Cloud Computing Technology and Science. Piscataway, NJ: IEEE, 2010: 521-528.
[9] 王麗娜,任正偉,余榮威,等.一種適于云存儲的數(shù)據(jù)確定性刪除方法[J].電子學報,2012,40(2):266-272.(WANG L N, REN Z W, YU R W, et al. A data assured deletion approach adapted for cloud storage [J]. Acta Electronica Sinica, 2012, 40(2): 266-272.)
[10] LI C L, CHEN Y, ZHOU Y Z. A data assured deletion scheme in cloud storage [J]. China Communications, 2014, 11(4): 98-110.
[11] 熊金波,姚志強,馬建峰,等.面向網(wǎng)絡(luò)內(nèi)容隱私的基于身份加密的安全自毀方案[J].計算機學報,2014,37(1):140-150.(XIONG J B, YAO Z Q, MA J F, et al. A secure self-destruction scheme with IBE for the Internet content privacy [J]. Chinese Journal of Computers, 2014, 37(1): 140-150.)
[12] 熊金波,姚志強,馬建峰,等.基于屬性加密組合文檔安全自毀方案[J].電子學報,2014,42(2):366-376.(XIONG J B, YAO Z Q, MA J F, et al. A secure self-destruction scheme for composite document with attribute based encryption [J]. Acta Electronica Sinica, 2014, 42(2): 366-376.)
[13] WHITE T, CUTTING D. Hadoop: The Definitive Guide [M]. Sebastopol: O’reilly Media, 2009: 44-67.
[14] DABEK F. A distributed Hash table [D]. Boston: Massachusetts Institute of Technology, 2006: 20-84.
[15] RHEA S, GODFREY B, KARP B, et al. OpenDHT: a public DHT service and its uses [C]// Proceedings of the 2005 ACM Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications. New York: ACM, 2005: 73-84.
[16] FALKNER J, PIATEK M, JOHN J P, et al. Profiling a million user DHT [C]// Proceedings of the 2007 ACM Conference on Internet Measurement. New York: ACM, 2007: 129-134.
[17] 彭巧,田有亮.基于多線性Diffie-Hellman問題的秘密共享方案[J].電子學報,2017,45(1):200-205.(PENG Q, TIAN Y L. A secret sharing scheme based on multilinear Diffie-Hellman problem [J]. Acta Electronica Sinica, 2017, 45(1): 200-205.)
[18] 竇文,王懷民,賈焰,等.構(gòu)造基于推薦的Peer-to-Peer環(huán)境下的Trust模型[J].軟件學報,2004,15(4):571-583.(DOU W, WANG H M, JIA Y, et al. A recommendation-based Peer-to-Peer trust model [J]. Journal of Software, 2004, 15(4): 571-583.)
[19] 馮貴蘭,譚良.基于信任度的云存儲數(shù)據(jù)確定性刪除方案[J].計算機科學,2014,41(6):108-112.(FENG G L, TAN L. Data assured deletion scheme based on trust value for cloud storage [J]. Computer Science, 2014, 41(6): 108-112.)
[20] GUO Y, RAO J, CHENG D, et al. IShuffle: improving Hadoop performance with shuffle-on-write [J]. IEEE Transactions on Parallel and Distributed Systems, 2017, 28(6): 1649-1662.
This work is partially supported by the National Natural Science Foundation of China (61402109,61370078), the Natural Science Foundation of Fujian Province(2015J05120), the Distinguished Young Scientific Research Talents Plan in Universities of Fujian Province.
WANGMinshen, born in 1994, M. S. candidate. His research interests include trust evaluation, data security.
XIONGJinbo, born in 1981, Ph. D., associate professor. His research interests include cloud data security, privacy protection.
LINQian, born in 1993. Her research interests include data security.