一种基于IPv6隧道技术的远程设备控制方法及系统转让专利

申请号 : CN201910132902.3

文献号 : CN111614596B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 文伟平李百川

申请人 : 北京大学

摘要 :

本发明公布了一种基于IPv6隧道技术的远程设备控制方法及系统,被控端为多个远程设备;主控端处理网络连接、收发数据、数据解密解压缩及功能运行,被控端处理网络连接、收发数据、数据加密压缩及功能运行。建立C/S正向连接型网络模型和反弹连接型网络模型并行的全双工模型;通过采用IPv6 6to4自动隧道技术及TCP协议,并基于底层的Socket及TCP/IP协议栈进行网络通信;对网络中的关键数据进行加密传输;当网络传输数据量大时进行数据压缩。采用本发明技术方案,对远程设备实现在IPv4与IPv6网络共存以及处在内网环境下的有效远程控制,能够有效地提高远程控制的传输效率;且在不降低执行效率的情况下实现端到端的网络信道安全防护。

权利要求 :

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隧道技术的远程设备控制方法及系统

技术领域

[0001] 本发明涉及网络远程控制技术,尤其涉及一种基于IPv6(Internet Protocol Version 6)隧道技术(Tunneling)及TLSv2(Transport Layer Security Version 2)的远
程设备控制方法及系统。

背景技术

[0002] 目前在IPv4的环境下IP网络地址资源非常有限,已经严重制约了互联网的应用和发展,由于IPv4地址的枯竭以及路由表对IPv4地址处理缓慢等问题,导致IPv4的网络承载
量越来越大,在用网高峰时传输速率明显下降,所以IPv4过渡到IPv6势在必行。而IPv6与
IPv4之间的不兼容性,也需要对原有的IPv4设备进行替换。然而IPv4设备大量替换所需成
本会非常巨大,且现网运行的业务也会中断,显然并不可行。
[0003] 现阶段网络拓扑环境复杂,IPv4与IPv6的网络架构共存,并且普遍使用动态IP及NAT(Network Address Translation,网络地址转换)等技术实现公网IP复用,都对远程控
制管理带来诸多了挑战。对于传统的正向连接Client/Server模型,服务端监听端口,等待
客户端的连接请求,客户端主动连接服务端,建立连接再进行控制操作。而传统的正向连接
模式无法穿透NAT节点,根本无法找到服务端,更谈不上远程控制。这也正是当前众多远程
控制软件不能满足需求的原因所在。反弹连接是近年才出现的网络连接模式,属于反传统
Client/Server模型。它相对于正向连接而存在,由客户端监听端口,服务端主动连接客户
端实现网络通信,进而实现远程控制管理,该方法主要用于穿透防火墙。但是在目前的远程
控制软件中不普遍使用,而且也无法满足在实际网络拓扑环境下的连接需求。

发明内容

