如何用Java实现数据脱敏用java实现

如何用Java实现数据脱敏_Linux编程_Linux公社-Linux系统门户网站
你好,游客
如何用Java实现数据脱敏
来源:Linux社区&
作者:Mrwan
数据脱敏是什么意思呢?
数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏,数据库安全技术之一。
比如我们现在有个user表,含有名字,性别,邮箱,电话号码等字段,但是当查看这些数据时,我们又不希望这些数据被暴露,这时可以对这些数据进行脱敏处理,当然可以根据需要选择哪些字段需要脱敏,然后再输出,至于怎么选择的,是另外一回事了。
如下面这个表格中的数据,是经过脱敏加密后的:(所有字段都进行脱敏)
以下是代码实现:
private static final int SIZE = 6;& & private static final String SYMBOL = "*";
& & public static String toConceal(String value) {& & & & if (null == value || "".equals(value)) {& & & & & && & & & }& & & & int len = value.length();& & & & int pamaone = len / 2;& & & & int pamatwo = pamaone - 1;& & & & int pamathree = len % 2;& & & & StringBuilder stringBuilder = new StringBuilder();& & & & if (len &= 2) {& & & & & & if (pamathree == 1) {& & & & & & & & return SYMBOL;& & & & & & }& & & & & & stringBuilder.append(SYMBOL);& & & & & & stringBuilder.append(value.charAt(len - 1));& & & & } else {& & & & & & if (pamatwo &= 0) {& & & & & & & & stringBuilder.append(value.substring(0, 1));& & & & & & & & stringBuilder.append(SYMBOL);& & & & & & & & stringBuilder.append(value.substring(len - 1, len));
& & & & & & } else if (pamatwo &= SIZE / 2 && SIZE + 1 != len) {& & & & & & & & int pamafive = (len - SIZE) / 2;& & & & & & & & stringBuilder.append(value.substring(0, pamafive));& & & & & & & & for (int i = 0; i & SIZE; i++) {& & & & & & & & & & stringBuilder.append(SYMBOL);& & & & & & & & }& & & & & & & & if ((pamathree == 0 && SIZE / 2 == 0) || (pamathree != 0 && SIZE % 2 != 0)) {& & & & & & & & & & stringBuilder.append(value.substring(len - pamafive, len));& & & & & & & & } else {& & & & & & & & & & stringBuilder.append(value.substring(len - (pamafive + 1), len));& & & & & & & & }& & & & & & } else {& & & & & & & & int pamafour = len - 2;& & & & & & & & stringBuilder.append(value.substring(0, 1));& & & & & & & & for (int i = 0; i & i++) {& & & & & & & & & & stringBuilder.append(SYMBOL);& & & & & & & & }& & & & & & & & stringBuilder.append(value.substring(len - 1, len));& & & & & & }& & & & }& & & & return stringBuilder.toString();
这种是通用的脱敏方法,可能不符合你的特定要求。当然你可以对每种类型的数据(如邮箱,电话号码,身份证号)进行特定方式的脱敏,比如电话号隐藏后四位,身份证号隐藏年月日等等,只需要增加一些逻辑就可以。
本文永久更新链接地址:
相关资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款大数据脱敏脱需求文档_v02-4
java数据脱敏方法_计算机软件及应用_IT/计算机_专业资料...2; int b = a-1; int c = l%2; String...89份文档
爆笑大撞脸 超爆笑笑话 有趣及爆笑图片...
MES功能模块v1_IT/计算机_专业资料。功能模块: 生产...数据统计及分析,帮助企业了解和掌握员工情况,解决了...可满足不同用户的一些特殊需求,极大地方便了客户的...java实现数据脱敏热门博客列表 -
ITeye博客频道 -
博客专栏推荐
本月博客排行
年度博客排行
最新文章列表
相关知识库
38073关注/3162收录
3677关注/393收录
17001关注/212收录
35803关注/3748收录
博客人气排行榜
博客电子书下载排行中国领先的IT技术网站
51CTO旗下网站
大数据平台数据脱敏介绍
针对于大数据平台对于数据脱敏的需求,本文分析了数据泄露可能带来的风险,介绍了数据脱敏技术的理论基础与实现方式,同时简单分析了大数据平台的隐私数据脱敏技术方向。本文讨论的均是基于离线数据的数据脱敏,流式数据的脱敏技术无论是理论基础与具体实践大都还处在摸索的过程中,留待以后继续探索。
作者:李呈祥来源:| 17:27
数据脱敏(Data
Masking),又称数据漂白、数据去隐私化或数据变形。百度百科对数据脱敏的定义为:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据
的可靠保护。这样,就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。
可以看到数据脱敏具有几个关键点:敏感数据、脱敏规则、使用环境。
敏感数据,又称隐私数据,常见的敏感数据有: 姓名、身份证号码、地址、电话号码、银行账号、邮箱地址、所属城市、邮编、密码类 (
如账户查询密码、取款密码、登录密码等 )、组织机构名称、营业执照号码、银行帐号、交易日期、交易金额等。
随着大数据时代的到来,大数据商业价值的挖掘,用户的精准定位,大数据中蕴藏的巨大商业价值被逐步挖掘出来,但是同时也带来了巨大的挑战&个人隐私信息
的保护。个人信息与个人行为(比如位置信息、消费行为、网络访问行为)等,这些都是人的隐私,也是我们所关注的一类敏感信息,在大数据价值挖掘的基础上如
何保护人的隐私信息,也将是数据脱敏必须解决的难题。
脱敏规则,一般的脱敏规则分类为可恢复与不可恢复两类。
可恢复类,指脱敏后的数据可以通过一定的方式,可以恢复成原来的敏感数据,此类脱敏规则主要指各类加解密算法规则。
不可恢复类,指脱敏后的数据被脱敏的部分使用任何方式都不能恢复出。一般可分为替换算法和生成算法两大类。替换算法即将需要脱敏的部分使用定义好的字符或字符串替换,生成类算法则更复杂一些,要求脱敏后的数据符合逻辑规则,即是&看起来很真实的假数据&。
使用环境,主要指脱敏之后的数据在哪些环境中使用。普遍按照生产环境和非生产环境(开发、测试、外包、数据分析等)进行划分。
在最近一期的Gartner关于数据脱敏的报告(Magic Quadrant for Data Masking
Technology-2014年12月)中根据数据脱敏产品应用场景的将数据脱敏划分为静态数据脱敏(static data
masking[SDM])和动态数据脱敏(dynamic data masking[DDM])。
静态数据脱敏(SDM)与动态数据脱敏(DDM)主要的区别是:是否在使用敏感数据当时进行脱敏。
静态数据脱敏(SDM)一般用在非生产环境,在敏感数据从生产环境脱敏完毕之后再在非生产环境使用,一般用于解决测试、开发库需要生产库的数据量与数据间的关联,以排查问题或进行数据分析等,但又不能将敏感数据存储于非生产环境的问题。
动态数据脱敏(DDM)一般用在生产环境,在访问敏感数据当时进行脱敏,一般用来解决在生产环境需要根据不同情况对同一敏感数据读取时需要进行不同级别脱敏的问题。
隐私数据脱敏技术
通常在大数据平台中,数据以结构化的格式存储,每个表有诸多行组成,每行数据有诸多列组成。根据列的数据属性,数据列通常可以分为以下几种类型:
可确切定位某个人的列,称为可识别列,如身份证号,地址以及姓名等。
单列并不能定位个人,但是多列信息可用来潜在的识别某个人,这些列被称为半识别列,如邮编号,生日及性别等。美国的一份研究论文称,仅使用邮编号,生日和性别信息即可识别87%的美国人[3]。
包含用户敏感信息的列,如交易数额,疾病以及收入等。
其他不包含用户敏感信息的列。
所谓避免隐私数据泄露,是指避免使用数据的人员(数据分析师,BI工程师等)将某行数据识别为某个人的信息。数据脱敏技术通过对数据进行脱敏,如移除识别列,转换半识别列等方式,使得数据使用人员在保证可对#2(转换后)半识别列,#3敏感信息列以及#4其他列进行数据分析的基础上,在一定程度上保证其无法根据数据反识别用户,达到保证数据安全与最大化挖掘数据价值的平衡。
隐私数据泄露类型
隐私数据泄露可以分为多种类型,根据不同的类型,通常可以采用不同的隐私数据泄露风险模型来衡量防止隐私数据泄露的风险,以及对应不同的数据脱敏算法对数据进行脱敏。一般来说,隐私数据泄露类型包括:
个人标识泄露。当数据使用人员通过任何方式确认数据表中某条数据属于某个人时,称为个人标识泄露。个人标识泄露最为严重,因为一旦发生个人标识泄露,数据使用人员就可以得到具体个人的敏感信息。
属性泄露,当数据使用人员根据其访问的数据表了解到某个人新的属性信息时,称为属性泄露。个人标识泄露肯定会导致属性泄露,但属性泄露也有可能单独发生。
成员关系泄露。当数据使用人员可以确认某个人的数据存在于数据表中时,称为成员关系泄露。成员关系泄露相对风险较小,个人标识泄露与属性泄露肯定意味着成员关系泄露,但成员关系泄露也有可能单独发生。
隐私数据泄露风险模型
将数据开放给数据分析人员,同时就引入了隐私数据泄露的风险。在限制隐私数据泄露风险在一定范围内的同时,最大化数据分析挖掘的潜力,是数据脱敏技术的最终目标。目前在隐私数据脱敏领域,有几个不同的模型可以用来从不同角度衡量数据可能存在的隐私数据泄露风险。
K-Anonymity
隐私数据脱敏的第一步是对所有可标识列进行移除或是脱敏,使得攻击者无法直接标识用户。但是攻击者还是有可能通过多个半标识列的属性值识别个人。攻击者可能通过社工(知道某个人的姓名,邮编,生日,性别等)或是其他包含个人信息的以开放数据库获得特定个人的半标识列属性值,并与大数据平台数据进行匹配,从而得到特定个人的敏感信息。如表一所示,如果攻击者知道某用户的邮编和年龄,就可以得到该用户的疾病敏感信息。为了避免这种情况的发生,通常需要对半标识列进行脱敏处理,如数据泛化等。数据泛化是将半标识列的数据替换为语义一致但更通用的数据,已上述数据为例,对邮编和年龄泛化后的数据如表二所示。
经过泛化后,有多条纪录的半标识列属性值相同,所有半标识列属性值相同的行的集合被称为相等集。例如,表二中1,2,3行是一个相等集,4,5,6行也是一个相等集。Sama-
rati and Sweeney[4]引入了K-Anonymity用于衡量个人标识泄露的风险。 K-Anonymity定义如下:
K-Anonymity要求对于任意一行纪录,其所属的相等集内纪录数量不小于k,即至少有k-1条纪录半标识列属性值与该条纪录相同。
图二中的数据是一个3-Anonymity的数据集。作为一个衡量隐私数据泄露风险的指标,K-Anonymity可用于衡量个人标识泄露的风险,理论上来说,对于K-Anonymity数据集,对于任意纪录,攻击者只有1/k的概率将该纪录与具体用户关联。
L-Diversity
K-Anonymity可用于保护个人标识泄露的风险,但是无法保护属性泄露的风险。对于K-Anonymity的数据集,攻击者可能通过同质属性攻击与背景知识攻击两种方式攻击用户的属性信息。
同质属性攻击。对于图二半标识列泛化后的数据集,假如攻击者知道Bob邮编为47677,年龄为29,则Bob一定对应于前面三条记录,从而可以确定Bob有心脏病。
背景知识攻击。对于图二半标识列泛化后的数据集,假如攻击者知道Alice邮编为47673,年龄为36,则Alice一定对应于后面三条记录,如果攻击者知道Alice患有心脏病的几率很小,则能判断Alice很有可能患有癌症。
Machanavajjhala et al. [5] 引入了L-Diversity用于衡量属性泄露的风险,L-Diversity定义如下:
如果对于任意相等集内所有记录对应的敏感数据的集合,包含L个&合适&值,则称该相等集是满足L-Deversity。如果数据集中所有相等集都满足L-Deversity,则称该数据集满足L-Deversity。
所谓L个&合适&值,最简单的理解就是L个不同值。基于图二的数据通过插入干扰纪录,一个3-Anonymity
2-Diversity的数据集如表三所示:
相对于K-Anonymity标准,符合L-Deversity标准的数据集显著降低了属性数据泄露的风险。对于满足L-Diversity的数据集,理论上,攻击者最多只有1/L的概率能够属性泄露攻击,将特定用户与其敏感信息关联起来。一般来说是通过插入干扰数据构造符合L-Diversity标准的数据集,但是同数据泛化一样,插入干扰数据也会导致表级别的信息丢失。同时L-Diversity标准也有不足之处。
L-Diversity标准有可能很难或是没有必要实现。例如,对于HIV的测试数据,测试结果列可能为阴性或是阳性。对于10000条记录,可能99%的记录都是阴性的,只有1%是阳性的。对于用户来说两种不同的测试结果敏感程度也是不同的,测试结果为阴性的用户可能不介意其他人看到他的测试结果,但是测试结果为阳性的用户可能更希望对别人保密。为了生成2-Deversity的测试数据集,会丢失大量的信息,降低数据分析挖掘的价值。
L-Diversity标准无法防御特定类型的属性数据泄露。
倾斜攻击如果敏感属性分布存在倾斜,L-Diversity标准很有可能无法抵御属性数据泄露。继续以HIV测试数据为例,假如构造的数据集对于任意相等类测试结果都包含阴性与阳性,且阴性数量与阳性相同,该数据集肯定满足2-Diversity。按照真实测试记录的分布,对于任意个人,攻击者只能判断其有1%的可能测试结果为阳性。但是对于2-Diversity数据集,攻击者会判断每个人有50%的可能测试结果为阳性。
相似性攻击如果相等类的敏感属性分布满足L-Diversity,但是属性值相似或是内聚,攻击者有可能从得到很重要的信息。例如对于表四所示,病人数据满足3-Diversity,攻击者如果了解Bob邮编为47677,年龄为29,则可以确认Bob的工资收入在3-5K之间,且能确认Bob得了胃病相关的病,因为前三条的病都和胃病相关。
简单来说,对于L-Diversity相同的相等集,敏感属性值的分布信息对于保护属性泄露至关重要。L-Diversity只是用来衡量相等集的不同属性值数量,并没有衡量不同属性值的分布,所以其在衡量属性泄露风险上仍有不足之处。
T-Closeness
直观的来说,隐私信息泄露的程度可以根据攻击者增量获得的个人信息衡量。假设攻击者在访问数据集之前已知的个人信息为B0,然后假设攻击者访问所有半标识列都已移除的数据集,Q为数据集敏感数据的分布信息,根据Q,攻击者更新后的个人信息为B1.最后攻击者访问脱敏后的数据集,由于知道用户的半标识列的信息,攻击者可以将某用户与某相等集联系在一起,通过该相等集的敏感数据分布信息P,攻击者更新后的个人信息为B2.
L-Diversity约束是通过约束P的diverisity属性,尽量减少B0和B2之间的信息量差距,差距越小,说明隐私信息泄露越少。T-Closeness约束则期望减少B1和B2之间的信息量差距,减少攻击者从敏感数据的全局分布信息和相等集分布信息之间得到更多的个人隐私信息。T-Closeness的定义如下:
如果一个相等类的敏感数据的分布与敏感数据的全局分布之间的距离小于T,则称该相等类满足T-Closeness约束。如果数据集中的所有相等类都满足T-Closeness,则称该数据集满足T-Closeness.
T-Closeness约束限定了半标识列属性与敏感信息的全局分布之间的联系,减弱了半标识列属性与特定敏感信息的联系,减少攻击者通过敏感信息的分布信息进行属性泄露攻击的可能性。不过同时也肯定导致了一定程度的信息丢失,所以管理者通过T值的大小平衡数据可用性与用户隐私保护。
常见数据脱敏算法
K-Anonymity,
L-Diversity和T-Closeness均依赖对半标识列进行数据变形处理,使得攻击者无法直接进行属性泄露攻击,常见的数据变形处理方式如下:
大数据脱敏平台
用户隐私数据保护与挖掘用户数据价值是两个互相冲突的矛盾体,彻底的数据脱敏,需要抹去全部的用户标识信息,使得数据潜在的分析价值大大降低。另一方面,完全保留用户隐私数据信息,可最大化数据的分析价值,同时导致用户隐私泄露的风险无法控制。因此大数据脱敏平台的设计目标并不是实现工具算法用来完全抹去全部的用户标识信息,而是包括如下几个目标:
数据泄露风险可控。首先,实现基于大数据平台的脱敏算法库,可并行,高效的按照脱敏规则对隐私数据进行脱敏。其次,基于数据脱敏的理论基础,建立用户隐私数据泄露风险的衡量模型,可定性定量的准确衡量数据可能发生泄露的风险。
可管理。结合大数据平台的用户认证体系,权限管理体系,以及隐私数据不同保护级别的权限管理体系,实现对隐私数据基于审批的数据访问机制。结合公司制度,规范,法务等管理,实现在尽可能保护用户隐私数据,减少数据泄露风险的前提下,最大化保留数据分析挖掘的价值。
可审计。对数据的访问要保证可回溯,可审计,当发生数据泄露时,要保证能够通过审计日志找到对应的泄露人员。
大数据脱敏平台的设计方向一般包括静态大数据脱敏平台和动态大数据脱敏平台,所谓静态和动态之分,主要在于脱敏的时机不同。对于静态脱敏来说,数据管理员提前对数据进行不同级别的脱敏处理,生成不同安全级别的数据,然后授予不同用户访问不同安全级别数据的权限。对于动态脱敏来说,管理员通过元数据管理不同用户访问具体数据的安全权限,在用户访问数据的时候,动态的从原始数据中按照用户权限动态的进行脱敏处理。大数据平台脱敏技术方案是一个非常有趣的课题,目前业界还没有看到有成熟的方案,鉴于其对数据安全和数据价值的作用,非常值得深入研究,希望以后可以继续以合适的方式分享我在这方面的研究与实践。
针对于大数据平台对于数据脱敏的需求,本文分析了数据泄露可能带来的风险,介绍了数据脱敏技术的理论基础与实现方式,同时简单分析了大数据平台的隐私数据脱敏技术方向。本文讨论的均是基于离线数据的数据脱敏,流式数据的脱敏技术无论是理论基础与具体实践大都还处在摸索的过程中,留待以后继续探索。【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
热点聚焦关注关注原创
24H热文一周话题本月最赞
讲师:782673人学习过
讲师:131301人学习过
讲师:15524人学习过
精选博文论坛热帖下载排行
Linux主要用于架设网络服务器。如今关于服务器和网站被黑客攻击的报告几乎每天都可以见到,而且随着网络应用的丰富多样,攻击的形式和方法...
订阅51CTO邮刊大数据隐私保护技术之脱敏技术探究 -
| 关注黑客与极客
大数据隐私保护技术之脱敏技术探究
共447126人围观
,发现 3 个不明物体
这几天学校开始选毕业设计,选到了数据脱敏系统设计的题目,在阅读了该方面的相关论文之后,感觉对大数据安全有了不少新的理解。
随着大数据时代的到来,大数据中蕴藏的巨大价值得以挖掘,同时也带来了隐私信息保护方面的难题,即如何在实现大数据高效共享的同时,保护敏感信息不被泄露。
数据安全是信息安全的重要一环。当前,对数据安全的防护手段包括对称/非对称加密、数据脱敏、同态加密、访问控制、安全审计和备份恢复等。他们对数据的保护各自有各自的特点和作用,今天我主要说数据脱敏这一防护手段。
许多组织在他们例行拷贝敏感数据或者常规生产数据到非生产环境中时会不经意的泄露信息。例如:
1.大部分公司将生产数据拷贝到测试和开发环境中来允许系统管理员来测试升级,更新和修复。
2.在商业上保持竞争力需要新的和改进后的功能。结果是应用程序的开发者需要一个环境仿真来测试新功能从而确保已经存在的功能没有被破坏。
3.零售商将各个销售点的销售数据与市场调查员分享,从而分析顾客们的购物模式。
4.药物或者医疗组织向调查员分享病人的数据来评估诊断效果和药物疗效。
结果他们拷贝到非生产环境中的数据就变成了黑客们的目标,非常容易被窃取或者泄露,从而造成难以挽回的损失。
数据脱敏就是对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。
数据脱敏系统设计的难点
许多公司页考虑到了这种威胁并且马上着手来处理。简单的将敏感信息从非生产环境中移除看起来很容易,但是在很多方面还是很有挑战的。
首先遇到的问题就是如何识别敏感数据,敏感数据的定义是什么?有哪些依赖?应用程序是十分复杂并且完整的。知道敏感信息在哪并且知道哪些数据参考了这些敏感数据是非常困难的。
敏感信息字段的名称、敏感级别、字段类型、字段长度、赋值规范等内容在这一过程中明确,用于下面脱敏策略制定的依据。
一旦敏感信息被确认,在保持应用程序完整性的同时进行脱敏的方法就是最重要的了。简单地修改数值可能会中断正在测试,开发或升级的应用程序。例如遮挡客户地址的一部分,可能会使应用程序变得不可用,开发或测试变得不可靠。
脱敏的过程就是一个在安全性和可用性之间平衡的过程。安全性是0%的系统中,数据不需要进行脱敏,数据库中都是原来的数据,可用性当然是100%;安全性是100%的系统中,大概所有的数据全都存一个相同的常量才能实现。
所以需要选择或设计一种既能满足第三方的要求,又能保证安全性的算法就变得特别重要了。
选定了敏感数据和要施加的算法,剩下的就是如何实现了,在什么过程中进行脱敏呢?
难题的解决方案
1.如何识别敏感数据
现在有两种方式来识别敏感数据。第一种是通过人工指定,比如通过正则来指定敏感数据的格式,Oracle公司开发的Oracle Data Masking Pack中就使用了这一种方法来指定。
第二种方式就是自动识别了,在文献[2]中,作者给出了基于数据特征学习以及自然语言处理等技术进行敏感数据识别的自动识别方案(没有具体的实现,只提出了模型)。
具体的实现在gayhub上找了一个java实现的工程,,看了下源码具体原理是通过提前预置的规则来识别一些常见的敏感数据,比如信用卡号,SSN, 手机号,电子邮箱,IP地址,住址等.
2.使用怎样的数据脱敏算法
在比较常见的数据脱敏系统中,算法的选择一般是通过手工指定,像Oracal的数据脱敏包中就预设了关于信用卡的数据选择什么算法进行处理,关于电话的数据怎么处理,用户也可以进行自定义的配置。
脱敏方法现在有很多种,比如k-匿名,L多样性,数据抑制,数据扰动,差分隐私等。
匿名化原则是为了解决链接攻击所造成的隐私泄露问题而提出的。链接攻击是这样的,一般企业因为某些原因公开的数据都会进行简单的处理,比如删除姓名这一列,但是如果攻击者通过对发布的数据和其他渠道获得的信息进行链接操作,就可以推理出隐私数据。
k-匿名是数据发布时保护私有信息的一种重要方法。 k-匿名技术是1998 年由Samarati和Sweeney提出的 ,它要求发布的数据中存在至少为k的在准标识符上不可区分的记录,使攻击者不能判别出隐私信息所属的具体个体,从而保护了个人隐私, k-匿名通过参数k指定用户可承受的最大信息泄露风险。
但容易遭受同质性攻击和背景知识攻击。
L多样性是在k-匿名的基础上提出的,外加了一个条件就是同一等价类中的记录至少有L个“较好表现”的值,使得隐私泄露风险不超过 1/L,”较好表现“的意思有多种设计,比如这几个值不同,或者信息熵至少为logL等等..
但容易收到相似性攻击。
数据抑制又称为隐匿,是指用最一般化的值取代原始属性值,在k-匿名化中,若无法满足k-匿名要求,则一般采取抑制操作,被抑制的值要不从数据表中删除,要不相应属性值用“ ** ”表示。
&&& s = "CREDITCARD"
&&& s[-4:].rjust(len(s), "*")
'******CARD'
数据扰动是通过对数据的扰动变形使数据变得模糊来隐藏敏感的数据或规则,即将数据库 D 变形为一个新的数据库 D′ 以供研究者或企业查询使用,这样诸如个人信 息等敏感的信息就不会被泄露。通常,D′ 会和 D 很相似,从 D′ 中可以挖掘出和 D 相同的信息。这种方法通过修改原始数据,使得敏感性信息不能与初始的对象联系起来或使得敏感性信息不复存在,但数据对分析依然有效。
Python中可以使用faker库来进行数据的模拟和伪造。
from faker import Factory
fake = Factory.create()
fake.country_code()
fake.city_name()
fake.street_address()
# '督路l座'
fake.address()
# '辉市哈路b座 176955'
fake.state()
# '南溪区'
fake.longitude()
# Decimal('-163.645749')
fake.geo_coordinate(center=None, radius=0.001)
# Decimal('90.252375')
fake.city_suffix()
fake.latitude()
# Decimal('-4.0682855')
fake.postcode()
# '353686'
fake.building_number()
fake.country()
# '维尔京群岛'
fake.street_name()
相关技术有:一般化与删除,随机化,数据重构,数据净化,阻碍,抽样等。
差分隐私应该是现在比较火的一种隐私保护技术了,是基于数据失真的隐私保护技术,采用添加噪声的技术使敏感数据失真但同时保持某些数据或数据属性不变,要求保证处理后的数据仍然可以保持某些统计方 面的性质,以便进行数据挖掘等操作。
差分隐私保护可以保证,在数据集中添加或删除一条数据不会影响到查询输出结果,因此即使在最坏情况下,攻击者已知除一条记录之外的所有敏感数据,仍可以保证这一条记录的敏感信息不会被泄露。
想要体验的同学可以去Havard的,他们做了一个DP的原型实现.
想要详细了解的同学可以看一下知乎上的这个问题
关于动态脱敏系统的实现,现在一般有两种,一种是重写数据库程序代码,在权限判决后对请求语句进行重写,从而查询数据;另一种是用户的sql语句通过代理后,代理会对其中关于敏感信息的部分进行语句的替换,并且在返回时会重新包装为与原请求一致的格式交给用户。
经过上面的分析,看来实现一个全自动的准确率高的脱敏系统难度相当大啊,希望自己能够圆满完成任务。
Reference:
[1]data-masking-best-practices
[2]大数据环境下的智能数据脱敏系统 陈天莹
《通信技术》卷第7期
[3]匿名化隐私保护数据研究
《小型微型计算机系统》2011.02第二期
*本文原创作者:,转载请注明来自
大数据炒了这么就 至今也只能算是个实施起来的概念 还在萌芽中采用添加噪声的技术使敏感数据失真但同时保持某些数据或数据属性不变说到底就好像加密的DES ……无论多牛逼 必须要可逆……这就有点矛与盾的味道了竞争进化科技 科技促进竞争!比如 具体的实现在gayhub上找了一个java实现的工程,chlorine-finder,看了下源码具体原理是通过提前预置的规则来识别一些常见的敏感数据,比如信用卡号,SSN, 手机号,电子邮箱,IP地址,住址等.这些问题根本不需要有学术报告……等黑产大牛分赃不均互黑曝光就行 ……
只要是可逆数据,怎么也能解开的啊,把敏感数据用不可逆加密老板会杀人
同学这个是oracle
12c版本中的data masking ,貌似跟大数据没啥关系。
必须您当前尚未登录。
必须(保密)
这家伙太懒,还未填写个人描述!
关注我们 分享每日精选文章}

我要回帖

更多关于 数据脱敏方案 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信