透明數據加密 (TDE)常見問題解答

透明數據加密 (TDE)常見問題解答
問題
任何人只要有權訪問加密數據就能對其進行解密嗎?
TDE 會帶來哪些開銷?
哪些加密算法可與 TDE 一同使用?
可使用第三方加密算法代替 TDE 提供的算法嗎?
能夠對外鍵約束中使用的列採用 TDE 列加密嗎?
能夠對聯接中使用的列進行加密嗎?
能夠對已建索引的列進行加密嗎?
TDE 列加密支持哪些數據類型和數據長度?
數據在網絡上傳輸時仍處於加密狀態嗎?
數據庫內存 (SGA) 中包含的是明文數據仍是加密數據?
如何知道要加密哪些數據呢?
須要加密的數據都在哪裏?
對於 Oracle Database 11gR1,什麼時候使用 TDE 列加密或 TDE 表空間加密?
TDE 與 Oracle 早前提供的加密工具包有何不一樣?
如何得到 TDE 許可?
錢夾管理
什麼是錢夾?
如何保護 TDE 錢夾?
能否使用 Oracle Wallet Manager (OWM) 爲 TDE 建立加密錢夾和主密鑰?
能夠更改錢夾密碼嗎?
如何建立(本地)自動打開的錢夾?
使用 Oracle Secure Backup 時,如何避免將 Oracle TDE 錢夾備份到 RMAN 數據庫備份所在的磁帶上?
錢夾備份優秀實踐
跨組件集成
哪些 Oracle 應用經過了透明數據加密認證?
能否對 Exadata 中存儲的數據進行加密?
什麼是 Oracle Secure Backup (OSB)?
Oracle RMAN 如何處理加密數據?
能否使用 Oracle Secure Backup 對發送至磁盤的備份進行加密?
可傳輸表空間能否與 TDE 表空間加密協同工做?
壓縮能否與 TDE 協同工做?
TDE 能否與 Data Guard、Streams 和 Oracle Golden Gate 協同工做?
是否有數據庫特性不能與 TDE 列加密協同工做?
能否使用帶有直接路徑的 SQL*Loader 將數據加載到包含加密列的表中?
優秀實踐
使用 TDE 列加密對敏感信息進行加密後,爲何有時仍能看到明文數據?
如何更改(輪換、更新)加密密鑰?
如何快速加密超大型表(包含數十億行)中的列?
如何將明文應用表空間的內容遷移到加密表空間中?
其餘問題
TDE 能否將主加密密鑰存儲到使用 PKSC11 接口的外部設備中?算法

解答
任何人只要有權訪問加密數據就能對其進行解密嗎?
是的,TDE 旨在讓客戶可以透明地在數據庫中進行加密,而不會影響現有應用。以加密格式返回數據會破壞大多數現有應用。TDE 的優點在於,加密不會產生傳統數據庫加密解決方案所產生的開銷,傳統的方案一般須要對應用進行更改,包括使用數據庫觸發器和視圖,於是費時費力,成本高昂。不過,客戶可使用 Oracle Database Vault 保護應用數據,防止 DBA 及其餘超級用戶的不當使用,還能夠對數據庫和應用實施強大的訪問權限控制。
--------------------------------------------------------------------------------
TDE 會帶來哪些開銷?
  TDE 表空間加密(Oracle Database 11g) TDE 列加密(Oracle Database 10gR二、Oracle Database 11g)