[0004] 为了克服上述现有技术的不足,本发明提供一种基于IPv6隧道技术及TLSv2远程设备控制方法及系统,在复杂多变的网络环境中将主控端(服务器)与多个远程设备(被控
端)有效建立连接,并对网络中的关键数据进行加密传输,还可采用数据压缩算法进行数据
压缩,从而有效地提高远程控制的传输效率,对远程设备实现有效控制;能够实现在IPv4与
IPv6网络共存以及处在内网环境下的远程控制,且在不降低执行效率的情况下实现端到端
的网络信道安全防护。
[0005] 本发明的原理是:对现IPv6的过渡阶段,通过6to4(6to4是一种IPv6转换传输机制)自动隧道技术,使得IPv6报文在途径IPv4网络节点时保持传输。6to4自动隧道利用IPv6
单播地址中的6to4地址。6to4地址是一类特殊的IPv6全局单播地址,它通过公网IPv4地址
映射而来。本发明中,系统包括主控端及相应程序和被控端及相应程序。系统工作时,主控
端的程序向被控端的程序发出请求控制信号,利用现有的IPv4网络主干道,以及网络中零
散的支持IPv6过度协议的孤岛结点,建立起一条IPv6的网络隧道,通过这条隧道,在网络报
文传输或转发的过程中,如果转发的路由节点支持IPv6就自动转化为IPv6,如果不支持就
自动退化为IPv6,通过使用各种远程控制功能发送远程控制命令,控制被控端各种应用程
序运行,操纵被控端完成指定工作,从而达到远程控制的目的。
[0006] 本发明通过对正向连接、反弹连接与端口映射进行分析,设计出了符合实际需求的网络远程控制的模型,建立C/S网络模型(正向连接型)和反弹连接型(反向连接型)网络
模型并行的全双工模型。该模型既能够实现在IPv4与IPv6网络共存以及处在内网环境下的
远程控制,又可在不降低执行效率的情况下尽可能实现端到端的网络信道安全防护。因此,
主控端与被控端都分别采用两种模式:监听等待连接和主动连接。被控端采用这两种模式
属于互斥式,即当采用其一模式时,另一种模式失效;主控端的两种模式并发执行,监听的
端口可以直接与被控端建立连接,也可以接收从主控端主动连接模式中的端口发送过来的
数据。
[0007] 本发明提供的技术方案是:
[0008] 一种基于IPv6隧道技术的远程设备控制方法,主控端为服务器,被控端为多个远程设备;建立C/S网络模型(正向连接型)和反弹连接型(反向连接型)网络模型并行的全双
工模型;主控端和被控端通过采用IPv6 6to4自动隧道技术以及TCP协议,并基于底层的
Socket及TCP/IP协议栈进行网络通信;其中对网络中的关键数据进行加密传输,在涉及到
大量的网络数据传输时,可进行数据压缩(可采用GZIP数据压缩算法)。其中主控端负责处
理网络连接、收发数据、数据解密解压缩以及功能运行,被控端负责处理网络连接、收发数
据、数据加密压缩、以及功能运行;具体包括如下步骤:
[0009] A.在系统中配置好主控端和被控端设备并获得系统级别权限后,双方开始建立连接,执行如下操作:
[0010] A1.主控端开启IPv6协议,检查本机IPv6地址,确认为开启6to4自动隧道协议的IPv6地址,同时监听端口,等待被控端设备建立连接,与此同时,若有建立连接过的已上线
的被控端设备,主控端也可以向该被控端主动发送连接请求,建立连接;
[0011] A2.若被控端首次进行连接,则需要被控端主动向主控端发送连接请求,此时由于是被控端发起连接,该连接可穿透内网NAT服务器发送至公网的主控端,双方成功建立连接
后,内网NAT服务器会保留此次回话Session,建立起关于此次连接的相关表项,使双方之间
能够正常通信,从而建立连接;
[0012] A3.若被控端非首次进行连接,既可监听端口等待主控端发来的连接请求,也可以再次主动向主控端发送连接请求,
[0013] A4.需要注意的是,被控端上线后,若被控端未处在连接状态,需要每隔一分钟向主控端发送echo心跳包,目的是为了在内网NAT服务器上建立此次连接的相关表项,以便主
控端可以随时向该被控端主动发送连接请求,建立连接;
[0014] B.一旦主控端和被控端建立连接之后,双方开始利用TLSv2来确定加密协议,协商加密密钥并进行认证工作,执行如下操作:
[0015] B1.通信双方进行握手协议在初次建立SSL(Secure Sockets Layer,安全套接层)连接时,主控端服务器与被控端客户机交换一系列消息。这些消息交换能够实现如下操作,
客户机认证服务器,协商客户机与服务器选择双方都支持的密码算法,使用公钥加密技术
生成共享密钥,利用密钥交换技术交换密钥,双方协商过后建立加密SSL连接。
[0016] B2.利用RSA公钥加密技术传输随机生成的加密和解密秘钥,其中RSA的公钥和私钥已经分别硬编码在双方的设备中,之后双方对该秘钥进行SHA‑1哈希混淆,取哈希结果的
前16字节作为RC6分组加密技术的生成秘钥,随后利用RC6进行加密数据的传输;
[0017] B3.被控端发送加密形式的客户端系统信息,同时主控端验证加密协议是否正确;
[0018] B4.随后进行被控端程序的许可(license)验证,防止恶意用户篡改程序以及中间人攻击窃听信道;
[0019] C.各类控制功能依次建立连接,开始传输各类数据,所有数据都经过上一步双方协商好的秘钥进行加密处理,执行如下操作:
[0020] C1.在图像数据的处理中,被控端将当前的屏幕截图转换为固定格式的数据后压缩发送到服务器,服务器将处理的结果以图片形式进行显示;
[0021] C2.在输入设备控制数据的处理中,主控端将键盘按键和鼠标移动位置转换为固定格式的数据后压缩发送到被控端,被控端将处理的结果转化为键盘按键命令或鼠标移动
命令;
[0022] C3.在音频数据的处理中,被控端将声音数据以wave格式映射到网络连接中,在主控端通过声音虚拟通道正确分离声音数据后,将其直接输出到声卡,即可实现声音回放。
[0023] 需要终端程序能够正确的分离并响应声音数据;
[0024] 通过上述步骤,实现基于IPv6隧道技术的远程设备控制。
[0025] 利用上述基于IPv6隧道技术的远程设备控制方法,本发明还提供一种基于IPv6隧道技术的远程设备控制系统,包括主控服务端及相应程序模块和被控客户端及相应程序模
块。主控端服务器用于实现所有的计算处理工作,被控端用于处理网络连接、收发数据以及
功能运行;主控服务端与被控客户端均采用两种模式:监听等待连接和主动连接。客户端采
用的两种模式为互斥式,即当采用其一模式时,另一种模式失效;主控服务端采用两种模式
并发执行的方式,监听的端口可以直接与客户端建立连接,也可以接收服务端主动连接模
式中端口转发过来的数据。主控服务端程序模块和被控客户端程序模块均包括:IPv6自动
网络隧道建立子模块、SSL连接建立与消息交换子模块、许可信息校验子模块;主控服务端
程序模块还包括数据计算处理子模块,可包括图像类数据处理、控制类数据处理和音频数
据处理;
[0026] SSL连接建立与消息交换子模块可包括:协商密码计算子模块、共享密钥生成子模块、交换密钥子模块、双方身份认证子模块;许可信息校验子模块可包括:Token认证子模块
和Signature认证子模块。
[0027] IPv6自动网络隧道建立子模块:用于提供IPv6地址,建立6to4 Tunnel
[0028] SSL连接建立与消息交换子模块:用于协商密码算法,生成共享密钥,交换密钥,双方建立加密连接,防止他人窃听信道和中间人攻击。
[0029] 许可信息校验子模块:用于校验系统本身的许可信息,防止他人伪装主机以及未授权用户的访问。
[0030] 数据计算处理子模块:用于解密解压缩图像和音频数据,以及控制类数据的处理。
[0031] 系统工作时,主控端的程序向被控端的程序发出请求控制信号,利用现有的IPv4网络主干道建立一条IPv6网络隧道,通过这条隧道,使用各种远程控制功能发送远程控制
命令,控制被控端各种应用程序运行,操纵被控端完成指定工作,从而实现对设备进行远程
控制。
[0032] 与现有技术相比,本发明的有益效果是:
[0033] 本发明提供了一种基于IPv6隧道技术的远程控制方法及系统,通过两种正向连接和反向连接型并行的全双功模型,穿透内网,在复杂多变的网络环境中将主控端与多个远
程设备有效建立连接;并对网络中的关键数据进行加密传输,在涉及到软件的网络数据量
较大时,采用数据压缩算法进行数据压缩,有效地提高了远程控制的传输效率。

