一种数据安全存储平台的制作方法

文档序号:11590933阅读:166来源:国知局

本发明涉及数据存储技术领域,具体而言,涉及一种数据安全存储平台。



背景技术:

目前,云存储系统通常将同一文件数据在多个结点上保留副本,以保证数据的可靠性。云存储系统集成了大量的存储结点,由于存储结点所在的地理位置和管理策略不同,存储结点的可信度存在极大的差异。因此,为确保数据的安全性和访问的高效性,云存储系统的数据存储策略需要考虑结点可信度,用结点可信度来度量各存储结点的可靠性,在确保较低数据访问时间的同时,还具有良好的数据的可靠性。

作为一个云的分布式文件系统平台,具有以下一些优势:

(1)可扩展性,可以可靠地处理级的数据。

(2)经济性,整个集群可以由成千上万个节点组成,用户可以通过将数据分布到由廉价机组成的集群中进行处理。

(3)有效性,通过不同节点对数据进行分发,这样数据可以在不同的节点上并行处理,这样就大大地提速了数据的处理过程。

(4)可靠性,可以自动维护一份数据的多个拷贝,当计算任务失败时,它可以自动对失败的任务进行重新部署。

尽管己经被大家公认为当今处理大数据的较好开源平台,很多企业都己经采用它来进行海量数据的分析和设计,文件系统有很强的存储性能,但是在使用过程中,自身还是带有一定的局限性,其安全性能还不够高,为此,加强的安全性能势在必行。



技术实现要素:

本发明为了解决上述至少一个技术问题,提出了一种新的存储平台,通过设置存储平台包括认证服务器、安全密钥管理服务器、应用服务器和分布式集群(即hadoop),其中认证服务器连接至客户端,用于在客户端对分布式集群发送访问请求后,对访问请求进行安全性验证,安全密钥管理服务器连接至认证服务器,用于管理文件密钥,以将文件密钥的私钥分配给指定客户端,应用服务器连接在分布式集群与客户端之间,作为客户端的访问代理对分布式集群进行访问,分布式集群连接至应用服务器,用于存储云数据,在认证服务器根据私钥和访问请求判断客户端为指定服务器后,允许应用服务器对分布式集群进行访问。

根据本发明的第一方面的实施例,提出了一种数据安全存储平台,包括:认证服务器,连接至客户端,用于在客户端对分布式集群发送访问请求后,对访问请求进行安全性验证;安全密钥管理服务器,连接至认证服务器,用于管理文件密钥,以将文件密钥的私钥分配给指定客户端;应用服务器,连接在分布式集群与客户端之间,作为客户端的访问代理对分布式集群进行访问;分布式集群,连接至应用服务器,用于存储云数据,在认证服务器根据私钥和访问请求判断客户端为指定服务器后,允许应用服务器对分布式集群进行访问。

在该技术方案中,为了提高存储平台的安全性,通过上述设置方式连接认证服务器、安全密钥管理服务器、应用服务器和分布式集群(hadoop),在客户端上传云数据后,能够真正存储在云端之前做相关的数据加密处理,以保证数据的完整性、机密性,并保证该方法是可行的。

更进一步的,在传输和存储过程中对数据进行加密处理。

具体的,客户端主要负责用户文件的保存和持有,应用服务器作为访问存储系统的代理来访问文件,认证服务器完成用户在访问文件吋候进行身份认证,安全密钥管理服务器用于管理文件密明,并提供安全可靠的密明服务,包括密朗的存放、生成、更新等操作,分布式文件系统主要负责加密文件的存储及文件系统的可靠性和完整性保证。

客户端对存储平台的具体步骤按照如下过程执行:

(1)用户通过客户端访问集群;

(2)该集群向认证中心发出用户身份认证请求;

(3)ca认证中心接收到认证请求后,用户可以访问认证中心,通过自己的私钥完成数字签名进行身份验证;

(4)ca认证中心完成身份验证后,返回给客户端以示证明身份合法并附加自己的数字签名;

(5)用户通过己验证的身份证明,可以访问集群。

在上述技术方案中,分布式集群具体包括:一个主节点和至少一个子节点;交换机,连接于主节点与任一子节点之间,子节点存储有分片数据,主节点中存储有全部分片数据的映射表。

