链路改变的是由谁打开每条连接。仅仅往列表里再加一个 SOCKS 地址,并不会增加加密。

设想一个自行构建这条链路的客户端:

application → SOCKS A → SOCKS B → website

它先请 A 连接到 B。通过那条流,它随后可以与 B 协商连接网站。如果从客户端到 A 的传输在不加密的情况下承载了这两次协商,那么该链路上能力足够的观察者就能读到客户端发出的建立字节。外层 TCP 目的地并不是观察者唯一可能的证据。

把链路与受保护的应用层交互区分开

HTTPS 可以在 TLS 会话开始后保护网站的应用内容,但它不会回溯加密更早的 SOCKS 建立消息。SOCKS5 的用户名及密码认证同样不是加密传输。

客户端到第一跳之间的加密安排改变了该链路上的可见性。它仍然有一个运营方和另一个持有解密后流的端点。应当描述这条信任边界,而不是声称链路无法追踪。

服务器端配置的父级路由是另一种拓扑。如果 A 在内部选择 B,客户端未必在第一条连接上发送了完整的中转列表。不要声称每条链路都会以同样方式暴露每一跳。

要做有用的隐私评估,应指明观察者、链路、代理协商和 TLS 边界。观察 B 出口的网站与监视客户端首条连接的接入网观察者回答的是不同问题。只数跳数对两者都回答不了。

相关文章