梁勝昔 秦軍 宋蕾 王星
摘 要: 如何有效解決云計算中存在的安全問題是關(guān)系到云計算產(chǎn)業(yè)發(fā)展的關(guān)鍵。針對Hadoop云計算系統(tǒng)在數(shù)據(jù)共享中存在的安全問題,采用了一種基于RC4和RSA的混合加密保護(hù)方案,該方案在云存儲數(shù)據(jù)共享過程中,緊密結(jié)合Hadoop云計算系統(tǒng)的特性,能夠?qū)崿F(xiàn)數(shù)據(jù)的安全共享,同時兼顧保密性與效率。
關(guān)鍵詞: HDFS; 數(shù)據(jù)安全; RC4; RSA; 混合加密
中圖分類號:TP309.2 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2014)07-17-03
Abstract: Security is becoming a huge concern for users. How to solve the security problems has been the top priority for the cloud computing industry. In this paper, a hybrid encryption scheme based on RC4 and RSA is presented. This encryption addresses the security problems in data sharing of Hadoop system. Combined with the characteristics of Hadoop cloud computing system, the new approach ensures both the security and efficiency.
Key words: HDFS; data security; RC4; RSA; hybrid encryption
0 引言
2006年,Google首次提出“云計算”(Cloud Computing)的概念,云計算被看作是IT領(lǐng)域的第三次重要變革。Apache基金會在Google云模型的基礎(chǔ)上開發(fā)了著名的開源云計算平臺Hadoop,它實現(xiàn)了HDFS(分布式文件系統(tǒng))和MapReduce(編程模型)。云計算通過將計算分布在大量分布式計算機(jī)上,以按需服務(wù)模式向用戶提供計算力、存儲空間和應(yīng)用服務(wù),是一種具有極高“性價比”的資源。然而,用戶數(shù)據(jù)存儲在云環(huán)境中,由于其虛擬化的特點,用戶無法獲知存儲細(xì)節(jié),并且用戶信息的所有權(quán)與管理權(quán)相分離,這成為了用戶數(shù)據(jù)安全的潛在威脅[1]。據(jù)悉,用戶對托管在云端數(shù)據(jù)的安全性仍有擔(dān)憂,并認(rèn)為安全問題將成為云計算發(fā)展的巨大瓶頸[2-3]。本文主要分析了Hadoop云存儲中存在的數(shù)據(jù)安全問題,結(jié)合Hadoop系統(tǒng)的特性,設(shè)計了一種基于RC4和RSA的混合加密數(shù)據(jù)保護(hù)方案,該方案對靜態(tài)存儲在HDFS中的數(shù)據(jù)進(jìn)行混合加密,從而可有效地避免數(shù)據(jù)泄露問題。
1 Hadoop系統(tǒng)及其存在的安全問題
隨著大數(shù)據(jù)時代的到來,規(guī)模龐大的數(shù)據(jù)正成為人類新的資產(chǎn)和財富,如何針對海量數(shù)據(jù)進(jìn)行科學(xué)的處理已成為國家、企業(yè)應(yīng)對大數(shù)據(jù)時代的關(guān)鍵問題之一。Hadoop作為世界上著名的開源云計算系統(tǒng),將對海量數(shù)據(jù)的存儲和處理提供極大支持和便利。但Hadoop系統(tǒng)本身存在的安全問題不容忽視,成為人們對其應(yīng)用的重要考量。
1.1 Hadoop主要結(jié)構(gòu)分析
Hadoop是由Apache基金會發(fā)展的開源云計算系統(tǒng),是一個在計算機(jī)集群上使用簡單編程模型來處理大數(shù)據(jù)集的軟件框架,其中的海量數(shù)據(jù)分別存儲在集群中的每個節(jié)點上,每個節(jié)點負(fù)責(zé)處理存儲在自己本地硬盤上的數(shù)據(jù)。Hadoop主要由HDFS(Hadoop分布式文件系統(tǒng))和Hadoop MapReduce兩大部分組成。其中的HDFS直接存儲著用戶數(shù)據(jù)信息,為Hadoop的所有應(yīng)用提供極其重要的分布式存儲服務(wù),因此HDFS對整個Hadoop系統(tǒng)的安全性具有重要意義。HDFS采用Master/Slave架構(gòu),一個HDFS集群是由一個NameNode和一定數(shù)目的DataNodes組成,NameNode是一個負(fù)責(zé)管理存儲文件元數(shù)據(jù)信息的中心服務(wù)器,而DataNode則存儲文件的Block。
1.2 HDFS數(shù)據(jù)存儲與刪除過程
客戶端在HDFS中存儲數(shù)據(jù)的基本流程如圖1所示。
當(dāng)客戶端存儲數(shù)據(jù)文件到HDFS中時,文件最終以Block的形式被DataNode接收并保存在本地文件系統(tǒng)當(dāng)中,并由DataNode負(fù)責(zé)管理和維護(hù)存儲在本地的文件。當(dāng)客戶端需要刪除文件時,本地的文件通過Java的文件刪除機(jī)制將其刪除,這與單機(jī)狀態(tài)下文件的刪除原理相同[4]。用戶在使用普通刪除命令刪除文件時系統(tǒng)只是修改文件的文件目錄項的第一個字節(jié)為特殊字符,去除目錄區(qū)的文件名和數(shù)據(jù)區(qū)的文件數(shù)據(jù)之間的索引鏈接,文件數(shù)據(jù)區(qū)并沒有發(fā)生任何變化,使用者認(rèn)為文件已經(jīng)被刪除,而實際上數(shù)據(jù)信息仍存在于存儲介質(zhì)上,直至用戶寫入新數(shù)據(jù)覆蓋原數(shù)據(jù);而又因為普通磁存儲介質(zhì)具有剩磁效應(yīng),磁介質(zhì)會在不同程度上永久性磁化,磁介質(zhì)上記載的信息在一定程度上抹除不凈[5]。由此可見,HDFS中數(shù)據(jù)信息實際上并未徹底被刪除,云服務(wù)提供商和其他不懷好意者完全可以采用數(shù)據(jù)恢復(fù)技術(shù)惡意恢復(fù)用戶認(rèn)為已刪除的數(shù)據(jù),這對用戶信息安全和隱私構(gòu)成極大威脅。由于云計算規(guī)模巨大,具有極大的開放性與復(fù)雜性,用戶數(shù)據(jù)信息所有權(quán)與管理權(quán)相分離,且實行硬件資源共享機(jī)制[6],用戶的存儲空間是共享的,因此傳統(tǒng)IT系統(tǒng)的安全問題在云計算環(huán)境下將會得到放大,而且用戶無法感知惡意恢復(fù)和竊取。這將對用戶的數(shù)據(jù)安全構(gòu)成巨大的潛在威脅。
2 混合加密方案的提出
通過分析HDFS的數(shù)據(jù)存儲和刪除流程可以發(fā)現(xiàn),HDFS至少存在以下兩個安全問題:第一,是云服務(wù)提供商和其他不懷好意者可能對存儲在DataNode中的數(shù)據(jù)進(jìn)行非法使用,由于用戶對數(shù)據(jù)的所有權(quán)與管理權(quán)相分離,以及Hadoop的硬件共享機(jī)制,這一問題引發(fā)的后果將非常嚴(yán)重;第二,數(shù)據(jù)文件實際是以Block的形式存儲在本地文件系統(tǒng)中,普通刪除的數(shù)據(jù)仍然殘留在本地,存在極大的安全隱患。密碼學(xué)作為信息安全的根本基礎(chǔ),將對云數(shù)據(jù)安全提供根本保障[7]。因此針對其中的數(shù)據(jù)安全問題,本文采取了一種混合加密方案,以保證HDFS中靜態(tài)存儲的數(shù)據(jù)在共享過程中不被非法使用。
2.1 RC4算法和RSA算法概述
RC4算法是由MIT教授Ronald Rivest設(shè)計的一種密鑰長度可變的對稱加密算法,RC4算法由于加解密速度快并且安全性較高得到了人們的廣泛運(yùn)用,算法由初始化算法和偽隨機(jī)子密碼生成算法兩大部分組成[8]。其中RC4算法密鑰長度可變(1到255之間),加密強(qiáng)度可以根據(jù)密鑰長度進(jìn)行調(diào)整,同時由于RC4算法加密效率較高,因此適合于對大數(shù)據(jù)的加密。
RSA算法[9]是一種典型的非對稱加密算法,由Ronald Rivest在內(nèi)的三位教授共同提出,繼公鑰密碼體制提出之后,RSA算法的出現(xiàn)解決了之前對稱加密算法所面臨的密鑰傳遞問題。RSA是基于大數(shù)分解難題提出的,對于大數(shù)n=p*q(p、q均為大素數(shù)),在有限的計算能力以及有限的時間內(nèi),分解n是困難的?;谶@一數(shù)學(xué)基礎(chǔ),由RSA公開密鑰求解秘密密鑰在計算上不可行,這樣可以確保只有消息接收方可以用自己的秘密密鑰對用公鑰加密的數(shù)據(jù)進(jìn)行解密。由于RSA加密算法較RC4復(fù)雜,算法效率較低,因此RSA算法更適合于對小數(shù)據(jù)文件加密。
2.2 基于RC4和RSA混合加密保護(hù)方案設(shè)計
針對HDFS靜態(tài)存儲數(shù)據(jù)在數(shù)據(jù)共享過程中存在的數(shù)據(jù)安全問題,結(jié)合RC4算法和RSA算法的特征,設(shè)計的混合加密保護(hù)方案如圖2所示。
用戶A將要共享給用戶端B的數(shù)據(jù)文件通過RC4算法加密,由于RC4算法密鑰長度可選,因此用戶可以根據(jù)個人需要選擇不同加密等級的RC4算法,加密完成后,用戶A上傳加密的數(shù)據(jù)文件至HDFS,并將RC4算法密鑰保存在本地文件中。
當(dāng)用戶B需要下載A共享的文件時,向A發(fā)出申請消息,通過數(shù)字簽名A對B進(jìn)行身份驗證。
身份驗證完成之后,A向用戶端B發(fā)送確認(rèn)消息,其中包含一個惟一的與B對應(yīng)的標(biāo)志信息IB。
用戶端A用B的公開密鑰對⑴中產(chǎn)生的RC4密鑰文件進(jìn)行加密操作,產(chǎn)生的被加密密鑰文件名與⑶中的標(biāo)志信息IB相對應(yīng),并將此密鑰加密文件上傳到HDFS。
用戶端B首先根據(jù)A發(fā)送的確認(rèn)消息中IB找到對應(yīng)的密鑰加密文件,將其下載到客戶端,并用對應(yīng)的私鑰進(jìn)行解密,還原出RC4算法的密鑰。
用戶端B下載A共享的文件,并用RC4算法密鑰對其進(jìn)行解密操作,最終還原出原文,完成數(shù)據(jù)的共享全過程,其余用戶端C、D等則采用相同的過程進(jìn)行。
2.3 混合加密保護(hù)方案的特點
將用RC4算法加密保護(hù)的數(shù)據(jù)文件上傳到云服務(wù)器端,用戶的數(shù)據(jù)信息特別是其中涉及到企業(yè)、個人等重要的保密信息將對云服務(wù)提供商不可用,這可在一定程度上解決云服務(wù)提供商可能存在的對用戶信息非法使用的問題;同時可以防止不懷好意者對存儲在DataNode中的數(shù)據(jù)進(jìn)行竊取、惡意恢復(fù)等非法操作,即使在用戶刪除上傳數(shù)據(jù)后有非法使用者對先前數(shù)據(jù)文件進(jìn)行惡意恢復(fù),恢復(fù)出的文件仍然對其不可用,因此可以有效解決靜態(tài)存儲中的數(shù)據(jù)殘留所帶來的安全問題。
對稱加密算法RC4與非對稱加密算法RSA相結(jié)合,由于Hadoop的大數(shù)據(jù)特性,HDFS上一個文件的大小一般都在G字節(jié)至T字節(jié)[10],因此結(jié)合RC4適合對大量數(shù)據(jù)加密的特點,對大規(guī)模的數(shù)據(jù)文件采用RC4加密算法;同時由于RSA較RC4安全性高并且便于密鑰傳遞,對RC4密鑰采用RSA算法進(jìn)行加密操作;兩種加密算法相結(jié)合[11-12],兼顧了效率與安全性,適用于HDFS中靜態(tài)存儲數(shù)據(jù)的安全共享,同時緊密結(jié)合了HDFS的特點。
由于RC4算法密鑰長度可以自由選擇(一般不超過255),不同的密鑰長度對應(yīng)于不同的加密等級和時間消耗,由于云計算系統(tǒng)面向廣大用戶,而不同用戶對信息加密的等級需求存在一定差異,用戶端可以根據(jù)自身需要,在對保密性和效率作出權(quán)衡后選擇合適的密鑰長度,從而選用適合自身需要的加密服務(wù),避免了采用固定密鑰長度算法所帶來的需求無法滿足或資源浪費問題。
3 結(jié)束語
本文針對HDFS中靜態(tài)存儲的數(shù)據(jù)在共享過程中存在的泄露風(fēng)險,在分析Hadoop的基本結(jié)構(gòu)、數(shù)據(jù)存儲和刪除過程的基礎(chǔ)上,結(jié)合密碼學(xué)中的RC4算法和RSA算法的特征,給出了一種混合加密數(shù)據(jù)保護(hù)方案。該方案有效避免了云服務(wù)提供商和不懷好意者對數(shù)據(jù)的非法使用,有效解決了靜態(tài)存儲中的數(shù)據(jù)殘留所帶來的安全問題;兩種加密算法相結(jié)合,兼顧了效率與安全性,避免了采用固定密鑰長度算法所帶來的需求無法滿足或資源浪費。
參考文獻(xiàn):
[1] Syam Kumar P, Subramanian R.An Efficient and Secure Protocol for Ensuring Data Storage Security in Cloud Computing[J]. International Journal of Computer Science Issues,2011.8(6):261-274
[2] Deepanchakaravarthi Purushothaman, Dr.Sunitha Abburu.AnApproach for Data Storage Security in Cloud Computing[J].International Journal of Computer Science Issues,2012.9(2):100-105
[3] Dawei Sun,Guiran Chang,Lina Sun,Xingwei Wang.Surveying and Analyzing Security,Privacy and Trust Issues in Cloud Computing Environments[J]. Procedia Engineering,2011.15:2852-2856
[4] 鄧謙.基于Hadoop的云計算安全機(jī)制研究[D].南京郵電大學(xué),2013.
[5] 徐菁,朱有佃,賴凡.論磁性存儲介質(zhì)的數(shù)據(jù)銷毀技術(shù)[J].西南師范大學(xué)學(xué)報(自然科學(xué)版),2007.32(4):107-110
[6] 中國電信網(wǎng)絡(luò)安全實驗室.云計算安全:技術(shù)與應(yīng)用[M].電子工業(yè)出版社,2012:19-24
[7] 穆瑛.“云計算”中的密碼學(xué):智者博弈的謎題[J].信息安全與通信保密,2011.11:1
[8] 黃道林,楊軍.RC4加密算法的FPGA設(shè)計與實現(xiàn)[J].云南大學(xué)學(xué)報(自然科學(xué)版),2009.31(S1):80-83
[9] 張仕斌,萬武南,張金全,孫宣東.應(yīng)用密碼學(xué)[M].西安電子科技大學(xué)出版社,2009.
[10] 孫牧.云端的小飛象—Hadoop[J].程序員,2008.10:100-102
[11] 郭平,但光祥.云計算中的混合加密算法[J].吉林大學(xué)學(xué)報(工學(xué)版),2012.42(S1):327-331
[12] 胡光永.基于云計算的數(shù)據(jù)安全存儲策略研究[J].計算機(jī)測量與控制,2011.19(10):2539-2541