当前位置: 主页 > 论文库 > 工学 > 电子机械 >

基于SSL的数据库安全代理设计

时间:2011-12-28 15:09 来源:www.lunwen163.com 作者:163论文网 点击:
摘 要:本文对SSL协议进行了详细了分析,提出了一种双向的身份鉴别方式,即在网络数据库系统中,通过采用SSL协议证书的方式进行认证,通过SSL协议在服务器及数据库用户二者间建立一条保密的安全通道,把数据库与SSL紧密联系起来,并在此基础上,构建了一套数据库安全代理系统。基于SSL协议的数据库安全系统,能够完成数据库的数据安全传输和安全访问等功能,以确保系统的信息安全,其同时也为安全连接需求的远程应用设计模式提供了有益的借鉴。 关键字:SSL,数据库安,服务器平台,客户端代理



SSL-based design of database security proxy
Xiang Chunzhi   Li Xiaoming
Henan Radio & Television University,Henan Zhengzhou,450008
Abstract: The SSL protocol is analyzed in detail, a two-way authentication methods, namely, the network database system, by way of using SSL certificate authentication protocol by the server and database in the SSL protocol between the two users establish a secure channel of confidentiality, the database and SSL closely linked, and on this basis, construct a set of database security proxy system. SSL protocol-based database security system capable of secure transmission of data to complete the database access and security functions to ensure information security system, which also needs a secure connection for remote application design model provides a useful reference.
Keywords: SSL, database security, server platform, the client agent
1. 引言
随着信息化的发展,确保信息系统的安全变得非常迫切,针对网络的安全变成了信息安全领域中非常关键的一个方面,构建一套完备的网络信息安全体系变成了信息发展非常重要的一个条件。作为信息载体的数据库来说,其安全性对于信息系统起到举足轻重的作用。确保数据库数据的安全性,就一定要有基于网络的安全传输和用户的访问控制功能。SSL协议作为提供数据加密及身份鉴别的协议,恰好可以实现这种需求。采用证书方式的SSL认证技术,可以较好地克服当前数据库采用用户名/口令认证方式带来的各种不足,并且把证书和ACL联合起来应用,结合起来使用,还可以实现对权限不同的数据库用户实施访问的控制。与此同时,SSL还能够在服务器及客户端间搭建一条安全传输通道,确保数据传输的完整性及保密性。
本文主要的研究内容,就是要通过SSL协议的采用,建立起服务器和数据库用户间的安全连接,完成正常的双向身份认证,实现在保密通信及访问控制这两个方面安全需要。本文对SSL协议进行了详细地介绍,设计了一种采用SSL技术的数据库安全代理系统模型,并对该系统中的SSL通信模块进行了分析与实现。
2. SSL安全传输
安全套接层协议(Secure Socket Layer,SSL)为基于因特网基础上的一种确保隐秘性的安全协议,它能够为TCP/IP协议体系提供服务器认证、数据加密、可选的客户机认证,以及消息完整性等服务。SSL协议是和具体的应用层协议不相关的。一些上次的应用层协议,例如FTP,HTTP,TELNET等,可以透明地构建在SSL协议上面。SSL的设计目标,就是要在TCP基础上,为上层应用(如Web应用等)提供一套完备的点到点的安全服务。其通信密钥的协商、加密算法和服务器认证等,均为SSL自动实现的。建立好SSL连接以后,不需要应用层实施额外的干预,全部传输数据可以被自动加密。SSL协议体系分为两个协议层次:一是位于上次的 SSL握手协议(SSL handshake protocol layer),修改密钥规约协议,以及报警协议;二是位于底层的记录层协议(SSL record protocol layer),实施封装上层的数据。SSL协议栈模型如图1所示。
 
图 1 SSL协议栈模型
3. 系统整体结构
当前,很多的数据库应用结构采用的是客户/服务器(Client/Server,C/S)模型,其根据数据库编程接口的调用,完成访问远程数据库的功能。一般数据库系统采用的是非加密传输的方式,系统认证主要是依靠用户名/口令方式,所以非常容易被黑客实施攻击,如数据破坏、数据窃听、以及“中间人”等攻击的威胁。为了提高数据库的安全性,本文在数据库应用程序及数据库系统间增加一套安全代理程序,为数据库系统建议一条安全传输通道,实现保密通信及安全认证需求,以确保数据库和应用系统之间数据的安全交换以及数据库系统安全的访问。系统的总体结构如图2所示。客户端的实现方式,是使用了在浏览器上安装安全的控件方式,服务器采用了基于SSL模块的Apache服务器。经过具体配置后,能够完成SSL安全连接功能,通过PHP语言完成服务端界面脚本语言的编程。
 
