基于KCP协议的无端口影子通信方法及计算机存储介质与流程

文档序号:16276784发布日期:2018-12-14 22:38阅读:517来源:国知局
基于KCP协议的无端口影子通信方法及计算机存储介质与流程

本发明涉及互联网通信技术领域,尤其涉及无端口的影子通信技术,具体来说就是一种基于kcp协议(快速可靠协议)的无端口影子通信方法及计算机存储介质。

背景技术

当今,互联网已经成为人类生活必不可少的一部分,人们通过互联网从事娱乐、学习、办公等活动,互联网彻底改变了人类的生活和工作方式,极大地推动了社会的发展。但是,随着越来越多的信息通过互联网进行传输,不法分子利用互联网通信技术的漏洞获取在互联网上传输的信息,导致个人信息和商业秘密的泄露,给个人隐私和公司财产安全带来极大威胁,如何保障信息在互联网上安全传输成为当前亟需解决的问题。

目前,主要使用ssl/tls(安全套接层/传输层安全)协议保障信息在互联网上安全传输,ssl/tls协议保证两个通信应用程序间网络通信的保密性和数据完整性,广泛应用于互联网中,比如,https、smtps、sftp等常见的通信协议都是基于ssl/tls协议来实现的。虽然ssl/tls的使用虽然在一定程度上保障了网络信息安全传输,但是由于ssl/tls建立在tcp(传输控制协议)之上,通信数据流具有tcp会话的特征,从而造成通信会话隐蔽性差,易被不法分子攻击和劫持;此外,通信会话网络穿透性差,易被防火墙等网关设备拦截或阻断;服务端长期监听网络端口易被非法探测,遭受ddos(分布式拒绝服务)攻击。同时,由于通信会话过程中增加了数据加解密步骤,造成数据传输延迟的增大,用户体验差。

因此,所属领域技术人员亟需研发一种网络通信方法,在保障数据可靠传输的同时,提高网络通信的效率。

故本专利提出一种基于kcp的无端口影子通信技术。该技术通过使用影子系统直接在物理网卡捕包的方法替换在传统tcp/ip协议栈监听网络端口的方法去获取网络通信数据,避免因监听端口而带来的隐蔽性差、易被探测及攻击等问题。同时采用kcp协议(快速可靠协议)对数据进行封装和传输,即便在网络拥堵的情况下,仍能确保通信的稳定性和可靠性。



技术实现要素:

有鉴于此,本发明要解决的技术问题在于提供一种基于kcp协议的无端口影子通信方法及计算机存储介质,解决了现有网络通信隐蔽性差、穿透性弱、易被拦截、探测和攻击等等问题。

为了解决上述技术问题,本发明的具体实施方式提供一种基于kcp协议的无端口影子通信方法,包括:接收端通过网卡驱动捕包方式与发送端建立网络通信控制链路;所述接收端与所述发送端之间通过所述网络通信控制链路建立网络通信数据链路;所述接收端与所述发送端之间基于kcp协议通过所述网络通信数据链路收发数据报文。

本发明的具体实施方式还提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行基于kcp协议的无端口影子通信方法。

根据本发明的上述具体实施方式可知,基于kcp协议的无端口影子通信方法及计算机存储介质至少具有以下有益效果:接收端采用影子通信技术,通过影子通信技术接收端不需要在本机任意网络上建立通信监听端口,接收端网卡工作于洪泛模式下,采用驱动捕包方式直接对发往本机的所有数据包进行捕获,实现接收端无端口通信,可有效避免因监听网络通信端口而带来的隐蔽性差、易被探测及攻击、数据校验单一等问题。将基于tcp协议的通信行为转换为udp承载的无连接的高效安全的kcp协议,增强网络通信的穿透性,减少网络数据被防火墙等网络设备拦截的几率,增强数据报文的传输速率,力求在保证可靠性的情况下提高数据传输率,解决在网络拥堵情况下tcp数据包传输速度慢的问题。定义控制链接和数据链接进行多链路通信管理,控制链接用于建立和协商会话信息,数据链接用于传输会话数据。接收端动态更新数据链路信息,增强传输会话的隐蔽性。本发明对构建安全性高、隐匿性强、传输稳定的通信系统有很大帮助,可广泛用于影子通信系统、安全代理系统、匿名传输网络等网络通信领域。

