隨著內部洩密佔比超 80%,資料庫加密成為堵塞「繞過 DBMS 直接讀取文件」隱秘通道的關鍵手段。本文系統闡述加密必要性、基本要求、三層實現架構(OS層/內核層/外層)、關鍵技術問題與系統結構設計。
一、為何必須加密
- OS(C1/C2 級)與 DBMS 權限控制均無法防範拥有 OS 權限的內部人員直接拷貝/篡改數據文件。
- 加密後 DBA 僅見密文,無法解密業務敏感字段,實現職責分離。
- 備份介質遺失僅洩露密文,大幅降低損失。
- 性能影響可控:客戶端軟體 DES 加密 >200KB/s,單次查詢延遲 <0.2秒;硬體加密卡 1Mbps 滿足中小型業務。
二、良好加密系統的四大基本要求
- 字段級加密:以記錄字段為粒度,支援「一次一密」,避免密鑰重用導致密碼分析風險。
- 動態密鑰管理:應對複雜邏輯關係,實現密鑰全生命週期自動化分發、輪換、銷毀。
- 合理處理數據類型與存儲:加密後符合原欄位類型、長度基本不增長;索引/連接鍵不加密,全文檢索字段可選加密。
- 對合法用戶透明:平均延遲 <0.1秒,插入/修改/查詢無感知,無需修改應用代碼。
三、三種實現層次對比
| 層次 | 優點 | 缺點 | 可行性 |
| OS 層 | 透明度高 | 無法識別邏輯結構,難以管理密鑰 | 大型資料庫難實現 |
| DBMS 內核層 | 功能強、不影響 DBMS 功能 | 需廠商介面支援,服務端加密增加負載 | 依賴廠商合作 |
| DBMS 外層(推薦) | 客戶端加密不增服務負載、支援網傳加密、獨立於應用 | 功能受限(如無法加密索引欄位) | 工程可行性最高 |

四、加密系統核心組件與安全措施
1. 系統結構
- 加密字典管理程序:定義每張表各字段加密策略,管理基礎元數據。
- 資料庫加/解密引擎:核心組件,後台透明完成加解密,採用分組加密+二級密鑰管理實現「一次一密」。

2. 關鍵安全措施
- 雙因子準入:資料庫帳號密碼 + IC 卡/指紋識別。
- 防非法拷貝:軟指紋或硬體加密狗綁定。
- 保留原有權限控制、備份恢復、審計功能。
- 雙模式導出:密文模式(直接用 DBMS 工具)與明文模式(專用工具解密後導出)。
五、總結
外層加密系統對用戶透明、不改應用、客戶端運算不拖垮服務端、分組加密+二級密鑰確保強度。即使數據被竊,無密鑰亦無法還原;DBA 不見明文,大幅提升核心數據安全性。建議納入企業資安建設標準體系。