Loading
設定並維護您的 Salesforce 組織
決定性加密支援篩選的方式

決定性加密支援篩選的方式

依預設,Shield Platform Encryption 會使用可能性加密方式來加密資料。每次加密時,資料的每個位元都會轉換為完全隨機的加密文字字串。加密通常不會影響已獲得授權可以檢視資料的使用者。不過當在資料庫中執行邏輯,或當加密值與字串進行比較或當加密值彼此之間進行比較時除外。在這些情況下,由於資料已轉換為隨機的無模式字串,因此無法篩選。例如,您可能針對「連絡人」物件以自訂 Apex 程式碼執行 SOQL 查詢,其中 LastName = 'Smith'。如果 LastName 欄位使用可能性加密的方式加密,您無法執行查詢。而決定性加密可以解決此問題。

必要版本

提供版本:Salesforce Classic (並非所有組織均可使用) 與 Lightning Experience。
提供版本:具備 Salesforce Shield 或 Shield Platform Encryption 授權的 EnterprisePerformanceUnlimited Edition。
Developer Edition 免費提供。
備註
備註 此內容與 Shield Platform Encryption 相關。請參閱使用 Salesforce Own from Salesforce 的 Shield Extension 實作欄位級加密的資訊。

我們必須在資料中允許一些模式,才能在加密時使用篩選條件。決定性加密使用靜態初始化向量 (IV) 以使加密資料可與特定欄位值進行比對。系統無法讀取加密的資料片段,但它卻知道如何擷取代表該資料片段的加密文字,這都要歸功於靜態 IV。IV 對於指定組織中的指定欄位具唯一性,且只能使用您組織特定的加密金鑰進行加密。

我們會根據可能針對特定演算法啟動的攻擊類型,評估加密方法的相對強弱度。我們也會考慮攻擊成功可能花費的時間長度。例如,一般來說,就目前的運算能力而言,對 AES 256 位元金鑰進行暴力密碼攻擊可能花一輩子也完成不了。不過,常用作法是定期輪替金鑰。

當您遠離純隨機加密文字時,某些種類的攻擊會變得較不那麼牽強。例如,攻擊者可以想像性地分析決定性加密的加密文字,並判斷純文字字串 Alice 一律解析為加密文字 YjNkY2JlNjU5M2JkNjk4MGJiNWE2NGQ5NzI5MzU1OTcNCg==。在有充足時間竊密的情況下,攻擊者可以建立純文字值到加密文字值的字典來破解加密。

Salesforce Shield 的方法是只公開足夠的決定論,讓真正的使用者對加密的資料進行篩選,同時對其進行足夠的限制,確保特定的純文字值並不會普遍性地在所有欄位、物件或組織上導致產生相同的加密文字值。即使攻擊者成功對一個欄位比對出了加密值的純文字,攻擊者也必須對其他欄位再做一次同樣的全部動作,然後再對其他物件中的相同欄位再做一次相同動作。

這樣一來,決定性加密只會將加密強度降低到允許篩選所需要的程度。

決定性加密有兩種類型:區分大小寫與不區分大小寫。使用區分大小寫加密時,若 LastName = Jones,針對「連絡人」物件的 SOQL 查詢只會傳回 Jones,而不會傳回 jones 或 JONES。同樣地,當區分大小寫決定性方式針對單一性 (唯一性) 進行測試時,每個版本的「Jones」都是唯一的。

針對不區分大小寫,針對「商機」物件且其中 Company = Acme 的 SOQL 查詢,系統會傳回 Acme、acme 或 ACME。當不區分大小寫方式針對單一性 (唯一性) 進行測試時,每個版本的「Jones」都是唯一的。

為了支援不區分大小寫的查詢,Salesforce 會將資料的小寫重複項目儲存為資料庫中的自訂欄位。這些重複項目對於不區分大小寫的查詢是必要的,但會計入您的自訂欄位總數。例如,如果您的組織中有 200 個自訂欄位,且您選擇使用不區分大小寫決定性加密來加密一個欄位,則您的自訂欄位總數為 201。

重要
重要 可能性加密不支援「連絡人」物件的電子郵件地址欄位。若要在自助式註冊期間避免建立重複的帳戶,請使用決定性加密。
 
正在載入
Salesforce Help | Article