当前位置:首页 > 短网址资讯 > 正文内容

暗网?No,你落伍了,它是“蜜罐”

www.ft12.com7年前 (2017-07-29)短网址资讯6114

最近发生在美国一个华人绑架事件把“暗网(Darknet或Dark Web)”带入到公众的视野,本文从技术角度分析暗网的工作原理和安全性。

什么是暗网

我们日常使用的互联网(Internet)被称为“明网”,与之对应的借助互联网而形成的“隐藏”的网络被称为“暗网”。所以“暗网”其实是还是属于互联网,只不过它不为我们所知。暗网相对于“明网”最大的特点是——匿名,通过一些技术手段保证通讯双方的匿名性。最著名的匿名技术叫“洋葱路由(Onion routing)”,Tor是基于这种技术实现的一套软件。除此之外还有一个叫“大蒜路由(Garlic routing)”的技术,I2P是基于这种技术实现的一套软件。Tor的用户群更大几乎成了暗网的代名词所以我们主要关注Tor。利用Tor可以实现两种匿名方式

  1. 作为客户端匿名访问某个明网的服务器,此时Tor保护客户端的匿名性,明网的服务器是无法获知躲在暗网的客户端的IP地址。比如一些黑客在入侵的时候会利用Tor隐藏自己的身份。

  2. 作为服务器端在暗网提供服务,此时Tor保护服务器端的匿名性,暗网的客户端可以访问服务器端资源但是不知道服务器端资源的IP地址。 这种服务器一般以.onion这样的域名结尾,比如著名的WannaCry(比特币勒索软件)提供的付款地址就是位于暗网的一台服务器(以.onion域名结尾,和普通域名的结尾不同。FT12短网址的域名结尾是.com)。

Tor链路原理

在讲解Tor原理之前必须先要搞清楚传输层安全协议(Transport Layer Security,TLS)TLS的前身是安全套接层(Secure Sockets Layer,SSL)目的是为了防止数据被窃听、篡改、冒充。TLS的工作原理非常简单,客户端通讯的时候会先向服务器端索要公钥,然后通过公钥加密要发送的数据,服务器端收到数据后利用私钥解密。

Tor有两种主要服务器角色,中继服务器是负责中转数据包的,可以理解为代理;目录服务器保存中继服务器的列表(保存中继服务器地址、公钥)。当客户端访问目标服务器的时候会先通过查询目录服务器获取中继服务器列表(图中红色部分);客户端从中继服务器列表中选择三个延时最低的作为中继服务器并建立链路(Tor称为Circuit),客户端后续的所有请求都通过这条链路到达目标服务器以达到匿名的目的。在整个通讯过程,客户端<->目录服务器,客户端<->中继服务器,中继服务器<->中继服务器,虽然这三次通讯是建立在TLS之上的(图中的红色和蓝色),但是DPI(深度数据包检测)还是能探测到TCP的包头——目标地址、源地址、目标端口、源端口(TLS只会加密TCP、UDP的Data部分,毕竟路由寻址需要依靠IP头部和TCP、UDP头部的)。这里的源地址是用户访问公网的真实地址,一般运营商提供上网服务都会有备案,所以是可以通过这个IP地址追查到具体某个用户的。所以Tor在TLS之上叠加了一层链路,通过这个链路来转发数据已达到匿名的目标。

匿名原理

Tor中相互通讯所采用的数据包叫Cell,它是固定长度的。

CircID是客户端产生的一个随机数,用于区别不同的链路(Circuit),我们可以理解为一个目标服务器代表一条链路;CMD是一个枚举值表示数据包的含义(比如建立链路、关闭链路)。Tor选择3个中继服务器后会先尝试和第一个服务器“握手”(OR1是指第一个中继服务器也叫入口路由,OR2是第二个,OR3是第三个也叫出口路由)

  1. 客户端会生成一对密钥(一个公钥client-publicKey,一个私钥client-privateKey)构建一个Cell,CircID=随机数N,CMD=create,Data=加密(OR1,client-publicKey)。注意Data部分传递的是客户端的的公钥,这个数据会用目标中继服务器的公钥加密。(每台中继服务器都会产生一对密钥,公钥发布到目录服务器上,私钥自己保存)

  2. OR1收到数据包后检查CMD部分发现是create,然后用私钥解开data部分保存client-publicKey。然后生成一对密钥(公钥or1-circuit-publicKey,or1-circuit-privateKey)构建一个返回数据包,CircID=N(客户端产生的),CMD=created,Data=加密(client-publicKey, or1-circuit-publicKey)。Data部分是中继服务器为这次会话(circuit)产生的临时密钥对,通过client的公钥加密。

  3. 客户端收到数据后检查CMD部分是created,用私钥解开data部分保存中继服务器1的临时公钥。接下来客户端要和OR2建立连接,这次连接是通过OR1建立的所以数据包还是发送给OR1的。

  4. 客户端构建“扩展数据包”,CircID=N,CMD=relay,Data部分是OR2的地址信息、公钥信息。当然Data部分用or1-circuit-publicKey加密。

  5. OR1收到数据包,发现是relay,用私钥解开data部分拿到OR2的地址信息和公钥,利用上面的握手过程(和客户端到OR1一样)完成OR1和OR2之间的握手。

  6. 同样的道理OR2也和OR3完成握手

