一种基于云存储的安全存储方法

时间:2022-09-04 02:03:31

一种基于云存储的安全存储方法

【摘要】随着大数据时代的来临,分布式存储系统和云存储系统得到广泛应用,越来越多的个人和企业将自己的数据存储在云端。本文提出一种基于云存储的安全存储方法,保证用户数据的可靠性和私密性,对用户数据进行加密和冗余编码,分布式存储于多个云端,当用户数据被窃取时,加密技术保证数据的私密性;当用户数据发生丢失时,能够从其他可用的云存储中恢复数据,保证数据的可靠性。

【关键词】云存储;数据加密;冗余编码

1.引言

随着互联网技术的迅猛发展和数据量的爆炸式增长,云时代和大数据时代已经悄然来临,云存储服务是云计算[1]的一部分,云存储系统内部以高速网络互连的存储服务器为硬件基础,在其上运存分布式文件存储系统协调各个服务器的工作,借助虚拟化技术将众多的存储硬件合并为一个存储池,对外提供统一的存储服务。用户可根据自身需求向云存储提供商租用存储空间,具有管理方便简捷、脱离了繁琐的设备和技术问题、所付即所用、节省开支和扩展方便等优点。国内外公司也开发了自己的云存储系统和产品,如AmazonS3和Dropbox等,国内有阿里云存储和百度网盘等。

但由于数据并不存储在本地的存储设备中,用户对自己的数据不可控,存在着安全隐患。

虽然云存储服务商提供访问控制可以阻止一定程度的外来攻击,但并不能防范数据从内部泄露;其次,一个用户的数据往往保存在一个云中,这样数据集中于某个数据中心,存在着网络、供电等带来的单点故障问题,而一旦这个云存储系统因故障发生数据丢失,数据将无法恢复。针对云存储的私密性问题和可靠性问题,我们提出一种在多个云存储中存储数据的方法,并利用加密、冗余编码和数字签名保证数据的私密性、可靠性和完整性,最后我们对该方法提出的系统可用性进行分析。

2.相关背景

安全性问题从云存储诞生起就一直伴随着它[2]。数据安全包括数据的私密性、完整性、可靠性和不可否认性,前三者对用户来说是最为重要的。私密性要求数据不会被非法用户获取或查看;完整性要求数据不会被恶意用户篡改;可靠性要求数据不会丢失。而大多数商业云存储往往只在系统内部使用副本策略[3]保证数据的可靠性,比如亚马逊的S3存储[4],HDFS[5]。HAIL[6]是RSA公司2009年提出的一种针对云存储系统的高可用、完整性层,利用多服务器向用户保证数据的完整性和可用性。RACS[7]采用RAID[8]将数据条带化存储在多个云存储中,提高数据的可用性。

加密技术是保证数据私密的常用技术,可以分为对称加密和非对称加密。对称加密使用同一个密钥对数据进行加密和解密,常见对称加密算法有DES[10]、AES[11]、twofish[12]和IDEA[13]等,速度快于非对称加密。数字签名唯一标示相应数据文件,当该文件发生篡改时,其数字签名也就发生了变化,用户只通过检查数字签名即可判断数据完整性,常用的数字签名算法有SHA-1,MD5和HMAC。

冗余编码是一种向前纠错码(FEC),最先应用与通信领域,后来用于存储系统中保证数据的可靠性。RAID码是一种常见的冗余编码,常用于磁盘整列中,RAID-5和RAID-6分别能容单盘错和双盘错。Reed-Solomon码[14](RS码)能容更多磁盘失效,它保证n个磁盘中的k个可以恢复出原始数据(n>k),即当不多于n-k个磁盘发生故障时,数据仍然可用。

3.安全云存储系统和方法

3.1 安全云存储系统

基于云存储的安全存储系统由客户端和若干个云存储服务提供商提供的云存储组成。客户端对用户屏蔽了多个云存储的差异化存储接口,用户可以像使用本地磁盘一样使用远程若干个云存储组成的存储池。客户端对用户提供简单的读写接口,当用户要写入文件时如图1(a)所示,首先对文件进行加密,然后对加密后的密文数据进行冗余编码,最后通过用户客户端将编码后的冗余文件存储在不同的云存储上;当需要读取文件时如图1(b)所示,客户端从若干云存储中读取一定量的冗余文件,通过解码得到密文数据,最后通过密钥解密密文数据得到。

图1 基于云存储的安全存储系统示意图和数据读写过程

图2 不同n,k,f情况下系统可用概率

3.2 云存储系统API接口

将数据写入或者读出云存储系统必须使用不同云存储服务提供商的API接口,现有的云存储使用RESTful风格接口。我们将差异化的云存储系统虚拟化出一个统一的存储接口,通过该接口可以向不同的云存储系统发起读、写和查询等请求。所有在云存储存储的文件都是一个对象(object)。对象可以放在不同的容器(containers)中,容器类似于文件系统的根目录。参考已有的云存储系统对象-容器结构,我们提出以下统一接口:

