发布网友 发布时间:2022-09-08 01:47
共1个回答
热心网友 时间:2024-11-30 03:41
为尽量避免经我们手的用户信息数据泄漏,从而提及到互联网中内部防止隐私数据泄露的手段: 数据脱敏
先来看看什么是数据脱敏?数据脱敏也叫数据去隐私化,在我们给定脱敏规则和策略的情况下,对敏感数据比如 手机号 、 银行卡号 等信息,进行转换或者修改的一种技术手段,防止敏感数据直接在不可靠的环境下使用
想*、医疗行业、金融机构、移动运营商是比较早开始应用数据脱敏的,因为他们所掌握的都是用户最核心的私密数据,如果泄漏后果是不可估量的
数据脱敏的应用在生活中是比较常见的,比如我们在淘宝买东西订单详情中,商家账户信息会备用 * 遮挡,保障了商户隐私不泄露,这是一种数据脱敏方式
数据脱敏有分为静态数据脱敏( SDM )和动态数据脱敏( DDM )
静态数据脱敏( SDM ):适用于数据抽取出生产环境脱敏后分发至测试、开发、培训、数据分析等场景
有时我们可能需要将生产环境的数据 copy 到测试、开发库中,以来排查问题或进行数据分析,但出于安全考虑又不能将敏感数据存储于非生产环境,此时就要把敏感数据从生产环境脱敏完毕之后再在非生产环境使用
这样脱敏后的数据与生产环境隔离,满足业务需要的同时又保障了生产数据的安全
如图所示:将用户的真实 姓名 、 手机号 、 身份证 、 银行卡号 通过 替换 、 吴小华 、 乱序 、 对称加密 等方案进行脱敏改造
动态数据脱敏( DDM ):一般用在生产环境,访问敏感数据时实时进行脱敏,因为有时在不同情况下对于同一敏感数据的读取,需要做不同级别的脱敏处理,列如:不同角色、不同权限所执行的脱敏方案也不用
数据脱敏系统可以按照不同业务场景自行定义和编写脱敏规则,可以针对库表的某个敏感字段,进行数据的不落地脱敏
数据脱敏的方式有很多种,接下来一下数据为准
1、无效化
无效化方案在处理待脱敏的数据时,通过对字段数据值进行 截断 、 加密 、 隐藏 等方式让敏感数据脱敏,使其不在具有利用价值。一般采用特殊字符( * 等)代替真值,这种隐藏敏感数据的方式简单,但缺点是用户无法得知原数据的格式,如果想要获取完整信息,要让用户授权查询
比如我们将身份证号用*替换真实数字就变成了"220724 ****** 3523",非常简单
2、随机值
随机值替换,字母变为随机字母,数字变为随机数字,文字随机替换文字的方式来改变敏感数据,这种方案的优点在于可以在一定程度上保留原有数据的格式,往往这种方法用户不易察觉
以 name 和 idnumber 字段进行随机化脱敏,而名字姓、氏随机化稍有特殊,需要有对应姓氏字典数据支持
3、数据替换
数据替换与1的无效化方式比较相似,不同的事这里不以特殊字符进行遮挡,而是用一个设定的虚拟值替换真值。比如说我们将手机号统一设置成 “13651300000”
4、对称加密
对称加密是一种特殊的可逆脱敏方法,通过加密密钥和算法对敏感数据进行加密,密文格式与原数据在逻辑规则上一致,通过密钥解密可以恢复原数据,要注意的就是密钥的安全性
5、平均值
平均值方案经常用在统计场景,针对数值型数据,我们先计算它们的均值,然后使脱敏后的值在均值附近随机分布,从而保持数据的总和不变
对价格字段 price 做平均值处理后,字段总金额不变,但脱敏后的字段值都在均值60附近
6、偏移和取整
这种方式通过随机移位改变数字数据,偏移取整在保证了数据的安全性的同时保证了范围的大致真实性,比之前几种方案更接近真实数据,在大数据分析场景中意义比较大
比如下边的日期字段 create_time 中 2020-12-08 15:12:25 变为 2018-01-02 15:00:00
数据脱敏规则在实际应用中往往都是多种方案配合使用,以此来达到更高的安全级别