基于浏览器代理审查机制的研究

2016-02-06 06:09旭任晓静
网络安全技术与应用 2016年9期
关键词:代理服务传输层插件

◆何 旭任晓静

(1.达州职业技术学院 信息中心 四川 635001;2.达州职业技术学院 图书馆 四川 635001)

基于浏览器代理审查机制的研究

◆何 旭1任晓静2

(1.达州职业技术学院 信息中心 四川 635001;2.达州职业技术学院 图书馆 四川 635001)

本文分析了互联网进入某些网站被阻止或限制,以及审查区域外通过代理绕过审查与面临的问题,也分析了代理审查机制所受速率、客户端可控制与最小附带损害的限制;提出了基于浏览器的Flash代理框架模型和代理审查机制的操作序列所遵从传输层插件,提出了使插件产生大量短暂代理,基于浏览器代理不间断产生和消失以实现客户端代理;通过三个代理实验得出自然限制带宽比人工限制更加严格,从而使传输所用时间达到近似线性,基于浏览器代理审查是稳定。

浏览器;代理;审查;插件;模型

0 引言

当互联网开始作为研究网络并放开相关信息以来,许多国家就开始过滤互联网上传输的信息。OpenNet长期关注追踪因特网过滤的报道,列出了大量进行互联网信息过滤的国家。像YouTube和FaceBook这样的网站在有的国家就受到限制,有的国家限制进入他们认为令其反感的组织或机构的网站。该名单中包含了分布在亚洲、中东以及部分欧洲国家,在这些国家中超过一半加强了网络过滤的力度[1-2]。

一些用户试图通过代理方式绕过监管来访问网站,许多代理服务系统帮助用户绕过监管检查,有些最初是用来提供匿名服务的,现在已经广泛应用于逃避监管。这些逃避欺骗系统的存在使得管理员的工作变得更加困难[3]。管理员必须阻止所有欺骗工具的访问,同时还要附加更多的资源用于日常阻止工作[4]。

1 基于代理审查面临的问题

Bonjour协议让用户在监管区域从逃避监管系统发送与接收少量信息(比如几个字节)到外面监管区域,从而引导用户进入代理的目的,然而试图达到使阻止的目标是困难的,开发Bonjour协议是为了分配路由的IP地址,路由这些地址不使阻止更加困难[5]。

规避系统依赖于过滤区域以外的代理来路由从客户端到所需站点的传输。在隐藏伪装中,检查员可以伪装成合法用户来发现代理服务器地址,并及时阻止他们[6]。阻止这种攻击的一个方法就是不断建立过滤区域以外的新代理。当代理被阻止,新的代理会代替它。

一旦客户端有一个没有阻止代理的地址,它需要伪装与代理会话,这样就无法通过传输分析来阻止会话。伪装的目标是让对话看起来像可接受传输,例如电子商务事务、语音对话等[7]。

一个完整的规避系统必须解决安全客户端软件分发,一方面是安装系统,另一方面是集成有安全功能的Web浏览器。

2 代理审查机制及其限制

代理审查机制的客户端在过滤区域拥有一台计算机并试图访问过滤区域外的网站。同时假设客户端可以完全控制计算机,特别是能在该计算机上安装任意软件。目标网站位于过滤区域以外,且不试图阻止逃避行为。逃避工具试图从客户机到目标主机进行数据来回的传输,该工具包括客户端软件以及过滤区域内部与外部的网络基础设施,试图过滤必须被允许可接受的Internet传输(例,银行和电子商务等),但试图阻止所有存在异议的传输。哪些是可通过的,哪些是受反对传输都是由审查来决定的。

审查来往于过滤器区域的网络传输信息,以及阻止任何一个它想阻止的数据包。但是,要考察以下三方面限制条件。

(1)速率限制。必须在线速率下操作,并且不能明显降低合法的信息传输。也就是说,它几乎没有时间来决定是否允许或阻止数据包和流量的通过。

(2)客户端的可控制。如果审查没有在客户端计算机上安装软件,过滤发生在网络上而不是主机上。一些规避工具是为了在公共信息环境使用而设计的,该环境中客户端使用可能安装了过滤软件的公共终端浏览网络。

(3)最小附带损害。在可能的范围内,审查试图避免附带损害,并试图将接受信息流的影响最小化。审查不能简单地关闭所有通过过滤器的信息,因为这样会停止所有银行和电子商务信息的传输。部署互联网过滤必须尽量减少附带损害,以免伤害商业。

