当前位置:作文大全 > 浅谈VF环境的数据库加密技术

浅谈VF环境的数据库加密技术

时间:2022-05-10 10:56:01 浏览次数:

  摘要:数据库加密技术给我们的数据提供了安全保障,本文介绍了数据库加密技术功能、实现并结合VF数据环境谈了如何实现数据库加密的方法。

关键词:数据库加密    VF

引文:

随着数据库应用的日益广泛,数据库安全问题也越来越受到关注。目前大部分数据库都是以明文存储,采用一般的身份验证与识别无法保障数据库的安全。数据库加密机制在身份验证与识别后使用密码技术对数据库作进一步的保护。数据库加密将数据库中的数据作密文存储。通过数据库加密可以更有效的保护数据库安全。今天我将结合VF数据库环境与大家谈谈数据库加密技术。

一、数据库加密技术的功能和特性

首先谈谈数据库加密技术,经过近几年的研究,我国数据库加密技术已经比较成熟。一般而言,一个行之有效的数据库加密技术主要有以下6个方面的功能和特性。

(1)身份认证:

用户除提供用户名、口令外,还必须按照系统安全要求提供其它相关安全凭证。如使用终端密钥。

(2) 通信加密与完整性保护:

有关数据库的访问在网络传输中都被加密,通信一次一密的意义在于防重放、防篡改。

(3) 数据库数据存储加密与完整性保护:

数据库系统采用数据项级存储加密,即数据库中不同的记录、每条记录的不同字段都采用不同的密钥加密,辅以校验措施来保证数据库数据存储的保密性和完整性,防止数据的非授权访问和修改。

(4) 数据库加密设置:

系统中可以选择需要加密的数据库列,以便于用户选择那些敏感信息进行加密而不是全部数据都加密。只对用户的敏感数据加密可以提高数据库访问速度。这样有利于用户在效率与安全性之间进行自主选择。

(5)多级密钥管理模式:

主密钥和主密钥变量保存在安全区域,二级密钥受主密钥变量加密保护,数据加密的密钥存储或传输时利用二级密钥加密保护,使用时受主密钥保护。

(6) 安全备份:

系统提供数据库明文备份功能和密钥备份功能。

二、 对数据库加密系统基本要求

     (1) 字段加密;

     (2) 密钥动态管理;

     (3) 合理处理数据;

     (4) 不影响合法用户的操作;

(5) 防止非法拷贝;

三、结合VF数据环境进行数据加密

在VF环境下开发的数据库系统,我们一般采取进入时要求输入正确的用户名和密码,然后根据不同的用户权限来设定用户读取、修改、删除数据的权限。由于存储数据的DBF文件采用的是ASCII明文存储,如果非法用户不使用程序读取数据,而是直接使用WINHEX、UltreaEdit等工具--甚至是DOS下的DEBUG来打开数据库文件,都可以直接阅读到数据库中的内容。因此,为了使得DBF文件可以更加安全,必须对数据的载体DBF 文件进行加密保护,主要的目的还是把ASCII码的信息变成不可直接阅读的数据。根据文件型数据库的特点,数据库的加密一般可以有三种方式:

(1)库外加密
考虑到文件型数据库系统是基于文件系统的,因而库外加密的办法,应该针对文件IO操作或操作系统而言的,因为数据库管理系统与操作系统的接口方式有三种:一是直接利用文件系统的功能;二是利用操作系统的I/O模块;三是直接调用存储管理。所以在采用库外加密的方法时,可以将数据先在内存中使用DES、RSA等方法进行加密,然后文件系统把每次加密后的内存数据写入到数据库文件中去(注意是把整个数据库普通的文件看待,而不是按数据关系写入),读入时再逆方面进行解密就可以正常使用了。这种加密方法相对简单,只要妥善管理密钥就可以了。缺点对数据库的读写都比较麻烦,每次都要进行加解密的工作,对程序的编写和读写数据库的速度都会有影响。
(2)库内加密
如果从关系型数据库的各个方面出发,很容易形成库内加密的思想。关系型数据库的关键术语有:表、字段、行和数据元素。基本上可以针对这几方面形成一种加密的方法。
(1)以表为单位:对于文件型数据库来说,一个文件只有一张表,因而对表的加密可以说是对文件的加密了。对过更改文件分配表(FAT)中的说明等手段可以实现对文件的简单加密,但这种加密方式涉及到文件系统底层,误操作容易造成FAT混乱,而且与文件系统格式有关,因而通常不宜采用。
(2)以记录或字段(即二维表的行或列)为单位加密:通常情况下,我们访问数据库时都是以二维表方式进行的,二维表的每一行就是数据库的一条记录,二维表的每一列就是数据库的一个字段。如果以记录为单位进行加密,那么每读写一条记录只需进行一次加解密的操作,对于不需要访问到的记录,完全不需要进行任何操作,所以使用起来效率会高一些。但是由于每一个记录都必须有一个密钥与之匹配,因此产生和管理记录密钥比较复杂。以字段为单位的加密分析与以记录为单位的加密情况相似。

