首页 > 其他分享 >业务数据脱敏

业务数据脱敏

时间:2024-06-20 17:23:53浏览次数:25  
标签:加密 业务 随机 敏感数据 数据 替换 脱敏

业务数据脱敏

一、什么是数据脱敏

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

像政府、医疗行业、金融机构、移动运营商是比较早开始应用数据脱敏的,因为他们所掌握的都是用户最核心的私密数据,如果泄露后果是不可估量的。数据脱敏的应用在生活中是比较常见的,比如我们在淘宝买东西订单详情中,商家账户信息会被用 * 遮挡,保障了商户隐私不泄露,这就是一种数据脱敏方式。

淘宝详情

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

二、静态数据脱敏

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

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

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

数据脱敏过程

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

三、动态数据脱敏

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

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

四、数据脱敏方案

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

脱敏系统

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

原始数据

4.1无效化

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

截断方式

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

隐藏方式

4.2随机值

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

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

随机值

4.3数据替换

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

数据替换

4.4对称加密

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

对称加密

4.5平均值

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

原始数据

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

平均值

4.6偏移和取整

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

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

取整

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

五、总结

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

标签:加密,业务,随机,敏感数据,数据,替换,脱敏
From: https://www.cnblogs.com/JaxYoun/p/18259057

相关文章

  • kafka 如何保证不重复消费又不丢失数据?
    作者:Java3y链接:https://www.zhihu.com/question/483747691/answer/2392949203来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。面试官:今天我想问下,你觉得Kafka会丢数据吗?候选者:嗯,使用Kafka时,有可能会有以下场景会丢消息候选者:比如说,我们用Produce......
  • 鸿蒙实战案例-欢迎页面UI实现及欢迎页面业务
    前言      欢迎来到我的鸿蒙移动开发项目!我将致力于使用鸿蒙操作系统打造出色的移动应用。让我们一起开启创新的旅程!现在我们将做一个关于健康的软件,本次带来的是欢迎页面!一、设计与布局界面设计       这个布局看起来就是很简单的,是一个从上到下的列式布......
  • 【数据结构与算法】二叉树的性质 详解
    在二叉树的第i层上至多有多少个结点。在二叉树的第i层上至多有2i−1......
  • 【数据结构与算法】树,二叉树 详解
    给出树的不同的几种表示形式。邻接矩阵:这是一种二维数组,其中的元素表示两个节点之间是否存在边。这种表示形式适用于稠密图,但对于稀疏图可能会浪费很多空间。邻接表:这是一种数组和链表的组合结构。数组的每个元素都是一个链表,链表中的元素表示与该节点相连的其他节点。这种......
  • 记录一下麒麟3.0内网安装python通过jdbc连接达梦6数据库
    麒麟3.0基于RedHat4.1.2-42,此版本可以编译python3.8.3,但是内网无法安装libffi-dev,导致无法安装JPype1和JayDeBeApi,所以改用python2.7.181、安装python2.7.18https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz#解压tar-zxvfPython-2.7.18.tgz#切换到新的目......
  • java insert数组到postgres数据库
    数组格式在数据库中并不是常用操作,比较常用的是字符串存储后,使用时再进行数据加工.这里记录下直接操作postgresinsert数组的数据操作.表结构CREATETABLEschema.table( report_rowsjsonNULL, series_varcharNULL)实际存在两种数组结构:1字符串数组2json数组.js......
  • 磁盘扩容 centos 磁盘扩容会损坏数据吗
    以下场景经常会遇到:在安装系统的时候可能没有合理的分配空间,导致某些分区空间吃紧,而另外一些空间基本使用不到;由于业务量激增->数据量激增,磁盘空间被用光;这种情况下重新调整磁盘分区就很有必要。但是系统的数据都是很宝贵的,调整空间的前提是保证当前数据不被破坏。相关概念分......
  • 服务器数据恢复成功案例
    一、服务器数据恢复描述需要进行数据恢复的服务器为OceanStorS6800T,服务器硬件配置情况为15块磁盘组成一组80T大小的raid5阵列,阵列划分为两个lun、三个分区。服务器重装系统后发现磁盘分区丢失了一个,需要进行服务器数据恢复。二、服务器数据备份服务器数据恢复第一步需要对故......
  • 达梦数据库
    试玩地址:https://eco.dameng.com/tour/达梦数据库检查数据库版本及服务状态查看达梦数据库运行状态,build_version是小版本SELECT*FROMv$instance;SELECTstatus$as状态FROMv$instance;查看达梦数据库版本SELECTbanneras版本信息FROMv$version;SELECT*......
  • 更改 Docker 的默认数据目录:解决部署空间不足问题
    在现代软件开发和部署过程中,Docker已成为一种非常流行的工具。Docker容器化技术允许开发者在一个独立的环境中打包应用程序及其所有依赖项,从而确保应用在任何地方都能一致运行。然而,随着使用Docker的时间增加,存储在默认数据目录(通常是/var/lib/docker)中的数据量也会不......