Sql-Server
在 SQL Server 2016 中,始終加密和透明數據加密有什麼區別?
在我寫這篇文章時,我仍在等待 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 安全/證書/密鑰管理員,換句話說,只要這兩個組不串通,您就可以分開責任)
但是有一個限制,那就是並非所有驅動程序和應用程序都可以直接處理加密數據,因此在某些情況下,這將需要更新/更改驅動程序和/或修改程式碼。