王敏燊,熊金波,林 倩,王麗麗
(福建師范大學(xué) 數(shù)學(xué)與信息學(xué)院,福州 350117)(*通信作者電子郵箱jinbo810@163.com)
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的快速發(fā)展與大數(shù)據(jù)時(shí)代的到來(lái),云計(jì)算服務(wù)為人們帶來(lái)了極大的方便。計(jì)算能力強(qiáng)、成本低、存儲(chǔ)空間大、部署靈活且可擴(kuò)展性強(qiáng)的云計(jì)算服務(wù),被越來(lái)越多用戶關(guān)注與使用。用戶一旦將個(gè)人數(shù)據(jù)上傳到云端,云數(shù)據(jù)的所有權(quán)與管理權(quán)分離,導(dǎo)致用戶失去對(duì)數(shù)據(jù)完全控制權(quán)。如果云數(shù)據(jù)過(guò)期后不及時(shí)刪除,“誠(chéng)實(shí)且好奇”的云服務(wù)提供商可能在利益的驅(qū)使或法律的強(qiáng)迫下泄露隱私數(shù)據(jù);另外,還存在攻擊者從云服務(wù)器中竊取數(shù)據(jù),并使用蠻力破解等方法破解密文的風(fēng)險(xiǎn)。如:據(jù)消費(fèi)者權(quán)益保障協(xié)會(huì)報(bào)道,有些網(wǎng)站收集達(dá)到7億多用戶的個(gè)人數(shù)據(jù)未能及時(shí)刪除,導(dǎo)致用戶的隱私信息被泄露;雅虎數(shù)據(jù)庫(kù)被攻擊,導(dǎo)致10億用戶信息被盜,這些信息包括:用戶名字、電話號(hào)碼、出生日期、密碼和密保信息等。云數(shù)據(jù)在授權(quán)期后,面臨的隱私泄露問(wèn)題亟需解決,因此,云數(shù)據(jù)確定性刪除的研究對(duì)云數(shù)據(jù)的隱私保護(hù)具有重要的意義。
為確保數(shù)據(jù)的機(jī)密性,通常先將數(shù)據(jù)加密,再上傳到云端?,F(xiàn)有關(guān)于云數(shù)據(jù)確定性刪除的方法可分為集中式密鑰管理和分散式密鑰管理兩種方法[1]。
集中式密鑰管理方法有:文獻(xiàn)[2]提出了一種Timed-Ephemerizer的確定性刪除方法,通過(guò)第三方密鑰管理服務(wù)器產(chǎn)生公鑰對(duì)數(shù)據(jù)密鑰加密,并設(shè)定數(shù)據(jù)的生命周期。數(shù)據(jù)過(guò)期后,密鑰管理服務(wù)器刪除私鑰,進(jìn)而數(shù)據(jù)密鑰和密文都無(wú)法解密。文獻(xiàn)[3]提出了一種基于訪問(wèn)策略的確定性刪除方法,將數(shù)據(jù)分別關(guān)聯(lián)一條訪問(wèn)策略或多條訪問(wèn)策略的布爾組合,再用訪問(wèn)策略對(duì)應(yīng)的控制密鑰加密數(shù)據(jù)密鑰,通過(guò)撤銷訪問(wèn)策略并刪除控制密鑰使數(shù)據(jù)密鑰和密文無(wú)法解密。文獻(xiàn)[4]提出了一種基于密文抽樣分塊的確定性刪除方案,對(duì)完整密文進(jìn)行抽樣處理,將密文分成抽樣密文和不完整密文。密鑰、抽樣密文以及抽樣密文的位置索引交于可信第三方管理,通過(guò)可信第三方銷毀密鑰和抽樣密文實(shí)現(xiàn)云數(shù)據(jù)的確定性刪除。文獻(xiàn)[5]使用全有或全無(wú)轉(zhuǎn)換(All Or Nothing Transform, AONT)算法實(shí)現(xiàn)云數(shù)據(jù)的刪除。云數(shù)據(jù)過(guò)期后,刪除包含密鑰和AONT算法生成的密文塊等信息的封裝對(duì)象,使密文無(wú)法解密。集中式密鑰管理的方法過(guò)于依賴密鑰管理服務(wù)器,當(dāng)?shù)谌椒?wù)器失效,密鑰就無(wú)法正常刪除[6]。
分散式密鑰管理方法有:文獻(xiàn)[7]使用(n,t)門限秘密共享算法將數(shù)據(jù)密鑰分成n個(gè)子密鑰分布到分布式哈希表(Distributed Hash Table, DHT)網(wǎng)絡(luò)節(jié)點(diǎn)上存儲(chǔ)。DHT網(wǎng)絡(luò)具有周期性更新的功能,因此,DHT網(wǎng)絡(luò)更新前,能夠提取子密鑰重構(gòu)出密鑰;DHT網(wǎng)絡(luò)更新后,節(jié)點(diǎn)上的子密鑰被刪除。當(dāng)n-t+1個(gè)子密鑰被刪除,密鑰就無(wú)法重構(gòu),進(jìn)而無(wú)法解密密文。文獻(xiàn)[8]基于文獻(xiàn)[7]對(duì)秘密共享算法進(jìn)行了改進(jìn),擴(kuò)展子密鑰的長(zhǎng)度和數(shù)量抵御DHT網(wǎng)絡(luò)中存在的跳躍攻擊。文獻(xiàn)[9]提出了一種基于DHT網(wǎng)絡(luò)和密鑰派生樹(shù)的確定性刪除方法,將密鑰通過(guò)轉(zhuǎn)換函數(shù)生成派生樹(shù)密鑰,然后將派生樹(shù)密鑰分發(fā)到DHT網(wǎng)絡(luò)節(jié)點(diǎn)上,通過(guò)節(jié)點(diǎn)周期性更新功能刪除派生樹(shù)密鑰,實(shí)現(xiàn)云數(shù)據(jù)確定性刪除。該方案節(jié)省了用戶管理密鑰的開(kāi)銷,能防御跳躍攻擊和嗅探攻擊,但沒(méi)解決密文面臨的蠻力攻擊問(wèn)題且增加了計(jì)算開(kāi)銷。文獻(xiàn)[10-12]的方案中密鑰通過(guò)秘密共享算法分成多份子密鑰,完整密文經(jīng)過(guò)抽樣后,得到不完整密文和抽樣密文塊,再將子密鑰和抽樣密文組合分發(fā)到DHT網(wǎng)絡(luò)節(jié)點(diǎn)上存儲(chǔ),利用DHT網(wǎng)絡(luò)的功能刪除子密鑰和抽樣密文,進(jìn)而實(shí)現(xiàn)云數(shù)據(jù)的確定性刪除。上述方法沒(méi)考慮DHT網(wǎng)絡(luò)中存在惡意節(jié)點(diǎn)導(dǎo)致的風(fēng)險(xiǎn),如:惡意節(jié)點(diǎn)沒(méi)有周期性刪除子密鑰,甚至泄露和偽造子密鑰等,這將導(dǎo)致無(wú)法重構(gòu)正確的密鑰和密鑰泄露的風(fēng)險(xiǎn)。另外,現(xiàn)有的研究?jī)H通過(guò)刪除密鑰使密文無(wú)法解密來(lái)達(dá)到刪除云數(shù)據(jù)的目的,并未完全刪除云端密文,攻擊者可以通過(guò)密文分析和蠻力破解等方法破解云端密文。
針對(duì)現(xiàn)有研究存在的問(wèn)題,本文提出一種基于分散式密鑰管理方法的云數(shù)據(jù)確定性刪除方案,與現(xiàn)有方案區(qū)別為本文方案基于秘密共享算法、DHT網(wǎng)絡(luò)實(shí)現(xiàn)密鑰管理,再結(jié)合信任值評(píng)估模型、隨機(jī)抽樣算法和覆寫算法實(shí)現(xiàn)云數(shù)據(jù)的確定性刪除。本文主要貢獻(xiàn)如下:提出一種基于密鑰分發(fā)和密文抽樣的云數(shù)據(jù)確定性刪除方案。該方案中使用隨機(jī)抽樣算法抽樣密文,使云端密文不完整,能有效抵御云數(shù)據(jù)生命周期內(nèi)攻擊者的密碼分析和蠻力破解;使用DHT網(wǎng)絡(luò)實(shí)現(xiàn)密鑰的定期自動(dòng)刪除,通過(guò)信任值評(píng)估模型評(píng)估DHT網(wǎng)絡(luò)各節(jié)點(diǎn)的信任值,能有效防止DHT網(wǎng)絡(luò)中惡意節(jié)點(diǎn)對(duì)密鑰的不定期刪除、泄露和偽造等行為;上傳隨機(jī)數(shù)據(jù)覆寫密文,實(shí)現(xiàn)密文的及時(shí)刪除,避免了攻擊者重構(gòu)密鑰和密文、蠻力攻擊等的風(fēng)險(xiǎn);通過(guò)安全性分析與實(shí)驗(yàn)分析證明所提方案是安全和高效的。
Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System, HDFS)能存儲(chǔ)和處理大數(shù)據(jù)集,具有擴(kuò)展性高、冗余存儲(chǔ)和容錯(cuò)性強(qiáng)等特點(diǎn)[13]。主要由3個(gè)部分組成:
1)NameNode,系統(tǒng)管理節(jié)點(diǎn)。管理HDFS中的文件目錄、映射和屬性等,能接收用戶讀寫請(qǐng)求、記錄日志和配置副本策略。
2)SecondaryNameNode,NameNode的備份節(jié)點(diǎn)。保證NameNode失效時(shí),數(shù)據(jù)的存儲(chǔ)過(guò)程不會(huì)中斷,數(shù)據(jù)不會(huì)丟失。
3)DataNode,數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。負(fù)責(zé)存儲(chǔ)數(shù)據(jù)。HDFS將上傳的數(shù)據(jù)分成多份數(shù)據(jù)塊存儲(chǔ)在不同數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上。DataNode與NameNode相互協(xié)調(diào)實(shí)現(xiàn)數(shù)據(jù)塊的讀寫。當(dāng)用戶通過(guò)NameNode上傳數(shù)據(jù)到DataNode時(shí),NameNode會(huì)反饋校驗(yàn)文件.meta給用戶;當(dāng)用戶發(fā)出數(shù)據(jù)請(qǐng)求并獲取數(shù)據(jù)內(nèi)容后,會(huì)將從DataNode處獲取到的數(shù)據(jù)與相應(yīng)的校驗(yàn)和與文件中的校驗(yàn)和進(jìn)行匹配,如果不匹配,用戶可以從其他DataNode獲取相對(duì)應(yīng)數(shù)據(jù)塊的副本。
密文抽樣合成模型分為隨機(jī)抽樣縮減和合成兩個(gè)過(guò)程[4]。抽樣縮減過(guò)程:通過(guò)隨機(jī)抽樣算法對(duì)密文的序列塊隨機(jī)抽樣,生成不完整密文、抽樣密文及其位置索引,如圖1所示。由于文件流的I/O操作效率較低,因此只對(duì)密文中抽樣密文對(duì)應(yīng)位置的序列塊進(jìn)行混淆處理。假設(shè)完整密文為C={x1,x2,…,xn},bi為第i次抽樣的比特?cái)?shù),f為抽樣的次數(shù)。如:隨機(jī)抽樣次數(shù)f=3,從C中抽出C2={x3,x7,xn-2},算法生成隨機(jī)序列P={p3,p7,pn-2}用于填充C2,pi與bi長(zhǎng)度相同。抽樣后得到不完整密文C1={x1,x2,…,xn-1,xn}、C2={x3,x7,xn-2}及其位置索引L。合成過(guò)程:根據(jù)L將C2中序列塊覆蓋C1中隨機(jī)序列P,合成完整密文C。
圖1 密文隨機(jī)抽樣
DHT網(wǎng)絡(luò)是一種分布式存儲(chǔ)網(wǎng)絡(luò)[14]。DHT網(wǎng)絡(luò)具有以下3個(gè)特性:
1)可用性。DHT網(wǎng)絡(luò)能夠?qū)?shù)據(jù)分散存儲(chǔ)到不同節(jié)點(diǎn)上,保證部分節(jié)點(diǎn)退出網(wǎng)絡(luò)后,存儲(chǔ)在其他節(jié)點(diǎn)上的數(shù)據(jù)仍能被提取。
2)大規(guī)模且分布范圍廣。VuzeDHT網(wǎng)絡(luò)中的活動(dòng)節(jié)點(diǎn)已達(dá)到了數(shù)百萬(wàn)個(gè),并且地理分布涉及全球近兩百個(gè)國(guó)家和地區(qū)。非集中的分布方式使DHT網(wǎng)絡(luò)具有良好的健壯性和抗攻擊能力。
3)定期更新清除功能。只需設(shè)置DHT網(wǎng)絡(luò)的更新周期,DHT網(wǎng)絡(luò)能定期自動(dòng)清除節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù),釋放空間存儲(chǔ)新的數(shù)據(jù)。如:實(shí)驗(yàn)表明OpenDHT可自主選擇節(jié)點(diǎn)更新周期[15];VuzeDHT網(wǎng)絡(luò)的自動(dòng)更新周期為8 h,超過(guò)更新周期,節(jié)點(diǎn)上的數(shù)據(jù)將被清除[16]。
秘密共享方案(Shamir Secret Sharing, SSS)是一種將密鑰分成若干份分散式管理的方法[17]。原理是將密鑰分成n份子密鑰;至少擁有t個(gè)子密鑰,才能通過(guò)拉格朗日多項(xiàng)式重構(gòu)出密鑰;少于t個(gè)無(wú)法重構(gòu)密鑰。秘密共享方案能有效地解決直接將密鑰存儲(chǔ)在DHT網(wǎng)絡(luò)節(jié)點(diǎn)上導(dǎo)致密鑰高丟失率和不可用性的問(wèn)題。通過(guò)自主設(shè)置門限閾值n、t找到密鑰分片長(zhǎng)度和分片數(shù)量之間的平衡,能有效地抵御DHT網(wǎng)絡(luò)中的跳躍攻擊。
信任值評(píng)估模型是一種評(píng)估DHT網(wǎng)絡(luò)節(jié)點(diǎn)信任值的方法[18-19]。在用戶與節(jié)點(diǎn)的交互過(guò)程中,根據(jù)節(jié)點(diǎn)反饋數(shù)據(jù)是否及時(shí)、數(shù)據(jù)的正確性和是否定期刪除數(shù)據(jù)三方面指標(biāo)評(píng)價(jià)該節(jié)點(diǎn)的信任值。令用戶u與節(jié)點(diǎn)id進(jìn)行交互,fi(u,id)表示第i次數(shù)據(jù)交互的評(píng)價(jià)值。如果節(jié)點(diǎn)id滿足上述三方面指標(biāo),則fi(u,id)=1;全不滿足,則fi(U,v)=0;否則根據(jù)滿足的程度在(0,1)中取值。統(tǒng)計(jì)u與id進(jìn)行n次交互的評(píng)價(jià)值,結(jié)合節(jié)點(diǎn)原有的信任值q,計(jì)算節(jié)點(diǎn)的局部信任值vuid,表示為:
(1)
當(dāng)n=0時(shí),用戶和節(jié)點(diǎn)未交互,則vuid為0。每計(jì)算一次vuid后,將其存儲(chǔ)節(jié)點(diǎn)管理處。當(dāng)k個(gè)用戶與id交互后,節(jié)點(diǎn)id的全局信任值Vid表示為:
(2)
首先列出本文方案所用符號(hào)及其描述,如表1所示。然后給出所提方案的系統(tǒng)模型、安全假設(shè)、模型概述、具體實(shí)現(xiàn)流程和算法描述。
基于密鑰分發(fā)和密文抽樣的云數(shù)據(jù)確定性刪除方案的系統(tǒng)模型,如圖2所示。該模型由數(shù)據(jù)擁有者(Data Owner)、基于HDFS的云服務(wù)器、DHT網(wǎng)絡(luò)和數(shù)據(jù)使用者(Data User)組成。
表1 本文方案符號(hào)和描述
數(shù)據(jù)擁有者(Data Owner) 擁有大量數(shù)據(jù),選擇云服務(wù)器存儲(chǔ)數(shù)據(jù)。為防止用戶的個(gè)人隱私泄露,需要對(duì)數(shù)據(jù)進(jìn)行加密,再上傳到云端。
基于HDFS的云服務(wù)器 根據(jù)用戶要求操作數(shù)據(jù)。為數(shù)據(jù)擁有者提供存儲(chǔ)服務(wù),提供數(shù)據(jù)給數(shù)據(jù)使用者下載。
DHT網(wǎng)絡(luò) 用于存儲(chǔ)子密鑰,子密鑰的生命周期過(guò)期后,節(jié)點(diǎn)自動(dòng)刪除子密鑰。
數(shù)據(jù)使用者(Data User) 有權(quán)享有數(shù)據(jù)擁有者的數(shù)據(jù)用于其他用途,能夠遵守?cái)?shù)據(jù)擁有者的隱私保護(hù)要求,不會(huì)泄露隱私信息。
圖2 系統(tǒng)模型
為實(shí)現(xiàn)方案構(gòu)造的安全性,作以下安全假設(shè):
1)“誠(chéng)實(shí)且好奇”的云服務(wù)提供商。向用戶提供存儲(chǔ)計(jì)算服務(wù)并能按用戶要求處理數(shù)據(jù),但可能受利益驅(qū)使窺探用戶的個(gè)人數(shù)據(jù),或被迫將數(shù)據(jù)提交給法律機(jī)構(gòu)等實(shí)體。
2)安全信道。保障數(shù)據(jù)擁有者和數(shù)據(jù)使用者之間的通信安全,防止秘密信息傳輸時(shí)被攻擊者截取。
3)可信的數(shù)據(jù)使用者。數(shù)據(jù)使用者不會(huì)主動(dòng)泄露密鑰和明文。使用完數(shù)據(jù)后,能按照數(shù)據(jù)擁有者的要求完全刪除密鑰、明文和密文等。
本文所提方案可分為4個(gè)階段:
第1階段 明文加密和密文抽樣。數(shù)據(jù)擁有者使用AES(Advanced Encryption Standard)256算法將F加密成C。使用隨機(jī)抽樣算法對(duì)C進(jìn)行抽樣,生成C1和C2。然后將C1上傳到HDFS中。
第2階段 密鑰分發(fā)和提取。使用信任值評(píng)估模型評(píng)估DHT網(wǎng)絡(luò)節(jié)點(diǎn)的信任值,記錄具有高信任值的節(jié)點(diǎn)id。密鑰通過(guò)秘密共享算法分成n份子密鑰,子密鑰根據(jù)ID分發(fā)到DHT網(wǎng)絡(luò)中。然后將C2、L、URL和ID封裝成封裝體E。當(dāng)數(shù)據(jù)使用者請(qǐng)求數(shù)據(jù)時(shí),先通過(guò)安全信道獲取E,解封裝E得C2、L、URL和ID。數(shù)據(jù)使用者依據(jù)ID從DHT網(wǎng)絡(luò)中的節(jié)點(diǎn)上提取子密鑰,在DHT網(wǎng)絡(luò)的更新周期內(nèi),即云數(shù)據(jù)的生命期,可提取足夠多的子密鑰重構(gòu)出密鑰。
第3階段 密文合成和解密。數(shù)據(jù)使用者向云服務(wù)器發(fā)送身份認(rèn)證信息請(qǐng)求數(shù)據(jù)。云服務(wù)器通過(guò)身份驗(yàn)證后,提供與URL對(duì)應(yīng)的C1給數(shù)據(jù)使用者下載。然后根據(jù)L將C2與C1合成C,再用密鑰解密C。
第4階段 密鑰和密文刪除。云數(shù)據(jù)過(guò)期后,密鑰通過(guò)DHT網(wǎng)絡(luò)周期性更新功能自動(dòng)刪除。密文通過(guò)調(diào)用HDFS接口,上傳隨機(jī)數(shù)據(jù)覆寫實(shí)現(xiàn)刪除。
2.4.1 明文加密抽樣處理
1)setup(k)→(Skey,f,b,n,t),初始化算法??蛻舳溯斎氚踩珔?shù)k通過(guò)初始化算法生成AES256對(duì)稱加密算法的密鑰Skey、密文抽樣的次數(shù)f、抽樣的數(shù)據(jù)大小b、秘密共享方案生成子密鑰個(gè)數(shù)n和重構(gòu)密鑰的門限值t。
2)AESEnc(F,Skey)→(C),AES256加密算法。明文數(shù)據(jù)F通過(guò)AES256對(duì)稱加密算法加密成密文C。
3)DataExtract(C,b,f)→(C1,C2,L),密文抽樣算法。對(duì)完整密文C進(jìn)行抽樣縮減,抽樣的數(shù)據(jù)量為b比特,經(jīng)過(guò)f次抽樣后得到抽樣密文C2、C2的位置索引L和不完整密文C1。
4)DataUpload(C1)→(URL),數(shù)據(jù)上傳。不完整密文C1通過(guò)HDFS提供的接口上傳,上傳完成后,HDFS將數(shù)據(jù)存儲(chǔ)的位置信息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);
//對(duì)數(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}),信任值評(píng)估算法。從DHT網(wǎng)絡(luò)選取m個(gè)節(jié)點(diǎn)作為候選節(jié)點(diǎn),發(fā)送隨機(jī)數(shù)據(jù)與候選節(jié)點(diǎn)交互。根據(jù)節(jié)點(diǎn)反饋數(shù)據(jù)的情況,記錄其中n個(gè)具有高信任值的節(jié)點(diǎn)的隨機(jī)種子ID={id1,id2,…,idn}。
2)SSShare(Skey)→({Skey1,Skey2,…,Skeyn}),密鑰分發(fā)算法。通過(guò)(n,t)秘密共享算法將密鑰分成n個(gè)子密鑰Skey={Skey1,Skey2,…,Skeyn}。
3)KeyDistribute({Skey1,Skey2,…,Skeyn},ID),密鑰分發(fā)算法。根據(jù)信任值評(píng)估算法選取的節(jié)點(diǎn)的隨機(jī)種子ID,將子密鑰分別存儲(chǔ)到DHT網(wǎng)絡(luò)的節(jié)點(diǎn)上。
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ò)中提取子密鑰。提取子密鑰后,對(duì)其進(jìn)行正確性驗(yàn)證,正確則記為滿意;不正確則記錄不滿意,繼續(xù)從DHT網(wǎng)絡(luò)其他節(jié)點(diǎn)中獲取子密鑰。直到獲取到至少t個(gè)正確的子密鑰。根據(jù)節(jié)點(diǎn)反饋的子密鑰的正確性和及時(shí)性等情況,用信任值評(píng)估算法計(jì)算節(jié)點(diǎn)的信任值。最后將各節(jié)點(diǎn)的新信任值存儲(chǔ)到節(jié)點(diǎn)管理處。
7)SSRecover({Skey1,Skey2,…,Skeyn})→(Skey),密鑰重構(gòu)算法。將t個(gè)正確子密鑰通過(guò)秘密共享算法重構(gòu)出密鑰Skey。
密鑰分發(fā)偽代碼如下:
public function Distribute(Skey)
({Skey1,Skey2,…,Skeyn}) ←SSShare(Skey);
for(u=1;u<=k;u++)
//選取節(jié)點(diǎn)
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ù)擁有者通過(guò)URL從云服務(wù)器中下載不完整密文C1。
2)DataRecover(C1,C2,L)→(C),密文合成算法。根據(jù)位置索引L將抽樣密文C2與不完整的密文C1組合成完整密文C。
3)AESDec(C,Skey)→(F),AES256解密算法。使用密鑰Skey解密C,恢復(fù)出明文F。
偽代碼如下:
Input:C1,C2,L,Skey
Output:F
C←DataRecover(C1,C2,L);
//恢復(fù)完整密文
if (DataRecover(C1,C2,L)=0)
//沒(méi)有合成完整密文
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);
//恢復(fù)的明文數(shù)據(jù)
end
2.4.4 密鑰和密文刪除處理
云數(shù)據(jù)的生命周期過(guò)后,DHT網(wǎng)絡(luò)自動(dòng)刪除子密鑰,攻擊者無(wú)法提取至少t個(gè)子密鑰重構(gòu)密鑰,進(jìn)而實(shí)現(xiàn)密鑰的刪除。通過(guò)覆寫方法實(shí)現(xiàn)密文的刪除。
1)DataOW(C1,URL,r),數(shù)據(jù)覆寫算法。調(diào)用HDFS的接口上傳隨機(jī)數(shù)據(jù)r,對(duì)不完整密文C1進(jìn)行多次覆寫。覆寫偽代碼如下:
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ī)抽樣的安全性、算法的安全性和方案整體的安全性進(jìn)行分析,然后與經(jīng)典方案從加密算法、抗攻擊能力等方面進(jìn)行對(duì)比。通過(guò)算法的計(jì)算復(fù)雜度分析方案的性能,并通過(guò)實(shí)驗(yàn)驗(yàn)證方案的可行性。
1)DHT網(wǎng)絡(luò)的安全性。文獻(xiàn)[7-9,11,19]將子密鑰分發(fā)到網(wǎng)絡(luò)節(jié)點(diǎn)上,利用DHT網(wǎng)絡(luò)節(jié)點(diǎn)刪除密鑰。這種方式雖然避免了密鑰管理第三方存在的泄露風(fēng)險(xiǎn),但也存在不足。如:文獻(xiàn)[7]中所提的方案存在由嗅探攻擊和跳躍攻擊導(dǎo)致的密鑰泄露問(wèn)題,原因是分發(fā)到DHT網(wǎng)絡(luò)節(jié)點(diǎn)上的子密鑰較短且長(zhǎng)度固定。為了防止嗅探攻擊和跳躍攻擊。文獻(xiàn)[8]使用非對(duì)稱加密算法的公鑰加密數(shù)據(jù)密鑰,然后分發(fā)到DHT網(wǎng)絡(luò)節(jié)點(diǎn)中。假設(shè)攻擊者能提取足夠多的子密鑰,但沒(méi)有與數(shù)據(jù)密鑰對(duì)應(yīng)的私鑰,也無(wú)法解密出數(shù)據(jù)密鑰。文獻(xiàn)[9]使用密鑰派生樹(shù)管理密鑰,攻擊者不知道派生樹(shù)密鑰的變換函數(shù),因此,能夠有效抵御嗅探攻擊和跳躍攻擊。文獻(xiàn)[19]先對(duì)DHT網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行信任值評(píng)估,再將密鑰分發(fā)到具有較高信任值的節(jié)點(diǎn)上,以減少惡意節(jié)點(diǎn)泄露子密鑰的風(fēng)險(xiǎn)。本文方案不但考慮節(jié)點(diǎn)的信任值評(píng)估,而且在密鑰分發(fā)時(shí),保證了子密鑰的長(zhǎng)度和數(shù)目,這能有效地防止惡意節(jié)點(diǎn)對(duì)子密鑰的泄露、篡改等行為,并能抵御嗅探攻擊和跳躍攻擊。本文方案和現(xiàn)有方案的對(duì)比,如表2所示。
表2 幾種相關(guān)方案對(duì)比分析
3)算法的安全性。本文方案中采用的密鑰共享方案的安全性是基于多線性離散對(duì)數(shù)和多線性Diffie-Hellman難解性的,因此密鑰分發(fā)和恢復(fù)過(guò)程的安全性可得到保證[17]。因?yàn)楣粽邔?duì)密文進(jìn)行蠻力攻擊在多項(xiàng)式時(shí)間內(nèi)無(wú)法破解AES256算法,所以AES256加密算法保證了云數(shù)據(jù)在生命周期內(nèi)的安全。云數(shù)據(jù)過(guò)期后,密文通過(guò)覆寫算法實(shí)現(xiàn)刪除,因此,攻擊者無(wú)法解密出明文。
4)系統(tǒng)整體的安全性。本文方案采用AES256加密算法加密明文,通過(guò)隨機(jī)抽樣算法使上傳到云端的密文不完整,能抵御攻擊者的蠻力攻擊。利用DHT網(wǎng)絡(luò)的周期性更新功能刪除密鑰,避免了密鑰管理第三方的密鑰泄露風(fēng)險(xiǎn)。采用信任值評(píng)估模型評(píng)估DHT網(wǎng)絡(luò)節(jié)點(diǎn)并選擇信任值高的節(jié)點(diǎn)存儲(chǔ)子密鑰,能有效地防止惡意節(jié)點(diǎn)對(duì)子密鑰不定期刪除、泄露、篡改等行為。隨著計(jì)算機(jī)計(jì)算能力的提高,存儲(chǔ)在云端的密文依然存在被蠻力破解的風(fēng)險(xiǎn)。云數(shù)據(jù)過(guò)期后,調(diào)用HDFS接口上傳隨機(jī)數(shù)據(jù),對(duì)云端的密文進(jìn)行多次覆寫,進(jìn)而實(shí)現(xiàn)密文的刪除。所以從理論上分析,本文方案能有效保證云數(shù)據(jù)安全。
本文主要從系統(tǒng)流程的4個(gè)階段分析客戶端、云服務(wù)器和DHT網(wǎng)絡(luò)中的計(jì)算復(fù)雜度。
階段1 使用AES256算法加密明文F的復(fù)雜度為O(lF)·AES;密文抽樣算法的復(fù)雜度為O(b)·f。
階段2 信任值評(píng)估算法評(píng)估DHT網(wǎng)絡(luò)中m個(gè)節(jié)點(diǎn)的復(fù)雜度為O(m);秘密共享方案產(chǎn)生子密鑰的復(fù)雜度為O(lSkey)·SSShare;通過(guò)秘密共享算法重構(gòu)密鑰的復(fù)雜度為O(lSkey)·SSRecover。
階段3 合成完整密文的復(fù)雜度均為O(b)·f;解密密文的復(fù)雜度為O(lF)·AES。
階段4n個(gè)子密鑰通過(guò)DHT網(wǎng)絡(luò)節(jié)點(diǎn)刪除的復(fù)雜度O(lSkeyi)·n,數(shù)據(jù)擁有者調(diào)用接口,上傳隨機(jī)數(shù)據(jù)進(jìn)行一次密文覆寫的復(fù)雜度O(lC1)·OW。
密文抽樣的抽樣次數(shù)少且每次抽樣的數(shù)據(jù)量很小,因此,數(shù)據(jù)抽樣和合成的復(fù)雜度不高。秘密共享算法由于密鑰的數(shù)據(jù)量不大,進(jìn)行密鑰分片和重構(gòu)的復(fù)雜度也不高。由云服務(wù)器進(jìn)行密文覆寫,因此,當(dāng)數(shù)據(jù)量大時(shí),客戶端最主要的開(kāi)銷是明文加密和密文解密的開(kāi)銷,由于本文采用是對(duì)稱加密算法,所以客戶端加解密的計(jì)算開(kāi)銷在可承受的范圍內(nèi)。各階段開(kāi)銷分析,如表3所示。
表3中:lF表示明文F的長(zhǎng)度,AES表示對(duì)稱加密運(yùn)算,lC1為不完整密文的長(zhǎng)度,m為計(jì)算信任度的節(jié)點(diǎn)個(gè)數(shù),SSS表示SSShare+SSRecover運(yùn)算,lSkey,lSkeyi表示密鑰和密鑰分量長(zhǎng)度,OW表示覆寫運(yùn)算。
表3 本文方案復(fù)雜度分析
實(shí)驗(yàn)主要通過(guò)統(tǒng)計(jì)不同大小的數(shù)據(jù)的加解密和抽樣的時(shí)間開(kāi)銷、不同大小的數(shù)據(jù)上傳到HDFS中的時(shí)間開(kāi)銷以及子密鑰的提取成功率與時(shí)間的關(guān)系等來(lái)驗(yàn)證本文所提方案的可行性。
實(shí)驗(yà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。通過(guò)在Vmware-workstation 12.5.2虛擬機(jī)上創(chuàng)建兩臺(tái)虛擬機(jī),其中一臺(tái)是NameNode,另一臺(tái)是DataNode,完成分布式文件系統(tǒng)的構(gòu)建,實(shí)現(xiàn)數(shù)據(jù)的本地存儲(chǔ)轉(zhuǎn)發(fā)。使用NS2網(wǎng)絡(luò)仿真工具模擬DHT網(wǎng)絡(luò),模擬DHT網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)為50個(gè),設(shè)置數(shù)據(jù)生命周期為8 h。JDK版本采用Jdk- 8u111-linux-x64.gz,數(shù)據(jù)加密采用AES256加密算法,密鑰長(zhǎng)度為256比特??蛻舳说挠布渲脼镮ntel Core i5- 4200H處理器,4 GB內(nèi)存,操作系統(tǒng)Windows 10。
3.3.1 數(shù)據(jù)加密與解密
實(shí)驗(yàn)數(shù)據(jù)的取值范圍為64 MB~320 MB,總抽樣密文大小為64比特,設(shè)置每次抽樣b=16比特,采樣次數(shù)f=4。不同大小的數(shù)據(jù)的加密(Encrypt)、抽樣(Extract)和解密(Decrypt)的時(shí)間開(kāi)銷,如表4所示。實(shí)驗(yàn)發(fā)現(xiàn)數(shù)據(jù)的加解密時(shí)間開(kāi)銷不是很大,隨機(jī)抽樣比加密和解密的時(shí)間開(kāi)銷小很多。
表4 不同大小的數(shù)據(jù)加解密和抽樣的時(shí)間對(duì)比
3.3.2 密文上傳
客戶端將密文上傳到HDFS中。首先,設(shè)置數(shù)據(jù)的本地路徑和HDFS中存放的路徑,然后將本地?cái)?shù)據(jù)上傳到設(shè)置的文件夾中,刷新之后可看到HDFS中的數(shù)據(jù)。在數(shù)據(jù)上傳的過(guò)程中,監(jiān)測(cè)到上傳不同大小的數(shù)據(jù)時(shí)系統(tǒng)CPU、內(nèi)存(Mem)占用率的變化,如圖3所示。從圖中可知CPU占用率基本不變,內(nèi)存占用率會(huì)隨著存儲(chǔ)的數(shù)據(jù)越多而增大,但兩者的占用率都不是很大。
圖3 數(shù)據(jù)上傳時(shí)CPU和內(nèi)存的占用率
上傳不同大小的數(shù)據(jù)的時(shí)間開(kāi)銷,如圖4所示,上傳的時(shí)間開(kāi)銷隨著數(shù)據(jù)量的增大而增加,當(dāng)數(shù)據(jù)大小為320 MB時(shí),上傳時(shí)間大約為7.45 s,時(shí)間比較短,屬于可接受范圍內(nèi)。
圖4 數(shù)據(jù)上傳的時(shí)間
3.3.3 密鑰分發(fā)與重構(gòu)
密鑰隨機(jī)分成10個(gè)子密鑰,只要提取7個(gè)子密鑰就能重構(gòu)密鑰。然后根據(jù)信任值評(píng)估所選擇的信任值高的節(jié)點(diǎn)分發(fā)子密鑰,通過(guò)子密鑰的提取成功率和時(shí)間的關(guān)系確定密鑰是否被定期刪除。密鑰提取的成功率與時(shí)間的關(guān)系,如圖5所示。圖中前8 h密鑰提取的成功率約為100%,說(shuō)明根據(jù)節(jié)點(diǎn)信任值評(píng)估模型所選擇的節(jié)點(diǎn)幾乎可靠,不會(huì)中途退出網(wǎng)絡(luò)或惡意刪除子密鑰。8 h之后,子密鑰被刪除,密鑰提取成功率迅速下降,由此可知使用DHT網(wǎng)絡(luò)刪除密鑰是可行的。
圖5 不同時(shí)間的密鑰提取成功率
3.3.4 密鑰覆寫
密文覆寫采用數(shù)據(jù)流覆蓋的形式,不同大小的密文數(shù)據(jù)分別采用5字節(jié)的數(shù)據(jù)流覆寫,覆寫不同大小的數(shù)據(jù)所需的時(shí)間,如圖6所示。由于HDFS是將數(shù)據(jù)分塊存儲(chǔ),每塊的大小為固定值,不足固定值的數(shù)據(jù)塊按實(shí)際大小存儲(chǔ),因此,可以并行覆寫,所以相同字節(jié)的隨機(jī)數(shù)據(jù)對(duì)不同大小的密文數(shù)據(jù)進(jìn)行覆寫時(shí),覆寫的時(shí)間開(kāi)銷幾乎不變[20]。
圖6 密文覆寫的時(shí)間
云計(jì)算服務(wù)為用戶存儲(chǔ)數(shù)據(jù)提供了諸多方便,同時(shí)也導(dǎo)致了隱私泄露的問(wèn)題。針對(duì)DHT網(wǎng)絡(luò)惡意節(jié)點(diǎn)對(duì)子密鑰的不定期刪除、泄露和偽造等行為以及云端的完整密文被蠻力破解等問(wèn)題,本文提出了一種基于密鑰分發(fā)和密文抽樣的云數(shù)據(jù)確定性刪除方案,結(jié)合信任值評(píng)估模型、密文抽樣算法和覆寫算法實(shí)現(xiàn)云數(shù)據(jù)確定性刪除。從安全性分析表明,該方案能保證云數(shù)據(jù)的確定性刪除和防止隱私泄露,通過(guò)實(shí)驗(yàn)數(shù)據(jù)表明所提方案滿足隱私保護(hù)的前提下是高效可行的。
References)
[1] 熊金波,李鳳華,王彥超,等.基于密鑰學(xué)的云數(shù)據(jù)確定性刪除研究進(jìn)展[J].通信學(xué)報(bào), 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].通信學(xué)報(bào),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] 曹景源,李立新,李全良,等.云存儲(chǔ)環(huán)境下生命周期可控的數(shù)據(jù)銷毀模型[J].計(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] 王麗娜,任正偉,余榮威,等.一種適于云存儲(chǔ)的數(shù)據(jù)確定性刪除方法[J].電子學(xué)報(bào),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] 熊金波,姚志強(qiáng),馬建峰,等.面向網(wǎng)絡(luò)內(nèi)容隱私的基于身份加密的安全自毀方案[J].計(jì)算機(jī)學(xué)報(bào),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] 熊金波,姚志強(qiáng),馬建峰,等.基于屬性加密組合文檔安全自毀方案[J].電子學(xué)報(bào),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問(wèn)題的秘密共享方案[J].電子學(xué)報(bào),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].軟件學(xué)報(bào),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] 馮貴蘭,譚良.基于信任度的云存儲(chǔ)數(shù)據(jù)確定性刪除方案[J].計(jì)算機(jī)科學(xué),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.