数据脱敏系统【回顾】

🌕写在前面
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
✉️今日分享:

我本将心向明月,奈何明月照沟渠。

🍀 前言

《中华人民共和国网络安全法》、《信息安全技术个人信息安全规范》、《中华人民共和国数据安全法》和《中华人民共和国个人信息保护法》相继发布,中共中央、国务院将数据作为生产要素提出。随着监管严格、法律细化,数据分发和共享将面临新的要求和安全挑战。

当前,数据流动的场景复杂多变,许多场景既需要将数据批量分发共享,又需要确保敏感信息脱离安全场景后,对数据可用性和数据安全性这二者的兼顾。

数据分类分级之后怎么做?当然是加快数据的共享开放,并且针对高级别敏感数据可以通过脱敏处理之后降低安全级别对外共享,今天我们聊一聊关于数据脱敏的故事。


🍀 数据脱敏的基本概念

先来看看什么是数据脱敏?百度百科对数据脱敏的定义为:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。

数据脱敏也叫数据的去隐私化,采用专门的脱敏算法对敏感数据进行屏蔽和仿真替换,将敏感数据转化为虚构数据,将个人信息匿名化,为数据的安全使用提供基础保障。同时,在不改变业务系统逻辑的前提下,保证脱敏后的数据保留原数据的特征和分布,同时保证数据的有效性和可用性,使脱敏后的数据能够安全地应用于测试、开发、分析第三方使用环境中。

  🍊数据脱敏的发展

在当前国内信息安全热潮中,数据脱敏作为数据安全的重要一环得到了业界的认可与重视。早在2012年,数据脱敏首次作为一个单独的魔力象限由Gartner发布,Gartner在2014年又提出了:按照数据使用场景,将数据脱敏分为静态数据脱敏(Static data masking-SDM )与动态数据脱敏(Dynamic data masking-DDM )。

可能有人望文生义,认为动态数据脱敏一定比静态数据脱敏高级。非也非也,静态or动态,取决于脱敏的使用场景,主要是以使用场景为由来选择合适的数据脱敏的模式。

  🍊数据脱敏在生活中的应用

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

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

   🍊数据静态脱敏和数据动态脱敏

基于应用场景的不同,数据脱敏又分为数据静态脱敏(SDM)数据动态脱敏(DDM)

🍀 数据静态脱敏

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

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

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

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

🍀 数据动态脱敏

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

🍀 数据脱敏的方式 

🌳 无效化

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

🌳 随机值

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

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

🌳 数据替换

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

🌳 对称加密

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

🌳 平均值

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


原始数据

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


平均值

🌳 偏移和取整

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

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


取整

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

🍀 数据静态脱敏系统的部署方式

🥝旁路部署模式

一般数据静态脱敏系统主要是旁路部署模式,生产和测试环境网络可达,无物理隔离,通过单台设备实现脱敏迁移。多台脱敏设备部署时可以采用集群的方式,提高运算性能,满足大数据量场景对于脱敏效率的需求,脱敏设备可作为运算节点接入或摘除,提供可扩缩的脱敏集群部署能力

🍀 数据动态脱敏系统的部署方式

🥝代理网关式

动态脱敏系统常见的一种部署模式,逻辑上是旁路,物理上是串行的方式。原本应用系统与数据库建立连接,为了实现数据脱敏处理,应用系统的SQL数据连接请求转发到脱敏代理系统,由动态脱敏系统解析请求后,再将SQL语句转发到数据库服务器,数据库服务器返回的数据同样经过动态脱敏系统后由脱敏系统返回给应用服务器。

这种部署方式可以实现,不在数据库服务器与应用务器上安装软件就能进行脱敏处理,但这也需要更改应用务器对数据库的调用地址,也就是说原来是由应用务器连接数据库,现在改成应用服务器连接动态脱敏的代理网关。这种部署模式能针对应用用户实现粗粒度的脱敏,也可实现针对运维脱敏的处理。存在的问题是,针对应用用户无法实现用户级的不同脱敏算法与效果,同时运维脱敏也存在被绕过的危险,DBA可能会绕过动态脱敏系统直接访问数据库地址。(国外Informatica 的产品就是常以这种方式部署)。

🥝透明网关式

这种部署模式是将动态脱敏系统串接应用服务器与数据库之间,由于动态脱敏系统能在OSI二层上工作,不需要IP地址,对应用服务器与数据库服务器来说,都像原来一样访问各自的真实IP地址,动态脱敏系统通过协议解析分析出流量中的SQL语句来实现脱敏。这种部署方式不需要更改应用服务器与数据库服务器的连接设置,但在网络中会形成单点故障,虽然常常有BYPASS技术作为支撑,但所有流量都会经过网关,会造成网关性能瓶颈问题。(国外做数据库防火墙的Imperva 等会采用这种方式,但动态脱敏只是其中小的功能,也只是针对少量的敏感数据采用这种脱敏方式。)

🥝软件Agent代理方式

这种方式在数据库服务器上安装Agent, 监控对数据的访问请求。当请求的数据是敏感数据时,Agent 会利用脱敏算法来对数据进行脱敏处理。这种部署方式需要在数据库服务器上安装软件,带来了好处是运维人员无法绕过。


