基于Microsoft.NET框架加密技术的SQL Server安全登录机制研究

2009-10-26 09:34李显峰魏聪明
电脑知识与技术 2009年22期
关键词:数据库安全管理信息系统加密技术

李显峰 王 渊 魏聪明

摘要:通过分析目前管理信息系统数据库登录方式中存在的安全隐患,并结合MD5、DES加密技术和SQL Server 2000数据库角色用户模式的安全登录机制,设计了一种数据库角色与管理信息系统用户一对多关系的双层用户角色模式的数据库安全登录机制,在Microsoft .net框架下实现了管理信息系统的数据库安全登录。

关键词:.net框架;加密技术;数据库安全;管理信息系统;登录机制

中图分类号:TP309文献标识码:A文章编号:1009-3044(2009)22-pppp-0c

随着计算机技术和网络技术的发展与普及,作为计算机应用研究领域的一个重要分支——管理信息系统(Management Information System, MIS)渗透到了社会生活的诸多领域。由于各种技术和非技术因素的存在和影响,MIS的安全已经成为严重而又深刻的问题,而在诸多MIS安全问题中,数据库安全(Database Security)是MIS安全的核心问题。数据库作为一种共享的资源,允许用户登录合法存取数据库资源,杜绝和避免非法用户登录破坏、窃取数据库资源已成为MIS安全性的一个重要瓶颈问题。数据库登录策略选择、机制设计的优劣直接关系到MIS的安全。

Microsoft SQL Server 2000是一种达到了美国C2安全级别的数据库管理系统,它在安全方面提供用户认证、用户权限、登录事件日志、密码策略等数据库保护功能,用以加强数据库系统的安全。以数据库为基础的应用系统,所采取的登陆方式通常有以下两种:

1) DBMS(Database Management System)验证方式

直接使用DBMS用户模式,设置密码和权限,应用系统用户即是DBMS用户。当用户登录时,由DBMS完成用户登录信息验证,应用系统只起传递数据的功能。该方式随着应用系统用户的增多,系统权限分配的难度增大,且将数据操作权限直接分配给应用系统用户,具有很大的风险性。应用系统用户可以绕过应用系统,使用其它数据库管理软件直接进入数据库,威胁到数据的真实性和完整性。

2) 应用系统验证方式

目前,应用系统常采用伪用户(即非数据库用户)身份登录方式,该方式下应用系统存在两类用户,即应用系统用户和DBMS用户。应用系统开发时,在数据库中建立“应用系统用户表”,用以存储应用系统用户的相关资料(包括用户名、密码、权限等)。MIS应用时,首先使用一个真实数据库用户身份登录到数据库并查询“应用系统用户表”相关记录进行验证,验证成功,则是合法的应用系统用户。该方式登录,实质所有MIS用户使用的是同一个真实数据库用户身份登录到数据库,为保证对数据的操作性,一般给应用系统用户赋予了数据库超级用户权限。如此,就留下安全隐患,一方面,编写代码的程序员若有破坏意图,那么数据库用户和密码就有泄露的危险;另一方面,因为真实数据库用户的身份和登录密码就隐藏在应用系统或配置文件中,只要从分析应用程序入手,最终会分析出系统使用的数据库用户和密码,从而威胁到DBMS直至整个应用系统安全。

通过以上分析,不难看出,无论是DBMS登录方式,还是应用系统登录方式,归纳起来都是一种单层数据库用户角色(包括真实数据库用户角色或非数据库用户角色)登录模式。

1 双层数据库用户角色安全登录模式的设计与实现工作流程

基于MIS单层数据库用户角色登录模式的缺陷和安全隐患,对MIS验证方式的登录过程进行改造,实现登录过程两个环节的转变,即改变单层数据库用户角色为双层数据库用户角色,改变未被加密“MIS用户表”为加密“MIS用户表”。所谓双层用户角色是指将DBMS用户权限划分为两个级别的角色——缺省角色和实际角色。

缺省角色是指数据库用户所具备的缺省权限,仅用于连接和查询加密后的“MIS用户表”,不具备任何操作数据库中具体数据表的权限。

实际角色是指MIS设计时,根据用户使用MIS功能的需要,赋予MIS用户操作数据库实际的用户权限,包括对数据库内容的查询、添加、删除、修改等操作。特别地,实际角色是一类操作权限,并不是将DBMS超级管理员权限赋予实际角色,而是按照用户使用MIS功能的需要,将实际角色划分为多种功能层次的角色用户,每个层次的用户仅能操作自己权限允许范围内的数据表。

