Whatsapp Web 客户端如何与保持所有 E2E 的移动应用程序同步?

信息安全 加密 Web应用程序 whatsapp
2021-08-31 18:57:06

使用 whatsapp Web 客户端时如何保持 E2E 通信?我发现了不同的问答(fi How does end to end encryption work with whatsapp web?)但没有人完全解决我的疑问。

Web 客户端如何与移动应用程序同步?消息最初是如何发送到浏览器会话的?当我在 Web 客户端中编写消息以维持所有 E2E 通信时,会发生什么?

2个回答

在两个 Web 客户端之间建立完整的端到端加密系统是没有意义的,因为在这种情况下,移动客户端将无法读取由 Web 客户端加密/解密的数据,反之亦然。

为避免这种情况,在移动客户端和 Web 客户端之间创建了一个受保护的通道。移动客户端将相互执行端到端的加密聊天服务,并生成不同的密钥对与网络客户端进行对话。因此(移动和网络)客户端都可以读取/生成消息。

您所指的答案已经给出了有关如何实施的技术思路。我将添加一个流程供您理解。

因此,假设用户 A 和 B 正在通过 whatsapp 进行通信。那么端到端加密聊天的工作方式是:

A 的 Web 客户端 <-protected-> A 的移动客户端 <-E2E-> B 的移动客户端 <- Protected-> B 的 Web 客户端。

[从问题中提到的答案中解释部分]

Web 客户端如何与移动应用程序同步?

当移动客户端扫描网页客户端的二维码时,完成初始设置。之后,它是简单的客户端服务器架构,其中移动客户端充当服务器。移动客户端可以读取所有消息。

最初如何将消息发送到浏览器会话?当我在 Web 客户端中编写消息以维持所有 E2E 通信时,会发生什么?

一旦建立了 Web 和移动客户端之间的安全连接,该连接将用于所有通信。同样,这不是两个 Web 客户端之间的端到端加密。移动客户端可以读取所有消息。因此,端到端加密是在移动客户端和 Web 客户端之间进行的。然后将在移动客户端和 Web 客户端之间建立另一个端到端加密通道。

这是我经过一番调查后的重建。

当爱丽丝从 WhatsApp 网络向鲍勃发送消息时,第一张图片可以代表流程:

Alice 从 whatsapp Web 客户端向 Bob 发送消息

虽然这个代表 Alice 从移动应用程序发送消息但她也登录到 whatsapp 网络时的流程:

在此处输入图像描述

(我故意跳过二维码扫描“握手”)。

我不明白 KEY-X 是如何派生的,以使 WhatsApp 服务器对来自 WhatsApp 网络客户端的消息视而不见。因为如果 KEY-X 派生自 WA 服务器在 QRCode 验证期间发送的参数,它们也可以派生密钥,因此所有 E2E 方案都失败(我认为不是这种情况)