拿走磁盤也甭想讀數據——透明加密保安全
透明加密是什么?
透明加密(Transparent Data Encrytion,TDE)是用來加密數據庫文件的技術。TDE在數據庫文件級別提供加密,在磁盤和備份介質上加密數據庫,解決了靜態數據保護問題。TDE不會保護傳輸階段的數據(比如客戶端與服務端傳輸的數據)和使用中的數據(在非持久化介質中的數據,比如在內存、CPU cache,CPU寄存器中的數據)。
為什么需要透明加密?
當文件系統訪問控制受到威脅時,TDE可以防止數據泄露:
惡意用戶會竊取存儲設備并直接讀取數據庫文件。
惡意備份操作員進行備份。
解決合規性問題,比如PCI DSS(支付卡行業數據標準)。
透明加密的粒度分析
加密對象的粒度
數據庫集群
數據庫
表空間
表
列
表的集合比如schema
集群范圍加密
好處
架構簡單
密鑰管理簡單
適用于所有加密需求(用戶表、系統表、索引等對象)
不足
加密所有數據庫對象帶來的性能開銷
單個密鑰加密整個集群,單個密鑰加密的數量大。
密鑰更新需要重建整個集群
細粒度加密
好處
減少性能開銷
減少單個密鑰加密的數據量(使密碼分析更困難,即使幸運拿到了密鑰,較少的數據風險)
重新加密或者密鑰更新不需要重建整個數據庫集群
不足
密鑰管理比較復雜
通過查找加密表的密鑰引入了新的性能開銷
GaussDB(DWS)的實現
三層密鑰結構,集群級加密。在創建集群時啟用加密。當選擇KMS(密鑰管理服務)對DWS進行密鑰管理時,加密密鑰層次結構有三層。按層次結構順序排列,這些密鑰為主密鑰(CMK)、集群加密密鑰 (CEK)、數據庫加密密鑰 (DEK)。
主密鑰用于給CEK加密,保存在KMS中。
CEK用于加密DEK,CEK明文保存在DWS集群內存中,密文保存在DWS服務中。
DEK用于加密數據庫中的數據,DEK明文保存在DWS集群內存中,密文保存在DWS服務中。
密鑰更新通過更新CEK來實現,不更新數據加密密鑰DEK,避免重建數據庫的性能開銷。
其他系統中的TDE
PG社區的實現(預計在2021年的PG14)
集群范圍的加密
內部密鑰管理系統(KMS),將密鑰存儲在數據庫中
加密所有持久化數據,不加密內存中的共享緩沖區數據
MySQL(InnoDB)
支持表空間級TDE。在MySQL中,表空間是指可以保持一個或多個表以及與表關聯的索引的數據的文件。
支持兩層密鑰結構,為每個表空間使用一個密鑰,該密鑰位于表空間文件的頭部。
主密鑰用于保護表空間密鑰,通過插件從外部系統獲取。
支持redo和undo日志加密和系統表加密。使用專有密鑰而不是表空間密鑰對每一頁的redo和undo日志加密。日志加密密鑰以加密狀態存儲在第一個redo/undo日志文件的頭部。
Oracle
Oracle支持列級和表空間級TDE。
使用兩層秘鑰結構。
主加密秘鑰(MEK)存儲在外部密鑰存儲中,用于保護列級和表空間級密鑰。
列級TDE為每個表使用一個密鑰,表空間級為每個表空間使用一個密鑰。
支持3DES和AES(128,192、256)加密算法。列級別TDE默認為AES192,表空間級別TDE默認為AES128。
SQL Server
支持三層密鑰結構的數據庫級TDE。
服務主密鑰(SMK)在安裝過程中自動生成的(如postgres中的initdb)。
數據庫主密鑰(DMK)是在master數據庫(如postgres默認數據庫)中創建,并由SMK加密。
DMK用于生成實際用于數據加密密鑰(DEK)的證書。DEK是每個數據庫的秘鑰,用戶加密數據和日志文件。
EI企業智能 數據倉庫服務 GaussDB(DWS) Gauss AP 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。