大厂也在用的 6种 数据脱敏方案,别做泄密内鬼

2491bf132fab6a598544f759b10980a7.png

最近连着几天晚上在家总是接到一些奇奇怪怪的电话,“哥,你是 xxx 吧,我们这里是 xxx 高端男士私人会所...”,握草,我先是一愣,然后狠狠的骂了回去。一脸傲娇的转过头,面带微笑稍显谄媚:老婆你听我说,我真的啥也没干,你要相信我!

啪~

0defe876b53150ac8ed85d1eabf6145f.png
搞事情啊

过后揉揉脸细想想,肯定是哪个不道德的网站,又把我的个人信息给卖了,现在的人上网都处于一个裸奔的状态,个人信息已不再属于个人,时下这种事好像也见怪不怪了,不过,出现这种事大多是有内鬼

84b4ee638a494fb800ee09f83bb00486.png
停止交易,有内鬼

而作为开发者的我们,能做的就是尽量避免经我们手的用户数据泄露,那今天就来讲讲互联网中内部防止隐私数据泄露的手段-数据脱敏

什么是数据脱敏

先来看看什么是数据脱敏?数据脱敏也叫数据的去隐私化,在我们给定脱敏规则和策略的情况下,对敏感数据比如 手机号银行卡号 等信息,进行转换或者修改的一种技术手段,防止敏感数据直接在不可靠的环境下使用。

像政府、医疗行业、金融机构、移动运营商是比较早开始应用数据脱敏的,因为他们所掌握的都是用户最核心的私密数据,如果泄露后果是不可估量的。

数据脱敏的应用在生活中是比较常见的,比如我们在淘宝买东西订单详情中,商家账户信息会被用 * 遮挡,保障了商户隐私不泄露,这就是一种数据脱敏方式。

8d76414684c9f15c0d25aab4b8698dde.png
淘宝详情

数据脱敏又分为静态数据脱敏(SDM)和 动态数据脱敏(DDM):

静态数据脱敏

静态数据脱敏(SDM):适用于将数据抽取出生产环境脱敏后分发至测试、开发、培训、数据分析等场景。

有时我们可能需要将生产环境的数据  copy 到测试、开发库中,以此来排查问题或进行数据分析,但出于安全考虑又不能将敏感数据存储于非生产环境,此时就要把敏感数据从生产环境脱敏完毕之后再在非生产环境使用。

这样脱敏后的数据与生产环境隔离,满足业务需要的同时又保障了生产数据的安全。

6fa6c8fba3c8772ce9cb08660f2b908b.png
数据脱敏过程

如上图所示,将用户的真实 姓名手机号身份证银行卡号 通过 替换无效化乱序对称加密 等方案进行脱敏改造。

动态数据脱敏

动态数据脱敏(DDM):一般用在生产环境,访问敏感数据时实时进行脱敏,因为有时在不同情况下对于同一敏感数据的读取,需要做不同级别的脱敏处理,例如:不同角色、不同权限所执行的脱敏方案会不同。

注意:在抹去数据中的敏感内容同时,也需要保持原有的数据特征、业务规则和数据关联性,保证我们在开发、测试以及数据分析类业务不会受到脱敏的影响,使脱敏前后的数据一致性和有效性。总之一句话:你爱怎么脱就怎么脱,别影响我使用就行

数据脱敏方案

数据脱敏系统可以按照不同业务场景自行定义和编写脱敏规则,可以针对库表的某个敏感字段,进行数据的不落地脱敏。

3e16effd9cab20c985550431faad1288.png
脱敏系统

数据脱敏的方式有很多种,接下来以下图数据为准一个一个的演示每种方案。

3a27d22854b40192167333fa09627dd9.png
原始数据

1、无效化

无效化方案在处理待脱敏的数据时,通过对字段数据值进行 截断加密隐藏 等方式让敏感数据脱敏,使其不再具有利用价值。一般采用特殊字符(*等)代替真值,这种隐藏敏感数据的方法简单,但缺点是用户无法得知原数据的格式,如果想要获取完整信息,要让用户授权查询。

4c202fa4e5b2863cb739eed392bfa0a3.png
截断方式

比如我们将身份证号用 * 替换真实数字就变成了 "220724 ****** 3523",非常简单。

d8730d4d6be8a0ac684d2e9ff0a2f3b9.png
隐藏方式

