Sesawe翻墙指南连载:高级技术介绍

来源:Sesawe(国际反封锁联盟)

高级技术介绍

想要访问被封内容,使用简单技术,如搜索引擎的缓存页面或简单的 Web 代理,有时是不够的,对此存在多种原因。
有时,这些简单的技术不足以绕过封锁区。有时,访问限制不仅限于网络浏览,还限制了即时通讯、电子邮件或视频流。对于这种情况,Web 代理并不能解决用户的问题。

有时,用户不仅需要突破互联网封锁,还需要防止封锁机构获悉用户所访问的页面,甚至,不可让他们获悉用户已绕过过滤程序。

对于这些情况,有更多的高级技术可供使用,它们中每一种技术都使用不同的方式来解决不同的问题。

本章节将对某些重要的技术概念进行讲解,帮助用户在特定的环境中选择合适的解决方案。此外,对于许多访问被封锁信息的方式,本章节还提供了一些具体的介绍。

端口和协议

互联网建立在一系列的协议之上,这些协议规定了计算机网络如何进行通信的标准化规则。TCP/IP(基于 IP 的 TCP 协议)是管理互联网连接和信息包的主要协议组。这些协议能够处理各种数据,利用软件将长通信分割为较短的通信信息包,并进行编号,以及在接收端对数据段进 行重组。指定使用何种协议的最常用的方式是为信息包指定一个特定的端口编号。例如,网络浏览的 HTTP 协议使用端口 80,接收电子邮件的 POP3 协议通常使用端口 110。如果对特定 IP 地址的特定端口进行流量封锁,该站点的某个服务将无法正常访问,但其他服务还是可以使用的。对于被封锁端口,如何绕行的最简单方式就是在非标准的端口上提 供服务,但这种方式必须通过服务操作者来实施,而用户无法对此进行操作。

分层的网络模型

网络协议通常按照一组分层的结构进行描述。对于互联网,最底层(称为链路层)最接近于硬件,而最高层(称为应用层)最接近于作为用户的人类。中间两 层的关键协议是位于传输层的 TCP 协议(传输控制协议)和位于其下的网络层的 IP协议(互联网协议)。通常将这两个协议一起称为 TCP/IP 协议。同样重要但较少被人知悉的协议是与 TCP 协议位于同一层的 UDP 协议(用户数据报协议)。许多基于 TCP 协议的服务(不是全部)同时可以通过 UDP 协议访问,而某些服务只能通过 UDP 协议访问。

称为应用层的最上层,包含 DNS 协议(用于域名)、FTP 协议(文件传输)、HTTP(网页)、IRC 协议(聊天)、NNTP 协议(Usenet)、POP3 协议(查收电子邮件)、SIP 协议(IP 语音)和 SSH 协议(加密通信)。 IANA(网络分配号码机构)为每一个应用服务的分配端口编号,如端口 53 用于 DNS 查询、80 用于 HTTP、110 用于 POP3(Post Office Protocol 3:邮局协议第三版)。为了方便,这些端口编号的分配是缺省的,如何使用端口通常不属于协议中规定的技术性要求;事实上,无论任何类型的数据都可以通过任 一端口进行传输。对于 UDP 协议,也使用同样的方式,对一些端口进行缺省分配。在某些情况下(但不是全部),某种服务可以使用 TCP 或 UDP 通过同一端口进行访问。其中一个例外是 NTP(网络时间协议),它只能通过 UDP 协议提供。另外,UDP 通常用于实时多媒体应用,如 VoIP(语音通信协议),有些应用不提供 TCP 访问。

通常用户不必关心端口的分配,它可按照缺省方式自动完成。但是否使用标准端口并不是硬性规定。在服务提供者和用户之间进行预先安排之后,系统管理员 可以通过对服务器进行设置,使用户可以通过非标准端口访问标准服务。对于意在阻止用户使用这些服务的端口封锁,利用这种方法,软件就能够绕过这种简单的封 锁。

对某些软件进行配置之后,就可以使用非标准的端口。对于 URL(网址),可使用一种非常方便的标准方式,在 URL 内部指定端口。例如,网址 http://www.example.com:8000/foo/ 将通过端口 8000 请求 HTTP 方式访问 example.com,而不是缺省的 http 端口 80。

