一种低耦合的通用数据加解密方法及系统与流程

文档序号:15594555发布日期:2018-10-02 19:21阅读:172来源:国知局

本发明涉及数据存储安全技术,具体涉及一种低耦合的通用数据加解密方法及系统。



背景技术:

数据作为存储系统中最核心的资产,其安全性至关重要。最开始的存储系统是本地直连的方式,数据安全可以通过外网隔离等方式实现,如今随着网络存储和分布式存储的发展,数据被网络上的众多机器共享,因而更加容易受到攻击。从根本上来说,数据的安全存储主要是保证数据完整可靠不泄密。

现阶段存在很多商业或者开源的底层存储系统,这些存储系统绝大部分都通过明文访问底层数据,这样必然会存在安全隐患。同时由于部分存储系统紧耦合结构,即存储系统内部各个模块关系紧密,各模块之间依赖关系强;开发者如果需要在这些存储系统中插入加解密的模块,那么将会花费很长时间对该系统进行解耦,同时插入的加解密模块很容易使系统更脆弱,更容易崩溃,这无疑加重了技术开发的难度以及延长了技术的开发周期;对于一些自带加解密模块的存储系统,系统没有提供对外的加解密接口,加解密只能使用cpu资源来进行,由于加解密计算密集特性以及cpu并发性能弱等因素,从而导致加解密性能低,加解密占用的cpu资源大,从而导致用户体验差。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种低耦合的通用数据加解密方法及系统,本发明能够适配不同的底层存储系统、具有低耦合架构、高性能、高可靠、通用性好的优点,能够最大限度提高系统可用性,降低加解密数据时延、满足高可靠性要求。

为了解决上述技术问题,本发明采用的技术方案为:

一种低耦合的通用数据加解密方法,实施步骤包括:

1)预先通过数据加解密客户端挂载预先部署的底层存储系统并挂载数据加密卡作为数据加解密服务器,阻塞等待用户的读写请求,如果收到用户的写请求,则跳转执行步骤2);如果收到用户的读请求,则跳转执行步骤3);

2)通过数据加解密客户端将带有未加密的明文数据的写请求分解成指定大小的数据段且对数据段进行对齐,然后将数据段一一发送给加解密服务器;加解密服务器将对应的数据段中的数据通过密钥进行加密后写入底层存储系统,且密钥存储在写入文件的指定位置,将执行结果返回给数据加解密客户端,跳转执行步骤1);

3)解析读请求,确认数据加解密客户端的缓存中是否存在需要读取的明文数据,如果存在则更新缓存数据的存活时间,并将缓存中的数据返回;如果不存在则读取底层存储系统上对应的源数据,将源数据返回时通过加解密服务器将密文数据通过密钥进行解密,最终将解密后的明文数据通过数据加解密客户端的缓存进行缓存后返回给数据加解密客户端,跳转执行步骤1)。

优选地,步骤2)中的指定大小的数据段是指4k字节大小的数据段。

优选地,步骤2)中密钥存储在写入文件的第一个4k字节中。

优选地,所述数据加解密客户端包括fuse层、vfs层、明文cache层、加密层、密文cache层,其中fuse层用于通过fuse文件系统挂载数据加解密客户端,vfs层用于调用底层存储系统的读写操作,明文cache层用于作为读缓冲缓存将解密后的明文数据,加密层用于挂载数据加密卡作为数据加解密服务器,密文cache层用于作为写缓冲缓存通过密钥进行加密后写入底层存储系统的数据。

本发明还提供一种低耦合的通用数据加解密系统,包括计算机设备,其特征在于:所述计算机设备被编程以执行本发明低耦合的通用数据加解密方法的步骤。

本发明具有下述优点:

1、本发明方法通过将不同的文件系统进行抽象后采用统一的方式进行操作,从而用户可以直接进行读写调用而无须考虑具体文件系统和实际物理介质,能够向下兼容不同的底层存储系统,既可以是标准的底层存储系统,又可以是类似于glusterfs的分布式存储系统,保证数据加密方法的通用性;

2、本发明方法使用的加密的密钥也会写入底层存储系统中,当更换系统后,可以重新部署环境来读取已存在的加密数据,从而最大的保证了数据的可用性;

3、发明方法使用加解密卡单独对数据进行加解密,既可以保证了数据加解密的低时延,又极大的满足了存储数据的高可靠性要求;

4、本发明方法具有低耦合特性,即模块之间的依赖关系弱,模块之间的接口关系简单,从而使得用户能够动态的对加解密客户端中模块进行调节以提升数据的读写性能。

附图说明

图1为本发明实施例方法的应用环境示意图。

图2为本发明实施例中的写流程示意图。

图3为本发明实施例中的读流程示意图。

图4为本发明实施例中的文件加密结构示意图。

图5为本发明实施例方法的数据加解密客户端拓扑结构示意图。

具体实施方式

下文将以图1所示,包含加密卡、gluserfs文件系统以及ext4文件系统的linux操作系统为例,对本发明具有低耦合、高可靠的通用的数据加解密方法及系统进行进一步的详细说明。本实施例实施的基础为部署好底层存储系统,本实施例具体部署gluserfs文件系统作为底层存储系统,且gluserfs文件系统构成存储集群,管理员选择存储集群的若干台存储服务器划分出对应的空闲分区搭建分布式文件系统,该文件系统提供基础的存储服务,与应用本实施例低耦合的通用数据加解密方法的主机在一个集群中。