应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性的,其并不能限制本发明所欲主张的范围。

附图说明

下面的所附附图是本发明的说明书的一部分,其绘示了本发明的示例实施例,所附附图与说明书的描述一起用来说明本发明的原理。

图1为本发明具体实施方式提供的一种基于kcp协议的无端口影子通信方法的实施例一的流程图。

图2为本发明具体实施方式提供的一种基于kcp协议的无端口影子通信方法的实施例二的流程图。

图3为本发明具体实施方式提供的一种接收端和发送端组成的整体架构图。

图4为图3中接收端影子系统的具体架构图。

图5a为本发明具体实施方式提供的一种接收端和发送端之间建立网络通信控制链路的时序图。

图5b为本发明具体实施方式提供的一种接收端和发送端之间建立网络通信数据链路的时序图。

图5c为本发明具体实施方式提供的一种接收端和发送端之间传送数据报文的时序图。

图5d为本发明具体实施方式提供的一种断开接收端和发送端之间链路的时序图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面将以附图及详细叙述清楚说明本发明所揭示内容的精神,任何所属技术领域技术人员在了解本发明内容的实施例后,当可由本发明内容所教示的技术,加以改变及修饰,其并不脱离本发明内容的精神与范围。

本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。

关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,也非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。

关于本文中所使用的方向用语,例如:上、下、左、右、前或后等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本创作。

关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。

关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。

关于本文中的“多个”包括“两个”及“两个以上”;关于本文中的“多组”包括“两组”及“两组以上”。

关于本文中所使用的用语“大致”、“约”等,用以修饰任何可以微变化的数量或误差,但这些微变化或误差并不会改变其本质。一般而言,此类用语所修饰的微变化或误差的范围在部分实施例中可为20%,在部分实施例中可为10%,在部分实施例中可为5%或是其他数值。本领域技术人员应当了解,前述提及的数值可依实际需求而调整,并不以此为限。

图1为本发明具体实施方式提供的一种基于kcp协议的无端口影子通信方法的实施例一的流程图,如图1所示,接收端网卡工作于洪泛模式下,接收端网卡捕获所有到达本机网卡的数据包,从而与发送端建立网络通信控制链路,再通过网络通信控制链路获取的信息建立网络通信数据链路,最后基于kcp协议通过建立的网络通信数据链路收发数据报文。

该附图所示的具体实施方式中,基于kcp协议的无端口影子通信方法包括:

步骤101:接收端通过网卡驱动捕包方式与发送端建立网络通信控制链路。本发明的实施例中,接收端可以为配置有网卡的用户设备或服务器,发送端可以为用户设备或服务器。接收端的网卡工作于洪泛模式下,接收端的网卡在此模式下捕获所有到达本机网卡的数据包,接收端使用多核编程技术,将操作系统(os)绑定到指定核运行,使用大页(hugepages)内存技术、无锁环技术(unlockqueue)和directio(直接io)技术,减少内存访问和交换,同时采用多线程操作的无锁循环队列技术来避免多线程竞争。

步骤102:所述接收端与所述发送端之间通过所述网络通信控制链路建立网络通信数据链路。本发明的实施例中,接收端利用网络通信控制链路获取的信息建立网络通信数据链路。网络通信控制链接用于建立和协商会话信息,网络通信数据链接用于传输会话数据报文。接收端动态更新网络通信数据链路信息,增强会话数据报文传输的隐蔽性。

