SQL 2016 欄位加密

Gemalto Network HSM

微軟在 SQL Server 2016 新增「Always Encrypted」欄位式加密模組功能,
資料在應用程式端傳送 到 SQL Server 時,經由擴充 ADO.NET 函式庫將資料加密,
主要用來防止開發人員或未經授權的使用 者,有意或無意去窺探不該看的資料。


Always Encrypted 主要使用兩種金鑰做到欄位加密,
資料(Data)加解密會在AP端 ADO.NET 應用程式執行,
資料庫只負責提供被加密的CEK以及存取AP加密後的資料。
AP 加 密 資 料 時 會 使 用 CEK 對 資 料 進 行 加 密,
這把CEK會在實際交易前從資料庫取回,且CEK是被加密的狀態;
接著AP端從 SafeNet Luna Network HSM 中取得 CMK 並解密CEK,
進行資料的寫入加密、讀取解密。

欄位加密 - Always Encrypted

資料寫入並select出明文


SSN與BirthDate欄位資料已被加密

解決方案優點

  • 支援動態加密(RANDOMIZED)、固定加密(DETERMINISTIC)。
  • HSM 連線白名單授權信任 AP存取金鑰 (NTLS 連線)。
  • 欄位主金鑰(CKM)保存於HSM中。
  • HSM通過 FIPS 140-2 Level 3認證可保護主金鑰。
  • 只有受信任的AP才可存取HSM金鑰並解密資料。
  • 插入資料 (Insert Data)時執行加密。

下載SQL2016欄位加密型錄