可定制的敏感数据脱敏方法和系统与流程

文档序号:13073014阅读:170来源:国知局
可定制的敏感数据脱敏方法和系统与流程

本发明属于信息安全领域,涉及一种对数据库查询结果集的敏感信息保护技术,具体地说是一种可定制的敏感数据脱敏方法和系统。



背景技术:

随着数据库技术、网络技术和计算机处理能力的飞速发展,信息的存储和数字化处理能力得到了极大的提高,大量含有个人隐私信息的数据被广泛的收集和分析,由此可能造成个人隐私的泄露。例如,假设数据操作人员将从数据库中取出的数据查询结果直接展现给用户,其中如果数据拥有者不采取适当的数据保护措施,将可能造成敏感数据的泄露;同时假设数据操作人员将从数据库中取出的查询结果直接作为发布或共享给第三方的数据,其中如果数据操作人员不对发布或共享的数据进行仔细甄别,就会给商业上的竞争者以可乘之机。

为了防止在数据发布和共享时泄露隐私信息,目前为止已经提出了采用匿名化的方式对数据进行保护。据不完全统计,目前关于数据发布和共享时的数据安全的发明文献有以下几个。

1.一种基于对称加密的实时大数据隐私保护方法:此发明提出利用实时数据不断被定点采样,得到变化增量的隐私保护,用户端对当前数据示数值和实时变化增量处理后,将数据交由服务器乱序存放;当需要数据时,恢复原先数据的时间序并调整数据变化增量,最终获得原始数据,从而抵抗恶意的无背景知识的攻击。

2.一种数据周期性发布的隐私保护方法:此发明充分考虑了医疗数据中一个个体可能对应多条记录,且同一个体可能由于年龄等属性的变化而具有不同的准标识符属性的特点,在发布处理时利用个体关联(k,l)-匿名约束模型尽可能地考虑个体的隐私而非记录层次上的隐私,同时在后续发布时利用-分组不变性规则充分考虑前后两次发布数据之间的个体关联性,保证了个体的隐私信息,抵制了表间的链接攻击。

3.隐私数据发布系统:此发明提出了一种隐私数据发布系统,其中系统中的发布终端既作为数据处理单元又作为嵌入式web服务器单元,实现用户通过浏览器对终端进行远程配置、任务执行和结果输出等操作,保护发布数据中的隐私信息不被攻击者恶意攻击,提高发布数据的安全性。

以上发明中,发明一使用加密的方式,数据库中存储着加密后的数据,不能满足在不泄露用户敏感信息的同时还能进行统计的需求;发明二采用(k,l)匿名约束和-分组不变性规则在周期性数据发布中保护个体的隐私信息,不能满足数据量不能达到k个时的数据安全,同时采用匿名的方式,在一些实时查询真实数据时,降低了数据的真实性;发明三将数据处理单元作为嵌入式web服务器单元,实现用户通过浏览器对终端进行远程配置,任务执行和结果输出等操作,未设置用户的行为权限,不能避免恶意用户错误设置得到未经过脱敏处理的数据。以上发明中均未对系统管理员的权限进行限制,不能避免因系统管理员滥用权力或错误的脱敏设置造成隐私信息泄露的问题发生。



技术实现要素:

本发明的技术任务是针对上述现有技术的不足,为了实现保证客户端实时向数据库请求的敏感数据不被泄露,同时实现对不同的应用程序进行不同的脱敏设置并保证系统管理员的操作行为的合理性,提供了一种可定制的敏感数据脱敏方法和系统。

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

1.可定制的敏感数据脱敏系统,其特征在于:包含敏感信息设置单元(1),敏感信息存储单元(2),数据处理单元(3)。

敏感信息设置单元(1):用于与应用程序服务端进行通信,应用程序服务端管理员(简称:系统管理员)通过敏感信息设置单元进行系统初始化设置和应用程序初始化设置,同时用于验证脱敏规则验证文档和脱敏方法对应文档的完整性。

敏感信息存储单元(2):用于存储脱敏设置文档,脱敏规则验证文档,脱敏方法对应文档,其中脱敏设置文档中存储着各个应用程序识别码和系统管理员设置的针对该应用程序的表名、字段名以及相应的脱敏方法名和参数。

数据处理单元(3):用于存储脱敏函数,验证脱敏设置文档的完整性,并根据脱敏设置文档中保存的规则修改从数据库中取出的结果集,生成脱敏后数据。

