基于syn-ack双服务器反弹模式的伪tcp隐蔽通信方法

文档序号:7769679阅读:229来源:国知局
基于syn-ack双服务器反弹模式的伪tcp隐蔽通信方法
【专利摘要】本发明公开了一种基于SYN-ACK双服务器反弹模式的伪TCP隐蔽通信方法,所述隐秘信息的发送端与接收端间通过反弹服务器A或反弹服务器B进行通信;利用TCP建立连接的三次握手原理,通过伪造源IP地址,将隐蔽信息嵌入在TCP的序号域和确认号域中,通过反弹服务器A的反弹发送到目的端;同时隐蔽信息通过对序号和确认号的修改操作,并通过反弹服务器B向发送端反馈信息,实现在目的端的丢失检测和超时重传。
【专利说明】基于SYN-ACK双服务器反弹模式的伪TCP隐蔽通信方法
【技术领域】
[0001]本发明属于信息隐藏【技术领域】,具体涉及一种基于SYN-ACK双服务器反弹模式的伪TCP可靠隐蔽通信方法。
【背景技术】
[0002]现代网络技术的飞速发展使得传输信息更加快捷方便,但是大量的信息尤其是涉及到国家安全、商业机密和个人隐私信息的传输安全性越来越受到关注,这些信息一旦外泄,将会带来严重后果。以往多采用加密技术来传输这类信息,然而加密技术会引起攻击者的破解兴趣。并且随着计算机硬件的发展,破解速度比以前要快得多。信息隐藏技术为该类问题提供了一个很好的解决方法。信息隐藏是将需要保密传递的信息隐藏到一些载体信息中,实现对秘密信息进行保护的一门技术。网络通信中巨大的信息流通量使得使用网络通信数据作为载体进行秘密通信的冗余量大,同时也使攻击者很难有足够的精力去检测网上所有的通信数据,因此利用网络通信数据来隐藏信息是一个比较理想的方法。
[0003]作为计算机互联网络数据传输的核心协议簇,TCP/IP提供了诸如TCP(Transmission Control Protocol)、 ICMP(Internet Control Message Protocol)、IGMP (Internet Group Management Protocol)等协议报文。TCP/IP 协议的各种报文结构通常具有固定格式。这种固定格式在给网际互连带来方便的同时,也不可避免地引入了冗余,这就给隐蔽通信创造了机会。通常,在TCP/IP协议下实现隐蔽通信技术,主要是基于在协议报文的某些特定字段域嵌入隐蔽数据。这些隐蔽数据的嵌入不影响正常的通信过程,当协议报文从发送端以合法的身份抵达接收端时,数据也同时抵达,形成了一条基于TCP/IP协议的存储型隐蔽信道。但大多数基于这种原理的嵌入只是实现了隐蔽数据的传输过程,但并不保证数据的可靠传输,往往缺少对于数据的丢失检测和超时重传的机制研究。
[0004]图1是标准的TCP协议报头格式。其中源端口、目的端口均为16位长。标识出远端和本地的端口号。顺序号为32位长,表明了发送的数据报的顺序。确认号为32位长,是希望收到的下一个数据报的序列号。TCP协议数据报头头长为4位长,表明TCP头中包含多少个32位字。接下来的6位未用。ACK为I表明确认号是合法的。如果ACK为0,那么数据报不包含确认信息,确认字段被省略。PSH表示是带有PUSH标志的数据。接收方因此请求数据报一到便可送往应用程序而不必等到缓冲区装满时才传送。RST用于复位由于主机崩溃或其它原因而出现的错误的连接,还可以用于拒绝非法的数据报或拒绝连接请求。SYN用于建立连接;FIN用于释放连接。窗口大小为16位长,窗口大小字段表示在确认了字节之后还可以发送多少个字节。校验和为16位长,是为了确保高可靠性而设置的,校验头部、数据和伪TCP头部之和。可选项为O个或多个32位字,包括最大TCP载荷,窗口比例、选择重发数据报等选项。最大TCP载荷为允许每台主机设定其能够接受的最大的TCP载荷能力。在建立连接期间,双方均声明其最大载荷能力,并选取其中较小的作为标准。如果一台主机未使用该选项,那么其载荷能力缺省设置为536字节。窗口比例为允许发送方和接收方商定一个合适的窗口比例因子。这一因子使滑动窗口最大能够达到232字节。TCP协议数据报头选择重发数据报选项为允许接收方请求发送指定的一个或多个数据报。
[0005]在TCP/IP协议簇中,TCP协议本身提供了一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。它采用面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接。如果能够模拟或者利用TCP的传输模式来进行隐蔽数据的传输,则可以初步实现可靠传输,达到数据包丢失检测和超时重传的目的。
[0006]TCP的建立连接过程简称为三次握手(Three-way handshake)。图2是三次握手的过程示意图。其连接建立过程主要是:第一次握手:建立连接时,客户端发送SYN包(Seq=X)到服务器,并进入SYN_SENT状态,等待服务器确认;其中SYN为同步序列编号(SynchronizeSequence Numbers)。第二次握手:服务器收到SYN包,必须确认客户的SYN (ack=x+l),同时自己也发送一个SYN包(seq=y),即SYN+ACK包(Acknowledgement),此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+l),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手,客户端与服务器开始传送数据
[0007]Craig H.Rowland[ “Covert Channels in the TCP/IP Suite,,,First Monday,PeerReviewed Journal on the Internet, Julyl997.2]提出了一种利用 TCP 协议头部的字段来构造隐蔽信道进行通信的技术。其主要是利用在TCP连接建立过程中:在第一次握手中利用伪造源IP地址来向服务器请求连接,并将隐蔽信息嵌入到SYN中发给服务器;第二次握手时服务器发回一个确认连接数据包,但此时由于伪造了源IP地址,确认包将发给目的端,此时由ACK携带的隐蔽信息也一并达到了目的端;最后放弃第三次握手。这种不停的和服务器进行三次握手中的前两步来进行隐蔽数据传输的方式称为服务器反弹技术。这种方式虽然实现了隐蔽数据的传输,并且由于握手的另一方是服务器而使得这种方式的隐蔽性较高,但也在不同程度上体现出了局限性。特别是TCP提供了载体数据的可靠传输,但依赖于TCP的这种反弹传输却不提供端到端的可靠传输,使得隐蔽信息在目的端的到达顺序可能无法预测而导致重组发生异常,同时,对于嵌入隐蔽信息的分组的丢失检测以及超时重传也无能为力。本发明因此而来。

