mysql 加密 tde_数据加密 - TDE透明数据加密原理

首先需要确定你需要加密的列,Oracle 10g数据库将为包含加密列的表创建一个私密的安全加密密钥(表秘钥),

然后采用你指定的加密算法(AES或3DES)加密指定列的明文数据。此时,保护表的加密密钥(表密钥)就非常重要了。

Oracle 10g通过一个master密钥来对表密钥进行加密。master密钥保存在一个叫做“钱夹(wallet)”的安全的地方,

钱夹可以是数据库服务器上的一个文件,加密的表密钥保存在数据字典中。

当用户插入数据到需要加密的列中的时候,Oracle 10g从钱夹中获取master密钥,用master密钥解密数据字典中的表密钥,

然后用解密后的表密钥加密输入数据,再将加密后的数据保存在数据库中。如下图所示:

04189d41196d1317de81bbabaf27a692.png

你可以加密表的部分或者所有列,例如一个表有4列,如上图所示,第2列和第3列被加密,但Oracle只会生成

一个表级的加密密钥,然后用这个密钥加密所有的加密列。在磁盘上,第1列和第4列是明文存储的,第2列和第3列是

加密存储的。由于数据是加密存储的,所有后续的组建例如备份和归档日志,都是加密的格式。

当用户查询一个加密列的时候,Oracle 10g透明的将加密的表密钥从数据字典中取出,再取出master密钥,

然后解密表密钥,再用解密后的表密钥来解密磁盘上加密的数据,最后返回明文给用户。

通过这种加密数据的方式,即使保存在磁盘上的数据被盗,由于master密钥并没有被盗,没有master密钥的情况下,

数据无法被获取。即使“钱夹(wallet)”被盗,如果没有钱夹密码master密钥还是无法获取。因此,即使窃贼盗取了

磁盘或者数据文件的拷贝,也无法解密数据。这样做满足了很多规则和指南的要求,而所有的这些并不需要修改应用程序或

者编写复杂的加密和密钥管理系统。

注意:

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

目前只有Oracle和微软的SQL Server支持TDE

在Windows环境下,MySQL 8.4数据库可以使用透明数据加密(Transparent Data Encryption,TDE)技术进行加密TDE是一种数据加密技术,可以在不改变应用程序的情况下,对数据库文件进行实时加密和解密。以下是TDEMySQL中的基本实现步骤: ### 1. 安装MySQL 8.4 首先,确保在Windows系统上安装了MySQL 8.4。可以从MySQL官方网站下载并安装。 ### 2. 配置TDEMySQL中,TDE通常通过密钥管理服务(KMS)来实现。以下是配置TDE的基本步骤: #### a. 创建主密钥 ```sql ALTER INSTANCE ROTATE INNODB MASTER KEY; ``` #### b. 创建表空间加密密钥 ```sql CREATE TABLESPACE encrypted_ts ADD DATAFILE 'encrypted_ts.ibd' ENCRYPTION='Y'; ``` #### c. 创建加密表 ```sql CREATE TABLE encrypted_table (id INT, data VARCHAR(100)) ENCRYPTION='Y'; ``` ### 3. 验证加密 可以通过以下命令验证表空间是否加密: ```sql SELECT space, name, flag, (flag & 8192) AS encrypted FROM information_schema.innodb_tablespaces; ``` ### 4. 备份和恢复 在备份和恢复加密的数据库时,需要确保密钥管理服务(KMS)的配置正确,以便在恢复时能够解密数据。 ### 5. 注意事项 - **密钥管理**:确保密钥的安全存储和管理,避免密钥泄露。 - **性能影响**:TDE会对数据库性能产生一定影响,需进行性能测试。 - **备份和恢复**:备份时需要包括加密密钥,以便在恢复时能够解密数据。 ### 6. 参考文档 - [MySQL官方文档 - TDE](https://dev.mysql.com/doc/refman/8.4/en/innodb-tde.html) - [MySQL官方文档 - 密钥管理](https://dev.mysql.com/doc/refman/8.4/en/key-management.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值