Tor 安全,适用于安卓和桌面 Linux
美国的互联网服务提供商刚刚被开了绿灯,可以通过 S J Res 34 出售其用户的使用历史,这为私人用户数据公开化打开了大门。该法律似乎指示 ISP 提供“退出”机制,让用户保留对其使用历史的隐私控制权,每个用户都应该完成此操作。
这正值特朗普新总统执政的有趣时期,因为他似乎正在准备司法部起诉苏珊·赖斯,理由是她在奥巴马政府担任国家安全顾问期间访问了他的助手的电话记录。具有讽刺意味且令人无法接受的是,特朗普总统选择侵蚀其选民的互联网使用隐私,同时却极力捍卫那些与他最亲近的人的电话记录。
Tor 项目 提出了一种有效的对策,以应对充满敌意且虚伪的运营商和 ISP。在适当 root 且功能强大的安卓设备或 Linux 系统上,这种对策可以强制所有网络流量通过 Tor 加密入口点(网桥节点),并使用 iptables 的自定义规则。此操作使所有设备网络活动对上游运营商不透明——除非进行特殊干预,否则之后的所有用户跟踪努力都将是徒劳的。
安卓版 Orbot对于 Tor 的最高级别服务,root 过的安卓设备是必需的,并且对于非常重视隐私的用户来说,现在是“必备品”。安卓原生设备(root 权限由原始设备制造商 [OEM] 和/或运营商控制)能够与了解本地 Tor 客户端的应用程序一起使用网络,但完全 root 控制 User ID 零是完全混淆设备网络流量的先决条件。运营商和 OEM 非常努力地锁定设备并阻止用户 root,但它们在应用安全更新方面也很懒惰,因此,一个蓬勃发展的行业已经出现,安卓用户通过利用安全漏洞来获取特权访问权限。一些相关的 root 资源包括 Sunshine、KingRoot 和 KingoRoot。根据硬件型号,这些程序可能有效地使安卓系统摆脱束缚。关于这些工具和方法的研究最好在 XDA Developers 的论坛中进行。
并非所有 root 过的设备都能够使用 Tor 的全部服务。特别值得注意的是三星 Galaxy S7,它似乎无法运行标准的 Orbot 客户端,即使在 root 后,也只能使用网络的基本模式以及更新的 alpha 版本。如果您的设备受到如此限制,那么可能是时候考虑降级了。
请注意,Android Pay 和 Samsung Pay 明确地在 root 过的设备上无法使用。使用 Tor 时,网络性能会明显下降。当通过 Tor 运行时,谷歌网页也会不断弹出“验证码”,从而阻碍访问。鉴于当前的事件,这些限制现在只是很小的代价。
安卓上的正确 Tor 安装包括 Orbot 和 Orfox,这两者都是 Guardian Project 的产品。Orbot 是 Tor 客户端控制代理,它可以为 Tor 感知应用程序提供本地代理,或者在获得 root 访问权限后,强制所有流量进入 Tor 入口点(网桥节点)。Orfox 是 Firefox 网络浏览器的自定义版本,具有多个附加组件和自定义隐私设置。Tor 项目建议 不应修改 Orfox,无论是添加或删除附加组件还是修改与隐私相关的设置——对于此活动,请加载经典 Firefox。
在任何安卓设备(无论是否 root)上加载 Tor 软件的最佳方法是通过 F-Droid 仓库,该仓库仅接受源代码形式的贡献,并为其二进制仓库自行生成软件包。Orbot 也在 Google Play 上可用,但 F-Droid 来源更值得信赖。F-Droid 将为其安装的应用程序提供升级警报,这对于 Orbot 和 Orfox 来说都是一项有价值的功能。
要加载 F-Droid,首先启用第三方应用程序安装(设置→安全→[启用] 未知来源),然后 下载 F-Droid 并安装它,然后打开。点击右上角的设置,并配置仓库。

启用 Guardian Project 的条目。如果需要,可以全部启用。点击圆形重新加载,并允许 F-Droid 几分钟时间重新同步。

搜索“tor”,并在列表中找到 Orbot 和 Orfox(按字母顺序排列)。请注意,“Orweb”由于安全问题而不推荐使用且已弃用。选择 Orbot。

下面是 Orbot 详细信息屏幕。安装它。

下面是 Orfox 详细信息屏幕。安装它。

启动 Orbot。点击右上角第二个图标(带有圆点的条形图)。

如果您已 root 您的设备,请选择请求 root 访问权限的选项。