【发明内容】

[0008]本发明的目的是提出一种基于SYN-ACK双服务器反弹模式的伪TCP可靠隐蔽通信方法,解决现有的大多数基于TCP/IP协议隐蔽通信不可靠和安全性不高的问题,同时实现目的端隐蔽信息的有序重组、丢失检测及超时重传机制。
[0009]为了解决现有技术中的这些问题,本发明提供的技术方案是:
[0010]一种基于SYN-ACK双服务器反弹模式的伪TCP隐蔽通信方法,所述隐秘信息的发送端与接收端间通过反弹服务器A或反弹服务器B进行通信;其特征在于所述方法包括以下步骤:
[0011](I)隐秘信息的传输步骤:隐秘信息的发送端发送TCP数据包给反弹服务器A进行第一次握手,在TCP数据包的报头的序号域中嵌入隐蔽信息,并嵌入隐秘信息的接收端的IP地址和端口,反弹服务器A根据嵌入的IP地址和端口通过TCP数据包的确认号域将隐秘信息反弹发送到隐秘信息的接收端进行第二次握手;
[0012](2)隐秘信息传输的反馈步骤:隐秘信息的接收端在TCP数据包的报头中嵌入隐秘信息的发送端的IP地址和端口,并将序号域修改为隐秘信息传输的反馈信息,发送给反弹服务器B进行第一次握手,反弹服务器B根据嵌入的IP地址和端口将反馈信息反弹发送到隐秘信息的发送端进行第二次握手。
[0013]优选的,所述方法中还包括隐秘信息的接收端根据传输的隐秘信息进行分组丢失检测;隐秘信息的发送端根据隐秘信息传输的反馈信息和分组丢失检测结果进行超时重传
[0014]优选的,所述方法中反弹服务器B与反弹服务器A相同或者不同。
[0015]优选的,所述隐秘信息发送端嵌入的窗口大小为I?2η_1,η表示序号的位数。
[0016]优选的,所述方法中隐秘信息发送端进行隐秘信息嵌入时,序号域字段的低16位为隐蔽信息,高16位中最高2位为数据状态,中间13位为数据的序号,最后I位为校验位;表不同步彳目息时,闻16位中最闻2位为数据状态,中间13位为窗口大小,最后I位为校验位,低16位为一个特定的值,如0X0000 ;表示结束连接信息时,高16位中最高2位为数据状态,中间13位为0,最后I位为校验位,低16位为一个特定的值,如0X0FF0 ;按照如下步骤进行:
[0017]I)隐秘信息发送端发送数据包至反弹服务器Α,如果发送的是隐蔽数据包时,同步计数器count加I ;否则同步计数器不工作;
[0018]2)若同步计数器值达到窗口最大值,进入发送反馈过程,结束后隐秘信息发送端发送数据包;若数据的序号达到最大值且还有数据需发送,下一个数据的序号值置为初始值,返回隐秘信息发送端发送数据包;若序号未达到最大值且还有数据需发送,返回隐秘信息发送端发送数据包;否则结束。
[0019]优选的,所述方法中当隐秘信息发送端接收来自接收端的反馈信息后,进行分组丢失检测和超时重传过程时的窗口大小为I。
[0020]优选的,所述方法隐秘信息发送端进行超时重传的步骤包括:
[0021 ] I)发送重传确认信息数据报;
[0022]2)进行端口监听,同时重传计时器开始计时;有对应端口数据到来时提取链路层数据,且重传计时器归零,进入步骤3);否则当重传计时器超时后,重新发送当前数据报,继续监听;
[0023]3)对当前分组,检测其TCP域中Acknowledgment Number (Ack字段,确认号域)的值,先将值减I,再进行如下判断:
[0024]i)若确认信息为上个分组已正确接收且无后续重传,则结束分组发送反馈过程;
[0025]ii)若确认信息为上个分组已正确接收且还有分组需重传,通过当前需要重传的序号将数据重新发送,返回步骤2);
[0026]iii)若确认信息为上个分组未正确接收需要再次重传,则将当前分组重新发送,返回步骤2)。
[0027]优选的,所述方法隐秘信息接收端进行请求重传的步骤包括:
[0028]步骤1:进行端口监听,对接收到的分组,提取Ack值,并减I ;利用高16位的最低位对数据进行校验,校验成功表示数据正确接收,进入步骤2 ;否则进入步骤6 ;
[0029]步骤2:若为请求启动检测重传数据包,则校验序号等于初始序号,进入步骤3,若为重传的隐蔽信息数据包,则进入步骤4 ;
[0030]步骤3:对当前窗口下已接收到的全部数据分组,在序号记录文件中利用校验序号开始按自然序升序比较,每次比较后校验序号加I后对窗口值取模;当分组序号不等于校验序号时,表示序号等于校验序号的分组还未接收,进入步骤5;当校验序号达到窗口最大值且仍等于分组序号时,表示分组未丢失或已经全部接收完成,进入步骤5 ;
[0031]步骤4:处理接收到的隐蔽信息数据包,提取序号值写入序号记录文件,提取数据部分存入数据文件;返回步骤3 ;
[0032]步骤5:检测是否还有需要重传的数据,有则发送上个分组正确接收,仍需重传数据信息报并返回步骤I ;若数据已接收完整,则发送分组正确接收,无后续重传信息报,结束此过程;
[0033]步骤6:发送数据接收异常,请求重新发送数据包;请求信息嵌入在SequenceNumber中,格式为:高16位接收异常标志,低16位为重传需求标志;发送后返回步骤I。
[0034]本发明涉及网络信息隐藏领域,特别涉及基于TCP/IP协议的隐蔽通信领域,具体涉及一种采用伪造源IP地址的服务器反弹技术,在TCP报头的SN和Ack域中嵌入隐蔽信息来构造TCP可靠通信的隐蔽通信方法。利用TCP建立连接的三次握手原理,通过伪造源IP地址,将隐蔽信息嵌入在TCP的序号域和确认号域中,通过反弹服务器A的反弹发送到目的端;同时隐蔽信息通过对序号和确认号的修改操作,并通过反弹服务器B向发送端反馈信息,实现在目的端的丢失检测和超时重传。所述方法包括以下步骤(这里假设原始隐蔽信息已经进过加密处理成比特流文件,并且发送端和目的端已经过前期的协商知道对方的IP地址及端口号。):
[0035](I)发送端的隐蔽信息嵌入过程:
[0036]此过程需要用到TCP传输中的窗口控制,故需要规定窗口(window)的大小。这里的窗口设定为从第一个载有隐蔽数据的数据包发送到开始进行发送反馈过程时,发送的隐蔽数据包的数目。理论上window的值为I?2η_1,η表示序号的位数,本发明中η=13。window的值随网络状况而变化,其目的用来较好的控制数据传输时间与同步反馈时间。当网络状况较好时,丢包较少,此时大量的时间用来发送隐蔽数据,则window的值相应比较大;当网络状况较差时,丢包比较严重,此时大量的时间可能用来进行丢失检测和超时重传,则window的值相应取小一点的数值。
[0037]发送端信息嵌入基本过程:
[0038]步骤1:构造TCP第一次握手协议头信息。若需要传输隐蔽信息时,将隐蔽信息嵌入到Sequence Number字段的低16位,将其他相关信息组成嵌入到Sequence Number高16位中,并置SYN (同步序号标志位)为I ;若需要传输同步信息或结束连接信息时,32位值来表示相关信息。除隐蔽数据外的其他相关信息为下列信息之一:
[0039]I)同步信息:数据格式为:高16位包括数据状态(高2位),窗口大小(中间13位)与最低位校验,低16位为一个同步特定值字段;
[0040]2)数据传输:包括数据状态(高2位),数据的序号(中间13位),及最低位校验位共16位;低16位为隐蔽信息;
[0041]3)结束连接:数据格式为:高16位包括数据状态(高2位),中间13位O与最低位校验,低16位为一个结束特定值字段。共32位信息,表示发送端已结束连接,数据发送完毕。
[0042]步骤2:在TCP报头中将源端口号修改为接收端的端口号;[0043]步骤3:在IP报头IP地址域中将源地址修改为接收端的IP地址;
[0044]步骤4:发送数据包至反弹服务器A,当发送的是隐蔽数据包时同步计数器count加I ;
[0045]步骤5:若同步计数器值达到窗口最大值,进入发送反馈过程,结束后返回步骤I ;若序号达到最大值且还有数据(包括隐蔽信息或者结束信息)需发送,下一个序号值置为初始值,返回步骤I;若序号未达到最大值且还有数据需发送,返回步骤I;否则结束。
[0046]发送端还需接收来自接收端的反馈信息,进行分组丢失检测和超时重传过程,本过程窗口大小为1,即每次发送的数据包要等待确认后再进行下一个数据包的重传确认。其基本过程如下:
[0047]发送端分组发送反馈过程:
[0048]步骤1:发送重传确认信息数据报,重传确认信息格式如下:发送窗口中的首个分组的序号,要求开始重传确认,及校验位组成32位序列号;
[0049]步骤2:进行端口监听,同时重传计时器开始计时。有对应端口数据到来时提取链路层数据,且重传计时器归零,进入步骤3;否则当重传计时器超时后,重新发送当前数据报,继续监听。
[0050]步骤3:对当前分组,检测其TCP域中Acknowledgment Number (Ack字段,确认号域)的值,先将值减I,再进行如下判断:
[0051]I)若确认信息为上个分组已正确接收且无后续重传,则结束分组发送反馈过程;
[0052]2)若确认信息为上个分组已正确接收且还有分组需重传,通过当前需要重传的序号将数据重新发送,返回步骤2 ;
[0053]3)若确认信息为上个分组未正确接收需要再次重传,则将当前分组重新发送,返回步骤2。
[0054]数据与序号的对应说明:
[0055]Acknowledgment Number 字段(域)与 Sequence Number 字段(域)按照 TCP 报头在握手中的改变过程按照TCP协议过程进行。传送的数据是经过前期对原始数据加密处理后的二进制流,按2字节(16bits)为一组传输分组进行分组,每个分组在窗口大小下从初始序号开始按自然序给以序号,当序号达到窗口最大值后,序号从初始序号开始再次编号,依次类推,直到分组被编号完毕。
[0056]超时计时机制的说明:
[0057]发送端的反馈机制需要一个重传计时器对当前发送的反馈分组从发送到接收到相关反馈信息进行计时,当超时后要重新发送反馈分组。这里超时的定义采取TCP协议的超时重传计时机制,即指数退避算法,超时计时器的计时规则为1、3、6、12、24、48和多个64秒。具体做法是,当前分组发送后开始计时,当经过I秒后未收到反馈信息,则再次发送分组信息;再经过3秒后仍未收到反馈信息,则再次发送分组信息;当时间到达64秒后,不再增加,以后这个分组的发送时间固定为64秒。当成功收到反馈信息后,超时计时器重置为I秒。
[0058]接收端的隐蔽信息提取过程
[0059]信息接收基本过程:
[0060]步骤1:进行端口监听,有对应端口数据到来时提取链路层数据。[0061]步骤2:对当前分组,检测其TCP域中Acknowledgment Number (Ack)字段的值,若为隐蔽信息传输同步分组,则进入步骤3 ;若为隐蔽信息传输数据分组,则进入步骤4 ;若为隐蔽信息传输结束分组,则进入步骤5 ;若为发送端发送的丢失检测和超时重传数据包,则数据包交给丢失检测和超时重传过程进行处理,并返回步骤I继续监听;否则丢弃分组,返回步骤I继续监听。
[0062]步骤3:分组是隐蔽信息传输同步分组,则记录Ack号中的窗口值为window,并构造同步反馈分组。步骤如下:
[0063]I)构造分组的ACK确认信息,将其嵌入到反馈分组的Sequence Number域中,并将SYN 置 I ;
[0064]2)在TCP报头中将源端口号修改为发送端的端口号,
[0065]3)在IP报头IP地址域中将源地址修改为发送端的IP地址;
[0066]4)发送数据包发至反弹服务器B。
[0067]步骤4:分组是隐蔽信息传输数据分组,则存储隐蔽信息及信息的序列号等信息,步骤如下:
[0068]I)提取32位Ack值,并减I处理;
[0069]2)利用高16位的最低位对数据做校验处理,校验成功进入3),失败则丢弃数据分组,进入4);
[0070]3)将序号按自然序记录在序号记录文件中,低16位数据记录在数据文件中;
[0071]4)返回步骤I。
[0072]步骤5:分组是隐蔽信息传输结束分组,则构造结束反馈分组。步骤如下:
[0073]I)构造分组的ACK结束确认信息,将其嵌入到反馈分组的Sequence Number域中,并将SYN置I ;
[0074]2)在TCP报头中将源端口号修改为发送端的端口号,
[0075]3)在IP报头IP地址域中将源地址修改为发送端的IP地址;
[0076]4)发送数据包发至反弹服务器B。
[0077]5)关闭连接,结束通信。
[0078]接收端的丢失检测和超时重传将执行以下过程:
[0079]接收端信息丢失检测及请求重传基本过程:
[0080]步骤1:进行端口监听,对接收到的分组,提取Ack值,并减I。利用高16位的最低位对数据进行校验,校验成功表示数据正确接收,进入步骤2 ;否则进入步骤6 ;
[0081]步骤2:若为请求启动检测重传数据包,则校验序号等于初始序号,进入步骤3,若为重传的隐蔽信息数据包,则进入步骤4 ;
[0082]步骤3:对当前窗口下已接收到的全部数据分组,在序号记录文件中利用校验序号开始按自然序升序比较,每次比较后校验序号加I后对窗口值取模。当分组序号不等于校验序号时,表示序号等于校验序号的分组还未接收,进入步骤5。当校验序号达到窗口最大值且仍等于分组序号时,表示分组未丢失或已经全部接收完成,进入步骤5 ;
[0083]步骤4:处理接收到的隐蔽信息数据包,提取序号值写入序号记录文件,提取数据部分存入数据文件。返回步骤3;
[0084]步骤5:检测是否还有需要重传的数据,有则发送上个分组正确接收,仍需重传数据信息报并返回步骤I;若数据已接收完整,则发送分组正确接收,无后续重传信息报,结束此过程;
[0085]步骤6:发送数据接收异常,请求重新发送数据包。请求信息嵌入在SequenceNumber中,格式为:高16位接收异常标志,低16位为重传需求标志;发送后返回步骤I ;
[0086]相对于现有技术中的方案,本发明的优点是:
[0087]本发明与已有技术相比,其显著优点是:(I)所使用的是基于服务器反弹技术来实现隐秘信息的传输,由于同一时间对服务器的访问量很大,这极大的增加了传输的隐蔽性;(2)为了在隐蔽传输中实现TCP的可靠传输和超时重传机制,本发明设计了一套通信协议,协议标识通过序号和确认号字段联合实现;(3)由于采用了双服务器反弹,从数据流通道看,其模拟了单工的发送端到接收端的隐蔽传输,极大提高了传输速率,这与以往的实现可靠及重传机制不同;(4)增加了专门的可靠性保证和超时重传反馈通道,不占用数据通道的资源,两个通道可同时进行传输;(5)本发明所提方法基于TCP/IP协议的传输层和网络层协议实现,具有较强的适应性;(6)每个通道都是单向的数据流进行传输,且服务器的可选择性较多,从而提高了信息发送的隐蔽性。
【专利附图】

