分布式数据库安全代理的研究与实现

李敏
摘 要: 针对传统的分布式数据库系统内访问控制方案存在滞后的弊端,数据传递通道存在潜在安全隐患的问题,研究并实现了分布式数据库安全代理系统。该系统分别封装了代理客户端以及代理服务端,为其他模块进行调用提供基础,通过组件技术实现代理客户端以及代理服务端的设计,给出设计模型内各模块的运行原理和功能。通过代理客户端中的组件创建同应用程序的接口以及同网络通信客户端的接口实现访问数据库的功能,向代理服务端反馈处理后的访问结果。给出网络通信平台设计过程以及代理客户端、服务端设计过程。经测试表明,分布式数据库安全代理系统可实现用户和服务器间的安全通信,可有效实现身份认证,访问性能高,可靠性高。
关键词: 分布式数据库; 安全代理; 安全性测试; 访问控制
中图分类号: TN915.08?34; TP392 文献标识码: A 文章编号: 1004?373X(2017)15?0076?04
Abstract: The access control scheme of the traditional distributed database systems has the lag characteristic, and the data transmission channel has potential security risks, therefore, a distributed database security agent system is researched and implemented. The designed security agent system is encapsulated with the proxy client and proxy server respectively, provides the basis for other modules calling. The design of the proxy client and proxy server was implemented with component technology. The operation principle and function of each module in the design model are given. The interfaces of the same application program and same network communication client are created by means of the component in the proxy client to realize the function of database access, and feed the processed access result back to the agency service. The design process of the network communication platform and design process of the proxy client and server are given. The test results show that the distributed database security agent system can realize the secure communication between user and server, identify the authentication effectively, and has high access performance and high reliability.
Keywords: distributed database; security agent; safety test; access control
0 引 言
隨着计算机和网络技术的快速发展,信息系统的应用价值逐渐提升。信息系统的安全问题日益引起人们的关注。数据库是信息的载体,其安全性决定了总体信息系统的安全性[1]。因此,基于计算机网络和开发环境的分布式数据库系统的安全性越来越重要。传统的分布式数据库系统内访问控制方案存在滞后的弊端,并且数据传递通道存在潜在的安全隐患[2]。因此,确保分布式数据库用户身份的合法性和传递通道的安全性具有重要应用意义。
本文研究并实现了分布式数据库安全代理系统,给出系统总体结构并对系统进行详细分析。介绍了网络通信平台和代理客户端、服务端的设计过程。经实验验证,所研究的分布式数据库安全代理系统能够有效实现安全访问和通信,整体性能高。
1 分布式数据库安全代理的研究与实现
1.1 安全代理的系统模型
本文设计的分布式数据库安全代理系统如图1所示。该系统采用数据库安全代理接管应用程序的访问申请,替换应用程序访问数据服务器,并且将申请应答反馈到应用程序中。该代理模型包含传递访问申请以及接收申请应答的接口[3]。系统分别封装了代理客户端以及代理服务端,为其他模块的调用提供基础,并通过组件技术设计代理客户端以及代理服务端。
代理客户端中的组件可创建同应用程序的接口以及同网络通信客户端的接口。其中,应用程序接口能够采集应用程序提出的申请,并将申请反馈到网络通信客户端;网络通信客户端接口能够采集客户端反馈的申请,同时向应用程序反馈该申请[4]。代理服务端中的组件可创建同数据库服务器以及网络通信服务端的接口,分别实现访问数据库的功能,并向代理服务端反馈处理后的访问结果。
图1模型内各模块的运行原理和功能如下所述:
(1) 代理客户端组件基于同应用程序的接口,得到应用程序的访问申请,同时采用同通信模块的接口向网络通信客户端模块反馈相应的申请,最后采集申请应答的反馈结果。如果申请应答成功反馈,则代理客户端组件采用同通信客户端的接口采集应答反馈的消息,最终采用同应用程序的接口向应用程序反馈获取的应答消息。
(2) 网络通信客户端模块采集代理客户端反馈的访问申请,通过加密通道向网络通信服务端反馈访问申请,并采集申请应答的反馈结果。如果申请应答反馈成功,则网络通信客户端模块向代理客户端组件反馈申请应答消息。网络通信客户端模块同网络通信服务端模块实现数据的交互前,采用客户端身份认证过程确保客户端身份的合法性。
(3) 网络通信服务端模块采集网络通信客户端反馈的访问申请,并向代理服务端反馈该申请,此时代理服务端会反馈申请应答[5],该模块通过SSL加密通道向网络通信客户端传输申请应答消息。
(4) 代理服务端组件采集网络通信服务端传递的访问申请,同时访问数据库服务器,并向网络通信服务端反馈数据库服务器返回的结果。总体分布式数据库代理系统对数据库的访问主要通过代理服务端模块完成。
图2为分布式数据库安全代理的系统模型中应用程序同数据库安全代理各模块间实施调用和传输数据的顺序图。
图2中实线箭头用于描述真实的处理,虚线箭头用于描述前一步的实线箭头完成的功能,组件调用的详细过程为:过程①应用程序调用代理客户端组件的接口,基于该接口同网络通信客户端反馈的申请,实现过程②的功能。网络通信客户端模块采集到申请后,向网络通信服务端反馈申请,也就是过程③。过程④时,网络通信服务端采用代理服务端组件的接口访问数据库完成过程⑤和过程⑥的功能,也就是访问数据库和返回结果集。此时,过程⑦中的网络通信服务端模块采用代理服务端组件接口操作结果集,在过程⑧中向网络通信客户端反馈操作后的结果集。过程⑨中网络通信客户端通过代理客户端组件的接口向应用程序反馈结果集,最终实现过程⑩的功能。
1.2 网络通信平台设计与实现
网络通信平台可对通信双方的身份进行认证,并对传输数据实施加密,是实现分布式数据库安全代理的关键,该平台通过基于Socket的通信完成通信。网络通信平台包括网络通信客户端和网络通信服务端。网络通信平台同应用程序实现数据交流前,网络通信客户端以及网络通信服务端先塑造TCP/IP连接,再采用SSL握手消息的操作,对通信双方身份进行认证以及协商运算,确保传输通道的安全性。最终通过数据传输通道完成应用程序和数据库服务器间的转发访问申请以及申请应答[6]。
代理客户端转发的数据申请反馈给网络通信客户端后,网络客户端会采用记录层模块对申请实施汇总加密处理,再向网络通信服务端反馈处理后的申请,同时采集申请结果的反馈结果。若反馈成功,则向应用程序反馈结果。网络通信服务端对网络通信客户端反馈的数据申请进行操作,采用记录层模块对申请实施解密处理,同时向代理服务端反馈处理结果。此时,采用记录层对代理服务端访问数据库服务器后返回的结果实施汇总加密处理,最终向网络通信客户端反馈处理结果。
网络通信平台的功能结构用图3中的阴影部分描述,其中的证书库位于应用程序以及数据库服务器所处的计算机中[7]。网络通信平台中的数据在传递前都需要进行SSL加密,SSL加密采用握手层模块的身份认证以及记录层模块完成数据的加密和解密。
1.3 代理客户端和服务端的设计与实现
本节提出分布式数据库安全代理系统模型,同时分析了安全代理中的一个组成,即网络通信平台的设计,详细介绍了分布式数据库安全代理客户/代理服务端的设计过程。
1.3.1 代理客户端功能结构
代理客户端主要由COM组件技术完成。COM组件能够为用户提供应用程序与网络通信客户端信息交换的接口。在应用代理客户端的过程中,应用程序首先向代理客户端发出查看分布式数据库的申请[8],通过COM组件接口把接收到的申请传输至网络通信客户端,同时等待申请结果。申请结果被反馈至客户机后,网络通信客户端通过代理客户端的组件接口传输WM_COPYDATA消息,令应用程序对反馈信息进行读取。代理客户端功能结构如图4所示。
本文设计的分布式数据库安全代理主要依赖数据访问保存结果,所以不必对负责存储访问结果的数据结构进行设计。分布式数据库访问申请主要存在两种类型,分别是存在反馈结果的选择型访问请求,以及不存在反馈结果的上载型访问请求。本节构建的数据结构为:
#define MAX_SQL_LENGHT 200
Definition type composition structural morphology
{
int style; //訪问请求的类型,0代表上载型,1代表选择型
char sqlstr [MAX_ SQL_LENGHT]; //访问请求
}
sql style
1.3.2 组件的调用
本文设计的分布式数据库安全代理系统模型在对组件程序进行调用的过程中,通常选择#include技术,完成组件程序的编译后,获取*.h和*.c文件[9],通过组件接口对接口函数进行调用。接口函数的调用代码如下:
#include”..\Consumercom\Consumercom.h”
//通过#include技术对组件进行调用
#include”..\Consumercom\Consumerom_i.c”
Void function ()
{
widget (null value);
//对组件进行初始化处理
I sealed *pUnk= null value;
IGf institution *pGf institution = null value;
HRESULT hr;
Hr= technique(
CLSID_Fun,
NULL,
CLSCTX_TNPROC_SERVER
//通过进程中组件DLL方式进行加载
IID_I sealed
//获取I sealed 接口指针
(LPVOID*)&pUnk);
If(FAILED(hr)) throw(_T(“未注册”));
Hr=pUnk?> limiting surface (
//从I sealed中得到其余接口指针
IID_IGf institution,
//得到IGf institution接口指针
(LPVOID*)&pGf institution);
If(FAILED(hr)) throw(_T(“不存在接口”));
UpdateData();

Hr=pGf institution ?>Sendsql institution (Sqlstr,1);
//对接口函数进行调用
If(objective (hr))
{
AfxMessageBox(“成功传输访问申请至网络通信客户端!”);
}
}
1.3.3 代理服务器功能结构
代理服务端主要负责对网络通信服务端传输的访问申请进行接收和处理,把接收到的访问申请传输至分布式数据库服务器,同时把数据库服务器反馈的访问申请结果传输至网络通信服务端。分布式数据库安全代理服务端功能结构如图5所示。
分析图5可以看出,分布式数据库安全代理服务端接收到网络通信服务端的访问申请后,利用分布式数据库访问模块对相应服务器进行访问,并将反馈的访问申请结果進行处理,传输至网络通信服务端[10]。
2 实验结果与分析
2.1 安全性测试
安全性是衡量分布式数据库安全代理系统性能的关键指标,本节通过身份认证可靠性对安全性进行衡量。在进行身份认证的过程中,通常会出现拒绝真实身份访问与接受仿冒身份访问两种问题。所以本节通过错误拒绝率和错误接受率看作衡量身份认证可靠性的指标,上述两个指标的值越低,则认为身份认证结果越可靠,安全性越高。实验将数字证书系统和时钟系统作为对比进行测试,随着用户量的逐渐增加,分别采用本文系统、数字证书系统和时钟系统实现分布式数据库安全代理,对三种系统代理过程中的错误拒绝率与错误接受率进行比较,得到的结果如表1所示。
分析表1中的实验数据可知,在用户数据量逐渐增加的情况下,三种系统的值和值均呈上升趋势,但本文系统的值和值一直最低,说明本文系统的认证可靠性高,能够保证分布式数据库的安全通信和访问。
2.2 访问性能测试
分布式数据库安全代理系统设计的关键不仅要保证分布式数据库通信和访问的安全性,还要保证访问性能。实验数字证书系统和时钟系统进行对比,将访问时间和重发率作为指标,对本文系统下分布式数据库的访问性能进行测试,结果见表2。分析表2可以看出,与数字证书系统、时钟系统相比,本文系统的重发率和访问时间明显更低,说明本文系统下分布式数据库的访问性能更高,进一步验证了本文系统的可行性。
3 结 语
本文研究了一种分布式数据库安全代理系统。实验结果表明,该研究系统能够实现安全访问和通信,且访问性能高。
参考文献
[1] 贺蕴彬.基于SQL Server数据库安全机制问题的研究与分析[J].信息安全与技术,2014,5(1):48?50.
[2] 吕俊亚.混合数据库中的脏数据隔离优化技术仿真[J].计算机仿真,2014,31(4):252?254.
[3] 周小娟.一种轻量级大数据分析系统的实现[J].电子设计工程,2016,24(8):40?43.
[4] 温馨,罗侃,陈荣国.基于Shark/Spark的分布式空间数据分析框架[J].地球信息科学学报,2015,17(4):401?407.
[5] 欧阳柏成.变异遗传散布控制执行算子的数据库分类查询[J].科技通报,2014(4):143?145.
[6] 林基明,班文娇,王俊义,等.基于并行遗传?最大最小蚁群算法的分布式数据库查询优化[J].计算机应用,2016,36(3):675?680.
[7] 戚斌.基于分布结构自适应筛选的数据库存储优化设计[J].计算机测量与控制,2016,24(12):184?187.
[8] 张旭刚,李东辉,俞俊,等.基于zookeeper和强一致性复制实现MySQL分布式数据库集群[J].微型电脑应用,2016,32(1):77?80.
[9] 李文昊,李海芳.确定性分布式数据库中长事务处理方法研究[J].科学技术与工程,2016,16(13):92?95.
[10] 李海荣,方中纯.分布式数据库控制协调体系结构的研究与实现[J].微电子学与计算机,2016,33(9):114?118.