2.所述敏感信息设置单元,用于系统管理员进行系统初始化设置,即系统管理员设置脱敏系统的脱敏规则验证文档和脱敏方法对应文档,其中脱敏规则验证文档中包含脱敏方法名和参数要求(注:这里的参数要求可以使用自己的方法自行实现),脱敏方法对应文档中包含数据类型和脱敏方法名,然后将脱敏规则验证文档和脱敏方法对应文档中内容分别序列化为字符串后按照设定的散列算法进行计算,得到散列值,并使用脱敏系统的公钥分别加密散列值,得到加密值,将文档的名字和加密值保存在数据库中的散列值表中。

3.所述敏感信息设置单元,用于系统管理员进行应用程序初始化设置,即设置对一个应用程序需要保护的表名、字段名以及相应的脱敏方法名和参数,其中系统管理员设置表名和字段名后,敏感信息设置单元根据表名和字段名获得此字段的数据类型,根据字段的数据类型在脱敏方法对应文档中查找可用的脱敏方法名并显示,系统管理员从所选字段的可以使用的脱敏方法名中选择一个脱敏方法名并设置参数。

4.所述敏感信息设置单元,系统管理员从所选字段的可以使用的脱敏方法中选择一个脱敏方法名并设置参数,敏感信息设置单元根据选择的脱敏方法名查找脱敏规则验证文档,查看系统管理员的参数设置是否满足参数要求,如果满足要求,验证通过;否则,提示管理员重新设置。

5.所述敏感信息存储单元用于存储脱敏设置文档,其中脱敏设置文档可以是保存在数据库中的脱敏设置表,也可以是保存在本地的脱敏设置文档。

6.所述敏感信息设置单元在系统管理员对一个应用程序进行脱敏信息设置后,将设置信息保存在脱敏设置文档中,同时将脱敏设置文档内容序列化后按照设定的散列算法进行计算,得到散列值,并使用脱敏系统的公钥加密该散列值,得到加密值,将文件名和加密值保存在数据库中的散列值表中。

7.所述敏感信息存储单元用于存储脱敏设置文档,脱敏规则验证文档,脱敏方法对应文档。脱敏设置文档中包含应用程序识别码、表名、字段名、脱敏方法名和参数,其中脱敏方法是预定义的,存储在数据处理单元中;脱敏规则验证文档和脱敏方法对应文档是系统管理员在系统初始化时定义的。

8.所述数据处理单元在操作时假设脱敏文件为xml文件格式,本发明不限制脱敏文件为xml文件格式,也可以选择其他文件格式作为脱敏文件格式(如,json等)。

9.可定制的敏感数据脱敏系统,包括敏感信息设置单元(1),敏感信息存储单元(2),数据处理单元(3);(1)与(2)相连,(2)与(3)相连。(1)和(3)可与应用程序通信;(1)与(3)可与数据库通信。

10.可定制的敏感数据脱敏方法,其特征在于方法包括两个阶段:

(1)系统初始化设置阶段:系统管理员通过敏感信息设置单元设置脱敏方法对应文档和脱敏规则验证文档。

步骤1:系统管理员使用敏感信息设置单元选择需要保护的数据类型,敏感信息设置单元显示脱敏系统中可用的脱敏方法名,系统管理员选择针对此数据类型的脱敏方法名,敏感信息设置单元将以上设置保存在脱敏方法对应文档中。

步骤2:系统管理员为选择的脱敏方法名分别设置参数要求,敏感信息设置单元将以上设置保存在脱敏规则验证文档中。

步骤3:敏感信息设置单元分别将脱敏方法对应文档和脱敏规则验证文档中的内容序列化为字符串后按照设定的散列算法进行计算,得到散列值,并使用脱敏系统的公钥分别加密散列值,得到加密值,将文档名和该文档的加密值分别保存在数据库中的散列值表中。

(2)应用程序初始化阶段:

步骤1:应用程序申请访问此应用程序服务器,应用程序服务器为该应用程序分配识别码(本发明称为:应用程序识别码),应用程序服务器将应用程序识别码提交给敏感信息设置单元。

步骤2:敏感信息设置单元读取脱敏方法对应文档,将脱敏方法对应文档中内容序列化为字符串后,将字符串按设定散列算法进行散列计算,设为m,然后从数据库的散列值表中读取脱敏方法对应文档名对应的内容,使用脱敏系统的私钥对散列值表中内容进行解密得到散列值,设为m,将m和m进行比较,验证完整性,如果二者不相同则验证不通过,提示错误;否则验证通过,转至步骤3继续执行。

