大厂也在用的六个数据脱敏方案,别漏了。
啪~
搓着脸仔细一想,肯定是个不道德的网站,卖了她老公的个人信息。现在的人都处于网上裸奔的状态,个人信息已经不属于个人了。如今,这种事情似乎很正常。然而,这些事情的发生大多是因为有内奸。
作为开发者,我们能做的就是尽可能避免用户数据通过我们的手泄露出去。所以今天我们就来说说互联网内部防止隐私数据泄露的手段——数据脱敏。
我们来看看什么是数据脱敏。数据脱敏也称为数据去隐私。给定脱敏规则和策略,对手机号、银行卡号等敏感数据进行转换或修改,防止敏感数据被直接用于不可靠环境的技术手段。
比如政府、医疗行业、金融机构、移动运营商,更早开始应用数据脱敏,因为他们掌握的都是用户的核心隐私数据,一旦泄露后果将不可估量。
数据脱敏的应用在生活中屡见不鲜。比如淘宝的购买订单明细中,商家账号信息会被*屏蔽,保证了商家的隐私不被泄露。这是数据脱敏的一种方式。
数据脱敏可分为静态数据脱敏(SDM)和动态数据脱敏(DDM):
静态数据脱敏(SDM):适用于从生产环境中提取数据并脱敏,分发到测试、开发、培训、数据分析等场景。
有时,我们可能需要将生产环境中的数据复制到测试和开发库中,以解决问题或分析数据,但出于安全原因,敏感数据不能存储在非生产环境中。此时,在非生产环境中使用敏感数据之前,应对其进行脱敏处理。
这样,脱敏后的数据与生产环境隔离,既满足了业务需求,又保证了生产数据的安全。
如上图所示,用户的真实姓名、手机号、身份证、银行卡号通过替换、失效、乱序、对称加密等方式进行脱敏。
动态数据脱敏(DDM):一般在生产环境中使用,在访问敏感数据时进行实时脱敏,因为有时候在不同的情况下读取相同的敏感数据需要不同级别的脱敏处理,比如不同的角色、不同的权限会实现不同的脱敏方案。
注意:在擦除数据中敏感内容的同时,还需要保持原有的数据特征、业务规则和数据关联性,以保证我们的开发、测试和数据分析业务不会受到脱敏的影响,从而使脱敏前后的数据保持一致和有效。一句话:随便你脱,只要不影响我用。
数据脱敏系统可以根据不同的业务场景定义和编写脱敏规则,可以对数据库表的敏感字段中的数据进行脱敏。
降低数据敏感度的方法有很多。接下来,将根据下图中的数据逐一演示每个方案。
失效方案在处理待脱敏数据时,通过截断、加密和隐藏字段数据值来对敏感数据进行脱敏,使其不再具有使用价值。一般是特殊字符(*,等。)来代替真值。这种隐藏敏感数据的方法很简单,但缺点是用户无法知道原始数据的格式。如果他们想获得完整的信息,他们应该有权查询。
比如我们把实数换成*,就会变成“220724 * * * * * 3523”,很简单。
随机值替换,字母变成随机字母,数字变成随机数,字随机替换字改变敏感数据。这种方案的好处是可以在一定程度上保留原有的数据格式,而用户往往是察觉不到的。
我们看到姓名和idnumber的字段已经被随机化和脱敏,而名、姓、姓的随机化有点特殊,需要有相应的姓氏字典数据支持。
数据替换和前面的失效方法类似,只是没有用特殊字符来阻挡,而是用一个设定的虚拟值来替换真值。比如我们把手机号设置为“13651300000”。
对称加密是一种特殊的可逆脱敏方法。敏感数据采用加密密钥和算法加密,密文格式与原始数据在逻辑规则上一致。通过密钥解密可以恢复原始数据,但要注意密钥的安全性。
平均方案通常用于统计方案中。对于数值型数据,我们先计算它们的平均值,然后让脱敏值随机分布在平均值周围,从而保持数据之和不变。
平均价格字段价格后,字段总量不变,但脱敏字段值都在平均值60左右。
该方法通过随机移位改变数字数据,移位的舍入保证了数据的安全性和范围的近似真实性,比以往的方案更接近真实数据,在大数据分析场景中具有重要意义。
例如,在下面的日期字段create_time中,2020-12-08 15:12:25变为2018-015: 00: 00。
在实际应用中,数据脱敏规则通常与多种方案结合使用,以达到更高的安全级别。
无论是静态脱敏还是动态脱敏,最终目的都是为了防止组织内部隐私数据的滥用,防止隐私数据未经脱敏流出组织。所以作为程序员,不泄露数据是最起码的道德。