数据库加密作为近年来最为热门的数据库安全防护技术之一,逐渐被业界所重视和应用 。这种基于存储层加密的安全防护模式,不仅可以有效解决数据库明文存储的泄密风险,也可以防止来自组织机构内部、外部的入侵及越权访问 。
今天,安全牛有幸邀请到了专注数据库安全治理的安华金和的张道山、李潇来给大家讲解,目前市场上在不同场景下仍在使用的六大数据库加密技术的各自的优势和劣势,希望对有数据库治理方面需求的朋友有所借鉴 。
文章插图
数据库加密技术从诞生至今,已经历多个阶段,采用过多种实现方式,并一直处于持续发展之中 。对于数据库加密技术,我们可以从应用层、数据库中间件、数据库系统自身、数据库系统所依赖的文件系统以及存储硬件等方面考虑其具体实现 。
文章插图
图1:数据库加密层次
目前,不同场景下仍在使用的数据库加密技术主要有:应用系统加密、前置代理加密、后置代理加密、表空间加密、文件系统加密和磁盘加密 。本文将针对以上“六大”数据库加密技术的优势和劣势,逐一进行介绍:
应用系统加密技术被认为是最早的数据库加密形式 。但严格来讲,应用系统加密实际上是针对数据而非数据库进行的加密 。
文章插图
图2:应用系统加密技术原理
(一)优势
应用系统加密的优势就在于其灵活性,这种灵活性主要体现在两个方面 。一方面,应用系统加密可以与业务逻辑紧密结合,可以在应用系统的开发过程中,灵活地对相关业务中的敏感数据进行加密处理,且使用的加密函数、加密密钥等均可以根据业务逻辑的需要灵活选择 。另一方面,应用系统的开发商可以自行解决数据的加密和解密的所有问题,对数据库系统本身或第三方的数据安全厂商基本上没有依赖性 。
(二)劣势
相对于灵活性这种优势,应用系统加密本身也具有明显的劣势:
1、应用系统的开发无法透明化
任何与数据加密解密相关的处理逻辑和加密规则的变化都会导致应用系统进行代码级的修改和在生产环境中重新部署 。同时,任何使用加密数据的应用系统都必须在源码级处理数据的加密和解密操作,应用系统的开发商在考虑业务逻辑的同时,还必须兼顾相关数据的加密和解密处理 。
2、数据库系统的自身优势严重受损
数据库系统是专用于数据存储、管理和使用的基础软件系统,其很多设计原则都是为了更快地处理数据 。应用系统加密使得写入到数据库中的数据为密文数据,这会导致数据库系统自身具备的对数据进行高效组织和检索的能力因密文而严重受损 。应用系统必须自行处理数据库索引、查询分析、执行优化、事务处理、并发控制等工作,不但增加了应用系统的复杂度和工作量,还几乎损失了数据库系统自身的全部性能优势,同时也无法通过存储过程、自定义函数等数据库执行对象进行数据库内的高效数据运算和处理,无法利用触发器等机制保证数据库内数据间的复杂完整性,损失数据库系统性能的同时,也对数据库自身的完整性和健壮性造成负面影响 。
3、巨大的研发工作量和极高的技术复杂度
基于以上两点,应用系统加密的实现需要应用系统开发投入巨大的研发工作量,同时也需要很高的技术复杂度来部分保证数据库系统功能和性能,使得原本应该集中于应用系统业务逻辑的资源被无形地浪费 。
4、无法支持独立于数据库系统的增强权控
应用系统加密无法实现对数据库用户的数据访问权限的增强控制 。对于存储于数据库中的密文数据的访问,完全依赖于数据库自身的访问控制设置(包括自主访问控制和强制访问控制),数据库内置的管理员用户对密文数据具有完全的权限,虽然无法获取密文形式的敏感数据的具体内容,但可以对这些数据进行修改和删除 。
前置代理加密技术是在应用系统加密技术基础上发展起来的,其表现形式通常是由专业的数据安全厂商推出的数据库加密产品 。
文章插图
图3:前置代理加密技术原理
(一)优势
相比较于应用系统加密技术,前置代理加密技术使得最终用户从高度复杂且繁重的加密、解密处理逻辑的开发工作中解放出来,可以让用户有更多的时间和精力来处理业务逻辑 。具备数据库加密、解密等技术优势的第三方独立厂商能够以产品的形式提供专用的前置代理加密网关系统 。因此,使用前置代理加密技术时,应用系统可以独立于加密和解密功能进行演进 。
推荐阅读
- 阿里数据库开发规范解释:关联查询,为什么要建议小表驱动大表?
- 茶叶分类之六大茶类,我国六大茶类的分类标准
- 春季喝茶的禁忌,喝茶牢记六大禁忌
- 分布式数据库调优实践
- 详解PostgreSQL数据库压测工具之pgbench-tools
- 用Python连接4个常用数据库的URL写法,你掌握了吗?
- 关于Oracle数据库12c 新特性总结
- 常见加密算法 「asp.net core 系列」12 数据加密算法
- 茶叶是这样分类的,我国六大茶类的分类标准
- 六大营养误区让身体患上癌症