Access数据库加密系统的安全性及其保护措施

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:xbzss123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:Access数据库结构简单、功能比较齐全、使用维护方便,因此,在功能能够满足要求的条件下,往往成为一些小型数据库软件的首选。但是由于数据库的加密机制非常简单,很容易破解数据库密码,安全性差。本文在分析了MS Access数据库的加密原理以及现有破解方法的基础上,给出了简便易行的保护措施。并且,用VB给出了切实可行的实现方案。应用表明,该保护措施能有效地提高数据库的安全性。
  关键词:ACCESS数据库;加密; 破解;保护
  中图分类号:TP309文献标识码:A文章编号:1009-3044(2007)05-11206-02
  
  1 引言
  Microsoft的ACCESS数据库,是我们常用的桌面数据库之一,大多中小企业的数据库管理系统都可以采用它,但其安全性一直令人担忧。本文分析了ACCESS数据库的加密原理和破解方法,并且,用VB实现了一种保护措施,实践证明是有效的。
  
  2 MS Access的加密原理
  MS Access数据库是以MDB为文件扩展名的单个文件形式存储的,加密后的文件可以在不同计算机上以相同的密码打开,说明该数据库的密码一定存在于文件之中。通过使用UltraEdit软件对加密前后的同一个数据库文件进行对比,就可以确定加密后的密码在文件中的大概位置。
  Access数据库系统通过将用户输入的密码与某一密匙进行异或来形成一个加密串,并将其存储在*.mdb文件中从地址&H42开始的区域内[1]。就MS Access97来说,其MDB文件的密码最多能设置14位,是存放在这个文件头部第66个字节至第79个字节共14个字节的固定序列。由于异或操作的特点是“经过两次异或就恢复原值”,因此,用这一密匙与*.mdb文件中的加密串进行第二次异或操作,就可以轻松的得到Access数据库密码[2]。
  对于Access97数据库,密匙是固定的:
  而Access2000和Access2002的数据库加密方式相同,所以以下只针对Access2000数据库。Access2000的数据库加密系统进行了较大的改进,它的密钥是按日期随机生成的。也就是说,不同的时间产生的MDB文件,其密钥是不同的。但是Access2000还是把加密的密码字串放在以第66字节开始的文件区域内。Access2000提供让用户可以设定最多20位的密码,其密码区域不是连续存储的,而是隔位放置密码串。40位的字节长度内,有用的20个字节;再从这20个字节入手分析会发现,其中的10个字节的密钥是固定的,它们不是按日期随机生成的。因为,密钥是按日期随机生成的,日期相同,密钥也相同。因此,破解Access2000数据库密码,只要建一个与该数据库同日期的没有密码的Access2000数据库,找到密匙,那么还是可以得到数据库密码的。另外,Access的加密密钥虽然是按日期随机生成的,但随机密钥序列是相互关联的,共有256组密钥。所以,只要获取了这个序列中任何一组密钥,根据其相互关系也可以找到序列中其他组的密钥,用穷举法,瞬间可以通过检校获得正确的密码[3-5]。
  
  3 破解方法分析
  通过以上分析,对于不同版本的Access数据库,破解的方法是不同的:
  3.1 Access97数据库
  因为Access97数据库的密匙是固定的,因此,用这固定密匙与*.mdb文件中的加密串进行异或操作,就可得到Access数据库密码。
  3.2 Access2000及其以上版本数据库
  Access2000数据库密钥是按日期随机生成的,因此,可以采用两种方式来破解:
  第一种:日期法
  因为,密钥是按日期随机生成的,日期相同,密钥也相同。建一个与该数据库同日期的没有密码的Access2000数据库,找到密匙,得到密码。
  第二种:穷举法
  Access的加密密钥虽然是按日期随机生成的,但随机密钥序列是相互关联的,共有256组密钥。建一个没有密码的Access2000数据库,从中得到一组密匙,比如是: &H94,&HEC,&H4F,&H9C,&HD4,&HD4,&H28,&H1,&H8A,&H46,&H7B,&HE7,&HDF,&H65,&H13,&HDD,&HB1,&H26,&H79,&H80,&H7C。利用这一组密匙,找出其他255组,使用这256组密匙用ADO2.5以上来测试连接数据库,这样很快就可以得到密码。
  
  4 保护措施
  破解数据库,首先要判断文件的版本,是MS Access97还是MS Access2000或MS Access2002。判断数据库的版本与0x14处的字节有关,如果是0就为Access97,如果是1就为Access2000或2002。
  对于不同的版本,破解的方法不同,因此只要把0x14处的字节修改,那么就无法破解了。比如:对于加密的Access97数据库,把0x14处的字节修改为1,那么破解软件就按照Access 2000数据库格式进行破解,当然密码就不对了。另外用UltraEdit打开MDB文件可以看到,文件前16个字节的内容:00 01 00 00 53 74 61 6E 64 61 72 64 20 4A 65 74。如果随便更改几个,再用ACCESS打开,就会出现不可识别的数据库格式的错误,因为ACCESS前面保存的信息都是一些MDB文件的定义和口令,如果更改这些内容,数据库就无法打开,而且这样不会对数据库的内容作更改,不会破坏原有的数据。
  基于以上分析,下面就Access2000用VB作个简单的加密、还原程序,程序片断如下:
  
  5 结束语
  Access数据库是目前应用最为广泛的中小型数据库系统。但是由于其在加密方面设计欠周密,可以方便的破解数据库密码。本文在分析Access数据库加密原理和破解原理的基础上,给出了一种方便可行的保护措施。
  参考文献:
  [1] 罗英均, 徐兵, 冉戎且. 浅谈Access数据库安全策略[J]. 电脑知识与技术, 2005,5:25-27.
  [2] 曾涛, 黄净. Access数据库的安全机制、隐患及改进策略[J]. 大众科技. 2006,7:102-103.
  [3] 廖启亮, 曾健思, 廖赤球. Access数据库加密系统安全性剖析及改进策略[J]. 中国安全科学学报, 2005,15(5):80-83.
  [4] Petroutsos Evangelos; 邱仲潘, 等译. Visual Basic 6.0从入门到精通[M]. 北京:电子工业出版社, 1999.
  [5] 陈俊源. 活用Visual Basic 5.0数据库编程[M]. 北京: 清华大学出版社, 1998.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:在分析影响教学质量因素的基础上,对运用LMBP算法建立教学质量评估模型进行了研究,介绍了LMBP神经网络预测模型的计算过程及学习方法,建立了教学质量评估的LMBP预测模型,经测试数据验证,结果比较准确,能克服各种人为因素,具有广泛的适用性。  关键词:教学评估;LMBP算法;神经网络  中图分类号:TP37 文獻标识码:A 文章编号:1009—3044(2007)08—20519—03
