胡元闖 張波 張紅軍
摘 要: 引入可信的第三方TPA,基于RSA算法、Hash函數(shù)和DES算法,為云計算提出一種能為數(shù)據(jù)提供機密性和完整性的安全存儲方案SCBRHD。該方案利用RSA算法、Hash函數(shù)及DES算法進行加密來確保數(shù)據(jù)的機密性和存儲安全。數(shù)據(jù)通過二次加密存儲在云服務(wù)器,加密、解密和認證只涉及終端用戶和TPA。給出了方案的架構(gòu)模型和算法流程,并在Linux平臺的Cloudsim云計算仿真環(huán)境下對其進行仿真分析,驗證其有效性。
關(guān)鍵詞: 云計算; 機密性; 完整性; 存儲安全; 加密解密
中圖分類號:TP393 文獻標志碼:A 文章編號:1006-8228(2016)06-43-05
Abstract: In this paper, with the introduction of trusted third party TPA(Third Party Auditor), the SCBRHD scheme is proposed to provide cloud computing with a security data storage of confidentiality and integrity. The scheme uses RSA encryption algorithm, Hash function and DES algorithm to ensure the confidentiality and security of data storage. The data is stored into the cloud server after twice encrypting; the encryption, decryption and authentication only involve the end-user and TPA. The architecture and algorithm of the scheme are also given, and the scheme is simulated in Linux Cloudsim cloud computing environment to verify its validity.
Key words: cloud computing; confidentiality; integrality; storage security; encryption and decryption
0 引言
云計算是一種新出現(xiàn)的技術(shù),通過互聯(lián)網(wǎng)提供各種硬件、軟件和應(yīng)用服務(wù)[1]。由于其資源利用率高、大容量的存儲空間、超強的處理能力等特性,使其成為未來的主流計算模式。但由于云計算的開放性特點,通過互聯(lián)網(wǎng)為終端用戶提供各種服務(wù),所以存在潛在的安全隱患,數(shù)據(jù)的隱私保護和安全存儲問題成為云計算推廣的巨大障礙[2]。據(jù)調(diào)查,74%的IT行業(yè)行政主管和辦公室人員因為安全和隱私風(fēng)險不希望把他們的信息存儲在云服務(wù)器上。因此,需要新的服務(wù)體系結(jié)構(gòu)來處理終端用戶在云服務(wù)器上存儲數(shù)據(jù)的安全問題。為云計算建立安全的數(shù)據(jù)存儲方案,成為云計算為終端用戶提供可靠服務(wù)的一個重要問題[3]。
針對當前云計算存在的安全風(fēng)險,不少學(xué)者對云計算的數(shù)據(jù)安全存儲和隱私保護問題進行了研究。Choudhury等人[4]提出一種認證框架,在用戶訪問云服務(wù)器之前其合法性被強制驗證,通過提供管理認證,在用戶和云服務(wù)器之間建立會話。通過評估,該方案可以抵制各種攻擊如人為攻擊、重放攻擊和拒絕服務(wù)攻擊等。XiaoChun YIN等人[5]基于PKI體系,利用橢圓曲線密碼原理(Elliptic Curve Cryptography,ECC),為云計算提出一種安全的數(shù)據(jù)存儲方案。
本文引入可信的第三方TPA,基于RSA算法、Hash函數(shù)和DES算法,為云計算提出一種能為數(shù)據(jù)提供機密性和完整性的安全存儲方案SCBRHD。給出了方案的架構(gòu)模型和算法流程,并在Linux下的云計算模擬仿真環(huán)境Cloudsim對其進行仿真分析,驗證其有效性。
1 參與者及相關(guān)加密算法介紹
1.1 參與者及相關(guān)符號說明
本文提出的SCBRHD,提供安全的數(shù)據(jù)存儲,涉及到三個參與者,分別是終端用戶(End-User,EU)、可信第三方(Third Party Auditor,TPA)和云服務(wù)器(Cloud Service,CS)。這些參與者及其角色描述如表1。
1.2 相關(guān)加密算法介紹
RSA算法:RSA是一種公鑰加密算法。RSA可用于密鑰交換、數(shù)字簽名或數(shù)據(jù)塊加密。RSA用一個可變大小的加密塊和一個可變大小的密鑰進行加密。在SCBRHD中,RSA用來生成終端用戶和TPA的對應(yīng)密鑰,這些密鑰用來對文件進行加密和解密。
Hash函數(shù):Hash函數(shù)運算可以把任意長度的消息生成固定長度的摘要。對每一個消息,Hash函數(shù)都能產(chǎn)生一個較短而固定長度的摘要,且都是獨一無二的。這對Hash函數(shù)安全性方面的主要要求是單向函數(shù)(不可逆的),且他們不能產(chǎn)生沖突。在SCBRHD中,通過Hash函數(shù)校驗,能維持數(shù)據(jù)的完整性。
DES算法:DES即數(shù)據(jù)加密標準,是一種對稱密鑰塊密碼,為64位塊大小和56位的密鑰。在加密端,DES利用64位的普通文本產(chǎn)生64位的密碼文本,在解密端,DES利用64位密碼文本產(chǎn)生64位的塊文本。在SCBRHD方案中,TPA利用DES算法來為EU的文件提供更可靠的安全服務(wù)。TPA在往云服務(wù)器發(fā)送文件之前執(zhí)行DES算法。利用DES算法,可以為用戶提供更安全的數(shù)據(jù)。
2 SCBRHD的架構(gòu)模型和算法流程
本文提出的SCBRHD方案,利用RSA算法、Hash函數(shù)和DES算法及相關(guān)加密工具來為云計算提供安全的數(shù)據(jù)存儲服務(wù)。在SCBRHD中,EU和TPA分別有兩個密鑰,即公鑰和私鑰。SCBRHD對數(shù)據(jù)進行兩次加密,首先通過EU私鑰進行加密,再由TPA公鑰進行加密,這為EU提供數(shù)據(jù)的機密性。該方案利用RSA算法和DES算法來執(zhí)行加密和解密,進行數(shù)據(jù)認證,通過計算Hash摘要,進行比較,確保數(shù)據(jù)的安全性。該方案的框架模型結(jié)構(gòu)圖如圖1所示。
SCBRHD方案涉及以下操作。
⑴ 密鑰產(chǎn)生:終端用戶EU和可信第三方TPA分別利用RSA算法為自己產(chǎn)生一對密鑰。其中TPA的私鑰為pk1,EU的私鑰為pk2;TPA的公鑰為d1,EU的公鑰為d2。
⑵ 密鑰共享:TPA密鑰集合{pk1,d1}在TPA上,EU的密鑰集合為{pk2,d2},在EU上。TPA使用安全信道和EU共享器公鑰d1。
⑶ 加密:首先,EU利用其公鑰d2對數(shù)據(jù)文件F進行加密E(F,d2),然后進行Hash運算,生成Hash摘要H(E(F,d2)),接著,用TPA公鑰d1對E(F,d2)進行二次加密E(E(F,d2),d1)。之后,Hash摘要H(E(F,d2))再次由d1加密E(H(E(F,d2)),d1)。此時,這兩個包為E(E(F,d2),d1)|E(H(E(F,d2)),d1),被附加在數(shù)據(jù)上發(fā)往TPA。
TPA存儲數(shù)據(jù)的Hash摘要,以確保數(shù)據(jù)的完整性。TPA用其私鑰對接收到的E(E(F,d2),d1)進行解密,得到E(F,d2)。接著,TPA通過DES算法產(chǎn)生一個隨機密鑰k對E(F,d2)進行加密,然后將再次加密后的數(shù)據(jù)發(fā)往CS。這樣,數(shù)據(jù)的安全性得到進一步保障,而產(chǎn)生的隨機密鑰由TPA存儲,用于將來解密。
⑷ 解密:當要求驗證數(shù)據(jù)文件的正確性時,經(jīng)DES加密后存儲在云服務(wù)器上的數(shù)據(jù)文件{Encrypt(E(F,d2))}發(fā)送到TPA。TPA首先通過自己存儲的DES隨機密鑰K對數(shù)據(jù)進行解密;然后TPA生成從CS中獲得加密文件的Hash摘要;接著,TPA對數(shù)據(jù)文件原始加密的Hash摘要進行解密,并將其與新生成的Hash摘要相比較,若一致,說明數(shù)據(jù)文件沒有被修改過,是安全的。這樣,可以確定EU請求的數(shù)據(jù)文件是否正確。傳送到EU的數(shù)據(jù)文件是由其公鑰加密,所以也只有EU能解密。EU接收到加密文件后,用其自身的私鑰解密,從而可以讀取數(shù)據(jù)文件。
圖2給出EU、TPA和CS之間對數(shù)據(jù)文件進行加密、存儲到云服務(wù)器的過程,以及EU讀取數(shù)據(jù)時TPA對數(shù)據(jù)文件的校驗認證、解密,EU的解密過程。
SCBRHD方案涉及的算法對應(yīng)三個參與者交互的過程,可以細分為三個算法。算法1給出數(shù)據(jù)由EU存儲到CS的加密過程。算法2進行驗證,給出TPA驗證數(shù)據(jù)完整性的過程。算法3給出文件恢復(fù)過程,指數(shù)據(jù)從CS通過TPA,然后到EU的過程。
3 安全性分析及性能分析
3.1 安全性分析
本文提出的SCBRHD方案,數(shù)據(jù)通過強有力的加密算法進行加密,并由Hash摘要進行驗證,對非授權(quán)用戶是保密的。因此數(shù)據(jù)的機密性和完整性就可以得到保證。以下是對SCBRHD方案的安全性分析。
數(shù)據(jù)的正確性和完整性:在SCBRHD中,只有EU能夠?qū)目尚诺谌絋PA接收到的數(shù)據(jù)進行解密。因為該數(shù)據(jù)是由EU的公鑰d2加密,所以,只有其對應(yīng)的私鑰pk2可以解密,而私鑰只有EU知道,因此數(shù)據(jù)的正確性得到保證。當EU想讀取存儲在CS上的數(shù)據(jù)時,TPA要求對來自CS的數(shù)據(jù)執(zhí)行數(shù)據(jù)完整性驗證,這保證了數(shù)據(jù)的完整性。
鑒定認證:EU利用自己的密鑰標記Hash摘要,其他人無法對其標記,因此TPA很容易找出發(fā)送消息者進行鑒定。如果其他任何人從CS下載該數(shù)據(jù)文件,通過任何方式執(zhí)行修改后再上傳到CS,而上傳的時候需要EU的私鑰pk2對文件進行標記,因此,TPA很容易識別一個用戶是否合法。
數(shù)據(jù)機密性:數(shù)據(jù)在可信第三方TPA和云服務(wù)器CS之間加密和編碼,避免了云服務(wù)器知道文件的內(nèi)容,保證了文件的隱私和機密性。數(shù)據(jù)只以密文形式在網(wǎng)絡(luò)上傳輸,所以入侵者無法從傳輸?shù)奈募兄牢募木唧w信息。在SCBRHD中,CS只存儲加密的數(shù)據(jù)文件,不參與加密解密,所以CS無法得到文件的任何信息,能確保數(shù)據(jù)的機密性。
預(yù)防網(wǎng)絡(luò)攻擊:EU必須通過互聯(lián)網(wǎng)才能將數(shù)據(jù)存儲到CS上,EU通過互聯(lián)網(wǎng)可以從CS中訪問自己的數(shù)據(jù),這就有被入侵者攻擊的危險。但在SCBRHD中,傳輸?shù)臄?shù)據(jù)是通過不對稱加密和使用一次Hash摘要。傳輸?shù)臄?shù)據(jù)包含加密的Hash摘要,而入侵者無論扮演何種角色都難以解密。若有人對數(shù)據(jù)和Hash摘要進行修改,TPA很容易就能證實,最終將結(jié)果傳給EU。因此,SCBRHD能有效的預(yù)防網(wǎng)絡(luò)攻擊。
3.2 性能分析
由EU、TPA和CS分別完成相應(yīng)的操作。EU執(zhí)行更多的加密操作,而TPA既執(zhí)行加密操作也執(zhí)行解密操作,減少了用戶的解密操作。CS僅存儲EU的加密數(shù)據(jù),沒有涉及加密和解密。EU、TPA和CS的開銷情況如表3所示。涉及加密操作(指數(shù)操作)配對操作和計算Hash摘要。這些加密操作都是在EU和TPA上完成。表3和表4比較了EU和TPA上加密和解密過程的指數(shù)操作、Hash函數(shù)計算和配對操作。
首先,分析EU和TPA加密過程指數(shù)操作。文件加密過程中,EU首先執(zhí)行一個指數(shù)操作,接著在文件二次加密過程中再執(zhí)行一次指數(shù)操作,然后在Hash加密過程再執(zhí)行一次指數(shù)操作。因此,在EU上一共執(zhí)行了三次指數(shù)操作。此時在TPA中,在接收到消息的解密過程中執(zhí)行了一次指數(shù)操作,在存儲到CS之前進一步加密再執(zhí)行一次指數(shù)操作。所以TPA在加密過程中一共執(zhí)行兩次指數(shù)操作。在解密過程中,EU只執(zhí)行一次指數(shù)操作。而TPA執(zhí)行了兩次。所以在解密過程中,TPA比EU做了更多的工作。
其次,分析EU和TPA的Hash運算。EU執(zhí)行一次Hash運算,以找到消息的Hash摘要。在TPA中,加密過程沒有涉及Hash運算。在解密過程中,EU沒有涉及Hash運算,在TPA上執(zhí)行一次Hash運算以驗證數(shù)據(jù)的完整性。
再次,分析EU和TPA上的配對運算。加密過程在TPA端有一次配對運算。加密過程在EU和TPA都沒有配對運算。通過表3、表4可知,在云存儲器上沒有涉及到運算,CS只提供為EU存儲數(shù)據(jù)。很多運算在TPA完成,減少了EU的工作。
4 仿真
4.1 仿真環(huán)境
本文在Linux環(huán)境下的云計算環(huán)境模擬仿真工具Cloudsim[6]上,對提出的SCBRHD進行仿真驗證。Cloudsim是2009年推出,由澳大利亞墨爾本大學(xué)Rajkumar Buyya教授領(lǐng)導(dǎo)團隊開發(fā)的云計算仿真器,其目標是在云基礎(chǔ)設(shè)施(軟件、硬件、服務(wù))上,對不同應(yīng)用和服務(wù)模型的調(diào)度和分配策略的性能進行量化和比較,達到控制使用云計算資源的目的。
4.2 仿真結(jié)果
本文在Cloudsim上模擬EU、TPA和CS,對所提出的方案進行模擬仿真實驗。實驗機器配置:CPU:AMD 3.2G;內(nèi)存4G MB;硬盤:6*150G SATA硬盤;OS:紅旗Linux 7.0。設(shè)置一個終端用戶EU、一個TPA和一個數(shù)據(jù)處理中心(CS),虛擬機采用空間共享方式,網(wǎng)絡(luò)延遲等參數(shù)采用環(huán)境默認值。實驗時,用戶存儲文件數(shù)量從1到500個,用來測試云模擬基礎(chǔ)設(shè)施的運算能力。本文主要測試在SCBRHD中從EU加密數(shù)據(jù)最終存儲到CS所消耗的時間,以及EU發(fā)出請求最終從CS讀取數(shù)據(jù)所需要的時間,驗證該方案的可行。實驗結(jié)果如圖3所示。
由圖3結(jié)果可知,一個終端用戶通過加密將500個文件存儲到云服務(wù)器大約需要15.6秒,而從云服務(wù)器讀取500個文件大約要21.6秒。讀取時間比存儲時間要長,主要原因是讀取文件的時間除了解密時間外還有一個完整性校驗的過程,故時間比存儲的時候要稍長。但從總的存取時間來看,是在用戶完全可以接受的范圍,表明了SCBRHD方案的有效性。
5 結(jié)束語
本文針對終端用戶將數(shù)據(jù)存儲在云服務(wù)器上所面臨的隱私保護和安全存儲問題,引入可信的第三方TPA,基于RSA算法、Hash函數(shù)和DES算法,為云計算提出一種能為數(shù)據(jù)提供機密性和完整性的安全存儲方案SCBRHD。該方案利用RSA算法、Hash函數(shù)及DES算法進行加密來確保數(shù)據(jù)的機密性和存儲安全。給出了方案的架構(gòu)模型和算法流程,在Linux平臺下的云計算模擬仿真環(huán)境Cloudsim對其進行仿真實驗,并對其性能指標進行分析,結(jié)果表明提出SCBRHD方案的有效性。本文的研究對云計算中的數(shù)據(jù)安全存儲具有一定的參考意義。
參考文獻(References):
[1] M.Armbrust, A.Fox, R.Griffith. "A View of Cloud
Computing," Communications of the ACM Magazine,2010.53(4):50-58
[2] 馮朝勝,秦志光,袁丁.云數(shù)據(jù)安全存儲技術(shù)[J].計算機學(xué)報,
2014.37.
[3] 李暉,孫文海,李鳳華等.公共云存儲服務(wù)數(shù)據(jù)安全及隱私保
護技術(shù)綜述[J].計算機研究與發(fā)展,2014.51(7):1397-1409
[4] A.J.Choudhury, P.Kumar, M. Sain, L. Hyotaek. "A Strong
User Authentication Framework for Cloud Computing," in Proc. IEEE Asia-Pacific Services Computing Conference (APSCC), Jeju Island, South Korea,2011:110-115
[5] XiaoChun Yin, Non Thiranant, Hoonjae Lee. Secured
Data Storage Scheme in Cloud Computing using Elliptic Curve Cryptography,APICIST 2013.
[6] Rodrigo N. Calheiros, Rajiv Ranjan. CloudSim: a toolkit for
modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms. Software: Practice and Experience,2011.41(1):23-50