整个握手过程就是链路建立过程,首先是客户端和OR1建立链路然后通过“扩展”指令让OR1<->OR2、OR2<->OR3之间建立链路。链路建立成功后客户端会发送CMD=data的数据包,其中DATA部分是经过三层公钥加密的or1-circuit-publicKey(or2-circuit-publicKey(or3-circuit-publicKey(data))),OR1收到数据包后会解密第一层然后交给OR2,解密第二层以此类推。就像剥洋葱一样,剥了一层又一层,这就是“洋葱路由”名称的来历。通讯过程中看似OR1是知道客户端的公网IP的,其实不然。有两种方法保证了匿名性:1. OR服务器来源于互联网用户自己提供的,客户端使用的时候是随机选择的,所以随机性很大。2. OR1服务器并不知道自己是“入口路由”,它仅仅知道有一个请求需要建立链路,因为客户端的建链过程和OR1到OR2的建链过程是一样的。每个OR服务器仅仅知道建立链路而没有办法判断请求者是实际用户还是其他OR服务器。

Tor安全吗

首先我们要搞清楚Tor的目标不是提供代理服务器而是实现匿名,所以它的设计其实是很脆弱的。攻击它的方式有两种:

  1. 釜底抽薪,Tor属于集中式设计,它正常工作完全依赖于目录服务器。为了防止目录服务器被冒充所有的目录服务器IP地址都被硬编码在客户端一共9个主用的,151个备用的。禁用这些IP地址或者直接干掉这些服务器那么Tor网络就彻底瘫痪了,所谓的“暗网”就永远从世界上消失了(^_^,厉害的我都害怕了)。

  2. 破除匿名,釜底抽薪的方式最彻底但是对于技术流是没有挑战性的,“暗网”是一个鱼龙混杂的地方美帝的FBI、五角大楼之类的机构还指望从上面收集信息呢,如果直接把网络干掉了属于“同归于尽”的做法。破除Tor匿名的唯一办法是加入到Tor之中——成为一台OR服务器,因为Tor会选择延时比较低的OR作为服务器所以对于“美帝”来说他们可以利用网络优势让服务器更容易被选中。

成为OR之后就可以收集数据里,记录每条链路建立的时间,前驱后继,然后再通过在明网收集到客户端访问目录服务器(目录服务器是固定的)的证据就可以“基于时间”判断出他访问了暗网从而破除匿名。更牛逼的是通过“强制”解开数据包还有更大的惊喜——如果解包成功说明这台OR服务器承担了“出口”的角色,出口到目标服务器数据是不经过加密的,据说维基解密的很多资料都是通过这种方式获取的。

总结

Tor的Cell是over在TCP、UDP之上的(作为TCP、UDP的data部分)而TCP、UDP链路是经过TLS保护的所以DPI是识别不了Tor Cell,也就没有办法判断用户是否在访问暗网。通过握手机制建立起来的链路保护了用户访问时的匿名性,即便是中间参与转发数据的代理服务器也没有办法判断谁访问了暗网。当然再狡猾的狐狸也斗不过猎手,Tor的安全性其实没有想想的那么高反而很容易就被攻击。更加要命的是可以轻而易举的彻底摧毁Tor网络,而美帝之所以不这么做是想通过暗网获取更多信息,监控更多的人(好比一个天然的大“蜜罐”系统)。

扫描二维码推送至手机访问。

版权声明:本文由短链接发布,如需转载请注明出处。

本文链接:https://www.ft12.com/article_362.html

标签: 暗网蜜罐
分享给朋友:

相关文章

从代码层面优化系统性能的解决方案

从代码层面优化系统性能的解决方案

我们以前看到的很多架构变迁或者演进方面的文章大多都是针对架构方面的介绍,很少有针对代码级别的性能优化介绍。本文将针对一些代码细节方面的东西进行介绍,欢迎大家吐槽以及提建议。 写在前面 在 上一篇 我们主要介...

智能聊天机器人如何改变客户服务游戏规则?

智能聊天机器人如何改变客户服务游戏规则?

[ FT12短网址 ] 随着当今手机用户的心态、行为和期望变得越来越数字化,客户参与的状态正处于一个转折点,而服务商也逐渐转向智能聊天机器人。但就目前而言,机器人的水平并不能满足客户多样化的需求,那么机器人未来该如何发展呢?图片来...

营销短信中的链接为什么能那么短?

前言FT12短网址的小编发现短信已经被越来越多的人所冷落,只要短信声音一响,下意识里就知道应该是营销短信来了。今天小编给大家介绍一下营销短信中的网址为什么能那么短!http://u6.gg/baidu 当我们打开短网址时,网页会直...

58速运“里程计算”优化与演进

58速运“里程计算”优化与演进

58速运货物运输,滴滴快递网约车,司机端都是按照行驶公里数收费的,所以“里程”的准确性,是这类业务的一个核心难题,“里程计算”方案演进,以及其中优化思想,是本文要讨论的问题 一、直接调用地图API这是最容易想到的方法,最省事,但司...

从短视频说起,浅谈UGC产品的商业价值及设计逻辑

 笔者最近在筹划一款UGC商品的开发,故把这段时间在许多前辈身上学到的知识以及自己的一些思考整理成下文。从最近很火的短视频出发,浅谈平台发展UGC背面的商业价值以及UGC商品的设计逻辑。这里先给出UGC的界说:UGC(User Genera...

IIS7.5优化,支持同时10万个请求

IIS7.5优化,支持同时10万个请求

背景:       由于短网址站的并发量很大,特别是晚上21:00左右,用户访问非常集中,这时候,如何解决高并发成了一个难题,因此才有后面这篇文章。       ...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。