Mboatella25/tor-vs-clearnet-traffic-analysis

GitHub: Mboatella25/tor-vs-clearnet-traffic-analysis

使用 Wireshark 对常规浏览与 TOR 网络浏览进行多场景流量元数据对比分析的研究项目,量化评估 TOR 对本地观察者隐藏 DNS、SNI 等暴露信息的能力与局限。

Stars: 0 | Forks: 0

# 流量分析:常规浏览 vs. TOR 网络 本文使用 Wireshark 进行对比分析,探讨常规浏览与通过 TOR 浏览时所暴露的网络元数据,以及 TOR 在面对处于同一网段的观察者时,究竟能在多大程度上隐藏这些元数据。 ![可用的捕获接口](https://static.pigsec.cn/wp-content/uploads/repos/cas/d1/d19e3073bc7b57d342eb7f0a85c119bac032499102d252cb80727381c6b11087.jpg) ## 目标 TOR 通常被视为“匿名”的代名词。本分析从网络流量的角度对这一观点进行测试:使用 Wireshark 捕获首先以常规方式、随后通过 TOR 浏览相同类型内容时的流量,比较在每种情况下哪些信息仍然可见——哪些信息不再可见——从而准确了解 TOR 保护了什么,以及没有保护什么。 ## 方法论 在三个场景下,使用 Wireshark 对活动的网络接口进行捕获: 1. 对 `.com` 网站的**常规浏览**。 2. 通过 TOR 在开放网络(clearnet)上浏览相同类型内容的**TOR 浏览**。 3. 通过 TOR 访问 `.onion` 服务(暗网)的**TOR 浏览**。 在每个场景中分析了:DNS 请求、TLS 会话建立(Client Hello / SNI)、TCP 会话的数量与性质、流量时间分布(I/O Graph)以及协议层级。 ## 场景 1 — 常规浏览 在未经 TOR 加密的流量中,有两个元素可以立即识别出目标: - **明文 DNS 请求**,在任何连接之前解析目标域名。 - **明文 TLS Client Hello 及 SNI**(Server Name Indication)——尽管会话内容是加密的,但在握手阶段的第一个数据包中,所连接的服务器名称是可见的。 路由中的任何中间设备(或任何有权访问同一网段的人),无需解密即可确切看到正在访问哪个域名。 ![明文 DNS 请求和带有 SNI 的 TLS Client Hello 捕获](https://static.pigsec.cn/wp-content/uploads/repos/cas/fe/fe84f5c211808e5b0bba2b0aeb547a1411140a232eb93839cc6b41723a111c41.jpg) TCP 会话视图证实了正常网页浏览的预期模式:直接的客户端-服务器连接,目标服务器被明确标识为远程 IP。 ![常规浏览的 TCP 会话](https://static.pigsec.cn/wp-content/uploads/repos/cas/c9/c9413f8bb7932651b435729abfe915a3690d3d0a5d4ceae16f00ebd7544f6297.jpg) ## 场景 2 — 基于 clearnet 的 TOR 在路由流量通过 TOR 的情况下重复对相同类型目标的捕获,变化立竿见影: - **没有可见的 DNS 请求。** 名称解析发生在 TOR 电路内部,而不是本地网络接口上——本地观察者无法获取目标域名。 - **没有真实目标的 SNI。** 本地接口上唯一可见的 TLS Client Hello 是与电路首个节点(入口节点 / guard)建立连接的握手,而不是与最终服务器的握手。 ![TOR 流量捕获:与前一场景相比没有 DNS 请求](https://static.pigsec.cn/wp-content/uploads/repos/cas/d5/d5da08baf0dbd0fe14d88bbcd6bf40aecdbe69bcbe41bbc714c05289182c1acd.jpg) 与常规场景中的多个直接连接相比,TCP 会话减少到极少数几个目标——即 TOR 电路的节点。 ![使用 TOR 的 TCP 会话:流量集中在电路节点上](https://static.pigsec.cn/wp-content/uploads/repos/cas/b5/b562eb4bfa8a646ff3afeb036dd9b32fc72e7d534518f5f511cef2182d0948c3.jpg) 并排比较清楚地表明了两种场景之间的结构性差异:相同类型的浏览,暴露的元数据却截然不同。 ![直接对比:常规浏览 vs. TOR](https://static.pigsec.cn/wp-content/uploads/repos/cas/be/bef8ce2e3374b967a0488b80acef4ab70dfb9e5223eadc28a6b5245662309031.jpg) ## 场景 3 — .onion 服务 通过 TOR 访问隐藏服务(`.onion`)而不是开放网络中的域名时,与通过 TOR 访问 `.com` 相比,流量和涉及的节点数量显著增加。这与协议的设计是一致的:`.onion` 服务不是通过简单的三节点电路(Guard → Middle → Exit)与客户端通信,而是通过在客户端自身的电路和隐藏服务自身的电路之间协商的**会合点(rendezvous point)**进行通信,这意味着更多的跳数和更多的控制流量。 ![流量对比:通过 TOR 访问 .com 域名 vs. .onion 服务](https://static.pigsec.cn/wp-content/uploads/repos/cas/e8/e8244dab32394bc9f184040d6f9c73f902097d7f510d6dc14adfc91e5ae3279e.jpg) ## 时间模式分析(I/O Graph) 除了可见的 IP 或域名之外,流量的**时间模式**在不同场景下也有所不同。在常规浏览中,I/O Graph 显示的流量突发与页面每个资源(HTML、图像、脚本,每一个都是独立的峰值)的加载直接相关。 ![I/O Graph — 常规浏览中的突发模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/bc/bce1e290ce53b4641dfec6ee55a965f61c6e8071ee0244c0bc2cabc99ae3b471.jpg) 使用 TOR 时,流量在时间上的分布更加均匀——通过电路多路复用数据和分层加密,平滑了在常规流量中会清楚暴露每个资源加载情况的峰值。 ![I/O Graph — TOR 的流量分布](https://static.pigsec.cn/wp-content/uploads/repos/cas/d7/d7d8c80275d82b490724d447d8dd6865175f507e84298fc93381dffd391ebddf.jpg) ## 协议层级 协议层级视图(Protocol Hierarchy Statistics)很好地总结了两个世界之间的区别:在常规捕获中出现了多种应用层协议(包括现代服务越来越常用的 QUIC),而在 TOR 捕获中,几乎所有流量都简化为 **TCP + TLS**——TOR 协议本身将所有其他内容封装在这个唯一的加密层内,不会向本地观察者提供任何关于其中传输的实际协议或服务的线索。 ![协议层级:clearnet(多种协议)vs. TOR(仅 TCP+TLS)](https://static.pigsec.cn/wp-content/uploads/repos/cas/50/500c549c5378d196c969b96f0189b347feec22298e22ce1ef259a99cff0a6bc0.jpg) ## 发现 - 常规浏览以明文形式独立暴露目标域名两次:在 DNS 请求中和在 TLS Client Hello 的 SNI 中。 - TOR 消除了针对位于本地网络上的观察者的这两种泄露:在电路之外,既看不到 DNS 解析,也看不到真实目标的 SNI。 - 由于额外的会合点机制,访问 `.onion` 服务比通过 TOR 访问开放网络会产生更多的流量和更多的中间节点。 - 仅凭协议层级就足以区分 TOR 流量和常规流量,而无需识别已知节点的 IP:几乎完全缺乏可见的应用层协议本身就是一种特征签名。 ## 局限性 — TOR 无法隐藏的内容 本分析仅限于从用户自身设备、在其本地网段上可见的内容。从该位置来看,TOR 兑现了它的承诺:隐藏连接的最终目的地。但这并不是失去匿名的唯一途径: - **入口节点(guard)知道用户的真实 IP**,尽管它不知道目标。控制或胁迫该节点的对手将获得等式的一半。 - **出口节点(exit)能看到目标流量**,尽管它不知道用户的真实 IP。如果该流量在 TOR 之外未加密(例如 HTTP 而不是 HTTPS),则内容会在最后一跳暴露。 - **流量关联攻击**:能够同时观察 TOR 网络输入和输出流量(通过数据量、时序)的对手,理论上可以在无需解密任何内容的情况下关联两端——这是一种统计攻击,而不是密码学攻击。 - **应用层指纹识别**:流量本身固有的模式(数据包大小、突发节奏、加载的资源数量)可能会泄露有关正在访问的网站类型的信息,即使无法具体识别是哪一个。 ## 结论 TOR 不是隐身术;它是重定向和分层加密:它有效消除了常规浏览中最明显的两种元数据泄露(DNS 和 SNI),使其对任何本地观察者都不可见,这在暴露面上已经构成了实质性的差异。但是,更复杂的威胁模型——控制网络节点或能够在全球范围内关联输入和输出流量——超出了本分析(仅限于本地网络接口)所能确认或排除的范围。准确理解这种区别——匿名工具保护的是什么,抵御的是哪种对手——在评估此类工具的实践中,是最重要的问题,而不是简单的“是匿名的”或“不是匿名的”这种二元答案。
标签:底层编程