数据库透明加密技术
2021-08-19 13:57:13 2 举报
AI智能生成
该思维导图介绍并罗列了主流的数据库透明加密技术,并对其中常用技术做了详细的说明。后续会做做更一步深入的研究,若前期克隆了的伙伴想获得后期更详细的文档,底下评论,免费获得。
作者其他创作
大纲/内容
概述:透明加密技术是近年来针对企业数据保密需求应运而生的一种数据加密技术。所谓透明,是指对使用者来说是透明的,感觉不到加密存在,当使用者在打开或编辑指定文件时,系统将自动对加密的数据进行解密,让使用者看到的是明文。保存数据的时候,系统自动对数据进行加密,保存的是密文。而没有权限的人,无法读取保密数据,从而达到数据保密的效果。
数据库加密是指将存储于数据库中的数据,尤其是敏感数据,以加密的方式进行存储。本文所说的数据库加密都是指数据库透明加密。
什么是数据库加密?
数据库透明加密是指对库内数据的加密和解密,对数据库的访问程序是完全无感知的。特别是应用系统,不需要做任何修改和编译,就能够直接应用到加密库上。
与透明加密相对应的,是在应用系统中对数据进行加密,然后再存储到数据库中。需要真实数据的时候,从数据库中读取密文,再解密出明文。严格的说,这种方式并不是数据库加密,而是数据加密。
什么是数据库透明加密?
开头已经介绍了数据库和数据的重要性,所以对数据库进行加密是数据安全防护中最核心的手段之一。
数据类型分两种,一种是非结构化数据,比如文档和图片,另一种是结构化数据,比如数据库中的数据。这两种形态的数据都非常重要,都需要进行加密保护。而结构化数据,通常所承载的是非常集中且极有价值的信息,因而对其进行加密保护尤为重要。
面对敏感数据频繁泄漏的严峻现实,虽然加解密过程将损害数据库的使用效率,但对数据库进行加密仍是不得不为的必要防护措施。数据库加密能够显著提升数据库的安全性。加密后,数据以密文的方式存储,防止了数据直接暴露,同时增强对加密数据的访问控制,大大降低了数据被泄漏和恶意破坏的风险。
为什么要对数据库进行加密?
外框
前言
概述:也叫全盘加密,采用全盘加密系统或者存储加密网关系统,将数据库文件所在的磁盘扇区进行加密。当数据库访问磁盘扇区的时候,对加密扇区再进行解密。
这种方式对于数据库自身来说是透明的,数据库管理系统也感觉不到加密解密过程的存在
这种加密方式工作在存储层,能防止磁盘丢失时敏感数据遭受泄漏
优点
所有对磁盘具有访问权限的用户都可以访问到真实的数据库文件,因而,对于控制了操作系统的黑客来说,并没有防护能力。
缺点
磁盘加密
概述:在操作系统文件驱动层将数据库的存储文件经过加密后存储到磁盘上。当数据库访问存储文件的时候,再进行解密
实体层级示意图
工作原理
这种技术巧妙的绕过了让各路英雄头疼的问题。对数据库高端特性兼容、查询检索性能保障、统计分析效率等关键技术指标均有较好的适应情况。
这种加密方式能防止磁盘丢失和文件被复制导致的敏感数据泄漏
对于控制了数据库系统的黑客来说,文件还是开放的,因而也没有真正的防护能力
操作系统或文件系统级加解密,对不同平台适应性较差,而且与内核绑定过重,一旦出现程序故障,会对操作系统造成较大影响,容易导致业务中断
操作系统或文件级加解密的权控在系统层,因此无法单独完成对不同数据库账号的访问权限的设置,需要和其他产品与技术进行组合
操作系统或文件级的加解密针对落地文件进行操作,加解密粒度比较粗糙,无法针对列级进行加密
文件加密
概述:某些数据库自身提供了加密机制,在数据库内核实现了存储的加密
但是,对于控制了数据库系统的黑客来说却是开放的,并没有防护能力
而且其密钥管理通常不会对数据库用户开放,安全性得不到保证,也得不到国内相关评测机构的认可。
数据库内核加密
概述:通过使用视图、触发器、扩展索引等机制,实现透明加密,这种技术是使用“视图”+“触发器”+“扩展索引”+“外部调用”的方式实现数据加密,同时保证应用完全透明。核心思想是充分利用数据库自身提供的应用定制扩展能力,分别使用其触发器扩展能力、索引扩展能力、自定义函数扩展能力以及视图等技术来满足数据存储加密,加密后数据检索,对应用无缝透明等核心需求。
技术架构
由于引入了独立于数据库的第三方程序,通过控制加密解密的权限,增加了额外的访问控制。
对于数据库内不同的用户,也可以控制其对加密数据的访问
但是这种加密方式不能越过应用系统,实现应用系统用户对敏感数据的访问控制
而且这种加密方式依赖于数据库系统的扩展索引机制,并不能在所有数据库上实现。
数据库扩展加密
概述:通过对数据库前端部署数据库加密网关,或者通过扩展数据库访问驱动(如JDBC驱动)实现数据库加密
这种方式理论上能够支持所有的数据库,是一种通用的解决方案,且安全性更高
由于在安全增强代理中需要存储加密数据,因此要解决与数据库存储数据的一致性问题,这基本不可实现。
数据的联合检索问题:由于在数据库内外都存在数据,这些数据的联合检索将变得很困难;SQL语法的完全兼容也非常困难
开发无法透明问题:数据库协议虽然存在标准,但事实上每个不同的数据库版本都会进行若干变更、扩展和增强,使用了这些特性的用户必须进行改造。同时在安全代理中对数据库通讯协议的模拟非常困难。
数据库的优化处理、事务处理、并发处理等特性都无法使用:查询分析、优化处理、事务处理、并发处理工作都需要在安全增强器中完成,无法使用数据库在并发处理和查询优化上的优势,系统的性能和稳定性更多地依赖于安全代理;
对于对存储过程、触发器、函数等存储程序的实现支持也非常困难。
技术瓶颈
该技术需要在安全代理服务层提供非常复杂的数据库管理功能,如:SQL命令解析,通讯服务,加密数据索引存储管理、事务管理等等,因此存在巨大的开发工作量及很高的技术复杂度,此外还有类似于存储过程、触发器等无法解决的技术问题
总结:
数据库网关和驱动加密
概述:在应用系统之前放置加密网关,进一步将数据加密的位置提前,在数据进入应用系统之前进行加密
子主题
这种加密方式可以控制应用系统的用户对数据的访问权限,并且真实数据对所有数据库用户都是不可见的,是最安全的一种加密方式
事实上,这种加密方式与具体的数据库无关,是对立与数据库的
但是由于应用系统的复杂性,实现的难度也较大
应用加密网关
总结:数据被加密的位置离用户越近,安全性越高,同时实现的难度也越大。以上所述的几种加密方式,数据加密的位置离用户是逐步靠近的,防护能力也是逐步提升的。目前国内数据库安全市场主流的数据库加密方式是库内扩展加密
数据库加密实现方式
透明性足够好。不影响sql语句执行,不需要应用改造已上线系统。
既能满足多节点,数据分区等特性,又满足该数据库常用的运维工具和手段。
即使对密文字段进行统计分析,或批量模糊查询,也能保证其可用。
密钥独立,权控独立,算法独立(国密),均纳入刚需。
有没有一种加密手段能够满足如下要求呢?
放眼目前的技术体系,多数商业数据库已经提供了基于存储文件层进行加解密的手段,尽管不同数据库实现机制可能不同,但是这些技术手段统称为TDE(transparent Data Encryption),并且作为数据库的组件提供用户使用。这种组件的优点显而易见:第一,来自原厂,兼容适配有保障;第二,在逻辑层之下,存储层之上进行加密,保证数据库高端检索查询特性无损。同时不影响透明性。
压力下的技术突破—表空间加密技术
数据库透明加密技术
0 条评论
回复 删除
下一页