一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据库透明加密方法、装置、计算机设备及存储介质与流程

2022-04-25 03:48:06 来源:中国专利 TAG:


1.本发明涉及数据库,更具体地说是指数据库透明加密方法、装置、计算机设备及存储介质。


背景技术:

2.如今在所有的行业中,数据已经成为用户最重要的资产之一,其重要性日益提升。随之而来的就是针对数据的窃取攻击也越来越多,如何保证数据的安全成为用户最关心的问题之一。对重要数据进行加密是常见的保护数据安全的手段之一,现有三种加密技术,一是前置代理及加密网关技术,该技术思路是在数据库之前增加一道安全代理服务,对数据库访问的用户必须经过该安全代理服务,在此服务中实现如数据加解密、存取控制等安全策略;然后安全代理服务通过数据库的访问接口实现数据在库中的最终存储。安全代理服务存在于客户端应用与数据库存储引擎之间,负责完成库中数据的加解密工作,加密数据存储在安全代理服务中;二是应用层加密技术,应用系统通过加密api等对敏感数据进行加密,将加密数据存储到数据库的底层文件中;在进行数据检索时,将密文数据取回客户端,再进行解密,另外应用系统将自行管理密钥体系;三是基于视图和触发器的后置代理技术,使用“视图” “触发器” “扩展索引” “外部调用”的方式实现数据加密,同时保证应用完全透明。它的核心思想是充分利用数据库自身提供的应用定制扩展能力,分别使用其触发器扩展能力、索引扩展能力、自定义函数扩展能力以及视图等技术来满足数据存储加密,加密后数据检索,对应用无缝透明等最主要需求。
3.但是上述的加密技术在初始化过程中不可对原数据进行加密,需要将业务暂停,待初始化完成后重启,才能避免业务系统出现故障,对于大文件,初始化需要将文件进行全部加密,造成初始化时间长,业务暂停时间长,初始化需要开辟一个区域存放元数据信息,导致文件内容往后移,对于大文件,速度比较慢,且此时明文密文同时存在,需要消耗双倍资源。
4.因此,有必要设计一种新的方法,实现在不停业务系统的情况下完成对数据库的初始化,并在数据不断查询和使用过程中,完成对于数据库中存储数据的加密,无需中断业务,也不会造成性能的损耗,初始化时间短。


技术实现要素:

