裴棟 張巧燕




摘 ?要:近幾年,隨著5G網絡的不斷發展,尤其是在全球突發性公共衛生事件發生期間,文件的安全存儲已經成為新的課題。文章設計了一個基于OpenStack與Hadoop的文件加密存儲系統方案:利用MapReduce框架并行的特點來提高對文件的加密速度。與此同時,根據文件的不同選擇合適的加密算法,并且根據文件類型將加密后的文件存儲到OpenStack相應的組件中。這樣不僅可以提高文件加密速度,優化文件存儲策略,而且用戶還可以根據自身情況自主選擇所需的加密服務。
關鍵詞:OpenStack;Hadoop;MapReduce;文件加密;文件存儲
中圖分類號:TP309.7 ? 文獻標識碼: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網絡的快速發展,文本、圖像、音頻、視頻等多媒體信息的應用越來越廣泛。尤其是在全球突發性公共衛生事件發生期間,視頻會議系統與視頻監控系統等被廣泛地應用,這又對文件信息安全與存儲提出了更高的要求。為此,需要設計一個文件加密存儲系統?;仡櫼恍﹤鹘y的加密算法,它們有幾個共同的缺點:(1)加密速度緩慢,無法處理大規模的文件數據;(2)用戶無法根據需要自主地選擇適合自己的加密算法;(3)文件加密后的存儲尚未根據文件的特點進行特殊設計。針對以上問題,本文設計了一個文件加密存儲系統,其具有以下特點:(1)在OpenStack的云計算框架中,搭建Hadoop大數據環境集群中的MapReduce分布式計算框架,開展并行計算,提高加密速度;(2)提供了包括完全加密、選擇性加密以及部分加密的文件加密方案;(3)在文件加密完成后,根據文件類型的不同使用OpenStack的不同組件進行存儲。這樣的設計不僅提高了文件加密速度,優化了文件加密策略,而且用戶還可以根據自己的需求選擇加密算法。本篇論文的第二部分簡述相關工作,第三部分講述系統設計基礎,第四部分描述系統的具體設計方案,第五部分進行了總結與展望。
1 ?相關工作
1.1 ?Openstack的特點
首先,OpenStack[1]的源碼是完全開放的,使用者隨時可以根據開發或二次開發的需要修改相應的代碼;其次,OpenStack基于強大的社區開發模式,但凡有能力的公司和個人都可以參與到該項目中來,貢獻自己的代碼;最后,OpenStack的所有組件都是由Python編程語言開發的,而Python語言的并發處理能力極強,同時系統資源占用率又很低,代碼易于維護和擴展。
1.2 ?OpenStack存儲組件
在OpenStack項目中,用于存儲普通文本文件的組件是manila[2],該組件具有以下兩個優點:一是可以供多個租戶使用;二是同一時間可以由多個用戶同時掛載和訪問。
Swift[2]是OpenStack提供的一種分布式、持續虛擬對象存儲的組件,該組件具有跨節點百級對象的存儲能力。因此,適合存儲那些加密要求較高、文件字節較多的圖像、視頻等內容。
Cinder[3]塊存儲又稱為卷存儲,其存儲特點是支持多種類型的后端存儲,同時為存儲設備的管理提供了一整套方法。因此,cinder組件適合存儲那些加密要求不高,但是存儲后文件會隨時使用的文件。
1.3 ?文件加密相關研究
廉士國[4]等在文章中比較了目前出現并使用的幾種文件加密算法,并最終分析得出了各自適應的情況和應用范圍。Moyun Li等人在參考文獻的基礎上對不同大小的分片進行測試,并給出加密速度與分片大小的關系。YangFan等使用分布式Hadoop平臺將分割好的視頻文件上傳到HDFS中,再利用Hadoop的MapReduce計算框架對視頻進行分布式轉碼。本文設計的方案運用以上參考文獻中的理論,使用最佳的分片大小對視頻進行分片。在文件分片結束之后,使用線性同余法產生隨機數序列,加密隨機數對應的文件分片。
2 ?系統設計基礎
2.1 ?AES加密算法選擇
AES加密算法的基本要求是:采用對稱分組密碼體制,密鑰長度的最低標準支持128位、192位、256位,并且AES加密算法很容易在各種硬件和軟件中實現。本文在對比RSA與AES加密算法后,推薦使用AES加密算法。本文測試兩種安全性很高的加密算法:采用AES算法和RSA算法分別在單機上加密不同大小的文件。實驗結果如圖1所示,AES加密算法加密相同大小的文件用時更短,尤其是文件較大時效果更加明顯。
2.2 ?三種加密方案
完全加密方案:先將文件分為若干片,然后對每一片都使用安全性高、加密效果好的AES算法進行加密。由于我們使用Hadoop集群的MapReduce框架并行加密,因此,用戶不必擔心視頻加密的速度問題。
選擇性加密方案:將視頻分為若干片,利用Hadoop集群的MapReduce架構并行加密那些使用線性同余隨機數發生器產生的隨機數所對應的視頻分片。其中,加密算法仍然采用安全性高、加密效果好的AES算法。
部分加密方案:將一個視頻按幀切分,使用隨機數生成器產生一組只有0和1的隨機數,對這些幀進行編號。同時使用隨機數生成器生成一個與幀大小相同的二進制隨機數,使用該二進制隨機數與編號1的視頻幀進行異或操作。同樣地,利用Hadoop集群的MapReduce架構進行并行操作。
2.3 ?MapReduce框架
Hadoop的MapReduce采用主/從結構,由一個負責主控的JobTracker(工作)服務器(Master)以及若干執行任務的TaskTracker(任務)服務器(Slave)組成。本文設計的方案使用的是OpenStack云主機,因此也要將OpenStack云主機的性能考慮在內。在MapReduce框架中,客戶的一個作業通常會將輸入數據集分成若干獨立的數據塊,并將數據塊交由Map任務并行處理,框架會對Map的輸出結果進行排序和匯總,在完成之后輸出給Reduce任務。核心框架MapReduce架構圖如圖2所示。
3 ?系統方案設計
3.1 ?基礎平臺設計
本文所設計的文件存儲系統中的基礎平臺,是由OpenStack中的云主機和Hadoop平臺共同搭建而成的。首先,在服務器上搭建linux操作系統,在linux操作系統上搭建穩定版本的OpenStack。其次,在OpenStack中創建適合的云主機,在云主機中搭建Hadoop,尤其需要對MapReduce框架進行二次開發,從而滿足用戶對文件進行分布式加密的需求。最后,需要對OpenStack中的Dashboard組件和Nova組件進行二次開發,使得用戶能夠在圖形化的界面中選擇所需的加密算法,而Nova組件則根據之前約定的存儲方式將Hadoop平臺加密后的文件存儲到之前約定的OpenStack存儲組件當中。存儲文件與OpenStack組件的對應關系如表1所示。
3.2 ?具體設計方案
本文中的文件加密存儲系統具體設計方案為:首先,本文所提出的文件加密存儲系統是以OpenStack為基礎的,因此當用戶登錄到OpenStack界面之后,需要選擇一種文件的加密算法,具體的選擇對應關系如表2所示。需要注意的是,用戶只需在系統中提交具體的加密方式即可。在確定好使用的加密算法之后,系統會自動將需要加密的文件提交到Hadoop的MapReduce框架中,進行分布式加密。其中,Map()負責對視頻片段進行加密,Reduce()負責回收合并加密好的文件片段。最后,系統將加密后的文件提交給OpenStack中具體的存儲組件進行存儲[5]。
4 ?結 ?論
本文利用Hadoop的并行計算方法在OpenStack上搭建了一個文件加密存儲系統,并利用其中的MapReduce框架設計文件的加密服務,提供包括完全加密服務、選擇性加密服務以及部分加密服務的文件加密方案,同時提供Manila、Swift、Cinder三種文件存儲方式。這不僅提高了文件加密速度、優化了文件加密策略,而且用戶還可以根據自己的需求,自主地選擇加密算法。未來我們可以設計更多的加密方案來滿足不同用戶的需求,同時探索提高并行加密的速度,這是我們今后工作的努力方向。
參考文獻:
[1] 李小寧,李磊,金連文,等.基于Openstack構建私有云計算平臺 [J].電信科學,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].現代計算機(專業版),2010(7):114-116+121.
[4] 廉士國,孫金生,王執銓.幾種典型視頻加密算法的性能評價 [J].中國圖象圖形學報,2004(4):483-490.
[5] 劉國成,吳丹.基于OpenStack的中小企業服務云平臺架構研究 [J].吉林大學學報(信息科學版),2020,38(6):709-713.
作者簡介:裴棟(1991.06—),男,漢族,山西呂梁人,碩士研究生,助教,研究方向:大數據、云計算、人工智能。