(二)劣势
在前置代理加密技术中,数据在写入数据库时也已经是密文,因此,和应用系统加密技术相同,前置代理加密技术也有开发过程无法透明化、数据库自身特性优势丧失的显著缺点,同时,前置代理加密网关封装了加密、解密的处理逻辑和管理规则,代替数据库服务进行大量复杂的数据管理和处理操作,因此其本身的实现也有很高的技术复杂度且需要投入巨大的工作量,即便是对于具备数据库加密、解密等技术优势的第三方独立厂商,这些问题也是一个困难的挑战 。
为了避免数据加密给数据访问和处理带来性能上的严重损失,部分数据库厂商在数据库引擎层提供了一些扩展接口和扩展机制 。通过这些扩展的接口和机制,数据库系统用户可以通过外部接口调用的方式实现对数据的加解密处理,同时也能够在一定程度上降低对数据库系统性能的影响 。
文章插图
图4:后置代理加密技术原理
(一)优势
相比于之前的两种加密技术,后置代理加密技术有明显的优势,其中最突出的是应用完全透明性和提供独立权控体系:
1、应用透明
根据上面的技术原理,后置代理加密是在数据库层面对敏感数据进行处理,应用系统对数据本身及处理过程完全无感知 。因此,启用数据库加密对应用系统不会产生影响,应用系统不用做任何改造即可获得数据加密存储的收益 。应用系统包括但不限于传统SQL、数据库内的存储过程和自定义函数、执行数据库操作与管理的脚本、数据库管理工具和用户的业务系统 。
2、独立权控体系
使用后置代理加密技术,可以在外置的安全服务中提供独立于数据库自有权控体系之外的权限控制体系,可以有效防止特权用户(如DBA)对敏感数据的越权访问 。
3、细粒度加密
后置代理加密技术可以实现精确到列级的细粒度加密,这一优势是由后置代理加密技术的具体实现决定的 。
(二)劣势
1、开放性较差
后置代理加密技术对数据库开放性有较强的依赖,需要数据库产品具备外部接口调用能力,但遗憾的是,并非所有商业数据库都具备这种能力 。
2、部分场景下性能表现不够好
后置代理加密技术是通过多级视图及创建于其上的触发器进行外部接口调用来实现加密解密和独立权控能力的,触发器的运行机制要求对加密表中每一条数据中的每个加密列的读或写都会进行一次外部接口调用,因此,当查询中涉及的加密列较多时,或查询涉及的加密列不多但查询结果集中返回大量数据时,后置代理加密技术对数据库的整体性能会有一定的影响,甚至在极端情况下无法满足业务要求 。
后置代理加密过于依赖数据库自身所具备的扩展机制,且数据在数据库共享内存中也是密文,导致在部分场景下的数据库性能表现不佳 。因此,基于后置代理加密技术又发展出了透明数据加密技术,目的是在保持后置代理加密优势的同时,降低对数据库自身扩展机制的依赖性,从而让数据库系统性能保持在相对合理的水平之上 。
文章插图
图5:透明数据加密技术原理
(一)优势
和后置代理加密技术一样,透明数据加密技术具备应用完全透明性,此外,插件形式的透明数据加密技术也可以提供独立权控体系,同时可以不依赖于数据库自身的一些特殊功能,具有较强的开放性:
1、应用透明
透明数据加密也是在数据库层面对敏感数据进行处理,应用系统对数据本身及处理过程完全无感知 。因此,透明数据加密技术在应用时也不会对现有的应用系统产生影响,应用系统不用做任何改造即可获得数据加密存储的收益 。
2、独立权控体系
使用插件形式的透明数据加密技术,同样可以在外置的安全服务中提供独立于数据库自有权控体系之外的权限控制体系,可以有效防止特权用户(如DBA)对敏感数据的无限制访问,进一步保证敏感数据不会被不正当地访问和泄露 。
3、更强的开放性
相对于后置代理加密技术依赖于数据库的外部索引接口、外部接口调用等特殊功能,透明数据加密技术对数据库自身的依赖性小,因此可以在更多类型的数据库上使用透明数据加密技术 。
4、性能优势
透明数据加密加密技术本身只是对数据库引擎的存储管理层进行了功能增强,并不影响数据库引擎的语句解析和优化等处理过程,数据库自身在数据存储、管理和使用等方面的所有优势都依然可以保留,因此,透明数据加密技术相对于前面几种数据库加密技术具备性能上明显优势 。
推荐阅读
- 阿里数据库开发规范解释:关联查询,为什么要建议小表驱动大表?
- 茶叶分类之六大茶类,我国六大茶类的分类标准
- 春季喝茶的禁忌,喝茶牢记六大禁忌
- 分布式数据库调优实践
- 详解PostgreSQL数据库压测工具之pgbench-tools
- 用Python连接4个常用数据库的URL写法,你掌握了吗?
- 关于Oracle数据库12c 新特性总结
- 常见加密算法 「asp.net core 系列」12 数据加密算法
- 茶叶是这样分类的,我国六大茶类的分类标准
- 六大营养误区让身体患上癌症