如果您能够授权访问,请授权。

启用透明代理,并通过 Tor 运行所有内容。可能需要退出并重新进入设置。

使用国家代码来限制您的 Tor 出口节点。如果您愿意,也可以对您的入口(网桥)节点执行相同的操作。

请注意,还有一个菜单可以选择通过 Tor 运行的特定应用程序。流媒体服务或其他高带宽应用程序将减慢所有人的 Tor 速度——如果可以,请排除它们,并且它们不是隐私问题。

返回主控制界面,长按中心按钮以激活 Tor。

一旦 Tor 激活,运行浏览器检查。请注意,您已加载了新的浏览器,并且可能会看到可用浏览器的对话框。如果您不选择 Orfox,您将连接到指纹/JavaScript 警告(“似乎不是 Tor 浏览器”)。

浏览器检查完成后,检查 Tor 控制台。当我讨论网络理论时,这将提供一些参考。

Tor 的设计目的是被拥有大量资源的敌对势力渗透。理解这一点至关重要,并且是安全使用网络的前提。请勿使用 Tor 连接到托管敏感内容的明文服务。 如果您使用 Tor 进行明文 pop、imap、ftp、telnet、smb 或 http,请注意您的流量很可能被敌对代理记录,并且您的凭据(密码)很可能被损害您利益的各方使用,正如研究员 Chloe 在蜜罐试验中所证实的那样。Tor 的设计理念是不信任几乎任何事物和任何人——您也必须这样做才能安全地使用它。
如果您对密码学不感兴趣,请跳过此段落。Tor 通信以“ed25519 握手”开始,该握手基于著名的密码学家 Daniel J. Bernstein 和他的著名素数 (2255 – 19)。对称交换似乎使用 AES-CTR,但 AES-CCM 和 chacha20-poly1305 已在最近的发行说明中浮出水面。尽管 Tor 网络在其时代具有惊人的前瞻性,但 sha1 仍被选择用于许多 MAC 功能,但补救工作正在顺利进行中。
现在,使用图形辅助工具(以及我们的老朋友 Alice 和 Bob)进行演示将很有用,这仅仅是恳求更详细的说明。