如图2和图3所示,本实施例低耦合的通用数据加解密方法的实施步骤包括:

1)预先通过数据加解密客户端挂载预先部署的底层存储系统并挂载数据加密卡作为数据加解密服务器,阻塞等待用户的读写请求,如果收到用户的写请求,则跳转执行步骤2);如果收到用户的读请求,则跳转执行步骤3);

2)通过数据加解密客户端将带有未加密的明文数据的写请求分解成指定大小的数据段且对数据段进行对齐,然后将数据段一一发送给加解密服务器;加解密服务器将对应的数据段中的数据通过密钥进行加密后写入底层存储系统,且密钥存储在写入文件的指定位置,将执行结果返回给数据加解密客户端,跳转执行步骤1);

3)解析读请求,确认数据加解密客户端的缓存中是否存在需要读取的明文数据,如果存在则更新缓存数据的存活时间,并将缓存中的数据返回;如果不存在则读取底层存储系统上对应的源数据,将源数据返回时通过加解密服务器将密文数据通过密钥进行解密,最终将解密后的明文数据通过数据加解密客户端的缓存进行缓存后返回给数据加解密客户端,跳转执行步骤1)。

数据加解密客户端对上层调用者屏蔽了应用端与文件系统之间的细节,调用者只需要指定保存密文的外部文件系统类型和加解密的算法即可。

如图4所示,步骤2)中的指定大小的数据段是指4k字节大小的数据段。根据数据加解密的标准,客户端中加密卡对固定长度的明文加密生成了相同长度的密文;当加密长度过长,对于小于该加密长度的小文件加密时,会生成与加密长度同等大小的密文,从而浪费了存储空间,当加密长度过小时,大文件如果按照加密长度进行加密,则加密次数太多,从而降低了数据的加密性能。此处采用了虚拟内存中页的大小长度4k作为数据加解密长度。由于客户端中加密卡对数据加密的长度设置为4k字节加密,因此从客户端将会对写操作的数据从头到尾按照4k长度一一发送给加密层,通过加密卡对齐进行加密。如果需要写入的数据长度不是4k字节的整数倍,客户端会自动对不足4k字节的数据进行补零。

如图4所示,步骤2)中密钥存储在写入文件的第一个4k字节中。数据加解密客户端调用加密层的加密卡对数据进行加密,加密的密钥存储在文件的前4k字节中,如果是新创建一个文件,则首先在文件的头部写入加密信息,如果是append操作,则需要首先读取文件的前4k字节返回至加密层,在加密层解析该4k字节获取到加密密钥等信息。然后通过该加密密钥对明文数据进行加密。数据加密完成后,通过类vfs层调用glusterfs文件系统的写操作,将密文数据一一写入存储中。如果写入成功,则返回成功信息,如果失败则返回失败信息。

如图5所示,本实施例中数据加解密客户端包括fuse层、vfs层、明文cache层、加密层、密文cache层,其中fuse层用于通过fuse挂载数据加解密客户端,vfs层用于调用底层存储系统的读写操作,明文cache层用于作为读缓冲缓存将解密后的明文数据,加密层用于挂载数据加密卡作为数据加解密服务器,密文cache层用于作为写缓冲缓存通过密钥进行加密后写入底层存储系统的数据。本实施例中,使用数据加密卡作为数据加解密服务器,调用者指定glusterfs作为密文的存储介质,任选一种加密算法作为数据的加密算法,然后通过加解密客户端对文件系统进行挂载。加解密客户端采用fuse文件系统(用户空间文件系统,filesysteminuserspace,简称fuse)挂载,上层命令实际上是通过读取打开/dev/fuse设备文件的文件描述符获取的,正常情况下,客户端阻塞读取该设备,但当系统接收到调用者对挂载文件夹进行操作时,加解密客户端会通过该设备获取到这些操作信息。在读取文件时,通过类vfs层调用glusterfs中的读操作,因为加密信息存储在文件的前4k字节,因而首先需要读取文件的前4k字节,并对该数据进行解析,获取到数据的解密密钥。同时又因为数据加解密的单位长度为4k字节,因此我们读取数据的长度为4k字节的整数倍。在这个过程中,如果获取失败,则失败返回;加密层首先对获取到的文件前4k字节进行解析,获取到解密密钥,然后对读取到的4k字节整数倍的数据从头到尾依次进行解密。同时解密后的数据在缓存层中进行缓存更新,最后将数据返回。

综上所述,本实施例低耦合的通用数据加解密方法通过使用数据加密卡作为数据加解密服务器,通过数据加解密客户端挂载该文件系统,对底层文件系统的读写操作都是通过该数据加解密客户端进行的;数据加解密客户端挂载后,数据加解密服务器与数据加解密客户端之间传输未加密的明文数据,与存储服务器之间传输密文数据,同时数据加解密客户端的明文cache层能够缓冲明文数据以提升读性能,具有可拓展性、高可靠性、低耦合的优点,能够满足对加密存储的数据的低时延和高可靠性的要求。

此外,本实施例还提供一种低耦合的通用数据加解密系统,包括计算机设备,该计算机设备被编程以执行本实施例低耦合的通用数据加解密方法的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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