您的位置:首页 > > 正文
发布时间:2020-04-13 17:13
代理服务器在实现资源共享和隐藏网络连接属性方面发挥着很大的作用,所以一直受到那些对于网络和资源的连接受限的用户的欢迎。鉴于当前网络的普及程度不是很高和网络资源的有限性,很多资源的管理部门或者是机构大都是通过IP地址这种简单的方式来判断访问请求者是否来自合法的IP地址[1],因此如果想获取这类资源,比如说对方购买的论文数据库等,必须通过对方合法IP地址设置的代理服务器来实现。
但是,对于常见的代理服务器来获取网络资源的方式网络管理部门都已十分熟悉,也早已找到相应的对策来检测和发现合法IP地址所设置的代理服务器[2],同样的,一些文章也对网络资源和敏感信息的保护提出了建议[3]。
因此,这就对那些想访问这些受限制的资源的访问者提出了一个要求:实现一种隐藏型的代理服务器来躲避网络相关管理部门的检测和监管。本论文就基于这种假设实现了一种基于HTTP的隐藏型的代理服务器,能够提供代理功能又能躲避网管的检测和监管,并揭示了一些可能的网络安全方面的应用和威胁,以此希望引起网络安全工作者对网络资源和敏感信息的重视和保护。
1.代理服务器的原理和分类
代理服务器(proxy)相当于一个中转站,位于客户端和服务器端之间,能够转发客户端的访问请求到服务器端,并能够把服务器端的响应再转发回客户端。
代理服务器软件粗略的可以分为HTTP的代理服务器和SOCKS(SOCK4,SOCK5)代理服务器。HTTP代理主要用于平时web文件的浏览和下载;SOCK代理服务器跟应用层使用的协议无关,所以功能要比HTTP代理服务器强大,能够支持TCP和
UDP,支持各种身份验证机制和服务器端域名解析等。
1.1代理服务器的作用
(1)能够实现网络资源共享:最常见的情况是校园网或者家中申请了电信或者网通的宽带,但是却有多台电脑需要上网,为了节省上网费用,其中一种方式就是通过设置代理来达到大家都能上网的需要;还有一种常见情况是教育网内部如果一个学校购买了国外的论文数据库的话,可以设置一个代理服务器,让兄弟院校进行数据库的访问和下载达到资源共享的方式。
(2)能够隐藏IP[4]:电脑连接到互联网上不可避免的受到病毒和黑客的攻击,如果通过代理服务器来上网,只要代理服务器是安全的,就能够避免这些,同时又能够在某种程度上隐藏自己上网的IP地址也即行踪,这样不管在网络攻击和网络防护方面都具有很大的实际操作意义。
(3)能够突破IP地址限制:还以教育网内部的论文数据库为例,通过使用合法的IP地址设置代理服务器使得外部不合法的地址能够访问数据库资源。
(4)能够突破IP连接数目的限制:我们比较熟悉的太平洋
(PCOnline)网站,如果通过FTP来下载软件的话,如果正在下载一个软件,就无法同时下载其他软件,但是通过设置代理服务器就能够同时下载多个软件或者开多个线程。
2.隐藏型代理服务器
2.1隐藏型代理服务器的作用和优越性
(1)隐藏型代理服务器就像它的名字所描述的那样能够隐藏自己,让代理搜索软件判断不出代理服务的存在,只有授权和认证过的用户才能使用代理服务。
(2)与普通代理服务器软件相比,隐藏型代理服务器软件通过隐藏自己,能够实现一定程度的安全性并能减轻减轻代理服务器的访问压力,又能够释放和节省一定的网络带宽,在公司和学校都有一定的应用空间。
2.2隐藏型代理服务器的实现
实现部分由浅入深讨论了两种"基于HTTP代理服务器"[5,
6],为了方便,整个测试和讨论都是在校园网内部进行。
正像开头所描述的那样,本文实现的软件希望能够躲避网络监管和代理搜索软件的"搜索",并希望以此来提升网络管理者的安全意识。"太阳风工作室"开发的代理搜索软件"代理猎手"以速度快和准确度高深受人们的喜爱,本文实现的隐藏型代理服务器也用其进行了检验和测试。
方式一:服务端+客户端(如图1所示)实现方法和原理:服务端提供代理服务,采取客户端认证和浏览分离的方式,首先下载客户端安装在要访问远程隐藏的代理服务器的电脑上,客户端内置用户名和密码用作访问授权验证。运行客户端并设置IE等浏览器使用代理访问网络,通过和服务器端的数据库进行比较来对客户端的用户名和密码进行验证,只有通
图1方式一的实现流程图过验证的的客户端才能使用代理服务。
经过代理猎手的验证:用这种方式设置的代理服务器虽然能识别出对应的端口,但是并不能识别对应端口提供的服务是代理服务,提示"不符合协议",也就是说它不认为是对应端口提供了代理服务,也许提供的是其他服务,如web,ftp等服务。
虽然代理搜索软件"代理猎手"不认为以"方式一"实现的代理服务器提供的是代理服务,但是依然能够发现对应端口提供某种服务,这也许会被一个细心的网络管理人员通过各种技术分析手段而发现,所以本文基于这些考虑对"方式一"进行改进,提出了"方式二"的基于HTTP的隐藏型代理服务器。
方式二:服务器端+客户端浏览器+传输加密+端口截听实现端口隐藏
实现方法和原理:服务器端提供代理功能,并能识别和验证客户端的连接。客户端浏览器是集成了浏览器功能的客户端,可以方便的通过加解密[6][7]同服务端进行通信。由于客户端和服务器端的传输内容是加密信息,这样一来,即使数据包被第三方捕捉到,也没有办法进行分析。通过图2方式二的实现流程图
124福建电脑2007年第5期
端口截听实现端口隐藏在服务器端实现,通过端口截听来实现端口的隐藏,通过自己特定的包格式判断是不是自己的包,如果是自己的就提供代理服务,如果不是通过127.0.0.1的地址交给真正的服务器应用进行处理。工作流程和示意图如图2所示:
端口截听[8]实现端口隐藏[9]的关键部分伪码如下:
Hide_socket(){
//define the socket
SOCKET socket_server,socket_client;
//if the packages are mine,accept them,else transmit them to 127.0.0.1 to the real service saddr.sin_family=AF_INET;saddr.sin_addr.s_addr=inet_addr("127.0.0.1");saddr.sin_port=htons();
if((socket_client=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==SOCKET_ERROR){
//to the error processes
}val=SOCKOPT_LENGTH;
if(setsockopt(socket_clinet,SOL_SOCKET,SO_RCVTIMEO,(char*)&val,sizeof
(val))!=0){
//to the error processes
}if(setsockopt(socket_server,SOL_SOCKET,SO_RCVTIMEO,(char*)&val,sizeof
(val))!=0){
//to the error processes
}
if(connect(socket_client,(SOCKADDR*)&saddr,sizeof(saddr))!=0){//to the error processes
}
while(1){
//transmit the package from outside to the 127.0.0.1 and transmit the packages reply outside num=recv(socket_server,BUFFER,4096,0);if(num>0)send(socket_client,BUFFER,num,0);else if(num==0)break;num=recv(socket_client,BUFFER,4096,0);if(num>0)
send(socket_server,BUFFER,num,0);else if(num==0)break;
}
3.结语
本文给出了实现"隐藏型代理服务器"的思路和方法,通过数据加密和端口隐藏等网络技术来实现代理服务的隐藏。但是本文的实现是在校园网中实现的,如果两个在各自局域网中的计算机通过公共网络来使用客户端和服务器端的话,实现的过程肯定要复杂一些,比如通过第三方来辅助客户端和服务器端的连接等等。但是,只要在校园网中能够实现的话,在公共网络中肯定也能够实现,这也是本文作者进一步研究的工作内容。
参考文献:
1.张云川.基于代理服务器的图书馆电子资源防扩散技术[J].现代情报,
2005.1:121-122
2.徐巧枝.代理服务器的安全模型[J].兵工自动化,2004.5:44-45
3.周玉淘.高校图书馆代理服务器的安全应用探讨[J].情报技,2003.9:
53-55
4.刘洋.一种代理服务器的设计与实现方法[J].计算机研究与应用,2003.
12:37-41
5.黄锦昌.支持HTTP多路复用的代理服务器的设计与实现[J].计算机应用,2003.6:52-55
6.王春枝.基于用户的代理服务器安全访问的开发[J].湖北工学院学报,
2002.12:4-6
7.刘晓宁.MS-Proxy代理服务器安全策略分析[J].辽宁工程大学学报,
2001.12:810-812
8.W.RICHARD STEVENS,BILL FENNER(美).UNIX网络编程(第三版),2005:163-201
9.张岩.基于Linux的代理服务器的设计与实现[J].计算机与数字工程,
2005.2:87-91
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(上接第116页)
是PWM信号,周期约为20ms。因此,控制智能小车速度和方向的关键在于控制器向驱动器输出,具有合适的占空比的PWM信号[5]。
TMS320F2812包括两个事件管理器模块EVA和EVB,每个时间管理器模块包括通用定时器(GP)、比较单元、捕获单元以及正交编码脉冲电路。EVA和EVB的定时器、比较单元以及捕获单元的功能都相同,只是定时器和单元的名称不同。每个事件管理模块可同时产成8路PWM波形输出--由3个带可编程死区控制的比较单元产生独立的3对,即6个PWM输出,以及由GP定时器比较产生的2个独立的PWM输出。
TMS320F2812芯片的核心工作电压为+1.8V,I/O口采用+3.3V供电,脉宽调制信号(简称PWM)输出的高电平为+3.3V,而智能小车转向舵机驱动器和行驶机构驱动器的输入PWM脉宽调制信号的高电平为+5V,因此TMS320F2812输出的脉宽调制信号的高电平需要经过电平转换后才能驱动转向舵机和行驶机构。本智能小车选用集电极开路输出的六反相缓冲器/驱动器芯片74SL07,实现了PWM信号的电平转换。
智能小车控制器设置了两路PWM输出,分别用于控制小车的行驶机构和转向舵机,从而控制智能小车的运动速度和方向。5.结束语
智能小车技术是一项具有广泛应用前景的技术,在科学探测、工业应用、军事侦察领域和围绕人们日常生活的各个方面都有大量的应用需求。本论文针对智能小车运动控制问题,在充分考虑智能小车系统结构的基础上,设计了基于TMS320F2812数字信号处理器的智能小车运动控制系统的硬件电路,为后续工作提供了硬件实验平台。
参考文献:
1.徐国华,谭民.移动机器人的发展现状及其趋势[J].机器人技术与应用,
2001(3):7-14
2.TI公司.DSP Selection Guide:Digital Signal Processor、System Solutions、Development Tools[M],2003年.28-29
3.赵晶编著.电路设计与制版:Prorel 99高级应用[M].老虎工作室编.北京:人民邮电出版社,2000.227-229
4.高鹏,安涛,寇怀成编著.电路实际与制版:Prorel 99入门与提高[M].
老虎工作室编.北京:人民邮电出版社,2000.107-130
5.刘和平,王维俊,江渝等编著.TMS320LF240x DSP C语言开发应用
[M].北京:北京航空航天大学出版社,2003.160-174 180-181 203-204
222-223 239-240
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(上接第131页)
复杂度为O(n2)。传统的以邻接表为存储结构的算法的时间复杂度为O(n+e),但本算法不需要设栈,并且还实现了分组拓扑排序解决了工作任务的并行安排问题。
本程序采用图形用户界面,在Visual J++中已实现。不论是用于教务管理、工程安排还是用于数据结构课程教学都是很好的。