数据安全架构设计与实战~如何加密结构化数据
針對結構化數據(數據庫、key-value等),加密主要有兩種方式:
1、應用層字段加密,數據在入庫前加密,直接向數據庫中寫入字段密文;
2、存儲系統透明加密(靜態加密),加密僅在存儲系統內部自動完成,應用系統使用明文。
每種方式分別又有兩種管理密鑰的方式:
1、自管理密鑰;
2、配合KMS(Key Management System,密鑰管理系統)。
加密方式對比
| 加密方式 | 密鑰管理方式 | 優缺點 |
| 字段加密 | KMS | 應用系統需要改進且改進難度較大; 最安全,可以防止DBA泄密 |
| 應用自管理 | 應用系統需要改進且改進難度較大; 可以防止DBA泄密,但入侵可能導致加密密鑰泄露,安全性次之 | |
| 靜態加密 | KMS | 應用系統不需要改進,存儲系統改進后適合大規模推廣; 用于結構化數據加密時,不能防止DBA泄密; 用于非結構化數據(文件等)加密時,配合權限控制,安全性較好 |
| 存儲自管理 | 應用系統不需要改進,存儲系統改進后一般自用,不適合大規模推廣; 安全性中等,不能防止DBA泄密 |
一個安全的加密系統,至少需要二級的加密機制。推薦的最低加密方式就是至少使用兩種密鑰:
DEK(Data Encryption Key,數據加密密鑰):即對數據進行加密的密鑰;
KEK(Key Encryption Key,密鑰加密密鑰):即對DEK進行加密的密鑰。
?對于DEK,應具備:
1、每條記錄均使用不同的DEK(隨機生成);
2、DEK不能明文存儲,需要使用KEK再次加密;
3、DEK在加密后建議隨密文數據一起存儲,可用于大數據場景。當只有少量的DEK且預計不會增長時,才考慮存儲KMS(不推薦)。
對于KEK,應具備:
1、每個應用或每個用戶在每個應用中應該使用不同的KEK;
2、KEK加密存儲在KMS系統中,不隨密文數據一起存儲。
總結
以上是生活随笔為你收集整理的数据安全架构设计与实战~如何加密结构化数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jackson第一篇【JSON字符串、实
- 下一篇: BPP 相关——01