关系型数据库信息安全强化方法、系统、终端及存储介质
文献发布时间:2023-06-19 11:42:32
技术领域
本发明涉及信息安全技术领域,具体涉及一种关系型数据库信息安全强化方法、系统、终端及存储介质。
背景技术
随时互联网行业的发展,信息安全问凸显,近年来网站的核心数据库被黑客窃取、售卖、散布的安全事件频繁发生,不仅会对网站用户的隐私、财产及涉事网站的声誉造成巨大的损失;也会由于数据库数据被篡改、伪造而给网站造成的巨大经济损失。
数据库信息安全强化是体系化的安全防护工程,重点在于解决三防问题,即防窃听、防伪造、防篡改,涉及到网络层、应用层、数据层各层的安全机制协同工作。现有技术中,针对数据库的安全防护主要包括:一、基于网络层进行安全防护,最大程度保证非授权人员无法接入数据库所处网络;二、基于数据库权限控制,确保数据库各层级操作人员只能在限定的操作权限范围内操作;三、针对核心数据进行加密处理。
虽然现有技术方案从网络层、应用层及数据层对数据库安全进行全方位的防护,但是一旦黑客突破网络及权限安全防护进入数据库(即防护方案1、方案2失效),即使基于数据加密机制,部分核心数据可以避免被窃取,却无法杜绝数据被伪造、篡改的安全隐患。
发明内容
鉴于现有技术中存在的技术缺陷和技术弊端,本发明实施例提供克服上述问题或者至少部分地解决上述问题的一种关系型数据库信息安全强化方法、系统、终端及存储介质,能够解决数据层被窃取、被伪造及篡改的风险。
作为本发明实施例的一个方面,提供了一种关系型数据库信息安全强化方法,所述方法包括:
定义数据库中数据表的去含义化索引项;
利用摘要算法生成所述数据表中设定字段的摘要值;
存储所述摘要值至所述数据表的指定列,所述摘要值与所述数据表中对应的行数据相关联;
基于设定字段的摘要值匹配判定是否提供查询数据。
进一步地,所述索引项包括数据表的表名、列名。
进一步地,所述确定设定字段的方法包括:
编辑数据表定义的类,标记预设机密字段生成标记值;
根据标记值确定进行摘要算法的字段。
进一步地,所述方法还包括:
插入数据时,确定进行计算摘要值的设定字段;
根据所述设定字段及所述设定字段顺序生成摘要值;
存储于对应的指定列位置的摘要值;
更新数据时,生成更新数据中设定字段的摘要值,存储于指定列。
进一步地,所述“基于设定字段的摘要值匹配判定是否提供查询数据”的方法包括:
查询数据时,基于联合摘要规则,计算查询数据中设定字段的计算摘要值;
获取数据库中对应数据列中存储的存储摘要值,
匹配计算摘要值与存储摘要值是否完全相同,若完全相同,则返回所述查询数据,若不完全相同,则报错退出。
进一步地,所述方法包括:
基于注解方式定义数据表中参与摘算法计算的设定字段、字段顺序,所述设定字段为非空字段。
进一步地,所述摘要算法包括信息摘要算法、AES、SHA-128中的一种或多种。
作为本发明实施例的又一方面,提供了一种关系型数据库信息安全强化系统,所述系统包括:
定义模块,用于定义数据库中数据表的去含义化索引项;
加密模块,用于利用摘要算法生成所述数据表中设定字段的摘要值;
存储模块,用于存储所述摘要值至所述数据表的指定列,所述摘要值与所述数据表中对应的行数据相关联;
匹配模块,用于基于设定字段的摘要值匹配判定是否提供查询数据。
作为本发明实施例的再一方面,提供了一种终端,包括:处理器和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述终端执行如上述任一项所述的关系型数据库信息安全强化方法。
作为本发明实施例的另一方面,提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被终端的处理器执行时,使所述处理器执行如上述任意一项所述的关系型数据库信息安全强化方法。
本发明实施例至少实现了如下技术效果:
本发明实施例提供的一种关系型数据库信息安全强化方法、系统、终端及存储介质解决了金融信息系统中数据存取三防(防篡改、防窃听、防伪造)问题,在网络安全措施及数据库权限管控机制被攻破的场景下,最大程度避免了数据被窃取、被伪造及篡改的风险,同时具备实现简单、低耦合的特点。
通过定义数据表中的索引项,例如表名、列名,简单有效的避免数据表被黑客盗取后通过命名猜测其实际业务含义的风险;通过对设定字段进行摘要计算,并运用摘要值严重进行查询、插入等编辑,确保已存储数据无法被伪造、篡改,所有数据被查询时都被进行校验,确保整个防伪造、防篡改链的完整性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所记载的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明一实施例的关系型数据库信息安全强化方法流程图;
图2为本发明一实施例的关系型数据库信息安全强化方系统示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
附图和以下说明描述了本发明的可选实施方式以教导本领域技术人员如何实施和再现本发明。为了教导本发明技术方案,已简化或省略了一些常规方面。本领域技术人员应该理解源自这些实施方式的变型或替换将落在本发明的保护范围内。本领域技术人员应该理解下述特征能够以各种方式组合以形成本发明的多个变型。由此,本发明并不局限于下述可选实施方式,而仅由权利要求和它们的等同物限定。
在一个实施例中,提供了一种关系型数据库信息安全强化方法,如图1所示,所述方法包括:
S11定义数据库中数据表的去含义化索引项;
S12利用摘要算法生成所述数据表中设定字段的摘要值;
S13存储所述摘要值至所述数据表的指定列,所述摘要值与所述数据表中对应的行数据相关联;
S14基于设定字段的摘要值匹配判定是否提供查询数据。
在本实施例中,S11定义一种高安全级别的命名方法,其中索引项包括表名、列名等,定义数据库表表名时,表名不再体现实际业务含义,而代之以无含义数字、字母编码组合,举例如下:T_01_0001、T_02_0003等;数据表表字段定义时,与表名命名规范类似,列名亦不体现实际业务含义,而代之以无含义数字、字母组合,举例如下C001、C002等;在S12中,摘要算法可以是消息摘要算法,也可以是其他加密算法;设定字段可以为指定顺序的N个字段,N大于等于1,其中,指定的顺序可以是指基于列名进行升序排列,N值的确定是基于表中关键/核心/机密/不可篡改程度确定,如用户表中存储了用户总余额、可用余额、可提现余额等,可以确定需进行联合摘要的字段个数为三个,即N=3;不同的表N值是不一样的,对于同一张表N的值是固定不变的;在S13中,可以在每张表最后定义字段,例如C999,用于存储当前行数据的联合摘要值,当数据库表包括x行,y列,通过S13步骤后,数据表中包括y+1列,新增的C999列只是用于存储摘要值,或者说哈希值。在S14中,查询数据库中的数据,并基于设定字段进行摘要值的匹配;从所述数据库表查询数据时,对查询结果的N个(N>=1)字段按指定顺序排列且通过摘要算法生成摘要(哈希值)后,与摘要列数据进行核对,若核对一致则返回查询结果。通过上述步骤避免了数据表被黑客盗取后通过表名及列名猜测其实际业务含义的风险,同时能够确保已存储数据无法被伪造、篡改,所有数据被查询时都被进行校验,确保整个防伪造、防篡改链的完整性。
在一个实施例中,所述确定设定字段的方法包括:
编辑数据表定义的类,标记预设机密字段生成标记值;
根据标记值确定进行摘要算法的字段。
在本实施例中,针对每张表都有一个定义的类,需要进行摘要的字段都会打上一个标记值,标明其需要进行联合摘要,保证简单快捷的对设定字段进行确认及编辑,还可以根据不同保密程度进行不同算法的技术,及设定字段的确认,进一步保证了本方法的安全性。
在一个实施例中,所述方法还包括:
插入数据时,确定进行计算摘要值的设定字段;
根据所述设定字段及所述设定字段顺序生成摘要值;
存储于对应的指定列位置的摘要值;
更新数据时,生成更新数据中设定字段的摘要值,存储于指定列。
在本实施例中,数据插入时,基于联合摘要规则(确定需要进行摘要值计算的字段、字段排列顺序),对指定的N个字段(N>=1)进行摘要计算,摘要算法满足高性能及非可逆特性,摘要值被存储于表的C999列中(重新计算后更新原来的联合摘要值)。更新时,对待更新的N个字段一起生成摘要值,摘要值生成后,将被存储于每张表的C999列中。(每更新一次都会生成一个新的摘要值,并存储在C999字段中)。
在一个实施例中,所述“匹配摘要值查询数据库中的数据”的方法包括:
查询数据时,基于联合摘要规则,计算查询数据中设定字段的计算摘要值;
获取数据库中对应数据列中存储的存储摘要值,
匹配计算摘要值与存储摘要值是否完全相同,若完全相同,则返回所述查询数据,若不完全相同,则报错退出。
在本实施例中,通过多字段联合摘要值的校验的方式进行查询,具体的可以为,数据查询时,对于已查询数据进行摘要值校验:基于联合摘要规则,对指定的N个字段进行摘要计算,计算所得摘要值为计算摘要值(可以表示为D1),将计算摘要值D1与从数据库查询所得的C999字段值的存储摘要值(可以表示为D2)进行比较,若完全一致,则返回该查询数据,若不一致,则报错退出。
在一个具体实施例中,用户联系表定义如下:
用户名、用户姓名、电话号码、联系地址、更新时间;
定义需联合摘要的字段(设定字段)为:用户姓名、电话号码、联系地址;
插入时,基于用户姓名+电话号码+联系地址生成hash值H存入字段C999中;更新时,会先查询出该条记录的所有字段,在更新前,会将当前最新的用户姓名+电话号码+联系地址生成hash值H2,更新时会同步更新字段999为H2;查询时,会将整条记录查询出来,对数据进行校验:先计算用户姓名+电话号码+联系地址生成hash值H3,并与C999字段中的hash值H4进行比较,若H3=H4,表明数据无篡改。
在一个实施例中,所述方法包括:
基于注解方式定义数据表中参与摘算法计算的设定字段、字段顺序,所述设定字段为非空字段。
在本实施例中,基于注解方式,定义每张表参与联合摘要的字段、字段顺序,参与联合摘要的字段不可为空;其中注解方式是编程语言java中的一种提升编程效率的语法类型。
在一个实施例中,所述摘要算法包括信息摘要算法、AES、SHA-128中的一种或多种。在本实施例中,可以定义不同数据表的摘要算法,信息摘要算法MD5、AES、SHA-128等;摘要算法若不指定,可以设置默认一个算法,例如使用全局摘要算法。
其中:MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),为密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
AES为密码学中的高级加密标准(Advanced Encryption Standard,AES),AES加密模式为对称/分组密码,一般分为流加密(如OFB、CFB等)和块加密(如ECB、CBC等)。对于流加密,需要将分组密码转化为流模式工作。对于块加密(或称分组加密),如果要加密超过块大小的数据,就需要涉及填充和链加密模式。
SHA(Secure Hash Algorithm,缩写为SHA)为安全散列算法,是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。
基于同一发明构思,本发明实施例还提供了一种关系型数据库信息安全强化系统、终端及存储介质,由于一种关系型数据库信息安全强化系统、终端及存储介质的实施所解决问题的原理与前述实施例的关系型数据库信息安全强化方法相似,因此下述实施可以参见前述一种关系型数据库信息安全强化方法的实施例,重复之处不再赘述。
本实施例提供了一种关系型数据库信息安全强化系统,如图2所示,所述系统包括:
定义模块11,用于定义数据库中数据表的去含义化索引项;
加密模块12,用于利用摘要算法生成所述数据表中设定字段的摘要值;
存储模块13,用于存储所述摘要值至所述数据表的指定列,所述摘要值与所述数据表中对应的行数据相关联;
匹配模块14,用于基于设定字段的摘要值匹配判定是否提供查询数据。
在本实施例中,定义模块11采用去业务含义表名及列名定义关系型数据库中数据表的高安全级别的命名方法,并在每张表最后增加“数据摘要值”列;例如,撰写SQL脚本时,可通过使用别名的方式用以标注表、列的实际业务含义,提升开发效率。实际表名及列名都是被安全强化过的,通过表名及列名无法猜测出其实际业务含义;再对指定顺序的设定字段通过摘要算法方式生成对应数据的摘要信息,并通过存储模块13存储至数据库表中的指定列。
数据插入时,校验待插入数据行各个字段合法性,并判断是否需要进行多字段联合摘要;若需要多字段联合摘要且参与联合摘要的字段有部分或者全部为空,则直接报错退出。通过合法性校验的数据行,基于摘要算法进行摘要计算,并将摘要值存入C999字段中。
通过多字段联合摘要值的校验数据查询方法主要针对单表查询,基于查询条件查询获取数据集合L(L条目数>=1),循环遍历已查询到集合L,并对集合中的每条数据进行如下校验:
1、基于注解,通过加密模块12,对已查询获取的N个待进行摘要的字段进行摘要计算,获得摘要值D1
2、通过匹配模块14将D1与查询结果中C999字段所对应的值D2进行比对;
3、若D1与D2完全相等,则返回结果,若不相等,则直接报错退出。
在一个实施例中提供了一种终端,包括:处理器和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述终端执行如上述任一项所述的关系型数据库信息安全强化方法。
在一个实施例中提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被终端的处理器执行时,使所述处理器执行如上述任意一项所述的关系型数据库信息安全强化方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
- 关系型数据库信息安全强化方法、系统、终端及存储介质
- 一种基于博弈的强化学习方法、系统、终端及存储介质