一种数据库加解密方法、装置、存储介质及电子设备与流程

文档序号:24740952发布日期:2021-04-20 21:32阅读:70来源:国知局
一种数据库加解密方法、装置、存储介质及电子设备与流程

1.本发明涉及计算机软件技术领域,特别是一种数据库加解密方法、装置、存储介质及电子设备。


背景技术:

2.目前,数据库加密机制分为库外加密和库内加密两种,其中,库外加密由专门负责加解密的应用程序来实现数据的加解密,需要编写复杂的加解密程序,会给数据库带来密文无法建立正常的索引等功能实现问题;库内加密是指数据加解密由dbms(数据库管理系统,database management system)内核来实现,加解密对用户相对透明,方法简单,但密钥管理比较复杂,完全基于访问控制,加重了服务器的负担,对数据库的性能影响比较大。


技术实现要素:

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.图1是本发明实施例提供的一种数据库加解密方法流程图;
31.图2是本发明实施例提供的另一种数据库加解密方法流程图;
32.图3是本发明实施例提供的另一种数据库加解密方法流程图;
33.图4是本发明实施例提供的应用实例示意图;
34.图5是本发明实施例提供的基于属性策略的权限访问模型实例;
35.图6是本发明实施例提供的一种数据库加解密装置框图。
具体实施方式
36.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的
描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
38.随着数据技术的广泛普及和发展成熟,金融数据应用成为行业热点趋势,在交易欺诈识别、精准营销、黑产防范、消费信贷、信贷风险评估、供应链金融、股市行情预测、股价预测、智能投顾、骗保识别、风险定价等涉及银行、证券、保险等多领域的具体业务中,得到广泛应用。对于数据的应用分析处理能力,正在成为金融机构未来发展的核心竞争要素。
39.信息化时代,数据的重要性以及不言而喻,数据安全和隐私大都利用加密算法将网络中传输的数据进行加密以防止数据包被窃取,但在源主机中存放的都是数据的明文,而本地主机的数据库中数据的安全大都取决于计算机本身的安全和数据的访问控制来实现。
40.安全计算环境设计采用统一身份认证、归档文件数字水印,结合数据安全、数据加密等技术,实现金融科技平台的数据服务安全。
41.数据加密设计针对金融科技平台敏感信息及重要业务数据的安全存储,根据数据存储方式及数据应用场景的不同,采用数据库透明加解密方式对敏感信息及重要业务数据进行加密存储,支持国密算法,防止非授权访问导致的信息泄露,使用过程对用户完全透明,应用无需改造,对现有业务无影响。
42.国家密码管理局公布了sm系列商用密码算法,常用的有sm2和sm4算法。其中,sm2为非对称密钥算法,在我国商用密码体系中用来替换rsa算法;sm4是一个分组对称密钥算法,明文、密钥、密文都是16字节,加密和解密密钥相同,加密算法与密钥扩展算法都采用32轮非线性迭代结构。
43.实施例一
44.图1示出了一种数据库加解密方法流程图,如图1所示,本实施例提供一种数据库加解密方法,包括如下步骤:
45.步骤s110、利用权限用户的主密钥解密表密钥。
46.步骤s120、利用解密后的表密钥对数据库中权限用户的待加密数据进行加密,并利用主密钥加密表密钥。
47.步骤s130、在权限用户登录数据库的过程中,获取主密钥解密表密钥。
48.步骤s140、利用解密后的表密钥解密数据库中的已加密数据。
49.本实施例中,利用权限用户的主密钥解密表密钥后,利用表密钥对数据库中权限用户的待加密数据进行加密,并利用主密钥加密表密钥,以实现数据的安全存储,在权限用户登录数据库的过程中,获取主密钥解密表密钥,进而利用表密钥解密数据库中的已加密数据,保证读取/查询操作中的数据安全。通过这样的双密钥机制,由于主密钥需要权限用户才能取出,对数据库进行了第一层次保护,为不同的权限用户对应的需要加密保护的数据生成表密钥,在第二层次上保护了权限用户的数据安全,从而实现了双密钥机制。本实施例提供的方法在保证用户访问安全的情况下,既保证了访问安全,又避免了完全依赖于访问权限控制而带来极大的服务器负担,导致数据库性能降低。
50.在一种实施方式中,步骤s140利用解密后的表密钥解密数据库中的已加密数据之后,本方法还包括:进行数据库中数据的查询操作或其他操作。
51.应当理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的
执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
52.在一种实施方式中,在权限用户的待加密数据进行加密后,利用主密钥加密的表密钥、加密后的数据以及主密钥分开存储。具体而言,加密后的数据存储于物理数据库中,表密钥存储于数据库的数据字典中,主密钥存储于预设容器中。预设容器可以是服务器中的sgx(software guard extensions,指令集扩展)的容器enclave中,enclave是一个被保护的内容容器,可用于存放用于程序、敏感数据和代码,由用户指定主密钥在容器enclave中的存储位置,以实现了(主)密钥和加密数据的分开存储。
53.在一种实施方式中,权限用户的待加密数据至少包括其中之一:
54.敏感信息;以及
55.预设业务数据。
56.敏感信息可以是权限用户的隐私数据,预设业务数据可以是权限用户希望保护的重要业务数据。
57.图2示出了另一种数据库加解密方法流程图,如图2所示,在一种实施方式中,本方法还包括:
58.步骤s210、为权限用户创建主密钥,并为权限用户的待加密数据生成表密钥。
59.步骤s220、利用主密钥加密表密钥。
60.数据库通过为权限用户创建主密钥,权限用户创建资源对象时设置了数据库中该权限用户需要加密的部分,数据库会为该部分自动产生表密钥,并被主密钥加密,实现双密钥机制,表密钥由主密钥加密,只有主密钥对应的权限用户才能取出主密钥,保证了表密钥的安全,进而保证了表密钥所加密的数据的安全。
61.在实际应用中,通过用户身份权限认证的权限用户,可以通过口令进行登陆数据库系统,在登录过程中,对权限用户的敏感信息及重要业务数据的存储及查询等操作,采用双密钥加密机制。
62.加密所采用的加密算法可支持国密算法,在执行上述步骤过程中不会被用户察觉,但只有获取主密钥才能解密表密钥,再利用表密钥解密数据。主密钥对表密钥加密时选择使用非对称加密方式,以保证表密钥的安全存储于取出,而表密钥对数据加密时选择使用对称加密方式,以保证数据传输的及时性。这样的加解密机制,能够节省额外的存储空间,并减少每次对数据库进行数据查询请求时对数据库的查询压力,对数据库性能影响较小。
63.图3示出了另一种数据库加密方法流程图,如图3所示,在一种实施方式中,在为权限用户创建主密钥,并为权限用户的待加密数据生成表密钥之前,本方法还包括:
64.步骤s310、根据用户创建的资源对象,设置对应的用于用户身份权限认证的属性策略。
65.步骤s320、根据属性策略进行用户身份权限认证,得到权限用户。
66.在上述数据库透明加解密方式中,结合双密钥机制和属性策略,实现了密钥与加密数据的安全存储过程。根据用户创建的资源对象,设置该资源对象的属性策略,例如哪个
类型的数据可以允许哪个类型用户访问,属性策略可以基于计算机介质实现,根据属性策略实现用户身份权限认证,基于此认证得到权限用户,此认证是通过计算机介质自动执行的,例如,可以将属性策略以程序代码或者软件模块实现在服务器中,当需要进行用户身份权限认证时直接调用该程序代码或者软件模块即可实现。
67.在一个应用实例中,如图4所示,通过本实施例的数据库加解密方法对数据库中的数据进行加密存储,通过属性策略实现权限管理,也就实现的数据库的全库加密,通过对双密钥机制中主密钥和表密钥的加解密操作,实现双密钥管理,利用表密钥对权限用户需要加密的数据进行加密,权限用户的数据属性可以包括个人信息、账户信息、企业信息以及重要业务数据等,举例来说,可以根据用户需要进行作为数据库中账户信息及重要业务数据所在表列进行加密。
68.针对图4中的金融科技平台核心数据库,当有用户访问该数据库时,对用户进行用户身份权限认证,结合属性策略对用户身份请求进行鉴权,区分授权业务用户(通过认证的权限用户)和非授权用户(未通过认证的用户)授权业务用户,进而实现授权业务用户(权限用户)和非授权用户加解密访问:
69.通过本实施例的方法进行数据库访问,即利用双密钥机制进行数据查询等操作,而非授权用户仅通过密文访问,无法获得特定访问权限,因而采用安全保密方式展示数据,对于权限用户才能访问的数据,则只向非授权用户显示密文,而不显示数据,保证了数据的安全。
70.在实际应用中,数据库响应用户请求登录操作,根据用户提供的口令,计算机介质自动执行属性策略,根据用户的资源对象进行访问控制,认证用户权限身份,用户创建的资源对象存储于浏览器的cookie或localstorage之中,使得用户发出请求时都携带该身份,请求到达服务器端后,服务器端用该身份对请求进行鉴权,实现敏感信息及重要业务数据等加密数据的安全存储的首要环节;
71.在第一次登录数据库系统之后,服务器会将身份用文件、数据库或缓存服务器等方法存储下来,用于之后请求中的比对;基于属性策略,完成用户口令登录和确权存储、查询加解密数据的过程。在之后的请求中,可以通过对存储下来的身份与发出请求的用户身份进行实时比对,以保证数据库使用过程中的安全性。
72.在实际应用中,可以利用图5所示的基于属性策略的权限访问模型(rbac(role

basedaccess control,基于角色的访问控制)实现根据属性策略进行用户身份权限认证。通过预先创建各用户口令,以及各用户创建资源对象,形成用户登录口令集以及用户资源对象集。当用户针对数据库进行操作时,计算机介质自动执行与当前用户对应的属性策略,确定当前用户的权限,以认证用户身份,在用户/角色与数据的交互过程中,始终受属性策略(包括用户集及用户属性策略集,或者角色集及角色属性策略集)约束,以得到用户操作的结果。
73.实施例二
74.图6示出了一种数据库加解密装置框图,如图6所示,本实施例提供一种数据库加解密装置,包括:
75.解密模块610,用于利用权限用户的主密钥解密表密钥;在权限用户登录数据库的过程中,获取主密钥解密表密钥;以及利用解密后的表密钥解密数据库中的已加密数据。
76.加密模块620,用于利用解密后的表密钥对数据库中权限用户的待加密数据进行加密,并利用主密钥加密表密钥。
77.可以理解的是,解密模块610可用于执行实施例一中的步骤s110、步骤s130、步骤s140,加密模块620可用于执行实施例一中的步骤s120。
78.在一种实施方式中,该装置还包括:
79.创建模块630,用于为权限用户创建主密钥,并为权限用户的待加密数据生成表密钥。
80.可以理解的是,创建模块630可用于执行实施例一中的步骤s210,加密模块620还用于执行实施例一中的步骤s220。
81.在一种实施方式中,该装置还包括:
82.确权模块640,用于根据用户创建的资源对象,设置对应的用于用户身份权限认证的属性策略,并根据属性策略进行用户身份权限认证,得到权限用户。
83.可以理解的是,确权模块640可用于执行实施例一中的步骤s310至步骤s320。
84.各步骤的具体内容请参见实施例一,本实施例中不再赘述。
85.显然本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何限定的硬件和软件结合。
86.实施例三
87.本发明提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被一个或多个处理器执行时,实现实施例一的数据库加解密方法。
88.本实施例中,计算机可读存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read

only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read

only memory,简称eprom),可编程只读存储器(programmable read

only memory,简称prom),只读存储器(read

only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
89.实施例四
90.本发明提供一种电子设备,包括存储器和处理器,该存储器上存储有计算机程序,该计算机程序被该处理器执行时实现实施例一的数据库加解密方法。
91.本实施例中,电子设备可以是运行数据库的服务器。处理器可以是专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例中的数据库加解密方法。在处理器上运行的计算机程序被执行时所实现的数据库加解密方法可参照数据库加解密方法的具体实施例,此处不再赘述。
92.利用本发明中,对于金融科技平台核心数据库敏感信息及重要业务数据进行安全存储,根据数据存储方式及数据应用场景的不同,防止非授权访问导致的信息泄露,使用过程对用户完全透明,用户无需改造应用,应用无需改造,对现有业务无影响。可以用于为金融数据服务提供安全数据库,也可以提供订单查询、客户查询、协议查询等数据权限和安全保护。采用数据库透明加解密方式对敏感信息及重要业务数据进行加密存储,支持国密算法结合jwt(json web令牌)权限管理方法,防止非授权访问导致的信息泄露,使用过程对用户完全透明,应用无需改造,对现有业务无影响。
93.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1