数据库系统担负着存储和管理信息的任务,集中存放着大量数据,而且又为众多用户直接共享。泄露或破坏这些信息将会造成企业瘫痪,给国家带来巨大的损失,甚至危及国家安全,需要采取适当的措施进行数据库内数据的防护。
事实证明,保证数据安全性的最好方法是数据加密。欧美国家虽然提供了一些加密产品,但很难保证其中没有陷阱,国内目前也没有真正有效的数据库加密软件。现在流行的大型数据库系统提供了许多安全技术,基本能够满足一般的数据库应用需求。但对一些特殊的安全需求,它们提供的安全技术还是不够完备的,因此,为了企业、政府甚至是国家的安全,开发安全、可靠的数据库加密系统已迫在眉睫。
一、数据库加密的常用办法及其缺陷
现在数据库系统主要基于三个层次进行数据库加密工作,即0S、DBMS内核层、DBMS外层。目前常用的办法是在DBMS外核层加密。 DBMS外核层加密是将数据库加密系统做成DBMS的一个工具,其优点是不会加重数据库服务器的负载并可以实现网上传输加密,缺点是加密功能会受一些限制。作为一种通过加密方式来保护数据的专门系统,数据库加密系统并不是一个数据库应用系统,而是一个将DBMS部分功能、加密器和密钥管理三者紧密结合起来的系统。显然数据库加密系统实际上主要实现的还是加密器(包括加密定义工具)的功能,它既可工作于数据库应用系统与DBMS之间,又可作为一个独立工作的系统直接与DBMS交互。
选择数据库加密方法要充分考虑数据库特点,如数据保存比较长,每次操作涉及数据量较大等。下面分析几种常用的加密方法,为了适合数据库的特点,还需要对数据库加密方法进行局部的改动。
1、基于文件的数据库加密技术
把数据库文件作为整体,用加密器和加密算法对整个数据库文件加密,形成密文来保证数据的真实性和完整性。利用这种方法,数据的共享是通过用户用解密密钥对整个数据库文件进行解密来实现的,但多方面的缺点极大地限制了这一方法的实际应用。首先,数据修改的工作将变得十分困难,需要进行解密、修改、复制和加密四个操作,极大地增加了系统的时空开销;其次,即使用户只是需要查看某一条记录,也必须将整个数据库文件解密,这样无法实现对文件中不需要让用户知道的信息的控制。因此,这种力法只适用于能回避这些限制的应用环境。
2、基于记录的数据库加密技术
一般而言,数据库系统中每条记录所包含的信息都具有一定的封闭性,即从某种程度上说它独立完整地存储了一个实体的数据,因此是最常用的数据库信息加密手段。这种方法的基本思路是:基于记录的加密技术在各自密书的作用下,将数据库的每一个记录加密成密文并存放于数据库文件中;记录的查找是通过将需查找的值加密成密码文后进行的,然而基于记录的数据库保护有一个缺点,就是在解密一个记录的数据时,无法实现对这个记录中不需要的字段不解密,在选择某个字段的某些记录时,如果不对含有这个字段的所有记录进行解密就无法进行选择。
3、子密钥数据库加密方法
子密钥加密算法的核心思想是根据数据库(主要针对关系型数据库)中数据组织的特点。在加密时以记录为单位进行加密操作,而在查询需要解密时。则是以数据项为单位进行解密操作。两者所用的密钥是不同的,加密所用的密钥是针对整个记录的密钥,而解密所用的密钥是针对该数据项的子密钥。该算法的理论依据是我国著名的孙子定理(中国剩余定理)
二、常用数据库加密方案对数据库的影响
数据加密是通过对明文进行复杂的加密操作,进而无法发现明文和密文之间、密文和密钥之间的内在关系,也就是说经过加密的数据经得起来自OS和DBMS的攻击。但在数据库中以密文形式存在的敏感数据无法使用数据库管理系统(DBMS)的一些功能。DBMS的功能比较完备,然而数据库数据加密以后,DBMS的一些功能将无法直接使用。
1、加密字段不能实现索引功能。
为了达到迅速查询的目的,数据库文件需要建立一些索引。索引建立和应用必须是明文状态,否则将失去索引的作用。有的DBMS中可以建立索引,这类索引也需要在明文状态下建立、维护和使用。
2、表间的连接码字段不能加密。
数据模型规范化以后,数据库表之间存在着密切的联系,这种相关性往往是通过局部编码联系的,这些编码若加密就无法进行表与表之间的连接运算。
3、无法实现对数据制约因素的定义。
数据库管理系统定义了数据之间的制约规则。数据一旦加密,DBMS将无法实现这一功能,而且,值域的定义也无法进行。
4、密文数据无法实现SQL的排序、分组和分类功能。
SELECT语句中的Group、Orderby、Having子句分别完成分组、排序、分类等操作。这些子句的操作对象如果是加密数据,那么解密后的明文数据将失去原语句的分组、排序、分类作用,显然这不是用户所需要的。
5、SQL语言中的内部函数将对加密数据失去作用。
6、BDMS对各种类型数据均提供了一些内部函数,这些函数不能直接作用于加密数据。
7、BDMS的一些应用开发工具的使用受到限制。
DBMS的一些应用开发工具不能直接对加密数据进行操作,因而它们的使用会受到限制。
数据库加密影响了一些数据库管理系统的功能,如阅读语句中的函数、排序、分组等,但可以通过组件技术来实现这些功能,如可采用SQL解释器。所以说数据库加密以后,DBMS的一些功能将无法直接使用,但可以在DBMS外层的SMS(安全管理系统)中增加组件来实现这些功能。
三、全新的数据库加密解决方案——DataBaseSec
鉴于传统数据库加密办法具有种种缺陷,并对数据库性能造成很大的影响,北京亿赛通科技发展有限公司推出了全新的数据库加密系统DataBaseSec。DataBaseSec抛弃了传统的数据库加密的思路,而是从数据库的存储设备着手,通过全磁盘加密结合端口管理的方式,真正实现了数据库全部数据加密,并有效地解决了数据库管理员的超级权力可能导致的泄密问题,是全球最为领先的解决方案。
亿赛通数据库加密系统DataBaseSec主要有以下优势:
1. 采用高强度的加密算法,加密后的数据不可破译;
2. 数据信息在加密后,其占用的存储空间并不明显增大;
3. 全磁盘加密技术是透明动态加解密技术,加密和解密速度快,不改变用户操作系统,不降低系统性能,对用户来说完全透明;
4. 采用全磁盘加密技术与端口控制相结合的制衡机制,能保证数据库管理员和网络管理员之间互相制约,解决了数据库管理员权限过大无法控制的问题;
5. 对数据库的加密不影响系统的原有功能,保持对数据库操作的灵活性和简便性;
6. 加密后的数据库仍能满足用户在不同类别程度的访问。