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