内容提要:
一、去个人标识化的数据就安全吗?二、具体有哪些针对隐私数据的攻击方法?1)链接攻击2)同质性攻击3)背景知识攻击三、那么,到底怎么样的数据才是安全的?1)K-匿名2)L-多样性四、怎么规避数据攻击第一,当然是要做好数据安全的评审啦!第二,对有问题的数据,要建议进行泛化处理第三、从 差分隐私 到 隐私计算 |
---|
一、去标识化的数据就安全吗?
有一份10W人的体检数据,包括了个人的身份证号、手机号个人标识信息,以及身高、体重、血压、心率等健康指标。
首先先明确一个概念:
问:如果把数据中的身份证号、手机号这种个人标识信息去掉,或者脱敏处理,这份数据就安全了吗?
类似的还有投资者的股票交易数据、公民选举倾向、用户的打车数据等做脱敏处理。
答案为否。
因为隐私保护的——
即使隐去了个人标识,攻击者仍然可以通过多个准标识符,或者其他属性,定位到一个人。
举个简单的例子,如果有一份你所在单位的员工的打车数据,即使去掉了个人标识,也能根据他的打车目的地,结合其它一些信息,定位到一个人。
“周一下午3点有人从公司打车到了上海虹桥站,这肯定是小王,他周一要去外地出差,走之前还跟我说来着,时间也吻合。”
“周四上午11点有人从南京西路打车到公司,这肯定是小张,他家就住那里,明明是周四早上迟到了,还跟领导说那天打卡机坏了,他打了卡但是没记录”
再比如,有一份“2021年冬奥会的运动员名单“数据,去掉了个人标识,仅仅保留年龄、参与项目这两个字段,依然也能推测出这里面很多数据的归属主题:
年龄 | 参与项目 |
---|---|
45 | 体操 |
... | ... |
29 | 摔跤 |
就像这种连国籍字段都没有的数据,依然可以推测出其中的一些数据主体,比如第一个45岁的体操老将,只能是丘索维金娜;29岁的摔跤运动员,结合参赛表也很容易把名单圈定在那几个人范围内,猜中的概率大大增加。
有人说,不能结合这些背景知识,这属于“作弊”,在现实中,黑客就是根据这些背景知识、不同表的中的数据同质性等进行攻击,成功窃取个人隐私。
2006年,Netflix组织了一场推荐算法竞赛,使用的数据是“经过匿名化处理”的用户影评数据,仅仅保留了每个用户对电影评分和评分的时间戳。
但来自UT Austin的两位研究人员,借助了外部IMDB的用户影评数据,从这50万匿名化用户中定位出了2个用户,结果其中1个用户还投诉了Netflix公司,人为其泄露了其隐私,结果Netflix公司不得不取消了该项比赛。
二、具体有哪些针对数据隐私的攻击方法呢?
我们说的攻击,不是明目张胆的进行内网入侵、拖库,也不是通过社工进行诈骗,而是,就通过公开出来的信息,通过关联、分析等计算方法,结合一些背景知识,成功把一条数据定位到个人。
注意这里不是说可以找到ta的身份证号、手机号等这些个人标识的 具体号码,这里说的是 “定位到个人”是指——本来这条数据可能是很多人的,但经过关联之后,这条数据只可能是一个人的,甚至可以知道是哪个人。
具体有哪些攻击方法呢?
1)链接攻击
攻击者通过从别处获取的数据,和本次发布的数据进行链接,从而圈出唯一主体,推测出个人隐私数据。说白了就是不同的表之间,通过一些准标识符进行关联。
上面Netflix的例子就是通过关联分析,将Netflix的匿名数据与IMDB的数据进行关联、比较,从而定位出了2个用户,他们在Netflix的所有影评都一览无余。
根据美国卡内基梅隆大学的 Sweeney 的研究,如果跟其他数据集的信息组合在一起,87%的美国人可以仅用 5位邮政编码、性别、出生年月,就可以唯一的、重新标识出一个美国人。
这可不是什么野鸡研究,这个研究的结论出现在隐私计算领域大名鼎鼎的论文《k-ANONYMITY: A MODEL FOR PROTECTING PRIVACY》里面,就是在这篇论文里面,Sweeney 提出了 “K-匿名” 的隐私保护方法,后面会介绍。
2)同质性攻击
通过挖掘出一个表中,某个准标识符在敏感属性上面的一些同质性,来获取个人隐私数据。
比较抽象,还是体检表为例,就算隐去了个人的标识符,但最终发布的数据中,如果 街道为 “南京南路”的 “肺部检查” 这个属性里面,都是“肺部结节 ”,这就出现了同质性。
体检者所住街道 | 体检者肺部检查 |
---|---|
南京南路 | 肺部结节 |
南京南路 | 肺部结节 |
南京南路 | 肺部结节 |
南京南路 | 肺部结节 |
如果我认识的一个人,通过各种途径知道他在这个体检表中,又知道他住南京南路街道,那么我就可以推测出来这个人有“肺部结节”了。
3)背景知识攻击
通过结合背景知识,将看起来匿名的数据识别到具体一个人上。
比如有下面一份具体的体检表,
我认识的一个人,住在南京南路,32岁。但表中有两条数据满足条件,原本我无法定位到这个人。
但这个人是女性,而前列腺结节只能男性会有,所以结合这个背景知识,我可以将前列腺结节排除,从而识别出第一个数据是我认识的这个人,她有高血压。
序号 | 体检者街道 | 体检者年龄 | 手机号后四位 | 体检问题 |
---|---|---|---|---|
1 | 南京南路 | 32 | 1234 | 高血压 |
2 | 南京南路 | 32 | 1234 | 前列腺结节 |
3 | 南京北路 | 42 | 1628 | 高血压 |
4 | 南京北路 | 42 | 1628 | 脂肪肝 |
5 | 南京北路 | 42 | 1628 | 肺部结节 |
三、那么,到底怎么样的数据才是安全的?
数据去掉了个人标识符就安全了吗?不是,至少还要满足如下条件,
1)K-匿名
简单说,就是一份数据中的 准标识符 的组合,在此份数据中出现次数要有K个(K越大越好,但至少要大于2),才无法定位到个人。
比如一份体检数据
序号 | 街道 | 年龄 | 手机号后四位 | 体检问题 |
---|---|---|---|---|
1 | 南京南路 | 32 | 1234 | 高血压 |
2 | 南京南路 | 32 | 1234 | 前列腺结节 |
3 | 南京北路 | 42 | 1628 | 高血压 |
4 | 南京北路 | 42 | 1628 | 脂肪肝 |
5 | 南京北路 | 42 | 1628 | 肺部结节 |
无法通过三个准标识符{街道,年龄,手机号后四位}定位到一个人,因为
2)L-多样性
L-多样性是为了避免“同质性攻击”,如在介绍“同质性攻击”里举的例子,如果 “南京南路”的 “肺部检查” 里面,都是“肺部结节 ”,那么就因为同质性而间接泄露个人隐私。
L-多样性 简单来说 指的是,某个准标识符的组合下,敏感属性具有L个多样性,而不是都是同一个。
在上面的表中,
四、怎么规避数据攻击
在一个企业里面,如何规避针对数据里这种个人隐私的定位攻击呢?
第一,当然是要做好数据安全的评审啦!
企业里面安全管理的角色,除了要从应用缺陷/漏洞、数据脱敏、去标识化等角度去评估安全性,还应该根据以上的专业知识,去评估数据是否满足K-匿名、L-多样性,以及测试这份数据能否通过同质性、关联分析,以及结合其他背景知识,来还原出个人信息的主体。
第二,对有问题的数据,要建议进行泛化处理
如果一份数据无法满足K-匿名和L-多样性,即仅靠某几个准标识符的组合,就能够定位到一个人,那这份数据就无法发布出来、无法使用了吗?
也不是,这个时候可以对数据进行一些泛化处理,比如某数据中:
那么根据前面所说,如果我认识一个人,32岁,在这个数据里面,我就能知道ta肯定有脂肪肝。
这个时候,我们可以把年龄这个字段进行泛化,从精确数字,变成一个范围,比如30-50岁,那么这两个人就合并到一类里面了,就变成:
对不满足K-匿名的也可以采用类似操作。
但其实,L-多样性也是有局限的,比如有一份公民犯罪前科的数据,里面有一列敏感属性是“是否有刑事记录”(应该很敏感了),99.9%的人都会是“否”,所以在某些准标识符,或者组合下这个属性肯定会同质,这个想想也是正常的。
但如果此时为了追求L-多样性,人为进行泛化呢?可以思考一下会有什么后果,这反而会加大泄露个人的隐私.....
第三、从 差分隐私 到 隐私计算
简单来说,就是给输出或发布的数据注入一些随机噪声,使得个体的结果模糊化,但又不影响总体数据的一些统计性质,这样这些数据虽然定位不到个体,但仍然可以用来做一些统计分析,不影响结果。
在差分隐私的技术下,攻击者即使能够掌握除关于这份数据的所有背景知识,哪怕已经掌握了除某条数据之外的所有数据信息,这条数据的隐私也不会泄露
隐私怎么定义、噪音怎么注入,具体公式就不上了,后面应该还会有机会再进行介绍的,因为还会专门讲针对AI模型的攻击(比如模型萃取攻击、逆向攻击等),到时候放一起,先关注公众号。
而差分隐私,已经是当下非常火的隐私计算的范畴了。
除差分隐私之外,隐私计算的基础算法还有 同态加密,动态脱敏,混淆电路等,它们是现在安全多方计算、联邦学习等这些隐私保护框架的理论基础。