步骤103:所述接收端与所述发送端之间基于kcp协议通过所述网络通信数据链路收发数据报文。本发明的实施例中,将基于tcp协议通信的行为转换为udp协议承载的无连接的高效安全的kcp协议,减少被防火墙等网络设备拦截的几率,增强数据报文的传输速率,力求在保证可靠性的情况下提高数据传输速率。

参见图1,接收端采用影子通信技术,即不在本机任意网络上建立通信监听端口,采用网卡驱动捕包方式直接对发往本机网卡的所有数据包进行捕获,可有效避免因监听端口而带来的通信隐蔽性差、易被探测及攻击、数据校验单一等问题;将基于tcp协议通信的行为转换为udp协议承载的无连接的高效安全的kcp协议,减少被防火墙等网络设备拦截的几率,在保证可靠性的情况下提高数据传输速率,在网络拥堵情况下数据报文的传输速率也不受影响;多链路通信管理,定义网络通信控制链接和网络通信数据链接,接收端能够动态更新网络通信数据链路信息,进一步增强接收端和发送端之间通信的隐蔽性。

本发明的具体实施例中,步骤101具体包括:所述接收端的网卡开启洪泛模式,并通过网卡驱动捕包方式捕获网络上的所有数据包;所述发送端向所述接收端发送第一随机数和一个或多个第一加密方式,其中,第一加密方式可以对称加密方式或者非对称加密方式,所述接收端通过传统协议栈(例如,tcp/ip协议)向发送端传送第一随机数和一个或多个第一加密方式;所述接收端利用bpf(伯克利封包过滤器)和高效特征匹配算法从所有数据包中筛选出所述第一随机数和所述第一加密方式,并向所述发送端回复第二随机数、公钥和第二加密方式,其中,所述第二加密方式为所述第一加密方式中的一个,高效特征匹配算法可以为horspool算法、sunday算法等,所述接收端通过传统协议栈(例如,tcp/ip协议)向发送端传送第二随机数、公钥和第二加密方式,网卡捕获所有发往本地的数据包,这些数据包中夹杂着大量的冗余数据,利用bpf和高效特征匹配算法清除冗余数据包;所述发送端利用所述公钥和所述第二加密方式加密第三随机数,并将加密第三随机数发送给所述接收端;所述接收端利用bpf和高效特征匹配算法从所有数据包中筛选出所述加密第三随机数,并利用所述公钥解密所述加密第三随机数得到所述第三随机数,并利用所述第一随机数、所述第二随机数和所述第三随机数生成第一会话密钥,再将所述第一会话密钥和数据链路信息返回给所述发送端,所述接收端通过传统协议栈(例如,tcp/ip协议)向发送端传送第一会话密钥和数据链路信息;所述发送端根据所述第一会话密钥和所述数据链路信息与所述接收端建立所述网络通信控制链路。为了防止不法分子伪造、修改或重放数据,还需要校验加密第三随机数,进一步保证数据的安全性,所述接收端利用bpf和高效特征匹配算法从所有数据包中筛选出所述加密第三随机数之后,还可以采用时间戳、所述第一随机数、所述第二随机数和数字签名校验所述加密第三随机数。

本发明的另一具体实施例中,步骤102具体包括:所述发送端基于所述网络通信控制链路向所述接收端发送第四随机数和一个或多个所述第一加密方式;所述接收端利用bpf和高效特征匹配算法从所有数据包中筛选出所述第四随机数和所述第一加密方式,并向所述发送端回复第五随机数、所述公钥和第三加密方式,其中,所述第三加密方式为所述第一加密方式中的一个,所述第三加密方式可以与所述第二加密方式相同,也可以与所述第二加密方式不同,所述接收端通过传统协议栈(例如,tcp/ip协议)向发送端传送第五随机数、所述公钥和第三加密方式;所述发送端利用所述公钥和所述第三加密方式加密第六随机数,并将加密第六随机数发送给所述接收端;所述接收端利用bpf和高效特征匹配算法从所有数据包中筛选出所述加密第六随机数,并利用所述公钥解密所述加密第六随机数得到所述第六随机数,并利用所述第四随机数、所述第五随机数和所述第六随机数生成第二会话密钥,再将所述第二会话密钥返回给所述发送端,所述接收端通过传统协议栈(例如,tcp/ip协议)向发送端传送第二会话密钥;所述发送端根据所述第二会话密钥与所述接收端建立所述网络通信数据链路。

