可连续查询的数据脱敏方法和系统与流程

文档序号:11287194阅读:779来源:国知局
可连续查询的数据脱敏方法和系统与流程

本发明属于信息安全领域,涉及一种敏感数据连续查询时的动态脱敏技术,具体地说是一种可连续查询的数据脱敏方法和系统。



背景技术:

随着计算机技术的发展,各行各业都开始采用计算机及相应的信息技术进行管理和运营,这使得企业生成、收集、存储和处理数据的能力大大提高,数据量与日剧增,如何保证隐私数据的安全性与数据的高可用性逐渐成为企业的主要关注点。

为了防止在数据发布和数据共享过程中泄露隐私信息,目前为止已经提出了许多对数据库中记录的数据进行加密的方法。据不完全统计,目前关于数据库保护的发明文献有以下几个:

1.数据库加密系统、方法和程序:此发明根据提出的数据库加密系统对数据库进行加密保护;

2.一种应用层透明的数据库加密方法:此发明涉及一种数据库驱动的代理解析sql语句,同时记录需要加密的表名和别名,并根据加密的表名和别名的记录对请求的数据进行解密;

3.一种字段级数据库加密装置:此发明涉及一种数据库加密装置,能使用户根据不同加密强度的需要选择数据库系统支持的不同的对称加密算法;

4.一种嵌入式数据库加密存储方式:此发明使用户可以指定数据库的加密存储模式,分为不加密模式、自定义加密模式和默认加密模式。

以上发明,用户向数据库提出查询请求,数据库根据用户的查询请求返回查询结果,其中采用了加密的方法对数据进行处理,需要对密钥进行特殊存储,同时在不解密的情况下,数据无法正常使用,其次,虽然数据在保存时被加密保护,但是在使用时是解密后的敏感数据,不能满足脱敏后给其他人使用的要求。同时使用加密的方式存在密钥被窃取的威胁。



技术实现要素:

本发明的技术任务是针对上述现有技术的不足,为了实现向客户端提供脱敏后的查询结果数据集,同时使用户可以根据已获取的脱敏后数据进行连续查询,提供了一种可连续查询的数据脱敏方法和系统。

为了实现上述目标,本发明采取如下技术方案:

1、可连续查询的数据脱敏系统,其特征在于:包含客户端管理器(1),脱敏规则设置单元(2),查询语句修改模块(3),结果集修改模块(4),敏感信息处理单元(5)。

客户端管理器(1):用于接收客户端查询请求,将查询结果返回给客户端,监听会话的销毁;同时用于将客户端查询请求时的会话id提交给查询语句修改模块(3)和结果集修改模块(4)。

脱敏规则设置单元(2):用于系统管理员设置数据表中需要保护数据的(数据长度,数据内容,数据起始位置,脱敏函数名),其中(数据长度,数据内容,数据起始位置,脱敏函数名)称为一条脱敏规则,并将脱敏规则保存在脱敏规则记录中,同时用于根据会话id删除脱敏数据记录中的会话数据。

查询语句修改模块(3):用于验证脱敏规则记录完整性,并根据会话id、脱敏规则记录中的脱敏规则和脱敏数据记录中的数据将查询请求语句中所有在脱敏数据记录中找到匹配值的谓词值替换为相应的真实数据。

结果集修改模块(4):用于根据会话id、脱敏规则记录中的脱敏规则和脱敏数据记录中的数据对结果集数据进行脱敏处理;

敏感信息处理单元(5):用于存储脱敏函数;

2、所述客户端管理器用于监听会话的销毁,客户端管理器定期向客户端(注:客户端为应用服务器)轮询每个会话的当前状态,如果客户端返回某会话已经销毁,则通知脱敏规则设置单元,脱敏规则设置单元将脱敏数据记录中此会话id对应的数据删除。

