一种数据库自适应加密方法与流程

文档序号:15558993发布日期:2018-09-29 01:48阅读:200来源:国知局

本发明涉及数据库安全技术领域,

尤其是,本发明涉及一种数据库自适应加密方法。



背景技术:

数据信息资源共享应用是信息化建设的基本原则。各个企业都有自己的企业系统,存放一些可以公开的信息,另外还有一些企业之间存在着信息共享,随着信息化的深入发展,这些信息资源的共享和应用的需求日益旺盛,但存在一定数量共享使用相关信息资源的业务系统信息安全保障能力偏弱,安全风险形式严峻。有些数据信息若发生泄露和滥用的安全问题,则会直接产生恶劣社会影响,并直接威胁社会稳定和国家安全。

随着数据库技术在日常经济生活中应用的不断增加,数据库安全日益成为人们关注的热点。而目前数据库的安全性主要通过访问控制来保障,但是当访问控制被攻破时整个数据库的安全体系也随之瓦解。目前解决此问题的主要方法是采用数据库加密。为了保护数据的安全,采取对数据库加密的方式,数据库加密后,数据得到保护,当向数据库中写数据的时候,以密文的方式存储,当读取数据库中的数据的时候,对数据进行解密。

然而数据库数据具有多种多样的数据类型,但是现有的加密方案为针对数据库的数据类型产生不同的加密密匙,通过同一种加密手段来执行,这样的加密方式一来加密不彻底,二来影响显著地降低数据库的访问与运行效率,所以急需一种能适合多种数据类型,且能在保密性与可用性之间达成平衡的加密方式。

例如中国专利发明申请cn104063334a提供一种基于数据属性的加密方法,首先,选择需要加密的部分字段,采用不同的加密方式对不同的字段进行加密;对于不同的用户身份配置不同的权限,用户根据其权限对允许其查看的字段进行解密。该方案中采用了对数据库中的部分字段进行加密的方式,对于数据库中文件中的部分字段,或者结构化数据中的部分字段,可以根据需要进行加密,大大降低了对所有数据加密的数据处理量,在大量数据的情况下只根据需要进行加密,大大提高了加密的速度,在加密的方式上可以采用不同的加密方式来对不同的字段进行加密,不仅利于根据用户的身份配置不同的权限,而且使得加密的方式在选择上更加灵活,提高工作效率,提高了数据使用过程的安全性。

然而,上述方法依然存在以下缺点:1、数据库数据分类缺乏,获取数据类型的能力不足,加密针对性不高;2、数据类型全面性不高,仅从数据量的大小来进行分类,加密方式也不全面。



技术实现要素:

本发明的目的在于提供一种可以有效识别数据库字段类型,依据字段类型选取适当的加密算法进行加密,且加密严谨,加密过程方便,依旧可以保持数据库对数据检索的高效性的数据库自适应加密方法。

为解决上述问题,本发明采用如下技术方案得以实现的:

一种数据库自适应加密方法,包括以下步骤:

s1:记录应用程序的数据库的请求内容;

s2:分析具体字段的使用方式,扫描数据库模式,获取数据特征;

s3:确定数据库中字段的语义特征;

s4:根据字段的语义特征选择不同的加密算法。

优选地,执行步骤s1之前,建立用于将记录的数据库请求内容进行保存的存储库。

优选地,执行步骤s2时,获取的数据特征包括表结构、字段类型、关联约束。

优选地,步骤s2具体为:

s21:获取数据库请求数据;

s22:逐条读取保存的通讯记录,跟据数据库协议,解析出响应的sql语句;

s23:对sql语句进行词法分析、语法分析,形成语法树;

s24:遍历语法树,将发现的字段加入字段数据库,返回至步骤s21。

优选地,执行步骤s21时,过滤数据库的协议相关的通讯数据。

优选地,执行步骤s24之前,建立字段数据库,在字段后边附加该字段的数据信息。

优选地,执行步骤s24时,附加的数据信息包括模式名、表名、操作方式。

优选地,执行步骤s3时,数据库中字段的语义特征包括数值类型、比较类型和文本类型。

优选地,执行步骤s3时,数据库中字段的语义特征还包括其他类型。

