本文将深入探讨数据脱敏的概念、法律依据、脱敏技术,以及在业务中的应用场景。 什么是数据脱敏? 信息安全技术个人信息脱敏规范 由国家信息安全标准化技术委员会颁布的《信息安全技术个人信息脱敏规范》为数据脱敏提供了详细的技术规范和操作指南,对企业在实施数据脱敏时提供了标准化的指导。 数据脱敏技术 替换 替换是一种基础而有效的脱敏技术。通过将敏感数据替换为虚拟数据,例如将真实姓名替换为“用户A”,以达到保护隐私的目的。 原始数据:Credit Card Number 脱敏后数据:3a5b9c1d... 混淆 混淆是通过打乱数据的顺序或添加噪音,使得原始数据的关联性变得模糊,从而增加了数据泄露的难度。 原始数据:用户地址 脱敏后数据:随机生成的地址 数据脱敏的业务应用场景 金融行业 在金融领域,客户的个人信息和交易数据极为敏感。
---- 数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。 百度百科对数据脱敏的定义为:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。 生活中不乏数据脱敏的例子,比如我们最常见的火车票、电商收货人地址都会对敏感信息做处理,甚至女同志较熟悉的美颜、有些视频中的马赛克都属于脱敏。 ? 二、为什么要进行数据脱敏? 三、如何实现数据脱敏 ---- 按照脱敏规则,可以分为可恢复性脱敏和不可恢复性脱敏。 我们目前遇到的场景是日志脱敏,即在把日志中的密码,甚至姓名、身份证号等信息都进行脱敏处理。 脱敏前: ? 脱敏后: ? ---- 【 转载请注明出处——胡玉洋《数据脱敏——什么是数据脱敏》】
如前文《静态脱敏典型应用场景分析——开发测试、数据共享、科学研究》所说,当前数据脱敏产品主要包括静态脱敏、动态脱敏产品两类。由于两者使用场景不同,关键技术有所差异。 动态脱敏常用在访问敏感数据即时进行脱敏,一般用来解决在生产环境需要根据不同情况对同一敏感数据读取时进行不同级别脱敏的场景,如业务脱敏、运维脱敏、数据交换脱敏等场景。 业务脱敏 场景特点 ❏ 业务用户访问应用系统时,需明确用户身份的真实性。 ❏ 不同权限业务用户访问敏感数据时需采取不同级别的脱敏规则。 ❖ 支持基于敏感标签的脱敏访问策略,支持 B/S、 CS 等不同架构的业务系统、支持对字符串类型、数据类型、日期类型数据脱敏,通过随机、转换、遮盖方式实现对动态数据的脱敏效果,防止业务敏感数据信息和业务的个人隐私数据泄漏 美创数据脱敏系统内置敏感数据发现引擎,对源数据中的敏感数据按照脱敏规则,进行变形、漂泊、遮盖,保证脱敏后的数据保持数据的一致性和业务的关联性,应用于开发测试环境、数据交换、数据分析、数据共享等场景。
)" # qq邮箱 - @后1-3位脱敏 qqemail: "@<(1,3)" # 姓名 - 姓脱敏,如*杰伦 name: 1,1 # 密码 - 所有需要完全脱敏的都可以使用内置的 - defaultRegex: other position: 1,3 # 这种方式不太推荐 - 一旦匹配不上,就不会脱敏 - key: localMobile custom: customRegex: "^0[0-9]{2,3}-[0-9]{7,8}" position: 1,3 上面这个配置是相对完整的,一定要严格遵守层级配置格式 1,3)"脱敏后:123456789@***com 3、自定义正则脱敏 patterns: # 手机号 - key: phone,mobile custom: # 手机号的正则 [0-9]{10}" position : 1,3 # 都匹配不到时,按照这种规则来 - defaultRegex: other position : 1,3 注意:上面示例中匹配规则里的
)" # qq邮箱 - @后1-3位脱敏 qqemail: "@<(1,3)" # 姓名 - 姓脱敏,如*杰伦 name: 1,1 # 密码 - 所有需要完全脱敏的都可以使用内置的 - defaultRegex: other position: 1,3 # 这种方式不太推荐 - 一旦匹配不上,就不会脱敏 - key: localMobile custom: customRegex: "^0[0-9]{2,3}-[0-9]{7,8}" position: 1,3 上面这个配置是相对完整的,一定要严格遵守层级配置格式 1,3)"脱敏后:123456789@***com 3、自定义正则脱敏 patterns: # 手机号 - key: phone,mobile custom: # 手机号的正则 [0-9]{10}" position : 1,3 # 都匹配不到时,按照这种规则来 - defaultRegex: other position : 1,3 注意:上面示例中匹配规则里的
支持深度脱敏,支持复杂对象,嵌套对象,对象内多层级嵌套,自动寻找返回值中嵌套对象包含的需脱敏的属性; 最新版本 最新发布版已更新到mave中央仓库:[Maven Central][1.0.3-release ,全局生效,默认开启 depth false true/false 是否启用深度脱敏,为了性能考虑,默认关闭 packages 空 字符串 包路径,多个以英文逗号分隔 深度脱敏规则: depth为true ,且packages不为空,当方法返回值嵌套的属性包含在packages下,则自动进行脱敏。 page; } private static SensitiveEntity createEntity(String i, String i1, String i2, String i3) sensitiveEntity.setName(i1); sensitiveEntity.setMobile(i2); sensitiveEntity.setIdCard(i3)
sql: SELECT mobilePhone AS 脱敏前电话号码,CONCAT(LEFT(mobilePhone,3), '********' ) AS 脱敏后电话号码 FROM t_s_user -- 身份证号码脱敏sql: SELECT idcard AS 未脱敏身份证, CONCAT(LEFT(idcard,3), '****' ,RIGHT(idcard,4)) AS 脱敏后身份证号 ,目前支持地址脱敏、银行卡号脱敏、中文姓名脱敏、固话脱敏、身份证号脱敏、手机号脱敏、密码脱敏 一个是正则脱敏、另外一个根据显示长度脱敏,默认是正则脱敏,可以根据自己的需要配置自己的规则。 3.mybatis-mate-sensitive-jackson mybatisplus 的新作,可以测试使用,生产需要收费。 根据定义的策略类型,对数据进行脱敏,当然策略可以自定义。 thisIsTestLicense license: as/bsBaSVrsA9FfjC/N77ruEt2/QZDrW+MHETNuEuZBra5mlaXZU+DE1ZvF8UjzlLCpH3TFVH3WPV
数据脱敏指指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护,如我们日常可以看到的手机号“156**8888”等。 专注安全问题,解决脱敏需求,避免大家重复造轮子,secure-ext-spring-boot-starter控件已提供返回值脱敏的策略及使用方法。 chineseName pre-length: 1 suf-length: 1 - keywords: mail,email pre-length: 3 suf-length: 3 - keywords: mobile,phone pre-length: 3 suf-length: 4 - keywords: address,addr pre-length: 3 suf-length: 4 3 修改logback.xml 很简单,在logback.xml
<=\\d{3})\\d(? <=\\d{3})\\d(?
sql: SELECT mobilePhone AS 脱敏前电话号码,CONCAT(LEFT(mobilePhone,3), '********' ) AS 脱敏后电话号码 FROM t_s_user -- 身份证号码脱敏sql: SELECT idcard AS 未脱敏身份证, CONCAT(LEFT(idcard,3), '****' ,RIGHT(idcard,4)) AS 脱敏后身份证号 ,目前支持地址脱敏、银行卡号脱敏、中文姓名脱敏、固话脱敏、身份证号脱敏、手机号脱敏、密码脱敏 一个是正则脱敏、另外一个根据显示长度脱敏,默认是正则脱敏,可以根据自己的需要配置自己的规则。 3.mybatis-mate-sensitive-jackson mybatisplus 新发布,可以测试使用,生产需要收费。 根据定义的策略类型,对数据进行脱敏,当然策略可以自定义。 thisIsTestLicense license: as/bsBaSVrsA9FfjC/N77ruEt2/QZDrW+MHETNuEuZBra5mlaXZU+DE1ZvF8UjzlLCpH3TFVH3WPV
数据脱敏技术通过对数据进行脱敏,如移除识别列,转换半识别列等方式,使得数据使用人员在保证可对#2(转换后)半识别列,#3敏感信息列以及#4其他列进行数据分析的基础上,在一定程度上保证其无法根据数据反识别用户 表2 3-Anonymity病人信息 经过泛化后,有多条纪录的半标识列属性值相同,所有半标识列属性值相同的行的集合被称为相等集。例如,表二中1,2,3行是一个相等集,4,5,6行也是一个相等集。 图二中的数据是一个3-Anonymity的数据集。 表3 3-Anonymity 2-Diversity 病人信息 相对于K-Anonymity标准,符合L-Deversity标准的数据集显著降低了属性数据泄露的风险。 例如对于表四所示,病人数据满足3-Diversity,攻击者如果了解Bob邮编为47677,年龄为29,则可以确认Bob的工资收入在3-5K之间,且能确认Bob得了胃病相关的病,因为前三条的病都和胃病相关
数据对比 本脱敏系统提供脱敏前后数据校验功能,从数据库结构、数据对象、表数量、表内数据量等维度对比分析源库数据和目标库数据的差异。用户管理员可据此判断该脱敏任务是否胜利完成,脱敏方案是否合理。 数据上传 脱敏后的数据可以实时的上传到目标服务器,也可以保存在脱敏服务器上,按需的上传到目标服务器,实现一次脱敏多次使用。 适用场景和价值 本脱敏系统支持库到库、库到文件、文件到文件、文件到库、本地脱敏等多种数据脱敏场景。 3.jpg 灵活的数据源过滤 · 能够根据业务情况对需要脱敏的数据范围进行选择,提供库级、表级、列级、行数量级的多种层次的数据选择范围。 而且所有的仿真脱敏规则还支持可逆脱敏:使用数据仿真规则脱敏后的数据,再次经过脱敏设备处理后,可以将指定范围的数据还原为真实的原始数据。
2)可以根据数据库账号信息进行单独鉴权配置和脱敏策略配置,降低数据泄漏的风险。 3)脱敏效率高,通过改写原SQL方式实现脱敏效果,将脱敏通过数据库函数处理。 3)存在绕过风险,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库。 3)两端配合脱敏,无法保证流量全覆盖。 4)存在绕过风险,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库。 3)学习成本大,需要充分了解业务才能对返回字段进行脱敏规则配置。 4)配置工作量大,需要对需要配置的脱敏的每个字段进行脱敏配置且容易遗漏。 3、通过建立对用户数据资产发现和敏感数据识别打标技术能力,为数据脱敏提供数据分级和标识依据,结合脱敏策略和脱敏算法配置,满足对不同分级不同标识的敏感数据采用不同的脱敏加密算法。
这就是数据脱敏。数据脱敏是一种通过混淆或掩盖来隐藏个人身份信息或敏感数据的技术。它不仅保护了数据隐私,还确保了在开发和测试过程中不会泄露敏感信息。 此外,数据脱敏还可以帮助企业降低数据泄露的风险,从而提升用户信任。 数据脱敏的四个阶段 1. 选择合适的技术可以确保数据在脱敏后仍然具有可用性。 3. 部署脱敏方法 一旦确定了脱敏技术,下一步是将其部署到实际环境中。这包括配置工具、测试脱敏效果以及确保脱敏后的数据无法还原。 数据脱敏技术 以下是一些常见的脱敏技术,可根据测试需求选择: 1. 随机化和匿名化:随机化和匿名化是一种通过将原始数据替换为随机生成或虚构值的技术。 3. 数据洗牌:数据洗牌是一种通过重新排序数据来隐藏其原始模式的技术。这种方法通常用于保护数据集中的敏感信息,例如重新排列客户记录中的姓名和地址字段。
背景上一篇文章讲到了《一个注解,实现数据脱敏》,其实用起来还是相当的方便。那shigen是一个喜欢倒腾的人,对于python的接口,如何实现数据的脱敏呢? 我找了很久的教程,发现关于这部分的资料并不多,而且大部分的都是手写脱敏算法的。最终我也妥协了,我使用的是正则表达式实现数据的脱敏。 本文中,将使用flask+faker实现一个接口,再用正则表达式加工一下,它返回脱敏后的随机数据。 代码实现定义一个通用的正则表达式匹配工具实现的是将符合规则的数据变成脱敏之后的数据图片不得不说,还是很考验正则表达式的功底的,但是shigen的这个还是可以做到通用的,建议拿来就用。 :图片图片总结以上就是《python实现数据脱敏》的全部内容了,觉得不错的伙伴记得点赞 在看 关注 分享哈,你的鼓励是shigen不断更新的动力。
问题 在项目中需要对用户敏感数据进行脱敏处理,例如身份号、手机号等信息进行加密再入库。
MySQL数据脱敏指南在当今数据驱动的世界中,保护敏感信息变得至关重要。MySQL提供了多种方法来实现数据脱敏,本指南将详细介绍如何使用Percona插件和自定义函数来保护各类敏感数据。1. Percona data_masking 插件Percona的data_masking插件是一个强大的工具,适用于身份证号、手机号和银行卡号等敏感数据的脱敏。 3位和后2位,中间用星号替代:mysql> SELECT mask_inner('13912345678', 3, 2, '*') AS mobile;+-------------+| mobile |+-------------+| 139******78 |+-------------+1 row in set (0.00 sec)2.自定义脱敏函数对于邮箱、姓名和地址等其他类型的敏感信息,我们可以使用自定义的脱敏函数 mask_chinese_name('张某三') AS name;+-------+| name |+-------+| 张** |+-------+1 row in set (0.00 sec)3.
产品功能 · 实时动态脱敏 对需要共享的生产数据或时效性要求很高的数据测试和培训场景,提供基于网关代理模式的动态脱敏技术,达到实时模糊敏感数据的效果。 动态脱敏可对业务系统数据库中敏感数据进行透明、实时脱敏。 ² 动态脱敏可以依据数据库用户名、IP、客户端工具类型、访问时间等多重身份特征进行访问控制。 ² 动态脱敏对生产数据库中返回的数据可以进行放行、屏蔽、隐藏、返回行控制等多种脱敏策略。 1.jpg · 脱敏日志审计 系统将产生的日志转存至脱敏系统中,用户可以对运维人员操作数据库的日志进行查询和统计,实现对数据库进行审计的功能。 保持原有系统的完整性和一致性,同时也不改变数据库中的数据 · 易于实施,内置脱敏规则模版,一周内就能完成复杂业务系统的实施 · 一次部署可以支持多台数据库 系统支持范围 Oracle、MySQL等 支持脱敏方式
,之后正常序列化;第二个就是在实体序列化的时候,对要脱敏的字段进行处理。 脱敏实现思路 ---- 这里探讨第一种方法,用基于自定义注解的方式实现日志脱敏。 要对数据进行脱敏,基本上都是对一些关键的、少数字段进行脱敏,比如某个实体中可能只对password这一个字段进行脱敏处理,所以可以用自定义注解的方式,只需在需要脱敏的字段上添加一个注解,比较方便。 写日志时,序列化之前先把要打印的对象clone一份,然后找出添加脱敏自定义注解的字段进行相应规则的处理转化(比如把“刘德华”改为“刘*华),然后再对对象进行序列化操作。 ——基于Java自定义注解实现日志字段脱敏》】
static \ --name pdf-redactor \ pdf-redact-app 进入容器内部(调试用) docker exec -it pdf-tuomin /bin/bash 文件脱敏助手源码 if keyword in block_text: keyword_rect = fitz.Rect(block[0], block[1], block[2], block[3] ) if __name__ == "__main__": uvicorn.run("main:app", host="0.0.0.0", port=8301, reload=True) 脱敏前 : 脱敏后: