VPN 与端到端加密:谁能读到什么
VPN 保护路由,消息应用保护内容。在假设其中一方能藏住消息之前,先比较出口、中继和接收方。
跟踪一条从手机发到朋友那里的消息,它至少会经过两种不同的保护。VPN 覆盖客户端到网关之间的路由,消息应用覆盖参与者设备之间的内容。两者不能互相替代,真正有用的问题不是哪个更强,而是在每一步谁能读到什么。把这条路径走一遍,各自的角色就清楚了。
两种保护,两个端点
在发送设备上,应用用属于这次会话的密钥加密消息,然后把密文交给操作系统。VPN 若处于启用状态,会把所有符合其策略的流量封装起来,送到网关。数据包从那里经普通互联网到达应用的服务器,再由服务器转发给接收方。只有接收方的设备持有把密文还原成文本的密钥。
这条路径上的中继可以看到消息进出的时间和数量,却读不到内容,而这正是端到端加密本应提供的性质。
VPN 出口能读到什么,不能读到什么
VPN 网关解密的是隧道,不是应用内容。它可以观察到客户端联系了哪个服务器、在什么时候、移动了多少数据,然后把数据包继续转发。这是一组有意义的事实,但比消息正文小得多。对普通 HTTPS 站点来说,TLS 连接终止在网站,所以即使 VPN 读不到,网站仍能读到提交的内容。区别在于每一层在哪里终止,而不在于哪个产品更私密。
把目的地换成端到端加密的服务,中间的中继就失去了内容,而 VPN 仍然能看到连接模式。
密钥属于会话,不属于路由
内容密钥由参与者在彼此之间协商并留在各自设备上;VPN 不参与这次交换。应用常会显示安全号码或密钥指纹,方便双方比对各自持有的内容。这种比对能发现被中间替换的密钥,这很有价值,但比证明“是谁在打字”要窄。确认某个人的身份仍然需要应用之外的渠道,例如通话或当面核对。VPN 的服务器证书检查验证的是完全不同的端点。
不要把已验证的安全号码当作账号归属的证明。它是关于密钥的证据,而不是关于人的证据。
副本、元数据与另一台设备
可读内容存在于两端,所以接下来会发生什么由两端决定。在判断隧道能帮多少忙之前,先列一张副本可能落在哪些地方的简表。
| Point | Can it read the message | Why |
|---|---|---|
| Sending device | Yes | Content exists before encryption |
| VPN gateway | No | Terminates the tunnel, not the app keys |
| App relay | No, by design | Only ciphertext passes through |
| Recipient device | Yes | Holds the conversation keys |
| Cloud backup | Depends on the product | May store plaintext or an encrypted archive |
读一读应用关于备份、关联设备、通知和导出的规则,因为每一项都是单独的副本,处理方式也各不相同。即使内容受到保护,网络仍会暴露时间和流量大小;VPN 改变的是哪个服务商看到本地连接,而不是这些元数据是否存在。从受保护的会话导出的文件只保留其格式所提供的保护,隧道此后对它无能为力。
按它覆盖的对象来选择保护:内容与密钥交给应用,路由与本地网络视野交给 VPN。然后列出两者之外的副本与设备。