数据库安全代理的研究与实现
夏春梅+虞翔
摘 要: 为了提升数据库安全性能,设计基于SSL的数据库安全代理系统。系统借助SSL的私密通信能力、用户身份验证能力和数据参数验证能力构建SSL安全代理接口,为用户访问需求验证提供数据和信道的加解密处理,防止不法分子攻击数据库。构建了以委任代理、访问代理和数据代理为主要功能的系统功能模型,给出数据通信流程,并对实现数据通信的握手协议和SSL记录协议层进行介绍。经实验验证可得,所设计的数据库安全代理模型可有效避免攻击,防止数据库私密数据被盗取。
关键词: 数据库; 安全代理; 握手协议; SSL记录协议层
中图分类号: TN915.08?34; TP311.13 文献标识码: A 文章编号: 1004?373X(2017)13?0098?03
Abstract: A database security proxy system based on SSL was designed to improve the security performance of database. The SSL security proxy interface is constructed in the system by virtue of the private communication capacity, user authentication capacity and data parameter validation capacity of SSL to provide the encryption and decryption of data and channel for user access demand, and prevent the lawbreaker attacking the database. The system function model taking the mandate agent, access agent and data agent as the main functions was constructed. The data communication process is given. The handshake protocol and SSL record protocol layer to implement the data communication are introduced. The experimental verification results show that the designed database security proxy model can effectively avoid the attack, and prevent the database private data being stolen.
Keywords: database; security proxy; handshake protocol; SSL record protocol layer
0 引 言
計算机网络在信息化时代中占据了极其重要的地位,数据库是计算机网络信息的载体,但凡是信息系统都离不开数据库提供的信息存储与管理功能。数据库中含有的私密信息存储和通信漏洞为其安全带来了隐患,不同区域间网络服务器的地址存储不集中、用户权限管理不彻底、信息加密失误、远程跟踪检测不完善等漏洞都为不法分子对数据库的攻击提供了入口,数据库安全代理的建立是解决上述隐患的重要手段[1]。绝大多数的数据库都以用户口令为安全代理,这种方式虽然使用起来极其简单,但安全性薄弱,不法分子只需使用简单的攻击方式便能从中套用到信息密钥,而且随着用户与网络服务器之间的数据交互增多,信息密钥的丢失率也不断上涨,对用户的信息安全造成了不小的影响[2]。为了优化数据库安全性能,提出基于SSL(Secure Sockets Layer,安全套接层)的数据库安全代理系统。
1 SSL优势分析
SSL是一种用于计算机网络应用的安全协议,能够给出用户权限检测、信道数据检测和信息加密等多种类型的应用服务,在需要安全保卫的网络应用中出现几率颇高[3]。SSL构建于稳定的网络传输层中,使用时与网络应用层内的算法和功能互不干扰,可自动提供双向通道保密通信以及用户权限与密钥的认证[4]。图1为SSL结构图。
如图1所示,SSL拥有两个协议层,上层结构包括握手、加密参数修改、告警与应用数据四种协议,用来进行用户与网络服务器之间的信息传导、加密、协商与检测,通过检测的信息才能被记录到计算机应用中生成数据。下层包括SSL记录协议层、传输控制协议与地理位置三种并列协议,可对数据和信道进行封装、加密、解密和协议修正,并有避免重复攻击的能力[5]。经SSL处理过的信道具备下述数据保卫能力:
(1) 私密通信能力:数据收发者使用握手协议对数据进行加密,提供给用户加密流程及密钥,加密流程通常采取对称加密形式,默认的是数据加密标准算法。
(2) 用户身份验证能力:在握手协议的处理下,数据收发者也可进行非对称加密,也就是使用数字证书提供单向或双向的用户身份验证,默认的非对称加密算法是公钥加密算法。
(3) 数据参数验证能力:数据参数也就是数据完整性,使用的验证介质是鉴别码[6],鉴别码的理论基础是哈希函数,包括安全哈希算法和消息摘要算法。
SSL借助自身的保卫能力对数据库的安全能力进行研究,摒弃以往的明文密钥,改用私密密钥,对数据库的信道进行远程访问安全加密,并构建额外的信道增强数据库对不法分子攻击的防护能力,从根本上杜绝攻击,防止数据库私密信息被盗取。
2 基于SSL的数据库安全代理系统设计
以往的数据库使用网络服务器接收用户访问需求,存在极大的安全隐患,设计的基于SSL的数据库安全代理系统对用户访问需求进行管理,经验证无不良情况存在时,再将访问需求反馈给网络服务器,这些处理过程需要通过数据通信接口实现[7],管理访问需求的接口称为SSL安全代理接口,接口中存在两个数据收发端口,分别是代理用户端和代理服务端。
为了使设计的系统能够与多种类型的数据库进行互通,对安全代理接口进行封装,所用的技术是组件对象模型,方便进行维修和数据调用。代理用户端负责与提供用户访问需求的软件接口进行沟通,还提供了与网络服务器之间的交互端口[8]。代理服务端与数据库、代理用户端连接,能够处理代理用户端中的数据,并对数据库中的数据进行提取和写入,利用SSL将管理结果反馈给用户软件。
图2为基于SSL的数据库安全代理系统的结构,可见整个系统的工作流程均受到了SSL的监管,同时,系统的通信模块提供了两个通信接口,分别位于代理用户端和代理服务端。当用户需求接入到SSL安全代理接口后,代理用户端的通信接口将反馈出接收状态给用户,经代理服务端进行数据加密处理后,通信接口将反馈出数据管理状态给用户。用户将根据数据管理状态确定是否有进入到数据库的权限。SSL监管模块对系统所有的数据传输通道进行安全加密,通信接口每产生一次通信信号,SSL监管模块便进行一次安全加密。
图3描述了系统各模块之间的数据通信流程,用户软件从代理用户端中获取通信位置,使用通信位置向网络服务器传输用户访问需求。当网络服务器感应到访问需求,经SSL监管模块加密后的信道将访问需求反馈给通信模块,通过通信模块将访问需求传输到代理服务器。代理服务器对访问需求的完整性进行测试,不完整的访问需求代表此用户无数据库访问权限,SSL监管模块不会提供给此用户通信模块的通信密钥以及数据库密钥。完整的访问需求在用户进入到数据库之前便可完成对通信模块和数据库的SSL密钥验证。由于不法分子借助其他媒介进入数据库时不会产生SSL密钥验证结果,系统一旦检测到这一问题,将踢出不法分子,并记录IP地址。
3 数据库安全代理系统功能实现
3.1 系统功能模型
基于SSL的数据库安全代理系统为数据库初步定制的功能包括委任代理功能、访问代理功能和数据代理功能,各功能分别位于不同的等级中,如图4所示。
委任代理功能位于系统的第一等级,负责构建数据库与用户之间的访问链接和终止访问指令,向用户软件传输SSL安全代理接口的管理结果。由于位于系统的最前端,委任代理功能还负责存储代理信息,并向第二、第三等级分配代理任务;访问代理功能位于第二等级,负责整个系统的安全问题,包括用户访问权限验证、访问权限完整性以及数据与信道的加密和解密;数据代理功能位于最后的等级中,负责接收SSL安全代理接口管理结果,并向数据库发出数据调用请求,请求通过后还需要对用户调出的数据进行加密和解密。
3.2 基于SSL的通信模块功能实现
系统通信模块的各项功能都是由SSL提供的,在代理用户端与用户软件进行数据通信時,SSL先给出TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)请求[9],使用握手协议进行通信处理,验证数据收发者之间的身份,使用算法协商获得安全信道,在安全信道中进行数据转发和指令传输。在代理服务器与数据库进行数据通信之前,SSL把用户访问需求以加密形式调取出来,在SSL记录协议层中对用户访问需求进行解密,随后反馈到代理服务器,使用握手协议实现通信。从以上通信方式中能够看出,握手协议和SSL记录协议层是实现数据库安全代理的关键,表1对握手协议的信息流通方向进行了概括,图5给出了SSL记录协议层的数据加密结构。从表1和图5可以看出,握手协议的信息由SSL记录协议层加密为若干个私密结构的报文,私密结构主要包括各类型数据的长度和信道编号。
4 仿真实验
4.1 实验环境搭建
基于SSL的数据库安全代理系统的设计目标是保护数据库私密数据不被窃取,并减少攻击成功次数,下面通过实验验证本文系统对设计目标的实现情况。在数据库所处的网络状态下,不法分子普遍使用的攻击工具名为Sniffer[10],中文名为嗅探器,也称作抓包软件。Sniffer能够检测到任意网络时段中是否存在通信信号,具有监视网络状态、提取数据流量、诊断数据信号的功能,对于未经加密数据的攻击成功率和数据截获精度极高。
本次实验使用Sniffer搭建出三条数据库攻击通道,每条数据通道的攻击类型都不相同,攻击强度均设为最大。第一条通道模拟了数据库合法用户的IP地址,第二条通道已知合法用户的通信密钥,第三条通道已知合法用户的数据库密钥。三条通道的攻击次数均为1 000次。实验过程中不更改合法用户的IP地址和两种密钥,本文系统的实验对照组选择两款性价比较高的数据库安全代理系统,分别是SQL Server代理系统和ATE代理系统,实验在如图6所示的某大学实验室内进行。
4.2 结果与讨论
SQL Server代理系统、ATE代理系统和本文系统在三条数据库攻击通道中的攻击成功次数和私密数据窃取量如表2,表3,表4所示。实验结果表明,本文系统在合法用户的IP地址和通信密钥已知的情况下,不法分子无法对数据库进行成功攻击,私密数据窃取量为0M。在合法用户数据库密钥已知的情况下,不法分子的1 000次攻击仅有3次成功,但仍然无法获取数据库内的私密数据。相比SQL Server代理系统和ATE代理系统而言,本文系统表现出了非常优异的防护性能。
5 结 语
现有的数据库安全代理系统都不能为数据库提供优质的安全防护,本文设计了一种基于SSL的数据库安全代理系统,对数据库通信通道、用户验证通道和数据库数据进行了加密处理。从实验结果来看,本文系统能够从根本上保证数据库中数据的安全。
参考文献
[1] 姚华.常见数据库加密技术对比[J].计算机与网络,2015,41(14):36.
[2] 芦彩林,邹恒,何淑贤.网络入侵中未知协议识别单元的设计与测试[J].现代电子技术,2015,38(22):25?28.
[3] 丁瑞琦,张卫国.新型煤矿安全监控系统数据库密钥管理方法[J].工矿自动化,2015,41(8):93?95.
[4] LIANG K, MAN H A, LIU J K, et al. A DFA?based functional proxy re?encryption scheme for secure public cloud data sharing [J]. IEEE transactions on information forensics & security, 2014, 9(10): 1667?1680.
[5] 贺蕴彬.基于SQL Server数据库安全机制问题的研究与分析[J].信息安全与技术,2014,5(1):48?50.
[6] 崔翘楚,魏长安.信息化体系结构ATE软件开发平台设计方法[J].现代电子技术,2015,38(22):29?33.
[7] 姜珊.计算机数据库安全管理分析与探讨[J].科技创新导报,2015(26):195?196.
[8] 张帆,毋涛.基于云计算的服装物料管理系统[J].西安工程大学学报,2015,29(6):740?745.
[9] 李伟.计算机数据库安全管理研究[J].城市建设理论研究, 2014,13(18):215.
[10] CARNAVALET X D C, MANNAN M. A large?scale evaluation of high?impact password strength meters [J]. ACM transactions on information & system security, 2015, 18(1): 1?32.
摘 要: 为了提升数据库安全性能,设计基于SSL的数据库安全代理系统。系统借助SSL的私密通信能力、用户身份验证能力和数据参数验证能力构建SSL安全代理接口,为用户访问需求验证提供数据和信道的加解密处理,防止不法分子攻击数据库。构建了以委任代理、访问代理和数据代理为主要功能的系统功能模型,给出数据通信流程,并对实现数据通信的握手协议和SSL记录协议层进行介绍。经实验验证可得,所设计的数据库安全代理模型可有效避免攻击,防止数据库私密数据被盗取。
关键词: 数据库; 安全代理; 握手协议; SSL记录协议层
中图分类号: TN915.08?34; TP311.13 文献标识码: A 文章编号: 1004?373X(2017)13?0098?03
Abstract: A database security proxy system based on SSL was designed to improve the security performance of database. The SSL security proxy interface is constructed in the system by virtue of the private communication capacity, user authentication capacity and data parameter validation capacity of SSL to provide the encryption and decryption of data and channel for user access demand, and prevent the lawbreaker attacking the database. The system function model taking the mandate agent, access agent and data agent as the main functions was constructed. The data communication process is given. The handshake protocol and SSL record protocol layer to implement the data communication are introduced. The experimental verification results show that the designed database security proxy model can effectively avoid the attack, and prevent the database private data being stolen.
Keywords: database; security proxy; handshake protocol; SSL record protocol layer
0 引 言
計算机网络在信息化时代中占据了极其重要的地位,数据库是计算机网络信息的载体,但凡是信息系统都离不开数据库提供的信息存储与管理功能。数据库中含有的私密信息存储和通信漏洞为其安全带来了隐患,不同区域间网络服务器的地址存储不集中、用户权限管理不彻底、信息加密失误、远程跟踪检测不完善等漏洞都为不法分子对数据库的攻击提供了入口,数据库安全代理的建立是解决上述隐患的重要手段[1]。绝大多数的数据库都以用户口令为安全代理,这种方式虽然使用起来极其简单,但安全性薄弱,不法分子只需使用简单的攻击方式便能从中套用到信息密钥,而且随着用户与网络服务器之间的数据交互增多,信息密钥的丢失率也不断上涨,对用户的信息安全造成了不小的影响[2]。为了优化数据库安全性能,提出基于SSL(Secure Sockets Layer,安全套接层)的数据库安全代理系统。
1 SSL优势分析
SSL是一种用于计算机网络应用的安全协议,能够给出用户权限检测、信道数据检测和信息加密等多种类型的应用服务,在需要安全保卫的网络应用中出现几率颇高[3]。SSL构建于稳定的网络传输层中,使用时与网络应用层内的算法和功能互不干扰,可自动提供双向通道保密通信以及用户权限与密钥的认证[4]。图1为SSL结构图。
如图1所示,SSL拥有两个协议层,上层结构包括握手、加密参数修改、告警与应用数据四种协议,用来进行用户与网络服务器之间的信息传导、加密、协商与检测,通过检测的信息才能被记录到计算机应用中生成数据。下层包括SSL记录协议层、传输控制协议与地理位置三种并列协议,可对数据和信道进行封装、加密、解密和协议修正,并有避免重复攻击的能力[5]。经SSL处理过的信道具备下述数据保卫能力:
(1) 私密通信能力:数据收发者使用握手协议对数据进行加密,提供给用户加密流程及密钥,加密流程通常采取对称加密形式,默认的是数据加密标准算法。
(2) 用户身份验证能力:在握手协议的处理下,数据收发者也可进行非对称加密,也就是使用数字证书提供单向或双向的用户身份验证,默认的非对称加密算法是公钥加密算法。
(3) 数据参数验证能力:数据参数也就是数据完整性,使用的验证介质是鉴别码[6],鉴别码的理论基础是哈希函数,包括安全哈希算法和消息摘要算法。
SSL借助自身的保卫能力对数据库的安全能力进行研究,摒弃以往的明文密钥,改用私密密钥,对数据库的信道进行远程访问安全加密,并构建额外的信道增强数据库对不法分子攻击的防护能力,从根本上杜绝攻击,防止数据库私密信息被盗取。
2 基于SSL的数据库安全代理系统设计
以往的数据库使用网络服务器接收用户访问需求,存在极大的安全隐患,设计的基于SSL的数据库安全代理系统对用户访问需求进行管理,经验证无不良情况存在时,再将访问需求反馈给网络服务器,这些处理过程需要通过数据通信接口实现[7],管理访问需求的接口称为SSL安全代理接口,接口中存在两个数据收发端口,分别是代理用户端和代理服务端。
为了使设计的系统能够与多种类型的数据库进行互通,对安全代理接口进行封装,所用的技术是组件对象模型,方便进行维修和数据调用。代理用户端负责与提供用户访问需求的软件接口进行沟通,还提供了与网络服务器之间的交互端口[8]。代理服务端与数据库、代理用户端连接,能够处理代理用户端中的数据,并对数据库中的数据进行提取和写入,利用SSL将管理结果反馈给用户软件。
图2为基于SSL的数据库安全代理系统的结构,可见整个系统的工作流程均受到了SSL的监管,同时,系统的通信模块提供了两个通信接口,分别位于代理用户端和代理服务端。当用户需求接入到SSL安全代理接口后,代理用户端的通信接口将反馈出接收状态给用户,经代理服务端进行数据加密处理后,通信接口将反馈出数据管理状态给用户。用户将根据数据管理状态确定是否有进入到数据库的权限。SSL监管模块对系统所有的数据传输通道进行安全加密,通信接口每产生一次通信信号,SSL监管模块便进行一次安全加密。
图3描述了系统各模块之间的数据通信流程,用户软件从代理用户端中获取通信位置,使用通信位置向网络服务器传输用户访问需求。当网络服务器感应到访问需求,经SSL监管模块加密后的信道将访问需求反馈给通信模块,通过通信模块将访问需求传输到代理服务器。代理服务器对访问需求的完整性进行测试,不完整的访问需求代表此用户无数据库访问权限,SSL监管模块不会提供给此用户通信模块的通信密钥以及数据库密钥。完整的访问需求在用户进入到数据库之前便可完成对通信模块和数据库的SSL密钥验证。由于不法分子借助其他媒介进入数据库时不会产生SSL密钥验证结果,系统一旦检测到这一问题,将踢出不法分子,并记录IP地址。
3 数据库安全代理系统功能实现
3.1 系统功能模型
基于SSL的数据库安全代理系统为数据库初步定制的功能包括委任代理功能、访问代理功能和数据代理功能,各功能分别位于不同的等级中,如图4所示。
委任代理功能位于系统的第一等级,负责构建数据库与用户之间的访问链接和终止访问指令,向用户软件传输SSL安全代理接口的管理结果。由于位于系统的最前端,委任代理功能还负责存储代理信息,并向第二、第三等级分配代理任务;访问代理功能位于第二等级,负责整个系统的安全问题,包括用户访问权限验证、访问权限完整性以及数据与信道的加密和解密;数据代理功能位于最后的等级中,负责接收SSL安全代理接口管理结果,并向数据库发出数据调用请求,请求通过后还需要对用户调出的数据进行加密和解密。
3.2 基于SSL的通信模块功能实现
系统通信模块的各项功能都是由SSL提供的,在代理用户端与用户软件进行数据通信時,SSL先给出TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)请求[9],使用握手协议进行通信处理,验证数据收发者之间的身份,使用算法协商获得安全信道,在安全信道中进行数据转发和指令传输。在代理服务器与数据库进行数据通信之前,SSL把用户访问需求以加密形式调取出来,在SSL记录协议层中对用户访问需求进行解密,随后反馈到代理服务器,使用握手协议实现通信。从以上通信方式中能够看出,握手协议和SSL记录协议层是实现数据库安全代理的关键,表1对握手协议的信息流通方向进行了概括,图5给出了SSL记录协议层的数据加密结构。从表1和图5可以看出,握手协议的信息由SSL记录协议层加密为若干个私密结构的报文,私密结构主要包括各类型数据的长度和信道编号。
4 仿真实验
4.1 实验环境搭建
基于SSL的数据库安全代理系统的设计目标是保护数据库私密数据不被窃取,并减少攻击成功次数,下面通过实验验证本文系统对设计目标的实现情况。在数据库所处的网络状态下,不法分子普遍使用的攻击工具名为Sniffer[10],中文名为嗅探器,也称作抓包软件。Sniffer能够检测到任意网络时段中是否存在通信信号,具有监视网络状态、提取数据流量、诊断数据信号的功能,对于未经加密数据的攻击成功率和数据截获精度极高。
本次实验使用Sniffer搭建出三条数据库攻击通道,每条数据通道的攻击类型都不相同,攻击强度均设为最大。第一条通道模拟了数据库合法用户的IP地址,第二条通道已知合法用户的通信密钥,第三条通道已知合法用户的数据库密钥。三条通道的攻击次数均为1 000次。实验过程中不更改合法用户的IP地址和两种密钥,本文系统的实验对照组选择两款性价比较高的数据库安全代理系统,分别是SQL Server代理系统和ATE代理系统,实验在如图6所示的某大学实验室内进行。
4.2 结果与讨论
SQL Server代理系统、ATE代理系统和本文系统在三条数据库攻击通道中的攻击成功次数和私密数据窃取量如表2,表3,表4所示。实验结果表明,本文系统在合法用户的IP地址和通信密钥已知的情况下,不法分子无法对数据库进行成功攻击,私密数据窃取量为0M。在合法用户数据库密钥已知的情况下,不法分子的1 000次攻击仅有3次成功,但仍然无法获取数据库内的私密数据。相比SQL Server代理系统和ATE代理系统而言,本文系统表现出了非常优异的防护性能。
5 结 语
现有的数据库安全代理系统都不能为数据库提供优质的安全防护,本文设计了一种基于SSL的数据库安全代理系统,对数据库通信通道、用户验证通道和数据库数据进行了加密处理。从实验结果来看,本文系统能够从根本上保证数据库中数据的安全。
参考文献
[1] 姚华.常见数据库加密技术对比[J].计算机与网络,2015,41(14):36.
[2] 芦彩林,邹恒,何淑贤.网络入侵中未知协议识别单元的设计与测试[J].现代电子技术,2015,38(22):25?28.
[3] 丁瑞琦,张卫国.新型煤矿安全监控系统数据库密钥管理方法[J].工矿自动化,2015,41(8):93?95.
[4] LIANG K, MAN H A, LIU J K, et al. A DFA?based functional proxy re?encryption scheme for secure public cloud data sharing [J]. IEEE transactions on information forensics & security, 2014, 9(10): 1667?1680.
[5] 贺蕴彬.基于SQL Server数据库安全机制问题的研究与分析[J].信息安全与技术,2014,5(1):48?50.
[6] 崔翘楚,魏长安.信息化体系结构ATE软件开发平台设计方法[J].现代电子技术,2015,38(22):29?33.
[7] 姜珊.计算机数据库安全管理分析与探讨[J].科技创新导报,2015(26):195?196.
[8] 张帆,毋涛.基于云计算的服装物料管理系统[J].西安工程大学学报,2015,29(6):740?745.
[9] 李伟.计算机数据库安全管理研究[J].城市建设理论研究, 2014,13(18):215.
[10] CARNAVALET X D C, MANNAN M. A large?scale evaluation of high?impact password strength meters [J]. ACM transactions on information & system security, 2015, 18(1): 1?32.