定义
数据脱敏,是对敏感数据进行变形处理,其目的是保护隐私数据等信息的安全。也称为数据漂白、数据去隐私化或数据变形,是一种技术机制,用于在给定的规则、策略下对敏感数据进行变换、修改,以隐藏敏感信息。数据脱敏的主要目的是在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集,防止敏感隐私数据的泄漏。
数据脱敏分类
静态数据脱敏(Static Data Masking),采用先脱敏后分发的策略,一般是将生产环境数据先脱敏,再拷贝到测试或开发库中,导出到其他环境的数据已经改变了原始数据的内容,使得脱敏后的数据成为了测试开发源数据。
动态数据脱敏(Dynamic Data Masking)是与生产环境紧密关联的,访问敏感数据时实时地进行脱敏,主要用于直接访问生产数据的场景,在屏蔽敏感信息的同时也保证了源数据的一致性和有效性。
静态数据脱敏和动态数据脱敏的主要区别在于处理时间和处理对象的不同:
静态数据脱敏:在数据存储或传输过程中进行脱敏,即在对数据进行读取或写入之前,已经完成了脱敏处理。这种方式通常用于数据备份、数据分析、数据共享等场景。静态数据脱敏的优点是操作简单,成本低,但缺点是无法实时保护数据,可能存在数据泄露的风险。
动态数据脱敏:在数据使用过程中进行脱敏,即在对数据进行读取或写入的同时,进行脱敏处理。这种方式通常用于生产环境、测试环境等场景。动态数据脱敏的优点是可以实时保护数据,安全性高,但缺点是技术要求高,成本相对较高。
总的来说,静态数据脱敏和动态数据脱敏的主要差别在于处理时间(脱敏发生在数据存储或传输过程中,还是数据使用过程中)和处理对象(脱敏是针对存储或传输过程中的数据,还是针对使用过程中的数据)。
数据脱敏的技术手段
数据脱敏的手段主要有以下几种:
数据替换:这是最常见的数据脱敏手段,即将敏感数据替换为无敏感信息的替代数据。例如,可以将姓名、电话号码等敏感信息替换为随机生成的数据。
以手机号码为例,可以生成随机长短的字符/数字等,也可以保留格式,比如国内生成11位随机数字,保留有效性,则需要生成11位数字,且满足手机号校验正则表达式。
数据屏蔽:数据屏蔽是指将敏感数据的一部分或全部隐藏起来,使得用户无法看到完整的敏感信息。例如,可以使用星号(*)或其他符号来屏蔽敏感数据的部分或全部内容。
数据加密:数据加密是指使用加密算法对敏感数据进行加密,使得只有拥有解密密钥的用户才能查看原始的敏感信息。
数据混淆:数据混淆是指对敏感数据进行重新编码,使得原始的敏感信息无法直接从混淆后的数据中恢复出来。
数据伪装:数据伪装是指将敏感数据伪装成非敏感数据,例如,可以将信用卡号伪装成图书编号等。
数据一致性及可用性
以上脱敏方式都需要根据实际业务场景选择,设计之初就需要考虑用户可能的保持数据一致性以及可用性的需求。
一致性上,可能的要求:
- 多个数据库表的id,外键等数据要保持一致,即脱敏后也要一致,数据关联关系不能丢失
- 同一张表中,相同的值在脱敏后要保持一致
- 数据中两个字段存在关系,比如地址和身份证号,在脱敏过程中生成身份证号时需要前几位和地址保持一致(根据业务场景,这种比较苛刻的需求可以按定制化需求处理)
- 数据中某些字段绑死,洗牌时就需要几个字段一起绑定去洗牌。