3、所述脱敏规则设置单元在系统管理员设置脱敏规则后,将设置的脱敏规则保存在脱敏规则记录中,同时将脱敏规则记录中内容序列化为字符串后按照设定的散列算法进行计算得到散列值,并将该数据表名和散列值保存在数据库中的散列值表中。

4、所述查询语句修改模块根据会话id、脱敏规则记录中的脱敏规则和脱敏数据记录中的数据修改查询语句,其中的脱敏规则记录和脱敏数据记录,也可以是脱敏规则表和脱敏数据表。

5、所述查询语句修改模块根据会话id、脱敏规则记录中的脱敏规则和脱敏数据记录中的数据修改查询语句,其中脱敏规则记录格式是(数据长度,数据内容,数据起始位置,脱敏函数名),其中脱敏函数是预定义的,存储在敏感信息处理单元中。

6、所述查询语句修改模块根据会话id、脱敏规则记录中的脱敏规则和脱敏数据记录中的数据修改查询语句,其中脱敏数据记录的格式为(会话id,真实数据,脱敏后数据)。

7、所述查询语句修改模块和结果集修改模块判断脱敏规则记录中是否有脱敏规则与数据相匹配,本发明中脱敏规则为(数据长度,数据内容,数据起始位置,脱敏函数名),数据与脱敏规则匹配的定义是:设数据为t,t的长度=数据长度,并且t中从“数据起始位置”包含有“数据内容”。也可以在脱敏规则中增加其他对数据的要求。

8、可连续查询的数据脱敏系统,包括客户端管理器(1)、脱敏规则设置单元(2)、查询语句修改模块(3)、结果集修改模块(4)、敏感信息处理单元(5);(1)与(2)相连,(1)与(3)相连,(1)与(4)相连,(2)与(5)相连,(3)与(5)相连,(4)与(5)相连,(1)可与客户端通信,(2)、(3)、(4)可与数据库通信。

9、可连续查询的数据脱敏方法,其特征在于方法包括三个阶段:

(1)初始化设置阶段:

第一步:系统管理员通过脱敏规则设置单元设置数据库中每个数据表中需保护的数据的(数据长度,数据内容,数据起始位置,脱敏函数名),其中(数据长度,数据内容,数据起始位置,脱敏函数名)称为一条脱敏规则;

第二步:脱敏规则设置单元将此脱敏规则保存在脱敏规则记录中;

第三步:脱敏规则设置单元将此脱敏规则记录中的内容序列化为字符串后,将字符串按设定散列算法进行散列计算得到散列值,并将该数据表名和散列值保存在数据库中的散列值表中;

(2)查询语句处理阶段

第一步:客户端程序向可连续查询的数据脱敏系统发起查询请求,并提交会话id。

第二步:客户端管理器接收客户端的查询请求,并获取当前会话id,并将此会话id提交给查询语句修改模块和结果集修改模块,同时将查询请求语句转交给查询语句修改模块。查询语句修改模块做出以下操作:

步骤2-1:查询语句修改模块获得查询请求语句中的数据表名,并按照该数据表名查找并读取对应的脱敏规则记录,并将此脱敏规则记录中的内容序列化为字符串,将字符串按设定散列算法进行散列计算,计算结果为a;

步骤2-2:查询语句修改模块读取数据库散列值表中该数据表名对应的内容,设为b,将a和b进行比较,验证完整性,如果二者不相同则验证不通过,提示错误;如果二者相同则验证通过。

步骤2-3:查询语句修改模块解析查询请求语句,获得查询请求语句中的所有谓词;

步骤2-4:判断是否存在未处理的谓词,如果存在,设为w并转至步骤2-5继续执行;否则,将处理后的查询请求语句提交给数据库;

步骤2-5:判断该谓词w是否存在未处理的谓词值,如果存在未处理的谓词值,设该值为x,并转至步骤2-6继续执行;否则转至步骤2-4继续执行;

