如何验证 WhatsApp 是否使用端到端加密?

信息安全 加密
2021-09-07 13:33:00

有点旧的消息:Whatsapp 刚刚为数亿用户开启端到端加密

我是否可以执行任何测试来验证 WhatsApp 确实在我和另一部 Android 手机之间使用端到端加密?

4个回答

您无法执行任何快速检查来确保使用端到端加密。即使您设法获得此确认,您也必须确保使用的加密密钥从未离开您的设备(以及您朋友的设备)。如果使用端到端加密,但 WhatsApp 或其他人可以访问加密密钥,则聊天不再是机密的。

有一些可用信息可以让安全研究人员开始调查此事:

  • 加密软件是已知的并且代码是开源的(即使我们不知道对 WhatsApp 实现进行了哪些更改)

WhatsApp 将集成由专注于隐私的非营利组织 Open Whisper Systems 创建的开源软件 Textsecure,该软件使用只有用户可以访问且永远不会离开其设备的加密密钥来加密消息

PS:至少有一种方法可以判断他们是否没有使用端到端加密并解析您的消息内容。前段时间,一位安全研究人员发现 Skype 消息中发送的 URL 是从 Microsoft IP 地址(链接)访问的。您可以通过设置 Web 服务器并在 WhatsApp 上发送一些独特的 URL 来尝试相同的操作。

不久前,我实际上做了一些对 WhatsApp 协议进行逆向工程的工作。当时,它通过 Wi-Fi 进行 SSL 加密,并通过 3G 进行明文加密。可以根您的 Android 设备并安装本地数据包嗅探器来转储流量;通常也可以将您自己的CA根证书安装到MITM SSL 流量。

有趣的问题是它是否SSL 包装器中加密,因为 SSL 是设备到服务器,而不是端到端。

发送消息 M,应该产生一个数据包 P,发送的数据可能是分段的。如果接收设备没有得到 P,而是得到了不同的东西,那么它没有正确地端到端加密,或者有一个“隧道”系统正在运行。

不会。除非您有资源将嗅探器插入到每个中间位置,包括 WhatsApp 基础设施中的私有位置。

确实,您必须反编译 WhatsApp 并检查代码的实际作用。如果 Android 版本是用 Java 编写的并且没有被混淆,这可能比预期的要容易。我以前做过这个,反编译的代码可读性非常好。

即使在那之后,系统中也可能存在(非)故意的弱点,可以进行解密,例如臭名昭​​著的 Apple 的 goto fail 错误