5.本发明的目的在于克服现有技术的缺陷,提供数据库透明加密方法、装置、计算机设备及存储介质。
6.为实现上述目的,本发明采用以下技术方案:数据库透明加密方法,包括:
7.获取待写入的数据,以得到初始数据;
8.初始化配置相关信息;
9.判断所述初始数据是否是需要加密;
10.若所述初始数据需要加密,则采用分片加密方式对所述初始数据进行加密,并将
加密结果写入磁盘文件中;
11.若所述初始数据不需要加密,则将所述初始数据写入磁盘文件中。
12.其进一步技术方案为:所述初始化配置相关信息,包括:
13.设置数据加密规则以及拦截策略。
14.其进一步技术方案为:所述采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中,包括:
15.将所述初始数据进行分片,以得到分片结果;
16.对所述分片结果进行分时加密,当加密过程有磁盘io时,则挂起所述磁盘io,直至当前的所述分片结果加密完成,再执行所述磁盘io。
17.其进一步技术方案为:所述采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中之后,还包括:
18.获取读取请求;
19.判断所述读取请求对应的数据文件是否是信任进程;
20.若所述读取请求对应的数据文件是信任进程,则对所述读取请求对应的数据文件进行解密返回至数据库,以使得数据库获取解密结果后进行处理,以返回处理后的数据至终端;
21.若所述读取请求对应的数据文件不是信任进程,则返回所述读取请求对应的数据文件。
22.本发明还提供了数据库透明加密装置,包括:
23.写入数据获取单元,用于获取待写入的数据,以得到初始数据;
24.初始化单元,用于初始化配置相关信息;
25.加密判断单元,用于判断所述初始数据是否是需要加密;
26.分片加密单元,用于若所述初始数据需要加密,则采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中;
27.写入单元,用于若所述初始数据不需要加密,则将所述初始数据写入磁盘文件中。
28.其进一步技术方案为:所述初始化单元,用于设置数据加密规则以及拦截策略。
29.其进一步技术方案为:所述分片加密单元包括:
30.分片子单元,用于将所述初始数据进行分片,以得到分片结果;
31.加密子单元,用于对所述分片结果进行分时加密,当加密过程有磁盘io时,则挂起所述磁盘io,直至当前的所述分片结果加密完成,再执行所述磁盘io。
32.其进一步技术方案为:还包括:
33.请求获取单元,用于获取读取请求;
34.文件判断单元,用于判断所述读取请求对应的数据文件是否是信任进程;
35.解密单元,用于若所述读取请求对应的数据文件是信任进程,则对所述读取请求对应的数据文件进行解密返回至数据库,以使得数据库获取解密结果后进行处理,以返回处理后的数据至终端;
36.返回单元,用于若所述读取请求对应的数据文件不是信任进程,则返回所述读取请求对应的数据文件。
37.本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存
储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
38.本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
39.本发明与现有技术相比的有益效果是:本发明通过进行配置初始化,当需要对初始数据进行加密时,采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中,实现在不停业务系统的情况下完成对数据库的初始化,并在数据不断查询和使用过程中,完成对于数据库中存储数据的加密,无需中断业务,也不会造成性能的损耗,初始化时间短。
40.下面结合附图和具体实施例对本发明作进一步描述。
附图说明
41.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本发明实施例提供的数据库透明加密方法的应用场景示意图;
43.图2为本发明实施例提供的数据库透明加密方法的流程示意图;
44.图3为本发明实施例提供的数据库透明加密方法的子流程示意图;
45.图4为本发明实施例提供的数据库透明加密方法的示意图;
46.图5为本发明另一实施例提供的数据库透明加密方法的流程示意图;
47.图6为本发明另一实施例提供的数据库透明加密方法的业务系统流程示意图;
48.图7为本发明另一实施例提供的数据库透明加密方法的架构示意图;
49.图8为本发明实施例提供的数据库透明加密装置的示意性框图;
50.图9为本发明实施例提供的数据库透明加密装置的分片加密单元的示意性框图;
51.图10为本发明另一实施例提供的数据库透明加密装置的示意性框图;
52.图11为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
53.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
54.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
55.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
56.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
57.请参阅图1和图2,图1为本发明实施例提供的数据库透明加密方法的应用场景示意图。图2为本发明实施例提供的数据库透明加密方法的示意性流程图。该数据库透明加密方法应用于服务器中。该服务器与终端进行数据交互,通过终端发起写入或读取的请求,由服务器将初始化、实时加解密延后到数据使用,根据请求对应的文件进行加解密处理后,输出至终端显示。
58.图2是本发明实施例提供的数据库透明加密方法的流程示意图。如图2所示,该方法包括以下步骤s110至s150。
59.s110、获取待写入的数据,以得到初始数据。
60.在本实施例中,初始数据是指由终端输入,需要写入到数据库的数据。
61.s120、初始化配置相关信息。
62.在本实施例中,相关信息包括数据加密的规则以及对哪些数据进行拦截的策略。
63.具体地,设置数据加密规则以及拦截策略。
64.如图4所示,首先对保护数据源进行添加,获取数据库类型、ip、端口等信息,获取保护数据源基础信息后,选择加密模式,如闪电加密模式,进行初始配置,包括:数据库验证,即获取数据库授权;操作系统验证,即获取操作系统授权;配置加密算法;进行加密用户态控制程序和内核模块的自动推送安装。
65.加密用户态控制程序运行在数据库操作系统的用户空间,用于和控制中心进行交互,接受来自控制中心的相关配置和策略,将相关的配置和策略发送给内核模块。运行在数据库操作系统的内核空间,接受来自用户态控制程序的策略和配置信息,对操作系统上文件io相关的系统调用进行拦截与替换。当文件io的目标文件为保护数据文件时,需要对发起操作的进程身份进行识别,完成对应的加密和解密动作。数据库加密,进行数据库账号验证,选择保护对象。控制中心,相关配置下发给用户态控制程序,传送到内核模块,在后续的数据使用过程中(即实际读写)进行加密保护。
66.s130、判断所述初始数据是否是需要加密。
67.在本实施例中,判断初始数据是否需要进行加密,有初始化设定的规则来确定的。
68.s140、若所述初始数据需要加密,则采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中。
69.在一实施例中,请参阅图3,上述的步骤s140可包括步骤s141~s142。
70.s141、将所述初始数据进行分片,以得到分片结果。
71.在本实施例中,分片结果是指对初始数据进行分片后形成的若干个片段数据。
72.s142、对所述分片结果进行分时加密,当加密过程有磁盘io时,则挂起所述磁盘io,直至当前的所述分片结果加密完成,再执行所述磁盘io。
73.在加密过程处于初始化时,将原有数据分片进行分时加密,在加密过程中,如果有磁盘io进来,先把磁盘io挂起,等当前数据分片加密完成再执行磁盘io,由于数据分片很小,因此磁盘io挂起的时间十分短暂,可忽略,这样对业务的运行不会造成影响,也就不用暂停业务,即加密初始化过程为热初始化,不需要暂停业务,另外加密初始化抛弃增加文件头支持元数据的方式,利用已有结构写入元数据信息。
74.当有写入io进来的时候,根据进程属性判断是否需要加密,如果需要加密就加密后再写入。
75.s150、若所述初始数据不需要加密,则将所述初始数据写入磁盘文件中。
76.在本实施例中,如图6所示,举个例子:业务系统连接数据库,进行数据读写。当数据库进行数据文件写入时,内核模块识别到写入的数据文件的身份为数据库或信任进程,则将数据库提交到操作系统写入请求的明文数据按照配置的加密算法进行加密,然后写入到磁盘文件,达到了数据加密的功能。
77.上述的数据库透明加密方法,通过进行配置初始化,当需要对初始数据进行加密时,采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中,实现在不停业务系统的情况下完成对数据库的初始化,并在数据不断查询和使用过程中,完成对于数据库中存储数据的加密,无需中断业务,也不会造成性能的损耗,初始化时间短。
78.图5是本发明另一实施例提供的一种数据库透明加密方法的流程示意图。如图5所示,本实施例的数据库透明加密方法包括步骤s210-s290。其中步骤s210-s240与上述实施例中的步骤s110-s140类似,步骤s290与上述实施例中的步骤s150类似,执行完s290会进入步骤s250,在此不再赘述。下面详细说明本实施例中所增加的步骤s250-s280。
79.s250、获取读取请求。
80.在本实施例中,读取请求是指对数据库的文件进行读取的请求。
81.s260、判断所述读取请求对应的数据文件是否是信任进程。
82.在本实施例中,根据读取请求对应的数据文件判断其身份是否是数据库内的文件或者是可被信任的进程,也就是身份是符合要求的。
83.s270、若所述读取请求对应的数据文件是信任进程,则对所述读取请求对应的数据文件进行解密返回至数据库,以使得数据库获取解密结果后进行处理,以返回处理后的数据至终端;
84.s280、若所述读取请求对应的数据文件不是信任进程,则返回所述读取请求对应的数据文件。
85.当数据库进行数据文件读取时,内核模块识别到读取数据文件的身份为数据库或信任进程,则将数据库需要读取的文件内容从磁盘读取到内核空间,此时磁盘文件为密文形式,内核加密模块会将加密数据进行解密返回给数据库,数据库获取到明文数据后进行正常的使用,并返回处理后的明文数据给业务系统。
86.其中,如图6和图7所示,当有读取io进来的时候,根据进程属性决定加解密操作,信任进程可以获取明文,非信任进程获取密文。具体的处理逻辑根据进程身份、存量增量数据进行划分。对于存量数据,发生读取前,存储为明文。第一次读取时,若是信任进程,则返回信任进程明文数据,并对数据进行加密,密文存储;若是非信任进程,则先加密,返回非信任进程密文数据,并进行密文存储。读取发生后,数据已密文存储。此后,信任进程读取,解密返回明文数据;非信任进程读取,返回密文数据。对于增量数据,在信任进程写入时,已进行加密,转换为密文存储。信任进程读取,解密返回明文数据;非信任进程读取,返回密文数据。以上是数据在不同时间段发生读写时的加密保护。在进行加密时,采用数据分片技术,如有磁盘io进来,先将磁盘io挂起,在当前数据分片加密完成再执行磁盘io。由于数据分片很小,因此磁盘io挂起的时间十分短暂,不影响业务。如果需要解除保护对象的加密保护,用户同样可在系统上进行配置。进行数据库账号验证,选择需要解除保护的对象,将对选中的数据进行解密。
87.图8是本发明实施例提供的一种数据库透明加密装置300的示意性框图。如图8所示,对应于以上数据库透明加密方法,本发明还提供一种数据库透明加密装置300。该数据库透明加密装置300包括用于执行上述数据库透明加密方法的单元,该装置可以被配置于服务器中。具体地,请参阅图8,该数据库透明加密装置300包括写入数据获取单元301、初始化单元302、加密判断单元303、分片加密单元304以及写入单元305。
88.写入数据获取单元301,用于获取待写入的数据,以得到初始数据;初始化单元302,用于初始化配置相关信息;加密判断单元303,用于判断所述初始数据是否是需要加密;分片加密单元304,用于若所述初始数据需要加密,则采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中;写入单元305,用于若所述初始数据不需要加密,则将所述初始数据写入磁盘文件中。
89.在一实施例中,所述初始化单元302,用于设置数据加密规则以及拦截策略。
90.在一实施例中,如图9所示,所述分片加密单元304包括分片子单元3041以及加密子单元3042。
91.分片子单元3041,用于将所述初始数据进行分片,以得到分片结果;加密子单元3042,用于对所述分片结果进行分时加密,当加密过程有磁盘io时,则挂起所述磁盘io,直至当前的所述分片结果加密完成,再执行所述磁盘io。
92.图10是本发明另一实施例提供的一种数据库透明加密装置300的示意性框图。如图10所示,本实施例的数据库透明加密装置300是上述实施例的基础上增加了请求获取单元306、文件判断单元307、解密单元308以及返回单元309。
93.请求获取单元306,用于获取读取请求;文件判断单元307,用于判断所述读取请求对应的数据文件是否是信任进程;解密单元308,用于若所述读取请求对应的数据文件是信任进程,则对所述读取请求对应的数据文件进行解密返回至数据库,以使得数据库获取解密结果后进行处理,以返回处理后的数据至终端;返回单元309,用于若所述读取请求对应的数据文件不是信任进程,则返回所述读取请求对应的数据文件。
94.需要说明的是,所属领域的技术人员可以清楚地了解到,上述数据库透明加密装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
95.上述数据库透明加密装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图11所示的计算机设备上运行。
96.请参阅图11,图11是本技术实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
97.参阅图11,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
98.该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种数据库透明加密方法。
99.该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
100.该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该
计算机程序5032被处理器502执行时,可使得处理器502执行一种数据库透明加密方法。
101.该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图11中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
102.其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
103.获取待写入的数据,以得到初始数据;初始化配置相关信息;判断所述初始数据是否是需要加密;若所述初始数据需要加密,则采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中;若所述初始数据不需要加密,则将所述初始数据写入磁盘文件中。
104.在一实施例中,处理器502在实现所述初始化配置相关信息步骤时,具体实现如下步骤:
105.设置数据加密规则以及拦截策略。
106.在一实施例中,处理器502在实现所述采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中步骤时,具体实现如下步骤:
107.将所述初始数据进行分片,以得到分片结果;对所述分片结果进行分时加密,当加密过程有磁盘io时,则挂起所述磁盘io,直至当前的所述分片结果加密完成,再执行所述磁盘io。
108.在一实施例中,处理器502在实现所述采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中步骤之后,还实现如下步骤:
109.获取读取请求;判断所述读取请求对应的数据文件是否是信任进程;若所述读取请求对应的数据文件是信任进程,则对所述读取请求对应的数据文件进行解密返回至数据库,以使得数据库获取解密结果后进行处理,以返回处理后的数据至终端;若所述读取请求对应的数据文件不是信任进程,则返回所述读取请求对应的数据文件。
110.应当理解,在本技术实施例中,处理器502可以是中央处理单元(central processing unit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
111.本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
112.因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
113.获取待写入的数据,以得到初始数据;初始化配置相关信息;判断所述初始数据是否是需要加密;若所述初始数据需要加密,则采用分片加密方式对所述初始数据进行加密,
并将加密结果写入磁盘文件中;若所述初始数据不需要加密,则将所述初始数据写入磁盘文件中。
114.在一实施例中,所述处理器在执行所述计算机程序而实现所述初始化配置相关信息步骤时,具体实现如下步骤:
115.设置数据加密规则以及拦截策略。
116.在一实施例中,所述处理器在执行所述计算机程序而实现所述采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中步骤时,具体实现如下步骤:
117.将所述初始数据进行分片,以得到分片结果;对所述分片结果进行分时加密,当加密过程有磁盘io时,则挂起所述磁盘io,直至当前的所述分片结果加密完成,再执行所述磁盘io。
118.在一实施例中,所述处理器在执行所述计算机程序而实现所述采用分片加密方式对所述初始数据进行加密,并将加密结果写入磁盘文件中步骤之后,还实现如下步骤:
119.获取读取请求;判断所述读取请求对应的数据文件是否是信任进程;若所述读取请求对应的数据文件是信任进程,则对所述读取请求对应的数据文件进行解密返回至数据库,以使得数据库获取解密结果后进行处理,以返回处理后的数据至终端;若所述读取请求对应的数据文件不是信任进程,则返回所述读取请求对应的数据文件。
120.所述存储介质可以是u盘、移动硬盘、只读存储器(read-only memory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
121.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
122.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
123.本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
124.该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
125.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替
换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献