关键字:
KingbaseES、透明存储加密、数据加密、安全特性
1.什么是透明存储加密?
透明存储加密(Transparent Data Encryption,TDE)是指数据在写到磁盘上时对其进行加密,当授权用户重新读取数据时再对其进行解密。无需对应用程序进行修改,授权用户甚至不会注意到数据已经在存储介质上加密,加密解密过程对用户都是透明的。
透明存储加密能够加密存储在表和表空间的敏感数据,当授权用户或应用程序访问此数据时,将以透明的方式解密此数据。有助于在存储介质或数据文件被盗时保护存储在介质上的静态数据。
2.透明存储加密的特性
- 数据加密
采用表空间加密的方式对存在于加密表空间里面的数据库对象及数据加密。
- 备份还原加密
备份时通过指定密钥加密逻辑备份的备份文件,还原时通过备份时的密钥对数据库进行还原。
- 完整性校验
备份时会在备份文件头计算生成校验码,还原时对加密的备份文件做完整性校验,确保备份文件没有被改动。
3.透明存储加密的类型
加密对象包括表空间和表,对应的加密方式分别为表空间加密和表加密,每种加密方法是互斥的,同一加密对象不允许支持多种加密方法。
- 表空间加密
采用页面级的块加密和块解密。块加密是在数据页面需要同步到外存时进行加密操作;从外存读取数据页面到缓冲区时,首先进行解密操作。内存中的数据都是解密后的数据。
表空间加密能够加密表空间中存储的所有数据,在读取和写入操作期间对数据进行加密和解密操作。
- 表加密
表加密功能采用加密算法保护数据库的数据在磁盘上不被非法获取。加密的对象包括表文件、表索引、辅助文件,以数据表为粒度指定是否加密。
4.表空间加密使用
- 创建加密表空间文件
! mkdir /home/yinbq/KES_Server/dbs1;
- 开启钱包
OPENUP WALLET WITH PASSWORD "123456";
- 创建加密表空间
create tablespace dbs1 location '/home/yinbq/KES_Server/dbs1' with (encryption = true);
- 创建表并插入测试数据
create table testdbs1(id int,col varchar(30)) tablespace dbs1;
insert into testdbs1 values(1,'aaaa');
checkpoint;
- 查看是否加密
hexdump –c sys_tblspc/16428/SYS_12_201909212/16049/16436 | grep a