ENCRYPTION / HOW IT WORKS
加密如何運作,
又能保護什麼?
價值不僅取決於演算法名稱。關鍵在於如何將資料持有方與可讀取資料的主體分離。
同樣叫加密,保護範圍可能不同。
以收貨地址儲存為例,傳輸、磁碟及資料加密保護不同的邊界。
- 傳輸加密 / TLS
- 保護瀏覽器與伺服器之間的通訊。接收伺服器仍可處理地址,TLS 不會自動保護資料庫內容或被攻破的應用。
- 儲存加密
- 防範磁碟及備份介質被盜。如果資料庫在普通讀取時透明解密,擁有 SQL 讀取許可權的使用者仍可檢視地址。
- 儲存前加密
- 在應用中加密地址後儲存密文。分離資料庫讀取許可權與金鑰使用許可權,可防範僅資料庫被盜的情況。
OneNym 將這些保護層與按用途授權結合。強密碼技術很重要,限制解密路徑同樣重要。
實作會在記憶體解密整筆地址,再僅回傳允許欄位,並非逐欄位加密。接收方須管理取得的明文,客戶也須管理註冊前系統的記錄與儲存。 使用與導入指南
用獨立金鑰保護資料金鑰。
DEK 加密地址,KEK 保護 DEK,這稱為信封加密。以下示例為每個地址使用專屬 DEK。
- 使用密碼學安全的隨機源生成 DEK,並以認證加密保護地址。
- 使用金鑰管理服務中的 KEK 封裝 DEK。封裝透過加密保護金鑰。
- 儲存密文、封裝的 DEK、金鑰版本及解密後設資料。不要在資料庫中儲存明文 DEK。
- 需要地址時,按租戶、用途、記錄及欄位授權。
- 獲准服務解封 DEK,解密地址,僅回傳獲准欄位。
資料庫 金鑰管理服務
加密地址 保護 DEK 的 KEK
封裝的 DEK 金鑰使用許可權與審計
Nonce / 標籤 / 金鑰版本
↓ 獲准服務存取兩者
臨時解密 → 配送處理
即使 KEK 不可匯出,使用許可權被盜後仍可能被濫用。應分離資料庫與 KMS 存取、管理、緊急操作及服務憑據,也要保護解密後的記憶體與金鑰快取。
透過雲端金鑰服務管理 KEK。
地址 Vault 使用 Azure Key Vault 管理 KEK,將保護資料加密金鑰(DEK)的金鑰使用權限與資料庫存取分離。
雲端服務控制金鑰及密碼操作存取。OneNym 先按租戶、記錄、欄位和用途授權。業務應用獲得有限的 Vault API 許可權,而非直接存取 KEK。
雲端金鑰服務與 OneNym 的職責 →兩種不同的金鑰輪換。
輪換 KEK 可重新封裝 DEK,而不改變資料密文。DEK 被攻破時需用新 DEK 重新加密資料。輪換無法回收被盜明文或舊金鑰與密文副本。
不僅保護機密性,還檢測替換攻擊。
AES-GCM 等認證加密透過認證標籤檢測密文變化,驗證失敗必須拒絕。即使跨重試或多臺伺服器,也絕不能在同一 AES-GCM 金鑰下重複使用 nonce。
將租戶 ID、記錄 ID 和模式版本繫結為附加認證資料(AAD)。將 A 租戶密文複製到 B 租戶記錄時,以預期的 B 租戶上下文驗證將失敗。
AAD 不加密,不應包含私密地址。預期 ID 必須來自已驗證請求及可信記錄。若信任與替換密文一同提供的 ID,就無法保持邊界。
發生入侵後,哪些內容仍受保護?
- 僅資料庫副本被盜
- 沒有明文金鑰及其他明文副本時,正確加密可保護地址內容。數量、ID、時間及大小等後設資料的暴露需單獨評估。
- 資料庫與解密許可權同時被攻破
- 僅靠加密無法阻止存取。透過範圍限定授權、使用控制、異常檢測及撤銷限制影響。
- 配送伺服器被攻破
- 合法處理中解密的地址可能被盜。不回傳超出配送需要的欄位。
- 地址已傳送給合作方
- 撤銷保險庫金鑰不會刪除已共享明文,還需管理合作方的留存與刪除。
部署前應提出的問題。
不僅問是否使用 AES,還應問誰可使用金鑰、解密範圍是否受限、使用是否審計、撤銷多久傳播到快取、如何處理金鑰丟失。保護邊界及運維證據有助於評估。
技術參考資料
有關加密與金鑰管理的一般原則,請參閱 OWASP 密碼學儲存速查表;有關金鑰層級,請參閱 Microsoft 靜態資料加密指南。本頁說明 OneNym 的保護設計;每記錄金鑰為示例配置。
諮詢技術整合