在该技术方案中,与现有的分布式集群相比较,存储平台中设置了安全密钥管理服务器,具体修改操作是在文件写入之前,首先对文件进行位的加密,接着由安全密朗管理服务器中生成一个随机密钥,该密朗可以对己经加密密文密钥再进行加密,最后将文件的密文写入中,并返回密文地址写入安全密钥管理服务器的中。

在上述任一项技术方案中,安全密钥管理服务器还用于:在分片数据写入子节点之前,对分片数据进行128位的aes算法加密;以及根据aes算法生成随机密钥;将经过aes算法加密的分片数据写入子节点中,并返回写入子节点的位置信息。

在该技术方案中,aes算法的执行主要分为三个阶段:map、shuffle和reduce。

在map阶段,首先需要将明文文件按照块(默认64mb)默认进行map任务的划分,然后针对同一块中的明文数据按照aes算法的块大小(aes为64位)生成<key,value>值对。其中key是明文相对于块文件的偏移量,value值是实际的位长的明文信息。

然后对每个<key,value>根据用户提供的密钥aes加密算法,将明文块加密为对应的密文块。在执行map任务时是并行的,这也意味着明文文件的加密的过程中,无法控制map任务的执行顺序,加密后的密文顺序会被打乱。因此,文章采用shuffle过程来保证原来的内容顺序。shuffle阶段将map阶段的输出进行分组,根据group值将相同的分在同一组中,并根据offset值进行排序,最终将统一组的数据传送到单一的reduce节点上,这大大减少了系统reduce任务的数量,提高了整个系统的并行执行效率。在reduce阶段,只需要按照组内的顺序将密文排列好,输出到文件系统中即可。如果用户希望最终的加密结果存放到单一文件,那么reduce的任务数据应该为1,但是这样会影响的reduce并行度。因此,对于较小的文件,可以将任务设为1,而较大的文件存储到多个文件,规定好文件名来表征最终的密文文件来自同一明文文件即可。

同样,对文件的解密过程也采用hadoop的分布式计算模型mapreduce进行,其解密过程和加密过程类似,只是解密过程中map阶段釆用解密算法,其他部分基本类似,这里不作赘述。

在上述任一项技术方案中,aes算法是采用mapreduce模型对明文进行加密操作,并采用shuffle模型确定生成的密文的顺序与加密操作前相同。

在上述任一项技术方案中,安全密钥管理服务器包括:mysql数据库,用于保存rsa算法加密的私钥,并保存aes算法的加密操作的密文路径。

在该技术方案中,rsa是一种公朝加密算法,因此在生成随机密钥时,会用公钥对aes加密的密文密钥进行加密,而对应的私钥需要进行妥善的保管。由于hdfs文件系统不善于保存小文件,本文在安全密钥管理服务器中引入mysql数据库,用来保存rsa的私钥。在保存的过程中,为了后面的解密过程能顺利找到aes加密的密钥和对应密文,本文还需要之前加密后的密文路径。因此,可以在mysql按这个行格式来保存数据:密文路径-私钥-密钥密文。

所述认证服务器和安全管理秘钥服务器和应用服务器在执行完每次请求操作之后都分别更新自身的日志文件。

在上述任一项技术方案中,安全密钥管理服务器只与分布式集群中的主节点进行数据交互。

在该技术方案中,由于安全密钥管理服务器管理着所有的私钥,因此对其具有较高的安全要求,对此,安密钥管理服务器需要最大程度的物理隔离,用户无法直接访问它。安全密钥管理服务器只和hdfs中的主节点通信,在访问时需要进行身份认证。

通过本发明的技术方案,在文件存储时进行了加密操作,它在一定程度上可能会影响整个系统的读写性能,但是,由于用户的很多信息或者数据文件的私密程度尤其高,如个人的私密照,个人的身份证明消息等需要进行最高层次的安全加密措施,为此引入的安全密钥管理服务器,保证了系统的安全性能。通过最后整个实验平台的性能测试分析,整个系统的读写性能、cpu和内存效率等都会有所下降,但有些时候,在性能下降可接受范围内,个人的信息安全比系统性能更为重要。

附图说明

图1示出了根据本发明的实施例的存储平台的框架示意图;

