目录
一、关于透明数据加密(TDE)
见:关于TDE的内容
file:///D:/BaiduNetdiskDownload/oracle-database-11.2-%E5%AE%98%E7%BD%91%E6%89%80%E6%9C%89%E6%89%8B%E5%86%8C-E11882_01/E11882_01/network.112/e40393/asotrans.htm#CHDCCHBH
1、TDE的概念
透明数据加密 (TDE) 能够加密存储在表和表空间中的敏感数据,例如信用卡号码。加密数据对于有权访问数据的数据库用户或应用程序来说是透明地解密的。当存储介质或数据文件被盗时,TDE 有助于保护存储在介质上的数据。
Oracle数据库使用身份验证、授权和审核机制可保护数据库中的数据,但不保护存储数据的操作系统数据文件中的数据。为了保护这些数据文件,Oracle 数据库提供了透明数据加密 (TDE)。 TDE 对数据文件中存储的敏感数据进行加密。为了防止未经授权的解密,TDE 将加密密钥存储在数据库外部的安全模块中。
数据库用户和应用程序不需要管理密钥存储或创建辅助表、视图和触发器。处理敏感数据的应用程序可以使用 TDE 提供强大的数据加密,而无需对应用程序进行任何更改。
使用 TDE 保护存储在表列中的机密数据,例如信用卡和社会安全号码。您还可以使用 TDE 加密整个表空间。
本节包含以下主题:
(1)使用透明数据加密的好处
透明数据加密(TDE)具有以下优点:
- 作为安全管理员,您可以确保敏感数据的安全,以防存储介质或数据文件被盗。
- 实施 TDE 可帮助您解决与安全相关的法规遵从性问题。
- 您不需要创建触发器或视图来为授权用户或应用程序解密数据。表中的数据对于数据库用户和应用程序是透明解密的。
- 数据库用户和应用程序不需要知道他们正在访问的数据是以加密形式存储的。数据对于数据库用户和应用程序是透明解密的。
- 无需修改应用程序即可处理加密数据。数据的加密和解密由数据库管理。
- 密钥管理操作是自动化的。用户或应用程序不需要管理加密密钥。
(2)透明数据加密的类型
透明数据加密 (TDE) 列加密使您能够加密存储在选定表列中的敏感数据。
TDE 表空间加密使您能够加密表空间中存储的所有数据。
TDE 列加密和 TDE 表空间加密都使用基于密钥的两层架构。
即使检索到加密数据,也无法理解,直到发生授权解密为止,这对于授权访问该表的用户来说是自动的。
2、TDE 列加密
TDE 列加密用于保护存储在表列中的机密数据,例如信用卡和社会安全号码。 TDE 列加密使用基于密钥的两层架构来透明地加密和解密敏感表列。 TDE 主加密密钥存储在外部安全模块中,该模块可以是 Oracle 钱包或硬件安全模块 (HSM)。该主加密密钥用于加密表密钥,而表密钥又用于加密和解密表列中的数据。
主加密密钥存储在数据库外部的外部安全模块中,只有安全管理员可以访问。对于此外部安全模块,Oracle 使用 Oracle wallet 或硬件安全模块 (HSM),如本章所述。以这种方式存储主加密密钥可防止未经授权的使用。
使用外部安全模块(钱包/HSM)将普通程序功能与加密操作分开,从而可以在数据库管理员和安全管理员之间划分职责。安全性得到增强,因为数据库管理员可能不知道钱包密码,需要安全管理员提供密码。
当表包含加密列时,无论加密列的数量有多少,都将使用单个表密钥。所有表的表密钥均使用数据库服务器主加密密钥进行加密,并存储在数据库的字典表中。没有密钥以明文形式存储。
3、TDE 表空间加密
TDE 表空间加密使您能够加密整个表空间。在加密表空间中创建的所有对象都会自动加密。如果您想保护表中的敏感数据,TDE 表空间加密非常有用。您不需要对每个表列执行精细分析来确定需要加密的列。
此外,TDE 表空间加密利用批量加密和缓存来提供增强的性能。虽然对应用程序的实际性能影响可能有所不同,但性能开销粗略估计在 5% 到 8% 之间。
如果您的表在多个列中包含敏感数据,或者您想要保护整个表而不仅仅是单个列,那么 TDE 表空间加密是 TDE 列加密的良好替代方案。
TDE 表空间加密对存储在加密表空间中的所有数据及其相应的重做数据进行加密。这包括内部大对象,LOB
例如BLOB
s 和CLOB
s。 TDE 表空间加密不会加密存储在表空间外部的数据。例如,BFILE
数据未加密,因为它存储在数据库外部。如果您在加密表空间中创建包含列的表BFILE
,则该特定列将不会被加密。但是,Oracle Database 11 g第 1 版 (11.1)开始支持 SecureFile LOB 。
加密表空间中的所有数据都以加密格式存储在磁盘上。对于具有查看或修改数据所需权限的授权用户来说,数据是透明解密的。数据库用户或应用程序不需要知道特定表中的数据是否在磁盘上加密。即使磁盘或备份介质上的数据文件被盗,数据也不会受到损害。
TDE 表空间加密使用两层、基于密钥的架构来透明地加密(和解密)表空间。 TDE 主密钥存储在外部安全模块(Oracle Wallet 或 HSM)中。此 TDE 主密钥用于加密 TDE 表空间加密密钥,而 TDE 表空间加密密钥又用于加密和解密表空间中的数据。
加密数据在JOIN
和 等操作期间受到保护SORT
。这意味着数据移动到临时表空间时是安全的。撤消和重做日志中的数据也受到保护。
TDE 表空间加密还允许索引范围扫描加密表空间中的数据。这对于 TDE 列加密来说是不可能的。
Oracle Database 11 g第 2 版 (11.2) 对 TDE 表空间加密实现了以下增强功能:
- TDE 列加密和 TDE 表空间加密均使用统一的主加密密钥。
- 您可以重置统一主加密密钥。这提供了增强的安全性并有助于满足安全性和合规性要求。
二、关于钱包(Oracle wallet)
1、关于钱包概念
在 Oracle 数据库中,"wallet"(钱包)是一种用于存储和管理敏感信息(如加密密钥、数字证书、用户名密码等)的安全容器。
钱包使用加密算法和访问控制策略,可以确保存储在其中的信息在传输和保存过程中的安全性。
以下是 Oracle 中关于钱包的一些概念和用途:
1. **加密密钥管理**:钱包可用于存储和管理用于加密和解密数据库和应用程序数据的加密密钥。它提供了一种集中管理和保护加密密钥的方式。
2. **数字证书管理**:钱包可用于存储和管理数字证书,用于加密通信、身份认证和数字签名等安全功能。通过钱包中的证书,可以进行安全的客户端和服务器身份验证。
3. **SSL/TLS 配置**:钱包可用于配置和存储用于 SSL/TLS 加密通信的证书和私钥。这样可以确保数据库连接的机密性和数据保护。
4. **身份验证凭据管理**:钱包可用于存储和管理数据库连接所需的用户名和密码等凭据。这样可以实现无密码或无需每次手动输入密码的数据库连接。
通过使用钱包,Oracle 数据库提供了一种安全、灵活和方便的方式来管理和保护敏感信息。它使得加密和身份验证等安全功能的配置和使用变得更加简单和集中化。
请注意,使用钱包需要遵循安全最佳实践,并确保对钱包文件和密码进行安全管理和访问控制。
详细的使用和配置钱包的信息可以在 Oracle 官方文档中找到,以便根据特定的需求和情况进行进一步的了解和实施。
2、关于钱包的官方文档内容:
file:///D:/BaiduNetdiskDownload/oracle-database-11.2-%E5%AE%98%E7%BD%91%E6%89%80%E6%9C%89%E6%89%8B%E5%86%8C-E11882_01/E11882_01/network.112/e40393/asowalet.htm#i1006873
3、关于钱包中一些视图概念
在 Oracle 数据库中,有一些视图与钱包(wallet)相关,可以提供关于钱包和其中存储的凭据、证书和密钥的信息。以下是一些常见的 Oracle 视图与钱包相关的概念及其解释:
(1)**V$WALLET**:
这个视图提供了有关当前数据库实例的钱包的信息。它包括钱包的状态、位置和创建时间等详细信息。
(2)V$ENCRYPTION_WALLET:
此视图显示了数据库实例当前使用的加密钱包的信息。它提供了钱包的位置,以及是否已经打开(OPEN)或关闭(CLOSE)。
在Oracle数据库中,V$ENCRYPTION_WALLET
视图的STATUS
列表示加密钱包的状态。以下是可能的STATUS
值以及它们的含义:
-
NOT_AVAILABLE: 加密钱包不可用或不存在。这可能是因为没有创建或打开加密钱包。
-
OPEN: 加密钱包已成功打开并可供使用。这表示加密钱包已经处于可用状态,并且可以执行使用加密密钥的操作。
-
OPEN_NO_MASTER_KEY: 加密钱包已成功打开,但没有主密钥。这表示存在加密钱包,但没有为其指定主密钥。在这种情况下,某些加密功能可能受限。
-
OPEN_NO_PASSWORD: 加密钱包已成功打开,但没有密码。这表示加密钱包已经处于可用状态,但没有为其指定密码。在这种情况下,某些加密功能可能受限。
-
CLOSED: 加密钱包已成功关闭。这表示加密钱包已被关闭,不再可用。
(3)V$SSO_CREDENTIALSTORE:
此视图显示了数据库实例中的单一登录(SSO)凭据存储区的信息。它列出了存储区中定义的凭据以及它们的类型和状态。
(4)DBA_PDB_WALLET:
对于多租户数据库(Multitenant Database),此视图显示了每个个别的插件数据库(PDB)中的钱包信息。它提供了每个 PDB 中钱包的状态、位置和创建时间等信息。
(5)V$ENCRYPTION_KEYS:
此视图提供了有关数据库实例中的已注册加密密钥的信息。它包括密钥的类型、状态、创建时间和有效期等详细信息。