步骤2-6:查看脱敏数据记录中,此会话id对应行中的脱敏后数据列中是否存在谓词值x,如果存在x,则表明本查询语句中的谓词值x是之前查询请求的脱敏后数据,即本次查询为连续查询,获得此谓词值x对应的真实数据值,设为y,并使用数据值y替换查询请求语句中的谓词值x,转至步骤2-5继续执行;如果不存在,转至步骤2-7继续执行;

步骤2-7:查询语句修改模块将此谓词值x与脱敏规则记录中的脱敏规则进行匹配,如果存在脱敏规则的前三列与此谓词值x相匹配,设该脱敏规则为r,转至步骤2-8继续执行;否则转至步骤2-5继续执行;

步骤2-8:获取脱敏规则r对应的脱敏函数名,设为f。使用脱敏函数f对谓词值x进行运算,得到脱敏后数据y,即y=f(x),将(会话id,x,y)保存在脱敏数据记录中,并转至步骤2-5继续执行。

(3)结果集数据处理阶段

第一步:结果集修改模块读取脱敏规则记录。结果集修改模块对查询结果做出以下操作:

步骤3-1:设查询结果集为data[][],同时初始化i=0,j=0,len为查询结果集的记录数;

步骤3-2:判断i<len,如果i小于len,则转至步骤3-3继续执行;否则,将修改后的结果集返回给客户端;

步骤3-3:判断j是否小于data[i]的字段数,如果判断结果为false,则i++并转至步骤3-2继续执行;否则,获取数据data[i][j],设为m,将数据m与脱敏规则记录中存储的脱敏规则相匹配,即检查是否存在脱敏规则使数据m与脱敏规则中的前三列相匹配,如果存在,设该脱敏规则为dr,转至步骤3-4继续执行;否则,j++并转至步骤3-3继续执行;

步骤3-4:获取脱敏规则dr对应的脱敏函数名,设为f2;

步骤3-5:结果集修改模块查看脱敏数据记录中此会话id对应行中的真实数据列中是否有数据m,如果存在,则得到对应的脱敏数据列中数据,定义为n,并使用数据n替换结果集中的数据m,j++并转至步骤3-3继续执行;如果不存在数据m,则使用脱敏函数f2对数据m进行运算,得到脱敏后数据n,即n=f2(m),将(会话id,m,n)存入脱敏数据记录中,并使用数据n替换结果集中的数据m,j++转至步骤3-3继续执行。

(4)会话状态监听:

客户端管理器定期向客户端轮询每个会话的当前状态,如果客户端反馈某会话已经销毁,客户端管理器通知脱敏规则设置单元删除此会话id的数据,脱敏规则设置单元将脱敏数据记录中此会话id对应的数据删除。

本发明是一种可连续查询的数据脱敏方法和系统。与现有技术相比具有以下突出的优点:

1.实现了结果集的安全传输,同时保证了将查询结果集共享给第三方进行数据分析时不泄露隐私数据;

2.用户查询数据时,如果查询的返回结果包含敏感数据,则对敏感数据进行动态脱敏。同时当用户根据脱敏后的数据继续查询其它字段信息时,则根据会话把脱敏数据还原为原始数据后根据原始数据进行查询。

3.基于会话的机制,当客户端向客户端管理器反馈某会话已经销毁,则通知脱敏规则设置单元将脱敏数据记录中存储的该会话对应的数据删除,不仅节省了空间,同时提高了查找效率。

4.对于用户和开发人员,对业务数据操作时,不需要考虑对敏感数据的处理,所有的敏感数据处理操作对应用层开发人员和用户是透明的。

附图说明

图1是本发明可连续查询的数据脱敏方法和系统的结构图;

图2是本发明查询语句修改模块接收数据库查询请求的流程图;

图3是本发明结果集修改模块接收到查询结果集的流程图;

图4是本发明中脱敏规则记录的示例图;

图5是本发明中脱敏数据记录的示例图。

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