“MIS用户表”是MIS用户与实际角色用户的对照表,一类实际角色对应于多个MIS用户。“MIS用户表”中存储了MIS用户名、密码,以及MIS用户对应的实际角色、实际角色密码信息,MIS用户名、MIS用户密码及对应实际角色、密码均经过相应的加密算法处理。对于不同用户是同一实际角色,加密后“MIS用户表”中存储的实际角色的信息编码形式是不同的,只由MIS用户自己能获得实际角色用户名、密码的解密。

MIS双层数据库用户角色登录实现工作流程,如图1。

2 双层数据库用户角色安全登录模式实现的核心问题与技术

2.1 加密的算法分类与选择

加密技术是保护私有数据不被访问和修改,同时确保数据的完整性的信息编码技术。通常地,根据密钥类型不同将加密技术分为,对称加密、非对称加密。又根据加密方向可逆与否可将加密技术分为:单向加密、双向加密。Microsoft? .NET Framework中涵盖了三类常见加密算法:对称加密算法、非对称加密算法、哈希加密算法。System.Security.Cryptography命名空间中提供了加密算法实现类,具体见表1。

一般地,数据库加密要求加密效率、加密强度要尽可能的高。非对称算法加密算法虽然加密强度较高,但算法复杂,效率较低,不能满足数据库加密要求。对称加密算法速度较快、实现简单,适合数据库加密/解密。哈希加密算法为单向加密,适合用户口令加密。针对三类加密算法的特点,结合数据库加密的要求,数据库登录机制的实现选择典型、具有代表性的MD5哈希算法、DES对称算法。

2.2 MIS用户表设计

依据双层数据库用户角色模式登录的工作流程,MIS用户表至少包含四个内容的字段,即MIS用户名,MIS用户密码,DBMS用户名,DBMS用户密码。又考虑到用户信息加密后的字段最大长度,设计MIS用户表,如表2。

2.3 登录过程中加密算法运行机制

根据加密算法的特点以及双层数据库角色登录机制用户的要求,MIS用户名、用户密码加密使用MD5算法,DBMS角色用户名、角色用户密码用DES算法。

1) MIS用户密码加密

MIS用户名的加密经MD5加密后存储于数据库UserName列,MIS用户密码的加密经MD5加密后存储于数据库UserPWD列。

2) DBMS角色用户名、角色用户密码加密

由于MIS用户名为MIS用户表的主键,所以在数据表中,MIS用户名是唯一的,MIS用户名经过MD5加密后仍为唯一的,考虑到主机IP地址唯一性,所以将MIS用户名的MD5加密字符串的一部分及主机IP地址的一部分组成DBMS角色用户名、角色用户密码加密/解密的密钥,这样就保证了用户只有自己能对自己的登录信息进行正确的解密。

3 结束语

安全防范是一个永久性的问题, 只有通过不断地改进和完善安全手段, 才能提高系统的可靠性。以上加密登录机制已经在有些学校的网络成绩管理系统和教务管理系统中使用。经过测试,具有稳定、可靠、安全、操作方便的特点,是一种经过时间检验,比较成熟的登录机制设计。

参考文献:

[1] 邓艺夫,胡振.DES加密算法与SHA1散列函数的结合应用[J].现代计算机,2006,(7):100-102,112.

[2] 曾青松. .net框架下数据加密技术的实现[J].电脑知识与技术,2005,(35):60-62.

[3] 李海燕,徐汀荣.基于B/S的电子政务系统中信息加密技术的实际与实现[J].苏州大学学报(工科版),2004,24(6):46-48.

[4] 刘瑜,陈铁英. Microsoft SQL Server数据库的安全策略及实现方法[J].计算机工程与设计,2003,24(1):68-71.

猜你喜欢
数据库安全管理信息系统加密技术
海洋水文信息加密技术方案设计与测试
管理信息系统中数据库安全实现方法
数据加密技术在计算机网络通信安全中的应用
浅谈高速公路数据库安全审计
在计算机网络安全中数据加密技术的应用
高校数据库安全技术教学实践探索
基于四叉树网格加密技术的混凝土细观模型