步骤3:敏感信息设置单元读取脱敏规则验证文档,将脱敏规则验证文档中内容序列化为字符串后,将字符串按设定散列算法进行散列计算,设为n,然后从数据库的散列值表中读取脱敏规则验证文档名对应的内容,使用脱敏系统的私钥对散列值表中内容进行解密得到散列值,设为n,将n和n进行比较,验证完整性,如果二者不相同则验证不通过,提示错误;否则验证通过,转至步骤4继续执行。

步骤4:系统管理员通过敏感信息设置单元设置该应用程序需要保护的表名和字段名,敏感信息设置单元根据表名和字段名获取字段的数据类型,然后在脱敏方法对应文档中根据数据类型查找该字段可用的脱敏方法名并显示,系统管理员从所选字段的可以使用的脱敏方法中选择一个脱敏方法名并设置参数。

步骤5:敏感信息设置单元在脱敏规则验证文档中查找此脱敏方法名对应的参数要求,查看系统管理员设置的参数是否满足参数要求,如果满足要求,验证通过;否则,验证不通过提示系统管理员重新设置。

步骤6:敏感信息设置单元将完成的脱敏设置的(应用程序识别码、表名、字段名、脱敏方法名、参数)保存在脱敏设置文档中。

步骤7:敏感信息设置单元将脱敏设置文档中内容序列化为字符串后,按照设定的散列算法进行计算,得到散列值,并使用脱敏系统的公钥加密该散列值,得到加密值,将文档名和该文档的加密值保存在数据库中的散列值表中。

(3)数据获取阶段:

应用程序服务端接收应用程序客户端的数据库查询请求,解析查询请求的select语句,从from关键字后获得此查询请求的表名,设为t,然后判断select关键字后是否为*,如果为*,则根据表名t获得表t的字段名;否则直接从select关键字后获得字段名。然后应用程序服务端根据查询请求语句查询数据库,得到查询结果集,将应用程序识别码、表名、字段名和查询结果集提交给数据处理单元。

(4)规则验证和数据操作阶段

数据处理单元读取脱敏设置文档,将脱敏设置文档中内容序列化为字符串后,将字符串按设定散列算法进行散列计算,设为a,然后从数据库中读取散列值表中脱敏设置文档名对应的内容,使用脱敏系统的私钥对该内容进行解密得到散列值,设为b,将a和b进行比较,验证完整性,如果二者不相同则验证不通过,提示错误;如果二者相同则验证通过。

数据处理单元得到应用程序识别码、表名、字段名和查询结果集,并将应用程序识别码、表名、字段名保存在数组x中。本发明以xml文件格式为例解释数据处理单元的具体操作:

步骤1:将数组x中的应用程序识别码、表名及字段名与脱敏设置文档进行匹配,得到脱敏设置文档中对应的(字段名,脱敏方法名,参数)存储在数组a中。

步骤2:创建xml文件的文档对象(即document对象),同时创建xml文件的根节点对象,并将该根节点对象插入xml文件的文档对象中。

步骤3:判断查询结果集中是否还有下一行数据,如果存在下一行数据,转至步骤4;如果不存在,转至步骤8。

步骤4:获得数组x中的表名,设为t,创建以t为元素名的父节点对象。

步骤5:判断数组x中是否还有下一个字段名,如果存在,设为第i个字段名,从查询结果集中取出该行中第i个数据值,定义为y,转至步骤6继续执行;如果不存在下一个字段名,将父节点对象插入根节点对象中,转至步骤3继续执行。

步骤6:创建以该字段名为元素名的子节点对象;并将该字段名与数组a中第一列的数据进行比对,如果数组a的第一列数据中没有与该字段名相匹配的数据,则以y作为子节点的文本值,插入子节点对象中;否则数组a的第一列数据中存在相匹配的数据,转至步骤7继续执行。

步骤7:设数组a中第一列的第j个数据值与该字段名相匹配,取得数组a中第j行的第二列和第三列数据值,即该字段名对应的敏感方法名f和参数c,然后使用脱敏方法f对y进行脱敏,得到脱敏后的数据值,定义为y,即y=f(c,y),以y作为子节点的文本值,插入子节点对象中。最后将创建的子节点对象插入父节点对象中,转至步骤5继续执行。

步骤8:得到最终脱敏后的xml文件,将xml文件返回给应用程序服务端。

本发明是一种可对定制的敏感数据脱敏方法和系统。与现有技术相比具有以下突出的优点。

1.本发明通过将查询结果集生成xml文件,并在生成的过程中直接对数据进行脱敏,此过程提高了通过遍历xml文件的方式进行数据脱敏处理的效率。

2.本发明可以将通过查询结果集生成的脱敏文件提供给客户端应用程序,保证了数据的安全性。

