数据库脱敏是一种采用专门的脱敏算法对敏感数据进行变形、屏蔽、替换、随机化、加密,并将敏感数据转化为虚构数据的技术。按照作用位置、实现原理不同,数据脱敏可以划分为静态数据脱敏(static data masking, sdm )和动态数据脱敏(dynamic data masking, ddm )。
静态脱敏一般用于非生产环境,在不能将敏感数据存储于非生产环境的场合中,通过脱敏程序转换生产数据,使数据内容及数据间的关联能够满足测试、开发中的问题排查需要,同时进行数据分析、数据挖掘等分折活动。而动态脱敏通常用于生产环境,在敏感数据被低权限个体访问时才对其进行脱敏,并能够根据策略执行相应的脱敏方法。静态脱敏与动态脱敏的区別在于,是否在使用敏感数据时才进行脱敏,这将影响脱敏规则的实现位置、脱敏方法和策略等参数。
静态脱敏
静态脱敏技术原理主要通过内置规则来自动识别敏感数据,通过内置的脱敏算法进行数据的漂白。
现在数据库脱敏技术有两种方式来识别敏感数据。第一种是通过人工指定,比如通过正则表达式来指定敏感数据的格式,oracle公司开发的oracle data masking pack中就使用了这一种方法来指定。
正则表达式工具图
第二种方式为自动识别,该方式是基于敏感数据的特征来进行敏感数据的自动识别。此方式一般不需要用户编写正则表达式的格式来指定敏感数据,通常产品通过预置的规则来识别一些常见的敏感数据,比如信用卡号,ssn, 手机号,电子邮箱,ip地址,住址等。
识别出敏感数据之后,就需要使用脱敏算法来进行脱敏。在比较常见的数据脱敏系统中,算法的选择一般是通过手工指定,比如通过内置丰富高效的脱敏算法,对常见数据如姓名、证件号、银行账户、金额、日期、住址、电话号码、email地址、车牌号、车架号、企业名称、工商注册号、组织机构代码、纳税人识别号等敏感数据进行脱敏。内置脱敏算法具有如下几种:
1)同义替换
2)部分数据遮蔽
3)混合屏蔽
4)确定性屏蔽
5)可逆脱敏
动态脱敏
在大数据环境中,数据的海量、异构、实时处理将成为常态,能够在不影响数据使用的前提下,在用户层面实现数据屏蔽、加密、隐藏、审汁或内容封锁的动态脱敏具有更强的优势。动态脱敏基于横向或纵向的安全等级要求,依据用户角色、职责和其他规则变换敏感数据,其能力的发挥对大数据的广泛、合规性应用至关重要。
动态数据脱敏目前主流的实现机制是基于代理的实现机制。在这种机制中,用户的数据请求被代理实时在线拦截并经脱敏后返回,此过程对于用户及应用程序完全透明。这种机制的脱敏判断是在数据容器外实现,因而能够适用于非关系型数据库,如大数据环境。脱敏代理部署在数据容器的出口处以网关方式运行,检测并处理所有用户与服务器间的数据请求及响应。它的好处是,无需对数据存储方式及应用程序代码做出任何更改。代理实现数据脱敏的具体方法是查询语句或响应语句替换。代理能自动识别目标为敏感数据的查询语句,并将语句改写为不包含敏感字段,或对敏感字段进行变换处理的查询语句。查询结果返回代理时,会被重新计算、修改并包装为与原请求一致的格式交付用户,从而完成一次敏感信息的查询过程,其原理图如下图所示:
基于代理的动态脱敏实现机制图
安华金和作为国内领先的数据安全厂商,早在2016年就已经研发出数据库脱敏产品,目前已经广泛应用于金融、社保、军工、能源、大型企业等行业,在不影响用户业务运转效率的前提下,保障数据使用安全的提升,让用户自由而放心的使用敏感数据。