最近看到DBMS外层加密,但是,对其了解很少,请大伙详细说说,沟通交流
------解决方案--------------------
DBMS外核层加密是将数据库加密系统做成DBMS的一个工具,其优点是不会加重数据库服务器的负载并可以实现网上传输加密,缺点是加密功能会受一些限制。作为一种通过加密方式来保护数据的专门系统,数据库加密系统并不是一个数据库应用系统,而是一个将DBMS部分功能、加密器和密钥管理三者紧密结合起来的系统。显然数据库加密系统实际上主要实现的还是加密器(包括加密定义工具)的功能,它既可工作于数据库应用系统与DBMS之间,又可作为一个独立工作的系统直接与DBMS交互。
选择数据库加密方法要充分考虑数据库特点,如数据保存比较长,每次操作涉及数据量较大等。下面分析几种常用的加密方法,为了适合数据库的特点,还需要对数据库加密方法进行局部的改动。
1、基于文件的数据库加密技术
把数据库文件作为整体,用加密器和加密算法对整个数据库文件加密,形成密文来保证数据的真实性和完整性。利用这种方法,数据的共享是通过用户用解密密钥对整个数据库文件进行解密来实现的,但多方面的缺点极大地限制了这一方法的实际应用。首先,数据修改的工作将变得十分困难,需要进行解密、修改、复制和加密四个操作,极大地增加了系统的时空开销;其次,即使用户只是需要查看某一条记录,也必须将整个数据库文件解密,这样无法实现对文件中不需要让用户知道的信息的控制。因此,这种力法只适用于能回避这些限制的应用环境。
2、基于记录的数据库加密技术
一般而言,数据库系统中每条记录所包含的信息都具有一定的封闭性,即从某种程度上说它独立完整地存储了一个实体的数据,因此是最常用的数据库信息加密手段。这种方法的基本思路是:基于记录的加密技术在各自密书的作用下,将数据库的每一个记录加密成密文并存放于数据库文件中;记录的查找是通过将需查找的值加密成密码文后进行的,然而基于记录的数据库保护有一个缺点,就是在解密一个记录的数据时,无法实现对这个记录中不需要的字段不解密,在选择某个字段的某些记录时,如果不对含有这个字段的所有记录进行解密就无法进行选择。
3、子密钥数据库加密方法
子密钥加密算法的核心思想是根据数据库(主要针对关系型数据库)中数据组织的特点。在加密时以记录为单位进行加密操作,而在查询需要解密时。则是以数据项为单位进行解密操作。两者所用的密钥是不同的,加密所用的密钥是针对整个记录的密钥,而解密所用的密钥是针对该数据项的子密钥。该算法的理论依据是我国著名的孙子定理(中国剩余定理)