名字删掉了,却仍能认出是谁
一句话总结
去标识化不是删掉姓名,而是让剩余的值组合起来也无法指向某一个人,而是否做到了,要靠统计 k 来确认,而不是凭感觉。
为什么需要它
有人以分析理赔赔付为什么延迟为由,来要求提供数据。提出要求的可能是公司内部的分析团队,也可能是外部咨询公司。看起来删掉姓名和会员编号再交出去就行了,但仅凭剩下的内容,往往就能暴露出具体的人。出生日期、性别和居住地邮政编码,这三项连在一起,大多数人都能认出自己的数据,而拥有同学录或公司通讯录的人,甚至能认出别人的数据。这就是准标识符(quasi-identifier)问题。直接标识符单独就能指向某个人,准标识符则是多个合在一起才能指向某个人。
健康信息在此之上又多了一层。诊断代码是分析中必不可少的值,同时也是最敏感的值。在韩国,《个人信息保护法》把与健康有关的信息单独规定为敏感信息,要求更严格地处理(第 23 条),所以仅凭“只是删掉了姓名”这样的说明,很难获得导出审批。
工作原理
作为检查项目的范本被频繁引用的,是美国 HIPAA 的去标识化标准。45 CFR 164.514 提供了两条路径:一条是专家判断(expert determination),另一条是 Safe Harbor。Safe Harbor 列举了需要去除的 18 类标识符,其中有三条规则值得注意。
- 小于州的地理单位要去掉。例外是邮政编码前三位,但只有当共享该前三位的地区人口超过 20,000 人时才可以保留。人口在 20,000 人以下时,条文要求把前三位也改成
000。 - 去除年份以外的所有日期要素。出生日期、入院日期、出院日期、死亡日期都属于这一类。
- 超过 89 岁的年龄全部合并为一个类别。极高的年龄本身就很罕见,仅凭一个年份就能把范围缩小到某个人。
- 最后的第 18 项是“其他唯一的编号、特征、代码”。这是承认即使遵守了整份清单仍会留下漏洞的条款,同一条文还附加了条件:明知与其他信息合并后可以识别个人,却仍然导出,是不允许的。
这项规定适用于美国的医疗机构及其合作方,并不直接适用于韩国的保险公司。但作为确认“漏掉了什么”的清单,它仍然有用。
用来衡量即使遵守了整份清单仍然残留的风险的尺度,就是 k-匿名性。统计准标识符组合相同的行有多少条,把其中的最小值称为 k。如果 k 为 1,知道这个组合的人就能准确地指出某一行。提高 k 的办法只有两种:把值模糊化(泛化),或者去掉行(抑制)。泛化损失的信息较少,抑制则更彻底,但可用于分析的数据会减少。所以顺序很重要:先泛化,然后只抑制依然残留的小组合。反过来做,被舍弃的行就会像滚雪球一样增加。
원본: 1971-04-02 · F · 80712 → 이 조합을 가진 줄이 1개 (k=1)
일반화: 1971 · F · 807 → 이 조합을 가진 줄이 9개 (k=9)
작은 지역: 1943 · M · 000 → 인구가 적어 앞자리까지 지움
억제: 조합이 5개 미만인 줄은 반출하지 않음
在现场相遇的样子
最常见的事故是只看一个文件就判断安全。把上个月发出的提取文件和这次的提取文件并排放在一起,两次都出现的人的组合会减少,彼此就缩小了范围。所以要在导出记录中留下:什么时候、给了谁、按什么规则导出了什么。没有记录,下次再有请求时,连风险也无法重新计算。
第二种是只看 k 就放心。即使 k 为 5,如果这五行的诊断代码全都相同,那么虽然不知道是谁,但这个人因什么病提出了索赔,就暴露了。值本身泄露的这个问题,是 k 防不住的。对敏感的列,最好另外查看组合内值有多少种。
第三种是把用来还原的钥匙一起发出去。同一条文中的重新识别条款规定,即使附加了可还原的代码,该代码也不得由原始值推导出来,并且不得公开这个方法。直接使用会员编号,或者把会员编号哈希后附上,都违反了这个条件。
实际工作中真正重要的事
- 去除直接标识符只是开始。在用剩余的组合统计出 k 之前,什么都没有得到证明。
- 泛化在先,抑制在后。要同时报告被舍弃的行所占的比例,才能说清“损失了多少”。
- 亲自尝试重新识别。没有用自己的数据进行过攻击的去标识化,是未经验证的。
- 留下导出记录。包括原始文件和导出文件的哈希、所应用的规则、目的、保存期限。
- 引用标准时要同时写明适用范围。把别国的规定写得像我们自己的规定,审计时首先就会被发现。
下一项实验要做什么
你将创建 800 笔合成索赔数据,先去掉直接标识符并统计 k,然后依次应用日期泛化、高龄合并,以及小地区和罕见诊断代码的处理。接着抑制 k 小于 5 的组合,生成导出文件,并亲自尝试重新识别,测量那个人隐藏在多少人之中,最后留下导出记录和检查清单。评分器在每一步都会根据上一步的文件重新计算结果,并逐行核对。