附图说明

[0034] 图1为本发明方法的流程框图。
[0035] 图2是本发明实施例采用的网络模型拓扑结构框图。

具体实施方式

[0036] 下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
[0037] 图1是本发明提供的一种基于IPv6隧道技术的远程设备控制的实施流程。图2表示本发明实施例采用的网络模型拓扑结构。本发明方法包括如下步骤:
[0038] 1)配置主控端和被控端设备的网络通信协议为6to4的IPv6协议,建立IPv6自动隧道;
[0039] 2)主控端和被控端设备同时采用全双工的通信方式,即可以发起连接请求也可以接受连接请求;
[0040] 3)通信双方进行握手协议建立SSL连接进行消息交换,包括:协商密码算法,生成共享密钥,进行交换密钥,双方身份认证;
[0041] 4)通信双方进行进行许可信息校验,包括Token认证和Signature认证;
[0042] 5)双方认证结束之后,开始传输各类数据,包括图像类数据,控制类数据和音频数据。
[0043] 具体可按照如下步骤实施本发明:
[0044] A.首先获得系统级别权限,并配置主控端和被控端设备,配置方式如下:
[0045] A1.完成IPv4接口的默认配置;
[0046] 配置默认路由器后,目前大部分的NAT路由器都可以自动完成IPv4接口的默认配置;
[0047] A2.完成IPv6的接口默认配置,全局激活IPv6,配置IPv6的单播地址,设备(主控端或被控端,可以是PC机)能够通过无状态自动配置的方式获取地址,路由器须配置6to4 
Tunnel;
[0048] A3.如图2所示,在路由器R1组网中设备的IPv6地址表示形式为2002:IPv4地址::/64,其中2002为6to4 Tunnel的固定前缀,之后为6to4 Tunnel中封装后的IPv4报文头中的
目的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网络同理。
[0049] B.配置好主控端和被控端设备,双方开始建立连接,方式如下:
[0050] B1.主控端开启IPv6协议,检查本机IPv6地址,确认为开启6to4自动隧道协议的IPv6地址,即地址前缀为2002:开头,连接成功后主控端会分别记录被控端内网的[IP:端口
号]以及经过NAT服务器转换后的[IP:端口号],若两个[IP:端口号]一致,则该被控端说明
为外网设备,否则为内网设备。与此同时,若有建立连接过的已上线的被控端设备,也可以
向该被控端主动发送连接请求,建立连接;
[0051] B2.若被控端首次进行连接,则需要被控端主动向主控端发送连接请求,此时由于是被控端发起连接,该连接可穿透内网NAT服务器发送至公网的主控端,双方成功建立连接
后,内网NAT服务器会保留此次回话Session,建立起关于此次连接的相关表项,使双方之间
能够正常通信,从而建立连接;
[0052] B3.若被控端非首次进行连接,则监听端口等待主控端发来的连接请求,也可以再次主动向主控端发送连接请求,
[0053] B4.需要注意的是,被控端上线后,若被控端未处在连接状态,需要每隔一分钟向主控端发送echo心跳包,目的是为了在内网NAT服务器上建立此次连接的相关表项,以便主
控端可以随时向该被控端主动发送连接请求,建立连接;
[0054] C.双方建立连接之后,开始协商初始协议并发送相关认证信息,方式如下:
[0055] C1.被控端通过客户握手消息向主控端发送:支持的版本号,被控端生成的一个用于生成预备主密钥(premaster secret)的32字节的随机数,主密钥由被控端和主控端的随
机数共同生成,会话ID,加密套件,包括加密算法,密钥交换算法,消息验证码MAC,加密方式
(流、分组),压缩算法(可选);
[0056] C2.主控端确定本次通信采用的版本和加密套件,并通过服务器握手消息通知给被控端。如果主控端允许被控端在以后的通信中重用本次会话,则主控端会为本次会话分
配会话ID,并通过服务器握手消息发送给被控端。主控端采纳的本次通讯的版本,主控端生
成的一个用于生成主密钥的32字节的随机数,主密钥由被控端和主控端的随机数共同生
成,会话ID,主控端采纳的用于本次通讯的加密套件,加密算法,密钥交换算法,消息验证
码,加密方式(流、分组),压缩算法(可选);
[0057] C3.主控端将携带自己公钥信息的数字证书通过请求证书消息发送给被控端,数字证书由权威机构CA签发,并由CA保证数字证书的真实性。被控端使用这个公钥完成以下
任务:被控端可以使用该公钥来验证主控端的身份,只有主控端有对应的私钥能解密它的
公钥加密的数据用于对预备主密钥(premaster secret)进行加密,预备主密钥(premaster 
secret)由被控端和主控端生成的随机数产生的,被控端用主控端的公钥对其进行了加密
后发送给主控端;
[0058] C4.主控端可以向被控端发送请求证书消息,即主控端需要被控端证明自己的身份,被控端向主控端发送自己的被控端请求证书,以证明自己的身份;
[0059] C5.主控端发送握手结束消息,通知被控端加密版本和套件协商结束;
[0060] C6.被控端验证主控端的证书合法后,利用证书中的公钥加密被控端随机生成的预备主密钥(premaster secret),并通过密钥交换消息发送给主控端。这一步完成后,被控
端和主控端都已经保存了预备主密钥,预备主密钥用于之后的通信数据的加密;
[0061] C7.被控端发送验证交换消息,通知主控端后续报文将采用协商好的预备主密钥和加密套件进行加密和消息验证码(MAC)计算,其中消息验证码为:预备主密钥,数据包序
列号连接之后的Hash值;
[0062] C8.被控端计算已交互的握手消息的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加消息验证码),并通过回话完成消息发送给主控端。主控端利用同样的
方法计算已交互的握手消息的Hash值,并与回话完成消息的解密结果比较,如果二者相同,
且消息验证码验证成功,则证明密钥和加密套件协商成功;
[0063] C9.同样地,主控端发送验证交换(Confirm Exchange)消息,通知被控端后续报文将采用协商好的主密钥和加密套件进行加密和消息验证码MAC;
[0064] C10.主控端计算已交互的握手消息的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加消息验证码),并通过回话完成消息发送给被控端。被控端利用同样的
方法计算已交互的握手消息的Hash值,并与回话完成消息的解密结果比较,如果二者相同,
且消息验证码验证成功,则证明密钥和加密套件协商成功;
[0065] C11.被控端接收到主控端发送的回话完成消息后,如果解密成功,则可以判断主控端是数字证书的拥有者,即主控端身份验证成功,因为只有拥有私钥的主控端才能从密
钥交换消息中解密得到预备主密钥(premaster secret),从而间接地实现了被控端对主控
端的身份验证;
[0066] D.双方经过身份验证后,须进行许可(licence)信息校验,以防止中间人信道攻击,未授权用户的擅自访问或恶意用户修改程序,方式如下:
[0067] D1.利用RSA传输随机生成的加密和解密秘钥,其中RSA的公钥和私钥已经分别硬编码在双方的设备中,之后双方对该秘钥进行SHA‑1哈希混淆,取哈希结果的前16字节作为
RC6的生成秘钥,随后利用RC6加密验证数据,该过程称为RSA/RC6体系加密;
[0068] D2.在加密、解密验证通过以后,被控端发送licence信息进行系统的身份认证。身份认证的加密、解密系统也是用RSA/RC6体系,但是与网络通信中的加密、解密系统分开的,
licence认证中的密钥是临时的、单独的。
[0069] 许可信息校验过程如下:被控端端首先发送需求(demand)包,内容是随机数和一些系统相关的字符信息;主控端需要回复请求(requset)包,内容是随机数、空闲值、主机
名、用户名;被控端再发送认证请求(authreq)包,内容包括token值和signature值;主控端
需要回复认证应答(authres)包,内容包括token值和signature值。被控端验证该
signature值通过后会发送result包,表明licence认证通过。
[0070] 其中token值为随机数和系统相关信息连接之后的Hash值,signatrue值为token值连接空闲值、主机名、用户名之后的Hash值。
[0071] E.双方认证结束之后,开始传输各类数据,方式如下:
[0072] E1.针对图像类数据进行传输处理时,被控端调用系统截图命令进行截图,刷新率fps为10,之后将当前的屏幕截图转换为固定格式的数据后利用gzip压缩算法发送到主控
端,主控端对读取图片数据解压缩之后还原显示在屏幕上。其中关于图形处理模块共分为
两层,第一层级的数据包编码方式依次为传送开始标志,层内数据长度,类型标记,网络包
顺序号,此后图片的数量,数据压缩类型,数据压缩长度;第二层为每一张图片的结构,数据
包编码方式依次为,png格式的屏幕截图数据,图片压缩标志,数据压缩长度;
[0073] E2.针对输入设备控制数据进行传输和处理时,主控端将当前键盘操作数据转换为键盘消息,将鼠标移动和点击数据转换为鼠标消息编码在数据包内,控制数据处理模块
分为两层,第一层级的数据包编码方式依次为传送开始标志,层内数据长度,类型标记,网
络包顺序号,此后控制数据长度,数据压缩类型,数据压缩长度;第二层为键盘消息或鼠标
消息,其中键盘消息为按键按下和按键抬起,鼠标消息为按键按下,按键抬起和光标移动;
[0074] E3.针对音频数据进行传输和处理时,在初始连接时主控端可选择是否选择声音回放模式。为在本地播放声音,被控端会对查询本地的声卡设置情况和状态,并答复主控
端,主控端确认后,声音数据能够正常回放。关于声卡的确认在被控端登录时已完成。声音
数据是以wave格式进行传输,当终端在使用过程中有声音回放请求时,被控端抓取声卡设
备以便将声音数据以wave格式映射到网络连接中,在主控端正确分离声音数据后,将其直
接输出到声卡,即可实现声音回放。对声卡的设置,声音数据的属性调整等都通过网络映射
到本地,主控端程序能够做到正确的分离声音数据。
[0075] 音频数据处理模块:服务器将声音数据分段发送处理。当有一段声音数据需要传送时,客户端首先发送接收通知,数据包编码方式依次为传送开始标志,层内数据长度,类
型标记,声音数据的格式,标签,索引,具体声音数据,结束标志。主控端收到声音数据后,需
要发送数据处理完毕的反馈信息。
[0076] 需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是
可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求
书界定的范围为准。