一种数据库加密存取方法、系统及程序产品与流程

文档序号:40837191发布日期:2025-02-06 17:13阅读:2来源:国知局
一种数据库加密存取方法、系统及程序产品与流程

本发明属于数据库管理,具体涉及一种数据库加密存取方法、系统及程序产品。


背景技术:

1、随着数字时代的到来,人们一方面希望开放数据,一方面又需要保护数据不被非法窃取,因此,诞生了很多的数据加密存取方法。目前,不同场景下仍在使用的数据库加密技术主要有前置代理加密、应用系统加密、文件系统加密及后置代理加密等,其中:

2、1、前置代理加密技术。该技术的思路是在数据库之前增加一道安全代理服务,所有访问数据库的行为都必须经过该安全代理服务,在此服务中实现如数据加解密、存取控制等安全策略,安全代理服务通过数据库的访问接口实现数据存储。安全代理服务存在于客户端应用与数据库存储引擎之间,负责完成数据的加解密工作,加密数据存储在安全代理服务中。此技术依赖于安全代理,需要专门为数据库接口定制,不适用于数据交易,且某些匹配检索会比较慢。

3、2、应用系统加密技术。该技术是应用系统通过加密api(如jdbc、odbc、capi等)对敏感数据进行加密,将加密数据存储到数据库的底层文件中,在进行数据检索时,将密文数据取回到客户端,再进行解密,应用系统自行管理密钥体系。此方法也不利于数据交换于交易。

4、3、文件系统加解密技术。该技术不与数据库自身原理融合,只是对数据存储的载体从操作系统或文件系统层面进行加解密。这种技术通过在操作系统中植入具有一定入侵性的“钩子”进程,在数据存储文件被打开的时候进行解密动作,在数据落地的时候执行加密动作,具备基础加解密能力的同时,能够根据操作系统用户或者访问文件的进程id进行基本的访问权限控制。这样的技术与系统相关,不利于数据交换与交易。

5、4、后置代理加密技术。该技术是使用“视图”+“触发器”+“扩展索引”+“外部调用”的方式实现数据加密,同时保证应用完全透明。核心思想是充分利用数据库自身提供的应用定制扩展能力,分别使用其触发器扩展能力、索引扩展能力、自定义函数扩展能力以及视图等技术来满足数据存储加密,加密后数据检索,对应用无缝透明等核心需求。

6、然而,现有的这些数据库加密技术在应用时还是有很多不足,特别是在大规模传输整体数据库数据时。比如,有个数据提供方需要把数据库的数据整体给到一个接收方,并且需要一定程度的加密,通常这样的数据库加密需要把所有数据库文件整体加密再传输,在远程使用时通过整体解密再重建使用。这样做有几个问题,首先太大的数据文件加解密时间长,而且文件太大需要分块处理;其次,对于增量数据不好处理,对于实时数据基本上做不到,因为整体加密所有数据时,在数据没有传完的情况下重建数据无法进行;另外,如果使用的是数据库的原始数据文件,那么对于不同的数据库类型,在重建时需要相同的数据库引擎来处理,十分不便于不同类型数据库之间数据资源的相互转换重建。


技术实现思路

1、本发明的目的是提供一种数据库加密存取方法、系统及程序产品,用以解决现有技术中存在的上述问题。

2、为了实现上述目的,本发明采用以下技术方案:

3、第一方面,提供一种数据库加密存取方法,包括:

4、构建数据信息存储文件,将数据信息存储文件拆分为若干存储区块文件,并分别对各存储区块文件进行命名;

5、基于各存储区块文件的名称进行一致性哈希计算,确定各存储区块文件在第一哈希环中对应的第一位置节点;

6、提取源数据库中的各存储数据资源,确定各存储数据资源对应的数据表结构信息,并基于数据表结构信息和设定的数据信息存储加密密钥进行一致性哈希计算,确定各存储数据资源在第一哈希环中对应的第二位置节点;

7、根据各存储区块文件在第一哈希环中对应的第一位置节点以及各存储数据资源在第一哈希环中对应的第二位置节点,确定各存储数据资源所映射的存储区块文件,并将各存储数据资源写入其所映射的存储区块文件中,确定各存储数据资源在对应存储区块文件中的存储位置数据;

8、构建数据索引信息文件,将数据索引信息文件拆分为若干索引文件,并分别对各索引文件进行命名;