署名:电子前沿基金会,我进行了细微修改。(https://www.torproject.org/about/overview.html.en) [CC BY 3.0 (http://creativecommons.org/licenses/by/3.0)],通过 Wikimedia Commons
上面的服务器的第一列被称为网桥节点(在其他地方也被不同地称为入口点或入口节点)。它们是直接与 Alice 通信的服务器,并且应该是链中唯一对她的任何详细信息有所了解的服务器。
服务器的第二列被称为中继节点——Orbot 配置菜单中有一个条目可以成为中继节点。如果您具有到互联网的硬连接和额外的带宽,我们鼓励您这样做。表现出高且可靠的网络带宽的中继节点将通过共识投票晋升为网桥节点,我稍后将对此进行讨论。
服务器的第三列被称为出口节点。从 Tor 出现的未加密流量将显示来自出口节点。这包括恶意攻击、骚扰以及各种非法和不道德的活动。一些出口节点运营商是利他的个人和团体,他们不惜一切代价重视隐私。另一些则是敌对行为者。出口节点通常涉及法律诉讼,Tor 将为出口节点运营商提供 免责服务,并在其他方面尽一切努力在法律上协助那些被传唤到法官面前的人。
在 Alice 的计算机上运行的 Tor 软件将在每一列的系统中构建一个电路。该电路将至少涉及三个独立的服务器。凭借 ed25519 密钥,Alice 将能够向其电路中的每个单独服务器发送秘密消息。Alice 将向中继节点发送一条秘密消息,其中包含出口节点的身份,这样做她将阻止网桥节点了解她的流量将从哪里退出 Tor。Alice 将向出口节点发送一条秘密消息,其中包含她的 AES 流量的会话密码,这样做她将阻止网桥节点和中继节点看到她的加密网络数据。电路会不断断开和重建,以最大限度地提高隐私。当流量在电路中移动时,这种逐步删除/添加加密的过程通常称为 洋葱路由。
图形辅助工具中未显示的是 目录授权节点,它们类似于 DNS 根服务器。DA 节点在多个国家/地区运行,Tor 的构建目的是在十个目录授权节点中最多有四个落入敌对势力之手的情况下仍然能够生存。请注意,美国似乎托管了四个 DA 节点。DA 节点每小时进行一次投票,然后发布一个共识,以晋升/降级网桥节点,并为许多其他 Tor 活动设置策略。
有意从图形辅助工具中隐藏的是 桥接节点。这些是“未发布”的网桥节点,由自动请求提供给运营商、ISP 和其他阻止到已发布网桥节点的流量以禁止访问 Tor 的力量下的用户。有许多程序可以请求访问桥接节点。任何提出此类请求的人都应在使用公共/匿名网络进行 Tor 访问时格外谨慎,以避免被发现和惩罚。
***注意:下面的 URL (http://3g2upl4pq6kufc4m.onion/) 无法工作。已于 4 月 11 日通过电子邮件发送给 Charles。图形辅助工具中也未显示的是 隐藏服务,它们非正式地被称为“暗网”。这些服务仅在 Tor 网络中可见。涉及隐藏服务的 Tor 电路永远不会到达出口节点。例如,Duck Duck Go 搜索引擎作为 Tor 隐藏服务运行,网址为 http://3g2upl4pq6kufc4m.onion——任何以 .onion 后缀结尾的内容都是 Tor 隐藏服务,在开放互联网上不可见。流行的隐藏服务的简短列表可以在 https://thehiddenwiki.org 中找到。Tor 的设计目的是防止用户了解隐藏服务提供商的身份或位置。网桥节点没有获得直接信息表明用户正在寻求访问隐藏服务而不是出口节点,但它们可以进行流量分析来大致确定这一点。
在了解了 Tor 的这些词汇之后,现在我将讨论具体的安全问题
网桥节点通过已建立的电路在短时间内与您通信。您不能信任它们,并且您必须假设它们最终会扫描您的计算机端口并尝试入侵,因此请尽可能保持您的安全补丁处于最新状态。网桥节点也可以自由地分析您的流量,以大致识别您在做什么。
出口节点删除了 Tor 加密的最后一层,并且可以自由地分析和记录您的所有流量。再次强调,请勿使用 Tor 连接到托管敏感内容的明文服务。 恶意出口节点在研究员 Chloe 的蜜罐试验中被抓获窃取和使用密码。
bittorrent 协议在 Tor 上是不安全且不推荐使用的。
JavaScript 在 Tor 浏览器中被禁用。如果您启用它,或者使用启用了它的其他浏览器,您的匿名性可能会被破坏。如果您的唯一目标是阻止您的运营商或 ISP 跟踪数据,这可能是一个合理的牺牲。
Tor 浏览器是唯一经过审查且高度保证的程序,可以与 Tor 一起使用,它不会在流量离开出口节点时无意中泄露您的 IP 地址或其他私人数据。如果您将其他程序与 Tor 一起使用,这种信心就会降低。Tor 能够以同样的能力对您的运营商或 ISP 隐藏大多数程序的活动——关注点是从出口节点到目的地的路径。
保持您的系统安全补丁处于最新状态非常重要。据已知,FBI 会利用不使用 Tor 的用户。它已查封隐藏服务背后的机器,并安装了其“Operation Torpedo”恶意软件,以破坏 Tor 的匿名性。NSA 已使用零日漏洞和内部 Tor 节点来实现这些目的。
再次强调,Tor 的设计理念是不信任几乎任何事物和任何人——您也必须这样做才能安全地使用它。
桌面 Linux 版 Tor桌面 Linux 上 Tor 的简单答案是使用 Tails,这是一种定制的 Debian 衍生发行版,它强制所有流量进入 Tor 网桥节点。请参考 Kyle Rankin 之前在Linux Journal上发表的关于 Tails 的文章Tails 比其他系统更胜一筹:安装。以前版本的 Tails 存在严重缺陷,因此保持最新状态非常重要。
鉴于需要在非 Tails 发行版上使用 Tor 功能,让我研究一下在 Oracle Linux 7(类似于 CentOS/Red Hat/Scientific Linux)上安装 Tor 组件。
预配置的 Tor 浏览器和代理可从项目网站获得。Tor 浏览器软件包是在(非 TAILS)Linux 客户端上使用 Tor 的最安全方式。下载软件包,将其移动到您的桌面,然后解压缩
$ tar xvJf tor-browser-linux64-6.5.1_en-US.tar.xz
...
$ head tor-browser_en-US/start-tor-browser.desktop
#!/usr/bin/env ./Browser/execdesktop
#
# This file is a self-modifying .desktop file that can be run from the
# shell. It preserves arguments and environment for the start-tor-browser
# script.
#
# Run './start-tor-browser.desktop --help' to display the full set of
# options.
#
# When invoked from the shell, this file must always be in a Tor Browser
# root directory. When run from the file manager or desktop GUI, it is
# relocatable.
使用图形文件管理器导航到 tor-browser_en-US 目录并启动 Tor。将出现一个对话框,询问是否在浏览器启动之前需要桥接节点。
如果您希望使用特定国家代码中的出口节点,请关闭您的 Tor 浏览器并将此设置添加到您的 torrc
$ cd tor-browser_en-US/Browser/TorBrowser/Data/Tor/
$ echo -e "ExitNodes {us}\nStrictNodes 1" >> torrc
重新启动浏览器后,您的出口节点应限制在选定的国家/地区。
当 Tor 浏览器运行时,您将找到两个新进程,./firefox --class Tor Browser
和 Tor 代理
tor-browser_en-US/Browser/TorBrowser/Tor/tor
--defaults-torrc
tor-browser_en-US/Browser/TorBrowser/Data/Tor/torrc-defaults
-f tor-browser_en-US/Browser/TorBrowser/Data/Tor/torrc
DataDirectory tor-browser_en-US/Browser/TorBrowser/Data/Tor
GeoIPFile tor-browser_en-US/Browser/TorBrowser/Data/Tor/geoip
GeoIPv6File tor-browser_en-US/Browser/TorBrowser/Data/Tor/geoip6
HashedControlPassword xxx __OwningControllerProcess 1234
如果您希望作为中继节点加入 Tor 网络,您可能应该加载一个与您的 init 系统接口的 Tor 版本。EPEL 仓库中存在这样的版本。加载 EPEL,然后安装系统版本的 Tor(请注意,此方法不包括 Orfox)
# yum install tor
Loaded plugins: langpacks, ulninfo
Resolving Dependencies
--> Running transaction check
---> Package tor.x86_64 0:0.2.9.10-1.el7 will be installed
--> Processing Dependency: torsocks for: tor-0.2.9.10-1.el7.x86_64
--> Running transaction check
---> Package torsocks.x86_64 0:2.1.0-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================
Package Arch Version Repository Size
=========================================================================
Installing:
tor x86_64 0.2.9.10-1.el7 epel 2.4 M
Installing for dependencies:
torsocks x86_64 2.1.0-1.el7 epel 61 k
Transaction Summary
=========================================================================
Install 1 Package (+1 Dependent package)
Total download size: 2.5 M
Installed size: 11 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): torsocks-2.1.0-1.el7.x86_64.rpm | 61 kB 00:09
(2/2): tor-0.2.9.10-1.el7.x86_64.rpm | 2.4 MB 00:20
-------------------------------------------------------------------------
Total 125 kB/s | 2.5 MB 00:20
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
Installing : torsocks-2.1.0-1.el7.x86_64 1/2
Installing : tor-0.2.9.10-1.el7.x86_64 2/2
Verifying : tor-0.2.9.10-1.el7.x86_64 1/2
Verifying : torsocks-2.1.0-1.el7.x86_64 2/2
Installed:
tor.x86_64 0:0.2.9.10-1.el7
Dependency Installed:
torsocks.x86_64 0:2.1.0-1.el7
Complete!
从这里,您可以按照 FAQ 中概述的配置您的中继策略。
结论Verizon 和 AT&T 已被公民慷慨地授予“公共运营商”地位,但它们现在正在滥用这种特权。虽然他们承认电话记录应该受到隐私保护,但他们辩称,通过相同基础设施的网络流量应该归他们所有。这是应受谴责的。
对于有顾虑的个人来说,唯一的答案是用 Tor 让他们视而不见。这是有代价的——网络性能会降低,暴露于敌对网桥和出口节点的可能性需要更加谨慎,并且必须加载和维护大量软件才能参与 Tor 网络。这是我们必须付出的代价。
我在这里避免讨论非 Linux 系统上的 Tor,因为关于该主题的文档在其他地方存在。一些相关资源包括 Apple iOS 和 Microsoft Windows,但这些现在是次要平台,因为 Linux 已成为互联网上最流行的操作系统。
我们只能希望,首先,有很大一部分用户加载 Tor 客户端,其次,公民在限制授予这些不值得且滥用职权的公司的特权方面发挥更积极的作用。他们必须明确地知道,这一步太过分了。
免责声明:本文中表达的观点是作者的观点,不一定代表 Linux Journal 的观点。