密码朋克的社会实验(一):开灯看暗网

摘要

前言

本年度最严重的几次数据泄漏,都指向了同一个词——「暗网」。在中文的语境里,这是一个犹如「月黑风高夜」般的词汇,透着诡秘和犯罪的气息。而与「暗网」关系最密切的另一个词,则非「黑客」莫属。「黑」与「暗」的组合,意味着高超的匿名和隐身技巧,令人忍不住想揭开它精巧的面纱。

暗网是什么

要解释暗网,先给整个互联网做一个简单的分层定义,如图:

表网(Surface Web)

通常认为,普通用户或者搜索引擎能直接访问的内容属于表网。表现形式为网页或者 APP 提供的内容。

深网(Deep Web)

指不能被标准搜索引擎检索到的网络数据。通常是存储在各公司或组织的数据库中,需要用专有的接口查询或干脆不对外查询,例如 Google 的后端数据库。深网数据量远大于表层网络,犹如海面和大海的关系。

暗网(Dark Web)

需要通过特殊的加密通道访问的网页或数据。暗网通常具有匿名的特性,既保证访问者的匿名,同时也保证服务提供者的匿名。因此,其中充斥着各种犯罪信息和违法交易(枪支、毒品、色情、暴恐、黑客等)。

暗网有多个不同的实现版本,下文我们说暗网特指「Tor 网络」。

网络上有些说法说暗网远大于表层网络,其实很不严谨,是把深网和暗网混为一谈了,真实的暗网只有一小部分人使用,远小于大众使用的表层网络。

谁创造了暗网

密码朋克

故事要从90年代的一个极小众群体说起——「密码朋克」。这是一个由顶尖数学家、密码学家和程序员组成的群体,他们关注「匿名、自由、隐私」,其中许多人抱着自由主义和无政府主义的理念,并在美国掀起了「加密无政府主义运动」,他们以密码学和互联网为武器,与强权展开直接对抗。

正是这群人,创造了许多加密技术和协议,也奠定了互联网的许多底层技术和通信协议,从加密邮件到 HTTPS,从 RSA 到区块链,等等等等。

国外政府部门

花开两朵,密码朋克们希望保护自己的信息和隐私不被政府获取;而政府同样也有这个需求,甚至更强烈得多,因为他们要保证情报的传输安全,同时要保护情报人员传递信息时无法被网络追踪。因此,1995年,美国海军研究实验室也进行了匿名网络的相关项目研究,这也就是暗网的前身。

2004 年,「Tor 洋葱网络」正式对外发布,意味着普通用户也可以使用匿名网络技术来保证自己的匿名性。也就代表着「暗网」这个概念正式走向公众。为什么叫洋葱网络,因为其中的通信内容被三重加密,像洋葱一样,剥开一层还有一层。

Tor 网络虽然理论上比较安全,但其中的中转节点是由志愿者部署,如果掌握了其中足够的节点,也是有概率进行完整通信追踪的。而且这毕竟是孵化自美国海军的一个项目,是否有一些精心构造的安全缺陷,难以确认。

暗网上的数据泄露

一个能保证访问者和服务提供者都匿名的网络,天生就是法外之地。

因此,各路违法信息交流充斥暗网,尤其是2011年后,由于比特币技术的兴起,暗网终于从「匿名的信息交流」进化到了「匿名的价值交换」阶段,这个颠覆性变革,随着「Silk Road」的建立(丝绸之路:可以理解为基于比特币的暗网淘宝),掀起了违法交易的高潮。当然,大概同时也掀起了 FBI 相关部门的加班高潮。

很巧的是,同样是2011年底,国内发生了一轮标志性的大规模的用户数据泄漏事件,之后各种数据泄漏就成为了每年的常态。早期此类数据交易往往是黑客私下交易,而近年来逐渐被搬到暗网进行交易。为此,腾讯安全云鼎实验室对暗网的主要交易平台进行了监测,并抽取了近几个月针对国内用户的数据泄漏的情况进行了统计。

可以看到,近期泄漏数据,主要以网购/物流/身份证/酒店/社交帐号数据为主。

暗网上的业务

暗网最大的几个市场均在近年被 FBI 捣毁,如 Silk Road、AlphaBay,因此,2017年来暗网黑市有所收敛,并不如前几年火爆。我们统计了目前存在的几大市场商品分类,可以看出,毒品/药物类还是占据了超过50%的份额,海外使用违禁药物的情形非常严峻,其次是数字商品类,并充斥着各种色情、黑客、枪支、护照、假钞等违法内容。

