Oracle TDE(Transparent Data Encryption) 常见问题解答 - 官网

avatar
作者
猴君
阅读量:2

此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)

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!