图 2系统结构图
(1)数据库
本系统采用了MySQL数据库,主要是因为MySQL数据库具有用户认证、访问控制、数据加密等安全功能,并且其还提供了与多种服务器平台的连接接口,快速地完成安全数据库操作。
(2)Web和业务服务器
Web服务器采用的是高效稳定的Apache服务器程序。Apache本身具有与MySQL数据库的接口模块,而且能够配置针对OpenSSL支持的模块。在业务逻辑与服务器控制方面,可以较好地对Web应用及各种脚本语言进行支持,满足各种应用环境安全的需求。
(3)客户端及服务端界面
对于服务端界面的脚本语言方面,本文采用的是PHP语言。PHP非常便于使用,而且具有较高的安全性考虑。尤其在数据库连接方面,PHP具有许多优于其它语言的特点。
4. 服务器平台的实现
构成服务器平台的主要是:对服务端控制界面安全支持的PHP环境,支持SSL安全链接处理的Web服务SSL模块,实现数据操作的MySQL,以及实现业务平台的Apache的Web服务。通过这些组件的集成,实现一个个标准化的部件,整合在Apache上,构成了服务器的平台支撑。
PHP自身不能进行对数据库的安全保护,仅当安全地运用PHP脚本实施对数据库访问操作,才可以实现有效地防御。正确地应用与设计数据库,能够降低被攻击的风险。如果PHP用在Apache模块时,其会继承Apache的用户权限,例如“nobody”用户,这样,就会对其授权机制急安全性带来一些冲击。如通过PHP进行数据库的访问,有可能会使数据库被用户“nobody”访问。这样就不要经过用户名及密码的验证。这时,能够通过Apache的认证机制,阻止这些攻击的发生,也能够通过LDAP文件构建一些自定义的安全访问模式,同时把该代码变为PHP脚本的一部分。
5. 客户端设计
5.1. 客户端代理模块
客户端代理模块主要是根据和应用程序之间的接口,取得应用程序访问请求,同时利用和通信模块之间的接口,把请求提交至通信客户端模块,并等待返回请求应答。在返回请求应答后,此模块通过和通信模块的接口,取得返回请求应答消息,同时把通过和应用程序的接口把请求应答提交至应用程序。
构成本系统客户端代理的是界面安全及通信模块两个部分,依据具体应用场景,制定业务逻辑的内容,在通常情况下,系统都会应用在用户界面作为客户端界面的应用场景中。因此,客户端代理只要实现该部分,就可以作为标准的Web安全控件,实现客户端安全代理功能。实现客户端程序可以有两种模式,模式一是通过浏览器与安全控件来进行实现,模式二是单独的客户端程序。客户端代理结构如图3所示。
 
图 3 客户端代理结构
5.2. 通信模块
通信模块是在SSL的基础上,为服务器及客户代理二者间通信建立安全的通道,以使代理系统拥有加密传输及身份认证功能,确保数据库服务器和应用程序进行安全地交互。客户端程序在服务器有三种连接数据库的方式和它进行配合。
(1)代理通信程序。通信模块把客户端转发请求进行接收,然后把请求通过SSL加密通道提交至服务端,等待返回请求应答;应答返回后,此模块负责把它转发至客户端代理。在服务端与此模块数据交换前,一定要实施客户端身份认证,以保证客户端身份合法性。
(2)直接连接数据库。客户端程序建立和TCP/IP的连接后,搭建起SSL安全通道,直接和服务端数据库进行连接。
(3)直接连接Apache。首先,客户端在http中进行TCP的连接,搭建SSL的加密通道,实施双方身份的认证,然后在通过SSL通道提交请求。在通过Apache的客户端请求后,服务端把返回应答通过SSL加密通道,提交至客户端。通信模块的结构如图4所示。
 
图 4 通信模块结构
6. 结束语
综上所述,本文通过对SSL协议的分析研究,采用了SSL协议作为本系统的安全方案。构建本系统的服务器架构是PHP + Apache+MySQL的开发模式,其为有需要安全连接的远程应用提供了一个通用的设计模式。在此设计模式基础上,仅需要做一些简单的修改于移植,就可以设计出与应用场景相符合的应用系,大大地提高了工作效率。
参考文献
[1]易国华.数据库安全技术的改进性研究.长江大学学报(自然科学版),2006(4):37-39
[2]赵晓峰.几种数据库加密方法的研究与比较.计算机技术与发展,2007(2):58-61
[3]张献春.如何保证网络数据库的安全.网络通信与安全,2007(2):101-103
[4]钟熙宇.SSL协议及其应用.计算机与数字工程,2006(5):91-92