2、随机值

随机值替换,字母变为随机字母,数字变为随机数字,文字随机替换文字的方式来改变敏感数据,这种方案的优点在于可以在一定程度上保留原有数据的格式,往往这种方法用户不易察觉的。

我们看到 nameidnumber 字段进行了随机化脱敏,而名字姓、氏随机化稍有特殊,需要有对应姓氏字典数据支持。

61bb4c71c889d80eddf0af5f97a98665.png
随机值

3、数据替换

数据替换与前边的无效化方式比较相似,不同的是这里不以特殊字符进行遮挡,而是用一个设定的虚拟值替换真值。比如说我们将手机号统一设置成 “13651300000”。

89eb20ce126feb6292033fc3f64476d3.png
数据替换

4、对称加密

对称加密是一种特殊的可逆脱敏方法,通过加密密钥和算法对敏感数据进行加密,密文格式与原始数据在逻辑规则上一致,通过密钥解密可以恢复原始数据,要注意的就是密钥的安全性。

f5a1585fd138fbaed29b102976e06488.png
对称加密

5、平均值

平均值方案经常用在统计场景,针对数值型数据,我们先计算它们的均值,然后使脱敏后的值在均值附近随机分布,从而保持数据的总和不变。

7ae1c7ac69874fa6ef3bb820ea2b523b.png
原始数据

对价格字段 price 做平均值处理后,字段总金额不变,但脱敏后的字段值都在均值 60 附近。

21d15187bafb6369352839772cfc3d32.png
平均值

6、偏移和取整

这种方式通过随机移位改变数字数据,偏移取整在保持了数据的安全性的同时保证了范围的大致真实性,比之前几种方案更接近真实数据,在大数据分析场景中意义比较大。

比如下边的日期字段create_time2020-12-08 15:12:25 变为 2018-01-02 15:00:00

cea365088fbcfa84005b1eaf9ecba20c.png
取整

数据脱敏规则在实际应用中往往都是多种方案配合使用,以此来达到更高的安全级别。

总结

无论是静态脱敏还是动态脱敏,其最终都是为了防止组织内部对隐私数据的滥用,防止隐私数据在未经脱敏的情况下从组织流出。所以作为一个程序员不泄露数据是最起码的操守。

几句唠叨

如果有一丝收获,欢迎在看、点赞、转发,您的认可是我最大的动力。

b16c2df57e717c0c49988ed70fcadabb.gif

往期推荐

e10ab9d88e5607583fa5d415300927d7.png

面试突击55:delete、drop、truncate有什么区别?


bad707154ed5759cbcf73b4cf4eca7a2.png

面试突击51:为什么单例一定要加 volatile?


1f046a2183453c3c5417fbe1791435cb.png

最简单的6种防止数据重复提交的方法!(干货)


62e8f1e0dd3501c8b5b56f8dc06ee0b7.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/544117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Python中使用OpenCV裁剪图像

What is Cropping? 什么是播种? Cropping is the removal of unwanted outer areas from a photographic or illustrated image. The process usually consists of the removal of some of the peripheral areas of an image to remove extraneous trash from the…

面渣逆袭:RocketMQ二十三问

1.为什么要使用消息队列呢?消息队列主要有三大用途,我们拿一个电商系统的下单举例:解耦:引入消息队列之前,下单完成之后,需要订单服务去调用库存服务减库存,调用营销服务加营销数据……引入消息…

Java日志性能那些事(转)

在任何系统中,日志都是非常重要的组成部分,它是反映系统运行情况的重要依据,也是排查问题时的必要线索。绝大多数人都认可日志的重要性,但是又有多少人仔细想过该怎么打日志,日志对性能的影响究竟有多大呢?…

33岁程序员的年中总结

作者 | 磊哥来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)人生在不同的阶段会有不同的生活方式和思考问题的角度,这是一件非常有趣的事~ 比如,我在 22 岁会想&…

数据科学中的简单线性回归

简单线性回归 (Simple Linear Regression) A simple regression model could be a linear approximation of a causative relationship between two or additional variables. Regressions models are extremely valuable, as theyre one in every of the foremost common ways…

鹅厂一面,有关 ThreadLocal 的一切