3 Flash代理框架模型

提出一个Flash代理架构可创建大量的临时代理。该模型能用浏览器作为短暂代理浏览整个网络。该模型由WebSocket技术的限制所决定,也就是说它只能向外发送TCP连接,不能像一般代理那样接收连接。在该Flash代理模型中,代理连接是客户端方式。

使用带插件的传输层能够使用不同的规避和隧道方案。模型有一个能够运行在客户端的客户端传输层插件,以及一个运行于在服务器传输层插件,如图1所示。

图1 Flash代理框架模型图

客户端希望服务时,它使用代理服务注册并等待。当Flash代理出现并且用客户地址登录到代理服务。一旦代理获得客户端地址,它会接到客户端和服务器,并且代理会为客户端提供来回传输。

3.1 Flash代理

代理本身是一个运行在Web浏览器上的小型应用程序,可以托管到其它计算机上,使用标记代理。每当有人访问页面,标记开始在浏览器上运行。当浏览离开后标记不留任何痕迹的。标记可以连接到代理服务(ProServ)以查找客户端需要连接的地址。一旦它找到客户端地址,便会连接到客户端传输层插件,然后连接到服务器传输层插件,最后开始代理发送的数据。标记本身在后台运行,不影响网站的交互,用户不需要看到标记[9]。

3.2 代理服务器

服务器一直跟踪客户的注册,当页面被请求时将其传给代理。当客户端运输层插件开始启动,它使用Bonjour协议与服务器注册。服务器可能会审查阻止;Bonjour协定的目的是允许客户端将其IP地址发送到服务器以求忽略阻止。与代理服务通信的Flash代理不必经过审查的允许,因此通过阻塞代理服务也不会对其产生影响。注册完毕后,当一个基于浏览器的Flash代理可以提供服务时,该代理服务指定它为审查客户服务。

3.3 传输层插件

客户端和服务器都通过运行在其上的传输层插件对Flash代理隧道进行读写。在WebSocket的情况下,传输层插件响应HTTP握手,并把数据转换成的WebSocket帧。在客户端使用TCP连接接收数据,在另一个端口使用WebSocket连接接收来自Flash代理,以维护每个类型的连接池。两个连接池中一旦有至少一个连接,传输层插件便会将它们连接起来,开始进行数据来回传输。当一个Flash代理消失,传输层插件开始使用连接池里的另一个代理连接。而代理几乎不知道一个新的Flash代理已经取代了原有的位置。

3.4 服务器

运行服务器传输层插件,任何服务器都可以用作通向外部网络的入口。

4 代理审查机制

运行在Web浏览器上的程序,无论使用WebSocket还是Flash都有一个共同的限制条件,不能打开监听Socket,只能被动地等待连接,他们只能创建新的出站连接。另一个限制是Web浏览器的安全性策略通常阻止程序连接到任意的目的站点。浏览器需要服务器、客户端传输层插件与服务器传输层插件相互合作。这就意味着WebSocket服务器必须通过发送Access-Control-Allow-Origin header字段允许交叉区域资源共享(CORS)[10],客户端和服务器必须能够响应WebSocket握手和到服务器隧道数据的代理。对于Flash意味着终端必须服务跨域策略,具体说明哪一个连接是被允许的XML程序段。

Flash代理可以是后台网络地址转换(NAT)或不允许新进入连接的防火墙,这不会影响体系结构[11]。代理建立过程按如下序列操作:

(1)客户端启动会话和客户端传输层插件,并通过安全Bonjour协议机制给服务器发送注册信息。传输层插件开始侦听远程连接。

(2)一个Flash代理上线,并对服务器进行调查。

(3)服务器返回客户登记信息,报告Flash代理可以连接的位置。

(4)代理产生客户端的出站连接,同时该连接会被客户端传输层插件所接收。

(5)代理在服务器上产生运输层插件的外向连接,并开始在客户端和服务器之间传送和接收信息。

(6)Flash代理迟早会消失,并且打破客户端和服务器之间的连接。然后客户端运输层插件会立即切换到另一个可用的代理上。在万一没有可用的情况下,传输层插件会一直等到一个新的代理出现。

客户端传输层插件在连接池中一直保持5个代理的活跃连接,以便使它们快速的切换。在同一时间只有一个代理会被使用,但是当这个正在使用的一旦消失,该Socket使用其中的储备完成,用于低层建立新连接。