container_operation(); //容器操作,支持PUT,GET,DELETE等

list_container(); //列出容器内所有对象

list_all_containers(); //列出所有容器

create_container(); //创建容器

object_operation(); //对象操作,同样支持PUT,GET,DELETE等

put_object_from_file(); //将本地文件写入到对象中

upload_large_file(); //针对大文件传输,分割为小文件分别传输

以上给出了容器和对象的相关操作,利用以上接口和相应参数就可以将文件存储到不同的云存储中。

3.3 数据读写过程

数据写入包括以下步骤:

步骤一:将原始文件F加密为密文文件Fe,加密算法为AES-128,加密密钥为kF,加密后文件长度为Fsize,即:Fe=Encryption(kF,F)。

步骤二:将密文文件Fe分割为k块等大小的分块文件,记做Fi(i=1,…,k),不足一块的分块文件用零填充至一个块文件大小。

步骤三:k块分块文件Fi通过(n,k)-RS码编码为n个冗余文件,记做Ri(i=1,…,n),n对应着云存储系统的个数。

冗余编码过程为:

forj=i,…,n

所有的ai,j组成一个范德蒙矩阵,这样就保证了Ri中的任意k个冗余文件可以恢复出k个分块文件。

步骤四:对n块冗余文件进行数据签名,得到n个签名文件Si(i=1,…,n)。

步骤五:将n个冗余文件存储到n个云存储系统中,Ri存储在编号为i的云存储系统中。

数据的读取包括以下步骤:

步骤一:从云存储系统中下载冗余文件,每下载一个冗余文件Ri就和其数字签名Si进行检查,检查通过则为有效冗余文件,检查失败则表示冗余文件发生篡改或损坏。下载k个有效冗余文件,记做Rdi(i=1,…,k)。

步骤二:k个有效冗余文件Rdi利用RS码解码得到k个分块文件Fi,合并k个分块文件得到填充零后的密文文件。

步骤三:利用Fsize裁剪填充后的密文文件,得到密文Fe,最终利用密钥为kF对密文解密得到原始文件F,即:F=Decryption(kF,Fe)。

3.4 失效冗余文件的恢复

我们对云存储中丢失的冗余文件进行恢复。修复是为了保证数据的冗余度,防止因失效冗余文件超过n-k个,导致原始的文件F用户无法读取。假设云存储系统D丢失的冗余文件为Rfailed,首先读取出k个有效冗余文件,解码得到k个分块文件;利用k个分块文件Fi按数据写入第三步骤重新编码得到丢失的冗余文件Rfailed;最后重新写入云存储系统D中。

4.可用性分析

下面将从可用性分析我们提出安全存储方法。使用PF表示一个文件F写入后其可用性,即可以正确读取出来的概率。由于每个云存储系统的基础设施和网络情况不同,可用性也不相同,我们设f1,f2,…,fn为n个云存储的不可用概率。那么n个云存储系统中,所有云存储均可用的概率为P0:

一个云存储发生不可用的概率P1为每一个云存储不可用,而其他云存储均可用的概率总和,即:

i个云存储发生不可用的概率为Pi,如果按照P1的方法计算会非常复杂。为简化起见我们令所有云存储不可用概率相同,令f1=f2=…=fn=f,那么:

由于我们的系统最多允许n-k个云存储同时不可用,那么系统整体的可用性可以用文件F是否可用的概率PF来表示,即:

图2给出n=4,k=2和n=5,k=3的情况下,云存储失效率从0.1到0.9的范围,整个云存储的可用率,当f=0.1时,即单个云存储系统可用率为0.9时,整个系统的可用率在n=4,k=2时为0.9963,在n=5,k=3时为0.9914,比将数据存储在单个云存储系统中高出至少一个数量级。

5.结论

本文针对大数据时代的数据私密性和可靠性等安全问题,提出了一种基于多个云存储的安全存储方法。利用加密技术保证数据的私密性,冗余编码和数字签名保证可靠性和用户数据完整性,通过分析系统可用性,我们基于多个云存储系统的安全存储方法,比将数据存储在单个云存储系统上可用性高出一个数量级,用户数据安全性、可靠性更高。

参考文献

[1]Armbrust,Michael,Armando Fox,Rean Griffith,Anthony D.Joseph,Randy Katz,Andy Konwinski,Gunho Lee et al."A view of cloud computing."Communications of the ACM 53,no.

[2]王会波.安全存储与云存储安全[J].信息安全与通信保密,12(2010):015.

[3]Murty,James.Programming Amazon Web Services: S3,EC2,SQS,FPS,and SimpleDB.O'Reilly Media,Inc.,2009.

作者简介:徐玉兰(1979―),陕西安康人,大学本科,初级职称,主要从事计算机教育教学。

上一篇:小酌中学物理教学 下一篇:预测全国手机耗电量的增长趋势