Total Pageviews

Sunday 1 February 2015

利用TOR BROWSER4.0.3版所提供的meek网桥翻墙

首先下载程序-https://www.torproject.org/dist/torbrowser/4.0.3/torbrowser-install-4.0.3_en-US.exe,然后安装之。我起先在一台旧电脑上,试图运行torbrowser-install-4.0.3_en-US.exe(这是一个自解压程序),显示解压失败。然后我选择解压到我的移动硬盘,仍显示解压失败。然后我用另一台较新的电脑(它的硬盘空间较大)来下载该程序,这次解压成功。不知旧电脑为何不能解压成功,它连接的移动硬盘有200多GB空间,够大了,怎么会解压失败,不明白。(不过有很简单的解决办法:
就是在新电脑上解压后,把解压出来的文件夹用WINRAR打包压缩,然后把该压缩包文件用移动硬盘转移到旧电脑,然后在旧电脑解压,即可使用。)

然后,
Extract and run it, and then configure these settings:
  1. Configure on the first screen.
  2. No to Does this computer need to use a proxy to access the Internet?, unless you know you need to use a proxy.
  3. Yes to Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?
  4. Connect with provided bridges and select meek-amazon, meek-azure, or meek-google from the Transport type box. They all work about the same; you can pick any of them. If one doesn't work, try another. Then click Connect.
4.0-alpha-1 settings screen 0. 4.0-alpha-1 settings screen 1. 4.0-alpha-1 settings screen 2. 4.0-alpha-1 settings screen 3.

 上图选择meek-amazon或meek-azure(不要选择meek-google,因GOOGLE的服务器已被封)
然后点击connect按钮,稍等4,5分钟即可连上tor网络。(等到 TOR BROWSER显示
Congratulations!
This browser is configured to use Tor.
则表明成功连上tor网络)。tor browser已经自动设置好浏览器的socks5代理为127.0.0.1:9150,之后你就可翻墙了。

