「重新識別化風險分析」 (或簡稱「風險分析」) 是指分析私密資料的過程,目的是找出哪些屬性可能會增加當事人被識別或個人相關私密資訊遭到洩漏的風險。在進行去識別化之前,您可以先使用風險分析方法,協助找出有效的去識別化策略,或在去識別化之後,監控任何變動或離群值。
去識別化是從資料中移除識別資訊的程序。Sensitive Data Protection 可以根據您的設定,偵測機密資料並予以去識別化,以滿足貴機構的要求。
反之,重新識別程序則是將去識別化之資料與其他可用資料進行配對,進而推論出該資料所屬之當事人。重新識別大多針對機密的個人資訊內容,像是醫療或財務資料。
要進一步瞭解如何使用 Sensitive Data Protection 來測量各種風險,請參閱測量重新識別與洩漏風險一文。
風險分析術語與技術
如果沒有對機密資料做正確或適度的去識別化,就會面臨以下風險:攻擊者重新識別個人資料或掌握個人機密資訊,進而可能對隱私權造成嚴重後果。Sensitive Data Protection 可以協助依據幾項衡量指標,來計算這個風險。
在探討這些指標之前,我們需要先定義幾個常見的術語:
- 識別項:識別項可以用來識別特定的個人。例如,某人的全名或身分證字號都屬於識別項。
- 準識別項:準識別項無法識別特定個人,但與個人記錄結合並交叉參照後,可能使攻擊者重新識別個人的可能性大幅提高。例如,郵遞區號和年齡都屬於準識別項。
- 機密資料:機密資料是未經授權不得揭露的資料。像健康狀況、薪資、刑事犯罪及地理位置等屬性,通常都被視為機密資料。請注意,識別項和機密資料可以重疊。
- 等價類別:等價類別是一個有相同準識別項的資料列集合。
Sensitive Data Protection 可以運用四種技術來量化資料集的相關風險等級:
- k-anonymity:資料集的一個屬性,表示資料集記錄的重新識別性。如果資料集中每個人的準識別項與資料集中至少其他 k- 1 個人相同,則這個資料集就符合 k-anonymous。
- l-diversity:k-anonymity 的延伸指標,會另外再測量每個資料欄中機密值具有的多樣性。如果每一個資料列集合都具有相同的準識別項,而每個機密屬性都至少有 l 個不同的值,那這個資料集就具有 l-diversity。
- k-map:將當事人去識別化的特定資料集與更大的重新識別 (或「攻擊」) 資料集進行比較,進而計算重新識別風險。Sensitive Data Protection 並不知道攻擊資料集,但會藉由使用公開可取得的資料 (如美國人口普查),或使用自訂統計模型 (以一或多個 BigQuery 表格表示) 或從輸入資料集中值的分佈情況進行推論,透過統計方式建立模型。每一個資料集 (範例資料集和重新識別資料集) 會共用一或多個準識別項資料欄。
- Delta-presence (δ-presence): 估算在較大規模人口中的特定使用者存在資料集中的可能性。用於資料集中的成員身分本身屬於機密資訊的情況。跟 k-map 一樣,Sensitive Data Protection 並不知道攻擊資料集,但是會藉由使用公開可取得的資料、使用者指定的分佈情況或從輸入資料集推論,透過統計方式建立模型。
關於 k-anonymity
在收集資料用於研究用途時,去識別化對於協助維護參與者的隱私權具有不可或缺的重要性。但去識別化可能會導致資料集失去實用性。k-anonymity 的出現,是為了量化資料集的重新識別性,並平衡去識別化人員資料的實用性,以及資料使用對象的隱私權。這是資料集的一個屬性,可以用來評估資料集中記錄再被識別的可能性。
例如,請看以下的患者資料集合:
病患 ID | 全名 | 郵遞區號 | 年齡 | 條件 | ... |
---|---|---|---|---|---|
746572 | John J. Jacobsen | 98122 | 29 | 心臟病 | |
652978 | Debra D. Dreb | 98115 | 29 | 第二型糖尿病 | |
075321 | Abraham A. Abernathy | 98122 | 54 | 肝癌 | |
339012 | Karen K. 克拉科夫 | 98115 | 88 | 心臟病 | |
995212 | William W. Wertheimer | 98115 | 54 | 氣喘 | |
... |
這個資料集包含所有三種上述類型資料:識別項、準識別項、機密資料。
如果健康狀況之類的機密資料未被遮罩或遮蓋,攻擊者可能使用每一個機密資料附屬的準識別項、可能交叉參照其他含有類似準識別項的資料集,然後重新識別適用該機密資料的人。
如果資料集中人口統計資料欄的每一個欄值組合出現在至少 k 筆不同的記錄中,那麼這個資料集便符合 k-anonymous。請注意,具有相同準識別項的資料列群組稱為「等價類別」。舉例來說,如果您已充分去識別化準識別項,使準識別項值相同的資料列至少有四列,則資料集的 k-anonymity 值為 4。
實體 ID 及計算 k-anonymity
Sensitive Data Protection 提供了一個有關計算 k-anonymity 的重要選項,那就是「實體識別項 (ID)」。實體 ID 可讓您在資料集的數個資料列均對應到同一位使用者的常見情況下,更準確地判斷 k-anonymity 值。否則,如果不分使用者,一律分開計算每一個資料列時,用於計算資料集之 k-anonymity 值的使用者總數即會高得不合理。所以,計算出的 k-anonymity 值就不正確了。
請看以下的資料集範例:
使用者 ID | 郵遞區號 |
---|---|
01 | 42000 |
02 | 17000 |
02 | 42000 |
03 | 17000 |
03 | 42000 |
03 | 42000 |
04 | 42000 |
04 | 17000 |
如果沒有利用實體 ID 來留意不同資料列屬於同一使用者的情況,那麼就會使用使用者總數為 8 來計算 k-anonymity 值,而不是使用實際的使用者人數,也就是 4。在這個資料集中,使用傳統的 k-anonymity 計算方法時 (沒有實體 ID),3 人的 k-anonymity 值為 3,5 人的 k-anonymity 值就是 5,但資料庫中其實只有 4 人。
使用實體 ID 會促使 Sensitive Data Protection 在計算 k-anonymity 時,會將使用者關聯的多組郵遞區號視為準識別項。以我們的範例為例,實際上有三個「複合」準識別項值,因為有三個不同的準識別項組合指派給使用者:42000;17000 和 42000 的多重集合;以及 17000、42000 和 42000 的多重集合。這些對應於使用者,如下所示:
- [42000] 與 1 個不重複的使用者 (01) 有關聯。
- [17000、42000] 與 2 個不重複的使用者 (02 和 04) 有關聯。
- [17000、42000、42000] 與 1 個不重複的使用者 (03) 有關聯。
如您所見,這個方法會考量到我們郵遞區號資料庫中使用者可能重複的情況,所以在計算 k-anonymity 時會進行調整處理。
k-anonymity 資源
如要進一步瞭解 k-anonymity,請參閱揭露資訊時保護隱私權:k-anonymity 及其透過一般化和抑制的強制執行一文,作者為哈佛大學資料隱私權實驗室 (Harvard University Data Privacy Lab) 的 Pierangela Samarati 和 Latanya Sweeney。
如要瞭解如何使用 Sensitive Data Protection 計算 k-anonymity (無論是否使用實體 ID),請參閱「計算資料集的 k-anonymity」一文。
關於 l-diversity
l-diversity 與 k-anonymity 息息相關,其目的是為了協助解決去識別化資料集易被攻擊的問題,像是:
- 同質性攻擊:攻擊者利用一組 k 筆記錄中值的同質性,針對這個經過 k 匿名化的資料集推測機密值。
- 背景知識攻擊:攻擊者利用具有特定機密屬性的準識別項值之間的關聯性,縮小該屬性的可能值範圍。
l-diversity 會設法測量攻擊者根據 k-anonymity 和等價類別 (具有相同準識別項值的資料列集合),可以得知多少的個人資料。如果每個等價類別中,每個私密屬性都至少有 l 個獨特值,那麼這個資料集就具有 l-diversity。針對每一個等價類別,資料集中有多少個機密屬性?舉例來說,如果 l-diversity = 1,這表示每個人都有同一個機密屬性;如果 l-diversity = 2,那就表示每個人有兩個機密屬性的其中一個,以此類推。
l-diversity 資源
如要進一步瞭解 l-diversity,請參閱l-Diversity: Privacy Beyond k-Anonymity 一文,作者為康乃爾大學資訊工程學系 (Cornell University Department of Computer Science) 的 Ashwin Machanavajjhala、Johannes Gerke 和 Daniel Kifer。
如要瞭解如何透過 Sensitive Data Protection 計算 l-diversity,請參閱「計算資料集的 l-diversity」。
關於 k-map
k-map 跟 k-anonymity 極為相似,但這個技術是假設攻擊者很可能不知道誰在資料集中。如果您的資料集非常小,或將屬性一般化所需工程過於浩大時,您可以使用 k-map。
跟 k-anonymity 一樣,k-map 也會要求您判定資料庫中的哪些資料欄是準識別項。這樣,您就可以指出攻擊者最有可能使用哪些資料來重新識別當事人。此外,計算 k-map 值需要重新識別資料集:一個較大的資料表,用於比較原始資料集中的資料列。
請看以下的小型資料集範例。這個範例資料取自一個較大的假設資料庫,資料是從一份調查收集而來,而調查的回應資料含有機密資訊。
郵遞區號 | age |
---|---|
85535 | 79 |
60629 | 42 |
這兩個人的資訊量單純看起來好像一樣。事實上,較大資料集的 k-anonymity 可能導致宣稱對應到第二列的當事人可被識別的可能性很高。然而,如果您倒回去細想一下資料,就會明白其實不然。尤其是想到美國郵遞區號 85535,目前約有 20 個居民。住在郵遞區號 85535 且正好 79 歲的可能只有一個。將此與郵遞區號 60629 進行比較,後者位於芝加哥都會區,而居民超過 100,000 人。所以,在這個郵遞區號中,大約有 1,000 人剛好 42 歲。
在我們小型的資料集中,第一列可以輕易被重新識別,但第二列不會。 但根據 k-anonymity,這兩列在較大的資料集中卻可能是完全獨一無二的。
k-map 跟 k-anonymity 一樣,您都需要判定資料庫中的哪幾個資料欄是準識別項。Sensitive Data Protection 的風險分析 API 會模擬重新識別資料集,以估算攻擊者為重新識別資料,可能會採取哪些步驟來比較原始資料集。在前面的範例中,由於處理的是美國地點 (郵遞區號) 和個人資料 (年齡),且假設攻擊者不知道調查的參與者是誰,所以重新識別資料集可能是住在美國的所有人。
現在,您已經有準識別項和重新識別資料集,接著可以計算 k-map 值:如果準識別項的每個值組合在重新識別資料集中至少出現 k 次,那您的資料就會達成具有值 k 的 k-map。
根據這個定義,假設在我們資料庫中的第一列只可能對應到美國地區的一個人,那麼這個範例資料集就不會滿足 k-map 值為 2 或以上的要求。為了取得較大的 k-map 值,我們可以移除年齡值,如下:
郵遞區號 | age |
---|---|
85535 | ** |
60629 | ** |
如上所述,郵遞區號 85535 約有 20 人,而 60629 則超過 100,000 人。因此,我們可以估算這個經過一般化的新資料集,具有約 20 的 k-map 值。
k-map 資源
如需進一步瞭解 k-map 及其與 k-anonymity 的關係,請參閱 Protecting Privacy Using k-Anonymity 一文,作者為 Journal of the American Medical Informatics Association 的 Khaled El Emam 和 Fida Kamal Dankar。
如要瞭解如何透過 Sensitive Data Protection 計算 k-map 估計值,請參閱計算資料集的 k-map。
關於 δ-presence
Delta-presence (δ-presence) 可以估算攻擊者試圖在資料集中找出其目標的相關風險。這與重新識別風險略有不同,其目標不是找出哪一筆確實的記錄對應哪一個人,而是只要知道某個人是否在資料集中。如果資料集中的所有個人都有一個相同的機密屬性,例如他們的醫療診斷都相同,則使用這個指標尤其適當。
跟其他風險指標一樣,δ-presence 也會要求您判定資料庫中哪些資料欄是準識別項。這樣,您就可以指出攻擊者最有可能使用哪項資料以發現哪些個人在資料集中。跟 k-map 一樣,計算 δ-presence 需要攻擊資料集:一個較大的資料表,用於比較原始資料集中的資料列。
請看以下的小型資料集範例。這個範例資料取自一個較大的假設資料庫,其中的人都患有某種基因疾病。
郵遞區號 | age |
---|---|
85942 | 72 |
85942 | 72 |
62083 | 53 |
在美國郵遞區號 85942 中,約有 2 人是 72 歲;在郵遞區號 62083 中,約有 5 人是 53 歲。前兩筆記錄不太可能可以重新識別,因為這兩筆資料具有相同的準識別項。但是,由於在較大的人口中只有兩個人共用這些準識別項,所以攻擊者可以推斷這兩人都患有基因疾病。δ-presence 可以計算在資料集中具有特定準識別項的人有多少比率,藉此量化這個特別風險。
δ-presence 跟其他風險指標一樣,都會要求判定您資料庫中的哪些資料欄是準識別項。如同 k-map 估計值,Sensitive Data Protection 的風險分析 API 會模擬人口資料集,以估算攻擊者可能使用的資料集以發現誰在資料集。在前面的範例中,由於處理的是美國地點 (郵遞區號) 和個人資料 (年齡),且假設攻擊者不知道誰患有基因疾病,所以這個人口資料集可能是住在美國的所有人。
現在,您已經有準識別項和重新識別資料集,接著可以計算 δ-presence 值:如果準識別項的每個值組合在資料集中最多出現 δ * k 次,其中 k 是人口資料集中具有這些準識別項值的總人數,那您的資料就會達成具有值 δ 的 δ-presence。不同於 k-anonymity 或 k-map 中的 k,δ-presence 中的 δ 是介於 0 和 1 之間的實數。
根據這個定義,並假設在一般人口中,住在郵遞區號 85942 的兩個 72 歲的人也在我們的資料庫中,那麼只要任何 δ 小於 1,這個資料集就未達成 δ-presence。為了取得較小的 δ-presence 值,我們可將前兩列的年齡值移除:
郵遞區號 | age |
---|---|
85942 | ** |
85942 | ** |
62083 | 53 |
現在,由於有 80 人住在郵遞區號 85942,所以前兩筆記錄的 δ 值約為 2 / 80 = 2.5%;第三筆記錄的 δ 值約為 1 / 5 = 20%。因此,我們可以估算這個經過一般化的新資料集,具有約 20% 的 δ-presence 值。
δ-presence 資源
如要進一步瞭解根據統計資料估算 δ 存在狀態,請參閱普渡大學電腦科學系技術報告中,Mehmet Ercan Nergiz 和 Chris Clifton 撰寫的「δ-Presence Without Complete World Knowledge」。
如要瞭解如何透過 Sensitive Data Protection 計算 δ-presence 估計值,請參閱「計算資料集的 δ-presence」。