摘要:时至今日,计算机网络已经成为了人类社会生活中必不可少的组成部分,其中计算机的远程控制系统更是为整个社会的进步起到推动作用。除了在工业自动化生产之外,计算机远程控制系统还广泛的应用于办公、技术支持等方面。在本文中,将设计一种简单的基于的SOCKET技术的计算机远程控制系统。
关键词:SOCKET;计算机远程控制
中图分类号:TP273.5文献标识码:A文章编号:1007-9599 (2012) 02-0000-02
Computer Remote Control Based on SOCKET Technology
Chen Shijun
(Hubei Telecom Business Technology,Support Center,Wuhan430015,China)
Abstract:Today,the computer network has become an integral part of human social life,which the computer's remote control system is to play a role in promoting the advancement of society as a whole.In addition to in addition to the production of industrial automation,computer remote control system is also widely used in office,technical support and other aspects.In this paper,design a simple SOCKET technology based on computer remote control system.
Keywords:SOCKET;Computer remote control
一、远程控制系统的意义及理论基础
(一)远程控制系统的意义
计算机远程控制对于整个互联网络而言具有重要的意义,无论是正面意义的远程技术支持还是反面意义的后门犯罪从发展的角度来看都对计算机及网络技术起到了一个推动作用,而科学技术是第一生产力,技术的进步对于整个社会来说就有意义,尤其是现在的计算机已经渗透到人们生活中的每一个角落,所以本文吸收以往的一些远程控制系统的优点并结合自己的理念设计了一套基于SOCKET技术的计算机远程控制系统。
(二)远程控制系统的理论基础
本文设计的远程控制系统是基于SOCKET的,也就是俗称的“套接字”,使用SOCKET有以下优点:
1.减少了网络通信的技术难度,SOCKET有标准的函数支持,具有标准的使用方法。
2.可以轻松的实现跨平台,目前基本所有的系统,windows、linux、unix及嵌入式系统、PLC等全部支持SOCKET。
综上所述,基于SOCKET设计计算机远程控制系统是可行的。
二、远程控制系统的整体构架
(一)传输协议的选择
在TCP/IP的传输层上,存在着两种可以使用的通信协议,一种是UDP,另一种是TCP。UDP协议能够提供的是一种不可靠的服务,不可能保证数据在传输过程中不出现差错;TCP协议是一种能提供双向有序、且保证数据包可靠收发的协议。在远程控制系统中,安全是第一个要考虑的问题,所以本文设计的远程控制系统使用TCP作为传输协议。
(二)使用模型的选择
本文设计的远程控制模式为一控多,既由一台主计算机控制其他计算机,在模型上更加贴近于C/S模型,虽然使用C/S模型增加了客户端程序设计的难度,但是C/S处理数据快速、准确、安全、封闭性能好,可以很好的抵抗干扰,并且可以快速的响应远程操作请求,所以本系统使用C/S模型。
(三)控制端需求设计
控制端要求有以下三点:
1.能向指定的被控端发送操作指令。在指令中包含两个部分:一是被控端地址,二是操作代码。
2.可接受被控端返回的信息。当控制端受到被控端返回的信息时应该能分析出该信息的来源是否正确,数据包结构是否合法,并能将合法的数据包解析为可理解的信息呈现给控制者。
3.可以提供数据加密服务。为了更好的保证系统的安全性,必须使用一套安全可靠的密码机制,所以要求控制端应该能与被控端建立可靠的安全的连接,并用该链接传输加密后的数据包。
(四)被控端需求设计
被控端主要承担四个工作:
1.对控制端发送过来的操作代码的解析与执行。要求被控端可以验证操作代码来源,分析操作代码是否合理,合理的话要求被控端可以执行控制端要求的操作。
2.将操作结果反馈给控制端。要求被控端必须收集每一步操作产生的日志信息,当控制端需要查看结果时,可以将信息传递回控制端。
3.提供数据加密服务。被控端的数据加密服务与控制端的数据加密服务目的相同,但是实现方法有差别,两者代码部分重合,但并不通用。
4.提供自我保护服务。避免被控端误操作脱离控制端的控制。
三、控制端具体设计
(一)控制端工作使用线程如下
1.常驻监听线程,用以打开一个指定的端口,对该端口进行监听,等待由被控端主动发起的连接请求。
2.图形界面,用做与控制者交互,使用该界面与其他服务线程联系并且作为操作者操作翻译、确认以及显示接受到的由被控端发送的数据内容。在面向使用者的设计中,图形界面可完成以下任务:
(1)连接到指定的被控端IP。(2)显示连接列表。(3)断开与某被控端的IP。(4)向某被控端发送操作命令,操作指令可以是以下内容:直接交由被控端执行的命令,此类命令既可以人工键入,也可由软件自动生成。控制被控端返回状态的命令。(5)显示被控端状态。可以是图像,文字等。
3.加密服务线程,由图形界面临时创立,负责接受图形界面发送过来的用户操作编码,并将其根据传输通道建立时随机产生的密钥进行加密或解密操作,图形界面会根据使用需求不同传递进不同的参数,该线程会根据参数选择是加密后送入传输线程发送还是加密后向图形界面返回明文。其基本流程如下:
首先检查图形界面传递进的参数含义是加密还是解密,如果是加密则将图形界面传递的参数对指定数据进行加密,加密后的数据直接送入传输线程;如果是解密,则对指定数据解密,之后返回解密后的数据地址指针以及数据长度。
4.传输线程,该线程负责使用建立的传输通道传送数据,由图形界面创立,当常驻监听线程监听到被控端连接请求并交给图形界面同意后或者由使用者操作图形界面直接发起向被控端连接的请求同意后创立,该线程的基本流程如下:
首先该线程打开特定端口与被控端建立明文连接,之后建立安全通道建立线程建立安全通道,当通道建立后既进入等待中,其生命周期从建立开始到控制者操作图形界面停止与被控端连接为止。。
5.安全通道建立线程,由传输线程建立。发起连接者不同,建立条件也有差异。其操作流程如下:
首先被控端使用控制端公钥加密得到的随机对称式密钥K1并发送至控制端,之后控制端使用公钥解密得到K1并用K1加密K1,将密文发送至被控端,然后被控端用K1解密密文并与K1进行比较,判断是否正确,如果正确,那么建立连接,使用的通信密钥为K1。如果由连接请求是由控制端发起,则多加一个控制端要求被控端发起连接的公开请求过程。
四、被控端具体设计
被控端与控制端有着诸多的相同点,包括常驻监听线程、加密服务线程、传输线程、安全通道建立线程。不同的是被控端没有图形界面,所有的操作全部为后台进行,而且被控端多加了自我保护服务,用以保护被控端的可控性。其不同的地方设计如下:
(一)后台操作线程。该线程起到的功能相当于控制端的图形界面所起到的中枢功能。当该线程接受到控制端发送过来的指令时,首先做的也是解密翻译,之后根据命令的不同执行不同的操作。操作有以下几类:
1.直接交由操作系统执行命令并记录返回情况;2.控制计算机的输入设备并记录返回情况;3.控制计算机的输出设备并记录返回情况;4.向控制端发送记录的返回情况。
(二)自我保护线程。该线程设计运行于计算机的RING0层,并运用ROOKIT手法以及软件安全技术屏蔽一切对本线程不利的操作,用以保证被控端的可控性。其监控方面有以下几个:
1.计算机驱动的加载;2.输入输出设备;3.文件系统变动;4.应用程序的危险操作。
通过以上的防护措施,基本上可以保证控制端对于被控端的控制,达到远程控制的目的。
参考文献
[1]田鹏.基于WEB的远程控制系统设计[D].兰州大学,2011
[2]马强.计算机网络远程控制系统的研究与应用[D].中国地质大学,2007
[3]王涛.基于安全模式的软件安全设计方法[D].吉林大学,2011
[4]朗波,王晓青.基于计算机网络远程控制系统的图像传输实现策略[J].青海大学学报(自然科学版),2008
[5]朱庆军,丁志刚,吕卫阳.基于C/S模式的智能相机远程控制系统研究[J].电气应用,2008(08)