什么是数据脱敏
先来看看什么是数据脱敏?数据脱敏也叫数据的去隐私化,在我们给定脱敏规则和策略的情况下,对敏感数据⽐如 ⼿机号、银⾏卡号 等信息,进⾏转换或者修改的⼀种技术⼿段,防⽌敏感数据直接在不可靠的环境下使⽤。
像政府、医疗⾏业、⾦融机构、移动运营商是⽐较早开始应⽤数据脱敏的,因为他们所掌握的都是⽤户最核⼼的私密数据,如果泄露后果是不可估量的。
数据脱敏的应⽤在⽣活中是⽐较常见的,⽐如我们在淘宝买东西订单详情中,商家账户信息会被⽤ * 遮挡,保障了商户隐私不泄露,这就是⼀种数据脱敏⽅式。 淘宝详情
数据脱敏⼜分为静态数据脱敏(SDM)和 动态数据脱敏(DDM):
静态数据脱敏
静态数据脱敏(SDM):适⽤于将数据抽取出⽣产环境脱敏后分发⾄测试、开发、培训、数据分析等场景。
有时我们可能需要将⽣产环境的数据 copy 到测试、开发库中,以此来排查问题或进⾏数据分析,但出于安全考虑⼜不能将敏感数据存储于⾮⽣产环境,此时就要把敏感数据从⽣产环境脱敏完毕之后再在⾮⽣产环境使⽤。这样脱敏后的数据与⽣产环境隔离,满⾜业务需要的同时⼜保障了⽣产数据的安全。
数据脱敏过程
如上图所⽰,将⽤户的真实 姓名、⼿机号、⾝份证、银⾏卡号 通过 替换、⽆效化、乱序、对称加密 等⽅案进⾏脱敏改造。
动态数据脱敏
动态数据脱敏(DDM):⼀般⽤在⽣产环境,访问敏感数据时实时进⾏脱敏,因为有时在不同情况下对于同⼀敏感数据的读取,需要做不同级别的脱敏处理,例如:不同⾓⾊、不同权限所执⾏的脱敏⽅案会不同。
注意:在抹去数据中的敏感内容同时,也需要保持原有的数据特征、业务规则和数据关联性,保证我们在开发、测试以及数据分析类业务不会受到脱敏的影响,使脱敏前后的数据⼀致性和有效性。总之⼀句话:你爱怎么脱就怎么脱,别影响我使⽤就⾏。数据脱敏⽅案
数据脱敏系统可以按照不同业务场景⾃⾏定义和编写脱敏规则,可以针对库表的某个敏感字段,进⾏数据的不落地脱敏。 脱敏系统
数据脱敏的⽅式有很多种,接下来以下图数据为准⼀个⼀个的演⽰每种⽅案。 原始数据1、⽆效化
⽆效化⽅案在处理待脱敏的数据时,通过对字段数据值进⾏截断、加密、隐藏 等⽅式让敏感数据脱敏,使其不再具有利⽤价值。⼀般采⽤特殊字符(*等)代替真值,这种隐藏敏感数据的⽅法简单,但缺点是⽤户⽆法得知原数据的格式,如果想要获取完整信息,要让⽤户授权查询。 截断⽅式
⽐如我们将⾝份证号⽤ * 替换真实数字就变成了 \"220724 ****** 3523\",⾮常简单。 隐藏⽅式2、随机值
随机值替换,字母变为随机字母,数字变为随机数字,⽂字随机替换⽂字的⽅式来改变敏感数据,这种⽅案的优点在于可以在⼀定程度上保留原有数据的格式,往往这种⽅法⽤户不易察觉的。
我们看到 name 和 idnumber 字段进⾏了随机化脱敏,⽽名字姓、⽒随机化稍有特殊,需要有对应姓⽒字典数据⽀持。
随机值3、数据替换
数据替换与前边的⽆效化⽅式⽐较相似,不同的是这⾥不以特殊字符进⾏遮挡,⽽是⽤⼀个设定的虚拟值替换真值。⽐如说我们将⼿机号统⼀设置成 “13651300000”。 数据替换4、对称加密
对称加密是⼀种特殊的可逆脱敏⽅法,通过加密密钥和算法对敏感数据进⾏加密,密⽂格式与原始数据在逻辑规则上⼀致,通过密钥解密可以恢复原始数据,要注意的就是密钥的安全性。 对称加密5、平均值
平均值⽅案经常⽤在统计场景,针对数值型数据,我们先计算它们的均值,然后使脱敏后的值在均值附近随机分布,从⽽保持数据的总和不变。 原始数据
对价格字段 price 做平均值处理后,字段总⾦额不变,但脱敏后的字段值都在均值 60 附近。 平均值6、偏移和取整
这种⽅式通过随机移位改变数字数据,偏移取整在保持了数据的安全性的同时保证了范围的⼤致真实性,⽐之前⼏种⽅案更接近真实数据,在⼤数据分析场景中意义⽐较⼤。
⽐如下边的⽇期字段create_time中 2020-12-08 15:12:25 变为 2018-01-02 15:00:00。 取整
数据脱敏规则在实际应⽤中往往都是多种⽅案配合使⽤,以此来达到更⾼的安全级别。
总结
⽆论是静态脱敏还是动态脱敏,其最终都是为了防⽌组织内部对隐私数据的滥⽤,防⽌隐私数据在未经脱敏的情况下从组织流出。所以作为⼀个程序员不泄露数据是最起码的操守————————————————
版权声明:本⽂为CSDN博主「ouseika」的原创⽂章,遵循CC 4.0 BY-SA版权协议,转载请附上原⽂出处链接及本声明。原⽂链接:https://blog.csdn.net/u010517268/article/details/112864274
因篇幅问题不能全部显示,请点此查看更多更全内容