2.5 在标识符中嵌入信息:不推荐
大多数标识符不是纯粹的随机数,它们通常含有一些可由熟悉标识系统的人解释的嵌入信息。例如,标识符中可以嵌入姓的前三个字母,同样,标识符中也可以嵌入出生年份的最后两位数字。标识符中常常嵌有这种经“知情人”核实的“赤裸裸”的真实信息。例如,一个9位数社会安全号码分为:前三位数表示区号,紧接着的两位数表示群组编号,最后四位数表示序列号。借助社会安全号码,人们可以根据经验在社保编码系统里窥探到大量个人信息,并且可以通过排除子序列的存在来确定是否存在数字伪造。
标识符里那些看似无关紧要的信息有时候会成为发现个人隐私的重要依据。举个例子,假设某个零售商店会给每个在店里购物的客户提供一个唯一编号,例如2010-3518582,这个编号表示交易是在2010年发生的。由于每个编号都是唯一的,且号码本身对交易只字未提,人们一般会理所当然地觉得这样的编号不会透露任何交易信息。
然而事实是,交易编号已经告诉你不少信息,比如编号中的2010表明购买的年份。如果编号是2010-0000001,那么你可以放心地说,这笔销售交易发生在2010年第一个工作日。如果给你任意一个2010年的交易编号,可以很容易通过计算得出具体的交易日期,只需用当年的最后一个交易编号的后缀数字除以待计算的交易编号后缀数字,再乘以365,此时得到的是自第一笔交易发生算起的交易天数,再映射到具体日期即可。
你觉得这没什么好说的?请考虑这种情况,总统身边的一名重要工作人员在2005年2月15日到华盛顿特区的医院进行了肝活检,你想知道活检的结果。于是你访问了相关网站,在这些网站上可以查询到2000~2010年去标识化的医院病理档案,也就是说档案不涉及个人身份信息,但是档案编号是依据社保号排序的。使用前面的策略,首先收集所有与2005年2月15日相关的活检资料,发现在这些活检中,只有三个肝活检。这三个活检,只有一个人的性别和年龄与总统的工作人员相匹配。那么,显然对应的报告提供了此工作人员的诊断结果。无需获得任何个人身份信息,发现一些非常私人的信息是完全可以实现的。
由字母、数字构成的标识符字符串,本不应该存在暴露患者身份信息的危险。病人的姓名、出生日期和社会安全号码组合而成的标识符也可以用来窃取个人的身份。最安全的标识符应该是不包含任何信息的随机字符串。