期刊
摘要:weblog作为一种新兴的网络交流工具已经广泛地应用到众多行业和领域,其在教育中应用也必将产生新的学习方式,甚至是教育理念的变化。本文就weblog在网络课程教学中的应用作初步的探讨,以期探索网络课程教学中新的學习模式。  关键词:weblog;网络课程;教学;应用  中图分类号:TP393 文献标识码:A 文章编号:1009—3044(2007)08—20589—02
期刊
摘要:利用USB可以实现较传统方式更有效、更经济、点数更多的多点数据采集。针对基于USB接口和LabVIEW平台的数据采集和数据处理程序设计中,常遇到的典型应用中的问题如:基于TCP的网络传输、软件滤波、数组组合、波形振幅统计、超限报警等问题,本文给出了较详细的解决方案和实用程序设计技巧。  关键词:USB;LabVIEW;数据采集;技术  中图分类号:TP331文献标识码:A 文章编号:1009
期刊
摘要:本文利用PB BLOB可以操作二进制大对象的特点,借助PB内置函数对PB的位操作能力进行了函数封装,扩展了PB的位操作能力并给出了在图像处理和工业控制中的应用实例。  关键词:PowerBuilder;二进制大对象;位操作;图像;工业控制  中图分类号:TP311.56 文献标识码:A文章编号:1009-3044(2007)05-11195-03    1 引言  PB作为一个开发工具,一直
期刊
摘要:虚函数是实现动态多态性的方法。包含虚函数的类定义的对象有一个虚函数表和一个指向虚函数表的指针vptr。本文探讨了影响vptr和虚函数表长度的因素。  關键词:虚函数;多态性;虚函数表;VPTR  中图分类号:TP311 文献标识码:A 文章编号:1009—3044(2007)08—20461—02
期刊
摘要:本文针对目前中小学CAI教学软件普遍存在交互性过低问题进行了探讨,介绍了一种能在易用性与高交互性取得较好平衡的編程语言Flash ActionScript,并结合《平面镶嵌》问题对其使用方法进行了说明。  关键词:CAI教学软件;软件交互性:Flash AS  中图分类号:TP311 文献标识码:A 文章编号:1009—3044(2007)08—20566—01
期刊
摘要:在分析结构化查询语句的基础上,提出了在VB中实现通用动态查询程序的原理和方法,并给出了具体的程序代码。  关键词:VB;数据库;查询   中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)05-11204-02    1 引言  Visual Basic 6.0 作为一种简捷、系统的Windows应用程序开发工具,具有强大的数据处理能力,被广泛应用于建立各种数据库
期刊
摘要:应用ID3挖掘方法,将基于数据库的数据挖掘技术应用于企业的生产、销售实践中用决策树对产品进行定性分析,找到产品销售情况的决策信息;及用分类法对产品品种进行选择的具体过程。  关键词:数据挖掘;决策树;ID3  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)05-11198-01    1 基本定义  (1)数据挖掘  数据挖掘(Data Mining)就是从大量
期刊
摘要:如何实现数据库的集成、共享和利用,提高了信息系统的整体效能,以及解决了XML和数据库双向传输的瓶颈,成为信息支持系统的关键问题之一。该文在分析可扩展标记语言XML特点的基础上,对XML与数据库之间基于DOM模型的映射方式进行了探讨,并给出了以XML文件作为中间文件的异构数据库集成,以及XML文档和数据库之间数据传输的实现方法。  关键词:XML;数据库集成;文档对象模型;XML查询  中图分
期刊
摘要:随着教育手段的革新与无线网络技术的发展,目前基于WLAN的无线校园网络构建技术已成主流,成为有线校园网网络延伸的重要手段之一。文章对无线局域网技术、无线校园网的构建做了介绍,并以淄博职业学院新校区的无线校园网建设为实例,提出了初步的设计方案。  关键词:无线局域网;WLAN;无线校园网;实现方案  中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)05-11213
期刊