Sql-Server

我的系統如何理解數據是否被屏蔽?

  • February 18, 2021

encryption我試圖理解和之間的區別masking

下面的聲明說real data replaced and gone

屏蔽通過將數據轉換為對任何竊取數據的人都無用的可讀格式來保護您的數據。實際數據被虛構資訊取代。沒有加密解決方案可以將數據恢復到其原始狀態。真實數據被替換並且永遠消失了。

這是什麼意思?如果真實數據消失了,那麼我如何在我的系統中使用它?

例如:

我可能被屏蔽EMAILID了,我的系統想要根據電子郵件 ID 做一些邏輯,那麼我如何在程式碼中比較電子郵件 ID?

基本上,如果我不使用敏感數據,為什麼我首先將它儲存在我的數據庫中?

數據屏蔽發生在數據發送到客戶端(您的程序、SSMS 等)之前。從這個意義上說,當它到達請求數據查看它的客戶端時,它被“替換並消失”(假設訪問數據的使用者沒有UNMASK權限)。因此,您可以在查詢中對其執行邏輯(對它應用 where 子句、更新它等)。但是,如果您將其包含在SELECT語句中,您將看不到真實數據。

但是,數據仍然未加密地儲存在伺服器上。UNMASK事實上,即使您沒有權限,您也可以使用這些知識來準確找出表中的數據。請在此處查看 Joe Obbish 關於該主題的精彩文章:Dynamic Data Unmasking

這與“始終加密”之類的區別在於,僅儲存數據的加密版本,並且必須使用密鑰來解密和使用/查看數據。

除了喬希的回复:

在某些情況下,將數據儲存為遮罩是有意義的。這與在 SQL Server 中使用“動態數據屏蔽”功能(如 Josh 所述)形成對比。

例如,您將數據從生產數據庫導出到開發數據庫。某些資訊不應該提供給開發人員。因此,在數據到達開發伺服器之前,我們將信用卡號系列中的一組數字替換為星號。

在開發伺服器上獲取“真實”數據當然是不可能的,因為它從一開始就不存在——這就是我們的目的!

引用自:https://dba.stackexchange.com/questions/285626