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

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

本文作者:karmayu、murphyzhang @云鼎实验室

 

……
2018年3月8日,某视频网站800余万用户数据在暗网销售
2018年8月1日,某省1000万学籍数据出现在暗网
2018年8月28日,某酒店集团5亿数据疑似在暗网出售
……

 

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

 

 

暗网是什么

 

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

 

|图片来源网络

 

表网(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 网络的三跳连接之上,杜绝流量监控嗅探到明文数据。下面我们了解一下访问匿名网站的过程。

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

 

Tor 网络节点

 

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

 

 节点介绍

 

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

 

1)入口节点/中间节点

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

 

2)出口节点

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

 

3)网桥

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

 

 节点数据

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

 

 

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

 

 

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

 

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

 

 

 节点详情

 

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

 

(部分节点详细数据)

 

Tor 用户

 

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

 

 

暗网用户分布国家 TOP10。

 

 

其它平行网络
 

前面说过,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

 

(部分图片来源网络)

 

腾讯安全云鼎实验室 关注云主机与云内流量的安全研究和安全运营。利用机器学习与大数据技术实时监控并分析各类风险信息,帮助客户抵御高级可持续攻击;联合腾讯所有安全实验室进行安全漏洞的研究,确保云计算平台整体的安全性。相关能力通过腾讯云开放出来,为用户提供黑客入侵检测和漏洞风险预警等服务,帮助企业解决服务器安全问题。