一种基于IPv6隧道技术的远程设备控制方法及系统转让专利
申请号 : CN201910132902.3
文献号 : CN111614596B
文献日 : 2021-07-09
发明人 : 文伟平 , 李百川
申请人 : 北京大学
摘要 :
权利要求 :
1.一种基于IPv6隧道技术的远程设备控制方法,主控端为服务器,被控端为多个远程设备;建立C/S正向连接型网络模型和反弹连接型网络模型并行的全双工模型;主控端和被控端通过采用IPv6 6to4自动隧道技术及TCP协议,并基于底层的Socket及TCP/IP协议栈进行网络通信;对网络中的关键数据进行加密传输;当网络传输数据量大时进行数据压缩;主控端处理网络连接、收发数据、数据解密解压缩及功能运行,被控端处理网络连接、收发数据、数据加密压缩及功能运行;包括如下步骤:
1)配置主控端和被控端设备的网络通信协议为6to4的IPv6协议,建立IPv6自动隧道;
2)主控端和被控端设备同时采用全双工的通信方式;具体执行如下操作建立连接:A1.主控端开启IPv6协议,确认主控端IPv6地址为开启6to4自动隧道协议的IPv6地址;
同时监听端口,等待与被控端设备建立连接;同时,主控端可向已与主控端建立连接的已上线的被控端设备主动发起连接请求;
A2.若被控端首次与主控端进行连接,则需要被控端主动向主控端发起连接;该连接可穿透内网NAT服务器发送至公网的主控端;双方成功建立连接后,内网NAT服务器保留此次回话Session,建立起关于此次连接的相关表项,使双方之间正常通信;
A3.若被控端非首次进行连接,既可监听端口等待主控端发来的连接请求,也可主动向主控端发送连接请求;
A4.被控端上线后,若被控端未处在连接状态,需要每隔一分钟向主控端发送echo心跳包,在内网NAT服务器上建立此次连接的相关表项;由此主控端随时可向该被控端主动发送连接请求,建立连接;
3)主控端和被控端通信双方通过握手协议建立SSL连接进行消息交换,包括:协商生成共享密钥、交换密钥、双方身份认证;
4)主控端和被控端通信双方进行许可信息校验,包括Token认证和Signature认证;
5)双方认证结束之后,开始传输各类数据,包括图像类数据,控制类数据和音频数据;
传输各类数据时,所有数据均经过双方协商好的秘钥进行加密处理;具体执行如下操作:
C1.在图像数据的处理中,被控端将当前的屏幕截图转换为固定格式的数据后压缩发送到主控端,主控端显示处理的图片结果;
C2.在输入设备控制数据的处理中,主控端将键盘按键和鼠标移动位置转换为固定格式的数据后压缩发送到被控端,被控端将处理的结果转化为键盘按键命令或鼠标移动命令;
C3.在音频数据的处理中,被控端将声音数据以一定格式映射到网络连接中,在主控端通过声音虚拟通道正确分离声音数据后,将其直接输出到声卡,实现声音回放;
通过上述步骤,实现基于IPv6隧道技术的远程设备控制。
2.如权利要求1所述基于IPv6隧道技术的远程设备控制方法,其特征是,步骤A1中,路由器R组网中设备的IPv6地址表示形式为:2002:IPv4地址::/64;其中,2002为6to4隧道的固定前缀;IPv4地址为6to4隧道中封装后的IPv4报文头中的目的IP地址。
3.如权利要求1所述基于IPv6隧道技术的远程设备控制方法,其特征是,步骤3)在主控端和被控端建立连接之后,双方利用TLSv2确定加密协议,协商加密密钥并进行认证;具体执行如下操作:
B1.通信双方进行握手协议,在初次建立安全套接层SSL连接时,主控端与被控端交换一系列消息,实现操作包括:
被控端认证主控端;
协商被控端与主控端选择双方均支持的密码算法,使用公钥加密技术生成共享密钥;
利用密钥交换技术交换密钥,双方协商过后建立加密SSL连接;
B2.RSA的公钥和私钥分别硬编码在主控端和被控端设备中;利用RSA公钥加密技术传输随机生成的加密和解密秘钥;之后双方对该秘钥进行哈希混淆,得到哈希结果;取哈希结果的前16字节作为RC6生成秘钥;再利用RC6生成秘钥进行加密数据的传输;
B3.被控端发送加密形式的客户端系统信息,同时主控端验证加密协议是否正确;
B4.进行被控端程序的许可验证,防止恶意用户篡改程序和/或中间人攻击窃听信道。
4.如权利要求3所述基于IPv6隧道技术的远程设备控制方法,其特征是,步骤B2中,主控端和被控端双方对秘钥进行SHA‑1哈希混淆。
5.如权利要求1所述基于IPv6隧道技术的远程设备控制方法,其特征是,网络传输数据量大时,具体采用GZIP数据压缩算法进行数据压缩。
6.如权利要求1所述基于IPv6隧道技术的远程设备控制方法,其特征是,步骤C2在输入设备控制数据的处理中,具体地,主控端将当前键盘操作数据转换为键盘消息,将鼠标移动和点击数据转换为鼠标消息编码在数据包内,包括第一层级的数据包和第二层级的数据包;第一层级的数据包编码方式依次为传送开始标志、层内数据长度、类型标记、网络包顺序号、控制数据长度、数据压缩类型、数据压缩长度;第二层级的数据包为键盘消息或鼠标消息,其中键盘消息为按键按下和按键抬起,鼠标消息为按键按下、按键抬起和光标移动。
7.如权利要求1所述基于IPv6隧道技术的远程设备控制方法,其特征是,步骤C3在音频数据的处理中,具体地,声音数据以wave格式进行传输;主控端将声音数据分段发送处理;
当需要传送声音数据时,被控端首先发送接收通知,数据包编码方式依次为传送开始标志、层内数据长度、类型标记、声音数据的格式、标签、索引、具体声音数据、结束标志;主控端收到声音数据后,反馈数据处理完毕的信息。
8.一种实现权利要求1所述基于IPv6隧道技术的远程设备控制方法的基于IPv6隧道技术的远程设备控制系统,包括主控端服务器及相应程序模块和被控客户端及相应程序模块;主控端服务器程序模块和被控客户端程序模块均包括:IPv6自动网络隧道建立子模块、SSL连接建立与消息交换子模块、许可信息校验子模块;IPv6自动网络隧道建立子模块用于提供IPv6地址,建立6to4隧道;SSL连接建立与消息交换子模块用于协商密码算法,生成共享密钥,交换密钥,双方建立加密连接;许可信息校验子模块用于校验系统本身的许可信息,防止他人伪装主机及未授权用户的访问;
主控服务端程序模块还包括数据计算处理子模块,用于解密解压缩图像、音频数据和/或控制类数据的处理;
SSL连接建立与消息交换子模块可包括:协商密码计算子模块、共享密钥生成子模块、交换密钥子模块、双方身份认证子模块;许可信息校验子模块可包括:Token认证子模块和Signature认证子模块。
9.如权利要求8所述基于IPv6隧道技术的远程设备控制系统,其特征是,主控端服务器与被控客户端均采用两种模式:监听等待连接和主动连接;被控客户端采用的两种模式为互斥式,即当采用其一模式时,另一种模式失效;主控端服务器采用两种模式并发执行的方式,监听端口可直接与客户端建立连接,也可接收服务端主动连接模式中端口转发过来的数据。
说明书 :
一种基于IPv6隧道技术的远程设备控制方法及系统
技术领域
程设备控制方法及系统。
背景技术
量越来越大,在用网高峰时传输速率明显下降,所以IPv4过渡到IPv6势在必行。而IPv6与
IPv4之间的不兼容性,也需要对原有的IPv4设备进行替换。然而IPv4设备大量替换所需成
本会非常巨大,且现网运行的业务也会中断,显然并不可行。
制管理带来诸多了挑战。对于传统的正向连接Client/Server模型,服务端监听端口,等待
客户端的连接请求,客户端主动连接服务端,建立连接再进行控制操作。而传统的正向连接
模式无法穿透NAT节点,根本无法找到服务端,更谈不上远程控制。这也正是当前众多远程
控制软件不能满足需求的原因所在。反弹连接是近年才出现的网络连接模式,属于反传统
Client/Server模型。它相对于正向连接而存在,由客户端监听端口,服务端主动连接客户
端实现网络通信,进而实现远程控制管理,该方法主要用于穿透防火墙。但是在目前的远程
控制软件中不普遍使用,而且也无法满足在实际网络拓扑环境下的连接需求。
发明内容
端)有效建立连接,并对网络中的关键数据进行加密传输,还可采用数据压缩算法进行数据
压缩,从而有效地提高远程控制的传输效率,对远程设备实现有效控制;能够实现在IPv4与
IPv6网络共存以及处在内网环境下的远程控制,且在不降低执行效率的情况下实现端到端
的网络信道安全防护。
单播地址中的6to4地址。6to4地址是一类特殊的IPv6全局单播地址,它通过公网IPv4地址
映射而来。本发明中,系统包括主控端及相应程序和被控端及相应程序。系统工作时,主控
端的程序向被控端的程序发出请求控制信号,利用现有的IPv4网络主干道,以及网络中零
散的支持IPv6过度协议的孤岛结点,建立起一条IPv6的网络隧道,通过这条隧道,在网络报
文传输或转发的过程中,如果转发的路由节点支持IPv6就自动转化为IPv6,如果不支持就
自动退化为IPv6,通过使用各种远程控制功能发送远程控制命令,控制被控端各种应用程
序运行,操纵被控端完成指定工作,从而达到远程控制的目的。
模型并行的全双工模型。该模型既能够实现在IPv4与IPv6网络共存以及处在内网环境下的
远程控制,又可在不降低执行效率的情况下尽可能实现端到端的网络信道安全防护。因此,
主控端与被控端都分别采用两种模式:监听等待连接和主动连接。被控端采用这两种模式
属于互斥式,即当采用其一模式时,另一种模式失效;主控端的两种模式并发执行,监听的
端口可以直接与被控端建立连接,也可以接收从主控端主动连接模式中的端口发送过来的
数据。
工模型;主控端和被控端通过采用IPv6 6to4自动隧道技术以及TCP协议,并基于底层的
Socket及TCP/IP协议栈进行网络通信;其中对网络中的关键数据进行加密传输,在涉及到
大量的网络数据传输时,可进行数据压缩(可采用GZIP数据压缩算法)。其中主控端负责处
理网络连接、收发数据、数据解密解压缩以及功能运行,被控端负责处理网络连接、收发数
据、数据加密压缩、以及功能运行;具体包括如下步骤:
的被控端设备,主控端也可以向该被控端主动发送连接请求,建立连接;
后,内网NAT服务器会保留此次回话Session,建立起关于此次连接的相关表项,使双方之间
能够正常通信,从而建立连接;
控端可以随时向该被控端主动发送连接请求,建立连接;
客户机认证服务器,协商客户机与服务器选择双方都支持的密码算法,使用公钥加密技术
生成共享密钥,利用密钥交换技术交换密钥,双方协商过后建立加密SSL连接。
前16字节作为RC6分组加密技术的生成秘钥,随后利用RC6进行加密数据的传输;
命令;
块。主控端服务器用于实现所有的计算处理工作,被控端用于处理网络连接、收发数据以及
功能运行;主控服务端与被控客户端均采用两种模式:监听等待连接和主动连接。客户端采
用的两种模式为互斥式,即当采用其一模式时,另一种模式失效;主控服务端采用两种模式
并发执行的方式,监听的端口可以直接与客户端建立连接,也可以接收服务端主动连接模
式中端口转发过来的数据。主控服务端程序模块和被控客户端程序模块均包括:IPv6自动
网络隧道建立子模块、SSL连接建立与消息交换子模块、许可信息校验子模块;主控服务端
程序模块还包括数据计算处理子模块,可包括图像类数据处理、控制类数据处理和音频数
据处理;
和Signature认证子模块。
命令,控制被控端各种应用程序运行,操纵被控端完成指定工作,从而实现对设备进行远程
控制。
程设备有效建立连接;并对网络中的关键数据进行加密传输,在涉及到软件的网络数据量
较大时,采用数据压缩算法进行数据压缩,有效地提高了远程控制的传输效率。
附图说明
具体实施方式
Tunnel;
目的IP地址,例如R1已经有公网IPv4地址200.1.1.1,该IPv4地址对应的6to4IPv6地址就是
2002:C801:0101::/48,其中C801:0101就是200.1.1.1的16进制形式。由此得到了/48的
IPv6地址前缀,这个前缀可进一步子网划分,最终形成/64的IPv6前缀用于终端。路由器R2
这一侧的IPv6网络同理。
号]以及经过NAT服务器转换后的[IP:端口号],若两个[IP:端口号]一致,则该被控端说明
为外网设备,否则为内网设备。与此同时,若有建立连接过的已上线的被控端设备,也可以
向该被控端主动发送连接请求,建立连接;
后,内网NAT服务器会保留此次回话Session,建立起关于此次连接的相关表项,使双方之间
能够正常通信,从而建立连接;
控端可以随时向该被控端主动发送连接请求,建立连接;
机数共同生成,会话ID,加密套件,包括加密算法,密钥交换算法,消息验证码MAC,加密方式
(流、分组),压缩算法(可选);
配会话ID,并通过服务器握手消息发送给被控端。主控端采纳的本次通讯的版本,主控端生
成的一个用于生成主密钥的32字节的随机数,主密钥由被控端和主控端的随机数共同生
成,会话ID,主控端采纳的用于本次通讯的加密套件,加密算法,密钥交换算法,消息验证
码,加密方式(流、分组),压缩算法(可选);
任务:被控端可以使用该公钥来验证主控端的身份,只有主控端有对应的私钥能解密它的
公钥加密的数据用于对预备主密钥(premaster secret)进行加密,预备主密钥(premaster
secret)由被控端和主控端生成的随机数产生的,被控端用主控端的公钥对其进行了加密
后发送给主控端;
端和主控端都已经保存了预备主密钥,预备主密钥用于之后的通信数据的加密;
列号连接之后的Hash值;
方法计算已交互的握手消息的Hash值,并与回话完成消息的解密结果比较,如果二者相同,
且消息验证码验证成功,则证明密钥和加密套件协商成功;
方法计算已交互的握手消息的Hash值,并与回话完成消息的解密结果比较,如果二者相同,
且消息验证码验证成功,则证明密钥和加密套件协商成功;
钥交换消息中解密得到预备主密钥(premaster secret),从而间接地实现了被控端对主控
端的身份验证;
RC6的生成秘钥,随后利用RC6加密验证数据,该过程称为RSA/RC6体系加密;
licence认证中的密钥是临时的、单独的。
名、用户名;被控端再发送认证请求(authreq)包,内容包括token值和signature值;主控端
需要回复认证应答(authres)包,内容包括token值和signature值。被控端验证该
signature值通过后会发送result包,表明licence认证通过。
端,主控端对读取图片数据解压缩之后还原显示在屏幕上。其中关于图形处理模块共分为
两层,第一层级的数据包编码方式依次为传送开始标志,层内数据长度,类型标记,网络包
顺序号,此后图片的数量,数据压缩类型,数据压缩长度;第二层为每一张图片的结构,数据
包编码方式依次为,png格式的屏幕截图数据,图片压缩标志,数据压缩长度;
分为两层,第一层级的数据包编码方式依次为传送开始标志,层内数据长度,类型标记,网
络包顺序号,此后控制数据长度,数据压缩类型,数据压缩长度;第二层为键盘消息或鼠标
消息,其中键盘消息为按键按下和按键抬起,鼠标消息为按键按下,按键抬起和光标移动;
端,主控端确认后,声音数据能够正常回放。关于声卡的确认在被控端登录时已完成。声音
数据是以wave格式进行传输,当终端在使用过程中有声音回放请求时,被控端抓取声卡设
备以便将声音数据以wave格式映射到网络连接中,在主控端正确分离声音数据后,将其直
接输出到声卡,即可实现声音回放。对声卡的设置,声音数据的属性调整等都通过网络映射
到本地,主控端程序能够做到正确的分离声音数据。
型标记,声音数据的格式,标签,索引,具体声音数据,结束标志。主控端收到声音数据后,需
要发送数据处理完毕的反馈信息。
可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求
书界定的范围为准。