高级过滤技术

【节选自《Access Denied》,第三章,作者 Steven J. Murdoch 和 Ross Anderson】

部署过滤机制的目的随部署组织的动机的变化而变化。对于用户想要浏览的某一网站,他们可能使它无法访问,或无法提供稳定的服务,甚至直接阻止用户试 图访问该网站的意图。另外,过滤方式的选择还取决于要求过滤的机构的能力――他们在何处具有访问权限、实施过滤的对象人群以及相应的预算费用。还存在其他 因素,如允许的错误数量、过滤是否公开以及可靠性(对象包括普通用户和想要绕行过滤的用户)。

在本章节中,我们将讲述如何通过通过建立封锁资源列表封锁某些特定内容。在部署的系统中,这份列表的构建具有相当难度,通常也是弱点所在。网站的数 量之多已经使制作一份全面而完整的内容封锁列表变得困难,同时,内容在变化,而且网站可更改 IP 地址,这份列表如要保持与这些变化同步,并非易事。而且,如果网站运营者想要突破这种封锁,网站的变化将比通常情况更快。

TCP/IP 头部过滤

IP 数据包包含一个头部,其后为数据包携带的数据(传输的信息)。路由器必须检查这个数据包头部,因为它包括目标 IP 地址的信息。为了阻止访问目标主机,通过配置,路由器能够将指向黑名单中 IP 地址的数据包丢弃。然而,每个主机可提供多种服务,如同时提供网站服务并作为电子邮件服务器。仅根据 IP 地址进行封锁的方式将使黑名单主机上的所有服务无法访问。

TCP/IP 头部中还包含端口编号,在黑名单中添加额外的端口信息,可提供更精确的封锁。许多完全不同的网站可能使用同一 IP 地址,以及同一端口 80,这是很常见的。

端口封锁

用户所在的机构,无论是私人企业还是网吧,其网络管理员都可以控制端口的访问,此外,提供互联网连接的 ISP(网络服务提供商)或某些能够访问 ISP 所用连接的组织,如政府审查机构,也可以控制端口访问。除审查之外,还有许多原因可能导致端口被封锁――减少垃圾邮件、控制所用高流量如端对端文件共享等 导致的相关成本。

如果端口被封锁,对于用户,所有使用该端口传输的信息都是不可访问。审查通常会封锁端口 1080、3128 和 8080,因为这些事最常用的代理端口。如果用户面临的正是这种情况,那么将不得不使用那些非常用端口的代理。而这样的代理很难找到。

用户可以利用 Telnet 来测试访问连接中的哪些端口被封锁。只需打开命令行(终端或 DOS 提示输入方式),键入"telnet login.icq.com 5555"或"telnet login.oscar.aol.com 5555",然后按下 Enter(回车键)。其中的数字是想要测试的端口。如果返回一些奇怪的字符,说明连接成功。

telnet_1.png

相反,如果计算机立即报告连接失败、超时或中断、断开或重置,那么说明该端口很可能已被封锁。(请注意,某些端口可能只对于某些特定 IP 地址是封锁的。)

以下为一些最常用的端口:

  • 20 和 21 � FTP(文件传输)
  • 22 - SSH(安全外壳远程访问)
  • 23 � Telnet(非加密式的远程访问)
  • 25 � SMTP(发送电子邮件)
  • 53 � DNS(将计算机名称解析到某个 IP 地址)
  • 80 � HTTP(常规网页浏览,有时也用于某些代理)
  • 110 - POP3(接收电子邮件)
  • 143 � IMAP(发送/接收电子邮件)
  • 443 � SSL(加密式的 HTTPS 连接)
  • 993 � 加密式的 IMAP
  • 995 � 加密式的 POP3
  • 1080 - SOCKS 代理
  • 1194 - OpenVPN
  • 3128 - Squid 代理
  • 3389 � 远程桌面
  • 8080 � 标准的 HTTP 式代理