本发明的另一具体实施例中,步骤103具体包括:所述发送端利用kcp协议的滑动窗口机制通过所述网络通信控制链路以第一速率向所述接收端发送第一数据报文,并开始计时;所述接收端利用bpf和高效特征匹配算法从所有数据包中筛选出所述第一数据报文,并向所述发送端回复第一响应信息,所述接收端通过传统协议栈(例如,tcp/ip协议)向发送端传送第一响应信息;所述发送端在预定时间内接收到所述第一响应信息,所述第一数据报文传输完毕,其中,所述发送端在预定时间内继续以第二速率向所述接收端发送一个或多个第二数据报文,所述第二速率小于所述第一速率,不会等待第一数据报文正常被接收端接收后才传送第二数据报文,而是等待的同时传送第二数据报文,进一步提高数据报文传送速率,同时防止数据报文发送速度超过接收端的处理能力,第二数据报文的传输速度小于第一数据报文的传输速率,保证通信的稳定性;所述发送端在预定时间内没有接收到所述响应信息,重新发送所述第一数据报文直至收到所述第一响应信息,重传机制保证通信的可靠性。为了防止不法分子伪造、修改或重放数据,还需要校验第一数据报文,进一步保证数据的安全性,所述接收端利用bpf和高效特征匹配算法从所有数据包中筛选出所述第一数据报文之后,还可以采用时间戳、所述第二会话密钥和数字签名校验所述第一数据报文。

图2为本发明具体实施方式提供的一种基于kcp协议的无端口影子通信方法的实施例二的流程图,如图2所示,接收端与发送端之间完成数据报文收发之后,发送端依次发起断开网络通信数据链路和网络通信控制链路的操作。

该附图所示的具体实施方式中,步骤103之后,该方法还包括:

步骤104:所述发送端依次发起断开所述网络通信数据链路和所述网络通信控制链路的操作。本发明的实施例中,步骤104具体包括:所述发送端通过所述网络通信数据链路向所述接收端发送断开所述网络通信数据链路的第一通知信息,并开始计时;所述接收端利用bpf和高效特征匹配算法从所有数据包中筛选出所述第一通知信息,并采用时间戳、所述第二会话密钥和数字签名校验所述第一通知信息,然后向所述发送端回复第一断开信息,所述接收端通过传统协议栈(例如,tcp/ip协议)向发送端传送第一断开信息;所述发送端在预定时间内接收到所述第一断开信息后,断开所述网络通信数据链路;所述发送端在预定时间内没有接收到所述第一断开信息,重新发送所述第一通知信息直至收到所述第一断开信息,保证通信的稳定性;所述发送端通过所述网络通信控制链路向所述接收端发送断开所述网络通信控制链路的第二通知信息,并开始计时;所述接收端利用bpf和高效特征匹配算法从所有数据包中筛选出所述第二通知信息,并采用时间戳、所述第一会话密钥和数字签名校验所述第二通知信息,然后向所述发送端回复第二断开信息,所述接收端通过传统协议栈(例如,tcp/ip协议)向发送端传送第二断开信息;所述发送端在预定时间内接收到所述第二断开信息后,断开所述网络通信控制链路;所述发送端在预定时间内没有接收到所述第二断开信息,强制断开所述网络通信控制链路,防止无用链路占用通信资源。多链路通信管理,分别定义网络通信控制链接和网络通信数据链接。网络通信控制链接用于建立和协商会话信息,网络通信数据链接用于传输会话数据报文,接收端能够动态更新网络通信数据链路信息,进一步增强通信的隐蔽性。