暗网匿名原理

暗网最重要的作用是保证匿名,其匿名性体现在两个方面:

访问普通网站时,网站无法得知访问者 IP 地址。

提供暗网服务时,用户无法得知服务器 IP 地址。

两个能力加起来则保障了暗网用户访问暗网网站时,双方都无法得知对方 IP 地址,且中间节点也无法同时得知双方 IP 地址。

听起来挺科幻的,毕竟我们平时使用的 VPN 等科学上网技术只使用了一层跳板,而 Tor 技术使用了三层跳板。

关于 VPN 的原理,可以参考下图:

VPN 原理图解

下面对暗网匿名原理进行详细解析:

访问普通网站

先来看一个真实访问普通网站的跳转情况:

从上图可以看到,我们使用浏览器访问 google.com,但中间经过了3个节点 IP 地址,分别在匈牙利、西班牙、德国,然后再访问到谷歌的服务器。

Tor 用户针对普通网站访问流程,如下图所示。Tor 网络中的每个节点都是随机选取,且每个节点看到的信息不超过一跳,所以通过网络流量监控嗅探到的 Tor 流量不能同时获取通信两端的 IP 信息;且每一个节点处都是加密形式。这里随机选取的三个节点的功能顺序是:入口节点、中间节点、出口节点;数据流方向为:客户端、入口节点、中间节点、出口节点、WEB 服务器。

Tor 网络有其特有的加密方式–三层密钥加密。三层密钥的建立是在网络请求的初始,当和下一个节点连接时创建一对非对称密钥,三个随机节点共创建了三对密钥并将公钥回传到客户端。数据经客户端三层密钥加密后,进行 Tor 网络的传输,每经过一个节点,便解开一层加密,顺序依次为:入口节点解开第一层加密,中间节点解开第二层加密,出口节点解开第三层加密。通过层层加密让流量监控无法嗅探明文数据。

访问匿名网站

先来看一次真实访问匿名网站的跳转情况:

从上图可以看到,我们通过浏览器尝试访问一个奇怪的域名(uffti3lhacanefgy.onion),但和前面普通网站不一样的是,中间经过了6个节点,其中前3个可见 IP,另外3个命名为 Relay,然后再访问到那个奇怪的域名。

这个访问匿名网站的流程比较复杂,在普通互联网上,当我们知道网站域名时,通过 DNS 协议解析到 IP 地址,然后访问。但 Tor 网络域名是 .onion 为后缀,并不是使用普通的 DNS 方式来解析,而是使用下面的方法。

下面我们结合 torproject.org 网站介绍的洋葱服务协议、业界约定俗成的各个环节的名称、及上面的原理图进行 Tor 访问匿名网站的原理复盘。在原Tor网络上增加了承载暗网网址导航功能的目录数据库(DB),暗网服务器选定的允许与其通信的介绍点(Introduction point),及进行两端数据传输的最终会合点(Rendezvous point)。原理图中的每一步连接,都是建立在 Tor 网络的三跳连接之上,杜绝流量监控嗅探到明文数据。下面我们了解一下访问匿名网站的过程。

Step 1: 暗网服务器连入 Tor 网络,并隐匿IP信息

这一步是通过介绍点来完成,方法是暗网服务器选取若干节点充当介绍点,建立Tor线路;并以介绍点充当影子功能,隐匿IP信息。

Step 2: 暗网服务器通过向目录数据库注册,公示自身的存在

这一步是通过目录数据库来完成,目录数据库收录了各个暗网服务器上传的自身标识(公钥、对应介绍点摘要等),这些标识以自身的私钥签名。暗网服务器的域名(例:uffti3lhacanefgy.onion)由公钥派生。

Step 3: 客户端获取暗网网址对应的标识信息,拿到网址对应的公钥与介绍点

这一步是客户端通过Tor线路访问目录数据库拿到的结果,此外还进行标识的篡改验证。

Step 4: 客户端随机选取节点构建会合点,为后续与暗网服务器传输数据做准备

这一步是会合点的生成,除为选取的会合点创建Tor线路外,同时会合点还会收到一次性「验证信息」,用来校验暗网服务器。

Step 5\6: 客户端通过介绍点,通告暗网服务器会合点的地址和「验证信息」

