使用密碼編譯運算時的考量 Clean Rooms - AWS Clean Rooms

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用密碼編譯運算時的考量 Clean Rooms

Clean Rooms(C3R)的密碼編譯計算力求最大限度地提高數據保護。但是,某些使用案例可能會受益於較低層級的資料保護,以換取其他功能。您可以透過從最安全的組態修改 C3R 來進行這些特定的權衡。身為客戶,您應該瞭解這些權衡,並判斷它們是否適合您的使用案例。要考慮的權衡包括以下幾點:

如需如何為這些案例設定參數的詳細資訊,請參閱密碼計算參數

在表格中允許混合cleartext和加密資料

將所有資料都用戶端加密,可提供最大的資料保護。不過,這會限制特定類型的查詢 (例如,SUM彙總函式)。允許資cleartext料的風險在於,任何具有加密資料表存取權的人都可以推斷一些有關加密值的資訊。這可以通過對cleartext和相關數據進行統計分析來完成。

例如,假設您有City和的欄State。資City料行是cleartext且資State料行已加密。當您在CityChicago中看到該值時,可以幫助您確定高概率StateIllinois. 相比之下,如果一列是City,另一列是EmailAddress,a cleartext City 不太可能揭示有關加密的任何內容EmailAddress

如需有關此案例之參數的詳細資訊,請參閱允許cleartext欄參數

允許fingerprint列中的重複值

對於最安全的方法,我們假設任何fingerprint列只包含一個變量的一個實例。沒有項目可以在一fingerprint列中重複。C3R 加密用戶端會將這些cleartext值對應到與隨機值無法區分的唯一值。因此,不可能cleartext從這些隨機值推斷出有關的資訊。

fingerprint列中重複值的風險是重複的值將導致重複的隨機外觀值。因此,理論上,任何有權存取加密資料表的人都可以對可能揭示cleartext值相關資訊的資fingerprint料行執行統計分析。

再次,假設該fingerprint列是State,並且表格的每一行對應於一個美國家庭。通過進行頻率分析,可以推斷出哪個狀態是哪個狀態以California及哪些狀態Wyoming具有高概率。這種推斷是可能的,因為California有更多的居民比Wyoming. 相比之下,假設該fingerprint列位於家庭標識符上,並且每個家庭在數據庫中出現在數百萬條目的數據庫中 1 到 4 次之間。頻率分析不太可能會揭示任何有用的信息。

如需有關此案例之參數的詳細資訊,請參閱允許重複參數

放鬆fingerprint列的命名方式限制

根據預設,我們假設當兩個資料表使用加密fingerprint資料行聯結時,這些資料行在每個資料表中具有相同的名稱。這個結果的技術原因是,默認情況下,我們得出一個不同的加密密鑰來加密每個fingerprint列。該金鑰衍生自共同作業的共用密碼金鑰與資料行名稱的組合。如果我們嘗試連接具有不同列名的兩列,我們得出不同的鍵,我們不能計算一個有效的連接。

若要解決此問題,您可以關閉從每個欄名稱衍生索引鍵的功能。然後,C3R 加密用戶端會針對所有fingerprint資料行使用單一衍生金鑰。風險是可以進行另一種可能揭示信息的頻率分析。

讓我們再次使用CityState範例。如果我們為每fingerprint列派生相同的隨機值(通過不合併列名)。 New YorkCity和欄中具有相同的隨機State值。紐約是美國少數幾個城市之一,其City名稱與State名稱相同。相反地,如果您的資料集在每個資料欄中具有完全不同的值,則不會洩漏任何資訊。

如需有關此案例之參數的詳細資訊,請參閱允許具有不同名稱參數JOIN的列

確定NULL值的表示方式

您可以使用的選項是是否像處理任何其他值一樣處理加密(加密和 HMAC)NULL值。如果您不像處理任何其他NULL值一樣處理值,則可能會顯示資訊。

例如,假設NULL在Middle Name欄中cleartext指示沒有中間名的人。如果您不加密這些值,則會洩漏加密資料表中的哪些資料列用於沒有中間名的人員。對於某些人群中的某些人來說,這些信息可能是一種識別信號。但是,如果您執行密碼編譯處理NULL值,則某些 SQL 查詢的行為會有所不同。例如,子GROUP BY句不會將fingerprint欄中的fingerprintNULL值分組在一起。

如需有關此案例之參數的詳細資訊,請參閱保留NULL值參數