透明加密
GaussDB(DWS)支持透明数据加密(Transparent Data Encryption简称TDE或透明加密),对数据文件进行实时加密和解密,保护用户数据隐私。
功能介绍
透明数据加密(TDE)是指加密GaussDB(DWS)的数据文件。 通常在数据库的安全防护措施里面,可以采取一些消减措施来帮助保护数据安全。例如,设计一个安全系统、加密机密资产以及在数据库服务器的周围构建防火墙。 但是,如果遇到物理介质(如硬盘)被黑客或者内部人员盗取的情况,恶意破坏方只需还原或附加数据库即可浏览用户数据。 有一种解决方案是加密数据库中的敏感数据,并保护加密数据的密钥,该方案可以防止任何没有密钥的人使用这些数据,但这种保护必须事先计划。GaussDB(DWS)提供了完整的解决方案TDE。
TDE可对数据实时I/O加密和解密,只要打开透明加密开关,对正常使用的用户是无感知的。 这种加密使用数据库加密密钥 (DEK),该密钥不会直接存储在数据库系统中。 DEK是使用存储在KMS服务器的集群密钥(CEK)保护的对称密钥,数据库服务器仅仅保存其密文。在数据库启动阶段,数据库连接KMS服务器,并且解密DEK密文,从而获取到密钥明文,缓存在内存中。一旦机器下电或者集群关闭,密钥将会被清理。因此,需要保护好集群中的密钥文件,因为一旦丢失,则会造成不可恢复的危害。
使用场景
传统数据库集群中,用户数据明文保存在行存/列存文件中,集群的维护人员或者恶意攻击者可在OS层面绕过数据库的权限控制机制或者窃取磁盘直接访问用户数据。GaussDB(DWS)通过对接华为云数据加密服务的密钥管理KMS,可实现数据的透明加密,保障用户数据安全。
GaussDB(DWS)数据库级透明加密,每个GaussDB(DWS)集群有一个CEK,每个数据库单独配置DEK加密保护,DEK使用CEK加密保护,保存在GaussDB(DWS)集群侧。密钥通过KMS服务申请和加解密,加密算法通过配置项统一配置。目前支持AES、SM4算法。
当前支持数据库级别的透明加密,在创建集群的时候进行加密配置。
了解更多请参见数据库加密简介。
TDE加解密原理
透明加密所有加密解密操作均在内存中进行,内存中的数据是明文,磁盘中的数据是密文。数据库的使用方式保持不变,透明加密不会影响数据加工和SQL执行。