在“动态数据安全,数据全生命周期管控”的理念下,需在数据全生命周期的各个重要环节建立防护,组成多层联合防护体系。数据库加密是多层防护体系中最核心的一层,基于主动防御机制,通过对数据加密存储,可有效防止内部违规操作下载或复制数据库文件、以及直接分析数据文件导致的数据泄露;可以应对外部黑客拖库攻击,未被授权的加密敏感信息不会被泄露;可以通过增强的访问控制,让DBA或者高权限账号无法获得明文的敏感数据。
数据库加密既要满足合规要求,又要满足用户的业务需求。
1
合规要求
敏感数据加密存储
秘钥单独存储和管理
支持国密算法
增强的访问控制,无权限不能访问明文数据
2
业务需求
业务系统改动少或者业务系统无需改造
存量数据加密
保证加密数据不丢失
数据库加密理论上可以有多种技术实现方式,目前业内数据库加密采用比较广泛的方式是数据库原生加密和应用改造加密,明朝万达的数据库加密同时支持这两种方式。
1
数据库原生TDE加密
采用数据库自身的TDE加密功能,数据库加密后对外部保持透明特性,支持查询、插入、更新、删除等操作、支持SQL语句访问、存储过程、触发器、用户自定义函数、主键、外键、各种约束等特性,支持密文索引。数据库运维工具及通用的SQL语句、存储过程、开发接口完全透明访问,无需任何改造。

明朝万达数据库原生TDE加密可以支持的加密方式有以下三种:

▷库级加密:整个数据库作为一个加密单位,使用统一的加密算法和数据加密密钥。
▷ 表空间级加密:以表为加密单位,也可以多个表合并为一个空间组作为一个加密单位,每一个表(或者一个表空间组)使用一个数据加密密钥和加密算法。
▷ 列级加密:以数据列为加密单位,每一列有自己的数据加密密钥和加密算法。
数据库原生TDE加密的一个效果是对数据存储文件做了加密处理。直接查看加密前的数据存储文件,能看到明文信息,敏感信息容易泄露;加密后的数据存储文件,就不能直接看到明文信息。这样即使文件被泄露也不会引起敏感数据泄露。
数据库原生TDE加密的另外一个效果是对应用透明,即原来的业务系统直接访问数据库,加密与否是无感知的。因此需要通过增强的访问控制机制,防止无权限访问敏感数据行为。明朝万达数据库原生TDE加密通过动态脱敏代理服务方式,实现增强的访问控制机制。
2
应用改造加密
应用改造加密需改造应用系统,由应用系统自主调用加密引擎接口实现对数据的加密和解密。

▷ 数据加密:业务系统先调用加密系统接口,实现对明文数据加密,最后由业务系统存入数据库中;
▷ 数据解密:业务系统从数据库中读取到密文数据,然后调用加密系统接口,得到明文数据。
明朝万达数据库加密支持保真加密,这样能让业务系统某些查询业务不需要改造;支持和第三方加密卡集成,实现一些硬加密算法,例如SM1国密算法,满足密评要求。同时,数据库运维人员直接访问数据库查看到的是加密后的密文数据,可以达到防止敏感数据泄露目的。
明朝万达应用改造加密通过任务订阅模式对外开放数据加密和解密能力。

可以根据不同的加解密需求,订阅不同的引擎任务,每一个引擎任务有独立的http ret 调用接口,同时提供单独的sdk调用集成包下载。用户业务应用系统可以通过调用引擎任务的ret接口或者集成sdk调用接口,实现单纯的数据加密和解密处理。系统可以挂载硬件加密卡或加密机,实现硬件加密算法例如SM1国密算法的集成。
加密引擎接口的数据结构可配置成和业务系统的数据库表和字段一样的结构,业务系统只需要在数据库jdbc接口调用的地方,插入调用加密引擎接口实现数据加密解密,不需要调整原有应用功能的业务逻辑,达到对应用系统改造最小化的目的。