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)時執行加密。