MENU

Tor Hidden Service原理初探

August 28, 2019 • Read: 82 • Tor阅读设置

Tor可以为系统用户提供Hidden Service服务。(就是我们熟知用于暗网,现在官网已经称之为Onion Service)

Tor利用Hidden Service协议中提供的"约会节点"来为除服务提供者之外的其他Tor用户访问被隐藏的服务,而被服务的Tor用户对服务提供者的除提供服务以外的信息一无所知。

(1) Hidden Service随机选取Tor网络中的几个中继结点,请求这些结点作为其介绍结点(Introduction Point),并告知这些结点该HS的公钥。如下图,提供匿名服务的Bob选择建立了IP1、IP2、IP3三条链路(均为完整的Tor链路),并请求他们成为HS的介绍结点。介绍结点判断HS身份的方式只有公钥,完全不知道HS的具体IP信息。

Hidden Services: 1

(2) Bob为其特定的匿名服务生成一个匿名服务描述符(A signed descriptor),该描述符之中包括HS的公钥,介绍结点列表,以及利用服务私钥对该描述符前述部分的签名。匿名服务描述符被上传到分布式哈希表(DHT)以供其他Tor用户查找,如下图,Bob发布的匿名服务描述符的查找索引为"XYZ.onion",其中XYZ为由匿名服务公钥生成而来的服务名,包括16个英文字母。(实际上为HS公钥的截断Hash值)

Hidden Services: 2

(3) 当一个Tor用户想要请求匿名服务时,需要先利用某些途径得到该匿名服务对应的洋葱地址,即前述的"XYZ.onion"。得到洋葱地址之后,该用户通过询问DHT得到匿名服务描述符,若该描述符存在,则通过描述符得知HS的介绍结点列表和所使用的公钥信息。在此期间,Tor用户建立一条链路到一个随机挑选的中继结点,并通过告知该结点一个一次性秘密信息(后面称为One-time secret)来请求其作为该用户的约会结点(rendezvoud point,简称RP)。此处的One-time secret我理解为是和RP通信的一次性密钥。

Hidden Services: 3

(4) 当匿名服务描述符下载完毕、约会结点也成功设置后,请求匿名服务的Tor用户(上图中的Alice)构造一个由HS公钥加密的消息(introduce message)该消息的内容为:RP Information+One-time Secret,该消息通过链路发送至匿名服务的某一个介绍结点(这里同样走Tor circuit),而收到消息的介绍结点则会转发消息给匿名服务提供者(Bob)。

Hidden Services: 4

(5) Bob用自己的私钥解密Alice的introduce message,并获得其中的RP地址及One-time secret。而后Bob建立一条链路到RP,并将One-time secret包装在rendezvous message中发送给RP。

Hidden Services: 5

(6) RP将连接成功的消息告知Alice,在Alice接收到消息之后,其便可以通过RP中继的链路进行类似常规Tor网络通信的正常通信。在整个Hidden Service协议的运行过程中,协议中选用的IP1、IP2、IP3以及RP均无法确切得知通信双方的身份及地理位置。但是结点RP作为通信双方的中间结点,如果身份泄露很可能受到流量分析等攻击手段。

为什么介绍结点不能充当RP使用?
我也很模糊...我觉得HS和IP之间是完整的tor链路,client与RP之间也是完整的tor链路,每个relay都不知道双方的身份,不拿IP当RP我只能理解为带宽问题。

Hidden Services: 6

Last Modified: September 19, 2019
Archives QR Code
QR Code for this page
Tipping QR Code