优选地,执行步骤s4时,选择的加密算法包括保序加密算法、等值加密算法和辅助索引加密算法。

优选地,执行步骤s4时,选择的加密算法还包括其他普通加密算法。

优选地,步骤s4具体为:

s41:获取字段;

s42:判断字段语义是否为数值类型,若是,则选择保序加密算法进行加密;否则,执行步骤s43;

s43:判断字段是否为比较类型,若是,则选择等值加密算法进行加密;否则,执行步骤s44;

s44:判断字段是否为文本类型,若是,则选择辅助索引加密算法进行加密。

优选地,执行步骤s44时,若字段不为文本类型,即为其他类型,则选择其他普通加密算法进行加密。

本发明一种数据库自适应加密方法有益效果在于:可以有效识别数据库字段类型,依据字段类型选取适当的加密算法进行加密,且加密严谨,加密过程方便,依旧可以保持数据库对数据检索的高效性。

附图说明

图1为本发明一个实施例的整体流程图;

图2为本发明一个实施例中构建频繁模式树的流程图;

图3为本发明一个实施例中频繁项的发掘流程图。

具体实施方式

以下是本发明的具体实施例,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的模块和步骤的相对布置和步骤不限制本发明的范围。

随着数据库技术在日常经济生活中应用的不断增加,数据库安全日益成为人们关注的热点。而目前数据库的安全性主要通过访问控制来保障,但是当访问控制被攻破时整个数据库的安全体系也随之瓦解。目前解决此问题的主要方法是采用数据库加密。为了保护数据的安全,采取对数据库加密的方式,数据库加密后,数据得到保护,当向数据库中写数据的时候,以密文的方式存储,当读取数据库中的数据的时候,对数据进行解密。

然而数据库数据具有多种多样的数据类型,但是现有的加密方案为针对数据库的数据类型产生不同的加密密匙,通过同一种加密手段来执行,这样的加密方式一来加密不彻底,二来影响显著地降低数据库的访问与运行效率,所以急需一种能适合多种数据类型,且能在保密性与可用性之间达成平衡的加密方式。

实施例一:以下结合图1至3所示,仅为本发明的其中一个实施例,为解决上述问题,本发明采用如下技术方案得以实现的:一种数据库自适应加密方法,包括以下步骤:

s1:记录应用程序的数据库的请求内容;

要想对数据进行加密,首先获取数据,获取数据库中的数据库请求内容,并依此内容进行分析,进行加密。

现代web应用系统对于数据库的使用模式相对固定,可根据数据的具体特性、使用方式选择使用特定的加密方法,以避免加密带来的效率问题,使得保密性与可用性之间达到较好的平衡。

s2:分析具体字段的使用方式,扫描数据库模式,获取数据特征;

一般情况下特定数据类型或操作方式使用特定的加密方式,但采用字符类型保存数值数据是一种常见的使用方式,确定其加密方案,需要通过分析数据库的使用方式,确定其语义上数据类型。

而且需要注意的是,执行步骤s2时,获取的数据特征包括表结构、字段类型、关联约束。

所以通过具体字段的使用方式,获取其特有的数据特征,并依据此特征对字段数据进行类型分类。

s3:确定数据库中字段的语义特征;

当然,在执行步骤s3时,数据库中字段的数据类型包括数值类型、比较类型和文本类型。

s4:根据字段的语义特征选择不同的加密算法。

同理的,在执行步骤s4时,选择的加密算法包括保序加密、等值加密和辅助索引加密。

数据库按照基本数据类型分为number,date,urowid,float,char,varchar2,nchar,nvarchar,raw,longraw,rowid,blob,clob,nclob,bfile,char,varchar2,nchar,nvarchar,long,clob,nclob等。

其中,number,date,urowid,float等类型的数据采用保序加密的算法进行加密;char,varchar2,nchar,nvarchar,raw,longraw,rowid,blob,clob,nclob,char,varchar2,nchar,nvarchar,long,clob,nclob等以上数据类型需要根据使用情况进行分析,采用等值操作的,使用等值加密算法,进行大小比较的采用保序算法,采用like等文本检索方法的使用分词助索引加密。

bfile,包括bfile和没在上述类型中的数据采用一般的加密算法。

