数据库的加密类型有很多,在不同场景下的加密方法也有所不同,今天我们就一起来了解一种名为“应用系统加密”的数据库加密技术。
应用系统加密技术简介
应用系统加密技术被认为是最早的数据库加密形式。但严格来讲,应用系统加密实际上是针对数据,而非数据库进行的加密。
它实现的技术原理是在应用系统层的源代码中对敏感数据进行加密,加密后将密文存储到数据库中。
应用系统加密可以直接在应用系统的源代码中以独立的函数或模块形式完成加密;也可以通过源代码的方式封装出应用系统相关业务专用的加密组件或定制的加密API来完成加密。
应用系统加密技术的优点
应用系统加密的优势就在于其灵活性,这种灵活性主要体现在两个方面:
- 应用系统加密可以与业务逻辑紧密结合,可以在应用系统的开发过程中,灵活地对相关业务中的敏感数据进行加密处理,且使用的加密函数、加密密钥等均可以根据业务逻辑的需要灵活选择。
- 应用系统的开发商可以自行解决数据的加密和解密的所有问题,对数据库系统本身或第三方的数据安全厂商基本上没有依赖性。
应用系统加密技术的不足
- 应用系统的开发无法透明化
任何与数据加密解密相关的处理逻辑和加密规则的变化都会导致应用系统进行代码级的修改和在生产环境中重新部署。
同时,任何使用加密数据的应用系统都必须在源码级处理数据的加密和解密操作,应用系统的开发商在考虑业务逻辑的同时,还必须兼顾相关数据的加密和解密处理。
- 数据库系统的自身优势严重受损
数据库系统是专用于数据存储、管理和使用的基础软件系统,其很多设计原则都是为了更快地处理数据。
而应用系统加密使得写入到数据库中的数据为密文数据,这会导致数据库系统自身具备的对数据进行高效组织和检索的能力因密文而严重受损。
应用系统必须自行处理数据库索引、查询分析、执行优化、事务处理、并发控制等工作,不但增加了应用系统的复杂度和工作量,还几乎损失了数据库系统自身的全部性能优势,同时也无法通过存储过程、自定义函数等数据库执行对象进行数据库内的高效数据运算和处理,无法利用触发器等机制保证数据库内数据间的复杂完整性,损失数据库系统性能的同时,也对数据库自身的完整性和健壮性造成负面影响。
- 巨大的研发工作量和极高的技术复杂度
基于以上两点,应用系统加密的实现需要应用系统开发投入巨大的研发工作量,同时也需要很高的技术复杂度来部分保证数据库系统功能和性能,使得原本应该集中于应用系统业务逻辑的资源被无形地浪费。
- 无法支持独立于数据库系统的增强权控
应用系统加密无法实现对数据库用户的数据访问权限的增强控制。对于存储于数据库中的密文数据的访问,完全依赖于数据库自身的访问控制设置(包括自主访问控制和强制访问控制),数据库内置的管理员用户对密文数据具有完全的权限,虽然无法获取密文形式的敏感数据的具体内容,但可以对这些数据进行修改和删除。
免责声明:素材源于网络,如有侵权,请联系删稿。