【附图说明】
[0088]下面结合附图及实施例对本发明作进一步描述:
[0089]图1为标准的TCP协议报头格式;
[0090]图2为TCP三次握手建立连接示意图;
[0091]图3为本发明双服务器反弹技术隐蔽信道的模型框图;
[0092]图4为利用TCP握手协议的双服务器反弹模式数据传输及反馈示意图;
[0093]图5为同步过程数据传输示意图;
[0094]图6为发送端隐蔽数据发送过程示意图;
[0095]图7为接收端数据提取过程示意图;
[0096]图8为发送端分组发送反馈过程;
[0097]图9接收端丢失检测及请求重传过程示意图
【具体实施方式】
[0098]以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
[0099]实施例
[0100]为了充分公开本发明的内容,在介绍发明具体实施方法之前,首先介绍本发明的工作环境。本发明采用的是双服务器的反弹技术来构建通信信道,且利用的是客户端与服务器之间的TCP连接的建立阶段来传输数据,其应用场景如图3所示。所述隐秘信息的发送端与接收端间通过反弹服务器A或反弹服务器B进行通信;隐秘信息的发送端发送TCP数据包给反弹服务器A进行第一次握手,在TCP数据包的报头的序号域中嵌入隐蔽信息,并嵌入隐秘信息的接收端的IP地址和端口,反弹服务器A根据嵌入的IP地址和端口通过TCP数据包的确认号域将隐秘信息反弹发送到隐秘信息的接收端进行第二次握手;隐秘信息的接收端在TCP数据包的报头中嵌入隐秘信息的发送端的IP地址和端口,并将序号域修改为隐秘信息传输的反馈信息,发送给反弹服务器B进行第一次握手,反弹服务器B根据嵌入的IP地址和端口将反馈信息反弹发送到隐秘信息的发送端进行第二次握手。图4为利用TCP握手协议的双服务器反弹模式数据传输及反馈示意图。
[0101]本实例采取端到端的环境来进行隐蔽信息传输,即发送方和接收端分别位于正常通信的两个客户端上,发送方通过构造第一次握手协议数据包并修改相关字段再发送信息给服务器,接收方提取链路层数据,然后接收隐蔽信息。整个通信过程包括前期的发送端与接收端的同步阶段,建立同步后数据的发送与接收阶段,数据丢失检测和重传阶段以及断开连接4个阶段。
[0102]各阶段具体实施过程如下:
[0103](I)发送端与接收端的同步阶段:
[0104]图5为同步过程数据传输示意图。在同步阶段,发送端将同步信息嵌入到序号(SN)字段,发给服务器A,接收端收到来自服务器A的数据包后,将确认号(Ack)字段的值减I后,得到服务器A发送的原始信息;接收端将同步确认信息发给服务器B,发送端接收到来自服务器B的数据包后,检查这个数据是否是自己发送的同步信息的确认信息,是则开始数据传输阶段。若收到的信息是异常信息或者没收到信息,按指数退避算法进行重传,直到接收到正常的来自服务器B的同步确认信息为止。
[0105]此外,为了实现本发明提出的可靠通信机制,本发明定义了一套本发明通信过程中采用的通信协议,包括同步过程、数据传输、反馈阶段及结束阶段的通信协议。同步过程、数据传输阶段和结束阶段的隐秘数据包通信协议及其标识信息如表1所示:
[0106]表1 TCP数据包标识信息表
[0107]
【权利要求】
1.一种基于SYN-ACK双服务器反弹模式的伪TCP隐蔽通信方法,所述隐秘信息的发送端与接收端间通过反弹服务器A或反弹服务器B进行通信;其特征在于所述方法包括以下步骤: (1)隐秘信息的传输步骤:隐秘信息的发送端发送TCP数据包给反弹服务器A进行第一次握手,在TCP数据包的报头的序号域中嵌入隐蔽信息,并嵌入隐秘信息的接收端的IP地址和端口,反弹服务器A根据嵌入的IP地址和端口通过TCP数据包的确认号域将隐秘信息反弹发送到隐秘信息的接收端进行第二次握手; (2)隐秘信息传输的反馈步骤:隐秘信息的接收端在TCP数据包的报头中嵌入隐秘信息的发送端的IP地址和端口,并将序号域修改为隐秘信息传输的反馈信息,发送给反弹服务器B进行第一次握手,反弹服务器B根据嵌入的IP地址和端口将反馈信息反弹发送到隐秘信息的发送端进行第二次握手。
2.根据权利要求1所述的伪TCP隐蔽通信方法,其特征在于所述方法中反弹服务器B与反弹服务器A相同或者不同。
3.根据权利要求1所述的伪TCP隐蔽通信方法,其特征在于所述隐秘信息发送端嵌入的窗口大小为I~2η-1, η表不序号的位数。
4.根据权利要求3所述的伪TCP隐蔽通信方法,其特征在于所述方法中隐秘信息发送端进行隐秘信息嵌入时,序号域字段的低16位为隐蔽信息,高16位中最高2位为数据状态,中间13位为数据的序号,最后I位为校验位;表示同步信息时,高16位中最高2位为数据状态,中间13位为窗口大小,最后I位为校验位,低16位为OXOOOO ;表示结束连接信息时,高16位中最高2位为数据状态,中间13位为0,最后I位为校验位,低16位为0X0FF0 ;按照如下步骤进行:. 1)隐秘信息发送端发送数据包至反弹服务器Α,如果发送的是隐蔽数据包时,同步计数器count加I ;否则同步计数器不工作; 2)若同步计数器值达到窗口最大值,进入发送反馈过程,结束后隐秘信息发送端发送数据包;若数据的序号达到最大值且还有数据需发送,下一个数据的序号值置为初始值,返回隐秘信息发送端发送数据包;若序号未达到最大值且还有数据需发送,返回隐秘信息发送端发送数据包;否则结束。
5.根据权利要求1所述的伪TCP隐蔽通信方法,其特征在于所述方法中当隐秘信息发送端接收来自接收端的反馈信息后,进行分组丢失检测和超时重传过程时的窗口大小为I。
6.根据权利要求5所述的伪TCP隐蔽通信方法,其特征在于所述方法隐秘信息发送端进行超时重传的步骤包括: O发送重传确认信息数据报; 2)进行端口监听,同时重传计时器开始计时;有对应端口数据到来时提取链路层数据,且重传计时器归零,进入步骤3);否则当重传计时器超时后,重新发送当前数据报,继续监听; 3)对当前分组,检测其TCP域中AcknowledgmentNumber (Ack字段,确认号域)的值,先将值减I,再进行如下判断: i)若确认信息为上个分组已正确接收且无后续重传,则结束分组发送反馈过程; ii)若确认信息为上个分组已正确接收且还有分组需重传,通过当前需要重传的序号将数据重新发送,返回步骤2); iii)若确认信息为上个分组未正确接收需要再次重传,则将当前分组重新发送,返回步骤2)。
7.根据权利要求5所述的伪TCP隐蔽通信方法,其特征在于所述方法隐秘信息接收端进行请求重传的步骤包括: 步骤1:进行端口监听,对接收到的分组,提取Ack值,并减I ;利用高16位的最低位对数据进行校验,校验成功表示数据正确接收,进入步骤2 ;否则进入步骤6 ; 步骤2:若为请求启动检测重传数据包,则校验序号等于初始序号,进入步骤3,若为重传的隐蔽信息数据包,则进入步骤4 ; 步骤3:对当前窗口下已接收到的全部数据分组,在序号记录文件中利用校验序号开始按自然序升序比较,每次比较后校验序号加I后对窗口值取模;当分组序号不等于校验序号时,表示序号等于校验序号的分组还未接收,进入步骤5 ;当校验序号达到窗口最大值且仍等于分组序号时,表示分组未丢失或已经全部接收完成,进入步骤5 ; 步骤4:处理接收到的隐蔽信息数据包,提取序号值写入序号记录文件,提取数据部分存入数据文件;返回步骤3; 步骤5:检测是否还有需要重传的数据,有则发送上个分组正确接收,仍需重传数据信息报并返回步骤I ;若数据已接收完整,则发送分组正确接收,无后续重传信息报,结束此过程; 步骤6:发送数据接收异常,请求重新发送数据包;请求信息嵌入在SN字段中,格式为:高16位接收异常标志,低1.6位为重传需求标志;发送后返回步骤I。
【文档编号】H04L29/08GK103475706SQ201310406298
【公开日】2013年12月25日 申请日期:2013年9月9日 优先权日:2013年9月9日
【发明者】黄刘生, 陆潇榕, 缪海波, 沈瑶, 陈志立, 杨威 申请人:中国科学技术大学苏州研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1