(图片来自https://trac.torproject.org/projects/tor/wiki/doc/meek)
---------------------------

meek 网桥的技术原理


◇啥是“流量混淆”?


  首先,TOR 网络内部(从“你本机”一直到“出口节点”)的传输是强加密的,别人无法偷窥你的真实网络流量。除非 TOR 软件本身出现严重安全漏洞 或者 你碰到的“出口节点”是蜜罐。
  虽然别人无法偷窥你的真实上网内容,但是如果有人(比如:电信运营商)监控你的流量,可以判断出你在使用 TOR——(请注意:“判断流量类型”不等于“解密内容”)。
  而“流量混淆”的作用就是:把 TOR 流量伪装成其它的上网流量,让监控者看不出你在用 TOR。
  出于软件架构方面的考虑,“流量混淆”的功能不是做到 TOR 的核心软件中,而是通过插件的方式来提供。因为“混淆流量”的方式是多种多样的,用插件来扩展,就无需频繁改动核心模块的代码。

◇普通的“流量混淆插件”,有啥缺点?


  在 meek 之前,TOR 开源社区已经出过好几款流量混淆插件。俺就拿 obfsproxy 来举例——下面是 obfsproxy 的示意图。
不见图 请翻墙
图中的“TOR client”和“obfsproxy client”在你本机,他们要正常工具,就需要先连接到“obfsproxy server”。
  虽然 GFW 无法区分被 obfsproxy 混淆过的流量,但是因为全球的 obfsproxy server 数量是有限的,GFW 可以把所有的“obfsproxy server”都加入“IP 黑名单”。如此一来,就足以让 obfsproxy 失效。

◇“meek 插件”有啥优点?


  meek 插件跟 obfsproxy 插件类似,也是 client/server 架构。meek client 也是跟 TOR client 一起运行在你本机。下面这张是 meek 的示意图(摘自 TOR 官网的文档):

不见图 请翻墙

  从图中可以看出,meek 跟 obfsproxy 的主要差异在于:meek server 并不是直接暴露出来的。换句话说,你本机【不需要】直接连接 meek server,而是直接连接云计算平台的服务器(图中的“Frontend Server”)。
  如此一来,即便 GFW 知道 meek server 的 IP,并且封杀这些 IP,也【没有】意义。而云计算平台的 IP,GFW 又不敢封杀。这就是 meek 插件可以突破 GFW 的关键所在。

  如果你是 IT 技术人员,想更多地了解 meek 的机制,请看 TOR 官网的相关文档(链接在“这里”,是洋文)
----------------------------------------
 如果MEEK被屏蔽了

话说去年英勇的Tor团队开发出了一款突破GFW封锁的神器:MEEK插件,成功让Tor在天朝复活了。

简单来说MEEK插件的原理就是客户端先与云平台(GAE,amazon,Azure)连接,看上去是访问云平台(front domain),实际上是以云平台作为中介访问MEEK server再连接Tor中继形成Tor电路的。这些云平台很多公司都要使用,所以审查者不敢随意封杀。

但如果审查者还就是什么都不管,把云平台给屏蔽了呢?比如说天朝GFW就直接把GAE给完全屏蔽了,直接使得MEEK-google失效。我也看到有些人反映其他两个MEEK插件在有些地方也连不上了,这时候又应该怎么做呢?

屏蔽云平台最常用的方法就是DNS污染了,这时可以试着把本地连接的DNS服务器设置为国外的DNS服务器,具体请看这里[2]。

不过在我大天朝GFW面前,这种方法通常都是不管用的,那就只能想办法把默认的front domain修改为可用的云平台域名了。具体过程如下:

1,用记事本打开extension-overrides.js文件,文件路径为Browser/TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js

2,找到以下内容:meek 0.0.2.0:1 url=https://meek-reflect.appspot.com/ front=www.google.com
meek 0.0.2.0:2 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com
meek 0.0.2.0:3 url=https://az668014.vo.msecnd.net/ front=ajax.aspnetcdn.com
现在解说一下里面各项的含义:meek表示传输名,不能省略也不能改动;后面的0.0.2.0:1可以修改为任何值(除了0.0.0.x之外,因为这是Tor内部默认使用的地址);“url=https://az668014.vo.msecnd.net/ ”是MEEK server的域名,GFW封锁它也没有意义;front=ajax.aspnetcdn.com是云平台的域名(front domain),一旦被GFW封锁,MEEK插件就会失效。

3,那么我们看到让MEEK插件复活的关键就在于要把默认的front domain修改成未被屏蔽的域名。例如在天朝google被屏蔽了,但有一些google服务并没有被屏蔽,例如被各大网站广泛使用的Google Analytics和DoubleClick ads,可以试着把front domain换成对应的front=ssl.google-analytics.com或front=www.doubleclick.net,或者还可以寻找其他的google服务的域名。还有就是hosts修改可用的google IP,或者像goagent一样上传,具体看这里[1]

MEEK-amazon也是类似的修改方法,http://www.alexa.com/siteinfo/cloudfront.net这里有一堆可用的域名,大家可以试试,或者也可以自行寻找属于amazon cloudfront的域名。

MEEK-azure也一样,可以搜索一些属于Azure CDN的子域名,例如front=officeimg.vo.msecnd.net

还有一种方法:直接放弃front domain,把MEEK-server改成自己的,例如自己去申请一个免费的国外PHP空间,然后把url=之后的域名换成自己空间的域名,不过需要支持HTTPS

翻译概括自https://lists.torproject.org/pipermail/tor-talk/2015-January/036410.html

最后附上科普文链接集合:https://plus.google.com/109790703964908675921/posts/TpdEExwyrVj

参考资料:
1,TOR与GFW的PK(1) https://plus.google.com/109790703964908675921/posts/CCS4c7jn3t9

FROM https://plus.google.com/109790703964908675921/posts/26zCmDmjYXP

相关帖子:http://briteming.blogspot.com/2014/10/tor.html