Microsoft Access数据库的WEB应用中的数据安全性研究

2010-08-23 06:15梁志胜
科学之友 2010年14期
关键词:加密算法攻击者解密

陈 榆,梁志胜

(广西医科大学,广西 南宁 530021)

1 前言

Microsoft Access是微软公司于1994年推出的以标准JET为引擎的桌面型数据库系统。它具有界面友好,易学易用,开发简单,接口灵活等特点,是典型的新一代数据管理和信息系统开发工具,其以功能全面、程序设计方便等特点得到广泛应用。与微软公司所开发的其他数据库产品如Visual FoxPro、SQL Server等相比不够强大,它仍具有一定的独特的优势,其提供了更强大的数据组织、用户管理、安全检查等功能。在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的 XBASE数据库系统所无法比拟的客户服务器(Client/Server)结构和相应的数据库安全机制,因此,在很多WEB、桌面存储等领域得到了广泛的应用,但由于Access只是属于文件型的小型数据库系统,存储方式过于单一,在存储大量数据时性能出现瓶颈,特别是它的安全性能方面,使得其在许多方面的应用受到了限制。本文就Microsoft Access数据库的WEB应用中的数据安全性进行研究,仅供同行参考。

2 WEB系统中由数据库本身所带来的安全隐患

在Access的WEB(包括asp、asp.net、php、jsp等环境)系统应用中,当攻击者通过各种渠道获取或者猜到Access数据库的存储路径和数据库名时,如未对Access数据库文件进行特殊处理,恶意攻击者将可以通过 WEB方式访问并将数据库下载到本地。而由于Access本身的诸多缺陷,如Access数据库的解密隐患、由缺省用户Admin用户所引发的安全漏洞、工作组信息文件带来的安全隐患等,将会导致数据库中的敏感数据(如单位的财务数据、管理员的帐户密码或其他隐私数据)不安全。

3 Access数据库相关的数据加密技术及应用

数据加密又称密码学,它是指通过特定的加密算法和指定的加密密钥将明文数据转变为不能被正常解读的密文,而解密则是通过与加密算法所配套的解密算法和加密时所指定的密钥将不可解读的密文恢复为可正常阅读的明文。数据加密在当前仍是计算机系统对信息进行自然保护的一种最可靠的方法。通过数据加密技术对敏感信息进行加密,实现信息的隐蔽,从而增加重要信息的安全性。

本文将以 Asp.net作为平台,介绍 MD5加密算法及 DES算法在WEB系统中保护数据的具体应用。

3.1 基于C#的MD5数据加密算法

3.1.1 MD5算法介绍

MD5的全称是Message Digest Algorithm MD5(中文名为消息摘要算法第五版),为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为 RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992),该算法以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个 32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

3.1.2 MD5算法在Access项目中的应用范围

由于MD5算法的不可逆性,目前尚无可靠的破解方式,经过 MD5算法加密的字符串将无法通过一定的解密算法将其还原为原文,所以一般在具体应用中,均使用MD5对密码字符串等不需要明文显示的字符或数据进行加密。

3.1.3 加密算法MD5的C#代码实现

微软在.Net中集成了MD5算法,我们可以通过初始化系统命名空间 System.Security.Cryptography中的 MD5CryptoServiceProvider类的实例,并调用ComputeHash方法将字符串进行加密,封装的代码如下(注:需引处System及System.Security.Cryptography命名空间):

3.1.4 MD5算法的应用实例

用户在设置密码时,程序通过调用MD5算法,将用户密码加密,并将已经加密的数据保存进数据库的密码字段,C#示例代码:

待需要验证密码时,通过将用户输入的明文密码进行MD5加密,再和数据库中相应记录的密码字段中的字符串进行比较,如两值相等,则可判断密码正确,示例代码如下:

当然,也可以通过直接将用户输入的密码MD5加密以后,直接与数据库数据进行比对。

3.2 基于C#的DES数据加密算法

3.2.1 DES算法简介

数据加密算法(Data Encryption Algorithm,DEA)的数据加密标准(Data Encryption Standard,DES)是规范的描述,它出自IBM的研究工作,在1977年被美国政府正式采纳。它是一种对称加密算法,是目前使用最广泛的密钥系统之一。