另外以上数据类型,仅为oracle数据库支持的数据,应该对所有数据库都一样,不限于具体的数据库,即:等值语义的采用等值算法,数据语义的采用保序算法,文本语义(即进行like,%等操作)的采用辅助索引的算法,其他的采用其他普通加密方法。

数据库按照基本操作类型分为<>,!=,=,<,>,>=,<=,between...and,notbetween...and,like,in,notin等。

其中,有<,>,>=,<=,between...and,notbetween...and等类型的数据采用保序加密的算法进行加密;<>,!=,=等类型的数据采用等值加密的算法进行加密;另外的like,in,notin等类型的数据采用辅助索引加密的算法进行加密。

所以根据数据库中的数据字段的类型以及特征来分类,采用相应的加密算法进行加密。

对数据特征提取的越多,对基本数据类型和基本操作类型的分类越细致,那么数据分类越明确,判断依据更全面,加密过程更严谨。

具体的加密算法选择是:数值类型采用保序算法,进行等值比较的采用等值算法,文本类型采用分词辅助索引的加密算法等,以保持密文的可检索特性,保证加密过程方便,依旧可以保持数据库对数据检索的高效性。

实施例二:依旧结合图1至3所示,仅为本发明的其中一个实施例,为了使本发明一种数据库自适应加密方法的准确性更高,加密过程更严谨,更方便,本发明步骤中还有很多的数据处理:

首先,执行步骤s1之前,建立用于将记录的数据库请求内容进行保存的存储库。

由于数据库服务的通讯流量较大,这里的存储库采用缓存机制,首先在磁盘上文件的形式保存,记录一段时间,使得其中的数据包含应用程序对数据库使用的所有的模式。使得数据分析的覆盖更全面。

然后,步骤s2具体为:

s21:获取数据库请求数据;

这里是从存储库中获取数据库请求数据。

s22:逐条读取保存的通讯记录,跟据数据库协议,解析出响应的sql语句;

s23:对sql语句进行词法分析、语法分析,形成语法树;

步骤s22和步骤s23合在一起叫做解析数据阶段,对数据库中的字段数据进行解析。

s24:遍历语法树,将发现的字段加入字段数据库,返回至步骤s21。

对数据进行分析归纳,保存到字段数据库,方便查找和步骤s3中对字段类型的识别和获取。

通过循环解析数据,分析数据,可将特定字段的所有使用方式记录下来。

这里需要知道的是,在执行步骤s21时,需要过滤数据库的协议相关的通讯数据。

同时,执行步骤s24之前,建立字段数据库,在字段后边附加该字段的数据信息,附加的数据信息包括模式名、表名、操作方式。

前面也说到了,获取的数据特征包括表结构、字段类型、关联约束。这里通过附加字段的模式名、表名、操作方式来进行限定。

最后,识别数据库字段类型,依据字段类型选取适当的加密算法进行加密,是一个判断的过程,步骤s4具体为:

s41:获取字段;

s42:判断字段是否为数值类型,若是,则选择保序加密算法进行加密;否则,执行步骤s43;

s43:判断字段是否为比较类型,若是,则选择等值加密算法进行加密;否则,执行步骤s44;

s44:判断字段是否为文本类型,若是,则选择辅助索引加密算法进行加密。

这里需要注意的是,数据类型不会仅仅只有数值类型、比较类型和文本类型这三个类型。

那么为了保证本方法的合理性。那么在执行步骤s3时,数据库中字段的数据类型还包括其他类型。同时在执行步骤s4时,选择的加密算法还包括其他普通加密算法。最后,在执行步骤s44时,若字段不为文本类型,即为其他类型,则选择其他普通加密算法进行加密。

本发明具有以下增益效果:

本发明一种数据库自适应加密方法可以有效识别数据库字段类型,依据字段类型选取适当的加密算法进行加密,且加密严谨,加密过程方便,依旧可以保持数据库对数据检索的高效性。

虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围,本发明所属技术领域的技术人员可以对所描述的具体实施例来做出各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的方向或者超越所附权利要求书所定义的范围。本领域的技术人员应该理解,凡是依据本发明的技术实质对以上实施方式所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围。

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