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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/46011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

彻底改变时尚:使用 GAN 实现 AI 的未来

彻底改变时尚:使用 GAN 实现 AI 的未来 一、介绍 想象一下,在这个世界里,时装设计师永远不会用完新想法,我们穿的每一件衣服都是一件艺术品。听起来很有趣,对吧?好吧,我们可以在通用对抗网络 &a…

鸿蒙基本工程目录

工程级目录 AppScope 中存放应用全局所需要的资源文件。entry 是应用的主模块,存放 HarmonyOS 应用的代码、资源等。oh_modules 是工程的依赖包,存放工程依赖的源文件。build-profile.json5 是工程级配置信息,包括签名、产品配置等。hvigorf…

品牌产业出海指南如何搭建国际化架构的跨境电商平台?

在“品牌&产业出海指南 – 成功搭建跨境电商平台”系列中,我们将从电商分销系统、跨境平台商城/多商户商城系统和国际化架构三个方面对帮助您梳理不同平台模式的优缺点、应用场景、开发重点和运营建议。 在“品牌&产业出海指南 – 成功搭建跨境电商平台”系…

【漏洞复现】Rejetto HTTP文件服务器——远程命令执行(CVE-2024-23692)

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 Rejetto HTTP文件服务器是一个轻量级的HTTP服务器软件&#xff…

VBA学习(20):一批简单的Excel VBA编程问题解答

1.如何确定单元格区域内的行数和列数? 使用Range.Rows.Count和Range.Columns.Count属性。 2.Application.Columns指的是什么? 活动工作表中的列。 3.你的程序在列B位置插入一个新列,原来的列B会怎样? 它向右移动成为列C。 4.假…

vue项目1分钟实现自定义右键菜单,懒人的福音

高效实现需求,避免重复造轮子,今天给大家分享的是,如何在最短的时间内实现右键菜单,方法也很简单,一个插件就可以搞定,话不多说,上效果图: 1. 效果图: 2. 安装&#xff…

5. 基于Embedding实现超越elasticsearch高级搜索

Embedding介绍 Embedding是向量的意思,向量可以理解为平面坐标中的一个坐标点(x,y),在编程领域,一个二维向量就是一个大小为float类型的数组。也可以用三维坐标系中的向量表示一个空间中的点。在机器学习中,向量通常用于表示数据的特征。 向量…

SCI丨中三区

无线网络遥感图像和视频处理技术在xxxxx析基于智能物联网的xxxxx养老模式可持续发展基于心理行为大数据分类算法xxxxxx研究基于云计算xxxxx行为分析及客户感知体系的构建基于机器学习的xxxxx金钢时效行为研究 基于机器视觉的xxxxx检测系统研究 机器学习的电子显微镜xxxxx材料的…

探索Laravel的视图组件与插槽:构建动态且可复用的UI

探索Laravel的视图组件与插槽:构建动态且可复用的UI 引言 Laravel作为一个现代化的PHP框架,提供了许多强大的功能来帮助开发者构建高性能和可维护的Web应用。其中,视图组件(View Components)和插槽(Slots…

【React Hooks原理 - forwardRef、useImperativeHandle】

概述 上文我们聊了useRef的使用和实现,主要两个用途:1、用于持久化保存 2、用于绑定dom。 但是有时候我们需要在父组件中访问子组件的dom或者属性/方法,而React中默认是不允许父组件直接访问子组件的dom的,这时候就可以通过forwa…

数据库SQL Server列拼接Join和Union

文章目录 JOINJOIN的基本语法如下: UNIONUNION的基本语法如下: 在 SQL Server中, JOIN和 UNION是两种不同的操作,它们用于合并来自两个或多个表的数据。 JOIN JOIN操作用于将两个或多个表中的行结合起来,基于它们之…

Jmeter二次开发Demo

Jmeter二次开发Demo 前言 在上一集,我们已经完成了JMX脚本的分析,大致了解了JMX脚本的基本元素。 那么在这一集,我们将会介绍一下Jmeter二次开发的Demo。 Demo代码 那么话不多说,我们就直接上代码。 public class TestStress…

SpringBoot+HttpClient实现文件上传下载

服务端:SpringBoot Controller package com.liliwei.controller;import java.io.File; import java.io.FileInputStream; import java.io.IOException;import javax.servlet.http.HttpServletResponse;import org.springframework.http.HttpHeaders; import org.s…

Cesium 判断位置是否在当前视口范围内

详细步骤都在注释里,不过多赘述了。 /*** @param {Object} position - Cartesian3坐标* @return {Boolean} 是否在视口中*/ function isPositionInViewport(position) {// 获取当前视口范围let viewport = viewer.camera.computeViewRectangle();// 2D模式下拾取不到坐标,vi…

类和对象的简述(c++篇)

开局之前,先来个小插曲,放松一下: 让我们的熊二来消灭所有bug 各位,在这祝我们: 放松过后,开始步入正轨吧。爱学习的铁子们: 目录: 一类的定义: 1.简述: 2…

【JavaScript 算法】贪心算法:局部最优解的构建

🔥 个人主页:空白诗 文章目录 一、贪心算法的基本概念贪心算法的适用场景 二、经典问题及其 JavaScript 实现1. 零钱兑换问题2. 活动选择问题3. 分配问题 三、贪心算法的应用四、总结 贪心算法(Greedy Algorithm)是一种逐步构建解…

mybatisPlus和mybatis的版本冲突问题、若依换成MP、解决git无法推送、使用若依框架的swagger、以后再遇到团队项目应该怎么做。

20240716 一. mybatisPlus和mybatis的版本冲突问题1. 使用前的准备2. 我遇到了一个很严重的问题。3. 解决问题,好吧也没解决,发现问题!! 二、该死的git!!!!1. 解决无法在idea中使用g…

【Outlook】从Outlook新版回归经典版全攻略

引言 在微软宣布计划于2024年底淘汰邮件应用(Mail app)之后,许多用户发现新版Outlook应用(Outlook (new))在他们的Windows 11/10系统上自动启动。如果您更倾向于使用经典版Outlook(Outlook (classic)&…

webpack优化

优化方向 热更新 概念 /** hmr: hot module replacement 热模块替换 / 模块热更新作用: 一个模块发生改变,只会重新打包这一个模块(而不是打包所有模块),极大的提升了构建速度样式文件: 可以使用hmr功能…

Facebook:数字时代的社交瑰宝

在当今数字化飞速发展的时代,社交媒体已经成为人们日常生活中不可或缺的一部分,而Facebook作为其中的领军者,不仅连接了全球数十亿的用户,更深刻地改变了人们的社交方式和生活方式。本文将探讨Facebook如何成为数字时代的社交瑰宝…