一种多云环境下的安全云存储方法

文档序号:8433939阅读:162来源:国知局
一种多云环境下的安全云存储方法
【技术领域】
[0001]本发明属于云计算技术领域,涉及一种多云环境下的安全云存储方法。
【背景技术】
[0002]随着云计算的迅速发展,越来越多的中小企业将自己的信息化系统以及业务数据迀移到云端。与传统的软件架构相比,云计算在运营和支持方面的成本更低廉,同时又能够获得更快速的部署能力和近乎无限的伸缩性等收益。通过云计算,中小企业不需要大量资金去购买计算,存储以及网络设备,以及人力去建造,维护企业私有机房。然而,把应用以及数据部署到云端同样带来很多问题,如厂商锁定(vendor lock-1n)中小企业依赖某一云计算厂商,除非花费巨大成本,否则无法选择另一厂商,以及数据安全问题,有关企业数据的安全问题没有得到妥善解决。大量调查结果显示数据安全问题是企业应用迀移到云计算的最大障碍之一。目前,提高云端数据安全的传统方法是进行数据加密。然而,一旦密钥泄露,云计算厂商便可以获取用户数据信息。
[0003]目前未发现在多云环境下解决安全云存储的技术方法。现有的方案大部分是在单一云计算厂商环境下,依赖于传统的数据加密/解密。该方案会导致厂商锁定问题,用户需要大量资金将业务从一个云计算厂商转移到另一个厂商;以及一旦密钥泄露,云计算厂商会获取用户的所有数据。

【发明内容】

