透明数据加密
为了满足保护用户数据安全的需求,Apache Cloudberry 支持透明数据加密(Transparent Data Encryption,简称 TDE)功能。
透明数据加密(TDE)是一种用于加密数据库数据文件的技术:
- 数据指的是数据库中的数据。
- 文件在硬盘上以密文存储,在内存中以明文处理,TDE 用于保护静态数据,因此也叫静态数据加密。
- “透明”意味着用户无需改变操作习惯,TDE 自动管理加密/解密过程,无需用户或应用程序干预。
加密算法简介
基本概念
- DEK (Data Encryption Key):用于加密数据的密钥,由数据库生成,存储在内存中。
- DEK 明文:与 DEK 同义,只能保存在内存中。
- Master Key:主密钥,用于加密 DEK。
- DEK 密文:使用 Master Key 加密后的 DEK,持久化存储。
密钥管理模块
密钥管理模块是透明数据加密的核心组件,采用两层密钥结构:Master Key 和 DEK。Master Key 用于加密 DEK,存储在数据库外部;DEK 用于加密数据库数据,密文形式保存在数据库中。
算法分类
加密算法分为两类:
- 对称加密:加密和解密使用相同密钥。
- 非对称加密:公钥加密,私钥解密,适合一对多、多对一的加密需求。
对称加密中的分组加密算法是主流选择,性能优于流加密和非对称加密。Apache Cloudberry 支持 AES 和 SM4 两种分组加密算法。
AES 加密算法
AES 是国际标准的分组加密算法,支持 128、192 和 256 位密钥,常见加密模式包括:
- ECB: 电子密码本模式
- CBC: 密码分组链表模式
- CFB: 密文反馈模式
- OFB: 输出反馈模式
- CTR: 计数器模式
更多 ISO/IEC 加密算法
更多 ISO/IEC 算法包括:
- ISO/IEC 14888-3/AMD1(即 SM2):非对称加密,基于 ECC,性能优于 RSA。
- ISO/IEC 10118-3:2018(即 SM3):消息摘要算法,类似 MD5,输出 256 位。
- ISO/IEC 18033-3:2010/AMD1:2021(即 SM4):无线局域网标准的对称加密算法,支持 128 位密钥和分组长度。