Pages

Friday, 19 May 2017

iOS 上使用 Onion Browser 访问 Tor 网络

从 v.1.6.1 开始 Onion Browser 已经开始支持 obfs4 和 meek 网桥,正如作者所说的:Onion Browser now comes with built-in bridges for the obfs4, meek-amazon, and meek-azure -- same the official Tor Browser Bundle and Orbot. 因此,iOS 在中国的移动环境下已经能够使用 obfs4 网桥了。




Tor Project 官方只为 Android 上的 Orbot 背书,iOS 设备可以使用的只有第三方应用。Appstore 中曾出现过一个叫 「Tor Browser」的恶意应用,当然现在它早已被下架,但从这一点看来,Appstore 对于匿名软件的审查是有漏洞的。因此对于选择 iOS 上的第三方的app要谨慎,尽量使用开源的app,能够让公众自由查看源代码,保证安全透明
少数派的这篇文章只浅显介绍了 Red Onion,限于备案商业网站的关系,这事不能说太细。对于文章并没什么可以多谈的,「黑暗面」、「深网」这些辞汇够扎眼球了。可能自己秉承了一贯的去神秘化 (demystification) 作风,并不认同「黑暗」、「深」这种词语对 Tor 或 i2p 网络的渲染,他们本质上都是排除搜索引擎抓取的加密网络,需要特定浏览器才能访问。让我们产生刻板印象或定势思维的是媒体连篇累牍对于暗网中犯罪的报导或 FBI 用暴力穷举破解犯罪节点。反过来试想下,保守估计今天互联网上有 37% 的流量是色情内容( BBC, 2013 ),但这也没有妨碍它进入我们每个人的生活。利用加密网络犯罪是一方面,但这种先入为主的恐惧不能否决网络用户保护个人隐私选择加密通讯的权利,难道不是么?
对于犯罪连篇累牍的报导某种程度上扭曲了我们对加密网络的看法,『暗网』这种称呼的出现让它蒙上了一层神秘和罪恶感,让人敬而远之,加上 GFW 的配合,早已把它限制在了墙外。我们身边的人只知有个令人毛骨悚然的『黑暗犯罪网络』,至于它是怎么样的,如何访问,登录后怎么 Navigate,知道并体验过的人在中国实在有限。可大家又以好奇和热情围观甚至参与比特币。殊不知比特币与 Tor 之类的加密网络在本质上是一脉相承的,带有 SHA256/512 加密算法生成的 GnuPG 签名。这也是为什么我坚称 Tor 为『加密网络』而拒绝使用『暗网』、『黑暗网络』或『犯罪网络』的原因。
回到少数派推荐的这个 Red Onion,感谢国家防火墙的过滤,除了支持 TCP 转发的代理,我们并不能在 iOS 上直接访问 Tor 网络。对于这个 App,也实在没有理由让人过于放心:它不开源,也不支持 obfs4 网桥。
我自己使用的是 iOS 上唯一开源的第三方 Tor 浏览器 Onion Browser,作者 Mike Tigas 的主页在这里。浏览主页时我们可以看到这段话:
Note: The app is currently unavailable in France due to import regulations on encryption software. The app is unavailable and does not work in China and Iran due to these nations blocking access to the Tor network. The obfsproxy transport tool allows Tor to bypass these methods, but cannot be integrated into Onion Browser due to the limited iOS App "single process" architecture.

 从v.1.6.1开始,Onion Browser 开始支持 obfs4 和 meek网桥。

Onion BrowserRed Onion
是否开源YesNo
是否支持 obfs4 网桥No ( Yes from v.1.6.1 )No
流量TCPTCP
因此我们还是需要能够做 TCP 流量转发的代理。

     1.路由翻墙,支持 Onion Browser 直连,但只限于家庭环境.
  1. 越狱后 Cyida 上的 Shadowsocks + Per-App Plugin,不支持 TCP 流量转发,无法使用,哪怕全局代理也不行。
  2. iOS 上使用 VPN 可以翻墙,只是我个人不喜欢,特征明显的流量就是在告诉运营商的分布式入侵监测系统你正在使用vpn,全国性的VPN大断网不胜枚举,上峰不高兴了就能让运营商掐掉如 Astrill / GoldenFrog 之类的商用vpn服务,当然,这是选择性的,架设在运营商网络上备案企业的 VPN 应该不会受到影响。同时不考虑部署 OpenVPN ,有过大规模被截流的历史,iOS 上使用 OpenVPN 也是够麻烦的。
  3. Skia,由 Qusic 开发的超强大端口转发与代理工具,比 Surge for iOS 更强大。Skia 介绍中这两点说得够明白了:
    • 直接劫持 TCP 连接,代理对于 App 来说是透明的。
    • 配置文件是 JavaScript 脚本,具有非常高的可定制性,几乎可以满足任意复杂的分流需求。
    只要 json 配置正确,本质上就是一个软路由,透明代理下使用 Tor。Skia 最大的问题不是其本身,而是需要越狱
  4. 经过个人试验,Surge for iOS 在普通规则配置无法转发 TCP 流量的,但是有两个办法可以解决:
    • 建立一个新的全局规则 Configuration,设置规则 FINAL,Proxy 把所有流量转发去代理。每次用完再切换回去。
    • 把 Tor 用户和节点活跃的国家加入 GeoIP 规则进行转发,我自己设定了规则包括了美国加拿大和大部分西欧北欧国家。

      • 优点:能在现有自己使用的 Surge 配置上添加规则,不必来回切换
      • 缺点:如果 GeoIP 规则与 domain-suffixdomain-keyword 冲突,会提示「Override」。理论上会更耗电,没有实际量化测试。也可能第一跳节点不在上述我给出的国家内,需要自己再手动添加。

所以,
  • iOS 上唯一推荐的 Tor 应用是开源的 Onion Browser, 开发者 Mike Tigas,Github 主页在这里
  • 有路由翻墙条件的 iOS 下可以直连 Tor。
  • 没有路由转发条件的,使用 Surge for iOS 的两种配置可以在不越狱的情况下使用 Tor。
  • iOS 设备越狱后,Skia 是更优秀的解决方案,多说一句,只在 Cydia BigBoss 上下载与更新 Tweaks,不要去其他的源,毕竟越狱后是裸奔,没了沙盒。越狱后下载 OpenSSHpasswd 把 root / alpine 改了。

No comments:

Post a Comment