TDE数据库透明加密

TDE数据库透明加密

Oracle 数据库安全

HSM支持ORACLE TDE安全图

为了解决客户在使用带有敏感数据的系统时,希望能增强数据库安全性的考虑,在使用过程中,管理员不能随意地查询数据库数据或篡改数据。
本文描述的解决方案通过TDE加密技术能良好地在数据库上应用。既不影响既有使用,又能增强数据库安全性,防止信息外泄或者被盗取后不会被随意地使用传播。

(一)TDE背景

       TDE是Oracle10gR2中推出的一个新功能,所以在规划使用TDE的时候,要保证Oracle版本是在10gR2或者以上。10g只能使用列加密,11g开始提供表空间加密。对数据列加密是TDE一个常用的功能,常需要对数据库中某个表的某个敏感数据进行加密处理,防止信息的外泄。当用户插入数据的时候,数据库透明地加密数据然后存储加密后的数据。同样的,当用户读取数据时,数据库自动进行解密。最后返回明文给用户。

        由于加密解密操作对应用程序来说都是透明的,不需要应用程序修改代码,因此这个特性就叫做:透明数据加密(TDE)。用户甚至都不需要知道发生过加密和解密——也就是所谓的透明。全部都是由Oracle代码内部完成,不需要任何触发器或者复杂的过程逻辑。

        由于数据是加密存储的,所有后续的组建例如备份和归档日志,都是加密的格式。通过这种加密数据的方式,即使保存在磁盘上的数据被盗,也无法解密数据。这样做满足了很多规则和指南的要求,而所有的这些并不需要修改应用程序或者编写复杂的加密和密钥管理系统。

      TDE涉及3个密码,一个是钱夹密码,用来启动钱夹;一个是master密钥,用来加密解密表密钥;一个是表密钥,用来加解密数据,钱夹密码是用户手工输入的,master密钥和表密钥是系统管理的。


Oracle TDE工作原理图

(二) 系统方案

通过开启HSM提供的密钥库来支持TDE做加密/解密:

根据密钥库打开和关闭状况可以实现如下安全特性;

我们的密钥库打开状态:


1、数据库:密钥库打开状态下,查询分析器可以通过查询语句查询加密列、非加密列;

2、敏感数据表:打开状态下,增删改等系统操作不受影响,可以正常操作,且保存成功。列表也可展示数据。

我们的密钥库关闭状态:

1、关闭状态下,查询分析器无法查询加密列、但是可以显示查询非加密列;

2、关闭状态下,无法在带敏感数据的系统上进行系统操作。

(三)性能问题

   由于加密、解密消耗CPU,因此需要考虑性能的影响。当访问表中不加密的列时,性能和不使用TDE的表没有任何差别。只有在访问加密列的时候,会有小的性能负担,包括查询加密列和插入加密列。


(四)优势

      使用TDE加密的优势是:该功能仅需少量的编码工作,并且实施过程快速、简便。数据库文件的加密在页级别执行。 已加密数据库中的页在写入磁盘之前会进行加密,在读入内存时会进行解密。 TDE不会增加已加密数据库的大小。

     以上方案总结,TDE主要是用于数据文件被窃取的场景,由于加密后的数据与master key是分开存放的,所以即使数据文件被窃取,攻击者也无法解密。而且即使master key 与Data同时被窃取,由于master key是被口令加密的,攻击者同样无法解密。也不会增加数据库负担。只要开启密钥库,使用与平常无异,但一旦关闭密钥库,无法再进行正常的带敏感数据库系统操作。





密钥管理图

Oracle 数据库安全在信息安全中的作用

本文提供数据安全解决方案(Oracle+TDE),目的在于客户在使用数据库中敏感数据时,希望能增强数据库安全性的考虑,在使用过程中,管理员不能随意地查询数据库数据或篡改数据。

- 已有位行业相关人员关心此类安全问题
我们在实践的更多用例

探索当前热门场景的安全用例

微软SQL始终加密用例

微软SQL数据库加密功能使用案例

微软用金融加密机用例

Azure实践泰雷兹payShield HSM产品

AI 机器人安全案例

某公司搬运机器人解决方案