存儲 沒有額外的存儲開銷。 TDE 列加密帶來的存儲開銷爲每一個加密值 1 到 52 個字節。必需:對於 AES,填充到下一個 16 字節;對於 3DES168,填充到下一個 8 字節。因此,若是一個值須要 9 個字節的存儲空間,加密該值將須要額外 7 個字節的存儲空間(對於 AES)。可選:額外 20 個字節的完整性檢查可選:若是爲加密列指定了「SALT」,每一個值將須要額外 16 個字節的存儲空間。瞭解這些數字有助於進行存儲規劃,但 DBA 和開發人員不用手動爲 TDE 列加密擴大列存儲空間,由於在將某列標記爲「encrypted」時,TDE 會透明地完成這項任務。用戶能夠選擇 'no salt' 選項來減小所需額外存儲空間(可節省 16 個字節),還能夠選擇'nomac' 選項(10.2.0.四、11.1.0.7 和 Oracle Database 11g 第 2 版中提供該選項)來消除爲每一個加密字段計算和存儲 20 字節散列值而須要的額外的 CPU 週期和磁盤空間。
性能 內部基準測試結果和來自成功生產實施的反饋結果代表,性能開銷只是個位數。對於 Oracle Database 11g 第 2 版補丁集 1 (11.2.0.2),TDE 表空間加密可自動利用基於 AES-NI 的硬件密碼加速(可用於大多數 Intel? XEON? 5600 CPU),TDE 表空間加密於是成爲了「幾乎沒有影響」的加密解決方案,特別是在數據倉庫環境中。 加密或解密通用屬性(如信用卡號碼)帶來的性能開銷估計爲 5% 左右。基於加密列構建索引時,將使用密文構建索引。若是 TDE 加密列創建了索引併爲 SQL 語句所引用,Oracle 將用表密鑰對 SQL 語句中用到的值進行透明加密並使用密文進行索引查詢;若是全部索引都按照在應用 TDE 列加密以前最初設計的方式從新構建,客戶報告的性能影響能夠忽略不計。建議打算使用 TDE 列加密的客戶升級到 Oracle Database 10gR2 10.2.0.4/5(並應用補丁 7639262)或 Oracle Database 11gR1 11.1.0.7(並應用補丁 8421211),由於這兩個版本包含可減小性能開銷的更改。兩個相應的補丁已集成到 Oracle Database 11g 第 2 版中。
--------------------------------------------------------------------------------
哪些加密算法可與 TDE 一同使用?
TDE 支持 AES25六、AES192(列加密默認算法)、AES128(表空間加密默認算法)和 3DES168。
--------------------------------------------------------------------------------
可使用第三方加密算法代替 TDE 提供的算法嗎?
不能夠,不能插入其餘加密算法。Oracle 提供人們普遍接受的加密算法,而且將會引入新的可用標準算法。
--------------------------------------------------------------------------------
能夠對外鍵約束中使用的列採用 TDE 列加密嗎?
TDE 不支持對外鍵約束中使用的列進行加密。這是由於各個表有本身獨有的加密密鑰。如下查詢能夠列出數據庫中存在的全部 RI(引用完整性)約束:
SQL> select A.owner, A.table_name, A.column_name, A.constraint_name
from dba_cons_columns A, dba_constraints B
where A.table_name = B.table_name and B.constraint_type = 'R';
--------------------------------------------------------------------------------
能夠對聯接中使用的列進行 TDE 列加密嗎?
能夠。即便聯接條件的列已加密,聯接表對於應用和用戶也是透明的。
--------------------------------------------------------------------------------
能夠對已建索引的列進行加密嗎?
TDE 表空間加密透明地支持全部索引。
而對於 TDE 列加密,索引必須是用於等式搜索的普通 B 樹索引。若是是基於函數的複合索引,則不能對相應函數使用的列進行加密。當對已有索引的列進行加密時,建議首先利用 dbms_metadata.get_ddl 獲取索引定義,而後丟棄該索引,使用「no salt」選項對該列進行加密,最後重建索引。
--------------------------------------------------------------------------------
TDE 列加密支持哪些數據類型和數據長度?
TDE 表空間加密對於支持的數據類型沒有限制;如下數據類型可以使用 TDE 列加密進行加密:
varchar2 (< 3933 characters) nvarchar2 (< 1967 characters)
char (< 1933 characters) nchar (< 967 characters)
number raw
binary_float binary_double
timestamp date
SecureFile (11gR1 and later)
--------------------------------------------------------------------------------
數據在網絡上傳輸時仍處於加密狀態嗎?
使用 TDE 加密後的數據在從數據庫文件中讀回時會被解密。所以,若是在網絡上傳輸該數據,它將處於明文狀態。不過,客戶可使用 Oracle 的網絡加密解決方案(示例)對這些數據進行加密,該方案和 TDE 一同包含在 Oracle Advanced Security 選件中。Oracle 的網絡加密解決方案能夠對經過 SQL*Net 與數據庫往來傳輸的全部數據進行加密。
--------------------------------------------------------------------------------
數據庫內存 (SGA) 中包含的是明文數據仍是加密數據?
對於 TDE 列加密,加密數據在 SGA 中仍保持加密狀態,可是對於 TDE 表空間加密,數據在 SGA 中已被解密,從而提供 100% 的透明性。
--------------------------------------------------------------------------------
如何知道要加密哪些數據呢?
若是客戶必須遵照 PCI-DSS 標準,那麼信用卡號碼(亦稱 主帳號,即 PAN)須要加密後再保存。
若是須要遵照幾乎無處不在的數據泄露通知法案(如 CA SB 138六、CA AB 1950 以及美國超過 43 個州的相似法律),那麼須要加密的數據還有姓氏、名稱、駕照號碼及其餘我的身份信息 (PII)。2008 年初,CA AB 1298 將醫療和健康保險信息也列爲 PII 數據。
此外,客戶所處行業特有的隱私與安全標準可能要求對特定資產進行加密,另外,客戶自身的核心業務資產(如藥品研究成果、油田勘探成果、金融合同、執法舉報者的我的詳細信息等)可能也須要加密以便安全地保存在存儲介質上。在醫療衛生行業,患者數據、健康記錄和 X 射線影像的私密性很是重要。X 射線影像的存儲大多遵循 DICOM 標準,該標準特地將 PII 信息歸入到了影像元數據中,若是不對影像和患者數據進行適當的加密保護,入侵者很容易就能得到這些數據。在 Oracle Database 11g 中,DICOM 影像能夠存儲到「SecureFile」列中,TDE 能夠經過列加密對這些列進行加密,也能夠經過表空間加密對包含「SecureFile」列(或一般的 LOB 列)的表進行加密。
--------------------------------------------------------------------------------
須要加密的數據都在哪裏?
安全團隊或 DBA 團隊在使用 TDE 列加密時面臨的很是困難的任務是:
若是運行的應用是內部自行開發的,那麼問下開發人員可能就會知道敏感信息都在哪些表裏。
但若是運行的是商業打包軟件應用,那就比較困難了。因爲這類應用的每次部署都有不一樣的隱私和安全性要求,所以就連供應商本身都不太容易肯定要加密哪些內容。若是以遵照 PCI 標準爲目標,而且應用表中相應的列名相似於「CREDIT_CARD」或 「ACCOUNT_NUMBER」,那麼利用 Oracle 豐富的元數據信息庫即能輕鬆找出它們。
但若是列名不是對列內容的描述性標識,就要經過更復雜的方法來搜索敏感數據。在這種狀況下,咱們只能經過模式搜索來找出敏感內容:社會保險號碼始終相似於「aaa-bb-cccc」,但信用卡號碼不太一致 — 有的是 13 位數字,有的是 16 位數字,並且並不是老是 4 位一組。
若是要加密的列具備 TDE 列加密不支持的特質(在索引、數據類型或外鍵方面),或者沒法在應用表中找到存儲敏感數據的列,TDE 表空間加密是您的理想選擇。
--------------------------------------------------------------------------------
對於 Oracle Database 11g,什麼時候使用 TDE 列加密或 TDE 表空間加密?
若是下列任何一項是正確的,請使用 TDE 表空間加密:
您但願加密解決方案具備極佳的性能。TDE 表空間加密在大多數狀況下具備更好、更穩定的性能特色。此外,表空間加密還在容許的狀況下特別利用了硬件密碼加速,從而進一步將性能影響減小至近乎爲零。對於支持 AES-NI 的 Intel? XEON? 5600 CPU,Oracle Database 11g 第 2 版補丁集 1 (11.2.0.2) 提供硬件密碼加速支持。
您沒法一一找出包含敏感內容的全部列。
TDE 列加密不支持敏感列的數據類型和/或數據長度。
敏感列用做外鍵。
應用對已建索引的加密列執行範圍掃描。
對於加密列,您須要不一樣於 B 樹類型的索引。
--------------------------------------------------------------------------------
TDE 與 Oracle 早前提供的加密工具包有何不一樣?
Oracle 在 Oracle8i 中引入了加密包「dbms_obfuscation_toolkit」,後來在 Oracle 10g 第 1 版中引入了「dbms_crypto」加密包。這些 API 可用於對數據庫中數據手動加密,但應用必須對加密密鑰進行管理並經過調用 API 執行所需加解密操做。
與 dbms_obfuscation_toolkit 和 dbms_crypto 加密包不一樣的是,TDE 列加密(從 10gR2 起引入)和 TDE 表空間加密(從 11gR1 起引入)無需更改應用,對於最終用戶來講是透明的,而且提供內置的自動化密鑰管理。
--------------------------------------------------------------------------------
如何得到 TDE 許可?
TDE 是 Oracle Advanced Security 選件的一部分,該選件還包含網絡加密和強身份驗證。Oracle 企業版客戶可使用該選件。
--------------------------------------------------------------------------------
什麼是 Oracle 錢夾?
錢夾是一個加密的容器,用於存儲身份驗證和簽名憑證,包括 SSL 所需的密碼、TDE 主密鑰、PKI 私鑰、證書和可信證書。藉助 TDE,能夠在服務器上使用錢夾保護 TDE 主密鑰。除非使用 Diffie-Hellman,不然 Oracle 要求在 SSL 上通訊的實體包含一個錢夾,該錢夾應當含有 X.509 版本 3 證書、私鑰、可信證書列表。
Oracle 提供兩種類型的錢夾:加密錢夾和(本地)自動打開的錢夾。咱們建議對 TDE 使用加密錢夾(文件名爲 ewallet.p12)。數據庫啓動後和訪問 TDE 加密數據前,需手動打開該錢夾。因爲數據在 REDO 日誌、UNDO 和 TEMP 表空間中處於加密狀態,所以在打開數據庫前須要爲其提供 TDE 主加密密鑰:
$ sqlplus / as sysoper
PUBLIC> startup mount;
ORACLE instance started.
Database mounted.
PUBLIC> alter system set encryption wallet open identified by "wallet_password";
System altered.
PUBLIC> alter database open;
Database altered.
若是未打開該錢夾,查詢受 TDE 保護的數據時數據庫將返回錯誤。(本地)自動打開的錢夾(文件名是 cwallet.sso)在訪問加密數據時會自動打開,所以它適用於無人值守的 Data Guard 環境(Oracle 10gR2:僅物理備用數據庫;Oracle 11g:物理和邏輯備用數據庫),在這類環境中加密後的數據會傳送到輔助站點。在建立自動打開的錢夾後,永遠不要刪除加密錢夾,不然,主加密密鑰更新操做將會失敗。
本地自動打開的錢夾是在 Oracle Database 11g 第 2 版中引入的,該錢夾只能在建立它的服務器上自動打開。
--------------------------------------------------------------------------------
如何保護 TDE 錢夾?
在 Unix 上,應當使用適當的目錄 (700) 和文件權限 (600) 只容許「oracle:oinstall」用戶:組訪問該錢夾。不過,即便 root 用戶有權訪問錢夾文件,但若是該用戶不知道錢夾密碼,仍然沒法訪問主加密密鑰。在全部平臺上,錢夾密碼(用於加密該錢夾的密碼)應至少包含 8 個字母和數字字符。錢夾密碼可經過 Oracle Wallet Manager 或 orapki 實用程序來更改。強烈建議在更改錢夾密碼以前對 Oracle 錢夾進行備份。更改錢夾密碼不會更改 TDE 主密鑰(它們彼此獨立)。
在 Linux 平臺上,從 Oracle Database 11g 第 2 版 (11.2.0.2) 起,咱們建議將 Oracle 錢夾存儲在 ACFS(基於 ASM 的集羣文件系統,適用於單實例、單節點 RAC、多節點 RAC,但不適用於 Exadata X2)中,由於該文件系統新的安全特性提供出色的錢夾保護和職責分離。有關如何在 ACFS中建立訪問控制策略(含職責分離)的詳細分步指南,請參閱頻繁更新的 TDE 優秀實踐文檔。
--------------------------------------------------------------------------------
能否使用 Oracle Wallet Manager (OWM) 爲 TDE 建立加密錢夾和主密鑰?
不能。若是您使用 Oracle Wallet Manager 建立錢夾,該錢夾不包含 TDE 所需的主密鑰。只有如下 SQL 命令:
SQL> alter system set encryption key identified by "wallet_password";
可以建立加密錢夾(若其在 sqlnet.ora 文件中指定的位置不存在)併爲其添加 TDE 主密鑰。
在 Oracle 11gR1 中,TDE 及其餘安全特性已遷移到 Enterprise Manager Database Control 中,所以可使用 Enterprise Manager 基於 Web 的 GUI 來生成錢夾和主密鑰。
Oracle 11g 第 2 版中引入了新的統一主加密密鑰,該密鑰可同時用於 TDE 列加密和表空間加密;您能夠在 Oracle 錢夾中建立、存儲和更新(輪換)此密鑰。
--------------------------------------------------------------------------------
能夠更改錢夾密碼嗎?
能夠,您能夠經過 Oracle Wallet Manager (OWM) 更改錢夾密碼。在嘗試更改錢夾密碼前,請建立備份。更改錢夾密碼不會更改主密鑰(它們彼此獨立)。在 Oracle 11gR1 11.1.0.7 中,orapki 已獲得加強,容許經過命令行更改錢夾密碼:
$ orapki wallet change_pwd -wallet <wallet_location>
--------------------------------------------------------------------------------
如何建立(本地)自動打開的錢夾?
當須要在無人干預的狀況下保持數據庫可用性時(無人值守的運營),對 TDE 主密鑰使用密碼保護的加密錢夾可能並不是合適的解決方案;而(本地)自動打開的錢夾在數據庫啓動後無需錢夾密碼,讓受權用戶和應用能夠訪問加密數據。
(本地)自動打開的錢夾 (cwallet.sso) 須要用現有的加密錢夾 (ewallet.p12) 建立,以便將主密鑰傳給新建的自動打開錢夾。
您能夠在 Oracle Wallet Manager (OWM) 中打開加密錢夾,選中 Auto Login 複選框,而後選擇 Save 將自動打開的錢夾寫入磁盤,也可使用命令行工具 orapki:
$ orapki wallet create -wallet <wallet_location> -auto_login
建立本地自動打開錢夾的命令語法以下所示:
$ orapki wallet create -wallet <wallet_location> -auto_login_local
兩種狀況(Oracle Wallet Manager 和 orapki)都要求提供錢夾密碼。請保留加密錢夾,由於主密鑰更新操做須要使用該錢夾,而且該錢夾可能包含棄用主密鑰列表。
--------------------------------------------------------------------------------
使用 Oracle Secure Backup 時,如何避免將 Oracle TDE 錢夾備份到 RMAN 數據庫備份所在的磁帶上?
RMAN 只會將數據庫文件、重作日誌等添加到備份文件中,所以加密錢夾或自動打開的錢夾不會成爲數據庫備份的一部分。Oracle Secure Backup (OSB) 使用數據集定義待備份的操做系統文件。OSB 自動排除自動打開的錢夾 (cwallet.sso),但不會自動排除加密錢夾 (ewallet.p12),您須要使用排除數據集語句來指定備份過程當中須要跳過的文件:
exclude name *.p12
--------------------------------------------------------------------------------
錢夾備份優秀實踐
請在發生如下狀況時當即備份 Oracle 錢夾:建立錢夾後、每次錢夾內容發生更改時(例如因爲主密鑰更新操做),以及每次更改錢夾密碼後。始終將錢夾(加密錢夾或本地自動打開的錢夾)存儲到遠離數據庫備份的位置。
--------------------------------------------------------------------------------
哪些打包應用經過了透明數據加密認證?
Oracle 投資於各類軟件解決方案的兼容性測試,其中包括做爲 Oracle 集成式軟硬件體系一部分的應用及其餘第三方應用。下表總結了這些應用認證結果。有關詳細信息,請參見連接頁面和文件。
TDE 表空間加密(Oracle Database 11g) TDE 列加密(Oracle Database 10.2.0.4/5 或 Oracle Database 11g)
Oracle E-Business Suite(產品介紹)單擊這裏瞭解更新
Oracle PeopleSoft Enterprise 8.48 及更高版本(產品介紹 | 紅皮書 | 遷移指南) Oracle PeopleSoft Enterprise 8.46 及更高版本(產品介紹)
Oracle Siebel CRM 8.0 及更高版本(產品介紹) Oracle Siebel CRM 7.7 及更高版本
Oracle JD Edwards EnterpriseOne(產品介紹) Oracle Financial Services (iFlex) FlexCube 10.0
  Oracle 零售應用 (Retek):ReSA 12.0 及更高版本和 13.0 (10gR2)ReSA 13.1 (11gR1)
  Infosys Finacle