本发明的具体实施方式还提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行基于kcp协议的无端口影子通信方法。方法包括以下步骤:

步骤101:接收端通过网卡驱动捕包方式与发送端建立网络通信控制链路。

步骤102:所述接收端与所述发送端之间通过所述网络通信控制链路建立网络通信数据链路。

步骤103:所述接收端与所述发送端之间基于kcp协议通过所述网络通信数据链路收发数据报文。

本发明的具体实施方式还提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行基于kcp协议的无端口影子通信方法。方法包括以下步骤:

步骤101:接收端通过网卡驱动捕包方式与发送端建立网络通信控制链路。

步骤102:所述接收端与所述发送端之间通过所述网络通信控制链路建立网络通信数据链路。

步骤103:所述接收端与所述发送端之间基于kcp协议通过所述网络通信数据链路收发数据报文。

步骤104:所述发送端依次发起断开所述网络通信数据链路和所述网络通信控制链路的操作。

图3为本发明具体实施方式提供的一种接收端和发送端组成的整体架构图,图4为图3中接收端影子系统的具体架构图,如图3、图4所示,接收端和发送端的应用层为加解密前后的数据展示、存储或计算程序提供调用接口。接收端和发送端的加解密层通过指定的加密方式和密钥,对数据报文进行加解密操作,保证数据报文传输过程中的安全性;加密方式和密钥在通信会话建立时由通信双方协商,支持常见的对称加密和非对称加密方式。接收端和发送端的kcp层将基于tcp协议的通信数据转换为基于udp协议的通信数据,并按照kcp协议进行数据封装和传输,使用kcp协议进行通信管理,通过重传机制和滑动窗口机制保证数据报文传输的快速性和可靠性。接收端的影子系统不使用传统tcp/ip协议栈,通过大页内存技术、无锁环技术和directio(直接io)技术减少内存拷贝及系统中断次数,可提高数据报文传输效率,同时由于驱动层(内核层)支持bpf及高效特征匹配算法可以快速匹配预期数据包,丢弃非法数据包,避免因网络硬件性能瓶颈而带来的攻击行为。如图4所示,捕包驱动采用内核层驱动捕包,支持常见intel网卡类型,摒弃linux内核协议栈,将数据包传输到用户定制协议栈;使用多核编程技术,将os(操作系统)绑定到指定核运行;使用大页内存管理,减少内存访问和交换;采用多线程操作的无锁循环队列技术来避免线程竞争。数据预处理包括:驱动捕获到的数据是到达本机网卡的所有数据包,其中夹杂许多冗余的数据,所以需对数据做预处理,清除冗余数据,取出影子通信数据包,支持常规bpf规则和基于时空高效数据包匹配算法。数据校验包括:通过预处理筛选出影子通信数据包,但为了防止第三方伪造、修改和重放数据,仍需对预处理后的数据做数据校验,进一步保证数据的安全性,本发明的具体实施例中,采用时间戳、随机数和数字签名三要素结合的方式做数据校验。kcp协议封装包括:将校验过后的数据,按kcp协议格式封装,并提交给上层kcp管理模块,由后续模块继续处理;同时,经过应用层处理服后,将要返回给发送端的数据经由传统协议栈发出。

图5a为本发明具体实施方式提供的一种接收端和发送端之间建立网络通信控制链路的时序图;图5b为本发明具体实施方式提供的一种接收端和发送端之间建立网络通信数据链路的时序图;图5c为本发明具体实施方式提供的一种接收端和发送端之间传送数据报文的时序图;图5d为本发明具体实施方式提供的一种断开接收端和发送端之间链路的时序图,如图5a~图5d所示,图5a展示了建立网络通信控制链路的时序图,接收端网卡开启洪泛模式,发送端将自身支持的加密方式和生成的随机数发给接收端,接收端利用bpf和高效特征匹配算法从所有数据包中筛选出随机数和加密方式,并回复一种双方均支持的加密方式、生成的随机数、接收端授权的证书和公钥;发送端收到上述数据后将新的随机数通过接收端发送的公钥和加密方式加密后发送给接收端;接收端收到数据进行解密,同时使用交互的三个随机数生成会话密钥,将会话密钥连同数据链路信息返回给发送端。

