数据库加密之基于视图和触发器的后置代理技术


数据库加密

这种技术使用“视图”+“触发器”+“扩展索引”+“外部调用”的方式实现数据加密,同时保证应用完全透明。它的核心思想是充分利用数据库自身提供的应用定制扩展能力,分别使用其触发器扩展能力、索引扩展能力、自定义函数扩展能力以及视图等技术来满足数据存储加密,加密后数据检索,对应用无缝透明等最主要需求。

这种方案的技术原理主要有以下四个方面:

(1)通过视图实现加密数据透明查询处理

数据库的视图可以实现对表内数据的过滤、投影、聚集、关联和函数运算。该方案正是通过数据库的视图原理实现对数据的透明访问;首先对将原有的表进行改名,然后在该表上建立与原表同名的视图;在视图内实现对敏感列的解密函数调用,实现数据的解密。

(2)通过触发器实现数据的加密插入和更新处理

数据库中的触发器可以实现对数据更新动作的特定行为的响应,同时数据库中可以支持针对视图的触发器。这种方案在建立的视图上建立Instead of触发器,通过Instead of触发器实现对明文数据的加密,将加密数据插入到表中。

(3)通过数据库的扩展索引接口实现加密索引

以Oracle数据库为例,在Oracle Data Cartridge的索引扩展机制提供了一套现成的框架,可以自己定义索引并实现Operator,自行编写索引在Create Index、Insert、Delete、Update语句执行、以及Scan Index发生时的相应处理代码。通过该机制,可以使用自定义的扩展加密索引,这样当使用该索引对加密数据进行检索时,可以进行正常的排序及比较,这也就解决了加密后数据检索的难题,大幅度提升了密文检索的效率。

(4)通过外部接口调用实现独立于数据库的权限控制和国产加密算法

在实现透明加密访问和高效索引访问之外,另一重要目的是实现对国产加密算法的调用和独立于数据库的权限控制。实现这一目的的技术关键是外部程序调用和外部通讯支持。在数据库中支持外部程序调用,只要定义好通讯接口即可。那么这种方案可以将加密函数和解密函数做成外部调用,这样不仅可以在外部调用国产加密设备的加密算法,还可以将权限校验过程放在数据库之外完成,确保了对超级用户的权限限制。

相关推荐

数据库加密实现方式有哪些?(二)

(一)库内扩展加密 通过使用视图、触发器、扩展索引等机制,实现透明加密。由于引入了独立于数据库的第三方程序,通过控制加密解密的权限,增加了额外的访问控制。对于数据库内不同的用户,也可以控制其对加密数据 ...

数据库加密实现方式有哪些?(一)

(一)全盘加密 采用全盘加密系统或者存储加密网关系统,将数据库文件所在的磁盘扇区进行加密。当数据库访问磁盘扇区的时候,对加密扇区再进行解密。这种方式对于数据库自身来说是透明的,数据库管理系统也感觉不到 ...

国内数据库加密产品经历了哪些阶段?

国内数据库加密产品的发展可以分为三个阶段: 第一个阶段是摸索阶段。在2003年之前,国内的数据库加密手段是通过反编译国外安全数据库系统完成的。国外安全版本的数据库系统具有加密功能,有国内技术人员对其进行逆 ...

什么是数据库?为什么要对数据库加密?

1.什么是数据库? 数据库是所有信息系统的核心,数据库的安全通常是指其中所存数据的安全,是网络安全、信息安全的重要组成部分。而对数据库中数据的加密保护,是数据库安全的重要内容。数据库加密是指将存储于数据 ...

微信扫一扫,分享到朋友圈

数据库加密之基于视图和触发器的后置代理技术