SAP 6.40_EX2 及更高版本(僅 UNIX 和 Linux) SAP 6.40 及更高版本(SAP 說明 974876)
Oracle Internet Directory 10.1.4.2(白皮書)
--------------------------------------------------------------------------------
能否對 Exadata 中存儲的數據進行加密?
能夠。透明數據加密是在大規模 Exadata 環境中保護敏感數據的一種好辦法。Exadata 讓大幅提升加密性能成爲可能。Exadata 提供的超強加密性能歸功於如下獨到之處:
Exadata 系統中優化的 Oracle 硬件和軟件
各個存儲和計算節點間的分佈式加密處理
智能掃描和混合列壓縮 (EHCC) 等 Exadata 原生特性
提供硬件密碼加速
例如,光是 Exadata 中的硬件密碼加速就可將性能提升多達 10 倍(相對於沒有硬件加速的狀況)
下表總結了 Exadata X2 系統計算和存儲節點上的性能特色。該表重點介紹了能夠啓用硬件密碼加速的狀況。
Exadata 型號 X2-2 X2-8
節點 加密 解密 加密 解密
計算 在 Intel Xeon X5670(含補丁10080579)中啓用硬件加速 在 Intel Xeon X5670 中默認啓用硬件加速 在 Intel? X7560 中經過 Nehalem 技術實現硬件加速
存儲 不適用 在 Intel Xeon L5640 中默認啓用硬件加速 不適用 在 Intel Xeon L5640 中默認啓用硬件加速
注:在 Oracle Exadata V2 和 X2 中,表密鑰(用於TDE 列加密)或表空間密鑰(用於 TDE 表空間加密)被髮送到存儲單元,以便首先解密內容,而後應用智能掃描。內容加密在計算節點中進行。解密一般在計算節點中進行,可是當查詢被推送到存儲節點時,解密會在存儲節點中進行,以便啓用智能掃描。
--------------------------------------------------------------------------------
什麼是 Oracle Secure Backup (OSB)?
Oracle Secure Backup 爲 Oracle 數據庫提供了一種優化、高效的磁帶備份解決方案。OSB 可以以加密的格式在磁帶上存儲數據,從而防範備份磁帶被盜竊。
--------------------------------------------------------------------------------
Oracle RMAN 如何處理加密數據?
應用數據 RMAN 壓縮備份 RMAN 加密備份 RMAN 壓縮和加密備份
未加密 壓縮數據 加密數據 數據先壓縮再加密
使用 TDE 列進行加密 壓縮數據;將加密列視爲未加密 加密數據;對加密列雙重加密 數據先壓縮再加密;將加密數據視爲未加密;對加密列雙重加密
使用 TDE 表空間加密進行加密 對加密的表空間進行解密、壓縮和從新加密 加密的表空間原樣傳送給備份 對加密的表空間進行解密、壓縮和從新加密
當存在本地 TDE 主加密密鑰時「透明」加密[和壓縮]的示例:
RMAN> connect target <ORACLE_SID>/<SYS pwd>
RMAN> set encryption on;
RMAN> backup [as compressed backupset] database;
不管使用 TDE 主加密密鑰仍是密碼短語對文件進行加密,對發送到磁盤的 RMAN 備份進行加密都須要 Advanced Security 選件的許可。
--------------------------------------------------------------------------------
能否使用 Oracle Secure Backup 對發送至磁盤的備份進行加密?
不能。不過,Oracle RMAN 可與 Oracle Advanced Security 一塊兒使用,對發送至磁盤的數據庫備份進行加密。這須要 Oracle Advanced Security 選件的許可。
--------------------------------------------------------------------------------
可傳輸表空間能否與 TDE 表空間加密協同工做?
能夠,不過這須要將包含主密鑰的錢夾複製到輔助數據庫。若是移動表空間但不提供主密鑰,在訪問表空間數據時,輔助數據庫將返回錯誤。
--------------------------------------------------------------------------------
壓縮能否與 TDE 協同工做?
能夠。數據塊在壓縮後進行加密,所以使用 TDE 表空間加密的客戶可得到壓縮(標準壓縮、高級壓縮以及 Exadata 混合列壓縮 (EHCC))的所有好處。使用 TDE 列加密的客戶只能在不加密的表列上得到壓縮的所有好處。使用 TDE 列加密的各個表列只能得到很低的壓縮水平,由於它們是在 SQL 層進行加密以後再進行高級壓縮處理。
--------------------------------------------------------------------------------
TDE 能否與 Data Guard、Streams 和 Oracle Golden Gate 協同工做?
能夠。當 TDE 用於 Data Guard 物理備用數據庫(10gR2 及更高版本)時,在向輔助數據庫傳輸數據的過程當中加密數據在日誌文件中仍保持加密狀態,此時能夠選擇使用 ASO 網絡加密在傳輸過程當中對磁盤上未加密的數據進行加密。請參閱 Metalink 說明 749947.1 瞭解如何配置 ASO 自帶的網絡加密,並參閱 Metalink 說明 1143443.1 瞭解如何配置基於 SSL 的加密。對此,必須將包含主密鑰的錢夾複製到所有物理備用數據庫站點並打開該錢夾,無論是僅應用重作日誌、以只讀方式打開、在 Active Data Guard 中打開(只讀和應用重作日誌),仍是進行角色轉換(切換或故障切換)都是如此。
當 TDE 用於 Data Guard 邏輯備用數據庫 (11gR1) 時,必須將包含主密鑰的錢夾複製到輔助站點並打開該錢夾,以便 SQL Apply 能夠對從日誌文件中讀取的數據進行解密。在將傳入數據寫入邏輯備用數據庫時,可使用一樣的主加密密鑰對數據進行加密。加密數據在日誌文件中保持加密狀態,而且在日誌文件被傳送到輔助數據庫的傳輸過程當中仍保持加密狀態;Oracle 網絡加密是可選的。請參閱 Metalink 說明 749947.1 瞭解如何配置 ASO 自帶的網絡加密,並參閱 Metalink 說明 1143443.1 瞭解如何配置基於 SSL 的加密。
當 TDE 與 11gR1 中的 Streams 一塊兒使用時,在活動數據庫之間以明文傳輸數據,以容許數據轉換(字符集、數據庫版本、平臺等)。當沒法到達接收端且須要臨時存儲數據時,加密列以加密形式存儲在磁盤上。在 11gR1 以前的數據庫版本中,Streams 將加密列視爲「不受支持的數據類型」,所以跳過這些表。
Oracle Golden Gate 版本 TDE 列加密 TDE 表空間加密
11.1.1.1 以前的版本 對全部 Oracle 數據庫版本提供部分支持,支持二者同用的前提是相應表具備主鍵或惟一索引,而且加密列爲:CHAR 或 VARCHAR2 數據類型不是表的主鍵 不支持
11.1.1.1 Oracle Database 10.2.0.5 和 11.2.0.2 中內置的 Golden Gate 11.1.1.1 支持 TDE 加密;在 11.1.0.7 中則須要補丁9409423。
可使用 blowfish 或 SSH 端口轉發來加密流量。
--------------------------------------------------------------------------------
是否有數據庫特性不能與 TDE 列加密協同工做?
TDE 表空間加密對錶空間中存儲的全部內容進行加密,不會與任何其餘數據庫特性衝突。TDE 列加密是在數據通過 SQL 層時對數據進行透明的加密和解密。Oracle 的某些特性會繞過 SQL 層,所以不能利用 TDE 列加密,好比如下特性:
物化視圖日誌(Oracle 11g 第 2 版本支持該特性)
數據倉庫的同步和異步更改數據捕獲 (CDC)
可傳輸表空間
LOB(從 11gR1 起支持 SecureFiles)
Streams(從 11gR1 起支持該特性)
--------------------------------------------------------------------------------
能否使用帶有直接路徑的 SQL*Loader 將數據加載到包含加密列的表中?
能夠。若是目標表包含加密列,數據將在加載時進行加密。如下簡單示例說明了如何使用帶有直接路徑的 SQL*Loader。只需將 ulcase6.sql 中的一行從
sal number(7,2),
更改成
sal number(7,2) encrypt,
並使用 SQL*Loader 的正確語法:
$ sqlldr USERID=scott/tiger CONTROL=ulcase6.ctl LOG=ulcase6.log DIRECT=TRUE
--------------------------------------------------------------------------------
使用 TDE 列加密對敏感信息進行加密後,爲何有時仍能看到明文數據?
這種狀況與即便已刪除表或文件、但仍然會在磁盤上看到數據的狀況相同。在一個表的生命週期內,數據可能會在表空間內分段、從新整理、排序、複製和移動,這會在數據庫文件中留下數據的「幽靈副本」。加密現有列時,僅對新的「有效」副本加密,而在「幽靈副本」中留下較舊的明文版本。若是繞過數據庫的訪問控制而直接訪問包含表空間的數據文件(例如,使用十六進制編輯器),那麼在這些塊被數據庫覆蓋以前,有時就會看到舊的明文值。爲了儘量下降此等風險,請遵循下面的建議:
在新的數據文件中建立一個新的表空間 (CREATE TABLESPACE ... )
對原始表空間和數據文件中的明文值進行加密 (ALTER TABLE ...ENCRYPT )
對包含加密列的全部表執行第 2 步
將原始表空間中的全部表移到新的數據文件中 (ALTER TABLE ....MOVE... )
刪除原始表空間 (DROP TABLESPACE ),不要使用 「and datafiles」 參數,Oracle 推薦對操做系統級操做使用更有力的方法,參見第 6 步
針對您的平臺使用 「shred」 或其餘 OS 命令,以便在 OS 級別上刪除舊數據文件
建議您使用第 6 步操做來下降數據庫文件出現幽靈副本的機率,不論這些副本是由操做系統生成仍是由存儲固件生成。
--------------------------------------------------------------------------------
如何更改(輪換、更新)加密密鑰?
數據庫版本 TDE 列加密 TDE 表空間加密
主加密密鑰 各個表密鑰 主加密密鑰 各個表空間密鑰
10gR2 是 是 不適用 不適用
11gR1 是 是 否(*) 否(*)
11gR2 是 是 是 否(*)
(*):能夠將內容從一個加密表空間移到一個新的加密表空間,在新的表空間中使用新的表空間密鑰進行加密。
TDE 採用兩層密鑰機制。在對某個現有應用表列進行 TDE 列加密時,系統會建立一個新的表密鑰並將該密鑰存儲在 Oracle 數據字典中。在使用 TDE 表空間加密時,系統會將各個表空間密鑰存儲在底層 OS 文件頭部。表密鑰和表空間密鑰使用 TDE 主加密密鑰進行加密。主加密密鑰在 TDE 初始化時生成而且存儲在數據庫以外的 Oracle 錢夾中。主密鑰和表密鑰均可以依據公司安全策略單獨進行更改(輪換、更新)。表空間密鑰不能更新(輪換),對此的變通方法是將數據移動到新的加密表空間。Oracle 建議在每次主密鑰更改先後對錢夾進行備份。
更改錢夾密碼不會更新 TDE 主加密密鑰。
--------------------------------------------------------------------------------
如何快速加密超大型表(包含數十億行)中的列?
對現有表中的列進行加密是一種「更新」操做,容許對該表進行讀取訪問,而不容許進行其餘 DML 操做。因爲有數十億行,這一可用性有限的窗口會持續很長時間。不過 Oracle 數據庫提供了一個成熟的高可用性特性 — 聯機表重定義,利用該特性,僅須要一個持續時間很是短的窗口對錶進行獨佔式鎖定。該時間長度與表的大小及重定義的複雜性無關,而且對用戶和應用是徹底透明的,不會致使任何數據損失。
--------------------------------------------------------------------------------
如何將明文應用表空間的內容遷移到加密表空間中?
使用「dbms_metadata.get_ddl」提取用於建立原始應用表空間的 DDL 並將輸出另存爲一個 SQL 腳本。
在每一個「create tablespace」語句中添加「ENCRYPTION DEFAULT STORAGE(ENCRYPT)」(無需更改 SIZE 參數,由於 TDE 表空間加密不會增長存儲需求)
用 Data Pump (expdp) 導出整個數據庫,或擁有應用表空間的模式
用「with contents and datafiles」刪除應用表空間。
運行 SQL 腳本建立加密應用表空間,其餘特性保持不變。
用 Data Pump (impdp) 導入轉儲文件。
--------------------------------------------------------------------------------
TDE 能否將其主加密密鑰存儲到使用 PKSC11 接口的外部設備中?
從 Oracle Database 11g 第 2 版起,Oracle Advanced Security 透明數據加密 (TDE) 客戶能夠選擇將 TDE 主加密密鑰存儲到使用 PKCS11 接口的外部設備中。在此配置下,主密鑰直接存儲在第三方設備中,而非所含 Oracle 錢夾中(注意:Oracle 錢夾是大多數 TDE 客戶使用的基於 PKCS12 文件的密鑰庫)。sql

使用 PKCS11 時,由第三方供應商提供存儲設備、PKCS11 軟件客戶端庫、設備與 PKCS11 客戶端(在數據庫服務器上運行)之間的安全通訊、身份驗證、審計及其餘相關功能。而且由供應商負責測試和確保 TDE 主加密密鑰在各類數據庫服務器環境和配置下的高可用性。客戶應與設備供應商聯繫,得到幫助以解決任何相關問題。
--------------------------------------------------------------------------------數據庫


上機操做

透明數據加密
配置自帶的網絡加密功能
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

安全特性

數據加密
虛擬專用數據庫
數據庫審計
備份加密
導出文件加密
代理身份驗證
企業用戶安全
安全應用角色
細粒度審計
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

論壇

安全性
Audit Vault
數據庫
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

技術信息

透明數據加密優秀實踐
產品介紹
概述白皮書
常見問題解答
技術白皮書
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

安全選件

Oracle Database Vault
Oracle Advanced Security
Oracle Label Security
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

相關技術

Database Firewall
Audit Vault
Data Masking (pdf)
Secure Backup
配置管理
Information Rights Management
Identity Management
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------安全

相關文章
相關標籤/搜索