中国政府怎么可能只封锁特定类型的 WhatsApp 流量?

信息安全 whatsapp
2021-09-07 15:47:28

目前有媒体报道称,中国政府正在阻止通过 WhatsApp 发送的某些类型的消息(“图片、语音消息和视频”)。

鉴于 WhatsApp 流量具有端到端加密,中国政府可能会使用什么机制来做到这一点?

2个回答

鉴于 Whatsapp 流量具有端到端加密,...

端到端加密既不意味着匿名,也不意味着窃听者无法识别底层协议,并且根本不透露任何元信息。

事实上,隐藏协议以将它们从防火墙中隐藏起来是出了名的困难,而找出足以阻止流量的内容则相当容易。在 WhatsApp 的情况下,使用 E2EE 也无关紧要,因为无论如何 WhatsApp 在客户端和 WhatsApp 服务器之间添加了额外的加密层(以前通过 TLS,现在是Noise Pipes)。因此,用户通过Signal 协议额外获得 E2EE 的事实对流量分析的影响有限。

有一些明显的方法可以阻止 WhatsApp 流量,而不必担心加密:

  • 阻止服务器。WhatsApp 发布其消息服务器的 IP 池。(这些 IP 曾经在此处列出,此后已移至Facebook 移动合作伙伴门户。)但即使没有现成的 IP 列表,只需使用应用程序和观察交通。(这是一种完全常见的技术——类似地,Tor 网络在过去几年中受到中国封锁大部分公共中继的影响。)

  • 阻止协议。政府可以使用启发式方法来识别和阻止传输协议。基于流量模式的阻止过去曾在 BitTorrent、Tor 和其他公司中起作用,但可能会带来显着的开销。(我无法评论这种方法是否实用。)

特别是阻止媒体文件的一种方法是识别大型上传。WhatsApp 发送图像的方式与发送普通文本的方式不同,这也可能会派上用场。相反,客户端分别加密和上传附件,然后只发送一条包含上传密钥的消息。

由于新闻报道称根本无法发送任何文件,因此政府只是暂时阻止了附件上传服务器(这将使普通邮件不受影响)是合理的。

WhatsApp 安全白皮书中详细介绍了发送附件的过程

传输媒体和其他附件

任何类型(视频、音频、图像或文件)的大型附件也是端到端加密的:

  1. 发送消息的 WhatsApp 用户(“发送者”)会生成一个临时的 32 字节 AES256 密钥和一个临时的 32 字节 HMAC-SHA256 密钥。
  2. 发送者使用 CBC 模式下的 AES256 密钥和随机 IV 加密附件,然后使用 HMAC-SHA256 附加密文的 MAC。
  3. 发件人将加密的附件上传到 Blob 存储区。
  4. 发件人向收件人发送一条普通的加密消息,其中包含加密密钥、HMAC 密钥、加密 blob 的 SHA256 哈希以及指向 blob 存储中 blob 的指针。
  5. 接收者解密消息,从 blob 存储中检索加密的 blob,验证其 SHA256 哈希,验证 MAC,并解密明文。

首先,WhatsApp 消息始终通过 WhatsApp 服务器,因此中国政府很容易识别 WhatsApp 交易所。接下来我不知道不同类型的消息是否使用不同的服务器,但是文本消息会比图像或视频短得多,并且很可能在一个数据包中发送。因此,在总大小超过某个阈值的情况下,中止与 WhatsApp 服务器之间的任何交换就足够了。

但是链接的文章声称中断不是连续的,因此中国审查员可能仍在试验他们的封锁规则。