图2示出了根据本发明的实施例的存储平台的数据写入过程的示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用第三方不同于在此描述的第三方方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

图1示出了根据本发明的实施例的存储平台的框架示意图。

图2示出了根据本发明的实施例的存储平台的数据写入过程的示意图。

下面结合图1和图2对根据本发明的实施例的存储平台进行具体说明。

如图1所示,根据本发明的实施例的存储平台,包括:认证服务器,连接至客户端,用于在客户端对分布式集群发送访问请求后,对访问请求进行安全性验证;安全密钥管理服务器,连接至认证服务器,用于管理文件密钥,以将文件密钥的私钥分配给指定客户端;应用服务器,连接在分布式集群与客户端之间,作为客户端的访问代理对分布式集群进行访问;分布式集群,连接至应用服务器,用于存储云数据,在认证服务器根据私钥和访问请求判断客户端为指定服务器后,允许应用服务器对分布式集群进行访问。

在该技术方案中,为了提高存储平台的安全性,通过上述设置方式连接认证服务器、安全密钥管理服务器、应用服务器和分布式集群(hadoop),在客户端上传云数据后,能够真正存储在云端之前做相关的数据加密处理,以保证数据的完整性、机密性,并保证该方法是可行的。

更进一步的,在传输和存储过程中对数据进行加密处理。

具体的,客户端主要负责用户文件的保存和持有,应用服务器作为访问存储系统的代理来访问文件,认证服务器完成用户在访问文件吋候进行身份认证,安全密钥管理服务器用于管理文件密明,并提供安全可靠的密明服务,包括密朗的存放、生成、更新等操作,分布式文件系统主要负责加密文件的存储及文件系统的可靠性和完整性保证。

客户端对存储平台的具体步骤按照如下过程执行:

(1)用户通过客户端访问集群;

(2)该集群向认证中心发出用户身份认证请求;

(3)ca认证中心接收到认证请求后,用户可以访问认证中心,通过自己的私钥完成数字签名进行身份验证;

(4)ca认证中心完成身份验证后,返回给客户端以示证明身份合法并附加自己的数字签名;

(5)用户通过己验证的身份证明,可以访问集群。

在上述技术方案中,分布式集群具体包括:一个主节点和至少一个子节点;交换机,连接于主节点与任一子节点之间,子节点存储有分片数据,主节点中存储有全部分片数据的映射表。

在该技术方案中,与现有的分布式集群相比较,存储平台中设置了安全密钥管理服务器,具体修改操作是在文件写入之前,首先对文件进行位的加密,接着由安全密朗管理服务器中生成一个随机密钥,该密朗可以对己经加密密文密钥再进行加密,最后将文件的密文写入中,并返回密文地址写入安全密钥管理服务器的中。

具体的,如图2所示,hdfs写入过程包括:

1.在文件的写入过程中,hdfs客户端通过对distributedfilesystem这个对象并调用creat()函数来创建一个文件。

2.distributedfilesystem对namenode创建一个rpc调用,在文件系统的命名空间中创建一个新的文件,此时该文件还没有相应的数据块。

3.namenode执行各种不同的检查以确保这个文件不存在,并且客户端有创建该文件的权限,如果通过所有的检查,就会为创建新文件记录一条新的记录,否则就会在客户端抛出一个异常操作。

4.由此创建好记录后,distributedfilesystem给hdfs客户端返回一个fsdataoutputsteam对象,由此客户端才真正开始写入数据,数据由fsdataoutputsteam分成一个个的数据包(datapacket),并写入内部队列,称为数据队列(dataqueue,dq)。

5.fsdataoutputsteam分成一个个的数据包(datapacket),通过流式传输到第一个数据节点,并由该数据节点存储数据包,类似操作,第二个数据节点、第三个数据节点都存储该数据。

6.数据节点datanode返回给fsdataoutputsteam—个确认值,称为“确认队列”(ackqueue,aq)直到收到确认消息后才会将该数据包从队列中删除。

7.直到整个写入过程完成后,客户端会调用一个close()方法,结束数据包的写入。