3.本发明对访问数据的不同应用程序设置不同的脱敏方法和参数,实现了数据保护的多样性。

4.本发明为系统管理员提供可选的脱敏方法名,同时系统管理员可以根据所选数据的保护级别选择不同的脱敏方法名并设置参数,然后,本发明检查系统管理员的参数设置是否符合满足参数要求,保证了数据的安全性,同时防止了系统管理员滥用权利。

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

附图说明

图1是本发明可定制的敏感数据脱敏系统的结构图。

图2是本发明数据处理接收到数据库查询结果集的工作流程图。

图3是本发明数据处理单元以xml文件格式为例,对查询结果集中的每条记录创建xml子节点的工作流程图。

图4是本发明中脱敏设置文档的示例图。

图5是本发明中脱敏规则验证文档的示例图。

图6是本发明中脱敏方法对应文档的示例图。

图7是本发明中散列值表的示例图。

具体实施方式

下面将结合附图对本发明做进一步的详细说明。图1是系统的结构图,主要包括数据处理单元,敏感信息存储单元和敏感信息设置单元,其中敏感信息存储单元中保存着脱敏设置文档,脱敏规则验证文档和脱敏方法对应文档。图2是数据处理单元接收到数据库查询结果集的工作流程图,具体步骤包括以下规则验证和数据操作阶段的第一步至第七步以及第十二步和第十三步;图3是数据处理单元以xml文件格式为例,对查询结果集中的每条记录创建xml子节点的工作流程图,包括以下规则验证和数据操作阶段的第八步至第十一步;图4是脱敏设置文档的示例图,用于判断数据库查询结果集中的数据是否是敏感数据以及用何种脱敏方法进行脱敏;图5是脱敏规则验证文档的示例图,用于判断系统管理员对所选字段设置的脱敏方法名的参数是否符合满足要求;图6是脱敏方法对应文档的示例图,用于敏感信息设置单元根据系统管理员所选字段在脱敏方法对应文档中选择可用的脱敏方法名并显示;图7是散列值表的示例图,用于存储脱敏规则文档、脱敏方法对应文档和脱敏设置文档的加密值。

(1)系统初始化设置阶段:系统管理员通过敏感信息设置单元设置脱敏方法对应文档和脱敏规则验证文档。

第一步:系统管理员通过敏感信息设置单元选择需要保护的数据类型,敏感信息设置单元显示脱敏系统中可用的脱敏方法名,系统管理员选择针对此数据类型的脱敏方法名,敏感信息设置单元将以上设置保存在脱敏方法对应文档中。

第二步:系统管理员为选择的脱敏方法名分别设置参数要求,敏感信息设置单元将此信息保存在脱敏规则验证文档中。

第三步:敏感信息设置单元将脱敏方法对应文档中内容序列化为字符串后按照设定的散列算法进行计算,得到散列值,并使用脱敏系统的公钥进行加密,得到加密值,将脱敏方法对应文档名和该加密值保存在数据库中的散列值表中。

第四步:敏感信息设置单元将脱敏规则验证文档中内容序列化为字符串后按照设定散列算法进行计算,得到散列值,并使用脱敏系统的公钥进行加密,得到加密值,将脱敏规则验证文档名和该加密值保存在数据库中的散列值表中。

(2)应用程序初始化阶段:

第一步:应用程序申请访问此应用程序服务器,应用程序服务器为该应用程序分配识别码(本发明称为:应用程序识别码),应用程序服务器将应用程序识别码提交给敏感信息设置单元。

例1:某应用程序申请访问此应用程序服务器,假设为其分配识别码为asd23er8。

例2:另一应用程序申请访问此应用程序服务器,假设为其分配识别码为56gks45v。

第二步:敏感信息设置单元读取脱敏方法对应文档,将脱敏方法对应文档中内容序列化为字符串后,将字符串按设定散列算法进行散列计算,设为m,然后从数据库的散列值表中读取脱敏方法对应文档名对应的内容,使用脱敏系统的私钥对散列值表中内容进行解密得到散列值,设为m,将m和m进行比较,验证完整性,如果二者不相同则验证不通过,提示错误;否则验证通过,转至第三步继续执行。

第三步:敏感信息设置单元读取脱敏规则验证文档,将脱敏规则验证文档中内容序列化为字符串后,将字符串按设定散列算法进行散列计算,设为n,然后从数据库的散列值表中读取脱敏规则验证文档名对应的内容,使用脱敏系统的私钥对散列值表中内容进行解密得到散列值,设为n,将n和n进行比较,验证完整性,如果二者不相同则验证不通过,提示错误;否则验证通过,转至第四步继续执行。

