是否可以在whatsapp中识别消息来源?
警告:这个答案纯属猜测。也很难获得隐蔽程序的参考,但我已经链接到有一些很好的参考的维基百科页面。我也没有研究 WhatsApp 的实现,因为还有其他几篇Security SE 帖子讨论了它的各个方面。
我希望我在这个假设中正确匹配了你的场景:
考虑(假设)印度的一个政府机构,称为大规模监视局(MSB)。MSB检测到某些包含虚假谣言的WhatsApp消息在敏感区域被转发,最终引发了骚乱。MSB 需要什么来追踪第一条消息的发件人?
首先,让我们看看 MSB 执行此跟踪的最低要求。MSB 将需要所有消息的三个数据:
- 内容的哈希,
- 发件人标识符
- 时间戳
即使它无法访问明文,但只能拥有内容的哈希值,它仍然可以识别特定消息的第一个发送者(请注意,即使更改单个字符也会破坏此方案)。
接下来,让我们考虑一下 MSB 可以放置自己的所有不同位置。
场景 1:MSB 可以读取所有运营商流量,甚至加密形式的 ISP 流量。在这种情况下,它无法建立第 1 项——散列。然而,它可以使用数据包大小、发送者 IP 和时间戳等元数据来粗略估计消息何时发送到 Whatsapp 的服务器之一。如果有足够的基础工作(例如,找到第一个发送者、没收设备并进行取证调查、询问所有者),就可以做出合理的假设。
场景 2:MSB 可以读取印度的所有运营商流量甚至 ISP 流量。这可以通过向所有运营商发出请求(如PRISM)手动收集,也可以通过某种监控系统(如CMS或Tempora)自动收集。由于 WhatsApp 依赖于底层载波信号,因此可能会发生中间人攻击,即 MSB 通过接收第一条 SMS 身份验证消息(例如此处)来克隆和欺骗设备。现在它有了真正的明文数据;它可以找到与目标相似的所有消息并查找第一个消息。
场景 3:MSB 有一个后门,可以读取 WhatsApp 在数据库中存储的消息。这与场景 1 非常相似,因为密钥对它不可用;它可以根据有关发件人、时间戳和消息大小的可用元数据进行估计。如果它有一个像PRISM这样的程序,WhatsApp 可以故意在某些设备上设置一个不安全的应用程序版本,从而更容易执行其他攻击。
场景 4:MSB 已经用恶意软件(例如IRRITANT HORN )感染了印度的所有移动设备。这与场景 2 类似。MSB 现在可以访问设备上的所有解密消息。
无论如何,这都是猜测。既然 WhatsApp 具有 E2EE(此处描述,此处分析),这些攻击中的大多数仍然会很困难。您可能会发现乔治亚理工学院的这篇真实流量分析论文很有用
编辑:耶!
这在设计上与通过节点转发数据的 TOR 没有什么不同。这里需要将事物分开。首先,我将谈论政府的目标“推理”。想象一下你所说的小组中有十几个。关键字是“苹果”
User1 --> "I will smash all apples" --> group
Random Group member --> "I will smash all apples" --> Group (User2 receives it)
User2 --> "I will smash all apples" --> group
Random Group member --> "I will smash all apples" --> Group (User3 receives it)
政府尝试确定谁先发送它的成本更高。他们最好的选择是没收所有手机,看看谁先看到了。但是从头开始,这变成了一个隐私、自由问题。获取记录(ISP、搜索记录等)来说明(推断)谁可能首先对苹果有更大的兴趣,仍然更便宜。这是题外话,但在政府担心的地方,不要以为他们会正面攻击技术,单独攻击端点更便宜/更有效。
现在进行技术交流 - 您所绘制的图表与 TOR 几乎没有什么不同,只是您使用 WhatsApp 来说明这一点。将遇到的问题是根据消息的转发方式跟踪用户。使用 Google Talk/SMS 创建随机 API 与 Whatsapp 交互会容易得多,然后从那里发送随机消息。只要有意愿,就有一种方法可以考虑 WhatsApp 存储时间戳。我能想到的最多的是有人在该组涉及的所有手机上访问 WhatsApp,并检查谁拥有第一个时间戳
