VPN 保护
在传统的 VPN 设置中,您所有的互联网流量都会 通过 VPN 提供商运营的单一服务器进行隧道传输。以下是这在实际中的具体含义:
- 加密: 您的设备与 VPN 服务器之间的流量均经过加密,可防止本地窃听者(如互联网服务提供商或公共 Wi-Fi 运营商)窥探您的网络活动。
- **匿名化(部分):**您的 IP 地址对外部世界被隐藏,并替换为 VPN 服务器的 IP 地址。
传统 VPN 的漏洞
然而,有一个重大隐患:VPN 服务器本身会成为一个强大的监控点。它会检测到 您的真实 IP 地址 以及您流量的最终目的地。即使连接经过加密,VPN 提供商仍可追踪您访问的每个网站以及访问时间。您实际上是将对互联网服务提供商(ISP)的信任,换成了对 VPN 提供商的信任。
在大多数实际使用场景中(例如网页浏览),VPN 隧道内的数据会在应用层通过 HTTPS 进行加密。这意味着,虽然 VPN 提供商可以看到您正在连接到哪个服务器(例如,通过 DNS 或 TLS 元数据获取的 IP 地址甚至域名),但它无法读取您通信的实际内容,例如您浏览的网页或在表单中提交的数据。尽管如此,服务提供商仍能查看连接元数据,例如目标 IP 地址、域名(在某些情况下)、流量大小和时间信息,这些信息仍可用于分析用户活动。
为什么需要两个步骤?输入多跳 VPN
为缓解这一中心化问题,2-hop VPN(通常称为去中心化 VPN(dVPN))会通过两个独立的服务器路由流量:一个入口节点和一个出口节点。其核心理念是,任何单个服务器都不应能够将您的身份与您的活动联系起来:
- 入口节点(或网关)可以看到您的 IP 地址,但无法看到您网络流量在 Web 上的最终目的地
- 出口节点可以看到最终目的地的 IP 地址,但不知道您是谁。
如果这两个节点由独立且互不勾结的实体运行,这种分拆信任模型将显著提高隐私性。但这可是个很大的“如果”。例如,如果一家公司或实体同时运营入口服务器和出口服务器,他们就可以关联并重建您整个活动的轨迹。这又让我们回到了上文提到的集中式信任的根本问题。
WireGuard:设计两跳 VPN 的四种方法
让我们来探索如何使用 WireGuard 构建一个两跳 VPN。WireGuard 是一种快速、现代的 VPN 协议,以其简单易用和卓越性能而著称。每种方法对隐私的影响各不相同。
1. 通往出口节点的单一 WireGuard 隧道
它的工作方式
客户端会直接与出口节点建立 WireGuard 隧道。入口节点仅转发隧道加密的数据包,而不执行任何加密或解密操作。客户端到入口节点的连接可以使用任何传输协议,例如 QUIC、TCP,甚至是一条经过混淆处理的隧道,具体取决于系统支持的情况。
隐私影响
由于入口节点中继的流量是在客户端与出口节点之间的 WireGuard 隧道内加密传输的,因此入口节点无法访问流量内容或目标 IP。由于客户端与出口节点之间没有直接连接,因此出口节点无法获知客户端的 IP 地址。
不过,值得注意的是,客户端与出口节点之间建立的 WireGuard 隧道需要交换公钥。这意味着出口节点知道客户端的公钥,而且由于 WireGuard 密钥默认具有较长的有效期,因此出口节点原则上可以跨多个会话跟踪并关联客户端的活动,即使 IP 地址发生了变化。虽然密钥轮换可以降低这种风险,但 WireGuard 不会自动处理此操作。因此,出口节点可以将客户端的身份与流量的最终目的地关联起来。因此,这种设置可能使对客户的长期画像分析成为可能。
2. 通往入口节点的单条 WireGuard 隧道
它的工作方式
客户端与入口节点建立 WireGuard 隧道,入口节点对流量进行解密,并通过常规通道将其转发至出口节点。入口节点与出口节点之间的连接可以使用任何传输协议,但这不属于与客户端建立的 WireGuard 隧道的一部分。
对隐私的影响
由于 WireGuard 隧道在入口节点终止,因此 入口节点可以看到客户端的 IP 地址和目标目的地。尽管出口节点只能看到来自入口节点的流量,且无法将其与原始客户端关联起来,但入口节点既能获取客户端的身份信息,又能获取目标地址,从而能够将用户身份与其访问目标相关联。如果您的目标是使客户端身份与目的地之间无法建立关联,那么该模型将无法实现这一目标,因为入口节点可以查看对话的两端。因此,从隐私角度来看,这并不比传统的 VPN 更好。
3. 链式 WireGuard 隧道(在入口节点进行重新加密)
它的工作方式
客户端与入口节点建立 WireGuard 隧道。入口节点会解密客户端的流量,然后在新的 WireGuard 隧道内将其重新加密并发送至出口节点。出口节点会解密这个第二个隧道,并将流量转发到最终目的地。
该设计涉及两个独立的 WireGuard 隧道:
- 从客户端到入口节点的请求
- 从入口节点到出口节点的一条路径
客户端仅参与第一个隧道。第二种完全由入口节点和出口节点管理。
对隐私的影响
由于客户端的 WireGuard 隧道在入口节点终止,因此入口节点可以完全查看用户的身份和活动情况。它可以看到客户端的真实 IP 地址以及流量的解密内容,包括目标 IP 和任何未加密的数据。这意味着 入口节点可以在转发流量之前对其进行检查、记录或修改。
另一方面,出口节点则通过一个独立的 WireGuard 隧道接收来自入口节点的流量。它无法获知原始客户端的 IP 地址,但可以看到目标 IP 地址以及任何明文内容。这种方法通过涉及两个节点,在单跳 VPN 的基础上实现了一定的改进,但入口节点仍然能够看到客户端的身份和目的地。只有出口节点被隔离,无法知晓流量的来源。此外,如果没有应用层加密(例如 HTTPS),通信内容也会暴露给两个节点。
4. 嵌套式 WireGuard 隧道(NymVPN 的“隧道中隧道”方案)
它的工作方式
在此设置中,客户端会建立两个嵌套的 WireGuard 隧道:一个通往出口节点的内部隧道,以及一个通往入口节点的外部隧道。首先创建内部隧道并封装实际流量;然后,外部隧道将该内部隧道包裹起来。
流量首先在出口节点进行加密,然后在入口节点再次加密。入口节点仅对外部 WireGuard 隧道进行解密,并将仍处于完全加密状态的内部 WireGuard 隧道转发至出口节点。随后,出口节点会解密内层数据,并将流量转发至最终目的地。
隐私影响
这是 NymVPN 的快速模式 采用的方法,它利用嵌套的 WireGuard 隧道来保持用户与其目的地之间的不可关联性。所以让我们看看它是如何工作的。
由于入口节点仅对外部 WireGuard 隧道进行解密,因此它无法访问流量内容或目标 IP。由于它直接与客户端建立外部隧道,因此知道客户端的 IP 地址,但它只能看到用于出口节点的内部 WireGuard 隧道。它无法检查、修改或了解目标的任何信息。
与此同时,出口节点会解密内部的 WireGuard 隧道,并看到最终目的地的 IP 地址以及已解密的流量。然而,它仅接收来自入口节点的数据包,无法获知客户端的原始 IP 地址或身份。
这种严格的信息分离意味着,任何一个节点都无法单独将源(客户端 IP)与目标(服务器 IP)相关联。入口节点知道用户是谁,但不知道用户要去哪里。出口节点知道流量的去向,但不知道流量来自何处。只要这两个节点独立运行,且不共享日志或元数据,这种设置就能确保用户的身份与其在线活动之间具有很强的不可关联性。即使有一个节点遭到入侵,它也无法凭一己之力完全解除用户的匿名性。
与连接出口节点的单个 WireGuard 隧道情况一样,客户端必须与出口节点交换其公钥。因此,除非客户端定期轮换密钥,否则出口节点可以随着时间的推移,将客户端的 WireGuard 身份与其在线活动关联起来。
然而,在“单隧道至出口”的设置中,如果未使用额外的传输加密,那么能够同时监控客户端与入口节点之间连接以及入口节点与出口节点之间连接的网络观察者,就可以将流量模式相互关联,并可能将客户端与特定的出口节点联系起来。这会削弱数据不可关联性,并增加通过流量分析进行用户画像的风险。
结论:VPN 设计至关重要
“去中心化” 这一术语常被用于 VPN 营销宣传,但真正的隐私保护优势源于系统的架构设计,而非其名称。两跳 VPN 的设置在隐私保护方面可能有显著优势,但仅在以下情况下成立:
- 入口节点和出口节点由独立且互不勾结的各方运营
- 该协议和隧道设计可防止流量检查和关联分析
如果您正在评估 dVPN 解决方案 或考虑部署一个,请记住:去中心化不仅仅意味着拥有更多的节点,更在于以一种让任何单一主体都无法拼凑出您在线生活全貌的方式来分散信任。