第四步:系统管理员通过敏感信息设置单元设置该应用程序需要保护的表名和字段名,敏感信息设置单元根据表名和字段名获取字段的数据类型,然后在脱敏方法对应文档中根据数据类型查找该字段可用的脱敏方法名并显示,系统管理员从所选字段的可以使用的脱敏方法中选择一个脱敏方法名并设置参数。

例1:系统管理员为识别码为asd23er8的应用程序设置表名customer中字段名为telephone的字段选择脱敏方法名为shield,并设置参数为6。

例2:系统管理员为识别码为56gks45v的应用程序设置表名customer中的字段名为telephone的字段选择脱敏方法名为random,并设置参数为4。

第五步:敏感信息设置单元在脱敏规则验证文档中查找此脱敏方法名对应的参数要求,查看系统管理员设置的参数是否满足参数要求,如果满足要求,验证通过;否则,验证不通过提示系统管理员重新设置。

例1:敏感信息设置单元在脱敏规则验证文档中查找shield方法名对应的参数要求,为最小为4,系统管理员设置的参数为6,满足要求,设置成功。

例2:敏感信息设置单元在脱敏规则验证文档中查找random方法名对应的参数要求,为最小为3,系统管理员设置的参数为4,满足要求,设置成功。

第六步:敏感信息设置单元将完成的脱敏设置的(应用程序识别码、表名、字段名、脱敏方法名、参数)保存在脱敏设置文档中。

第七步:敏感信息设置单元将脱敏设置文档中内容序列化为字符串后,按照设定的散列算法进行计算,得到散列值,并使用脱敏系统的公钥加密该散列值,得到加密值,将文档名和该文档的加密值保存在数据库中的散列值表中。

(3)数据获取阶段:

第一步:应用程序服务端接收应用程序客户端的数据库查询请求,解析查询请求的select语句,从from关键字后获得此查询请求的表名,设为t,然后判断select关键字后是否为*,如果为*,则根据表名t获得表t的字段名,转至第二步继续执行;否则直接从select关键字后获得字段名,转至第二步继续执行。

第二步:应用程序服务端根据查询请求语句查询数据库,得到查询结果集。

第三步:应用程序服务端将该应用程序识别码、表名、字段名和查询结果集提交给数据处理单元。

(4)规则验证和数据操作阶段

第一步:数据处理单元读取脱敏设置表,将脱敏设置文档中内容序列化为字符串后,将字符串按设定散列算法进行散列计算,设为a。

第二步:数据处理单元从数据库中读取散列值表中内容,使用系统的私钥对散列值表中内容进行解密得到散列值,设为b,将a和b进行比较,验证完整性,如果二者不相同则验证不通过,提示错误;如果二者相同则验证通过。

第三步:数据处理单元得到应用程序识别码、表名、字段名和查询结果集,并将应用程序识别码、表名、字段名保存在数组x中。假设脱敏文件为xml文件格式。

第四步:将数组x中的应用程序识别码、表名及字段名与脱敏设置文档进行匹配,得到脱敏设置文档中对应的(字段名,脱敏方法名,参数)存储在数组a中,并初始化i为0,计算数组x中字段的数量,定义为len。

第五步:创建xml文件的文档对象(即document对象),同时创建xml文件的根节点对象,并将该根节点对象插入xml文件的文档对象中。

第六步:判断查询结果集中是否还有下一行数据,如果存在下一行数据,转至第七步;如果不存在,转至第十三步继续执行。

第七步:从数组x中获取表名,设为t,创建以t为元素名的父节点对象。

第八步:判断i是否小于len,如果i小于len,则获得数组x中第i个字段名,设为x,并使用x作为子节点的标签名,创建子节点,从查询结果集的该行中取出第i个值,定义为y;否则i大于等于len,转至第十二步继续执行。

第九步:将x与数组中的第一列进行匹配,如果数组a中存在数据与x相匹配,设为第j个数据,转至第十步继续执行;否则直接将y作为子节点的文本值,插入子节点对象中,并转至第十一步继续执行。

第十步:取得数组a中第j行的第二列和第三列的数据值,及该字段名对应的脱敏方法名f和参数c,使用脱敏函数f对y进行脱敏处理后得到脱敏后数据,设为y,即y=f(c,y),以y作为子节点的文本值,插入子节点对象中。

第十一步:将子节点添加到父节点中,i++,并转至第八步继续执行。

第十二步:将创建的父节点插入根节点中,设置i=0,并转至第六步继续执行。

第十三步:得到脱敏后的xml文件,将xml文件返回给应用程序服务端。

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