Sql-Server

在 SQL Server 2016 中,始終加密和透明數據加密有什麼區別?

  • April 14, 2017

在我寫這篇文章時,我仍在等待 SQL Server 2016 的正式發布,以便我們可以探索其“始終加密”功能的實用性。

我想知道 SQL Server 2016 中 Always Encrypted 和目前可用的透明數據加密之間的具體區別是什麼,以便我們可以為未來的項目做出正確的決定。

與始終加密相比,透明數據加密的缺點:

  • 僅保護靜態數據 - 備份和數據文件是“安全的”,但動態或記憶體中的數據易受攻擊

  • 僅整個數據庫

  • 所有數據都以相同的方式加密

  • 備份壓縮可能需要更長的時間並且會適得其反

    • 好吧,實際上,SQL Server 2016 中有一些改進,這些改進與我們通常所知道的嘗試壓縮加密數據的做法背道而馳——它比以前的版本要好得多,但可能比只加密少數列更糟糕(未經測試)
  • tempdb 也繼承了加密——即使在禁用 TDE 後仍然存在

  • 需要企業版

  • 系統管理員始終可以訪問數據

Always Encrypted 部分或全部解決了所有這些問題:

  • 數據在靜態、動態和記憶體中都受到保護 - 對證書、密鑰以及誰可以解密數據進行更多控制

  • 可以只是一列

  • 加密類型是一種選擇:

    • 可以使用確定性加密來支持索引和點查找(例如 SSN)
    • 可以使用隨機加密來獲得更高的保護(例如,信用卡號)
  • 由於它不是數據庫範圍的,因此備份壓縮不一定會受到影響 - 當然,您加密的列越多,您的運氣就越差

  • tempdb 不涉及

  • 自 SQL Server 2016 Service Pack 1 起,Always Encrypted 現在適用於所有版本

  • 可以保護數據免受系統管理員的影響(但不能保護系統管理員和 Windows 安全/證書/密鑰管理員,換句話說,只要這兩個組不串通,您就可以分開責任)

但是有一個限制,那就是並非所有驅動程序和應用程序都可以直接處理加密數據,因此在某些情況下,這將需要更新/更改驅動程序和/或修改程式碼。

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