• 工作总结
  • 工作计划
  • 心得体会
  • 述职报告
  • 事迹材料
  • 申请书
  • 作文大全
  • 读后感
  • 调查报告
  • 励志歌曲
  • 请假条
  • 创先争优
  • 毕业实习
  • 财神节
  • 高中主题
  • 小学一年
  • 名人名言
  • 财务工作
  • 小说/有
  • 承揽合同
  • 寒假计划
  • 外贸信函
  • 励志电影
  • 个人写作
  • 其它相关
  • 生活常识
  • 安全稳定
  • 心情短语
  • 爱情短信
  • 工会工作
  • 小学五年
  • 金融类工
  • 搞笑短信
  • 医务工作
  • 党团工作
  • 党校学习
  • 学习体会
  • 下半年工
  • 买卖合同
  • qq空间
  • 食品广告
  • 办公室工
  • 保险合同
  • 儿童英语
  • 软件下载
  • 广告合同
  • 服装广告
  • 学生会工
  • 文明礼仪
  • 农村工作
  • 人大政协
  • 创意广告
  • 您现在的位置:六七范文网 > 其它相关 > 正文

    基于网闸的异构数据库安全同步系统

    来源:六七范文网 时间:2023-05-11 06:45:10 点击:

    黄刘松,张 飞,张学锋,吴慧林

    (1.马鞍山师范高等专科学校软件学院,安徽马鞍山 243041;
    2.安徽工业大学信息化处,安徽马鞍山 243032;
    3.安徽工业大学计算机科学与技术学院,安徽马鞍山 243032)

    在数据库管理系统领域,市面上拥有许多成熟的数据库产品,而在企业搭建的众多应用系统中,由于应用开发部门不同或者应用系统本身特点等因素,使得不同系统使用的数据库系统也存在不同。随着业务与用户规模的不断增加,传统的单一数据中心已经不能满足企业的发展需求,跨地域、跨安全区的互联数据中心建设方案由此产生,这种场景就产生了异构数据库之间数据同步的问题。

    网闸是使用带有多种控制功能的固态开关读写介质,连接两个独立主机系统的信息安全设备,实现将网络数据包的协议剥离,还原为原始数据,对原始数据内容进行安全检测,达到“协议落地、内容检测”的目的,目前在电力等工业企业中广泛使用。可以说网闸设备是实现工业企业中安全区Ⅰ/Ⅱ到安全区Ⅲ/Ⅳ的单向数据传递的重要设备。

    正向型网络安全隔离网闸对于安全区两侧数据传递进行单向隔离。这就导致在跨安全区的场景下,安全区两侧因为业务开展以及先后系统建设的差异,存在异构数据库之间数据要实现快速稳定安全同步的问题。本文旨在跨安全区的情况下,屏蔽安全隔离设备以及两侧数据库的异构差异,实现数据库间的数据同步。

    正向型网络安全隔离网闸从物理上隔离、阻断了对内网具有潜在攻击可能的一切网络连接,使外部攻击者无法直接入侵、攻击或破坏内网,保障了内部主机的安全,被广泛应用在企业安全防护建设当中。数据库系统作为数据存储的介质以及信息系统建设的基础,更是被广泛应用于信息化建设当中。

    就目前现有使用场景来说,异构数据库系统的数据同步基本是在网络可以互通的场景下。工业上常见的使用Kettle等ETL(extract-transform-load)工具进行异构数据库之间的数据同步,这种方式同步在大部分场景下其实已经可以满足数据同步的需要。但是在面对“安全分区、网络专用、横向隔离、纵向认证”的跨地域、跨安全区场景下,这类同步工具就显得力不从心。工业企业不同安全区之间因为网络安全建设的需要,使用的正向型网络安全隔离网闸使得不同安全区之间实现了网络上的物理隔离,类似Kettle这类工具是无法穿透网闸进行数据同步的,这大大增加了异构数据库数据同步的难度〔1-4〕。

    面对这类场景,很多工业企业会面向此类业务开发相应的应用程序进行特定数据库的同步,但是,这些应用于异构数据库数据同步往往面向主流的关系型数据库之间,比如Oracle〔5〕、MySQL〔6〕、SQL Server等,随着应用场景的不断发展,类似MongoDB这些非关系型数据库的应用场景在不断加深,这就出现了关系型数据库和非关系型数据库之间数据同步的需求。

    再则,数据库之间的数据同步存在全量同步和增量同步问题,全量同步在于大数量的情况下,会出现同步速度慢、数据更新不及时的问题,以及在数据传输过程中,必然会有传输失败的问题,所以数据库同步需要综合考虑全量同步和增量同步以及数据传输失败恢复重传的情况。

    本文结合市面上主流正向型网络安全隔离网闸的通信原理〔7-9〕,旨在实现在跨安全区的场景下以及在保证数据同步的正确性和安全性的基础上,实现主流关系型数据库经过网闸设备同步数据到主流关系型数据库以及常见非关系型数据库的应用需求。

    边界防护是目前工业企业进行安全区划分的目标,正向型网络安全隔离网闸设备实现了物理隔离通信的要求,这自然给安全防护带来了很大助力,但是也给数据同步带来了巨大困难。针对工业企业跨安全区数据库同步的情况,本文设计出一个基于正向网闸的数据库数据同步方案。新设计的数据同步方案能够面向主流的关系型数据库以及常见的非关系型数据库实现数据的跨区同步。跨安全区异构数据库同步总架构见图1。

    图1 跨安全区异构数据库同步总架构

    如图1所示,从Ⅰ/Ⅱ区向Ⅲ/Ⅳ区进行数据库数据同步,主要是通过数据库数据探知模块收集Ⅰ/Ⅱ区数据库中需要同步的数据,Ⅰ/Ⅱ区的网闸适配模块负责将需要传输的数据进行处理,并发送数据给网闸,Ⅲ/Ⅳ区的网闸适配模块主要用于接收穿过网闸的数据,经过数据验证,再将数据恢复成能够存入Ⅲ/Ⅳ区数据库的数据格式存入数据库。

    Ⅰ/Ⅱ区的数据库数据探知模块主要用于发现和收集数据库中需要同步的数据。为了能够适应多种场景,在数据探知这块,提供了主动探知和被动探知两块功能。数据探知模块架构见图2。

    如图2所示,主动探知又分为全量探知和增量探知,主动探知模块会根据定时器的设置情况,定时去获取数据,通常按照数据实时性的要求,可以设置按秒、分钟、小时或者固定某个时间点进行探知,这是一个动态调优和需求相结合的过程,通常建议1~10 min进行探知一次。全量探知即完整的同步数据库的某张表,一般用于数据量不大的表数据的同步。增量探知即是指同步数据变化的部分。目前不同数据库产品支持不同的数据探知策略,常见的有快照法、触发器法、日志法、API法、影子表法、控制表法。考虑到当今主流数据库都已经实现触发器机制,并且用户对触发器的接受程度较高,本文提出一种基于触发器+快照表的数据捕获方法,具体方案如下:

    图2 数据探知模块架构图

    (1)对需要进行增量同步的数据表建立同步视图,视图包括源表字段,还需要包括操作类型和时间戳。操作类型包括增加(add)、修改(edit)、删除(delete)3种操作;
    时间戳为该条数据变化的时间,由触发器操作快照表时生成。

    (2)对需要进行增量同步的数据表建立触发器,触发器主要目的是根据用户的增加(add)、修改(edit)、删除(delete)3种操作变更快照表中的数据,对于同一主键的数据在快照表中只保留一条数据。

    (3)增量探知模块定时去读取快照表中的数据,并根据Ⅲ/Ⅳ区目标数据库类型以及该条数据操作类型,生成目标表数据操作脚本,并将脚本序列化成字符串文本或byte数组通过数据缓冲区操作模块写入数据缓冲区。

    (4)增量探知模块在数据写入数据缓冲区后,根据时间戳在快照表中删除不大于该时间戳的快照数据。

    被动探知主要提供一个HTTP标准服务接口,允许第三方数据库服务调用接口传入需要同步的数据,同样被动探知模块会将需要同步的数据根据Ⅲ/Ⅳ区目标数据库类型以及该条数据操作类型,生成目标表数据操作脚本,并将脚本序列化成字符串文本或byte数组通过数据缓冲区操作模块写入数据缓冲区。

    网闸适配模块分为发送者和接送者两个部分,用来屏蔽正向型网络安全隔离网闸设备,传输需要同步的数据。如图3,网闸适配模块分为两个部分,分别位于网闸的两侧,Ⅰ/Ⅱ区的网闸适配模块为客户端,Ⅲ/Ⅳ区的网闸适配模块为服务端,两端模块依据网闸的通信特性,通过TCP协议连接。

    图3 网闸适配模块架构图

    Ⅰ/Ⅱ区网闸适配功能模块:

    (1)数据缓冲区操作模块

    联通数据缓冲区,通过Kafka消费者订阅Topic获得需要同步的数据,以及在TCP Client发送数据失败时,通过Kafka生产者将数据重新回写进Kafka的Topic,使得网闸适配模块的Kafka消费者能够再次读到发送失败的数据,以便实现同步失败数据的重新同步操作。

    (2)数据加密/压缩模块

    为保证数据传输的安全性,采用对称加密算法实现数据的加密和恢复,网闸适配模块融合了SM2-3算法对同步数据进行加密,加密过的数据按照传输报文格式进行封装,成为网闸两侧数据传输、会话反馈的重要信息。

    SM2算法是在ECC椭圆曲线密码理论基础上改进而来的,其加密强度比RSA算法(2 048位)更高。国密SM2包括SM2-1椭圆曲线数字签名算法、SM2-2椭圆曲线密钥交换协议、SM2-3椭圆曲线公钥加密算法,分别用于数字签名、密钥协商和数据加密功能,其算法原理见图4。加密算法为y2=x3-x在该方程支持下,实现对称加密〔10〕。

    图4 SM2椭圆曲线公钥密码算法原理图

    为了缓解网闸传输压力,降低传输的数据量,网闸适配模块融合了Gzip压缩算法对于需要传输的数据进行数据压缩。Gzip是一种无损压缩算法,其基础为Deflate,Deflate是LZ77与哈夫曼编码的一个组合体。它的基本原理是:对于要压缩的文件,首先使用LZ77算法的一个变种进行压缩,对得到的结果再使用哈夫曼编码的方法进行压缩。

    (3)数据融合

    经过数据加密/压缩模块的处理,同步数据经过了基础处理,由于数据需要通过网闸传送给Ⅲ/Ⅳ区,为了保证数据在传输过程中的完整性,需要对数据传输格式进行定义,数据传输格式定义见表1。

    表1 数据报文格式

    (4)TCP客户端(TCP Client)

    以TCP协议与网闸另一侧(Ⅲ/Ⅳ区)服务端连接,用于发送数据和接收反馈的1字节报文。TCP客户端主要发送两种类型数据:

    ①心跳报文

    TCP客户端在连接状态下,定时发送心跳报文给服务端,服务端收到心跳报文后反馈心跳报文标签ID(1字节,正向网闸可以反向传输1字节数据)给TCP客户端。客户端在一定时间内(10 s)未收到数据报文标签ID或者心跳报文标签ID,则通过重连机制,自动断开与服务端连接,并释放资源,重新连接。心跳报文定义格式见表2。

    表2 心跳报文格式

    ②数据报文

    数据报文是需要传输给服务端(Ⅲ/Ⅳ区),并需要更新Ⅲ/Ⅳ区的数据,其格式如表1所示,服务端收到数据后,利用正向网闸可反向传输1字节特性,经过数据校验解析正确且处理成功并同步数据库后,将报文中的标签ID反馈给客户端,若数据错误或处理失败,将标签ID+1(3至255奇数)反馈给客户端。

    Ⅲ/Ⅳ区网闸适配功能模块:

    (1)TCP服务端(TCP Server)

    用于接收网闸适配模块客户端(Ⅰ/Ⅱ区)传输过来的数据,并对接收的报文进行报文层面的解析和初步校验,并负责将报文中的标签ID以及报文最终处理结果反馈给客户端。TCP服务端在有客户端连接的情况下,长时间收不到客户端发送的报文信息,会通过重连机制,主动断开与客户端的连接,并允许客户端重新连接。

    (2)数据解密/解压缩模块

    该模块与Ⅰ/Ⅱ区数据加密/压缩模块对应,服务端收到报文数据库经报文层面解析无误,将报文中同步数据区传入该模块,经过Gzip算法解压缩以及SM2-3算法解密后,得到目标表数据操作脚本文本数据。

    (3)数据库操作模块

    用于将解析出来的目标表数据操作脚本文本的数据写进数据库,完成数据同步操作。

    异构数据库在网闸之间进行数据同步,存在两个方面的难点,一个是如何屏蔽异构数据库之间数据类型的差异,二是如何保证经过网闸设备,还能准确地还原目标数据库的数据类型。针对以上两个问题,本文提出在Ⅰ/Ⅱ区完成源数据库对目标数据库的转换过程。其实异构数据库之间的难点正是由于网闸设备存在的原因,如果没有这个设备,则单侧异构数据库同步则可以轻松地按照不同数据库的特性进行转换。所以只要在Ⅰ/Ⅱ区完成数据转换过程,将转换的结果传递给Ⅲ/Ⅳ区,则自然能够还原目标数据库的数据类型。

    异构数据库在网闸之间进行数据同步还应该考虑数据转换的结果形式,考虑到每种数据库都有自己特定的语法结构,如关系型数据库基本支持SQL语言,MongoDB也有自己的一套脚本语句。所以最直接的方式就是直接转换成目标库可以直接运行的脚本语句,最后再将脚本语句以文本的形式进行序列化、加密压缩后按照传输报文格式进行封装并传输。

    科东Stonewall-2000网络安全物理隔离是比较常用的一款网闸隔离设备,MySQL、SQL Server、DB2、达梦以及MongoDB是目前工业企业常用的数据库,本文选用科东Stonewall-2000系列设备,测试MySQL、DB2到MySQL、DB2、MongoDB数据传输的效率以及可靠性,测试结果见表3。

    表3 实验同步结果

    经过实验,在指定数据量重复传输测试下,本文设计的系统可以在有限时间内完成传输,由于数据缓冲区、传输状态检测以及失败重传机制,实验证明,异构数据库数据传输可靠性得到了保证。

    本文提出的一种面向正向隔离设备的异构数据库安全同步系统,其中网闸适配模块自定义了数据传输格式,利用该定义格式可以保证数据通过网闸设备传输时的完整性和正确性,利用数据标签ID的设计,可以让客户端知道每次数据同步的状态,提升数据同步的完整性。在数据同步和传输过程中,利用取模校验、数据加密、数据解压缩等多种技术,在提升数据传输质量的前提下,也进一步降低了资源开销。通过在源站侧将同步数据库按照目标库格式进行脚本化封装,屏蔽了异构数据库,实现了关系型数据库与非关系型数据库之间数据同步方案。利用数据缓冲区的设计方案,屏蔽了数据变更与数据同步之间处理效率不均衡的缺点,缓解数据变更高峰期造成数据同步的压力,同时利用缓冲区,设计实现了数据重传机制,实现数据同步失败的前提下可以多次同步。

    猜你喜欢 服务端缓冲区异构 试论同课异构之“同”与“异”小学教学研究(2022年5期)2022-04-28吴健:多元异构的数字敦煌商周刊(2019年1期)2019-01-31新时期《移动Web服务端开发》课程教学改革的研究消费导刊(2018年8期)2018-05-25基于ARC的闪存数据库缓冲区算法①计算机系统应用(2018年3期)2018-04-21异构醇醚在超浓缩洗衣液中的应用探索中国洗涤用品工业(2017年2期)2017-04-16LTE异构网技术与组网研究通信电源技术(2016年6期)2016-04-20一类装配支线缓冲区配置的两阶段求解方法研究中国工程机械学报(2016年5期)2016-03-07初涉缓冲区时代人物(2014年10期)2015-01-28多目标缓冲区生成算法全球定位系统(2011年1期)2011-04-26摸清黑客套路防范木马侵入科学24小时(2010年5期)2010-11-08

    推荐访问:同步 异构 数据库