本申请的写入过程对比原始的操作引入了即整体框架图中的安全密朗管理服务器。具体修改操作是在文件写入之前,首先对文件进行位的加密,接着由安全密朗管理服务器中生成一个随机密钥,该密朗可以对己经加密密文密钥再进行加密,最后将文件的密文写入中,并返回密文地址写入安全密钥管理服务器的中。

在上述任一项技术方案中,安全密钥管理服务器还用于:在分片数据写入子节点之前,对分片数据进行128位的aes算法加密;以及根据aes算法生成随机密钥;将经过aes算法加密的分片数据写入子节点中,并返回写入子节点的位置信息。

在该技术方案中,aes算法的执行主要分为三个阶段:map、shuffle和reduce。

在map阶段,首先需要将明文文件按照块(默认64mb)默认进行map任务的划分,然后针对同一块中的明文数据按照aes算法的块大小(aes为64位)生成<key,value>值对。其中key是明文相对于块文件的偏移量,value值是实际的位长的明文信息。

然后对每个<key,value>根据用户提供的密钥aes加密算法,将明文块加密为对应的密文块。在执行map任务时是并行的,这也意味着明文文件的加密的过程中,无法控制map任务的执行顺序,加密后的密文顺序会被打乱。因此,文章采用shuffle过程来保证原来的内容顺序。shuffle阶段将map阶段的输出进行分组,根据group值将相同的分在同一组中,并根据offset值进行排序,最终将统一组的数据传送到单一的reduce节点上,这大大减少了系统reduce任务的数量,提高了整个系统的并行执行效率。在reduce阶段,只需要按照组内的顺序将密文排列好,输出到文件系统中即可。如果用户希望最终的加密结果存放到单一文件,那么reduce的任务数据应该为1,但是这样会影响的reduce并行度。因此,对于较小的文件,可以将任务设为1,而较大的文件存储到多个文件,规定好文件名来表征最终的密文文件来自同一明文文件即可。

同样,对文件的解密过程也采用hadoop的分布式计算模型mapreduce进行,其解密过程和加密过程类似,只是解密过程中map阶段釆用解密算法,其他部分基本类似,这里不作赘述。

在上述任一项技术方案中,aes算法是采用mapreduce模型对明文进行加密操作,并采用shuffle模型确定生成的密文的顺序与加密操作前相同。

在上述任一项技术方案中,安全密钥管理服务器包括:mysql数据库,用于保存rsa算法加密的私钥,并保存aes算法的加密操作的密文路径。

在该技术方案中,rsa是一种公朝加密算法,因此在生成随机密钥时,会用公钥对aes加密的密文密钥进行加密,而对应的私钥需要进行妥善的保管。由于hdfs文件系统不善于保存小文件,本文在安全密钥管理服务器中引入mysql数据库,用来保存rsa的私钥。在保存的过程中,为了后面的解密过程能顺利找到aes加密的密钥和对应密文,本文还需要之前加密后的密文路径。因此,可以在mysql按这个行格式来保存数据:密文路径-私钥-密钥密文。

在上述任一项技术方案中,安全密钥管理服务器只与分布式集群中的主节点进行数据交互。

所述认证服务器和安全管理秘钥服务器和应用服务器在执行完每次请求操作之后都分别更新自身的日志文件。以便可以查询每次的请求记录,并且可用于容错分析。

在该技术方案中,由于安全密钥管理服务器管理着所有的私钥,因此对其具有较高的安全要求,对此,安密钥管理服务器需要最大程度的物理隔离,用户无法直接访问它。安全密钥管理服务器只和hdfs中的主节点通信,在访问时需要进行身份认证。

考虑到相关技术中提出的云数据存储的安全问题,本发明提出了一种新的存储平台,通过设置存储平台包括认证服务器、安全密钥管理服务器、应用服务器和分布式集群(即hadoop),其中认证服务器连接至客户端,用于在客户端对分布式集群发送访问请求后,对访问请求进行安全性验证,安全密钥管理服务器连接至认证服务器,用于管理文件密钥,以将文件密钥的私钥分配给指定客户端,应用服务器连接在分布式集群与客户端之间,作为客户端的访问代理对分布式集群进行访问,分布式集群连接至应用服务器,用于存储云数据,在认证服务器根据私钥和访问请求判断客户端为指定服务器后,允许应用服务器对分布式集群进行访问。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1