在基于数据分类分级和敏感数据保护,保障企业数据安全、如何基于Dataphin实现敏感数据保护(以消费者隐私保护为例)中,我们讲解了在Dataphin中如何利用数据安全能力对敏感数据进行保护,确保对外展示的数据都是脱敏的。
但是经常收到客户询问,脱敏场景也分等级,如果是绝密数据,需要防止通过where、join等方式进行关联,所以需要在底层就进行数据的脱敏,防止数据碰撞;但是对于一般保密的数据,只要确保数据无法对外展示即可,在排查问题、行为分析等场景下还是需要能进行统计和分析的,所以需要支持一种“仅最终展示脱敏,SQL执行时不脱敏”的脱敏方案。
Dataphin在3.6版本上线了脱敏等级功能,就可以完美实现上诉需求:对于绝密数据,采用底层脱敏,防止数据碰撞,保护更彻底;对于一般保护数据,可以采用仅展示脱敏的方法,既能满足正常的分析需求,又能防止意外和批量的数据泄露。
一、场景介绍
场景1:用户隐私数据保护。对于用户姓名、手机号、身份证号等绝密信息,当然要采用底层脱敏的方式,当数据从数据库采集上来的那一刻就进行脱敏,防止有心之人利用数据碰撞的方式获取信息。
场景2:订单号、用户区域等统计分析信息。这些信息不能定位到具体的用户,所以有一定的敏感性,但是又不是绝密,对企业来说一般属于保密数据和内部公开之间,但是分析又经常会用到,就可以使用仅展示脱敏的方式,保证数据本身不可见,但是可以进行一定程度的分析。
二、原理介绍
这里以简单的md5算法为例,说明展示脱敏和全局脱敏生效的场景,实际场景可能更复杂。
场景 |
SQL |
原始语句 |
select id from table where id=110; |
展示脱敏 |
select md5(id) from (select id from table where id=110) a; |
全局脱敏 |
select id from (select md5(id) from table ) a where id=110; |
复杂情况-id是展示脱敏,money是全局脱敏 |
select md5(id),money from (select id,money from (select id,md5(money) money from table ) a1 where id=110) a2; |
三、使用步骤
新功能的使用前提是已经在安全模块配置好了数据分类分级和识别规则,这时候就可以通过资产-安全-脱敏规则进入。前序步骤详见:如何基于Dataphin实现敏感数据保护(以消费者隐私保护为例)。
在新建动态脱敏规则时,就可以选择脱敏方式是 底层脱敏 或 展示脱敏。选择并确定保存后,就会修改研发过程中的动态脱敏保护逻辑,从而实现更灵活的安全脱敏保护。
四、结语
脱敏等级增加了脱敏选择的灵活性,增加了低敏感等级下数据保护的可选方案,让更多数据可以在被正常访问的同时被数据安全保护。
但是展示脱敏在增加了便利性的同时,也会带来数据泄漏的风险,有心之人可以通过碰撞获得特定的数据。建议特别敏感的数据,如姓名、手机号、身份证号、财务数据等,仍然要采用底层脱敏。