2.5 在標識符中嵌入信息:不推薦
大多數標識符不是純粹的隨機數,它們通常含有一些可由熟悉標識系統的人解釋的嵌入信息。例如,標識符中可以嵌入姓的前三個字母,同樣,標識符中也可以嵌入出生年份的最后兩位數字。標識符中常常嵌有這種經“知情人”核實的“赤裸裸”的真實信息。例如,一個9位數社會安全號碼分為:前三位數表示區號,緊接著的兩位數表示群組編號,最后四位數表示序列號。借助社會安全號碼,人們可以根據經驗在社保編碼系統里窺探到大量個人信息,并且可以通過排除子序列的存在來確定是否存在數字偽造。
標識符里那些看似無關緊要的信息有時候會成為發現個人隱私的重要依據。舉個例子,假設某個零售商店會給每個在店里購物的客戶提供一個唯一編號,例如2010-3518582,這個編號表示交易是在2010年發生的。由于每個編號都是唯一的,且號碼本身對交易只字未提,人們一般會理所當然地覺得這樣的編號不會透露任何交易信息。
然而事實是,交易編號已經告訴你不少信息,比如編號中的2010表明購買的年份。如果編號是2010-0000001,那么你可以放心地說,這筆銷售交易發生在2010年第一個工作日。如果給你任意一個2010年的交易編號,可以很容易通過計算得出具體的交易日期,只需用當年的最后一個交易編號的后綴數字除以待計算的交易編號后綴數字,再乘以365,此時得到的是自第一筆交易發生算起的交易天數,再映射到具體日期即可。
你覺得這沒什么好說的?請考慮這種情況,總統身邊的一名重要工作人員在2005年2月15日到華盛頓特區的醫院進行了肝活檢,你想知道活檢的結果。于是你訪問了相關網站,在這些網站上可以查詢到2000~2010年去標識化的醫院病理檔案,也就是說檔案不涉及個人身份信息,但是檔案編號是依據社保號排序的。使用前面的策略,首先收集所有與2005年2月15日相關的活檢資料,發現在這些活檢中,只有三個肝活檢。這三個活檢,只有一個人的性別和年齡與總統的工作人員相匹配。那么,顯然對應的報告提供了此工作人員的診斷結果。無需獲得任何個人身份信息,發現一些非常私人的信息是完全可以實現的。
由字母、數字構成的標識符字符串,本不應該存在暴露患者身份信息的危險。病人的姓名、出生日期和社會安全號碼組合而成的標識符也可以用來竊取個人的身份。最安全的標識符應該是不包含任何信息的隨機字符串。