图5b展示了建立网络通信数据链路的时序图,发送端使用网络通信控制链路获取的信息建立网络通信数据链路。具体过程包括:基于网络通信控制链路向接收端发送生成的随机数和加密方式;接收端利用bpf和高效特征匹配算法从所有数据包中筛选出随机数和加密方式,并向所述发送端回复双方均支持的加密方式、生成的随机数、接收端授权的证书和公钥;发送端收到上述数据后将新的随机数通过接收端发送的公钥和加密方式加密后发送给接收端;接收端收到数据进行解密,同时使用交互的三个随机数生成会话密钥,将会话密钥返回给发送端。

图5c展示了传送数据报文的时序图,网络通信数据链路建立后,发送端通过滑动窗口机制批量向接收端发送数据报文;接收端将接收数据报文id返回给发送端;发送端在预定时间内未收到数据报文id,根据超时机制,自动重新发送接收端接收失败的数据报文,直至数据传输完毕。发送端在等待接收数据报文id期间,利用更低的数据传输速率发送后续数据报文。

图5d展示了断开接收端和发送端之间链路的时序图,先断开网络通信数据链路,再断开网络通信控制链路,均由发送端发起,断开网络通信数据链路必须经过接收端确认,断开网络通信控制链路在得不到接收端响应的情况下,发送端可以主动断开,保证通信稳定性的前提下,节省网络及计算资源。

本发明实施例提供一种基于kcp协议的无端口影子通信方法及计算机存储介质,发送端和接收端通过基于kcp协议进行无端口的影子通信技术完成数据报文传输。在接收端,从未使用套接字(socket)监听任何网络端口,接收端接收数据报文都是采用影子系统,直接在网卡上使用驱动捕获数据报文,然后通过预处理、解析、数据校验、封装成kcp数据包,提交上层;上层处理完后再通过传统协议栈将数据返回给发送端。实现接收端无端口通信,可有效避免因监听网络通信端口而带来的隐蔽性差、易被探测及攻击、数据校验单一等问题。将基于tcp协议的通信行为转换为udp承载的无连接的高效安全的kcp协议,增强网络通信的穿透性,减少网络数据被防火墙等网络设备拦截的几率,增强数据报文的传输速率,在保证通信可靠性的情况下提高数据传输率,解决在网络拥堵情况下tcp数据包传输速度慢的问题。定义控制链接和数据链接进行多链路通信管理,控制链接用于建立和协商会话信息,数据链接用于传输会话数据。接收端动态更新数据链路信息,增强传输会话的隐蔽性。本发明对构建安全性高、隐匿性强、传输稳定的通信系统有很大帮助,可广泛用于影子通信系统、安全代理系统、匿名传输网络等网络通信领域。

上述的本发明实施例可在各种硬件、软件编码或两者组合中进行实施。例如,本发明的实施例也可为在数据信号处理器(digitalsignalprocessor,dsp)中执行上述方法的程序代码。本发明也可涉及计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(fieldprogrammablegatearray,fpga)执行的多种功能。可根据本发明配置上述处理器执行特定任务,其通过执行定义了本发明揭示的特定方法的机器可读软件代码或固件代码来完成。可将软件代码或固件代码发展为不同的程序语言与不同的格式或形式。也可为不同的目标平台编译软件代码。然而,根据本发明执行任务的软件代码与其他类型配置代码的不同代码样式、类型与语言不脱离本发明的精神与范围。

以上所述仅为本发明示意性的具体实施方式,在不脱离本发明的构思和原则的前提下,任何本领域的技术人员所做出的等同变化与修改,均应属于本发明保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1