CN103581192A - 网络通信主体确认方法及系统 - Google Patents
网络通信主体确认方法及系统 Download PDFInfo
- Publication number
- CN103581192A CN103581192A CN201310549309.1A CN201310549309A CN103581192A CN 103581192 A CN103581192 A CN 103581192A CN 201310549309 A CN201310549309 A CN 201310549309A CN 103581192 A CN103581192 A CN 103581192A
- Authority
- CN
- China
- Prior art keywords
- packet
- data
- party
- ack
- msg bag
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种网络通信主体确认方法,其中,数据发送方简称发送方,数据接收方简称接收方,包括:当发送方向接收方传输数据时,截获发送方待发送的初始包,对初始包或初始包中的一个或多个字段进行等长度的加密,然后将初始包发送给接收方;和接收方收到初始包后,对加密的初始包或初始包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层,如果解密失败,初始包就会被丢弃;其中,初始包包括:SeqNumber、AckNumber、数据长度和ACK控制位字段,并且,ACK控制位设置为1。本发明通过在通信两端进行加解密,实现了对每一次的数据传输的防护。
Description
技术领域
本发明涉及计算机网络安全领域,尤其涉及一种网络通信主体确认方法及系统。
背景技术
网络安全防护是一种网络安全技术,指致力于解决诸如如何有效进行介入控制,以及何如保证数据传输的安全性的技术手段,主要包括物理安全分析技术,网络结构安全分析技术,系统安全分析技术,管理安全分析技术,及其它的安全服务和安全机制策略。
TCP(Transmission Control Protoc01)传输控制协议,提供可靠的连接服务。
TCP标志位(即位码)有6种标识:SYN(synchronous建立连接)、ACK(acknowledgement确认)、PSH(push传送)、FIN(finish结束)、RST(reset重置)、URG(urgent紧急)。另外,还有两个术语为顺序号码(sequence number)和确认号码(acknowledge number)。
TCP采用三次握手确认建立一个连接;例如主机A与主机B之间的连接:
第一次握手:主机A发送位码为syn=1,随机产生seq number=(主机A的seq)的数据包到服务器,主机B由syn=1知道,A要求建立连接;
第二次握手:主机B收到请求后要确认连接信息,向A发送acknumber=(主机A的seq+1),syn=1,ack=1,随机产生seq number=(主机B的seq)的包;
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送acknumber=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。
完成三次握手,主机A与主机B开始传送数据。
上述握手过程易受到网络拦截,以至于恶意程序伪装成通信主体与目标主体进行通信,不利于网络安全防护。
发明内容
本发明要解决的技术问题是,针对现有技术的不足,提供一种网络通信主体确认方法及系统,实现网络通信主体确认。
根据本发明一个方面,提供一种网络通信主体确认方法,其中,数据发送方简称发送方,数据接收方简称接收方,包括:当发送方向接收方传输数据时,截获发送方待发送的初始包,对初始包或初始包中的一个或多个字段进行等长度的加密,然后将初始包发送给接收方;和接收方收到初始包后,对加密的初始包或初始包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层,如果解密失败,初始包就会被丢弃;其中,初始包包括:SeqNumber、AckNumber、数据长度和ACK控制位字段,并且,ACK控制位设置为1。
根据本发明另一个方面,提供一种网络通信主体确认系统,包括:数据发送方客户端和数据接收方客户端;数据发送方客户端分别与数据发送方驱动单元以及数据发送方网卡耦接,数据接收方客户端分别与数据接收方驱动单元以及数据接收方网卡耦接,数据发送方与数据接收方通过网络进行网络通信;
其中,数据发送方客户端包括:数据包截获单元,适于当数据发送方向接收方传输数据时,截获发送方待发送的初始包;和发送方加解密单元,与数据包截获单元耦接,适于对初始包或初始包中的一个或多个字段进行等长度的加密,然后将初始包发送给接收方;其中,初始包包括:SeqNumber、AckNumber、数据长度和ACK控制位字段,并且,ACK控制位设置为1。
可选的,所述数据接收方客户端包括:数据包截获单元,适于当数据发送方向接收方传输数据时,截获来自数据发送方的初始包;和接收方加解密单元,与数据包截获单元耦接,适于对加密的初始包或初始包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据发送给驱动单元,如果解密失败,丢弃初始包。
可选的,所述驱动单元为miniport驱动单元、IM驱动单元或协议驱动单元。
与现有技术相比,本发明公开的实施例的优点包括:
(1)通过在通信两端进行加解密,实现了对每一次的数据传输的防护;
(2)通过对每一个数据包的加密解密,实现了对发送的每一个数据包的实时的防护;
(3)对于匿名分析者,增加了分析数据包的难度;
(4)如果在本发明的基础上,再对数据包的真实数据区进行加密,这样,可以在不改变数据包大小的前提下,实现了对数据包的多层保护。
附图说明
图1是根据本发明一个实施例提供的TCP通信握手阶段示意图;
图2是根据本发明一个实施例提供的TCP通信数据传输阶段示意图;
图3是根据本发明一个实施例提供的网络通信主体确认方法的方法流程图;
图4是根据本发明另一个实施例提供的网络通信主体确认方法的方法流程图;
图5是根据本发明一个实施例提供的计算设备网络层次示意图;
图6是根据本发明一个实施例提供的请求方客户端;
图7是根据本发明一个实施例提供的被请求方客户端;和
图8是根据本发明一个实施例提供的数据发送方客户端和数据请求方客户端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
通信握手和数据传输过程
发明人经分析发现,TCP通信握手过程如图1所示:
其中,请求方简称甲方,被请求方简称乙方;
(1)在TCP通讯开始时,甲方会发送一个控制位(即位码)syn为1,并包含本机随机序号(即顺序号码/顺序序号)seq=x的数据包,给乙方;
(2)乙方接收到控制位syn为1的数据包后,将构造一个ack的数据包,其中,顺序序号字段是乙方随机生成的序号seq=y,并将甲方的顺序序号加1后填写到确认序号(即确认号码)字段AckNumber=x+1,并将控制位syn和ack均置为1,发送给甲方;
(3)甲方接收到乙方发送来的控制位syn和ack均置为1的数据包后,将构造一个ack数据包,其中,顺序序号字段是自己随机产生的序号值加1,而将乙方发生过来的顺序序号字段加1写入确认序号字段AckNumber=y+1,并将控制位ack置为1,发送给乙方。
此时,三次握手结束。
发明人经研究发现:如果在握手阶段实现对数据包的认证与防护,能够实现网络通信主体确认,从而提高网络安全防护的能力。
发明人经分析还发现,握手之后,TCP通信数据传输过程如图2所示:
其中,数据发送方简称发送方,数据接收方简称接收方;
(1)发送方准备初始包(或者称为“发起数据包”),设置SeqNumber、AckNumber、数据长度,设置ACK控制位=1;
例如,SeqNumber=3926180768,AckNumber=3008963139;数据长度nLen=556;
(2)发送方发送初始包到接收方;
(3)接收方收到初始包后,保存数据长度,并且准备接收数据包;
(4)发送方发送数据包到接收方;
其中,数据包的PSH控制位设置为1,SeqNumber、AckNumber的值例如可以与初始包相同,ACK控制位设置为1;
并且,最后一个数据包(控制包/系统控制包)的FIN控制位设置为1;
(5)接收方接收完数据包后,准备ACK数据包,设置其SeqNumber、AckNumber,设置ACK控制位=1;
例如,SeqNumber=初始包的AckNumber(3008963139),AckNumber=初始包的SeqNumber+nLen+1(3926181325);
(6)接收方发送ACK数据包到发送方。
发明人经研究发现:如果在数据传输阶段对数据包进行认证与防护,能够实现网络通信主体确认,从而提高网络安全防护的能力。
网络通信主体确认过程
基于上述分析和发现,根据本发明一个实施例,发明人设计了如下的网络通信主体确认过程:
其中,请求方简称甲方,被请求方简称乙方;
P11、当甲方准备向乙方发起TCP连接时,甲方对待发送的SYN数据包中的本机生成的序号字段进行等长度的加密,然后将SYN数据包发送给乙方;
具体的,当甲方准备向乙方发起TCP连接时,甲方会产生一个请求数据包(即SYN数据包),并且请求方会随机产生一个本机的序号,称为本机的顺序序号,用于标识本次TCP连接后双方发送字节数计数的一个起始值。
另外,在甲方将SYN数据包发送给乙方后,等待接收被请求方发送确认数据包(又称为第二握手包)。
P12、乙方收到SYN数据包后,对数据包中的序号字段进行解密,如果解密成功,则将解密后的数据根据协议(即TCP/IP协议)向上发送给应用程序,如果解密失败,SYN数据包就会被丢弃;
P13、乙方对待发送给甲方的ACK数据包中的序号字段和确认序号字段进行等长度加密,然后将ACK数据包发送给甲方;
具体的,乙方组装一个ACK数据包(又称为确认数据包、第二握手包),生成一个本机的序号,填写到确认数据包中的本机顺序序号字段。同时,将请求方发送来的顺序序号加1,填写到确认序号字段中,最后对被请求方产生的顺序序号和确认序号字段的两个字段值进行加密。
然后,乙方等待接收甲方发送确认数据包(又称为第三握手包)。
P14、甲方收到乙方发送来的ACK数据包后,对ACK数据包中的顺序序号字段和确认序号字段进行解密,如果解密成功,则将解密后的数据根据协议向上发送给应用程序,如果解密失败,ACK数据包就会被丢弃;
具体的,甲方的应用程序(即本机的协议层)接收到乙方的ACK数据包后,会产生一个确认数据包(又称为第三握手包),包括顺序序号和确认序号,其中,确认序号是取自乙方发送来的ACK数据包中的顺序序号字段加1,填写到确认序号字段中。
P15、甲方对待发送给乙方的ACK数据包中的序号字段和确认序号字段进行等长度加密,然后将ACK数据包发送给乙方;
P16、乙方收到甲方发送来的ACK数据包后,对其中的序号字段和确认序号字段进行解密,并向上层发送给应用程序;如果解密成功,则将解密后的数据根据协议向上发送给应用程序,如果解密失败,ACK数据包就会被丢弃。
此时,握手包的防护处理完毕;上述过程在握手阶段实现对数据包的认证与防护,实现网络通信主体确认,提高了网络通信的安全性。
根究本发明另一个实施例,上述各个步骤中对数据包中某个字段进行加解密的方法可以适用于对于整个数据包进行加解密的过程。例如,在P11中,甲方对待发送的SYN数据包进行等长度加密,然后将加密后的SYN数据包发送给乙方;在P12中,乙方收到SYN数据包后,对数据包进行解密。
基于上述分析和发现,根据本发明另一个实施例,发明人设计了如下的网络通信主体确认过程:
其中,数据发送方简称发送方,数据接收方简称接收方;
P21、当发送方准备向接收方发送初始包的时候,发送方对待发送的初始包或初始包中的一个或多个字段(例如SeqNumber、AckNumber字段)进行等长度的加密,然后将初始包发送给接收方;
P22、接收方收到初始包后,对加密的初始包或初始包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据根据协议(即TCP/IP协议)向上发送给应用程序,如果解密失败,初始包就会被丢弃。
上述过程在数据传输阶段实现了对数据包的认证与防护,实现网络通信主体确认,提高了网络通信的安全性。
进一步的,对于接收方向发送方发送的ACK数据包进行加解密处理以确认网络主体,网络通信主体确认过程还包括:
P23、当接收方准备向发送方发送ACK数据包的时候,接收方对待发送的ACK数据包或ACK数据包中的一个或多个字段(例如SeqNumber、AckNumber字段)进行等长度的加密,然后将ACK数据包发送给发送方;
P24、发送方收到ACK数据包后,对加密的ACK数据包或其中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据根据协议(即TCP/IP协议)向上发送给应用程序,如果解密失败,ACK数据包就会被丢弃。
进一步的,对于传输的数据(图2中的数据包)进行加解密处理以确认网络主体,网络通信主体确认过程还包括:
P25、当发送方准备向接收方发送数据包的时候,发送方对待发送的数据包或数据包中的一个或多个字段(例如SeqNumber、AckNumber字段)进行等长度的加密,然后将数据包发送给接收方;
其中,数据包的PSH控制位设置为1,ACK控制位设置为1,并且,最后一个数据包的FIN控制位设置为1;
P26、接收方收到数据包后,对加密的数据包或数据包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据根据协议(即TCP/IP协议)向上发送给应用程序,如果解密失败,数据包就会被丢弃。
根据本发明一个实施例,上述等长度加密算法为异或算法,例如,以一个32位长度的数值为例,等长度加密的过程描述如下:
(1)假设数值ULONG uNum=0xF1AB9759;
(2)使用数值0x39作为异或值的种子;
(3)对uNum进行逐字节的异或处理;
(4)得到新的一个值uNumNew:0xC892AE60。
此时,完成了对原始数值uNum的等长度的加密工作。
网络通信主体确认方法
基于上述的网络通信主体确认过程,根据本发明一个实施例,提供一种网络通信主体确认方法。如图3所示,该方法包括:
其中,请求方简称甲方,被请求方简称乙方;
S11、当甲方向乙方发起TCP连接时,截获甲方待发送的SYN数据包,对SYN数据包或SYN数据包中的顺序序号字段进行等长度的加密,然后将SYN数据包(又称为第一握手包)发送给乙方;
S12、在乙方收到SYN数据包后,对SYN数据包或SYN数据包中的顺序序号字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层,如果解密失败,SYN数据包就会被丢弃;
S13、当乙方向甲方发送ACK数据包时,截获乙方待发送的ACK数据包,对ACK数据包或ACK数据包中的顺序序号字段和确认序号字段进行等长度加密,然后将ACK数据包(又称为第二握手包)发送给甲方;
S14、在甲方收到ACK数据包后,对ACK数据包或者ACK数据包中的顺序序号字段和确认序号字段进行解密,如果解密成功,则将解密后的数据根据协议(即TCP/IP协议)向上发送给本机的协议层,如果解密失败,ACK数据包就会被丢弃;
S15、在甲方向乙方发送ACK数据包时(又称为第三握手包),截获甲方待发送的ACK数据包,对ACK数据包或ACK数据包中的顺序序号字段和确认序号字段进行等长度加密,然后将ACK数据包发送给乙方;
S16、在乙方收到ACK数据包后,对ACK数据包或者ACK数据包中的顺序序号字段和确认序号字段进行解密,如果解密成功,则将解密后的数据根据协议向上发送给协议层,如果解密失败,ACK数据包就会被丢弃。
此时,TCP连接建立成功。
经过上面的步骤,(1)通过对握手包的加解密,可以确认通信双方的主体为真实主体;(2)通过等长度加密,不会改变现有的TCP/IP协议内容和现存的应用软件;(3)其他在网络上对握手阶段数据包进行拦截的恶意程序无法再冒充通信主体。
例如,当匿名的网络攻击发起时,应用本发明公开的方法,在驱动层截获数据包,并对数据包的确认序号和顺序序号进行解密处理,如果解密失败,会将数据包直接丢弃,即使解密成功,继续上传给协议层驱动,协议层驱动还会对传送来的数据包进行验证,如果协议层驱动对其验证失败,会将数据包直接丢弃;如此反复处理,就成功应对了网络的攻击。病毒的攻击也是类似的。
基于上述的网络通信主体确认过程,根据本发明另一个实施例,提供一种网络通信主体确认方法。如图4所示,该方法包括:
其中,数据发送方简称发送方,数据接收方简称接收方;
S41、当发送方向接收方传输数据时,截获发送方待发送的初始包,对初始包或初始包中的一个或多个字段进行等长度的加密,然后将初始包发送给接收方;
其中,初始包包括:SeqNumber、AckNumber、数据长度和ACK控制位字段,并且,ACK控制位设置为1;
S42、接收方收到初始包后,对加密的初始包或初始包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层,如果解密失败,初始包就会被丢弃。
进一步的,根据本发明另一个实施例,上述网络通信主体确认方法还包括:
S43、当接收方向发送方传输应答时,截获接收方待发送的ACK数据包,对ACK数据包或ACK数据包中的一个或多个字段进行等长度的加密,然后将ACK数据包发送给发送方;
其中,ACK数据包包括SeqNumber、AckNumber和ACK控制位字段,并且,ACK控制位设置为1,
SeqNumber=初始包的AckNumber,
AckNumber=初始包的SeqNumber+初始包的数据长度+1;
S44、发送方收到ACK数据包后,对加密的ACK数据包或其中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层,如果解密失败,ACK数据包就会被丢弃。
根据本发明另一个实施例,上述网络通信主体确认方法还包括:
S51、当发送方向接收方传输数据时,截获发送方待发送的数据包,对数据包或数据包中的一个或多个字段进行等长度的加密,然后将数据包发送给接收方;其中,数据包的PSH控制位设置为1,ACK控制位设置为1,并且,最后一个数据包的FIN控制位设置为1;
S52、接收方收到数据包后,对加密的数据包或数据包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层,如果解密失败,数据包就会被丢弃。
需要注意的是,当TCP连接建立好之后,通信双方既可以是数据发送方,也可以是数据接收方,双方的地位是平等的。
请求方方法
基于上述网络通信主体确认方法,根据本发明一个实施例,提供一种请求方的网络通信主体确认方法。该方法包括:
其中,请求方简称甲方,被请求方简称乙方;
S21、截获甲方待发送的SYN数据包,对SYN数据包或SYN数据包中的顺序序号字段进行等长度的加密,然后将SYN数据包(又称为第一握手包)发送给乙方;
S22、在收到来自乙方的ACK数据包后,对ACK数据包或者ACK数据包中的顺序序号字段和确认序号字段进行解密,如果解密成功,则将解密后的数据根据协议向上发送给本机的协议层,如果解密失败,ACK数据包就会被丢弃;
S23、截获甲方待发送的ACK数据包,对ACK数据包或ACK数据包中的顺序序号字段和确认序号字段进行等长度加密,然后将ACK数据包发送给乙方。
被请求方方法
基于上述网络通信主体确认方法,根据本发明一个实施例,提供一种被请求方的网络通信主体确认方法。该方法包括:
其中,请求方简称甲方,被请求方简称乙方;
S31、对乙方收到的SYN数据包或SYN数据包中的顺序序号字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层,如果解密失败,SYN数据包就会被丢弃;
S32、截获乙方待发送的ACK数据包,对ACK数据包或ACK数据包中的顺序序号字段和确认序号字段进行等长度加密,然后将ACK数据包发送给甲方;
S33、对从甲方接收的ACK数据包或者ACK数据包中的顺序序号字段和确认序号字段进行解密,如果解密成功,则将解密后的数据根据协议向上发送给协议层,如果解密失败,ACK数据包就会被丢弃。
计算设备运行环境
为了更好的理解本发明,根据本发明一个实施例,提供一种计算设备网络层次示意图。如图5所示,计算设备网络层次从底向上依次包括:
物理层34、链路层33、网络层32和应用层31;
具体的,网络层32包括协议驱动321和IM驱动322(在操作系统内核部分实现),链路层33包括miniport驱动331(在操作系统内核部分实现),物理层34包括网卡341。其中,IM驱动为中间媒介层驱动(或简称中间层驱动),miniport驱动为微端口驱动(或小端口驱动)。另外,协议驱动321、IM驱动322和miniport驱动331都可以称为驱动单元。
根据本发明一个实施例,上述如图3所示的网络通信主体确认方法可以通过修改TCP/IP协议来实现,即由协议驱动321完成网络通信主体确认方法。
为了不影响网络通信协议的内容,根据本发明一个实施例,上述如图3所示的网络通信主体确认方法可以通过IM驱动322完成,即在IM驱动322中实现。
为了不影响网络通信协议的内容,根据本发明另一个实施例,上述如图3所示的网络通信主体确认方法可以通过miniport驱动331完成,即在miniport驱动331中实现。
为了不影响现有计算机层次结构和实现方式,根据本发明另一个实施例,上述如图3所示的网络通信主体确认方法由单独的驱动程序实现,并在IM驱动322或miniport驱动331中添加对该驱动程序的调用。
本领域技术人员可以理解,上述网络通信主体确认方法也可以在其他合适的计算机层次模块中实现,本发明不再一一列举。
网络通信主体确认装置
与上述方法相应地,根据本发明一个实施例,提供一种请求方客户端。如图6所示,该请求方客户端包括:
数据包截获单元41,与驱动单元401耦接,适于截获待发送的SYN数据包和ACK数据包;
请求方加解密单元42,分别与数据包截获单元41和驱动单元401耦接,适于对SYN数据包或SYN数据包中的顺序序号字段、对ACK数据包或ACK数据包中的顺序序号字段和确认序号字段进行等长度加密,还适于对被请求方发送的ACK数据包或者ACK数据包中的顺序序号字段和确认序号字段进行解密,如果解密成功,则将解密后的数据发送给驱动单元401,如果解密失败,ACK数据包就会被丢弃;
数据包收发单元43,分别与请求方加解密单元42和网卡402耦接,适于将请求方加解密单元42加密后的数据包通过网卡402发送给被请求方,还适于将网卡402接收到的被请求方的ACK数据包发送给请求方加解密单元42。
与上述方法相应地,根据本发明一个实施例,提供一种被请求方客户端。如图7所示,该被请求方客户端包括:
数据包截获单元51,与驱动单元501耦接,适于截获待发送的ACK数据包;
被请求方加解密单元52,分别与数据包截获单元51和驱动单元501耦接,适于对ACK数据包或ACK数据包中的顺序序号字段和确认序号字段进行等长度加密;还适于对请求方的SYN数据包或SYN数据包中的顺序序号字段进行解密,如果解密成功,则将解密后的数据发送给驱动单元501,如果解密失败,SYN数据包就会被丢弃;还适于对请求方的ACK数据包或者ACK数据包中的顺序序号字段和确认序号字段进行解密,如果解密成功,则将解密后的数据发送给驱动单元501,如果解密失败,ACK数据包就会被丢弃;
数据包收发单元53,分别与被请求方加解密单元52和网卡502耦接,适于将被请求方加解密单元52加密后的数据包通过网卡502发送给请求方,还适于将网卡502接收到的请求方的ACK数据包或SYN数据包发送给被请求方加解密单元52。
根据本发明一个实施例,上述驱动单元401、501为miniport驱动单元(即上述miniport驱动331)。
根据本发明另一个实施例,上述驱动单元401、501为IM驱动单元(即上述IM驱动322),此时,数据包收发单元43、53与miniport驱动单元(即上述miniport驱动331)耦接,而不再是网卡。相应地,本领域技术人员可以理解,数据包收发单元43、53的功能描述与miniport驱动单元相关,这里不再赘述。
根据本发明另一个实施例,上述驱动单元401、501为协议驱动单元(即上述协议驱动321),此时,数据包收发单元43、53与IM驱动耦接。相应地,本领域技术人员可以理解,数据包收发单元43、53的功能描述与IM驱动相关,这里不再赘述。
根据本发明另一个实施例,上述请求方加解密单元42不与驱动单元401耦接,通过数据包截获单元41转发上传数据包。
根据本发明另一个实施例,上述被请求方加解密单元52不与驱动单元501耦接,通过数据包截获单元51转发上传数据包。
根据本发明另一个实施例,上述请求方客户端和被请求方客户端可以融合为一种客户端,称为网络通信主体确认客户端,更方便在网络设备上部署。
进一步的,为了在数据传输阶段也进行通信主体确认,根据本发明另一个实施例,提供一种数据发送方客户端和数据接收方客户端。
如图8所示,数据发送方客户端81分别与数据发送方驱动单元801以及数据发送方网卡802耦接(即数据连接);数据接收方客户端91分别与数据接收方驱动单元901以及数据接收方网卡902耦接;数据发送方与数据接收方通过网络909进行网络通信,例如TCP/IP通信。
其中,数据发送方客户端81包括:
数据包截获单元812,适于当数据发送方向接收方传输数据时,截获发送方待发送的初始包(初始包的特征描述请见上面实施例,这里不再赘述);和
发送方加解密单元811,与数据包截获单元812耦接,适于对初始包或初始包中的一个或多个字段进行等长度的加密,然后将初始包发送给接收方;
本实施例中,发送方加解密单元811和数据包截获单元812都分别与驱动单元801以及网卡802耦接。
其中,数据接收方客户端91包括:
数据包截获单元912,适于当数据发送方向接收方传输数据时,截获来自数据发送方的初始包;和
接收方加解密单元911,与数据包截获单元912耦接,适于对加密的初始包或初始包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据发送给驱动单元901,如果解密失败,丢弃初始包;
本实施例中,接收方加解密单元911和数据包截获单元912都分别与驱动单元901以及网卡902耦接。
本领域技术人员可以理解,以数据发送方为例,在其发送数据的时候,数据包从驱动单元801流向数据包截获单元812,再流向发送方加解密单元811(用于加密),再流向网卡802;而在其接收数据的时候,数据流以此经过网卡802、数据包截获单元812、发送方加解密单元811(用于尝试解密)和驱动单元801。
根据本发明另一个实施例,上述数据发送方客户端81的数据包截获单元812还适于:当发送方向接收方传输数据时,截获发送方待发送的数据包(数据包的特征描述请见上面实施例,这里不再赘述);
数据发送方客户端81的发送方加解密单元811还适于:对数据包或数据包中的一个或多个字段进行等长度的加密,然后将数据包发送给接收方。
此时,数据接收方客户端91的数据包截获单元912还适于:当发送方向接收方传输数据时,截获来自数据发送方的数据包;
数据接收方客户端91的接收方加解密单元911还适于:对加密的数据包或数据包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据发送给驱动单元901,如果解密失败,丢弃数据包。
根据本发明另一个实施例,上述数据接收方客户端91的数据包截获单元912还适于:当接收方向发送方传输应答时,截获接收方待发送的ACK数据包(ACK数据包的特征描述请见上面实施例,这里不再赘述);
数据接收方客户端91的接收方加解密单元911还适于:对ACK数据包或ACK数据包中的一个或多个字段进行等长度的加密,然后将ACK数据包发送给发送方。
此时,数据发送方客户端81的数据包截获单元812还适于:当接收方向发送方传输应答时,截获ACK数据包;
数据发送方客户端81的发送方加解密单元811还适于:对加密的ACK数据包或其中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据发送给驱动单元801,如果解密失败,丢弃ACK数据包。
根据本发明一个实施例,上述驱动单元801、901为miniport驱动单元(即上述miniport驱动331)。
根据本发明另一个实施例,上述驱动单元801、901为IM驱动单元(即上述IM驱动322),此时,数据包截获单元812、912还分别与miniport驱动单元(即上述miniport驱动331)耦接,而不再是网卡。
根据本发明另一个实施例,上述驱动单元801、901为协议驱动单元(即上述协议驱动321),此时,数据包截获单元812、912还分别与IM驱动耦接,而不再是网卡。
根据本发明另一个实施例,上述数据发送方客户端和数据接收方客户端可以融合为一种客户端(也可以称为网络通信主体确认客户端),更方便在网络设备上部署。
网络通信主体确认系统
基于上述请求方客户端和被请求方客户端,根据本发明一个实施例,提供一种包含上述请求方客户端和被请求方客户端的网络通信主体确认系统。
基于上述数据发送方客户端和数据接收方客户端,根据本发明另一个实施例,提供一种包含一个或多个上述数据发送方客户端和数据接收方客户端的网络通信主体确认系统。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
Claims (10)
1.一种网络通信主体确认方法,其中,数据发送方简称发送方,数据接收方简称接收方,其特征在于,该方法包括:
当发送方向接收方传输数据时,截获发送方待发送的初始包,对初始包或初始包中的一个或多个字段进行等长度的加密,然后将初始包发送给接收方;和
接收方收到初始包后,对加密的初始包或初始包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层,如果解密失败,丢弃初始包;
其中,初始包包括:SeqNumber、AckNumber、数据长度和ACK控制位字段,并且,ACK控制位设置为1。
2.如权利要求1所述的网络通信主体确认方法,其特征在于,还包括:
当接收方向发送方传输应答时,截获接收方待发送的ACK数据包,对ACK数据包或ACK数据包中的一个或多个字段进行等长度的加密,然后将ACK数据包发送给发送方;和
发送方收到ACK数据包后,对加密的ACK数据包或其中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层,如果解密失败,丢弃ACK数据包;
其中,ACK数据包包括:SeqNumber、AckNumber和ACK控制位字段,ACK控制位设置为1,SeqNumber=初始包的AckNumber,AckNumber=初始包的SeqNumber+初始包的数据长度+1。
3.如权利要求1或2所述的网络通信主体确认方法,其特征在于,
当发送方向接收方传输数据时,截获发送方待发送的数据包,对数据包或数据包中的一个或多个字段进行等长度的加密,然后将数据包发送给接收方;和
接收方收到数据包后,对加密的数据包或数据包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层,如果解密失败,丢弃数据包;
其中,数据包包括:PSH、ACK和FIN控制位字段,PSH控制位设置为1,ACK控制位设置为1,只有最后一个数据包的FIN控制位设置为1。
4.如权利要求3所述的网络通信主体确认方法,其特征在于,还包括:
在双方进行数据传输之前的握手阶段,在握手阶段,网络通信主体中的请求方简称甲方,网络通信主体中的被请求方简称乙方,其中,握手阶段包括:
当甲方向乙方发起TCP连接时,截获甲方待发送的SYN数据包,对SYN数据包或SYN数据包中的顺序序号字段进行等长度的加密,然后将SYN数据包发送给乙方;
在乙方收到SYN数据包后,对SYN数据包或SYN数据包中的顺序序号字段进行解密,如果解密成功,则将解密后的数据向上发送给本机的协议层:
当乙方向甲方发送ACK数据包时,截获乙方待发送的ACK数据包,对ACK数据包或ACK数据包中的顺序序号字段和确认序号字段进行等长度加密,然后将ACK数据包发送给甲方;
在甲方收到ACK数据包后,对ACK数据包或者ACK数据包中的顺序序号字段和确认序号字段进行解密,如果解密成功,则将解密后的数据根据协议向上发送给本机的协议层;
在甲方向乙方发送ACK数据包时,截获甲方待发送的ACK数据包,对ACK数据包或ACK数据包中的顺序序号字段和确认序号字段进行等长度加密,然后将ACK数据包发送给乙方;
在乙方收到ACK数据包后,对ACK数据包或者ACK数据包中的顺序序号字段和确认序号字段进行解密,如果解密成功,则将解密后的数据根据协议向上发送给协议层。
5.一种网络通信主体确认系统,其特征在于,包括:
数据发送方客户端和数据接收方客户端;
数据发送方客户端分别与数据发送方驱动单元以及数据发送方网卡耦接,数据接收方客户端分别与数据接收方驱动单元以及数据接收方网卡耦接,数据发送方与数据接收方通过有线或无线网络进行网络通信;
其中,数据发送方客户端包括:
数据包截获单元,适于当数据发送方向接收方传输数据时,截获发送方待发送的初始包;和
发送方加解密单元,与数据包截获单元耦接,适于对初始包或初始包中的一个或多个字段进行等长度的加密,然后将初始包发送给接收方;
其中,初始包包括:SeqNumber、AckNumber、数据长度和ACK控制位字段,并且,ACK控制位设置为1。
6.如权利要求5所述的网络通信主体确认系统,其特征在于:所述数据接收方客户端包括:
数据包截获单元,适于当数据发送方向接收方传输数据时,截获来自数据发送方的初始包;和
接收方加解密单元,与数据包截获单元耦接,适于对加密的初始包或初始包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据发送给驱动单元,如果解密失败,丢弃初始包。
7.如权利要求6所述的网络通信主体确认系统,其特征在于:
所述数据发送方客户端的数据包截获单元还适于:当发送方向接收方传输数据时,截获发送方待发送的数据包;数据发送方客户端的发送方加解密单元还适于:对数据包或数据包中的一个或多个字段进行等长度的加密,然后将数据包发送给接收方;
所述数据接收方客户端的数据包截获单元还适于:当发送方向接收方传输数据时,截获来自数据发送方的数据包;数据接收方客户端的接收方加解密单元还适于:对加密的数据包或数据包中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据发送给驱动单元,如果解密失败,丢弃数据包;
其中,数据包包括:PSH、ACK和FIN控制位字段,PSH控制位设置为1,ACK控制位设置为1,最后一个数据包的FIN控制位设置为1。
8.如权利要求5或6或7所述的网络通信主体确认系统,其特征在于:
所述数据接收方客户端的数据包截获单元还适于:当接收方向发送方传输应答时,截获接收方待发送的ACK数据包;数据接收方客户端的接收方加解密单元还适于:对ACK数据包或ACK数据包中的一个或多个字段进行等长度的加密,然后将ACK数据包发送给发送方;
所述数据发送方客户端的数据包截获单元还适于:当接收方向发送方传输应答时,截获ACK数据包;数据发送方客户端的发送方加解密单元还适于:对加密的ACK数据包或其中的一个或多个加密的字段进行解密,如果解密成功,则将解密后的数据发送给驱动单元,如果解密失败,丢弃ACK数据包;
其中,ACK数据包包括:SeqNumber、AckNumber和ACK控制位字段,ACK控制位设置为1,SeqNumber=初始包的AckNumber,AckNumber=初始包的SeqNumber+初始包的数据长度+1。
9.如权利要求5或6或7所述的网络通信主体确认系统,其特征在于:所述数据发送方驱动单元或数据接收方驱动单元为miniport驱动单元。
10.如权利要求5或6或7所述的网络通信主体确认系统,其特征在于:所述数据发送方驱动单元或数据接收方驱动单元为IM驱动单元或协议驱动单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310549309.1A CN103581192A (zh) | 2013-11-08 | 2013-11-08 | 网络通信主体确认方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310549309.1A CN103581192A (zh) | 2013-11-08 | 2013-11-08 | 网络通信主体确认方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103581192A true CN103581192A (zh) | 2014-02-12 |
Family
ID=50052122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310549309.1A Pending CN103581192A (zh) | 2013-11-08 | 2013-11-08 | 网络通信主体确认方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103581192A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302495A (zh) * | 2016-08-25 | 2017-01-04 | 北京神州绿盟信息安全科技股份有限公司 | 一种ACK Flood攻击的防护方法及中间防护装置 |
CN107070970A (zh) * | 2016-12-29 | 2017-08-18 | 北京奇艺世纪科技有限公司 | 一种传输控制协议tcp连接的关闭方法及装置 |
CN107124435A (zh) * | 2017-07-06 | 2017-09-01 | 济南浪潮高新科技投资发展有限公司 | 一种tcp报文加密电路及方法 |
CN109088799A (zh) * | 2018-09-28 | 2018-12-25 | 腾讯科技(深圳)有限公司 | 一种客户端接入方法、装置、终端以及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1892988A1 (en) * | 2005-06-15 | 2008-02-27 | NTT DoCoMo INC. | Concealing device and concealing method |
CN101277194A (zh) * | 2008-05-13 | 2008-10-01 | 江苏科技大学 | 一种隐秘通信的发送/接收方法 |
-
2013
- 2013-11-08 CN CN201310549309.1A patent/CN103581192A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1892988A1 (en) * | 2005-06-15 | 2008-02-27 | NTT DoCoMo INC. | Concealing device and concealing method |
CN101277194A (zh) * | 2008-05-13 | 2008-10-01 | 江苏科技大学 | 一种隐秘通信的发送/接收方法 |
Non-Patent Citations (2)
Title |
---|
MISS D.D.DHOBALE: ""STEGANOGRAPHY BY HIDING DATA IN TCP/IP HEADERS"", 《ADVANCED COMPUTER THEORY AND ENGINEERING(ICACTE)》 * |
胡大辉: ""一种利用三次握手进行信息隐藏的方法"", 《西南大学学报(自然科学版)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302495A (zh) * | 2016-08-25 | 2017-01-04 | 北京神州绿盟信息安全科技股份有限公司 | 一种ACK Flood攻击的防护方法及中间防护装置 |
CN107070970A (zh) * | 2016-12-29 | 2017-08-18 | 北京奇艺世纪科技有限公司 | 一种传输控制协议tcp连接的关闭方法及装置 |
CN107070970B (zh) * | 2016-12-29 | 2020-07-03 | 北京奇艺世纪科技有限公司 | 一种传输控制协议tcp连接的关闭方法及装置 |
CN107124435A (zh) * | 2017-07-06 | 2017-09-01 | 济南浪潮高新科技投资发展有限公司 | 一种tcp报文加密电路及方法 |
CN109088799A (zh) * | 2018-09-28 | 2018-12-25 | 腾讯科技(深圳)有限公司 | 一种客户端接入方法、装置、终端以及存储介质 |
CN109088799B (zh) * | 2018-09-28 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 一种客户端接入方法、装置、终端以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108650227B (zh) | 基于数据报安全传输协议的握手方法及系统 | |
CN105337935B (zh) | 一种建立客户端和服务端长连接的方法和装置 | |
EP2290895B1 (en) | Method, system and device for negotiating security association (sa) in ipv6 network | |
CN104506534A (zh) | 安全通信密钥协商交互方案 | |
CN103828414A (zh) | 安全网关通信 | |
CN1234662A (zh) | 密码点火处理方法及其装置 | |
CN1461461A (zh) | 数据安全化通信装置及其方法 | |
CN101163044A (zh) | 信息安全设备的远程升级方法及系统 | |
Jadin et al. | Securing multipath TCP: Design & implementation | |
CN109005194A (zh) | 基于kcp协议的无端口影子通信方法及计算机存储介质 | |
CN101707767B (zh) | 一种数据传输方法及设备 | |
US9672367B2 (en) | Method and apparatus for inputting data | |
CN105610847B (zh) | 一种支持多交换节点电子公文安全传输交换的方法 | |
US8683572B1 (en) | Method and apparatus for providing continuous user verification in a packet-based network | |
CN113904766B (zh) | 一种加密通信方法、装置、设备及介质 | |
CN103581192A (zh) | 网络通信主体确认方法及系统 | |
CN106788960A (zh) | 一种密钥协商的方法及装置 | |
CN113904809A (zh) | 一种通信方法、装置、电子设备及存储介质 | |
CN103546475A (zh) | 网络通信主体确认方法及系统 | |
WO2023036348A1 (zh) | 一种加密通信方法、装置、设备及介质 | |
CN109600745B (zh) | 一种新型的5g蜂窝网信道安全系统及安全实现方法 | |
CN103986716A (zh) | Ssl连接的建立方法以及基于ssl连接的通信方法及装置 | |
CN109474667B (zh) | 一种基于tcp和udp的无人机通信方法 | |
CN113905359B (zh) | 一种银行外设的蓝牙安全通讯方法、装置、设备和介质 | |
CN112104635B (zh) | 通信方法、系统和网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
DD01 | Delivery of document by public notice |
Addressee: Feng Lijuan Document name: Notification of Passing Preliminary Examination of the Application for Invention |
|
DD01 | Delivery of document by public notice | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
DD01 | Delivery of document by public notice |
Addressee: Feng Lijuan Document name: the First Notification of an Office Action |
|
DD01 | Delivery of document by public notice |
Addressee: Feng Lijuan Document name: Notification that Application Deemed to be Withdrawn |
|
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140212 |
|
WD01 | Invention patent application deemed withdrawn after publication |