CN114615082B - 一种使用正反向网闸模拟tcp双工安全通讯系统和方法 - Google Patents
一种使用正反向网闸模拟tcp双工安全通讯系统和方法 Download PDFInfo
- Publication number
- CN114615082B CN114615082B CN202210361827.XA CN202210361827A CN114615082B CN 114615082 B CN114615082 B CN 114615082B CN 202210361827 A CN202210361827 A CN 202210361827A CN 114615082 B CN114615082 B CN 114615082B
- Authority
- CN
- China
- Prior art keywords
- data
- tcp
- gatekeeper
- intranet
- transmission channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种使用正反向网闸模拟TCP双工安全通讯系统和方法,系统包括:外网TCP代理服务/内网TCP代理服务,正向网闸传输通道,反向网闸传输通道;外网TCP代理服务/内网TCP代理服务分别包括内网/外网TCP服务模块,内网/外网连接管理模块,内网数据处理模块/外网数据处理模块。本发明中相关的模快,组合正反向网闸的单向数据传输通道模拟出跨不同安全密级网络的TCP双工安全通道,可以将一般的应用软件系统的数据在不同安全密级网络间按网络安全规范传输,一般的应用软件系统对正反向网闸传输的单向传输特性无感知。同时,还公开了一种数据格式定义和校验的方法,提升了本系统的安全性。
Description
技术领域
本发明属于不同安全密级计算机网络通信领域,具体涉及一种使用正反向网闸模拟TCP双工安全通讯系统和方法。
背景技术
电力行业中,在跨不同安全密级网络进行数据通讯时,尤其是电数字信号处理时,按照网络安全规范需要使用物理隔离装置。物理隔离装置按不同密级之间数据传输方向的不同,可分为正向网闸装置和反向网闸装置两种,正向网闸装置用于高密级向低密级网络传输数据,而反向网闸装置则是用于低密级向高密级网络传输数据。内网为高密级网络,比如企业内部专网;外网为低密级网络,比如公网。正向网闸只允许内网TCP客户端向外网服务器端发送数据,TCP外网服务端只能向内网回复0x00或0xFF,且外网不能主动向内网发送数据;反向网闸只允许外网通过E文件摆渡的方式向内网传输数据。
一般的应用软件系统需要进行双向数据通讯,不符合跨不同安全密级网络通讯安全规范,无法在此类网络中进行部署。许多该类应用软件系统为了能在这种网络环境中部署使用,只能降低网络安全规范要求,开放专用不合安全规范的网络通道,但这将会为企业带来巨大的网络安全风险。
发明内容
针对上述现有技术在跨不同安全密级网络进行数据通讯时,本发明的目的在于提供一种使用正反向网闸模拟TCP双工安全通讯系统和方法,来实现安全的网络通讯。
为了实现上述目的,本发明有如下的技术方案:
一种使用正反向网闸模拟TCP双工安全通讯系统,包括:外网TCP代理服务、正向网闸传输通道、内网TCP代理服务及反向网闸传输通道;
所述外网TCP代理服务包括:相互连接的外网TCP服务模块、外网数据处理模块及外网连接管理模块;
所述内网TCP代理服务包括:相互连接的内网数据处理模块、内网TCP服务模块及内网连接管理模块;
所述正向网闸传输通道连接内网数据处理模块和外网数据处理模块,用于从内网到外网的网络通讯;
所述反向网闸传输通道连接外网数据处理模块和内网数据处理模块,用于利用反向网闸的E文件摆渡的方法模拟实现从外网到内网单向TCP通讯。
作为本发明的进一步改进,所述内网TCP服务模块用于接收内网的TCP客户端连接和数据,外网TCP服务模块用于接收外网的TCP客户端连接和数据;
所述内网连接管理模块、外网连接管理模块用于管理上层应用的TCP连接,包括TCP服务模块接收到的连接和主动建立的连接上层应用的客户端连接;
内网数据处理模块、外网数据处理模块用于对TCP代理服务的数据和原始TCP数据进行互相转换,校验上层应用的数据格式。
一种使用正反向网闸模拟TCP双工安全通讯方法,包括以下步骤:
内网TCP服务模块接收内网的TCP客户端连接和数据,外网TCP服务模块接收外网的TCP客户端连接和数据;
通过内网TCP服务模块、外网TCP服务模块与对应的上层应用建立TCP连接;
内网数据处理模块和外网数据处理模块按照配置的上层业务数据的基本格式进行校验;
正向网闸传输通道和反向网闸传输通道共同处理内网或外网主动发送并接收数据。
作为本发明的进一步改进,内网TCP服务模块分别接收内网的TCP客户端连接和数据,外网TCP服务模块分别接收外网的TCP客户端连接和数据,具体包括:
内网TCP服务模块接收到内网上层应用的TCP连接时,会同步通知至外网TCP连接管理模块建立一个与之对应的连接上层应用的客户端连接;
外网TCP服务模块接收到外网上层应用的TCP连接时,也会同步通知至内网TCP连接管理模块建立一个与之对应的连接上层应用的客户端连接;
管理TCP服务模块接收到的上层应用的连接和发起建立的客户端连接满足一一对应关系;不同的数据端口都有对应的连接信息,各端口之间的连接相互独立。
作为本发明的进一步改进,内网TCP服务模块接收内网的TCP客户端连接和数据,外网TCP服务模块接收外网的TCP客户端连接和数据之后还包括TCP代理服务数据与原始TCP数据互相转换的方法:
上层业务数据从内网代理TCP服务进入正向网闸传输通道前,上层业务数据从外网代理TCP服务进入反向网闸传输通道前,增加自定义协议包头;
正向网闸传输通道的数据进入外网代理TCP服务,反向网闸传输通道的数据进入内网代理TCP服务,外网代理TCP服务/内网代理TCP服务解析自定义协议包头,并去除包头,还原数据包为原始的TCP数据包。
作为本发明的进一步改进,内网数据处理模块/外网数据处理模块会按照配置的上层业务数据的基本格式进行校验,具体包括:
在软件定义数据格式的文件中配置上层业务数据的基本格式;
上层业务数据发送至内网数据处理模块或外网数据处理模块后,内网数据处理模块或外网数据处理模块会按照配置的上层业务数据的基本格式进行校验,如果校验失败,在日志文件中记录并丢弃校验失败的不合法的数据请求。
作为本发明的进一步改进,内网TCP服务模块接收内网的TCP客户端连接和数据之前,外网TCP服务模块接收外网的TCP客户端连接和数据之前,还包括:
外网代理TCP服务初始化时,调用正向网闸传输通道或反向网闸传输通道提供的_init()接口初始化;调用正向网闸的_init()接口时,传入_recv_callback()回调函数用于接收正向网闸传输通道发给外网代理TCP服务的数据;
内网代理TCP服务初始化时,调用正向网闸传输通道或反向网闸传输通道提供的_init()接口初始化;调用反向网闸的_init()接口时,传入_recv_callback()回调函数用于接收反向网闸传输通道发给内网代理TCP服务的数据;
外网代理TCP服务发送数据至反向网闸传输通道,内网代理TCP服务发送数据至正向网闸传输通道,调用正向网闸传输通道或反向网闸传输通道提供的_send_data()接口,参数为发送数据地址和发送数据长度;当正向网闸传输通道有数据发送给外网代理TCP服务时,反向网闸传输通道有数据发送给内网TCP代理服务时,传入的_recv_callback回调函数会被触发;
当内网代理TCP服务/外网代理TCP服务退出时,分别调用正向网闸传输通道/反向网闸传输通道的_release()接口,对所有资源进行释放回收。
作为本发明的进一步改进,正向网闸传输通道和反向网闸传输通道共同处理外网主动发送并接收数据,具体包括:
S201:外网上层应用主动发送上层业务数据至外网TCP服务模块,并将上层业务数据转给外网数据处理模块;
S202:外网数据处理模块把连接ID和端口信息写入自定义协议包头,组成新的TCP数据包,将新的TCP数据包通过反向网闸传输通道提供的_send_data()接口发送给反向网闸传输通道;
S203:反向网闸传输通道收到数据后的进行单向数据传输处理,反向网闸传输通道通过E文件摆渡方式将数据从外网传输至内网后,会发送至内网数据处理模块,内网数据处理模块向反向网闸传输通道传入的_recv_callback()回调函数接收数据;
S204:内网数据处理模块,解析协议包头,得到本数据包外网TCP服务模块使用的端口和接收的连接ID,在连接管理模块中通过端口和连接ID查找,找到与外网TCP服务服务模块接收到的连接对应的内网发送数据的客户端连接,通过内网发送数据的客户端连接发送去掉自定义协议头的原始TCP数据至内网上层应用;
S205:内网数据处理模块接收S204中客户端连接的数据,收到内网上层应用回复的TCP数据;
S206:内网数据处理模块依据S204的客户端连接ID,端口组包,把相关信息写入自定义TCP包头后,通过正向网闸传输通道提供的_send_data()接口发送增加包头的TCP回复数据包至正向网闸传输通道;
S207:正向网闸传输通道收到数据后的进行处理,正向网闸传输通道完成回复数据从内网到外网的安全传输后,会发送回复数据至外网数据处理模块,外网数据处理模块向正向网闸传输通道传入的_recv_callback()回调函数接收回复数据;
S208:外网数据处理模块解析协议包头,得到内网客户端连接ID和端口,在连接管理模块中通过端口和连接ID查找,找到与内网数据处理模块发起的客户端连接ID对应的外网TCP服务模块收到的连接,通过外网TCP服务模块收到的连接发送去掉自定义协议头的原始TCP回复数据至外网上层应用。
作为本发明的进一步改进,正向网闸传输通道和反向网闸传输通道共同处理内网主动发送并接收数据,具体包括:
S301:内网上层应用主动发送上层业务数据至内网TCP服务模块,该模块把上层业务数据转给内网数据处理模块;
S302:内网数据处理模块把连接ID和端口信息写入自定义协议包头,组成新的TCP数据包,将新的TCP数据包通过正向网闸传输通道提供的_send_data()接口发送给正向网闸传输通道;
S303:正向网闸传输通道收到数据后的处理,正向网闸传输通道完成数据从内网到外网的安全传输后,会发送数据至外网数据处理模块,外网数据处理模块向正向网闸传输通道传入的_recv_callback()回调函数接收数据;
S304:外网数据处理模块,解析协议包头,得到本数据包内网TCP服务模块使用的端口和接收的连接ID,在连接管理模块中通过端口和连接ID查找,找到与内网TCP服务服务模块接收到的连接对应的外网发送数据的客户端连接,通过外网发送数据的客户端连接发送去掉自定义协议头的原始TCP数据至外网上层应用。
S305:外网数据处理模块接收S304中客户端连接的数据,可收到外网上层应用回复的TCP数据;
S306:外网数据处理模块依据S304的客户端连接ID,端口组包,把相关信息写入自定义TCP包头后,通过反向网闸传输通道提供的_send_data()接口发送增加包头的TCP回复数据包至反向网闸传输通道;
S307:反向网闸传输通道收到数据后的处理,反向网闸传输通道通过E文件摆渡方式将回复数据从外网传输至内网后,会发送回复数据至内网数据处理模块,内网数据处理模块向反向网闸传输通道传入的_recv_callback()回调函数接收回复数据;
S308:内网数据处理模块解析协议包头,得到外网客户端连接ID和端口,在连接管理模块中通过端口和连接ID查找,找到与外网数据处理模块发起的客户端连接ID对应的内网TCP服务模块收到的连接,通过内网TCP服务模块收到的连接发送去掉自定义协议头的原始TCP回复数据至内网上层应用。
相较于现有技术,本发明至少具有如下的有益效果:
在符合跨不同安全密级安全性规范的计算机网络环境中迁移或开发新的应用软件时,使用本发明可以屏蔽掉使用正向网闸的返回包只能返回0x00和0xFF的限制、以及使用反向网闸只能传输E文件的限制,组合了正反向网闸两种单向传输通道的传输能力;上层应用使用本发明可以像使用普通TCP一样,自由发送和接收数据,不需要关注与单向网闸交互模块的细节实现,从而使一般的应用软件系统在跨不同安全密级的网络环境中可以实现安全通讯。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1本发明实施例使用正反向网闸模拟TCP双工安全通讯系统结构图;
图2本发明实施例外网主动发送数据并接收的通讯流程图;
图3本发明实施例内网主动发送数据并接收的通讯流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下结合具体实施方式与附图对本发明进一步详细说明。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
参见图1,本发明提出的一种使用正反向网闸模拟TCP双工安全通讯系统,包括:
外网TCP代理服务101、正向网闸传输通道105、内网TCP代理服务107及反向网闸传输通道106;
外网TCP代理服务101包括:外网TCP服务模块102、外网数据处理模块103及外网连接管理模块104;
内网TCP代理服务107包括:内网数据处理模块108、内网TCP服务模块109及内网连接管理模块110;
各模块的功能如下:
正向网闸传输通道105包括正向网闸软件模块和正向网闸硬件设备,实现一种从内网到外网的安全网络通讯,及多台正向网闸热备和扩容功能;
反向网闸传输通道106包括反向网闸软件模块和反向网闸硬件设备,实现一种利用反向网闸的E文件摆渡的方法模拟实现从外网到内网单向TCP通讯的方法,及多台反向网闸扩容功能;
基于以上正向网闸传输通道105和反向网闸传输通道106,并结合内网TCP代理服务107和外网TCP代理服务101,实现使用正反向网闸模拟TCP双工安全通讯。
内网TCP服务模块109、外网TCP服务模块102分别接收内网/外网的TCP客户端连接和数据;
内网连接管理模块110、外网连接管理模块104,管理上层应用的TCP连接,包括TCP服务模块接收到的连接和主动建立的连接上层应用的客户端连接;
内网数据处理模块108、外网数据处理模块103,对TCP代理服务的数据和原始TCP数据进行互相转换,校验上层应用的数据格式。
将一般的应用软件系统定义为上层应用,上层应用的数据定义为上层业务数据。
本发明提供一种使用正反向网闸模拟TCP双工安全通讯方法,包括以下步骤:
内网TCP服务模块109接收内网的TCP客户端连接和数据,外网TCP服务模块102接收外网的TCP客户端连接和数据;
通过内网TCP服务模块109、外网TCP服务模块102与对应的上层应用建立TCP连接;
内网数据处理模块108/外网数据处理模块103会按照配置的上层业务数据的基本格式进行校验;
通过本系统可以处理外网主动发送并接收数据的场景;通过本系统可以处理内网主动发送并接收数据的场景。具体是正向网闸传输通道105和反向网闸传输通道106共同处理内网或外网主动发送并接收数据。
本发明实施例提供一种TCP连接管理的方法,包括:
内网TCP服务模块109接收到内网上层应用的TCP连接时,会同步通知至外网TCP连接管理模块建立一个与之对应的连接上层应用的客户端连接;
外网TCP服务模块102接收到外网上层应用的TCP连接时,也会同步通知至内网TCP连接管理模块建立一个与之对应的连接上层应用的客户端连接;
管理TCP服务模块接收到的上层应用的连接和自己发起建立的客户端连接的一一对应关系;
不同的数据端口都有自己的连接信息,各端口之间的连接相互独立。
实际使用时,需要进行初始化,初始化包括:
外网代理TCP服务101初始化时,调用正向网闸传输通道105/反向网闸传输通道106提供的_init()接口初始化正向网闸传输通道105/反向网闸传输通道106;调用正向网闸的_init()接口时,传入_recv_callback()回调函数用于接收正向网闸传输通道105发给外网代理TCP服务101的数据;
内网代理TCP服务107初始化时,调用正向网闸传输通道105/反向网闸传输通道106提供的_init()接口初始化正向网闸传输通道105/反向网闸传输通道106;调用反向网闸的_init()接口时,传入_recv_callback()回调函数用于接收反向网闸传输通道106发给内网代理TCP服务107的数据;
外网代理TCP服务101/内网代理TCP服务107发送数据至正向网闸传输通道105/反向网闸传输通道106,调用正向网闸传输通道105/反向网闸传输通道106提供的_send_data()接口,参数为发送数据地址和发送数据长度;当正向网闸传输通道105/反向网闸传输通道106有数据发送给外网/内网TCP代理服务107时,外网/内网TCP代理服务107初始化正向网闸传输通道105/反向网闸传输通道106时传入的_recv_callback回调函数会被触发;
当内网代理TCP服务107/外网代理TCP服务101退出时,分别调用正向网闸传输通道105/反向网闸传输通道106的_release()接口,对所有资源进行释放回收。
本发明实施例提供一种TCP代理服务数据与原始TCP数据互相转换的方法:
上层业务数据从外网代理TCP服务101/内网代理TCP服务107进入正向网闸传输通道105/反向网闸传输通道106前,增加自定义协议包头,包含连接ID,端口等信息;
正向网闸传输通道105/反向网闸传输通道106的数据进入外网代理TCP服务101/内网代理TCP服务107,外网代理TCP服务101/内网代理TCP服务107解析自定义协议包头,并去除包头,还原数据包为原始的TCP数据包。
本发明实施例提供一种数据格式校验方法,可以在软件定义数据格式的文件中配置上层业务数据的基本格式,增强了现有系统、软件的安全性;上层业务数据发送至内网数据处理模块108/外网数据处理模块103后,内网数据处理模块108/外网数据处理模块103会按照配置的上层业务数据的基本格式进行校验,如果校验失败,在日志文件中记录并丢弃校验失败的不合法的数据请求。
参见图2,本发明提出的一种使用正反向网闸传输通道共同处理外网主动发送并接收数据的方法,包括以下步骤:
步骤S201:外网上层应用主动发送上层业务数据至外网TCP服务模块102,该模块把上层业务数据转给外网数据处理模块103;
步骤S202:外网数据处理模块103把连接ID和端口信息写入自定义协议包头,组成新的TCP数据包,将新的TCP数据包通过反向网闸传输通道106提供的_send_data()接口发送给反向网闸传输通道106;
步骤S203:反向网闸传输通道106收到数据后的进行单向数据传输处理,反向网闸传输通道106通过E文件摆渡方式将数据从外网传输至内网后,会发送至内网数据处理模块108,内网数据处理模块108通过向反向网闸传输通道106传入的_recv_callback()回调函数接收数据;
所述单向数据传输处理包括:网闸外侧的数据处理部分及网闸内侧的数据解析部分。其中数据处理部分步是数据源向对端发送数据,将数据暂时放入数据缓冲队列中。一定时间间隔或数据缓冲队列达到一定数量时,准备这期间或数量的待发送数据准备下一步骤;然后为此次发送数据的生成一个标记顺序的时序码;再将待发送数据转换E语言格式文本,将文本写入文件,文件名以生成的时序码与特定字符组成;最后通过网闸进行文件摆渡,若此时默认网闸压力接近阈值,则寻找空闲网闸进行文件摆渡。
数据解析部分主要是监控摆渡过来的文件,判断文件名是否符合时序码与特定字符组成的特征,若符合则进一步解析;对文件进行E文件还原,解析出其中的数据。将数据与时序码存储在时序控制链表当中,当判断时序不连续时,等待一定时间,在这期间若后续无数据或数据时序仍不连续,则表示超时。若与上一次时序码连续时则解析完成。
步骤S204:内网数据处理模块108,解析协议包头,得到本数据包外网TCP服务模块102使用的端口和接收的连接ID,在连接管理模块中通过端口和连接ID查找,找到与外网TCP服务服务模块接收到的连接对应的内网发送数据的客户端连接,通过内网发送数据的客户端连接发送去掉自定义协议头的原始TCP数据至内网上层应用;
步骤S205:内网数据处理模块108接收步骤S204中客户端连接的数据,可收到内网上层应用回复的TCP数据;
步骤S206:内网数据处理模块108依据步骤S204的客户端连接ID,端口组包,把相关信息写入自定义TCP包头后,通过正向网闸传输通道105提供的_send_data()接口发送增加包头的TCP回复数据包至正向网闸传输通道105;
步骤S207:正向网闸传输通道105收到数据后的进行处理,正向网闸传输通道105完成回复数据从内网到外网的安全传输后,会发送回复数据至外网数据处理模块103,外网数据处理模块103通过该模块向正向网闸传输通道105传入的_recv_callback()回调函数接收回复数据;
正向网闸传输通道105收到数据后的进行处理包括:对需要发送的数据进行报文序列组包,并对组包后的数据进行加密和压缩;报文数据通过负载均衡进行数据传输负载均衡处理,以提高数据传输效率;通过正向网闸将数据传输到外侧正向网闸外侧正向网闸连接管理模块;接收到报文数据后,在报文序列重组模块对数据传输的顺序进行重组,形成发送端和接收到顺序一致的数据报文;对数据报文进行解密解压,获得用户传输的数据;调用外网数据处理模块103传入的_recv_callback()将数据回传给应用程序服务端,从而完成一个完整的数据传输过程。
步骤S208:外网数据处理模块103解析协议包头,得到内网客户端连接ID和端口,在连接管理模块中通过端口和连接ID查找,找到与内网数据处理模块108发起的客户端连接ID对应的外网TCP服务模块102收到的连接,通过外网TCP服务模块102收到的连接发送去掉自定义协议头的原始TCP回复数据至外网上层应用。
参见图3,本发明提出的一种使用正反向网闸传输通道共同处理内网主动发送并接收数据的方法,包括以下步骤:
步骤S301:内网上层应用主动发送上层业务数据至内网TCP服务模块109,该模块把上层业务数据转给内网数据处理模块108;
步骤S302:内网数据处理模块108把连接ID和端口信息写入自定义协议包头,组成新的TCP数据包,将新的TCP数据包通过正向网闸传输通道105提供的_send_data()接口发送给正向网闸传输通道105;
步骤S303:正向网闸传输通道105收到数据后的处理,正向网闸传输通道105完成数据从内网到外网的安全传输后,会发送数据至外网数据处理模块103,外网数据处理模块103通过该模块向正向网闸传输通道105传入的_recv_callback()回调函数接收数据;
步骤S304:外网数据处理模块103,解析协议包头,得到本数据包内网TCP服务模块109使用的端口和接收的连接ID,在连接管理模块中通过端口和连接ID查找,找到与内网TCP服务服务模块接收到的连接对应的外网发送数据的客户端连接,通过外网发送数据的客户端连接发送去掉自定义协议头的原始TCP数据至外网上层应用。
步骤S305:外网数据处理模块103接收步骤S304中客户端连接的数据,可收到外网上层应用回复的TCP数据;
步骤S306:外网数据处理模块103依据步骤S304的客户端连接ID,端口组包,把相关信息写入自定义TCP包头后,通过反向网闸传输通道106提供的_send_data()接口发送增加包头的TCP回复数据包至反向网闸传输通道106;
步骤S307:反向网闸传输通道106收到数据后的处理,反向网闸传输通道106通过E文件摆渡方式将回复数据从外网传输至内网后,会发送回复数据至内网数据处理模块108,内网数据处理模块108通过该模块向反向网闸传输通道106传入的_recv_callback()回调函数接收回复数据;
步骤S308:内网数据处理模块108解析协议包头,得到外网客户端连接ID和端口,在连接管理模块中通过端口和连接ID查找,找到与外网数据处理模块103发起的客户端连接ID对应的内网TCP服务模块109收到的连接,通过内网TCP服务模块109收到的连接发送去掉自定义协议头的原始TCP回复数据至内网上层应用。
本发明所述内网为高密级的网络,比如公司内网或者专有网络;所述外网为低密级的网络,比如公共网络。该系统可以处理由外网主动发起的、发送数据的并且在外网和内网无限制传输数据的TCP连接。该系统可以处理由内网主动发起的、发送数据的并且在内网和外网无限制传输数据的TCP连接。
本发明可以对数据格式进行定义和严格的认证。所有通过正向网闸传输通道105数据的传输方向是内网发送至外网,所有通过反向网闸传输通道106数据的传输方向是外网发送至内网。
上层应用使用该系统时不需要关注网闸通讯的细节就可以使上层应用符合跨不同安全密级的网络安全规范。
本发明一种使用正反向网闸模拟TCP双工安全通讯的方法,支持同时传输多个不同端口在不同安全级别网络的数据,各端口之间的数据互相不影响。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。此外,权利要求中陈述的多个模块也可以由一个模块或装置通过软件或者硬件来实现。
Claims (7)
1.一种使用正反向网闸模拟TCP双工安全通讯方法,其特征在于,包括以下步骤:
内网TCP服务模块(109)接收内网的TCP客户端连接和数据,外网TCP服务模块(102)接收外网的TCP客户端连接和数据;
通过内网TCP服务模块(109)、外网TCP服务模块(102)与对应的上层应用建立TCP连接;
内网数据处理模块(108)和外网数据处理模块(103)按照配置的上层业务数据的基本格式进行校验;
正向网闸传输通道(105)和反向网闸传输通道(106)共同处理内网或外网主动发送并接收数据;
正向网闸传输通道(105)和反向网闸传输通道(106)共同处理外网主动发送并接收数据,具体包括:
S201:外网上层应用主动发送上层业务数据至外网TCP服务模块(102),并将上层业务数据转给外网数据处理模块(103);
S202:外网数据处理模块(103)把连接ID和端口信息写入自定义协议包头,组成新的TCP数据包,将新的TCP数据包通过反向网闸传输通道(106)提供的_send_data()接口发送给反向网闸传输通道(106);
S203:反向网闸传输通道(106)收到数据后的进行单向数据传输处理,反向网闸传输通道(106)通过E文件摆渡方式将数据从外网传输至内网后,会发送至内网数据处理模块(108),内网数据处理模块(108)向反向网闸传输通道(106)传入的_recv_callback()回调函数接收数据;
S204:内网数据处理模块(108),解析协议包头,得到本数据包外网TCP服务模块(102)使用的端口和接收的连接ID,在连接管理模块中通过端口和连接ID查找,找到与外网TCP服务服务模块接收到的连接对应的内网发送数据的客户端连接,通过内网发送数据的客户端连接发送去掉自定义协议头的原始TCP数据至内网上层应用;
S205:内网数据处理模块(108)接收S204中客户端连接的数据,收到内网上层应用回复的TCP数据;
S206:内网数据处理模块(108)依据S204的客户端连接ID,端口组包,把相关信息写入自定义TCP包头后,通过正向网闸传输通道(105)提供的_send_data()接口发送增加包头的TCP回复数据包至正向网闸传输通道(105);
S207:正向网闸传输通道(105)收到数据后的进行处理,正向网闸传输通道(105)完成回复数据从内网到外网的安全传输后,会发送回复数据至外网数据处理模块(103),外网数据处理模块(103)向正向网闸传输通道(105)传入的_recv_callback()回调函数接收回复数据;
S208:外网数据处理模块(103)解析协议包头,得到内网客户端连接ID和端口,在连接管理模块中通过端口和连接ID查找,找到与内网数据处理模块(108)发起的客户端连接ID对应的外网TCP服务模块(102)收到的连接,通过外网TCP服务模块(102)收到的连接发送去掉自定义协议头的原始TCP回复数据至外网上层应用;
正向网闸传输通道(105)和反向网闸传输通道(106)共同处理内网主动发送并接收数据,具体包括:
S301:内网上层应用主动发送上层业务数据至内网TCP服务模块(109),该模块把上层业务数据转给内网数据处理模块(108);
S302:内网数据处理模块(108)把连接ID和端口信息写入自定义协议包头,组成新的TCP数据包,将新的TCP数据包通过正向网闸传输通道(105)提供的_send_data()接口发送给正向网闸传输通道(105);
S303:正向网闸传输通道(105)收到数据后的处理,正向网闸传输通道(105)完成数据从内网到外网的安全传输后,会发送数据至外网数据处理模块(103),外网数据处理模块(103)向正向网闸传输通道(105)传入的_recv_callback()回调函数接收数据;
S304:外网数据处理模块(103),解析协议包头,得到本数据包内网TCP服务模块(109)使用的端口和接收的连接ID,在连接管理模块中通过端口和连接ID查找,找到与内网TCP服务服务模块接收到的连接对应的外网发送数据的客户端连接,通过外网发送数据的客户端连接发送去掉自定义协议头的原始TCP数据至外网上层应用;
S305:外网数据处理模块(103)接收S304中客户端连接的数据,可收到外网上层应用回复的TCP数据;
S306:外网数据处理模块(103)依据S304的客户端连接ID,端口组包,把相关信息写入自定义TCP包头后,通过反向网闸传输通道(106)提供的_send_data()接口发送增加包头的TCP回复数据包至反向网闸传输通道(106);
S307:反向网闸传输通道(106)收到数据后的处理,反向网闸传输通道(106)通过E文件摆渡方式将回复数据从外网传输至内网后,会发送回复数据至内网数据处理模块(108),内网数据处理模块(108)向反向网闸传输通道(106)传入的_recv_callback()回调函数接收回复数据;
S308:内网数据处理模块(108)解析协议包头,得到外网客户端连接ID和端口,在连接管理模块中通过端口和连接ID查找,找到与外网数据处理模块(103)发起的客户端连接ID对应的内网TCP服务模块(109)收到的连接,通过内网TCP服务模块(109)收到的连接发送去掉自定义协议头的原始TCP回复数据至内网上层应用。
2.根据权利要求1所述的使用正反向网闸模拟TCP双工安全通讯方法,其特征在于,内网TCP服务模块(109)分别接收内网的TCP客户端连接和数据,外网TCP服务模块(102)分别接收外网的TCP客户端连接和数据,具体包括:
内网TCP服务模块(109)接收到内网上层应用的TCP连接时,会同步通知至外网TCP连接管理模块建立一个与之对应的连接上层应用的客户端连接;
外网TCP服务模块(102)接收到外网上层应用的TCP连接时,也会同步通知至内网TCP连接管理模块建立一个与之对应的连接上层应用的客户端连接;
内网TCP服务模块(109)和外网TCP服务模块(102)接收到的上层应用的连接和发起建立的客户端连接满足一一对应关系;不同的数据端口都有对应的连接信息,各端口之间的连接相互独立。
3.根据权利要求1所述的使用正反向网闸模拟TCP双工安全通讯方法,其特征在于,内网TCP服务模块(109)接收内网的TCP客户端连接和数据,外网TCP服务模块(102)接收外网的TCP客户端连接和数据之后还包括TCP代理服务数据与原始TCP数据互相转换的方法:
上层业务数据从内网代理TCP服务(107)进入正向网闸传输通道(105)前,上层业务数据从外网代理TCP服务(101)进入反向网闸传输通道(106)前,增加自定义协议包头;
正向网闸传输通道(105)的数据进入外网代理TCP服务(101),反向网闸传输通道(106)的数据进入内网代理TCP服务(107),外网代理TCP服务(101)/内网代理TCP服务(107)解析自定义协议包头,并去除包头,还原数据包为原始的TCP数据包。
4.根据权利要求1所述的使用正反向网闸模拟TCP双工安全通讯方法,其特征在于,内网数据处理模块(108)/外网数据处理模块(103)会按照配置的上层业务数据的基本格式进行校验,具体包括:
在软件定义数据格式的文件中配置上层业务数据的基本格式;
上层业务数据发送至内网数据处理模块(108)或外网数据处理模块(103)后,内网数据处理模块(108)或外网数据处理模块(103)会按照配置的上层业务数据的基本格式进行校验,如果校验失败,在日志文件中记录并丢弃校验失败的不合法的数据请求。
5.根据权利要求1所述的使用正反向网闸模拟TCP双工安全通讯方法,其特征在于,内网TCP服务模块(109)接收内网的TCP客户端连接和数据之前,外网TCP服务模块(102)接收外网的TCP客户端连接和数据之前,还包括:
外网代理TCP服务(101)初始化时,调用正向网闸传输通道(105)或反向网闸传输通道(106)提供的_init()接口初始化;调用正向网闸的_init()接口时,传入_recv_callback()回调函数用于接收正向网闸传输通道(105)发给外网代理TCP服务(101)的数据;
内网代理TCP服务(107)初始化时,调用正向网闸传输通道(105)或反向网闸传输通道(106)提供的_init()接口初始化;调用反向网闸的_init()接口时,传入_recv_callback()回调函数用于接收反向网闸传输通道(106)发给内网代理TCP服务(107)的数据;
外网代理TCP服务(101)发送数据至反向网闸传输通道(106),内网代理TCP服务(107)发送数据至正向网闸传输通道(105),调用正向网闸传输通道(105)或反向网闸传输通道(106)提供的_send_data()接口,参数为发送数据地址和发送数据长度;当正向网闸传输通道(105)有数据发送给外网代理TCP服务(101)时,反向网闸传输通道(106)有数据发送给内网TCP代理服务(107)时,传入的_recv_callback回调函数会被触发;
当内网代理TCP服务(107)/外网代理TCP服务(101)退出时,分别调用正向网闸传输通道(105)/反向网闸传输通道(106)的_release()接口,对所有资源进行释放回收。
6.一种使用正反向网闸模拟TCP双工安全通讯系统,用于实现权利要求1至5任一项所述的使用正反向网闸模拟TCP双工安全通讯方法,其特征在于,包括:外网TCP代理服务(101)、正向网闸传输通道(105)、内网TCP代理服务(107)及反向网闸传输通道(106);
所述外网TCP代理服务(101)包括:相互连接的外网TCP服务模块(102)、外网数据处理模块(103)及外网连接管理模块(104);
所述内网TCP代理服务(107)包括:相互连接的内网数据处理模块(108)、内网TCP服务模块(109)及内网连接管理模块(110);
所述正向网闸传输通道(105)连接内网数据处理模块(108)和外网数据处理模块(103),用于从内网到外网的网络通讯;
所述反向网闸传输通道(106)连接外网数据处理模块(103)和内网数据处理模块(108),用于利用反向网闸的E文件摆渡的方法模拟实现从外网到内网单向TCP通讯。
7.根据权利要求6所述的一种使用正反向网闸模拟TCP双工安全通讯系统,其特征在于,
所述内网TCP服务模块(109)用于接收内网的TCP客户端连接和数据,外网TCP服务模块(102)用于接收外网的TCP客户端连接和数据;
所述内网连接管理模块(110)、外网连接管理模块(104)用于管理上层应用的TCP连接,包括TCP服务模块接收到的连接和主动建立的连接上层应用的客户端连接;
内网数据处理模块(108)、外网数据处理模块(103)用于对TCP代理服务的数据和原始TCP数据进行互相转换,校验上层应用的数据格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210361827.XA CN114615082B (zh) | 2022-04-07 | 2022-04-07 | 一种使用正反向网闸模拟tcp双工安全通讯系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210361827.XA CN114615082B (zh) | 2022-04-07 | 2022-04-07 | 一种使用正反向网闸模拟tcp双工安全通讯系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114615082A CN114615082A (zh) | 2022-06-10 |
CN114615082B true CN114615082B (zh) | 2023-09-12 |
Family
ID=81868798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210361827.XA Active CN114615082B (zh) | 2022-04-07 | 2022-04-07 | 一种使用正反向网闸模拟tcp双工安全通讯系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114615082B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022084B (zh) * | 2022-07-18 | 2022-11-25 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种网络隔离网闸数据交换方法及其应用 |
WO2023151354A2 (zh) * | 2022-12-01 | 2023-08-17 | 黄建邦 | 数据传输方法、系统、第一端、中间网络设备及控制设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447956A (zh) * | 2009-01-13 | 2009-06-03 | 杭州华三通信技术有限公司 | 一种跨网闸的通信方法和通信系统 |
CN105635079A (zh) * | 2014-11-11 | 2016-06-01 | 无锡清杨机械制造有限公司 | 一种网络隔离网闸数据交换系统 |
CN106998333A (zh) * | 2017-05-24 | 2017-08-01 | 山东省计算中心(国家超级计算济南中心) | 一种双向网络安全隔离系统及方法 |
CN108243143A (zh) * | 2016-12-23 | 2018-07-03 | 北京明朝万达科技股份有限公司 | 一种基于web代理的网闸穿透方法及系统 |
CN109474628A (zh) * | 2018-12-27 | 2019-03-15 | 北京奇安信科技有限公司 | 一种基于双单向网闸的数据传输方法、系统、设备和介质 |
CN110247924A (zh) * | 2019-06-25 | 2019-09-17 | 深圳市利谱信息技术有限公司 | 基于物理传输的双向传输及控制系统和数据传输方法 |
CN110351233A (zh) * | 2018-04-08 | 2019-10-18 | 蓝盾信息安全技术有限公司 | 一种基于安全隔离网闸的双向透明传输技术 |
US11088948B1 (en) * | 2020-09-25 | 2021-08-10 | Amazon Technologies, Inc. | Correlating network flows in a routing service for full-proxy network appliances |
CN113271301A (zh) * | 2021-05-12 | 2021-08-17 | 大连交通大学 | 一种基于嵌入式多核处理模式的网闸系统通信方法 |
WO2021219104A1 (zh) * | 2020-04-30 | 2021-11-04 | 华为技术有限公司 | 混合云系统、网闸、网络访问方法及存储介质 |
-
2022
- 2022-04-07 CN CN202210361827.XA patent/CN114615082B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447956A (zh) * | 2009-01-13 | 2009-06-03 | 杭州华三通信技术有限公司 | 一种跨网闸的通信方法和通信系统 |
CN105635079A (zh) * | 2014-11-11 | 2016-06-01 | 无锡清杨机械制造有限公司 | 一种网络隔离网闸数据交换系统 |
CN108243143A (zh) * | 2016-12-23 | 2018-07-03 | 北京明朝万达科技股份有限公司 | 一种基于web代理的网闸穿透方法及系统 |
CN106998333A (zh) * | 2017-05-24 | 2017-08-01 | 山东省计算中心(国家超级计算济南中心) | 一种双向网络安全隔离系统及方法 |
CN110351233A (zh) * | 2018-04-08 | 2019-10-18 | 蓝盾信息安全技术有限公司 | 一种基于安全隔离网闸的双向透明传输技术 |
CN109474628A (zh) * | 2018-12-27 | 2019-03-15 | 北京奇安信科技有限公司 | 一种基于双单向网闸的数据传输方法、系统、设备和介质 |
CN110247924A (zh) * | 2019-06-25 | 2019-09-17 | 深圳市利谱信息技术有限公司 | 基于物理传输的双向传输及控制系统和数据传输方法 |
WO2021219104A1 (zh) * | 2020-04-30 | 2021-11-04 | 华为技术有限公司 | 混合云系统、网闸、网络访问方法及存储介质 |
US11088948B1 (en) * | 2020-09-25 | 2021-08-10 | Amazon Technologies, Inc. | Correlating network flows in a routing service for full-proxy network appliances |
CN113271301A (zh) * | 2021-05-12 | 2021-08-17 | 大连交通大学 | 一种基于嵌入式多核处理模式的网闸系统通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114615082A (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114615082B (zh) | 一种使用正反向网闸模拟tcp双工安全通讯系统和方法 | |
WO2023165150A1 (zh) | 一种通信方法、装置、卫星融合网关及可读存储介质 | |
CN110741573A (zh) | 在区块链网络中选择性使用网络编码传播交易的方法和系统 | |
CN111049880B (zh) | 一种基于移动培训端的内外网数据传输方法及系统 | |
CN105141603A (zh) | 通信数据传输方法及系统 | |
CN113055539A (zh) | 一种基于VoIP双冗余交换服务器的通信系统 | |
US20180083777A1 (en) | Methods, systems, apparatuses, and devices for securing network communications using multiple security protocols | |
CN114095912B (zh) | 智能兼容多卫星通信的应急通信网关系统及其工作方法 | |
CN111193780A (zh) | 一种组件化的物联网平台数据传输系统 | |
CN109150829B (zh) | 软件定义云网络可信数据分发方法、可读存储介质和终端 | |
Almheiri et al. | IoT Protocols–MQTT versus CoAP | |
CN104702596B (zh) | 一种基于数据包长度的信息隐藏与传输的方法及系统 | |
CN108809549B (zh) | 一种传输数据的方法及设备 | |
CN109831404B (zh) | 一种兼容多终端的即时通讯系统及方法 | |
CN112533210A (zh) | 一种基于移动边缘计算的安全防护系统 | |
CN115361455B (zh) | 一种数据传输存储方法、装置以及计算机设备 | |
CN108900518B (zh) | 可信的软件定义云网络数据分发系统 | |
CN116055368A (zh) | 一种使用自定义协议进行通信的方法及装置 | |
CN107104964B (zh) | 一种网络安全终端及使用方法 | |
KR20070092392A (ko) | 멀티캐스트 방식의 분산 서버 제어 방법 및 그 시스템 | |
CN106899635B (zh) | 文件传输协议数据链路实现固定通信端口的方法及装置 | |
CN112532603A (zh) | 一种基于交换授权文件的跨域文件交换引接设备及方法 | |
CN101860544A (zh) | 会话启动协议消息的发送系统及方法 | |
CN102420755B (zh) | 一种数据报文的传输处理方法、通信设备及系统 | |
CN113411266B (zh) | 基于隔离装置的云数据传输方法及系统、终端、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |