网络数据库安全设计与实现
【摘 要】随着互联网飞速发展,网络环境日益开放,因此,网络数据库的安全问题显得越来越重要。本文论述了网络数据库的安全设计,从三个方面阐述了网络数据库安全的实现,为网络数据库安全建设提供参考。
【关键词】网络数据库;设计;实现;加密;权限
1.引言
近年来,随着计算机科学技术的发展与普及,Internet得到了飞速发展,使得网络不再是单纯的信使,而是一个开放性很强交互的平台,因此网络数据库的安全越来越重要。多用户、高可靠性、频繁的更新和大文件是数据库的特性,这必然使得数据库的建设和维护显得非常困难和繁琐,同时这也使攻击者有机可乘,利用数据库的一些不易觉察的漏洞,进行非法操作。为此,本文主要探讨了网络数据库的安全设计及实现,为网络数据库使用客户提供技术保障。
2.相关技术
2.1 基于角色的访问控制RBAC
RBAC的原理描述如下:用户对应的访问权限是经过授权而获得的,权限只能与角色相对应,角色与权限之间的关系是相互映射的。这样的访问控制方法可以有效简化授权,同时又使指定和执行个性化保护策略的过程更加灵活。用户可以根据实际情况定义角色,也可根据需要重新改变角色。
2.2 .NET Framework
.NET Framework是一个综合性的环境,涉及到用户创建、配置、运行网络服务及其它应用程序。它主要由通用语言运行库、Framework共享对象类别库以及ASP.NET三个部分所构成:.NET Framework类库的特色为:提供可继承的基类;包涵基于Web的应用模型;提供Web服务框架的组件以及相关服务等。
3.网络数据库安全的设计
3.1 系统的架构设计
本文研究的网络数据库安全访问系统主要分成三大部分,分别是:表示层、数据访问层以及数据层,架构设计如图1所示。
由上图可知,整个系统都是基于认证服务器器。系统架构中的几个层次分别承担不同的功能,而面向角色的数据库访问控制在每个层次中都有实现,并结合对应的安全策略及组件来满足数据库访问机制的控制需求。其中,表示层是用户与系统之间的交互接口;数据访问层则是用户与数据库之间的核心层,主要负责逻辑方面的功能控制,涉及到:认证以及数据加密等;数据层则是指数据存储、封装以及调用的功能层次。
图1 网络数据库安全访问系统的架构设计示意图
3.2 系统的访问策略设计
首先,针对用户端,系统必须提供友好的交互界面。本文研究的网络数据库安全访问
系统是基于Windows环境的,借助于.NET实现用户端的认证,并提供规范化的用户输入验证。系统的服务器端会实时接受用户端的请求,并做出响应。此外,系统还对用户输入信息进行有效过滤,可以避免网络上的一些恶意代码进行SQL形式的注入。
其次,系统数据流不仅包括数据本身,还包含密码及连接字符串等信息,如果不进行相关处理而直接在网络上进行传输的话,容易造成信息的泄露,可见,对系统数据流进行加密还是非常有必要的。
另外,面向角色的安全访问机制也是系统安全策略的重要组成部分,可以借助于认证服务器完成。该认证服务器涉及到业务逻辑以及数据库认证授权等。只有被认证服务器认证通过,并授权的用户才可以进行数据库进行访问等操作。
4.网络数据库安全的实现
4.1 系统表示层
网络数据库安全访问系统的表示层是系统的第一屏障,负责用户信息的接收、过滤以及提交等。表示层主要是借助于窗体进行呈现,以树状列表显示用户名及其对应的角色,涉及到:用户登陆ID、用户名、登录时间以及相关权限等。系统表示层中窗体认证的设计如下描述:
(1)用户发出一个数据库连接请求,Internet信息服务允许该数据库连接请求,并由.NET对进行检查。当用户请求认证通过后,就可以被定向到登录界面,用户必须提供用户名及对应密码才可以提交登录窗体。
(2)系统针对用户提供的用户名及密码,根据数据库中相关信息进行匹配验证,如验证通过即分配对应角色。同时,创建Cookie并反馈给用户端。这个时候,可以先将角色暂存在对应的数据字段中,可以防止该用户后续发出的数据库连接请求时,重复获取该角色。
(3)当用户被重定向到最初界面的时候,事件处理程序就会创建对象Iprinicipal,并将该对象保存在Http Context中。最终,用户就根据角色分配登录不同的界面进行数据库的相关操作。
另外,系统表示层中涉及到了SQL注入式攻击的防范设计。本系统在进行SQL语句以及存储过程调用的时候,直接使用Parameters集合,这样可以有效实现不管用户输入何字符,都可以视为文本进行处理,且能够对字符进行类型以及长度方面的检查,有不合格字符值时还可以触发异常。但需要注意的是,当SQL代码有异常出现时,不是直接将SQL错误呈现给用户表示层,而是应该由系统记录下错误信息,并给用户一些友好的提示信息即可,这样可以避免系统一些细节信息的暴露,给攻击者提供途径。
4.2 系统数据访问层
数据访问主要是加密解密以及认证授权。其中,需要进行加密解密处理的数据有三种:连接数据库的字符串、用户密码、需验证的用户输入信息。本系统通过Secret类中的Encrypt对相关数据信息进行加密,并将密文传递到后端认证服务器。认证服务器对于信息的加密是根据哈希算法实现的,直接调用Compute Hash方法对信息参数进行哈希计算,并结合随机数填充数组后进行返回。算法流程如图2所示:
这个权限撤销的存储过程也是只能由管理员权限的用户才能直接调用,主要实现角色
对应权限的删除。用户先调用系统自身的存储过程,其次撤销角色对应的操作权限,然后再将认证数据库上的Role-Right表上删除相关记录即可。
5.总结
总之,网络数据库的安全是一个系统性很强的问题,网络数据库的安全策略涉及到:用户安全访问控制、网络安全传输、数据加密及审计等。因此,在进行网络数据库的安全设计时,要运用立体式的设计理念,综合考虑各方面,不断地改进和完善安全手段,才能提高网络数据库的安全性和可靠性。
参考文献:
[1] 于翔;阎宏印;刘泳.网络数据库安全初探[J].科技情报开发与经济,2007年10期.
[2] 候鹏.试论计算机网络数据库安全策略分析[J].硅谷,2009年第18期.
因篇幅问题不能全部显示,请点此查看更多更全内容