当前位置:首页 > 数据库

如何实现存储层数据加密,不妨试试透明加密(TDE)

数据库透明加密(Transparent Data Encryption,何实简称TDE)是现存一种用于加密数据库存储的数据的技术 ,它可以在数据库系统的储层文件或磁盘层面对数据进行加密 ,而不需要修改应用程序代码 。数据试试TDE 主要用于保护数据静态时的加密加密安全,即数据在硬盘上或备份介质中时的不妨安全。

特点 :透明性 :用户和应用程序无需更改就可以使用加密功能 ,透明因为加密和解密操作是何实自动进行的,由数据库管理系统来实现。高防服务器现存综合管理:加密密钥的储层生命周期(创建 、分配 、数据试试旋转和销毁)通常由数据库管理系统或专用的加密加密密钥管理基础设施来处理 。性能影响最小化 :TDE 旨在尽量减少对数据库性能的不妨影响 ,因此通常只加密敏感的透明数据(如表中的特定列)或整个数据库文件。工作原理:密钥生成:生成一个或多个加密密钥用于加密数据 。何实这些密钥可能包括数据库加密密钥(DEK)和主加密密钥(MEK)。数据加密 :当数据写入到磁盘时 ,数据库通过DEK进行加密;当数据读取时,再进行解密。密钥管理:MEK用于保护DEK ,亿华云并且通常存储在受保护的密钥库中 。MEK需要高度安全的存储和管理。访问控制:通常还会结合其他数据库安全技术,如角色基础的访问控制,来确保只有授权用户才能访问加密数据 。应用场景:数据保护:防止未经授权的访问者直接从物理介质上读取数据。符合法规:满足数据保护法规的要求,比如GDPR 、PCI DSS等,这些法规要求对敏感数据进行加密。数据隐私 :保护用户的服务器租用隐私信息 ,防止数据泄露给非授权人员 。支持TDE的数据库 :Oracle DatabaseMicrosoft SQL ServerIBM DB2MySQL Enterprise EditionPostgreSQL (通过第三方扩展支持)OceanBase 等OceanBase透明加密举例

数据存储加密是指对数据和 Clog 等保存在磁盘中的数据进行无感知的加密 ,即透明加密(简称 TDE) 。数据在写入存储设备前自动进行加密 ,读取时自动解密  ,该过程对用户是透明的,黑客和恶意用户无法从数据文件 、数据库备份或磁盘中读取到敏感数据。

两级密钥体系

透明数据加密使用两级密钥体系实现加解密功能。模板下载开启加密的最小粒度为数据库中的一个表 ,需要开启加密的表需要放到一个加密的表空间(Tablespace)中 。OceanBase 数据库数据的加密单位为表空间  ,表空间仅是为了兼容 Oracle 数据库而设计的概念,可以简单理解为表空间是一组表的集合 。每个加密的表空间设置有加密算法及对应的免费模板数据密钥 ,用于给表空间中的数据进行加密。每个租户有一个主密钥 ,用于对表空间的数据密钥进行加密  ,为了防止未经授权的解密操作 ,通常将主密钥存储于专门的 Keystore 中 。(此段内容引用自OceanBase官方文档)

缺点

启用透明数据加密(TDE)的列在进行模糊查询时,会出现性能下降。这是因为加密操作增加了处理数据时的计算负担,云计算并且会影响到数据库管理系统执行查询的方式。以下是几个性能下降的原因:

加解密开销:每当数据从存储介质读取或写入时,都需要进行加解密操作,这本身就需要额外的CPU资源 。索引效率降低 :在一些情况下 ,特别是对于加密的列数据建立索引时 ,索引的效率可能会受到影响,因为编制索引的是加密后的值而不是原始值 。这意味着某些索引优化策略可能无法应用,从而导致查询性能下降。模糊查询限制:像 LIKE 这样的模糊查询操作通常依赖于对数据的模式匹配。如果数据是加密的,数据库系统通常无法在未解密的数据上直接应用模式匹配。这就要求系统解密数据集中的每一行来进行比较  ,进一步增加了查询时间。内存和IO压力 :大量的加解密操作可能会增加内存和IO的压力,尤其是在处理大量数据时 。并发性能影响 :高并发环境下,多个查询同时进行加解密可能会导致资源竞争 ,降低整体数据库的性能。总结

透明加密目前是比较成熟的数据存储加密方案,但在模糊查询的场景下,性能会出现比较大的性能损耗  ,在使用时需要注意只加密敏感信息,并减少敏感信息的模糊查询。

分享到:

滇ICP备2023000592号-28