[0004]本发明的目的是为了克服已有技术的缺陷,解决云端数据安全存储问题,提出一种多云环境下的安全云存储方法。
[0005]本发明方法是通过下述技术方案实现的:
[0006]一种多云环境下的安全云存储方法,包括数据的存储和读取,其中数据存储包括以下步骤:
[0007]步骤一、数据分块:采用定长分块算法,根据预设的数据块大小对文件进行切分;对于每一个数据分块,采用哈希指纹算法计算数据的固定位长的校验值,作为数据块的唯一标识符;
[0008]步骤二、数据去重:根据每个数据块的标识符,查找服务器端是否已经存储当前的数据块;如果数据块已经存在,则不再进行传输存储,从而减少通信存储的开销;
[0009]步骤三、数据编码:对于任意一个数据块,采用Reed-Solomon erasure code进行编码存储,增强每一块数据的可用性;在η份原始数据基础上增加m份编码数据,并通过n+m份中的任意η份数据,还原为原始数据;
[0010]步骤四、数据加密:对于每一个数据分块,采用块加密算法在客户端进行加密,再经过压缩上传至公共云服务商的数据存储服务器;
[0011]步骤五、云间传输管理;将数据分块存储至不同的云服务商,其中云间传输管理抽象出一层传输管理包括七个公用方法:建立连接,初始化,文件列表,上传数据,下载数据,删除数据,断开连接,使得不同的云服务商只需要基于其API实现云间传输管理的七个方法,即可接入安全云存储方法;
[0012]当读取数据的时候,包括以下几个步骤:
[0013]步骤一、元数据读取:用户读取文件,首先在元数据服务器查找该文件所包含的所有数据块以及其存放地址,元数据同时也存储各个数据分块的组装序列;
[0014]步骤二、读取优化:获取用户请求的源IP地址,解析用户所在地点,就近选择离用户近的数据块或者编码块,从而提高数据读取的效率;
[0015]步骤三、数据读取:并行从不同的云服务商读取相应的数据块;
[0016]步骤四、数据解密:对于每一个数据块,进行客户端解密;
[0017]步骤五、数据解码:如果读取的是编码块,则根据编码块以及对应数据块,根据Reed-Solomon编码进行解码,获取相应的源数据块;
[0018]步骤六、数据组装:获取所有的源数据块后,按照分块组装序列进行数据块组装,恢复原来的文件。
[0019]进一步地,其中采用64位或者128位的MD5,SHA1,算法产生64位或者128位的校验值作为数据块唯一标识符,用于数据块去重,索引以及恢复数据。
[0020]本发明的有益效果:
[0021]本发明提出一种多云环境下的安全云存储方法,给用户提供不同安全强度的数据存储方案,使得用户可以根据企业数据的不同特点,自行选择不同的数据存储方案。其次,如果用户已经拥有私有机房,可以通过本发明将其现有资源接入其他云计算厂商,形成混合云,多云环境,使得其业务不再依赖单一云计算厂商。这样,用户的数据可以分布存储在不同的厂商,使得没有单个厂商可以获取全部数据,从而加强数据的安全性。
【附图说明】
[0022]图1为本发明实施方式的架构设计图;
[0023]图2为本发明流程图。
【具体实施方式】
[0024]下面结合附图对本发明作进一步介绍。
[0025]本发明发明包涵三个交互实体,如图1架构设计所示:客户端同步服务,元数据服务器以及数据存储服务器。各部分详细情况如下说明:
[0026](I)客户端同步服务程序负责处理用户的数据,包括数据分块,去重,编码,索引,加密/解密以及压缩;对于客户来说,客户端处理程序是可以信任的,因为数据没有离开客户端,进入公共云提供商。
[0027](2)元数据服务器存储所有元数据,元数据用于索引以及恢复数据。元数据服务器可以位于客户私有机房,也可以位于用户信赖的公共云服务提供商。本方法提供接口,可以让用户指定元数据服务器位置。
[0028](3)数据存储服务器位于与客户合作的公共云服务提供商。用户可以根据自己的实际情况,选择一个或多个公共云服务提供商,降低对任意一个云服务提供商的依赖,使得没有一个公共云服务提供商拥有用户的全部数据。
[0029]本发明方法的核心是客户端同步服务程序,此程序运行在客户端,对用户的数据进行处理,将处理之后的数据存储至公共云服务提供商。图2具体描述了客户端同步服务程序的6个模块:
[0030]1、数据分块:采用定长分块算法,用户可以预先义好数据块的大小,比如512KB,对文件进行切分;文件块不足数据块大小,就不需要进行切分。对于每一个数据分块,采用哈希指纹算法计算数据的固定位长的校验值,作为数据块的唯一标识符。用户可以指定哈希指纹算法,如64位或者128位的MD5,SHA1,算法产生64位或者128位的校验值作为数据块唯一标识符,用于数据块去重,索引以及恢复数据。
[0031]2、数据去重:根据每个数据块的标识符,查找服务器端是否已经存储当前的数据块。如果数据块已经存在,则不再进行传输,存储,从而减少通信,存储的开销。
[0032]3、数据编码/解码:对于任意一个数据块,数据编码/解码会采用Reed-Solomonerasure code进行编码存储,用来增强每一块数据的可用性。Reed-Solomon erasure code可以将η份原始数据,增加m份数据,并能通过n+m份中的任意η份数据,还原为原始数据,从而增强了数据的可用性。比如说对于η = 6,m = 3Reed-Solomon【I】编码,意味着有6个原始数据块和3个编码数据块。每一个编码数据块都是由6个原始数据块计算得来,所以通过计算只要9个数据块中任意6个是完整的,都能恢复到原来的6个原始数据块,从而提高了数据的可用性,同时可以发现,存储的开销是(n+m)/n,当n = 6,m = 3时,存储开销是1.5x。在本专利方法下,数据块被分布存储到不同的云计算厂商,避免用户依赖于单一云计算厂商。
[0033]4、数据加密/解密。对于每一个数据分块,可以采用块加密算法比如RSA-256进行加密。数据经过客户端加密之后,再上传至公共云服务商的数据存储服务器。
[0034]5、数据压缩。数据在上传之前需要进一步进行压缩,经过压缩之后,网络传输更加节省带宽资源,减少网络建立连接的开销。
[0035]6、云间传输管理。不同的云服务提供商有不同的应用程序编程接口APIs (Applicat1n Programming Interfaces),云间传输管理抽象出一层传输管理包括七个公用方法:建立连接,初始化,列表文件,上传数据,下载数据,删除数据,断开连接。不同的云服务商只需要基于其API实现云间传输管理的七个方法,便可以轻松接入本发明定义的安全云存储方法。
[0036]虽然结合了附图描述了本发明的实施方式,但是对于本领域技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,这些也应视为属于本发明的保护范围。
【主权项】
1.一种多云环境下的安全云存储方法,其特征在于,包括数据的存储和读取,其中数据存储包括以下步骤: 步骤一、数据分块:采用定长分块算法,根据预设的数据块大小对文件进行切分;对于每一个数据分块,采用哈希指纹算法计算数据的固定位长的校验值,作为数据块的唯一标识符; 步骤二、数据去重:根据每个数据块的标识符,查找服务器端是否已经存储当前的数据块;如果数据块已经存在,则不再进行传输存储,从而减少通信存储的开销; 步骤三、数据编码:对于任意一个数据块,采用Reed-Solomon erasure code进行编码存储,增强每一块数据的可用性;在η份原始数据基础上增加m份编码数据,并通过n+m份中的任意η份数据,还原为原始数据; 步骤四、数据加密:对于每一个数据分块,采用块加密算法在客户端进行加密,再经过压缩上传至公共云服务商的数据存储服务器; 步骤五、云间传输管理;将数据分块存储至不同的云服务商,其中云间传输管理抽象出一层传输管理包括七个公用方法:建立连接,初始化,文件列表,上传数据,下载数据,删除数据,断开连接,使得不同的云服务商只需要基于其API实现云间传输管理的七个方法,即可接入安全云存储方法; 当读取数据的时候,包括以下几个步骤: 步骤一、元数据读取:用户读取文件,首先在元数据服务器查找该文件所包含的所有数据块以及其存放地址,元数据同时也存储各个数据分块的组装序列; 步骤二、读取优化:获取用户请求的源IP地址,解析用户所在地点,就近选择离用户近的数据块或者编码块,从而提高数据读取的效率; 步骤三、数据读取:并行从不同的云服务商读取相应的数据块; 步骤四、数据解密:对于每一个数据块,进行客户端解密; 步骤五、数据解码:如果读取的是编码块,则根据编码块以及对应数据块,根据Reed-Solomon编码进行解码,获取相应的源数据块; 步骤六、数据组装:获取所有的源数据块后,按照分块组装序列进行数据块组装,恢复原来的文件。
2.如权利要求1所述的一种多云环境下的安全云存储方法,其特征在于,进一步地,其中采用64位或者128位的MD5,SHAl,算法产生64位或者128位的校验值作为数据块唯一标识符,用于数据块去重,索引以及恢复数据。
【专利摘要】本发明为一种多云环境下的安全云存储方法,解决了云端数据安全存储问题。该方法包括数据的存储和读取,其中数据存储包括以下步骤:步骤一、数据分块;步骤二、数据去重;步骤三、数据编码;步骤四、数据加密;步骤五、云间传输管理;当读取数据的时候,包括以下几个步骤:步骤一、元数据读取;步骤二、读取优化;步骤三、数据读取;步骤四、数据解密;步骤五、数据解码;步骤六、数据组装。
【IPC分类】H04L29-08
【公开号】CN104754055
【申请号】CN201510156132
【发明人】庄浩, 张继勇
【申请人】易云捷讯科技(北京)有限公司
【公开日】2015年7月1日
【申请日】2015年4月3日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1