DES使用一个56位的密钥以及附加的8位奇偶校验位产生最大 64位的分组大小。这是一个迭代的分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行异或运算;接着交换这两半文本块,这一过程会持续下去,但在最后一个循环时不对文本块进行交换。DES使用了16个循环,使用异或、置换、代换、移位操作四种基本运算。

3.2.2 DES算法的在Access项目中的应用

由于DES算法可以通过密钥进行解密,所以该算法在项目应用过程中,常被使用作为隐私数据的保护。使用该算法以后,被加密的数据将变成不可解读的字符串,在数据库其他安全措施无效的情况下,也可以保护数据库中的数据免于被恶意攻击者解析。

3.2.3 DES加密算法的C#实现

3.2.4 DES解密算法的C#实现

3.2.5 DES算法的应用实例

DES可用于加密隐私数据,如客户的地址、电话等信息。在数据入库时,通过调用DesEncrypt 方法将数据进行加密:

string str = DesEncrypt("被加密的字符串", "指定的密钥");

然后将加密后的数据保存进数据库,在解密时,通过调用DesDecrypt 方法进行解密码,然后在程序中输出:

string str = DesDecrypt("被解密的字符串", "加密时使用的的密钥");

Response.Write(str);

需要注意的是,当解密的密钥不对时,系统将抛出异常,所以,请先进行异常处理。

4 通过特殊处理,杜绝WEB应用中的部分安全隐患

Access数据库虽然存在较多安全性问题,但是如果杜绝数据被下载,那些安全问题将不会使数据库的数据安全受到威胁,在 WEB应用中,可以通过以下方法,减少恶意攻击者接触数据库的机会:

4.1 非常规命名

防止数据库被找到的方法之一就是为Access数据库起一个复杂的非常规性的名字,如在文件中加入特别字符,比如#、@等特殊符号,并将其放置于较复杂的目录结构下。

4.2 更改数据库文件扩展名

通过更改数据库的扩展名,让攻击者无法通过 WEB方式下载数据库。将数据库名扩展名更改为WEB SERVER不能解析或是对数据库指定特殊的解析程序,让攻击者无法通过WEB方式将数据库下载至本地,这样,就算数据库路径被获取,攻击方也无法获得数据库并获得其中的数据。

4.3 使用ODBC数据源

通过使用ODBC数据源,将数据库的真正路径进行隐藏以后,哪怕攻击方通过其他手段获取到程序代码,也无法获知数据库真正位置,因此,可杜绝数据库攻击方接触数据库。

4.4 加强应用程序的安全性,编译并混淆应用程序,并加密重要数据

由于 WEB应用程序多属于解释性,有的甚至是直接开放源代码,而源代码的安全性对于数据安全至关重要。对重要数据进行加密,对管理员帐号及用户登录相关的密码进行 MD5不可逆加密,对普通的用户数据使用DES算法进行加密,通过这样的处理,在前文所述解决方案失效,数据库被攻击者下载时,将可减低数据被恶意获取的机率。

5 结束语

综上所述,Access数据库作为网站后台数据库,可以很方便的调试,对于数据量比较少的数据情况下,不失为微机平台上一个优秀的数据库管理系统。在工作组级或部门级的数据库应用领域,采用Access开发的数据库系统将会真正实现以往只有用大型数据库管理系统如 Oracle等才能开发出的客户/服务器模式的数据库应用程序。且Access数据库的敏感数据经随机加密后,可大大增强其安全性。目前,我国对Access的应用起步较晚,相关的技术资料也比较缺乏,这在一定程度上制约了Access这样一个优秀的数据库产品的应用。为此,应需进一步加快国内用户对Access数据库的认识、了解和使用,以期在国内微机平台上出现更多的用Access开发的数据库产品。

1 李 楠、张世星.Access数据库的安全性分析[J].信息技术,2007.31(2)

2 侯思倩.Access数据库系统安全性分析及其防范对策[J].中小企业管理与科技,2009(28)

3 李德郎.Access数据库的安全与应用[J].电脑学习,2008(2)

4 陆北江.基于web的Access数据库管理系统配置和程序优化[J].甘肃科技,2008(14)

猜你喜欢
加密算法攻击者解密
基于贝叶斯博弈的防御资源调配模型研究
加密文档排序中保序加密算法的最优化选取
炫词解密
解密“一包三改”
炫词解密
炫词解密
DES加密算法的实现
基于整数矩阵乘法的图像加密算法
正面迎接批判
正面迎接批判