APP下载

基于OpenStack与Hadoop的文件加密存储系统方案设计

2021-01-14裴栋张巧燕

现代信息科技 2021年12期

裴栋 张巧燕

摘  要:近几年,随着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网络的快速发展,文本、图像、音频、视频等多媒体信息的应用越来越广泛。尤其是在全球突发性公共卫生事件发生期间,视频会议系统与视频监控系统等被广泛地应用,这又对文件信息安全与存储提出了更高的要求。为此,需要设计一个文件加密存储系统。回顾一些传统的加密算法,它们有几个共同的缺点:(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—),男,汉族,山西吕梁人,硕士研究生,助教,研究方向:大数据、云计算、人工智能。