此FAQ來源于官網鏈接。此為新版,老版的博客參見Oracle TDE(Transparent Data Encryption) 常見問題解答。
通用問題
透明數據加密 (TDE) 提供什么功能?
TDE 以透明方式加密 Oracle 數據庫中的靜態數據。它可以阻止操作系統未經授權嘗試訪問存儲在文件中的數據庫數據,而不會影響應用程序使用 SQL 訪問數據的方式。TDE 可以加密整個應用程序表空間或特定的敏感列。TDE 與 Oracle 數據庫完全集成。加密數據在數據庫中保持加密狀態,無論是在表空間存儲文件、臨時表空間、撤消表空間中,還是 Oracle 數據庫所依賴的其他文件(如重做日志)中。此外,TDE 還可以加密整個數據庫備份 (RMAN) 和數據泵導出。
TDE 對業務應用程序有多透明?
TDE 對業務應用程序透明,不需要更改應用程序。加密和解密發生在數據庫存儲級別,不會影響應用程序使用的 SQL 接口(無論是入站 SQL 語句還是出站 SQL 查詢結果)。
請注意,TDE 已通過認證,可用于常見的打包應用程序。這些認證主要用于分析不同應用程序工作負載下的 TDE 性能,以及獲取應用程序部署技巧、腳本和最佳實踐。一些應用程序供應商會進行更深入的集成,并使用自己的工具包提供 TDE 配置步驟。
我應該使用 TDE 列加密還是 TDE 表空間加密?
我們的建議是使用 TDE 表空間加密。在大多數情況下,TDE 表空間加密具有更好、更一致的性能特征。此外,表空間加密尤其利用基于硬件的加密加速(如果可用),將性能影響進一步降至“接近零”的范圍。自 Oracle Database 11g Release 2 Patchset 1 (11.2.0.2) 起,支持基于硬件的加密加速,適用于配備 AES-NI 和現代 Oracle SPARC 處理器的 Intel 芯片組。
有關特定于您的 Oracle Database 版本的 TDE 列加密的更多詳細信息,請參閱此處提供的 Oracle Database 產品文檔中“安全性”下的“高級安全指南”。
TDE 的相關開銷是多少?
TDE 表空間加密 (Oracle Database 11g+) | |
---|---|
存儲 | 無額外存儲開銷。 |
性能 | 根據內部基準測試和運行生產工作負載的客戶的反饋,性能開銷通常為個位數。從 Oracle Database 11g Release 2 Patchset 1 (11.2.0.2) 開始,TDE 表空間加密會自動利用最新 Intel 處理器中提供的基于 AES-NI 的硬件加密加速,從而使 TDE 表空間加密成為“幾乎零影響”的加密解決方案。 |
是否可以使用第三方加密算法代替 TDE 提供的算法?
不,無法插入其他加密算法。Oracle 提供被廣泛接受的加密算法,并將在新標準算法可用時添加它們。
從 Oracle Database 18c 開始,您可以創建用戶定義的主加密密鑰,而不必要求始終在數據庫中生成 TDE 主加密密鑰。這在業界通常被稱為自帶密鑰 (BYOK)。
TDE 支持哪些數據類型和數據長度?
TDE 表空間加密沒有任何限制。
有關 TDE 列加密限制的信息,請參閱此處提供的 Oracle Database 產品文檔“安全性”下的“高級安全指南”部分,標題為“關于加密表中的列”。
數據在網絡上是否保持加密狀態?
使用 TDE 加密的數據在從數據庫文件讀取時會被解密。如果這些數據在網絡上傳輸,它將以明文形式傳輸。但是,傳輸中的數據可以使用 Oracle 的本機網絡加密或 TLS 進行加密。這將加密通過 SQL*Net 往返于 Oracle 數據庫的所有數據。
我如何知道要加密哪些數據?
了解數據庫中存儲了哪些敏感數據總是好的,為此,Oracle 提供了 Oracle 數據庫安全評估工具、企業管理器應用程序數據建模,或者如果您在云中擁有 Oracle 數據庫 - 數據安全。此標識是應用進一步控制來保護數據的關鍵,但對于啟動加密項目而言并非必不可少。由于芯片組的最新進展加速了加密/解密操作、監管環境不斷發展以及哪些數據被視為敏感數據的概念不斷發展,大多數客戶選擇使用表空間加密來加密所有應用程序數據,并將主加密密鑰存儲在 Oracle Key Vault 中。
TDE 與 Oracle 已經提供的加密工具包有何不同?
DBMS_CRYPTO 包可用于手動加密數據庫中的數據。但是,應用程序必須管理加密密鑰并通過調用 API 執行所需的加密和解密操作。這種方法需要付出大量努力來管理,并且會產生性能開銷。TDE 表空間加密不需要更改應用程序,對最終用戶透明,并提供自動化的內置密鑰管理。
秘鑰管理
TDE 加密密鑰是如何管理的?
TDE 列加密和 TDE 表空間加密均使用基于密鑰的兩層架構。未經授權的用戶(例如試圖進行安全攻擊的入侵者)無法從存儲和備份媒體讀取數據,除非他們擁有解密數據的 TDE 主加密密鑰。
TDE 主加密密鑰存儲在外部安全模塊(軟件或硬件密鑰庫)中。默認情況下,TDE 將其主密鑰存儲在 Oracle Wallet(基于 PKCS#12 標準的密鑰存儲文件)中。錢包為少量加密數據庫提供了簡單的解決方案。擁有許多 Oracle 數據庫和其他加密 Oracle 服務器的客戶可以許可并使用 Oracle Key Vault,這是一種安全強化的軟件設備,可為企業提供集中式密鑰和錢包管理。它使用行業標準 OASIS 密鑰管理互操作性協議 (KMIP) 進行通信。客戶可以保留本地 Oracle 錢包和 Java 密鑰庫,使用 Key Vault 作為中心位置定期備份它們,或者他們可以完全從環境中刪除密鑰庫文件,轉而使用始終在線的 Key Vault 連接。Key Vault 和數據庫服務器之間的所有網絡連接都使用 SSL/TLS 進行加密和相互認證。TDE 主密鑰可以根據您的安全策略定期輪換,無需停機,也無需重新加密任何存儲的數據。歷史主密鑰保留在密鑰庫中,以防以后必須恢復加密的數據庫備份。密鑰庫中的主密鑰使用一組 SQL 命令進行管理(在 Oracle Database 12c 中引入)。為了分工,只有擁有新的 SYSKM 管理權限或更高權限的安全管理員才能訪問這些命令。除了使用 SQL 命令之外,您還可以使用 Oracle Enterprise Manager 12c 或 13c 管理 TDE 主密鑰。
標準與合規性
TDE 可以使用哪些加密算法?
TDE 支持 AES256、AES192(TDE 列加密的默認算法)、AES128(TDE 表空間加密的默認算法)、ARIA128、ARIA192、ARIA256、GOST256、SEED128 和 3DES168。
TDE 使用哪些行業標準?
TDE 主密鑰管理使用 PKCS#12 和 PKCS#5 等標準作為 Oracle Wallet 密鑰庫。Oracle Key Vault 使用 OASIS 密鑰管理互操作性協議 (KMIP) 和 PKCS #11 標準進行通信。客戶可以選擇 Oracle Wallet 或 Oracle Key Vault 作為其首選密鑰庫。
TDE 擁有哪些安全認證和驗證?
TDE 在 Oracle Database 19c 中使用的加密庫已通過美國 FIPS 140-2 驗證。請參閱此處獲取該庫的 FIPS 140 證書(搜索文本“Crypto-C Micro Edition”;TDE 使用版本 4.1.2)。此外,請參閱此處獲取有關 Oracle Database 認證和驗證的最新摘要信息。
跨組件集成
TDE 如何與 Oracle Exadata 集成?
TDE 表空間加密利用 Oracle Exadata 進一步提高性能。例如,Exadata Smart Scans 可在多個存儲單元之間并行執行加密處理,從而加快對加密數據的查詢速度。TDE 還受益于 Exadata 中服務器處理器對硬件加密加速的支持。TDE 與 Exadata 混合列壓縮 (EHCC) 的集成首先壓縮數據,通過大大減少要加密和解密的數據總量來提高加密性能。
TDE 可以與其他靜態數據加密技術搭配使用嗎?
Oracle 提供了其他靜態數據加密技術,可以與 TDE 搭配使用,以保護非結構化文件數據、非 Oracle 數據庫的存儲文件等,如下表所示。
其他加密技術
用例 | Oracle 技術 |
---|---|
使用 Oracle 文件系統和操作系統加密文件(非表空間) | Oracle ZFS - 適用于 Solaris 和其他操作系統的加密文件系統 Oracle ACFS - 在 Oracle 自動存儲管理 (ASM) 上運行的加密文件系統 Oracle Linux 本機加密模塊,包括 dm-crypt 和 eCryptFS |
使用 Oracle 數據庫加密文件(非表空間) | Oracle 安全文件與 TDE 結合使用。對安全文件 LOB 的支持是數據庫的核心功能 |
在數據庫層以編程方式加密數據 | Oracle 數據庫包加密工具包 (DBMS_CRYPTO),用于使用 PL/SQL 加密數據庫列 |
在應用程序層以編程方式加密數據 | Oracle Java (JCA/JCE),應用程序層加密可能會限制數據庫的某些查詢功能。提前考慮是否適合您的用例 |
Oracle 提供了在應用程序層加密敏感數據的解決方案 - 盡管這對數據庫有影響,您必須提前考慮(請參閱此處的詳細信息)。請注意,TDE 是唯一推薦的解決方案,專門用于加密存儲在 Oracle 數據庫表空間文件中的數據。
Oracle RMAN 如何處理加密數據?
Oracle 透明數據加密和 Oracle RMAN
應用程序數據 | 使用 RMAN 壓縮進行備份 | 使用 RMAN 加密進行備份 | 使用 RMAN 壓縮和加密進行備份 |
---|---|---|---|
未加密 | 數據壓縮 | 數據加密 | 先壓縮數據,然后加密 |
使用 TDE 列加密進行加密 | 數據壓縮;加密列被視為未加密 | 數據加密;加密列雙重加密 | 先壓縮數據,然后加密;加密列被視為未加密;加密列雙重加密 |
使用 TDE 表空間加密進行加密 | 加密表空間被解密、壓縮并重新加密 | 加密表空間不加改變地傳遞到備份 | 加密表空間被解密、壓縮并重新加密 |
無論使用 TDE 主加密密鑰還是密碼來加密文件,都需要 Oracle Advanced Security 許可證才能將 RMAN 備份加密到磁盤。
可傳輸表空間是否適用于 TDE 表空間加密?
可以,但需要將包含主密鑰的錢包復制(或提供,例如使用 Oracle Key Vault)到輔助數據庫。如果移動了表空間并且主密鑰不可用,則輔助數據庫在訪問表空間中的數據時將返回錯誤。
壓縮是否適用于 TDE?
使用 TDE 表空間加密的客戶可以充分利用壓縮(標準和高級壓縮,以及 Exadata 混合列壓縮 (EHCC)),因為壓縮是在數據塊加密之前應用的。使用 TDE 列加密的客戶只能在未加密的表列上充分利用壓縮。使用 TDE 列加密加密的單個表列的壓縮級別要低得多,因為加密是在高級壓縮過程之前在 SQL 層進行的。
最佳實踐
如何將現有的明文數據遷移到 TDE 加密數據?
TDE 提供多種技術將現有的明文數據遷移到加密表空間或列。在線和離線遷移均有解決方案。現有表空間可以在生產系統上進行在線加密,無需停機,也可以在維護期間進行離線加密,無需存儲開銷。在線表空間轉換在 Oracle Database 12.2.0.1 及更高版本上可用,而離線表空間轉換已在 Oracle Database 11.2.0.4 和 12.1.0.2 上反向移植。
或者,您可以使用 Oracle Online Table Redefinition (DBMS_REDEFINITION) 將現有的明文數據復制到新的加密表空間中。它在后臺進行復制,無需停機。此方法適用于 11g 和 12c 數據庫。此方法包括 Oracle Database 12c 產品文檔中描述的某些限制。使用 Oracle Data Guard 的客戶可以使用 Data Guard 和 Oracle Data Pump 加密現有的明文數據,幾乎無需停機(請參閱此處的詳細信息)。此過程首先在備用服務器上加密(使用 DataPump 導出/導入),然后切換,最后在新的備用服務器上加密。數據庫停機時間僅限于執行 Data Guard 切換所需的時間。沿途的多個同步點會從過程中執行的查詢中捕獲數據更新。如果您計劃在計劃維護期間離線遷移到加密表空間,則可以使用 Data Pump 進行批量遷移。您還可以使用 SQL 命令(例如 ALTER TABLE MOVE、ALTER INDEX REBUILD(用于移動索引)和 CREATE TABLE AS SELECT)來遷移單個對象。使用 TDE 列加密,您可以使用單個 SQL 命令(例如 ALTER TABLE MODIFY)在后臺加密現有的清除列。這是一個完全在線的操作。
其他問題
TDE 能否使用 PKSC11 接口將其主加密密鑰存儲在外部設備中?
從 Oracle Database 11g Release 2 開始,Oracle Advanced Security 透明數據加密 (TDE) 的客戶可以選擇使用 PKCS11 接口將 TDE 主加密密鑰存儲在外部設備中。在此設置中,主密鑰直接存儲在第三方設備中,而不是存儲在隨附的 Oracle Wallet 中。
使用 PKCS11 時,第三方供應商提供存儲設備、PKCS11 軟件客戶端庫、從設備到 PKCS11 客戶端(在數據庫服務器上運行)的安全通信、身份驗證、審計和其他相關功能。供應商還負責測試并確保 TDE 主加密密鑰在各種數據庫服務器環境和配置中的高可用性。客戶應聯系設備供應商以獲取有關任何相關問題的幫助。
TDE 如何獲得許可?
TDE 是 Oracle Advanced Security 的一部分,其中還包括數據編輯。它作為 Oracle Database Enterprise Edition 的附加許可選項提供。在 Oracle 自治數據庫和數據庫云服務中,它默認已包含、配置和啟用。
在哪里可以了解有關 TDE 的更多信息?
有關 TDE 優勢的更多信息,請參閱 Oracle 技術網絡上的產品頁面。此頁面上提供了各種有用的信息,包括產品數據表、客戶參考、視頻、教程等。
有關特定 Oracle 數據庫版本的更多最佳實踐,請參閱此處提供的 Oracle 數據庫產品文檔中“安全性”下的“高級安全指南”。
參考
- Quick TDE Setup and FAQ (Doc ID 1251597.1)