一种数据脱敏方法、装置及脱敏服务平台
技术领域
本申请涉及信息安全技术领域,尤其涉及一种数据脱敏方法、装置及脱敏服务平台。
背景技术
随着数据信息化蓬勃发展,数据成为企业、生产、经营、战略等几乎所有的经营活动所依赖的、不可或缺的信息。在这繁荣盛世的背景下,人们对数据安全愈加重视。对各个行业来说,数据安全一直是极为重视和敏感的话题。由于数据脱敏属于安全控制的范畴,为此很多企事业单位针对数据流转传递过程中数据脱敏方法制定了各自的解决方案。
数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。涉及客户安全数据或者一些商业性敏感数据,如身份证号、手机号、卡号、客户号等个人信息按照相关部门规定,都需要进行数据脱敏。
目前,每个业务系统均需开发一个独特的数据脱敏模块,且各个数据脱敏模块按照自身设定的规则实现数据脱敏,增加了开发耗时及成本。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种数据脱敏方法、装置及脱敏服务平台。
第一方面,本申请实施例提供了一种数据脱敏方法,包括:
当接收到对数据库的查询请求时,确认所述数据库对应的接入方式;
通过所述接入方式从所述数据库获取待脱敏数据,并确定所述待脱敏数据对应的业务系统;
根据所述数据库对应的脱敏规则对所述待脱敏数据进行脱敏,得到脱敏后数据;
将所述脱敏后数据发送到所述业务系统。
可选的,所述方法还包括:
获取被选定的脱敏选项,所述脱敏选项包括以下至少一项:需要进行脱敏的敏感字段类型、所述敏感字段类型对应的脱敏方式及脱敏等级;
根据所述被选定的脱敏选项设置所述数据库对应的脱敏规则。
可选的,所述根据所述被选定的脱敏选项设置所述数据库对应的脱敏规则,包括:
当确定所述被选定的脱敏选项不符合预设脱敏要求时,执行预设操作,所述预设操作包括以下至少一项:
对所述脱敏选项不符合所述预设脱敏要求进行提醒;
不通过对所述脱敏规则的设置;
根据所述被选定的脱敏选项及所述符合所述预设脱敏要求的脱敏选项设置所述脱敏规则。
可选的,所述被选定的脱敏选项不符合预设脱敏要求,包括以下至少一种情形:
预设敏感字段类型未被选择;
所述敏感字段类型对应的脱敏方式不符合预设脱敏方式;
所述脱敏等级不符合预设脱敏等级。
可选的,所述方法还包括:
确定所述查询请求对应的脱敏信息,所述脱敏信息包括所述待脱敏数据的敏感字段类型和/或脱敏等级;
获取所述脱敏信息对应的脱敏规则。
可选的,所述脱敏规则包括敏感字段类型及所述敏感字段类型对应的脱敏方式;
所述根据所述数据库对应的脱敏规则对所述待脱敏数据进行脱敏,得到脱敏后数据,包括:
根据所述敏感字段类型识别所述待脱敏数据中的敏感字段;
根据所述敏感字段类型对应的脱敏方式对所述敏感字段执行脱敏操作,得到所述脱敏后数据。
第二方面,本申请实施例提供了一种数据脱敏装置,包括:
确认模块,当接收到对数据库的查询请求时,确认所述数据库对应的接入方式;
获取模块,用于通过所述接入方式从所述数据库获取待脱敏数据,并确定所述待脱敏数据对应的业务系统;
脱敏模块,用于根据所述数据库对应的脱敏规则对所述待脱敏数据进行脱敏,得到脱敏后数据;
发送模块,用于将所述脱敏后数据发送到所述业务系统。
第三方面,本申请实施例提供了一种脱敏服务平台,所述脱敏服务平台与数据库和业务系统连接;
所述脱敏服务平台,用于当接收到对数据库的查询请求时,确认所述数据库对应的接入方式;通过所述接入方式从所述数据库获取待脱敏数据,并确定所述待脱敏数据对应的业务系统;根据所述数据库对应的脱敏规则对所述待脱敏数据进行脱敏,得到脱敏后数据;将所述脱敏后数据发送到所述业务系统。
可选的,所述平台包括:调度服务器及分布式的处理服务器集群;
所述调度服务器,用于获取脱敏请求及所述处理服务器集群中每个处理服务器的当前任务处理信息,根据所述当前任务处理信息将所述脱敏请求分配到所述处理服务器;
所述处理服务器,用于执行所述脱敏请求对应的脱敏处理任务。
第四方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
第五方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
可以针对不同接入方式的业务系统,不同类型的数据库提供对数据的统一的脱敏服务,各个业务系统无需各自开发独立的数据脱敏模块,降低开发耗时及成本。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的应用场景示意图;
图2为本申请实施例提供的脱敏服务平台的结构示意图;
图3为本申请实施例提供的一种数据脱敏方法的流程图;
图4为本申请另一实施例提供的一种数据脱敏方法的流程图;
图5为本申请实施例提供的脱敏规则设置界面的示意图;
图6为本申请实施例提供的一种数据脱敏装置的框图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例通过统一的脱敏服务平台,对不同业务系统请求的不同数据库中的数据进行脱敏。
图1为本申请实施例提供的应用场景示意图。如图1所示,该脱敏服务平台10分别与多个相同类型或不同类型的数据库20和业务系统30连接。
该脱敏服务平台,用于当接收到对数据库20的查询请求时,确认数据库20对应的接入方式;通过该接入方式从所述数据库20获取待脱敏数据,并确定所述待脱敏数据对应的业务系统30;根据所述数据库20对应的脱敏规则对所述待脱敏数据进行脱敏,得到脱敏后数据;将所述脱敏后数据发送到所述业务系统30。
由于业务系统的代码可能由不同编程语言开发,因此,该脱敏服务平台10支持不同接入方式的业务系统和数据库,包括但不限于以下几种:JDBC(Java Data BaseConnectivity,Java数据库连接)、proxy代理、web服务和API。
本实施例的脱敏服务平台,可以针对不同接入方式的业务系统,不同类型的数据库提供对数据的统一的脱敏服务,各个业务系统无需各自开发独立的数据脱敏模块,降低开发耗时及成本。另外,由于数据脱敏在统一平台上进行,可以对数据脱敏的合规性进行考核审计,以及对数据脱敏在各个业务系统中的应用程度进行统计。
图2为本申请实施例提供的脱敏服务平台的结构示意图。如图2所示,该脱敏服务平台10包括:调度服务器11及分布式的处理服务器集群。处理服务器集群中包括多个处理服务器12。
所述调度服务器11,用于获取脱敏请求及所述处理服务器集群中每个处理服务器12的脱敏处理任务,根据所述当前任务处理信息将所述脱敏请求分配到所述处理服务器12。
所述处理服务器12,用于执行所述脱敏请求对应的脱敏处理任务。
本实施例中,通过分布式的服务器集群实现该脱敏服务平台,可以基于每个处理服务器的任务处理情况为其分配脱敏任务,从而实现同时对多个脱敏任务的并行处理,提高数据脱敏的效率。
下面首先对本发明实施例所提供的一种数据脱敏方法进行介绍。
图3为本申请实施例提供的一种数据脱敏方法的流程图。如图3所示,该方法应用于脱敏服务平台,包括以下步骤:
步骤S11,当接收到对数据库的查询请求时,确认数据库对应的接入方式。
可选的,可以基于用户发送的数据查询请求,确定从哪个数据库获取待脱敏数据以及将该待脱敏数据发送到哪个业务系统。步骤S11中,根据数据库对应的接入方式从数据库获取待脱敏数据,包括:A1,当接收到对数据库的查询请求时,确定查询请求接入方式;A2,通过接入方式对应的接口将查询请求发送到数据库;A3,通过接口获取数据库根据查询请求查询得到的待脱敏数据。
步骤S12,通过该接入方式从数据库获取待脱敏数据,并确定待脱敏数据对应的业务系统。
步骤S13,根据数据库对应的脱敏规则对待脱敏数据进行脱敏,得到脱敏后数据。
其中,脱敏规则可以为脱敏服务平台预先设定,包括敏感字段类型及敏感字段类型对应的脱敏方式,即对数据中哪些字段进行脱敏以及相应的脱敏方式等等。可选的,步骤S13包括:B1,根据敏感字段类型识别待脱敏数据中的敏感字段;B2,根据敏感字段类型对应的脱敏方式对敏感字段执行脱敏操作,得到脱敏后数据。
步骤S14,将脱敏后数据发送到业务系统。
其中,通过接入方式对应的接口将脱敏后数据发送到业务系统。
本实施例中,可以针对不同接入方式的业务系统,不同类型的数据库提供对数据的统一的脱敏服务,各个业务系统无需各自开发独立的数据脱敏模块,降低开发耗时及成本。另外,由于数据脱敏在统一平台上进行,可以对数据脱敏的合规性进行考核审计,以及对数据脱敏在各个业务系统中的应用程度进行统计。
可选的,该方法还包括:确定查询请求对应的脱敏信息,脱敏信息包括待脱敏数据的数据类型和/或脱敏等级;获取脱敏信息对应的脱敏规则。
若该脱敏规则为预设设定好的,则当接收到对数据库的查询请求时,根据查询请求对应的待脱敏数据的敏感字段类型和/或脱敏等级,根据敏感字段类型和/或脱敏等级获取相应的脱敏规则。
例如,查询请求所要查询的数据为用户ID和手机号码,其中的敏感字段类型为手机号码,则其对应的脱敏规则为:将手机号码第4~7位用*代替。
又例如,预先设置脱敏等级为1~5级,对于手机号码来说,每一级需要隐藏的手机号码位数分别为2~6。若查询请求对应的脱敏等级为3级,则该脱敏等级对应的脱敏规则为:将手机号码第4~7位用*代替。
可选的,该方法还包括对脱敏规则的设置过程,即用户可以根据需要设定脱敏规则。
图4为本申请另一实施例提供的一种数据脱敏方法的流程图。如图4所示,该方法还包括以下步骤:
步骤S21,获取被选定的脱敏选项,脱敏选项包括以下至少一项:需要进行脱敏的敏感字段类型、敏感字段类型对应的脱敏方式及脱敏等级。
其中,脱敏方式包括以下至少一项:待脱敏字符长度、位置及脱敏后字符。
例如,对于手机号码的脱敏方式为:对手机号码中的4位数字,第4~7位进行脱敏,脱敏后的字符为*,即将手机号码第4~7位的数字用*代替。
步骤S22,根据被选定的脱敏选项设置数据库对应的脱敏规则。可选的,脱敏服务平台提供脱敏规则设置界面,根据用户所要查询的信息,显示查询请求涉及到的字段及是否对字段进行脱敏的选项。
例如,如图5所示,用户从成员表中查询用户名(Alias)对应如下字段ID、姓名(name)、手机号码(mobile)、年龄(age)、地址(address)。则用户可以通过对字段的选择,如图中的
和
确定敏感字段即需要进行脱敏的字段为:姓名(name)、手机号码(mobile)及地址(address)。
可选的,在脱敏规则设置界面上,可以对预设脱敏选项,即平台预先设置的需要强制进行脱敏的字段,如身份证号码、银行卡号、手机号码等用户重要隐私信息,进行突出显示,以提醒用户进行选择。
其中,每个脱敏选项包括敏感字段类型以及相应的脱敏方式。如对于手机号码脱敏选项,敏感字段类型为mobile,脱敏方式为手机号码第4-7位用*代替。用户选择该脱敏选项后,即设定了敏感字段及其对应的预设脱敏方式,无需对每个敏感字段均手动设定脱敏方式,简化用户操作。
在步骤S22之前,该方法还包括:当确定被选定的脱敏选项不符合预设脱敏要求时,执行预设操作。
被选定的脱敏选项不符合预设脱敏要求,包括以下至少一种情形:
(a)预设敏感字段类型未被选择。
例如,待脱敏数据中包括ID、手机号码及地址,其中手机号码为预设敏感字段类型,即需要强制进行脱敏的字段类型,若未选择对手机号码进行脱敏处理,则该被选定的脱敏选项不符合要求。
(b)敏感字段类型对应的脱敏方式不符合预设脱敏方式。
其中,脱敏方式不符合预设脱敏方式,可能存在以下三种情形:
①待脱敏字符长度不符合要求,如仅对手机号码中的2位数字进行脱敏操作,只脱敏2位数字,脱敏后手机号码被破解的概率相对较高,因此,一般对手机号码中4位及以上的数字进行脱敏。或者对年龄中3位的数字进行脱敏操作,由于年龄数字最多就是3位,如果全部隐藏,将失去全部信息。
②待脱敏字符位置不符合要求,如对手机号码的前3位进行脱敏操作,由于手机号码前3位数字通常均为13*、15*、16*、17*、18*及19*,即便将其脱敏,被破解的概率也很高。因此,通常对手机号码第4位之后的数字进行脱敏。
③脱敏后字符与待脱敏字符为相同类型字符,如对手机号码进行脱敏时,脱敏后字符为数字,则有可能形成一个真实的手机号码,容易造成错误识别。
(c)脱敏等级不符合预设脱敏等级。
其中,脱敏等级与待脱敏数据及发送查询请求的用户权限有关。
例如,脱敏等级为1~5级,对于手机号码来说,每一级需要隐藏的手机号码位数分别为2~6。基于查询请求,待脱敏数据包括手机号码,则脱敏等级需要在3级,即将手机号码4位数字,第4~7位用*代替。如果选择的是1级或2级,则不符合要求。
又例如,用户权限越低,对应的脱敏等级越高。如果用户权限为最低等级,则对应的脱敏等级应为最高等级。对于手机号码来说,用户权限最低时,最高脱敏等级对应的脱敏规则为5级,将手机号码6为数字,第4~9位用*代替。如果此时用户选择的脱敏等级在5级以下,则不符合要求。
可选的,预设操作包括以下至少一项:
(1)对脱敏选项不符合预设脱敏要求进行提醒。
例如,可以对未选定的预设脱敏选项突出显示,或者弹出对话框,在对话框中显示未选定的预设脱敏选项,已提醒用户选择。
(2)不通过对脱敏规则的设置。
若用户在设置脱敏规则时,未选择其中至少一项预设脱敏选项,则可不通过用户的脱敏设置,即只有当用户选定所有预设脱敏选项后,才通过对该脱敏规则的设置。
(3)根据被选定的脱敏选项及符合预设脱敏要求的脱敏选项设置脱敏规则。
用户在设置脱敏规则时,无论用户是否选择项预设脱敏选项,都根据用户选定的脱敏选项及符合预设脱敏要求的脱敏选项设置脱敏规则,保证用户重要隐私信息不被泄露。
本实施例中,脱敏规则可以为脱敏服务平台默认的规则,即预先根据不同类型的数据设定好的脱敏规则,用户也可以根据需要在脱敏服务平台提供的界面上自定义敏感字段类型及脱敏方式。这样,脱敏服务平台对于数据脱敏更加灵活,用户操作方便。
另外,对于用户设置的脱敏规则,还进一步检查其是否符合要求,只有当脱敏规则符合要求时,才使用其进行后续脱敏,保证用户信息的安全性。
下面以一个具体实例对本实施例的方法进行详细说明。
用户通过java开发的业务系统页面查询统计服务,采用JDBC接入方式,业务系统会引用脱敏服务平台的JDBC驱动。当业务系统启动时,相应的脱敏规则会加载到应用程序对应的脱敏服务平台内存中。
当用户发起一个SQL查询请求时,如“Selectid,name,mobile,age,address asAlias from members”,不对其进行解析,通过JDBC接口将SQL查询请求直接透传给数据库。
当数据库通过JDBC接口返回查询结果即待脱敏数据时,脱敏服务平台获取该待脱敏数据并根据预存的脱敏规则识别其中敏感字段。
脱敏服务平台根据该脱敏规则将敏感字段逐列进行脱敏处理,并将脱敏后的字段合并得到脱敏后数据。如果待脱敏数据为多条,则逐条进行脱敏处理,合并每条脱敏结果,得到脱敏后数据。
脱敏服务平台将脱敏后数据返回给相应的业务系统。
在上述数据脱敏流程中,也可以无需用户自定义脱敏规则,采用脱敏服务平台提供的默认脱敏规则进行数据脱敏服务。用户仅需发送查询请求到平台,由平台确定用户请求的接入方式,基于查询请求匹配相应的脱敏规则对用户请求的数据进行脱敏,并基于该接入方式将脱敏后的数据发送到业务系统。
例如,用户通过订单查询系统发送订单查询请求,查询的订单信息中包括:订单号、订单价格、订单时间、收货人姓名、手机号码、地址。脱敏服平台上订单信息对应的脱敏规则为:
敏感字段类型包括:收货人姓名、手机号、地址;
脱敏方式为:对于姓名,当名字为至少2个字时,将名字的前一个字用*代替,当名字为1个字时,将名字用*代替;手机号码第4-7位用*代替;地址中的楼号、单元号及门牌号用*代替。
基于该脱敏规则,对数据库返回的订单信息进行脱敏,并将脱敏后的订单信息返回到订单查询系统展示给用户。
在一个可选实施例中,在脱敏服务平台上还提供对数据脱敏的监控功能,即在上述步骤S14之前,该方法还包括:对脱敏后数据进行校验,分析预设的校验敏感字段是否脱敏,如果校验敏感字段已脱敏,则脱敏后数据通过校验,执行步骤S14;如果存在未脱敏的校验敏感字段,则可以提醒用户重新脱敏,或直接对未脱敏的校验敏感字段脱敏后得到最终脱敏后字段,再执行步骤S14。
可选的,对脱敏后数据进行校验,还可以进一步分析脱敏方式是否符合要求,如对于手机号码进行脱敏,要求至少对手机号码中的4位数字用*替换,如果脱敏后数据中仅对手机号码中的2位数字用*替换,则该脱敏方式是不符合要求的,可以提醒用户重新脱敏,或直接对未脱敏的校验敏感字段脱敏后得到最终脱敏后字段,再执行步骤S14。
本实施例中,对于脱敏后数据进行监控,检查其中敏感字段及脱敏方式是否符合要求,进一步提高脱敏的全面性及数据安全性。
可选的,在脱敏服务平台上还提供对数据脱敏的数据报表功能,即该方法还包括:对以下至少一项信息进行统计:查询请求,待脱敏数据,脱敏后数据,脱敏规则,查询请求对应的数据库、业务系统,得到脱敏数据报表。
这样,审计人员可以基于脱敏数据报表获知脱敏服务平台上所有脱敏操作,可对所有业务系统、数据库对应的脱敏操作进行全面管理和审核。
下述为本申请装置实施例,可以用于执行本申请方法实施例。
图6为本申请实施例提供的一种数据脱敏装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,该数据脱敏装置包括:
确认模块61,当接收到对数据库的查询请求时,确认数据库对应的接入方式;
获取模块62,用于根据数据库对应的接入方式从数据库获取待脱敏数据,并确定待脱敏数据对应的业务系统;
脱敏模块63,用于根据数据库对应的脱敏规则对待脱敏数据进行脱敏,得到脱敏后数据;
发送模块64,用于将脱敏后数据发送到业务系统。
本申请实施例还提供一种电子设备,如图7所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponentInterconnect,P C I)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。