尝试了解 Tor 及其与 SSL 的关系

Attempting to understand Tor and it's relation to SSL

我是一名试图理解 Tor 的数学专业学生。我对网络及其功能知之甚少。

到目前为止,我了解了 Tor 的基本功能。首先从共识列表中生成一条路由,然后通过该路由发送数据包(消息)。使用从共识列表中获得的 public 密钥对数据包进行多次加密,并且每个中继在将其发送到下一个中​​继之前剥离一层加密(附带问题:这如何与桥接中继一起工作?是消息首先发送到网桥中继然后进入 public Tor 网络,还是仅通过网桥中继传送?)。这意味着目标 IP 和发件人的 IP 永远不会在数据包的同一 header 中,这就是 Tor 相对匿名的原因。

但是我经常注意到在讨论有关 Tor 时会提到 SSL。我知道 SSL 加密客户端和服务器之间发送的数据。但如果是这种情况,我看不出 SSL 与 Tor 有什么关系,因为它们似乎在不同的层上运行。

编辑:更具体地说,我正在阅读伊朗和中国当局如何 "Deep Package Inspection"(我假设这意味着他们查看了每个数据包的内容)来寻找 SSL。这是因为默认情况下使用 SSL 加密洋葱数据包中的不同层吗?如果是这样,是否有理由寻找 SSL 足以识别 Tor 连接?

我想您会发现这份文档对 Tor spec 有帮助;特别是第 1 和第 2 节。

您会发现 Tor 可能会使用 SSLv3(特别是 SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA),但更多时候会使用 TLS 与客户端和其他节点进行通信。

客户端使用属于它选择的电路路径的节点的密钥来加密他们的数据,当数据从一个中继传输到另一个中继时,这些密钥会被解包(剥离),但数据本身(以及用于通信的其他协议数据被称为单元) 使用 TLS 或 SSL 从一个节点发送到另一个节点。一些为传输而加密的数据本身也是加密的(例如,客户端通过 Tor 查看网站的 HTTP 请求的内容)。

关于你的深度数据包检测问题,他们不一定能仅仅根据它是 SSL 来确定流量是 Tor 流量。然而,他们可以使用一些额外的信息来做出这样的假设,例如:

  • Source/destination 端口:许多中继将端口 443 用于 Tor 流量,但通常使用 9001,这将是 Tor 流量的重要指标
  • 特定密码(Tor 使用的常用密码)
  • Src/dest IP 地址:所有 Tor 中继 IP 都是已知的,如果他们有一个列表,如果到 Tor IP 的数据包被加密或去 to/from ORPort,他们可以得出关于 Tor 流量的结论
  • 查看 SSL 握手以确定因素(即预先证书)

仅仅看到 SSL/TLS 数据包不足以让他们确定流量是 Tor 流量。

希望对一些人有所帮助。