9、基于各索引文件的名称进行一致性哈希计算,确定各索引文件在第二哈希环中对应的第三位置节点,分别将各存储数据资源对应的数据表结构信息与设定的数据信息存储加密密钥组合,得到对应的索引信息,对各索引信息进行一致性哈希计算,确定各索引信息在第二哈希环中对应的第四位置节点;

10、根据各索引信息在第二哈希环中对应的第四位置节点以及各索引文件在第二哈希环中对应的第三位置节点,确定各索引信息所映射的索引文件;

11、计算各索引信息的键值,并确定各索引信息对应存储数据资源的存储位置数据,将各索引信息的键值与其对应存储数据资源的存储位置数据关联后写入其所映射的索引文件中;

12、构建数据库表结构信息文件,将源数据库的数据库名、源数据库的最新数据时间、存储区块文件的数量、各存储区块文件的名称、设定的数据信息存储加密密钥、索引文件的数量、各索引文件的名称以及源数据库中每个数据表的数据表结构信息写入数据库表结构信息文件中;

13、对写入完毕的数据库表结构信息文件进行加密和命名处理,得到对应的数据库信息关系文件;

14、将数据库信息关系文件、写入完毕的各存储区块文件以及写入完毕的各索引文件传输给接收端,以使接收端对数据库信息关系文件进行反向处理,并基于反向处理得到的各数据表的数据表结构信息以及设定的数据信息存储加密密钥组建各索引信息,基于各索引信息以及各存储区块文件的名称进行一致性哈希计算,确定各索引信息对应的存储区块文件,基于各索引信息以及各索引文件的名称进行一致性哈希计算,确定各索引信息对应的索引文件,计算各索引信息的键值,基于各索引信息的键值在对应的索引文件中找到关联的存储位置数据,根据存储位置数据在对应的存储区块文件中找到对应的存储数据资源,利用各存储数据资源与其数据表结构信息以及各数据表的数据表结构信息重建新数据库。

15、在一个可能的设计中,所述提取源数据库中的各存储数据资源,包括:从源数据库相应数据表的对应行和列数据单元提取初始存储数据资源;在初始存储数据资源满足设定的数据量条件或数据类型条件时,采用设定的数据信息存储加密密钥对初始存储数据资源进行对称加密处理,得到加密后的存储数据资源。

16、在一个可能的设计中,当所有初始存储数据资源的总数小于设定的阈值条件时,所述方法还包括:采用设定的数据信息存储加密密钥对所有的初始存储数据资源都进行对称加密处理,得到各初始存储数据资源加密后的存储数据资源。

17、在一个可能的设计中,所述数据表结构信息包括表名、字段列名和行号。

18、在一个可能的设计中,所述存储区块文件的名称包括数据库名、最新数据时间、存储区块文件数量和存储区块文件编号,所述索引文件的名称包括数据库名、最新数据时间、索引文件数量和索引文件编号。

19、在一个可能的设计中,所述对各索引信息进行哈希计算,包括:采用设定的哈希算法对各索引信息进行哈希计算,将计算得到的哈希值作为对应索引信息的键值。

20、第二方面,提供一种数据库加密存取方法,包括:

21、接收发送端传输的数据库信息关系文件、各存储区块文件以及各索引文件;

22、采用预置的密钥对数据库信息关系文件进行解密处理,得到数据库表结构信息文件,所述数据库表结构信息文件中包含源数据库的数据库名、源数据库的最新数据时间、存储区块文件的数量、各存储区块文件的名称、设定的数据信息存储加密密钥、索引文件的数量、各索引文件的名称以及源数据库中每个数据表的数据表结构信息;

23、基于各数据表的数据表结构信息以及设定的数据信息存储加密密钥遍历组建各索引信息;

24、基于各索引信息以及各存储区块文件的名称进行一致性哈希计算,确定各索引信息对应的存储数据资源在第一哈希环中所映射的存储区块文件,基于各索引信息以及各索引文件的名称进行一致性哈希计算,确定各索引信息在第二哈希环中所映射的索引文件;

25、计算各索引信息的键值,并基于各索引信息的键值在对应的索引文件中找到关联的存储位置数据,根据存储位置数据在对应的存储区块文件中找到对应的存储数据资源;

26、利用各存储数据资源与其数据表结构信息以及各数据表的数据表结构信息重建新数据库。