这一步的核心是让暗网服务器知道会合点的存在,媒介是客户端在目录数据库中获取到的对应暗网网址的介绍点,同时传递了后续用来对接验证的「验证信息」。

Step 7: 暗网服务器通过Tor线路连接会合点,最终与客户端达成数据传输

这一步暗网服务器也通过Tor线路与会合点建立连接,但两端还未达成真正的通信,必须进行「验证信息」的核实,当真正验证成功后,才能达成真正的通路。

经过以上复杂流程,客户端和暗网服务器建立通信成功,形成一个上面截图的六跳连接,并成功保证了双方的匿名性。

Tor 网络节点

从前面可以看到,暗网的匿名性基于其众多的节点,但如果部署足够多的节点,是否就能探测到双方的 IP 地址和通信数据呢?先来看看暗网节点的情况。

节点介绍

暗网节点一共分为以下3类:

入口节点/中间节点

入口节点和中间节点没有本质的差别,通常各IDC 运营商都允许服务器被部署为入口节点和中间节点,新节点上线只能是中间节点,当稳定性和带宽都比较高时,才允许被升级为入口节点。

出口节点

出口节点从技术上看和入口节点一样,但通常IDC 运营商是不允许服务器部署出口节点的,因为如果引发了犯罪行为,由于无法进行往回追踪,会导致运营商背锅。因此,出口节点通常是学术机构、ISP、科研单位、公共图书馆等才会部署。

网桥

由于入口节点是公开的,因此很容易被封锁。为了保证这些地区的人也能访问 Tor 网络,还存在一个秘密的入口列表,称之为网桥节点。这个秘密列表每次只可以查询到3个入口节点,通过一些机制保证不能简单被遍历,以此来对抗封锁。

节点数据

截止当前,目前运行的 Tor 节点数量大概有7500,普通节点大约6500,网桥节点接近1000。

普通节点中,入口节点(Guard)大约2400,出口节点(Exit)大约800多。

从这个数据来看,假设我们在「入中出」三类节点中各有一台机器,能检测到完整数据的概率大约是 1/(3400 * 800 * 3300) = 1/8976000000。大约是九十亿分之一。

其中大多数节点主要分布在欧美国家。

节点详情

完整的公开节点列表可以在以下网址查询到https://torstatus.rueckgr.at/,云厂商可以根据这个列表进行自查。

部分节点详细数据

Tor 用户

全球每天使用 Tor 网络的用户基本稳定在200万人,相对于数十亿的互联网用户,其实非常小量,而其中访问暗网匿名网站的用户更是其中的一小部分。

暗网用户分布国家 TOP10。

国家 用户数 占比
美国 368318 18.08 %
俄罗斯 246790 12.11 %
阿联酋 218387 10.72 %
德国 152382 7.48 %
印度尼西亚 99310 4.87 %
法国 93784 4.60 %
乌克兰 76365 3.75 %
英国 61983 3.04 %
印度 45523 2.23 %
荷兰 43386 2.13 %

其它平行网络

前面说过,Tor 网络只是暗网的一个实现版本,其他的还有 Freenet 和 I2P 网络,但用户量远远低于 Tor,因此仅作了解就好。

近年来由于区块链技术的发展,又出现了一种基于区块链技术的分布式匿名网络,其典型例子是 ZeroNet(零网)。

具体用法可以参见官网,https://zeronet.io,用来搭建自己的网站,不但匿名,甚至无需服务器。

写在最后

技术本身是中立的,尤其是在密码学的领域,一方面保障着整个互联网的安全和信任基础,一方面也包庇了暗网下的种种犯罪。Tor 网络也一样,一方面为大众提供了一种安全的匿名方案,一方面也为非法交易提供了温床。阴阳总是交融地存在,所幸黑色领域终究是少数,如何将黑色领域尽量压缩,道阻且长。

揭开了暗网的面纱,本系列下一篇,将用最科普的方式,继续讲述暗网背后的密码学原理。

参考资料

[1] Tor: Overview

https://www.torproject.org/about/overview.html.en

[2] Tor: Onion Service Protocol

https://www.torproject.org/docs/onion-services

[3] Tor: Relays and bridges

https://metrics.torproject.org/networksize.html

[4] Tor: Relays by relay flag

https://metrics.torproject.org/relayflags.html

目前评论:0 条

发表评论