服务器的目标是给客户端平均分配代理,并试图为用户提供良好的服务。服务商器还试图让每个有空闲的代理负载更多。服务商会跟踪分给每个代理客户端的数量。当出现一个新客户时,它分配较少的负载给该代理,这样以防止出现随机断裂。

该体系结构的特征是,使用代理的客户端预先不知道它连接到哪个代理的。事实上,客户机传输层插件接收的伪目的地址只遵从可插入的传输层协议。

5 Flash代理审查实验及结论

实验研究服务器与客户端传输层插件、代理服务器都运行在本地主机上,测试代理的最大吞吐量、独立性及其存在的瓶颈。通过WebSocket代理和基于Flash代理直接绕过TCP,开始进行1~50个50MB文件同时进行HTTP下载。代理运行在Flash Player为16.0.0.235版本的IE9浏览器上。测试中代理的带宽和连接限制被禁用。图2展示了每个客户端下载文件的时间。每列包含多个点,但是Flash Socket和直接下载大概是一致的。

图2 通过不同数量客户端与不同方式下载50MB文件所需要时间

两个代理都比直接下载慢。WebSocket测试显示下载时间与客户端的数量大体上成比例。

Flash Socket上多达16个客户端中每个客户端下载所用的时间几乎都是常数。这是由于Flash Player内部限制使得每个单独的连接不会超过设定的最大值。正是由于这种限制,在少量客户端时WebSocket的速度会比Flash sockets快。最终自然限制带宽变得比人工限制更加严格,从而使下载所用时间变为近似线性的。

从Socket读取数据WebSocket API不会暴露出“读取”的过程,但是注册一个“消息”并调用返回函数时该数据就会被读取。接收到的数据包没有被带有缓存的应用程序立即处理。在高数据率下,该缓存可以无约束地增长,其后果是这样代理可能最终崩溃,这个问题不是特定于Flash代理,它留下代理并暴露给具有恶意客户端或入侵者。Websocket提供一种方法用以控制写缓冲区的大小,读缓存的互补机制足以解决该问题。由于Flash Socket在操作系统内核缓存数据,它就不存在这样的问题,所以TCP滑动窗口可以防止一次性接受过多数据。

结果显示一旦连接,Flash代理可以提供更多的带宽。对于少数客户端,基于浏览器的代理审查是很稳定的也是可预测性的。

[1]The OpenNet Initiative:OpenNet Initiative Internet ce nsorship data.http://opennet.net/research/data,2011.

[2]Kadianakis,G.,Mathewson,N.:Obfsproxy architectur-e.htt p://www.torproject.org/projects/obfsproxy,2011.

[3]Wustrow,E.,Wolchok,S.,Goldberg,I.,Halderman,J.A.:Telex:Anticensorship in the network infrastructure.In:Proc.2 0th USENIX Security Symposium.2011.

[4]Tor Metrics Portal:Users.https://metrics.torproject.org /users.html 2011.

[5]王爱杰.Bonjour网关mDNS响应报文处理模块的设计与实现[D].北京:北京邮电大学软件学院,2015.

[6]曹自刚.隐蔽式网络攻击检测关键问题研究[D].北京:北京邮电大学,2015.

[7]Wilde,T.:Knock knock knockin on bridges doors., http s://blog.torproject.org/blog/knock-knock-knockin-bridges-do ors,2012.

[8]郭伏,操雅琴,丁一,屈庆星.基于多模式测量的电子商务网站情感体验研究[J].信息系统学报,2013.

[9]龚平,冯在文.基于标注的业务过程合规性验证方法[J].计算机应用,2014.

[10]W3C:Cross-origin resource sharing.http://www.w3.or g/TR/cors/,2012.

[11]Muller,A.,Evans,N.,Grothoff,C.:Autonomous NAT tra versal.10th IEEE International Conference on Peer-to- Peer Computing(P2P),2010.

四川省教育厅理工科重点项目基金(14ZA0330)。

猜你喜欢
代理服务传输层插件
基于Python语言的网络传输层UDP协议攻击性行为研究
ZnO电子传输层在有机无机杂化钙钛矿太阳能电池中的应用
自编插件完善App Inventor与乐高机器人通信
物联网无线通信传输层动态通道保障机制
基于物联网GIS的消防智能巡检系统设计与实现
农村“三资”代理服务浅析
基于jQUerY的自定义插件开发
网络安全与防火墙技术
基于Revit MEP的插件制作探讨
插件体系结构软件的原理和实现