本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將密碼編譯運算用於 時的考量 Clean Rooms
適用於 Clean Rooms(C3R) 的加密運算力力求最大化資料保護。不過,某些使用案例可能受益於較低層級的資料保護,以換取其他功能。您可以從最安全的組態修改 C3R,藉此做出這些特定的權衡。身為客戶,您應該了解這些權衡,並判斷它們是否適合您的使用案例。要考慮的權衡包括下列項目:
如需如何設定這些案例參數的詳細資訊,請參閱密碼編譯運算參數。
允許資料表中的混合cleartext和加密資料
所有資料都經過用戶端加密,可提供最大的資料保護。不過,這會限制特定類型的查詢 (例如,SUM彙總函數)。允許cleartext資料的風險是,具有加密資料表存取權的任何人都可以推斷一些有關加密值的資訊。這可以透過對 cleartext和相關聯的資料執行統計分析來完成。
例如,假設您有 City
和 的資料欄State
。資料City
欄為 cleartext,且資料State
欄已加密。當您Chicago
在 City
欄中看到 值時,這可協助您以高機率判斷 State
為 Illinois
。相反地,如果一個資料欄是 City
,而另一個資料欄是 EmailAddress
,則 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資料欄使用單一衍生金鑰。風險是可以完成另一種可能洩露資訊的頻率分析。
讓我們再次使用 City
和 State
範例。如果我們為每個fingerprint資料欄衍生相同的隨機值 (透過不合併資料欄名稱)。 在 City
和 資料State
欄具有New York
相同的隨機值。紐約是美國少數幾個城市之一,其City
名稱與State
名稱相同。相反地,如果您的資料集在每個資料欄中具有完全不同的值,則不會洩漏任何資訊。
如需此案例參數的詳細資訊,請參閱 允許具有不同名稱參數JOIN的資料欄。
判斷NULL值的呈現方式
您可用的選項是是否像任何其他NULL值一樣,以密碼編譯方式處理 (加密和 HMAC) 值。如果您不像任何其他NULL值一樣處理值,可能會顯示資訊。
例如,假設 NULL 的 Middle Name
欄中的 cleartext表示沒有中間名的人員。如果您不加密這些值,則會洩漏加密資料表中的哪些資料列用於沒有中間名的人員。該資訊可能是某些人口中某些人的識別訊號。但是,如果您以密碼編譯方式處理NULL值,則某些 SQL 查詢的運作方式會有所不同。例如,GROUP BY子句不會將fingerprint資料欄中fingerprintNULL的值分組在一起。
如需此案例參數的詳細資訊,請參閱 保留NULL值參數。