例如,在某个大学,对于外部连接,可能只能使用端口 22(SSH)、110(POP3)、143(IMAP)、993(加密式 IMAP)、995(加密式 POP3)和 5190(ICQ 即时通讯)。对于以上这种情况,用户需要找到使用这些端口之一的代理服务器或 VPN 服务器,或者说服大学外部的某个朋友或熟人搭建使用这种端口的服务器。在常用端口之外的端口上运行服务器可直接使某些封锁规避技术成为可能。

TCP/IP 内容过滤

TCP/IP 头部过滤方式只能用于根据数据包来源或去处的通信封锁,而不适用于数据包内容封锁。对于包含违禁内容的 IP 地址,如果无法制作一份完整的列表,或者某些 IP 地址包括足够多的非违禁内容,如果封锁与其相关的所有通信,这看起来并不合理,因此,对于审查者来说,TCP/IP 头部过滤存在一些问题。如果让更为精细的控制成为可能,需要检查数据包内容是否包含违禁关键字。由于路由器通常并不检查数据包内容,而只是查看数据包头 部,因此需要额外的设备。对于封锁违禁数据包,常规硬件无法做到快速反应,因此想要封锁这类信息,必须使用其他方法。由于数据包大小存在最大值,通信的完 整内容常常需要分割为多个数据包。因此,即使违禁数据包能够通过,封锁其他相关联的数据包还是能够中断通信。可通过直接封锁数据包使通信中断,或者向通信 的双方发送信息,请求中断会话。数据包大小上限的另一个影响是关键字可能被分割在不同的数据包中。因此,对每个数据包进行单独检查的设备可能无法识别违禁 关键字。为了对数据包进行有效检查,必须重组数据流,而这会让问题变得更加复杂。作为替代方案,可以使用下述的 HTTP 代理过滤方式。

DNS 干预

大多数的互联网通信使用的是域名而不是 IP 地址,尤其对于网页浏览。因此,如果能够在域名解析阶段进行过滤,就可能有效地封锁对违禁网站的访问。对于这种策略,用户访问的 DNS 服务器将包含一个禁止解析的域名列表。如果计算机请求某个这类域名对应的 IP 地址,将显示错误信息(或者没有任何回复)。没有收到 IP 地址,发出请求的计算机无法进行下一步操作,然后就会显示错误信息。

请注意,在这个阶段进行封锁,用户尚未请求查看网页,这正是为什么某个域名下的所有网页都被封锁的原因。

HTTP 代理过滤

网络配置还有一种方式,不允许用户直接访问网站,而是强制(或只是支持)所有用户通过代理服务器访问这些站点。除了转达请求,代理服务器还可能在缓 存中临时存储网页。这种方式的优势在于,如果同一 ISP 的其他用户请求同一个页面,可以从缓存中直接返回页面,而无需再次连接到真正的 Web 服务器。从用户的观点来看,因为无需对他们的 ISP 之外的服务器进行请求连接,页面显示更快,这是一种更好的方式。对于 ISP,这也是一种更好的方式,因为连接 Web 服务器占用带宽,并且无需成百上千次传输来自高流量网站的页面,他们只需这样做一次就足够了。

但是,除了提高性能的原因之外,HTTP 代理还是会封锁某些网站。代理决定是否许可网页请求,如果请求通过,代理就向为请求内容提供主机服务的 Web 服务器发送请求。由于可获得请求的所有内容,可根据页面名称以及页面的实际内容,对某个单独的网页进行过滤。

TCP/IP 和 HTTP 代理的混合方式

使用 HTTP 代理拦截的请求必须从原始数据包进行重组,解码,然后再次发送,为了保持快速的互联网连接,所需的硬件非常昂贵。因此,出现了一种成本较低的系统,它同样 可以发挥 HTTP 代理过滤方式的优势。针对提供违禁内容的网站,制作一份包含相应 IP 地址的黑名单。不是封锁所有流向这些服务器的数据,而是将这数据流转向 HTTP 代理进行过滤。在这里,对所有网页地址进行检查,如果它包含违禁内容,就将其封锁,或者按照正常方式通过请求。

Denial of Service(拒绝服务)

