




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于hdfs的数据存储安全技术研究
0数据安全方面作为未来信息存储的重要方法,云存储也是人们关注的焦点。HDFS(hadoopdistributedfilesystem)是一个应用广泛的云计算开源分布式文件系统,支持高容错且可以部署在低成本的计算机上,提供高吞吐量的访问,适用于一些具有大量数据处理的应用程序。但是HDFS存在许多安全性方面的问题,如:用户认证问题、DataNode认证问题、文件存储与传输的机密性问题。目前,国内外对于云存储安全方面的研究还比较少。维护数据完整性,Cachin等曾提出采用加密工具的方法。Bower等提出分布式加密系统解决数据机密性问题。Weatherspoon的Antiquity与Kotla的SafeStore都是典型的研究数据可恢复机制的系统。在国内,针对云计算安全问题,冯登国等学者曾提出相应的安全机制和安全策略,清华大学侯清铧等设计了一种基于SSL安全连接和DaoLi安全虚拟监控系统保护用户数据安全性的解决方案。本文根据HDFS文件读取与写入的特点,提出基于HDFS输入输出流、在客户端完成数据加解密的安全技术方案,实现了以密文形式进行数据传输与存储,解决了HDFS数据泄露和篡改的问题。1hdfs文件读取HDFS存在数据完整性校验机制,HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和。客户端(即clientnode)在向HDFS写入数据时会计算并写入数据的CRC-32(循环冗余校验)校验和,然后将数据及其校验和发送到由一系列datanode组成的管线,datanode负责在验证收到的数据后存储数据及其校验和。clientnode从datanode读取数据时,同样需要验证校验和,将其与datanode中存储的校验和进行比较来完成数据校验。根据HDFS的完整性校验机制的特点,本文按以下流程设计基于HDFS文件读写的加解密机制。当客户端向HDFS写入文件数据时,加密操作在clientnode计算校验和之前执行;当客户端从HDFS读取文件数据时,解密操作在clientnode计算校验和并完成密文文件读取后执行。如图1所示,在HDFS文件写入过程中,clientnode通过对DistributedFileSystem对象调用create()函数来创建文件。DistributedFileSystem对namenode创建一个RPC调用。在文件系统的命名空间中创建一个新文件,此时该文件还没有相应的数据块。如果需要对存入HDFS的文件进行加密,clientnode首先应当从(PublicKeyLibrary)公钥库中获取当前用户的公钥,执行encrypt操作,获得存储文件加密后的密文文件。此时clientnode计算出密文文件的校验和,DistributedFileSystem向clientnode返回FSdataOutputStream后,clientnode开始写入密文文件及其校验和。由FSdataOutputStream封装而成的DFSOutputStream将clientnode写入的数据分成一个个数据包,并写入内部队列,称为“数据队列”(dataqueue)。clientnode将这些数据包发送至一系列datanode组成的管线,管线中的最后一个datanode负责验证校验和。如图2所示,在HDFS文件读取过程中,clientnode通过调用FileSystem对象的open()方法来打开希望读取的文件,这个对象是分布式文件系统的一个实例。DistributedFileSystem通过RPC调用namenode,以确定文件起始块的位置。DistributedFileSystem返回FSDataInputStream给clientnode并读取数据。clientnode通过反复的对FSDataInputStream对象调用read()方法,可以完成对datanode数据的读取。如果需要从HDFS中读取密文文件,则需要一个对文件进行解密的过程,clientnode需要对FSDataInputStream进行读取,获取密文文件后,通过自己掌握的私钥完成对密文文件的解密操作,获取文件明文。2rsa密钥分配和保密管理本文选择AES(advancedencryptionstandard)作为文件加密算法,它具有密码使用相对简单以及加密速度相对较快等优点,但是AES存在密钥分配和保密管理方面的问题。RSA作为一种非对称加密算法,不需要秘密分配密钥,并且密钥的安全管理也相对较容易。此外面对HDFS庞大云存储用户群体,作为公开密钥密码体制中十分重要的一种算法,RSA还可以完成用户认证和数字签名。本文提出将两种加密算法相互结合,运用于HDFS中文件传输和存储的加密,可充分利用AES和RSA两种算法的优点。2.1文件加密下载文件数据在传输过程中经AES加密处理后,需对加密密钥做RSA加密,得到的密钥密文与文件经过加密后的密文相绑定(云端密文文件存储格式如图5所示),通过系统分块并存储于HDFS的各存储节点,这样不但提高了系统的存储效率,也可以解决单钥密码的密钥分发问题。在读取并下载HDFS上的文件时,需要从存储密文中抽取AES密钥密文,通过用户的私钥进行解密获得密钥明文后,再对文件密文解密获得文件明文。具体过程如下:(1)如图3所示,在文件加密上传过程中,用户登录云存储系统,向HDFS发送传输文件请求时,并确定选择加密传输,同时由客户端随机密钥生成器生成一个128bit的AES加密密钥key。(2)在客户端对用户需要传输的文件Plaintext用生成的AES密钥进行加密获得文件密文Cipher。(3)使用该用户的2048bit的RSA公钥对该文件的加密密钥key进行加密,获得密钥密文KEY。(4)将密钥密文KEY与文件密文Cipher相绑定,按照文件密文储存格式加上相应的标记位和数据长度标识,存储于HDFS文件系统。(5)如图4所示,在文件解密下载过程中,当用户从云端HDFS文件系统下载文件时,在获得从HDFS系统传输至客户端的文件后,系统首先判断文件的第1比特,若为0,表示文件为明文存储,去掉标记位后即可还原为原始文件。若为1则表示文件为密文文件,需对其进行解密。(6)首先应提取文件中128字节(RSA加密后的大小)的AES密钥密文KEY,通过用户个人的RSA私钥可解密成为AES的明文密钥key。(7)通过获得的AES密钥key对存储文件密文的Cipher部分进行AES解密,获得存储文件明文。2.2aes密文存储云端文件的存储格式分为明文存储和密文存储两类。如图5所示。存储格式的第1比特为0,表示文件以明文存储;若为1,表示文件以密文存储。当文件以密文形式存储时,在密文前需要增加128字节用于放置经过RSA加密后AES密文密钥KEY,4个字节用于表示文件的有效数据长度,Cipher代表AES加密后的密文。(由于通过AES文件加密,每1024Byte的明文字节流通过加密后变为1040Byte的密文字节流,因此Cipher部分长度相对于原有的文件明文也有所增长)。3有差分轨迹上的攻击:aes加密首先对于文件传输时使用的AES算法进行分析,在未知AES密钥的前提下,可通过以下几种攻击方法对AES安全性进行分析。(1)穷举攻击:穷尽密钥搜索的平均复杂度为2k-1(k为密钥长度)次AES加密,针对本方案中的128bit密钥,需要进行2127次AES加密,计算量十分庞大,因此这种攻击方法是无效的。(2)差分攻击:AES算法采用的宽轨迹策略可有效抵抗差分分析,算法的4轮变换后的差分轨迹预测概率小于或等于2-150,8轮变换后也小于或等于2-300。因此可以确定足够大的轮数,使所有差分轨迹都小于1/2n-1(n位分组块的),从而使差分攻击失效。(3)内插攻击:AES算法中F256域,其展开式为:由于展开式十分复杂,这种攻击方法也是无效的。由以上分析可以看出,在未知AES密钥的前提下,AES算法对目前已知的攻击具有较好的免疫性。并且由于HDFS是将用户的文件按一定大小分片存储,可进一步增加系统的安全性。因此制约其安全性的瓶颈主要在于AES文件加密密钥的安全性,如何管理和存储文件加密密钥是决定方案安全性的重点。在本文设计的技术方案中,对文件传输存储,采用一次一密钥,存储的每一个文件都有其不同的AES密钥,且该AES密钥对于用户是透明的。此外由于采用RSA算法对每个文件的AES密钥进行加密,将加密的AES密钥密文与文件密文绑定并存储于HDFS,用户在整个过程中只需要保管好自己的RSA私钥即可。由于以上加密是在客户端(clientnode)上完成的,因此实现了文件的密文传输与密文存储。下面将对RSA的安全性进行分析。RSA的安全性依赖于大数的因子分解,这样攻击RSA系统的难度就是大整数因子分解的难度。Schroeppel算法作为一种较优越的因子分解算法,经常被研究者用来分析大数因子分解问题。表1为采用Schroeppel算法分解不同长度十进制数n的因子时所需要的运算次数。对于RSA系统,如果n的长度更长,因子分解越困难,一般来说,每增加10位二进制数,分解的时间就要加长一倍,密码就越难以破译,加密强度就越高。RSA通常选取的密钥长度为512,1024,2048bit。在本文设计的云存储安全技术方案中,由于RSA加密的对象为16字节的AES密钥,因此本方案选择2048bit的密钥,就目前而言具有很高的安全性。4规范对比及加解密机制在基于HDFS云存储数据传输过程中引入加解密机制后,除了提高数据安全性之外,应该纳入考虑的主要有以下两个方面:(1)加密与解密对于文件速率造成的影响;(2)加密与解密对于客户端主机性能所造成的影响。本文中的技术方案是在客户端完成文件的加密与解密,文件由明文加密变为密文后,其长度将发生变化。根据2.2中的文件存储格式分析,除需要对每个密文文件的文件头添加128Byte用于存储AES密文密钥外,在进行AES文件加密时,每1024Byte的明文字节流通过加密后将变为1040Byte的密文字节流。综上,密文文件长度相比于加密前明文长度约增长1.56%,因此通过加密,对于HDFS中namenode和datanode会造成约1.56%的额外的开销。对于HDFS中的clientnode,主要是增加了对于文件的加密与解密的时间开销和性能损失。文件加解密操作对整个文件传输速率的影响主要表现在两个方面:(1)对传输文件采用AES加解密所用的时间;(2)对AES密钥采用RSA加解密所用的时间。本文实验中搭建的Hadoop集群由1台namenode和3台datanode共4台服务器组成,客户端(clientnode)通过namenode来提交数据。4台服务器的配置为:Intel酷睿2双核G630@2700MHzCPU;网络环境为NetLinkBCM5784MGigabitEthernet;Hadoop版本为hadoop-1.0.3;Linux版本为ubuntu11.10;JDK采用1.6.0_17。客户端配置为Pentium/(R)Dual-CoreCPUE5200@2.5GHz。表2列出了用AES加密不同大小、不同类型文件以及HDFS传输该文件所用时间的实验数据。采用RSA加密AES明文密钥的时间,这里也做了相应的测试。其中128bit的AES密钥采用RSA加密平均耗时499ms,解密平均耗时32ms。由以上测试数据可见,文件通过AES加密或者解密耗时与文件类型无关。本文提出的安全方案中RSA算法对于AES密钥进行加解密时间相对较短,对于文件传输总的时间损耗和用户体验影响不大。AES文件加密耗时相对较长,会对HDFS造成较大的额外时间开销。除了对整体传输速率的影响外,加解密对于客户端主机性能的影响也十分重要。以上表中的165.617MB文件为测试用例,表3,表4,图6,图7为测试结果。表3和图6表现了客户端在原始、加入加密操作后两种状态下CPU占用率与上传速度之比。表4和图7表现了客户端在原始、加入解密操作后两种状态下CPU占用率与下载速度之比。由表3和表4可见,在HDFS传输过程中加入加解密机制,CPU占用率平均会增加22%~25%,总体文件传输速率会降低30%~35%。由图6和图7可见引入加解密机制后,客户端引入了3倍多的性能损失。由以上结果分析可得,加解密机制虽然会给客户端主机带来一定的性能损失,但是保障了数据的机密性,从用户数据安全性的角度考虑是可以接受的。实现加解密之后,由于加密和解密的时间损耗将会造成传输速率的下降。针对这种情况本文提出两点改进:(1)如图8中实现的用户操作界面,用户可自主选择是否对文件进行加密。重要的文件一般是以文本或图片的形式存在,这些文件一般长度较小,可选择加密存储。对于长度较大的文件,如视频、音频等文件,用户可根据实际需要自主选择是否加密存储,重要性较低的文件选用明文存储可提高文件的存取效率。(2)对于使用云存储用户而言,文件的传输与存储过程是透明的。因此针对大文件的存储传输,客户端可设置相应的传输加密缓冲区。在用户提交传输请求后,文件的加解密以及传输操作在后台完成,客户端只在传输完成后给出提示信息即可,可以改善用户体验。5应用技术及系统构成内目前存在并被广泛使用的云存储分布式文件系统,包括GoogleCloud的GoogleFileSystem,AmazonCloud的SimpleStorageService,MicroSoftAzure的LiveService和IBMBlueCloud的HadoopDistributeFileSystem等,都是提供的文件存储功能,并没有通过对用户文件进行加密保护其数据私密性的功能。清华大学候清铧等提出一种基于SSL安全连接和Daoli安全虚拟监控系统的保护云存储平台上用户数据私密性的解决方案。该方案中,用户与分布式文件系统进行数据交互时采用SSL安全连接来保障数据传输的私密性和安全性,通过在客户端和元数据服务器(或块数据服务器)上部署Daoli安全虚拟监督系统,将用户数据与操作系统隔离开来,确保用户数据在分布式文件系统中存储的安全性。由于需要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国家开放大学《个人理财》形考任务试题及答案
- 2025道德与法治课程标准测试题及答案
- 2025年基本公共卫生服务项目培训试题及答案
- 2025年安徽省公需科目弘扬时代精神,凝聚前行力量试题及答案
- 2025年国学知识竞赛试题及答案
- 交通拥堵动态干预机制考核试卷
- 照片墙的数字印刷技术探讨考核试卷
- 2025年度北京市国家工作人员学法用法题库及答案
- 2025年电梯安全管理人员考试及答案(A卷)
- 传感器在船舶自动识别系统中的应用考核试卷
- 2025年山西太原政府12345便民服务热线招聘60人自考难、易点模拟试卷(共500题附带答案详解)
- 现代农业信息化建设的网络安全保障措施
- 山东省日照市东港区新营中学2024-2025学年九年级上学期期中考试数学试题(无答案)
- 《电子陶瓷概述》课件
- 分田协议书范本2024年
- 《铁路轨道维护》课件-曲线方向整治
- 工业自动化设备智能化改造方案设计
- 住宅小区综合管网工程施工方案内容完整
- 保时捷订车合同范例
- 管道闭水试验(自动计算)
- 微专题讲义:零点差问题-解析版
评论
0/150
提交评论