总结

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

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

🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢感谢感谢!

<think>好的,我现在需要帮助用户了解数据脱敏的技术、实现方法、工具和依赖库。首先,我应该回顾用户提供的引用内容,看看里面有没有相关的信息。 用户给的引用中提到了数据脱敏工具需要详细说明方法的使用,包括实现原理、对数据完整性的影响等(引用1)。还有提到可算不可见功能,即在数据库内使用原始数据计算,只在出库时脱敏,需要开启enable_redactcol_computable参数(引用2)。另外,引用3提到使用工厂方法接口创建脱敏处理器,可能涉及到编程中的设计模式。引用4则讨论了与其它工具的集成,比如数据迁移和CI/CD流程。 接下来,我需要把这些信息整理成结构化的回答。首先分技术分类,比如静态脱敏、动态脱敏、可逆脱敏等。然后实现方法可能包括替换、加密、遮盖等方法。工具方面,用户提到的DataMasker、SQL Data Catalog,还有开源工具如Apache ShardingSphere。依赖库可能包括Java的库,比如提到的MaskHandlerFactory。 需要注意的是用户可能想知道具体的实现步骤或常用库,比如在Java中如何使用脱敏处理器。同时,用户可能关心这些工具如何与现有系统集成,比如数据库或CI/CD流程,这点在引用4有提到。 还要确保回答中引用了提供的资料,比如可算不可见功能在引用2,工厂方法在引用3,工具集成在引用4。另外,用户需要生成相关问题,我需要考虑常见的问题,比如工具选型、动态脱敏的实现、与现有系统的整合等。 最后,检查是否有遗漏的信息,比如脱敏方法的具体例子,或者依赖库的名称。确保每个部分都有对应的引用标注,并且语言符合中文要求,使用正确的LaTeX格式。</think>### 数据脱敏技术实现方法、工具及依赖库 #### 一、数据脱敏技术分类 1. **静态脱敏** - 对持久化存储的敏感数据(如数据库、文件)进行永久性变形,例如替换、加密或删除。常用于开发测试环境或数据共享场景。 - 依赖工具:`Apache ShardingSphere`(支持静态脱敏规则配置)[^2]。 2. **动态脱敏** - 在数据查询或传输时实时脱敏,原始数据仍保留在数据库中。例如,数据库返回结果时自动隐藏部分字段。 - 关键技术:通过数据库代理或中间件实现,如`enable_redactcol_computable=on`开启可算不可见功能(原始数据参与计算,仅输出时脱敏)[^2]。 3. **可逆脱敏** - 使用加密算法(如AES、RSA)对数据进行加密,需密钥解密还原。适用于需保留数据业务含义的场景。 #### 二、实现方法 1. **基础脱敏方法** - **替换**:用虚构值(如`***`或随机字符)覆盖真实数据,例如手机号脱敏为`138****1234`。 - **遮盖(Masking)**:保留部分字符,例如`$身份证 = substr($id, 0, 6) . "********"$`。 - **泛化**:将数据映射到更宽泛的类别,如年龄替换为区间(`20-30岁`)。 - **扰乱(Shuffling)**:随机打乱字段顺序,如将姓名列表随机排序。 2. **编程实现依赖库** - **Java**:通过工厂模式创建脱敏处理器,例如`MaskHandlerFactory.createHandler()`[^3]。 - **Python**:使用`Faker`库生成虚构数据,或`pandas`结合自定义规则处理数据。 - **SQL扩展**:通过数据库内置函数(如`REDACT`)或插件实现动态脱敏。 #### 三、工具及依赖库 | 类型 | 工具/库 | 特点 | |------------|----------------------------------|----------------------------------------------------------------------| | **开源工具** | Apache ShardingSphere | 支持静态脱敏规则配置,集成数据库代理功能。 | | **商业工具** | Redgate Data Masker | 提供可视化规则配置,支持与SQL Server深度集成[^4]。 | | **开发库** | Java MaskHandlerFactory | 通过工厂模式快速创建脱敏处理器,支持自定义规则[^3]。 | | **云服务** | AWS DMS(数据迁移服务) | 支持在数据迁移过程中应用脱敏规则。 | #### 四、关键依赖项 1. **数据库支持**:动态脱敏数据库引擎支持(如PostgreSQL的脱敏插件或Oracle Data Redaction)。 2. **计算与脱敏分离**:启用`enable_redactcol_computable=on`确保计算使用原始数据,避免脱敏数据影响统计结果。 3. **集成依赖**:与CI/CD工具(如Jenkins)或数据目录系统(如SQL Data Catalog)集成,实现自动化脱敏策略[^4]。 #### 五、实现示例(Python) ```python from faker import Faker import pandas as pd # 使用Faker生成虚构数据 fake = Faker() df = pd.DataFrame({"phone": [fake.phone_number() for _ in range(5)]}) df["phone_masked"] = df["phone"].str.replace(r'(\d{3})\d{4}(\d{4})', r'\1****\2', regex=True) print(df) ```
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Financial talent

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值