如果部署过滤的组织没有权利(或无法访问网络基础设备)实施常规的封锁,可通过令服务器或网络连接过载的方式使网站服务访问。这种技术,称为 DoS(拒绝服务)攻击,可通过一台具有快速网络连接能力的计算机进行实施;更为常用的是,利用数量更多的计算机实施分布式 DoS(DDoS)攻击。

域名注销

在前文中,我们已经提到,网页请求的第一阶段是联系本地 DNS 服务器,查找目标网址的 IP 地址。保存所有已存在的域名是不可行的,因此使用一种名为递归解析器来存储指向其他 DNS 服务器的指针,而这些 DNS 服务器更可能提供所需的答案。递归解析器将遍历每个 DNS 服务器,直到发现能够返回请求答案的"可信的"服务器。

域名系统是按照等级方式进行组织的,最上层为域名中的国家域,如".uk"和".de",以及非地理位置的顶级域名如".org"和".com"。 负责这类域名的服务器将子域名(如 example.com)的解析授权给其他 DNS 服务器,而后者对这些域名的请求进行解析。因此,如果负责等级域名的 DNS 服务器将某个域名注销,递归解析器将无法找到 IP 地址,并为用户提供该网站的访问服务。

国家类的顶级域名通常由相应国家的政府或由其指定的机构进行管理。因此,如果网站使用某个国家的域名,而对于这个国家,该网站提供的内容违禁,那么它将面临域名被注销的危险。

关闭服务器

为内容提供主机服务的服务器必须存放在某个地点,以便管理员进行管理。对于这些服务器的存放地点,如果反对这些网站内容的人员具有法律或非法律的控制权,那么他们可以断掉这些服务器的连接或要求管理员关掉它。

监视

上述对违禁内容的封锁机制使用的是未成熟的技术,并且存在规避的可能。还有一种方式,可能与过滤同时使用,即对访问的网站进行监视。如果用户访问(或试图访问)违禁内容,那么将采取实施法律(或非法律)措施进行惩罚。
如果真相已在很多网站公布,它将阻止人们试图访问这些被禁内容,即使那些封锁的技术本身并不能真正能够防止人们获得这些信息。

加密

相对于其他方式,加密是一种针对监视的技术性防御,它利用高深的数学技术对数据重新编码,使窃听者无法理解这种通信。加密还能够防止网络监管者对通信进行修改,或者至少可探测到这种修改。

对于利用现代密码学的加密通信,想要通过技术方式破解是极度困难的;大量可用的加密软件为防止窃听提供了强大的隐私保护措施。但另一方面,如果用户 无法或没有按照相应的流程进行加密,一些方式能够绕过加密,其中包括目标式恶意软件,或者通过密钥管理或密钥交换。例如,加密程序通常需要一种方法来确认 网络连接另一端的用户或计算机身份,否则,通信将易受到中间人攻击,窃听者冒充某人的通信对象,以此截获私密通信数据。对于这种身份验证,不同的软件采用 了不同的方式,但忽略或跳过这个验证步骤将使用户的加密通信对于监视变得更加脆弱。

另一种监视技术是通信分析,它利用对通信进行分析,推测通信的内容、来源、目的地或意义,即使窃听者无法理解通信的内容。通信分析是一种非常强大的 技术,并且对其进行防御也非常困难。通信分析有助于确认匿名方的身份,对于匿名系统,这种技术尤其需要留意。类似 Tor 之类的先进的匿名系统采用了一些方法,可以降低通信分析的效率,但可能仍然易受攻击,这取决于窃听者的能力。

社会化技术

社会化技术通常用于阻碍用户访问不当内容。例如,在一个家庭里,将个人电脑放在起居室而不是有更多隐私的房间,这样所有人都可以看到电脑显示器;阻 碍孩子访问不当网站,这是一种低调而隐蔽的方式。在图书馆中,对电脑进行精心的摆放,以使图书馆官员在办公桌处就可以清楚地看到电脑屏幕。网吧安装闭路电 视监控(CCTV)摄像头。当地法律可能要求安装这种摄像头,并且还要求提供用户提供政府颁发的带有照片的身份证。存在一系列的控制方式,某些方式可能是 合理的,而有些可能令人厌恶。

没有评论: