数据库系统担负着存储和管理信息的任务,集中存放着大量数据,而且又为众多用户直接共享。泄露或破坏这些信息将会造成企业瘫痪,给国家带来巨大的损失,甚至危及国家安全,需要采取适当的措施进行数据库内数据的防护。
事实证明,保证数据安全性的最好方法是数据加密。欧美国家虽然提供了一些加密产品,但很难保证其中没有陷阱,国内目前也没有真正有效的数据库加密软件。现在流行的大型数据库系统提供了许多安全技术,基本能够满足一般的数据库应用需求。但对一些特殊的安全需求,它们提供的安全技术还是不够完备的,因此,为了企业、政府甚至是国家的安全,开发安全、可靠的数据库加密系统已迫在眉睫。
一、数据库加密的常用办法及其缺陷
现在数据库系统主要基于三个层次进行数据库加密工作,即0S、DBMS内核层、DBMS外层。目前常用的办法是在DBMS外核层加密。 DBMS外核层加密是将数据库加密系统做成DBMS的一个工具,其优点是不会加重数据库服务器的负载并可以实现网上传输加密,缺点是加密功能会受一些限制。作为一种通过加密方式来保护数据的专门系统,数据库加密系统并不是一个数据库应用系统,而是一个将DBMS部分功能、加密器和密钥管理三者紧密结合起来的系统。显然数据库加密系统实际上主要实现的还是加密器(包括加密定义工具)的功能,它既可工作于数据库应用系统与DBMS之间,又可作为一个独立工作的系统直接与DBMS交互。
选择数据库加密方法要充分考虑数据库特点,如数据保存比较长,每次操作涉及数据量较大等。下面分析几种常用的加密方法,为了适合数据库的特点,还需要对数据库加密方法进行局部的改动。
1、基于文件的数据库加密技术
把数据库文件作为整体,用加密器和加密算法对整个数据库文件加密,形成密文来保证数据的真实性和完整性。利用这种方法,数据的共享是通过用户用解密密钥对整个数据库文件进行解密来实现的,但多方面的缺点极大地限制了这一方法的实际应用。首先,数据修改的工作将变得十分困难,需要进行解密、修改、复制和加密四个操作,极大地增加了系统的时空开销;其次,即使用户只是需要查看某一条记录,也必须将整个数据库文件解密,这样无法实现对文件中不需要让用户知道的信息的控制。因此,这种力法只适用于能回避这些限制的应用环境。
2、基于记录的数据库加密技术
一般而言,数据库系统中每条记录所包含的信息都具有一定的封闭性,即从某种程度上说它独立完整地存储了一个实体的数据,因此是最常用的数据库信息加密手段。这种方法的基本思路是:基于记录的加密技术在各自密书的作用下,将数据库的每一个记录加密成密文并存放于数据库文件中;记录的查找是通过将需查找的值加密成密码文后进行的,然而基于记录的数据库保护有一个缺点,就是在解密一个记录的数据时,无法实现对这个记录中不需要的字段不解密,在选择某个字段的某些记录时,如果不对含有这个字段的所有记录进行解密就无法进行选择。
3、子密钥数据库加密方法
子密钥加密算法的核心思想是根据数据库(主要针对关系型数据库)中数据组织的特点。在加密时以记录为单位进行加密操作,而在查询需要解密时。则是以数据项为单位进行解密操作。两者所用的密钥是不同的,加密所用的密钥是针对整个记录的密钥,而解密所用的密钥是针对该数据项的子密钥。该算法的理论依据是我国著名的孙子定理(中国剩余定理)。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。