1. 底层结构ThreadLocal 底层有一个默认容量为 16 的数组组成,k 是 ThreadLocal 对象的引用,v 是要放到 TheadLocal 的值public void set(T value) {Thread t Thread.currentThread();ThreadLocalMap map getMap(t);if (map ! null)map.set(this, valu…

面试突击58:truncate、delete和drop的6大区别!

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)在 MySQL 中,使用 truncate、delete 和 drop 都可以实现表删除,但它们 3 个的使用场景和执行…

智力游戏

【Description】whitecloth 最近迷上了一个你小时候已经玩厌了的游戏:移火柴棒。他现在吵着要你陪他玩,你没有办法,只好写一个程序来完成这个工作了。你被给出了一个火柴拼成的等式,比如说下面这个:( 5 7 …

面渣逆袭:MySQL六十六问!建议收藏

基础MySQ Logo作为SQL Boy,基础部分不会有人不会吧?面试也不怎么问,基础掌握不错的小伙伴可以跳过这一部分。当然,可能会现场写一些SQL语句,SQ语句可以通过牛客、LeetCode、LintCode之类的网站来练习。1. 什么是内连接…

try-with-resources 中的一个坑,注意避让

小伙伴们好呀,昨天复盘以前做的项目(大概有一年了),看到这个 try-catch ,又想起自己之前掉坑的这个经历 ,弄了个小 demo 给大家感受下~ 😄问题1一个简单的下载文件的例子。这里会出现什么情况…

第 二 十 八 天 :LB 负 载 均 衡 搭 建 之 LVS

小Q:抱怨,是一种负能量,犹如搬起石头砸自己的脚,与人无益,于己不利,于事无补 前面我们介绍了HA高可用集群,今天我们来了解下LB负载均衡集群,在学习完基本的搭建后,在扩展…

一个依赖搞定Spring Boot 配置文件脱敏

经常会遇到这样一种情况:项目的配置文件中总有一些敏感信息,比如数据源的url、用户名、密码....这些信息一旦被暴露那么整个数据库都将会被泄漏,那么如何将这些配置隐藏呢?今天介绍一种方案,让你在无感知的情况下实现配…

js ‘use strict’详解

2019独角兽企业重金招聘Python工程师标准>>> 一、概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。 …

如何优雅的写 Controller 层代码?

本篇主要要介绍的就是controller层的处理,一个完整的后端请求由4部分组成:1. 接口地址(也就是URL地址)、2. 请求方式(一般就是get、set,当然还有put、delete)、3. 请求数据(request,有head跟body)、4. 响应数据(response)本篇将解…

面试突击60:什么情况会导致 MySQL 索引失效?

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)为了验证 MySQL 中哪些情况下会导致索引失效,我们可以借助 explain 执行计划来分析索引失效的具体场景。…

使用PHP建立SVN的远程钩子,使用exec命令自动更新SVN的代码

2019独角兽企业重金招聘Python工程师标准>>> 本操作需要使用到php执行sudo命令的权限,相关设置可以参考:apache/Nginx下的PHP/Ruby执行sudo权限的系统命令 通过Svn的钩子功能,可以在我们执行SVN操作时,同时自动执行一些…

Java 中 for 和 foreach 哪个性能高?

作为程序员每天除了写很多 if else 之外,写的最多的也包含 for 循环了,都知道我们 Java 中常用的 for 循环有两种方式,一种是使用 for loop,另一种是使用 foreach,那如果问你,这两种方式哪一种效率最高&…

阿里出品,SpringBoot自动化部署神器!

最近发现一款阿里出品的IDEA插件CloudToolkit,不仅支持直接打包应用部署到远程服务器上,而且还能当终端工具使用。试用了一把这个插件,非常不错,推荐给大家!装上这个插件,IDEA一站式开发又近了一步&#xf…

聊聊异步编程的 7 种实现方式

最近有很多小伙伴给我留言,能不能总结下异步编程,今天就和大家简单聊聊这个话题。早期的系统是同步的,容易理解,我们来看个例子同步编程当用户创建一笔电商交易订单时,要经历的业务逻辑流程还是很长的,每一…

二进制补码乘法除法_二进制乘法和除法

二进制补码乘法除法1)二进制乘法 (1) Binary Multiplication) Binary numbers can be multiplied using two methods, 二进制数可以使用两种方法相乘, Paper method: Paper method is similar to multiplication of decimal numbers on paper. 纸张方法&#xff1a…