数据库加密系统是一款基于透明
加密技术、主动
防御机制的数据库防泄漏系统,该产品能够实现对数据库中的敏感
数据加密存储、
访问控制增强、应用访问安全、
安全审计以及三权分立等功能。有效防止明文存储引起的数据泄密、突破
边界防护的外部
黑客攻击、来自于内部高权限用户的
数据窃取,防止绕开合法
应用系统直接访问数据库,从根本上解决数据库敏感数据泄漏问题,真正实现了数据高度安全、应用完全透明、
密文高效访问等技术特点。
应用介绍
应用背景
当前我国
涉密部门(
军队、
军工、
政府、金融行业、
保险行业、电信行业等)中,80%以上
应用系统使用国外数据库产品,特别是
Oracle;如何保证系统在高性能、高可用的同时提升数据的安全性,确保关键信息不被泄露、
国家利益不受损失已经迫在眉睫。
政策要求
2020年1月1日,《
中华人民共和国密码法》正式施行,对数据库加密技术提出了密码
技术要求,国家对密码实行
分类管理。密码分为
核心密码、普通密码和
商用密码。
第七条 核心密码、普通密码用于保护
国家秘密信息,核心
密码保护信息的最高密级为绝密级,普通密码保护信息的最高密级为机密级。
核心密码、普通密码属于国家秘密。密码管理部门依照本法和有关法律、
行政法规、国家有关规定对核心密码、普通密码实行严格
统一管理。
存在问题
当前主流Oracle安全增强方案包括前置代理、
应用加密和Oracle自带加密
选件TDE等。前置代理需要应用大幅改造、大量Oracle核心特性无法使用;应用加密必须由应用实现
数据加密,加密数据无法检索,已有系统无法透明移植;TDE不能集成国产
加密算法,不符合国家密码政策。因此这几种方案一直未能得到有效推广。
成熟的数据库
加密软件应该解决两大重要难题,一是应用透明,二是密文索引。在安装了数据库加密软件后,原有的应用系统基本不需要改造,因为大型的应用程序改造起来很困难,有的甚至
源程序没有了,导致无法改造;明文转为密文后,原有按明文构造的索引必然失效,这就需要按照密文对应明文查询的顺序构造密文索引,通过密文索引可以让数据库查询速度几乎不减慢。
实现技术
对数据进行加密,主要有三种方式:系统中加密、客户端(DBMS外层)加密、
服务器端(DBMS内核层)加密。客户端加密的好处是不会加重
数据库服务器的负载,并且可实现网上的传输加密,这种加密方式通常利用数据库外层工具实现。而服务器端的加密需要对
数据库管理系统本身进行操作,属
核心层加密,如果没有数据库开发商的配合,其实现难度相对较大。此外,对那些希望通过ASP获得服务的企业来说,只有在客户端实现加解密,才能保证其数据的安全可靠。
信息安全主要指三个方面。一是
数据安全,二是
系统安全,三是
电子商务的安全。核心是数据库的安全,将数据库的
数据加密就抓住了信息安全的核心问题。
对数据库中数据加密是为增强普通
关系数据库管理系统的安全性,提供一个安全适用的数据库加密平台,对数据库存储的内容实施
有效保护。它通过数据库
存储加密等安全方法实现了数据库
数据存储保密和
完整性要求,使得数据库以
密文方式存储并在密态方式下工作,确保了数据安全。
经过近几年的研究,我国数据库加密技术已经比较成熟。
一般而言,一个行之有效的数据库加密技术主要有以下6个方面的功能和特性。
用户除提供
用户名、口令外,还必须按照系统安全要求提供其它相关安全凭证。如使用终端密钥。
(2) 通信加密与完整性保护:
有关数据库的访问在
网络传输中都被加密,通信
一次一密的意义在于防重放、
防篡改。
(3) 数据库数据存储加密与完整性保护:
数据库系统采用数据项级存储加密,即数据库中不同的记录、每条记录的不同字段都采用不同的
密钥加密,辅以校验措施来保证数据库数据存储的
保密性和完整性,防止数据的
非授权访问和修改。
(4)数据库加密设置:
系统中可以选择需要加密的数据库列,以便于用户选择那些
敏感信息进行加密而不是全部
数据都加密。只对用户的敏感数据加密可以提高数据库访问速度。这样有利于用户在效率与安全性之间进行
自主选择。
主密钥和主密钥变量保存在安全区域,二级密钥受主密钥变量加密保护,数据加密的密钥存储或传输时利用二级密钥加密保护,使用时受主密钥保护。
(6) 安全备份:
系统提供数据库明文备份功能和密钥备份功能。
数据库加密基本要求
(1) 字段加密;
(5) 防止非法拷贝;
数据库数据加密实现
使用
数据库安全保密
中间件对数据库进行加密是最简便直接的方法。主要是通过系统中加密、DBMS内核层(服务器端)加密和DBMS外层(客户端)加密。
在系统中加密,系统无法辨认
数据库文件中的数据关系,将数据先在内存中进行加密,然后
文件系统把每次加密后的内存数据写入到数据库文件中去,读入时再逆方面进行解密就,这种加密方法相对简单,只要妥善管理密钥就可以了。缺点对数据库的读写都比较麻烦,每次都要进行加解密的工作,对程序的编写和读写数据库的速度都会有影响。
在DBMS内核层实现加密需要对数据库管理系统本身进行操作。这种加密是指数据在物理存取之前完成加解密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和
加密器之间的接口需要DBMS开发商的支持。
在DBMS外层实现加密的好处是不会加重
数据库服务器的负载,并且可实现网上的传输,加密比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求
自动完成对数据库数据的加解密处理。
采用这种加密方式进行加密,加解密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统之间的
耦合性稍差。
数据库加密系统分成两个功能独立的主要部件:一个是加密字典
管理程序,另一个是数据库加解密引擎。数据库加密系统将用户对数据库信息具体的加密要求以及基础信息保存在加密字典中,通过调用数据加解密引擎实现对数据库
表的加密、解密及
数据转换等功能。数据库信息的加解密处理是在后台完成的,对数据库服务器是透明的。
按以上方式实现的数据库加密系统具有很多优点:首先,系统对数据库的
最终用户是完全透明的,管理员可以根据需要进行明文和密文的转换工作;其次,加密系统完全独立于
数据库应用系统,无须改动数据库应用系统就能实现数据加密功能;第三,加解密处理在客户端进行,不会影响
数据库服务器的效率。
数据库加解密引擎是数据库加密系统的核心部件,它位于
应用程序与数据库服务器之间,负责在后台完成数据库信息的加解密处理,对应用开发人员和操作人员来说是透明的。数据加解密引擎没有操作界面,在需要时由操作系统
自动加载并驻留在内存中,通过内部接口与加密字典管理程序和
用户应用程序通讯。数据库加解密引擎由三大模块组成:加解密处理模块、
用户接口模块和
数据库接口模块。