27、第三方面,提供一种数据库加密存取系统,包括建立数据对接的发送端和接收端,所述发送端用于:

28、构建数据信息存储文件,将数据信息存储文件拆分为若干存储区块文件,并分别对各存储区块文件进行命名;

29、基于各存储区块文件的名称进行一致性哈希计算,确定各存储区块文件在第一哈希环中对应的第一位置节点;

30、提取源数据库中的各存储数据资源,确定各存储数据资源对应的数据表结构信息,并基于数据表结构信息和设定的数据信息存储加密密钥进行一致性哈希计算,确定各存储数据资源在第一哈希环中对应的第二位置节点;

31、根据各存储区块文件在第一哈希环中对应的第一位置节点以及各存储数据资源在第一哈希环中对应的第二位置节点,确定各存储数据资源所映射的存储区块文件,并将各存储数据资源写入其所映射的存储区块文件中,确定各存储数据资源在对应存储区块文件中的存储位置数据;

32、构建数据索引信息文件,将数据索引信息文件拆分为若干索引文件,并分别对各索引文件进行命名;

33、基于各索引文件的名称进行一致性哈希计算,确定各索引文件在第二哈希环中对应的第三位置节点,分别将各存储数据资源对应的数据表结构信息与设定的数据信息存储加密密钥组合,得到对应的索引信息,对各索引信息进行一致性哈希计算,确定各索引信息在第二哈希环中对应的第四位置节点;

34、根据各索引信息在第二哈希环中对应的第四位置节点以及各索引文件在第二哈希环中对应的第三位置节点,确定各索引信息所映射的索引文件;

35、计算各索引信息的键值,并确定各索引信息对应存储数据资源的存储位置数据,将各索引信息的键值与其对应存储数据资源的存储位置数据关联后写入其所映射的索引文件中;

36、构建数据库表结构信息文件,将源数据库的数据库名、源数据库的最新数据时间、存储区块文件的数量、各存储区块文件的名称、设定的数据信息存储加密密钥、索引文件的数量、各索引文件的名称以及源数据库中每个数据表的数据表结构信息写入数据库表结构信息文件中;

37、对写入完毕的数据库表结构信息文件进行加密和命名处理,得到对应的数据库信息关系文件;

38、将数据库信息关系文件、写入完毕的各存储区块文件以及写入完毕的各索引文件传输给接收端。

39、在一个可能的设计中,所述接收端用于:

40、接收发送端传输的数据库信息关系文件、各存储区块文件以及各索引文件;

41、采用预置的密钥对数据库信息关系文件进行解密处理,得到数据库表结构信息文件,所述数据库表结构信息文件中包含源数据库的数据库名、源数据库的最新数据时间、存储区块文件的数量、各存储区块文件的名称、设定的数据信息存储加密密钥、索引文件的数量、各索引文件的名称以及源数据库中每个数据表的数据表结构信息;

42、基于各数据表的数据表结构信息以及设定的数据信息存储加密密钥遍历组建各索引信息;

43、基于各索引信息以及各存储区块文件的名称进行一致性哈希计算,确定各索引信息对应的存储数据资源在第一哈希环中所映射的存储区块文件,基于各索引信息以及各索引文件的名称进行一致性哈希计算,确定各索引信息在第二哈希环中所映射的索引文件;

44、计算各索引信息的键值,并基于各索引信息的键值在对应的索引文件中找到关联的存储位置数据,根据存储位置数据在对应的存储区块文件中找到对应的存储数据资源;

45、利用各存储数据资源与其数据表结构信息以及各数据表的数据表结构信息重建新数据库。

46、第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行第一方面中任意一种所述的方法。同时,还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,执行第一方面中任意一种所述的方法。

47、有益效果:本发明通过分解数据库的数据关系,并采用部分加密和一致性哈希计算,使得运算量较小,不需要对所有数据进行高强度加密,就能得到很好的加密效果;相对于传统的加密方式,使加密后的数据库被拆分成分块文件,方便传输交易,能在加密状态下实现检索、重构,并且,适用于一定程度的实时传输,不需要停止数据转换,就可以实现基于时间点的数据重建,提高大规模数据库传输效率;同时,这种在加密后传输后遵循本方法规则还能进行源数据快速检索、重建的方式,能有效支持多种加密类型数据库之间的相互转换重建。

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