Chinaunix首页 | 论坛 | 博客
  • 博客访问: 572721
  • 博文数量: 609
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 4995
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-17 13:59
文章分类

全部博文(609)

文章存档

2011年(1)

2008年(608)

我的朋友

分类:

2008-10-17 14:02:41


  一、现有数据库文件技术
  
  现有数据库文件主要通过以下三个途径来实现。
  
  1.依靠操作系统的访问控制功能实现
  
  现代的主流操作系统都有完善的用户认证机制,每个登录系统的用户通过自己的权限(即访问控制表ACL)来访问系统资源。这样数据库拥有者或管理者可以通过设置用户权限来控制他人对数据库文件的读取、写入、复制及删除。
  
  2.采用用户身份认证实现
  
  一般的身份认证都是在用户试图打开数据库时要求用户输入用户密码。Access 97/2000数据库文件提供了这种安全技术。这种安全技术的实现思想是,数据库管理软件打开文件时校验用户输入密码是否与数据库文件中保存的密码数据一致,如果不一致则拒绝打开数据库文件。
  
  3.通过对数据库加密来实现
  
  这一安全设计思想是,采用用户的密码对数据库文件中的二进制数据流进行移位变换等处理来实现安全。Access 97/2000数据库文件提供了这种安全技术。
  
  二、现有数据库文件安全技术的局限性
  
  1.三种主要安全技术的不足
  
  第一种安全技术的不足之处是: 首先,数据库文件的安全完全依赖于操作系统,当系统配置不当时,安全根本得不到保证; 其次,当数据库文件在目录或计算机间移动时,这种保护不复存在。所以,这种安全技术的最大弊病在于要靠外部环境实现安全,一旦外部环境变化时,安全性便无法保障。
  
  第二种安全技术的主要不足是,数据库文件的安全完全依赖于基于密码校验的身份认证。如果用户以正常方式(采用数据库管理软件)去打开数据库文件时,身份认证无疑是个不错的安全措施,但用户以二进制文件方式打开文件时,身份认证过程会被轻易跳过。所以,这种安全技术的最大弊病在于要靠数据库管理软件实现安全,一旦非法用户采用别的方法察看数据库文件内容时,安全性就无法保障。
  
  第三种安全技术的局限也很明显,数据库文件一般都很大,因此,采用这种技术进行加密和解密的时间代价很大。如果用户每次打开和关闭数据库时,数据库文件要花几分钟来解密和加密,数据库用户是无法接受的。因此,这种技术安全性很高,但实现的代价太大,所以在实际中较少使用。
  
  2.实例——Access 97/2000数据库的安全问题
  
  Access 97/2000提供了用户身份认证和数据库文件加密等技术。在实际应用中,用户一般采用给数据库加密码(即用户身份认证)来限制非法用户的访问。
  
  Access 97/2000身份认证技术存在着严重的安全问题。在Access 97中,加密后的用户密码被存放在数据库文件特征说明部分的密码数据区中,密码数据区的大小为14个字节;在Access 2000中,加密后的密码也存放于密码数据区,密码数据区的大小为40个字节。Access 97/ 2000身份认证技术所存在的安全隐患在于:
  
  (1)密码数据区可以被还原。用未设置密码文件的密码数据区中内容替换已设了密码文件的密码数据区内容,可使加密码的文件不用密码也能打开。
  
  (2)密码可以被破解。对于Access 97,破解14个字符的密码最坏情况的比较次数仅为(93-1)×13次。对于Access 2000,只需把未设置密码文件的密码数据区内容与已设置密码文件的密码数据区内容进行模二加运算,就可得出已设密码数据库的密码。
  
  (3)密码容易被猜解。Access 97/2000数据库对于密码输入的错误次数没有限制,使得密码穷举完全可行。经试验,可在普通计算机上每分钟完成几万个密码的枚举。
  
  (4)数据库文件头可以重新构造。文件头重构就是根据数据库文件中的数据部分记录的特点,重新构建数据库文件中的文件特征说明部分,密码数据区还原也是一种文件头的重构。
  
  Access 97/2000数据库存在的安全问题,显现了现有数据库文件安全技术的局限与不足。造成Access 97/2000数据库安全问题的另一个原因可能是设计者考虑到Access 97/2000不会用于大型商业运算,未重视这方面的设计。
  
  三、数据库安全新策略
  
  新的数据库文件安全技术应具有以下的特点。
  
  1.安全性不受操作系统平台影响
  
  即数据库文件无论被移动到什么计算机或什么目录,它的安全防护依然存在。即无论何时何地,数据库文件都有足够的安全性。
  
  2.加密内容的适量
  
  对于有大量数据的数据库文件进行完全加密是不必要的。可行的办法是加密数据库文件中的文件特征说明部分和数据库字段说明部分,这样即使非法用户获得了数据库文件,也很难从中找到有用的内容。
  
  3.采用先进的加密技术
  
  Access 97/2000安全性差的原因也在于加密算法的简单,它所采用的模二加算法是上世纪二十年代美国电报公司用于加密电报码的加密算法。因此,采用DES、密码反馈等先进的加密技术来提高安全性是很有必要的。在对数据库文件密码、数据库字段说明部分加密时要把它们作为一个整体加密。
  
  4.加密和数据压缩结合
  
  数据压缩本身有数据隐蔽的功能,而且能够减少数据库占用的空间。
  
  5.身份认证陷阱
  
  非法用户常用枚举密码的办法取得密码,身份认证陷阱能使有这一行为的非法用户付出很大的时间代价也无法获得用户密码。
  
  6.数据库文件反复制的能力
  
  复制功能是操作系统提供的,真正的“反复制”需要操作系统的功能支持。这里的“反复制”是指除非数据库文件拥有者明确告诉数据库管理系统要复制一个数据库文件副本,否则非法用户既使用操作系统提供的复制功能获得了一个副本,并且有数据库密码,数据库也无法正确打开。这一功能要靠数据库管理系统实现,它能在数据库打开和关闭时对数据库文件进行特殊处理。
  
  四、新安全策略的实现
  
  下文仅论述数据库文件反复制能力的实现。其实现思想是:(1) 数据库管理系统在数据库文件时,用本地计算机的一些硬件信息及用户密码加密数据库文件的文件特征说明部分和字段说明部分; (2)数据库管理系统在打开数据库文件时,自动调用本地计算机的一些硬件信息及用户密码,解密数据库文件的文件特征说明部分和字段说明部分;(3)如果用户要复制数据库文件,则在关闭数据库文件时,进行相应的设置使数据库管理系统不进行上述两个过程。整个实现过程如下图所示。
  
  这一安全策略的采用,可使数据库文件具有以下的安全性:(1)密码不可能被猜解。因为用户密码只是加密密匙和解密密匙的一部分,所以即使非法用户给出了正确的用户密码,数据库文件也无法在别的计算机或路径中正确解密。(2)密码很难被破解。由于加密的内容较少,在加密时就可以采用算法复杂的加密算法保护密码。(3)可以避免非法用户还原密码数据区或重构数据库文件头。因为数据库文件的文件特征说明部分和数据库字段说明部分都已被加密且作为一个整体加密,所以非法用户很难收集到重构文件头的必要信息。(4)数据库文件的安全不依赖于操作系统和数据库管理系统。
  
【责编:admin】

--------------------next---------------------

阅读(261) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~