如何使用 .onion 地址获取 Tor 隐藏服务 (HS) 的 IP 地址?

信息安全 网络 隐私
2021-08-26 09:19:16

我想找出给定 .onion 地址的 IP 地址。

我是否可以简单地将出口节点(由我控制)分配给我的客户端并监视它以确定出口节点使用的 IP 地址?

  • 如果不是,确定 .onion 的 IP 地址是什么的其他解决方案是什么?

  • 如果这一切都不可能,那又是为什么呢?

1个回答

无法获取 Tor 隐藏服务的 IP 地址。

对于正常的 Tor 电路,客户端知道服务器的 IP,但服务器不知道客户端的 IP。

隐藏服务背后的想法是,当客户端和服务器都启用 Tor 时,可以在两个方向上构建 Tor 电路并隐藏客户端和服务器 IP(通过使用中间节点)。

协议

设置

  • 隐藏服务选择 N 个引入点,为每个引入点构建一个 Tor 电路,并传递其公钥
  • 隐藏服务公布这些介绍点及其公钥

连接

  • 客户端选择一个全新的中继,称为“集合点”,为其构建一个 Tor 电路,并告诉它一个新生成的一次性秘密
  • 客户端通过 Tor 电路联系一个广告的介绍点,并告诉它集合点的 IP 和一次性秘密,由隐藏服务的公钥加密
  • 引入点通过现有的 Tor 电路将这个加密的会合点和一次性秘密中继到隐藏服务
  • 隐藏服务解密这些数据,建立一个到集合点的 Tor 电路,并告诉它一次性秘密
  • 集合点现在在这两个 Tor 电路之间传递信息

信息

这是每个参与者在此过程后知道的 IP:

  • 隐藏服务知道其引入点的IP
  • 客户端知道隐藏服务的引入点的IP
  • 客户端知道集合点的 IP
  • 隐藏服务知道集合点的IP

本质上,Tor 电路绝不会直接构建到隐藏服务,隐藏服务总是向外构建其电路。因此,它的IP从未被透露。

参考:协议的高级描述可以在Tor: Hidden Service Protocol中找到,而更详细的描述可以在原始设计论文Tor: The Second-Generation Onion Router中找到。