基于记录的数据库加密技术一般而言,数据库系统中每条记录所包含的信息具有一定的封闭性,即从某种程度上说它独立完整地存储了一个实体的数据.因此,基于记录的加密技术是最常用的数据库加密手段.这种方案的基本思路是:在各自密钥的作用下,将数据库的每一个记录加密成密码文并存放于数据库文件中;记录的查找是通过将需查找的值加密成密码文后进行的.由于密码文数据一般不能代替明码文进行算术运算和关系运算,因此,采用这种方案时,数据库将不能实现诸如索引,连接,统计,排序等多种操作,并会影响数据库管理系统某些原有功能的作用.
(3)以数据元素为单位加密:由于数据元素是数据库库内加密的最小单位,因而这种加密方式最彻底的但也是效率最低的。每个被加密的元素会有一个相应的密钥,所以密钥的产生和管理比记录加密方式还要复杂。

结合VF数据库,我建议使用一下方法对数据库加密:

 1.用asc(),chr() 等函数对字段内容做转换;
      2.用低级文件函数对库文件进行转换;
      3.不用库形式,而用文本文件形式记录信息.并用低级文件函数进行加密。
      第2,3种方法,原理一样,都需要用设计一个函数用来加密文件,一个函数用来解密文件.每次系统运行时先解密,修改内容保存后,运行加密函数。使用时不太方便.设计表单时,不直观。如果加密等级要求不高,宜用第一种方法。
      关于第一种方法举个例子:
    如要对密码字段进行加密,password M (4) (字段类型为备注型较好,定义成字符型也可以,但没有备注型灵活)。假设密码长度规定为8,内容为 1234xxxx (x表示空)
    lpassword="1234"+space(4)
    lpasswordlen=8
    mpassword=""
    for ln=1 to lpasswordlen
          mpassword=mpassword+chr(abs(asc(subs(lpassword,ln,1))+ln)-255))
    endfor
    ?mpassword
    加密形式可做许多复杂的变化,可考虑密码加密参照用户名,使同一密码不同用户密文也不同 。这种做法要注意的是,对密码为空或密码为同一字符的情况,密文不能有明显的规律。不管什么加密方法,只要解密者有机会使用软件,并有权设置密码,就能够通过设置有规律的密码,来比较明文和密文的差别,算出密钥。
    可考虑采用这种思路: 刚才密文的一个字节对应明文的一个字节,位置一一对应, 还可让明文的1,2,3,4,5,6,7,8字节,对应密文的8,23,1,34,56,3,7,9字节,密文的其它字节随机写入.或密文的对应字节位置是根据明文按某个算法算出,也可用几个字节对应明文的一个字节等等,用备注型的好处显而易见。

四、小结

数据库加密技术的应用极大的解决了数据库中数据的安全问题,实现的方法各有千秋,相信随着数据库加密技术的发展,数据库的使用会变得越来越安全,越来越快捷。

 

参考文献:

1、数据库加密技术概述    常永亮著 

2、现代数据库管理 (美)Jeffrey A. Hoffer, Mary B.Prescott, Fred R.McFadden 著

3、解密信息安全   沈伟光 著

4、数据库加密技术综述 高品均 陈荣良著

推荐访问:浅谈 加密技术 环境 数据库 VF