跟踪一条从手机发到朋友那里的消息,它至少会经过两种不同的保护。VPN 覆盖客户端到网关之间的路由,消息应用覆盖参与者设备之间的内容。两者不能互相替代,真正有用的问题不是哪个更强,而是在每一步谁能读到什么。把这条路径走一遍,各自的角色就清楚了。

两种保护,两个端点

在发送设备上,应用用属于这次会话的密钥加密消息,然后把密文交给操作系统。VPN 若处于启用状态,会把所有符合其策略的流量封装起来,送到网关。数据包从那里经普通互联网到达应用的服务器,再由服务器转发给接收方。只有接收方的设备持有把密文还原成文本的密钥。

这条路径上的中继可以看到消息进出的时间和数量,却读不到内容,而这正是端到端加密本应提供的性质。

VPN 出口能读到什么,不能读到什么

VPN 网关解密的是隧道,不是应用内容。它可以观察到客户端联系了哪个服务器、在什么时候、移动了多少数据,然后把数据包继续转发。这是一组有意义的事实,但比消息正文小得多。对普通 HTTPS 站点来说,TLS 连接终止在网站,所以即使 VPN 读不到,网站仍能读到提交的内容。区别在于每一层在哪里终止,而不在于哪个产品更私密。

把目的地换成端到端加密的服务,中间的中继就失去了内容,而 VPN 仍然能看到连接模式。

密钥属于会话,不属于路由

内容密钥由参与者在彼此之间协商并留在各自设备上;VPN 不参与这次交换。应用常会显示安全号码或密钥指纹,方便双方比对各自持有的内容。这种比对能发现被中间替换的密钥,这很有价值,但比证明“是谁在打字”要窄。确认某个人的身份仍然需要应用之外的渠道,例如通话或当面核对。VPN 的服务器证书检查验证的是完全不同的端点。

不要把已验证的安全号码当作账号归属的证明。它是关于密钥的证据,而不是关于人的证据。

副本、元数据与另一台设备

可读内容存在于两端,所以接下来会发生什么由两端决定。在判断隧道能帮多少忙之前,先列一张副本可能落在哪些地方的简表。

PointCan it read the messageWhy
Sending deviceYesContent exists before encryption
VPN gatewayNoTerminates the tunnel, not the app keys
App relayNo, by designOnly ciphertext passes through
Recipient deviceYesHolds the conversation keys
Cloud backupDepends on the productMay store plaintext or an encrypted archive

读一读应用关于备份、关联设备、通知和导出的规则,因为每一项都是单独的副本,处理方式也各不相同。即使内容受到保护,网络仍会暴露时间和流量大小;VPN 改变的是哪个服务商看到本地连接,而不是这些元数据是否存在。从受保护的会话导出的文件只保留其格式所提供的保护,隧道此后对它无能为力。

按它覆盖的对象来选择保护:内容与密钥交给应用,路由与本地网络视野交给 VPN。然后列出两者之外的副本与设备。

相关文章