裴棟 張巧燕
摘 ?要:近幾年,隨著5G網(wǎng)絡(luò)的不斷發(fā)展,尤其是在全球突發(fā)性公共衛(wèi)生事件發(fā)生期間,文件的安全存儲已經(jīng)成為新的課題。文章設(shè)計了一個基于OpenStack與Hadoop的文件加密存儲系統(tǒng)方案:利用MapReduce框架并行的特點來提高對文件的加密速度。與此同時,根據(jù)文件的不同選擇合適的加密算法,并且根據(jù)文件類型將加密后的文件存儲到OpenStack相應(yīng)的組件中。這樣不僅可以提高文件加密速度,優(yōu)化文件存儲策略,而且用戶還可以根據(jù)自身情況自主選擇所需的加密服務(wù)。
關(guān)鍵詞:OpenStack;Hadoop;MapReduce;文件加密;文件存儲
中圖分類號:TP309.7 ? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2021)12-0104-03
Abstract: In recent years, with the continuous development of 5G network, especially during the global public health emergencies, the safe storage of files has become a new topic. This paper designs a file encryption storage system scheme based on OpenStack and Hadoop: The parallel characteristics of MapReduce framework are used to improve the encryption speed of files. At the same time, an appropriate encryption algorithm is selected according to the different files, and the encrypted files are stored in the corresponding components of OpenStack according to the file type. This can not only improve the file encryption speed and optimize the file storage strategy, but also users can independently choose the required encryption services according to their own conditions.
Keywords: OpenStack; Hadoop; MapReduce; file encryption; file storage
0 ?引 ?言
隨著5G網(wǎng)絡(luò)的快速發(fā)展,文本、圖像、音頻、視頻等多媒體信息的應(yīng)用越來越廣泛。尤其是在全球突發(fā)性公共衛(wèi)生事件發(fā)生期間,視頻會議系統(tǒng)與視頻監(jiān)控系統(tǒng)等被廣泛地應(yīng)用,這又對文件信息安全與存儲提出了更高的要求。為此,需要設(shè)計一個文件加密存儲系統(tǒng)。回顧一些傳統(tǒng)的加密算法,它們有幾個共同的缺點:(1)加密速度緩慢,無法處理大規(guī)模的文件數(shù)據(jù);(2)用戶無法根據(jù)需要自主地選擇適合自己的加密算法;(3)文件加密后的存儲尚未根據(jù)文件的特點進(jìn)行特殊設(shè)計。針對以上問題,本文設(shè)計了一個文件加密存儲系統(tǒng),其具有以下特點:(1)在OpenStack的云計算框架中,搭建Hadoop大數(shù)據(jù)環(huán)境集群中的MapReduce分布式計算框架,開展并行計算,提高加密速度;(2)提供了包括完全加密、選擇性加密以及部分加密的文件加密方案;(3)在文件加密完成后,根據(jù)文件類型的不同使用OpenStack的不同組件進(jìn)行存儲。這樣的設(shè)計不僅提高了文件加密速度,優(yōu)化了文件加密策略,而且用戶還可以根據(jù)自己的需求選擇加密算法。本篇論文的第二部分簡述相關(guān)工作,第三部分講述系統(tǒng)設(shè)計基礎(chǔ),第四部分描述系統(tǒng)的具體設(shè)計方案,第五部分進(jìn)行了總結(jié)與展望。
1 ?相關(guān)工作
1.1 ?Openstack的特點
首先,OpenStack[1]的源碼是完全開放的,使用者隨時可以根據(jù)開發(fā)或二次開發(fā)的需要修改相應(yīng)的代碼;其次,OpenStack基于強大的社區(qū)開發(fā)模式,但凡有能力的公司和個人都可以參與到該項目中來,貢獻(xiàn)自己的代碼;最后,OpenStack的所有組件都是由Python編程語言開發(fā)的,而Python語言的并發(fā)處理能力極強,同時系統(tǒng)資源占用率又很低,代碼易于維護(hù)和擴展。
1.2 ?OpenStack存儲組件
在OpenStack項目中,用于存儲普通文本文件的組件是manila[2],該組件具有以下兩個優(yōu)點:一是可以供多個租戶使用;二是同一時間可以由多個用戶同時掛載和訪問。
Swift[2]是OpenStack提供的一種分布式、持續(xù)虛擬對象存儲的組件,該組件具有跨節(jié)點百級對象的存儲能力。因此,適合存儲那些加密要求較高、文件字節(jié)較多的圖像、視頻等內(nèi)容。
Cinder[3]塊存儲又稱為卷存儲,其存儲特點是支持多種類型的后端存儲,同時為存儲設(shè)備的管理提供了一整套方法。因此,cinder組件適合存儲那些加密要求不高,但是存儲后文件會隨時使用的文件。
1.3 ?文件加密相關(guān)研究
廉士國[4]等在文章中比較了目前出現(xiàn)并使用的幾種文件加密算法,并最終分析得出了各自適應(yīng)的情況和應(yīng)用范圍。Moyun Li等人在參考文獻(xiàn)的基礎(chǔ)上對不同大小的分片進(jìn)行測試,并給出加密速度與分片大小的關(guān)系。YangFan等使用分布式Hadoop平臺將分割好的視頻文件上傳到HDFS中,再利用Hadoop的MapReduce計算框架對視頻進(jìn)行分布式轉(zhuǎn)碼。本文設(shè)計的方案運用以上參考文獻(xiàn)中的理論,使用最佳的分片大小對視頻進(jìn)行分片。在文件分片結(jié)束之后,使用線性同余法產(chǎn)生隨機數(shù)序列,加密隨機數(shù)對應(yīng)的文件分片。
2 ?系統(tǒng)設(shè)計基礎(chǔ)
2.1 ?AES加密算法選擇
AES加密算法的基本要求是:采用對稱分組密碼體制,密鑰長度的最低標(biāo)準(zhǔn)支持128位、192位、256位,并且AES加密算法很容易在各種硬件和軟件中實現(xiàn)。本文在對比RSA與AES加密算法后,推薦使用AES加密算法。本文測試兩種安全性很高的加密算法:采用AES算法和RSA算法分別在單機上加密不同大小的文件。實驗結(jié)果如圖1所示,AES加密算法加密相同大小的文件用時更短,尤其是文件較大時效果更加明顯。
2.2 ?三種加密方案
完全加密方案:先將文件分為若干片,然后對每一片都使用安全性高、加密效果好的AES算法進(jìn)行加密。由于我們使用Hadoop集群的MapReduce框架并行加密,因此,用戶不必?fù)?dān)心視頻加密的速度問題。
選擇性加密方案:將視頻分為若干片,利用Hadoop集群的MapReduce架構(gòu)并行加密那些使用線性同余隨機數(shù)發(fā)生器產(chǎn)生的隨機數(shù)所對應(yīng)的視頻分片。其中,加密算法仍然采用安全性高、加密效果好的AES算法。
部分加密方案:將一個視頻按幀切分,使用隨機數(shù)生成器產(chǎn)生一組只有0和1的隨機數(shù),對這些幀進(jìn)行編號。同時使用隨機數(shù)生成器生成一個與幀大小相同的二進(jìn)制隨機數(shù),使用該二進(jìn)制隨機數(shù)與編號1的視頻幀進(jìn)行異或操作。同樣地,利用Hadoop集群的MapReduce架構(gòu)進(jìn)行并行操作。
2.3 ?MapReduce框架
Hadoop的MapReduce采用主/從結(jié)構(gòu),由一個負(fù)責(zé)主控的JobTracker(工作)服務(wù)器(Master)以及若干執(zhí)行任務(wù)的TaskTracker(任務(wù))服務(wù)器(Slave)組成。本文設(shè)計的方案使用的是OpenStack云主機,因此也要將OpenStack云主機的性能考慮在內(nèi)。在MapReduce框架中,客戶的一個作業(yè)通常會將輸入數(shù)據(jù)集分成若干獨立的數(shù)據(jù)塊,并將數(shù)據(jù)塊交由Map任務(wù)并行處理,框架會對Map的輸出結(jié)果進(jìn)行排序和匯總,在完成之后輸出給Reduce任務(wù)。核心框架MapReduce架構(gòu)圖如圖2所示。
3 ?系統(tǒng)方案設(shè)計
3.1 ?基礎(chǔ)平臺設(shè)計
本文所設(shè)計的文件存儲系統(tǒng)中的基礎(chǔ)平臺,是由OpenStack中的云主機和Hadoop平臺共同搭建而成的。首先,在服務(wù)器上搭建linux操作系統(tǒng),在linux操作系統(tǒng)上搭建穩(wěn)定版本的OpenStack。其次,在OpenStack中創(chuàng)建適合的云主機,在云主機中搭建Hadoop,尤其需要對MapReduce框架進(jìn)行二次開發(fā),從而滿足用戶對文件進(jìn)行分布式加密的需求。最后,需要對OpenStack中的Dashboard組件和Nova組件進(jìn)行二次開發(fā),使得用戶能夠在圖形化的界面中選擇所需的加密算法,而Nova組件則根據(jù)之前約定的存儲方式將Hadoop平臺加密后的文件存儲到之前約定的OpenStack存儲組件當(dāng)中。存儲文件與OpenStack組件的對應(yīng)關(guān)系如表1所示。
3.2 ?具體設(shè)計方案
本文中的文件加密存儲系統(tǒng)具體設(shè)計方案為:首先,本文所提出的文件加密存儲系統(tǒng)是以O(shè)penStack為基礎(chǔ)的,因此當(dāng)用戶登錄到OpenStack界面之后,需要選擇一種文件的加密算法,具體的選擇對應(yīng)關(guān)系如表2所示。需要注意的是,用戶只需在系統(tǒng)中提交具體的加密方式即可。在確定好使用的加密算法之后,系統(tǒng)會自動將需要加密的文件提交到Hadoop的MapReduce框架中,進(jìn)行分布式加密。其中,Map()負(fù)責(zé)對視頻片段進(jìn)行加密,Reduce()負(fù)責(zé)回收合并加密好的文件片段。最后,系統(tǒng)將加密后的文件提交給OpenStack中具體的存儲組件進(jìn)行存儲[5]。
4 ?結(jié) ?論
本文利用Hadoop的并行計算方法在OpenStack上搭建了一個文件加密存儲系統(tǒng),并利用其中的MapReduce框架設(shè)計文件的加密服務(wù),提供包括完全加密服務(wù)、選擇性加密服務(wù)以及部分加密服務(wù)的文件加密方案,同時提供Manila、Swift、Cinder三種文件存儲方式。這不僅提高了文件加密速度、優(yōu)化了文件加密策略,而且用戶還可以根據(jù)自己的需求,自主地選擇加密算法。未來我們可以設(shè)計更多的加密方案來滿足不同用戶的需求,同時探索提高并行加密的速度,這是我們今后工作的努力方向。
參考文獻(xiàn):
[1] 李小寧,李磊,金連文,等.基于Openstack構(gòu)建私有云計算平臺 [J].電信科學(xué),2012(09):1-8.
[2] SEFRAOUI O,AISSAOUI M,ELEULDJ M. Openstack:Toward an Open-Source Solution for Cloud Computing [J].International Journal of Computer Applications,2012,55(3):38-42.
[3] 林清瀅.基于Hadoop的云計算模型 [J].現(xiàn)代計算機(專業(yè)版),2010(7):114-116+121.
[4] 廉士國,孫金生,王執(zhí)銓.幾種典型視頻加密算法的性能評價 [J].中國圖象圖形學(xué)報,2004(4):483-490.
[5] 劉國成,吳丹.基于OpenStack的中小企業(yè)服務(wù)云平臺架構(gòu)研究 [J].吉林大學(xué)學(xué)報(信息科學(xué)版),2020,38(6):709-713.
作者簡介:裴棟(1991.06—),男,漢族,山西呂梁人,碩士研究生,助教,研究方向:大數(shù)據(jù)、云計算、人工智能。