Signal 是否仍然比 WhatsApp 更安全?

信息安全 加密 即时通讯 whatsapp 信号
2021-08-13 13:03:40

WhatsApp “最近”使用 Signal 协议部署了端到端加密,当然 Signal 本身也在使用该协议。相关白皮书 (PDF)。

现在这提出了一个问题:
既然两者都具有良好的端到端加密,那么使用 Signal 是否仍然有任何安全优势而不是更广泛部署的 WhatsApp?

在这种情况下,威胁模型基本上包括最终无法访问电话的任何人。它尤其包括服务提供商和执法部门。

3个回答

还有一些安全功能可能对您很重要,Signal 比 WhatsApp 做得更好。

客户端扇出

当您在 WhatsApp 中使用群聊时,您会将消息发送到服务器,服务器再将其分发给所有群组成员。通过这种方式,WhatsApp 学习了所有的社会结构,并且理论上可以执行流量分析,以从交换的消息量中推断出相当多的信息。
另一方面,在 Signal 中,群聊实际上是普通的点对点聊天1,带有一个特殊标志,该标志设置在端到端加密帧内。因此,OpenWhisperSystems(Signal 的制造商)这样就不会了解您的社会群体结构。然而,他们仍然可以看到三个消息同时发送给三个不同的人,并且可以猜测这是由于群聊。
Signal 的博客文章。白皮书 (PDF) 中说明了服务器端扇出

私有组元数据

因为前面提到的每个人直接相互发送组消息的方法在权限方面是混乱的——因为在异步分布式系统中达成共识很难——Signal 部署了一个新系统来强制执行组中的访问控制和权限而无需学习关于组结构的任何信息 - 仅关于组的存在以及基于服务器存储的密文大小对其大小的猜测。有关详细信息请参阅此博客文章,有关部署公告的文章有关组链接如何影响此因素的文章
我找不到有关 WhatsApp 如何处理这些数据的文档。尽管他们知道分发消息的组成员身份,但他们可能只是将其存储在明文中。

应用内加密

Signal 提供在应用程序级别加密过去的通信,需要密码才能阅读过去的消息,而 WhatsApp 完全缺乏这一点。显然,这可以在被盗的情况下保护您的消息,但是您可能不会获得那么高的安全性,因为出于可用性原因,大多数人可能不会在这里选择好的密码。

使用操作系统密钥库

现代移动操作系统为您提供了存储密钥的地方,因此它们不会在文件系统中未加密。操作系统通常会使用一些硬件支持的机制来加密它们,比如 iOS 的安全飞地,或者 Android 会使用 ARM TrustZone 之类的东西来增加密钥提取的难度。此外,Apple 以在 iOS 钥匙串备份的安全性方面做得非常出色而闻名。Signal 使用这些安全功能(iOSAndroid),而WhatsApp(可能)没有

可选的阅读和打字通知

WhatsApp 会在有人打字时通知您,并在有人阅读您的消息时通知您 - 您无法将其关闭以进行群聊。然而,这允许 WhatsApp 推断应用程序的使用行为和您的习惯。就像“你在凌晨 1 点检查你的 WhatsApp 消息吗?”,将其与 WhatsApp 正在收集的其他元数据结合起来,你可以对人们的生活做出一些有用的猜测。此外,“打字”通知可用于根据上下文和默认键盘建议和其他因素推断潜在内容。
Signal 不强制执行此操作。这是 GitHub 上关于它的原始讨论作为最近的发展,Signal 采用了读取通知,但它们是默认关闭的(对于预先存在的安装),并且不会在群组对话中强制启用。对于我认为他们与每个成员单独合作的群组,也就是说,如果成员和发件人都启用了它们,发件人将收到通知,这比 WhatsApp 的解决方案更注重隐私。

备份安全

WhatsApp 可让您备份您的消息,以便您在手机无法访问或损坏时恢复它们。但是,由于这种性质,备份(必须(也)托管在 Google Drive 上)无法加密/保护,只能使用该帐户的用户名/密码(WhatsApp 不知道)。因此,一旦该 Google Drive 帐户被破坏或某些政府要求访问,如果通信的任何一方启用了备份,所有端到端的安全性都会消失。至于 iCloud(与 Google Drive 相对),类似的论点也适用——尤其是 WhatsApp 保存的数据类型不够敏感,Apple 无法使用其更强大的安全机制,例如密码
虽然Signal 的备份功能不如 WhatsApp 方便,它不会自动在 Google 服务器上存储(明文?)消息副本,而是允许您(自动)创建本地(加密)文件并推送此文件一个手动左右。目前尚不清楚 WhatsApp 的备份功能是否受益于谷歌备份基础设施(至少在 android 上)最近的安全增强,因此它们实际上可能是安全的。

自动删除消息

从安全角度来看,自动删除您自己的旧邮件是好的。这意味着如果攻击者设法闯入您的手机/备份,他将无法访问所有消息,只能访问最近的消息。如果您认为无论如何您都不会阅读所有真正旧的消息并且它会为您节省一些存储空间,那么自动删除特别好。截至目前,WhatsApp 尚未实现这一点。
另一方面,信号确实如此。

没有元数据存储

Signal 最近被传票击中。他们(当然)遵守了,但只能做出很少的贡献,这证实了他们坚持自己的隐私政策
同时,WhatsApp 拥有大量的元数据,如果被击中(并且如果它被披露)会更有用。如果您比较WhatsApp 日志和 Signal 日志,这一点尤其明显。

私人联系人发现

WhatsApp 会将您的整个通讯录上传到他们的服务器,以比较列出的用户中有哪些拥有 WhatsApp 帐户。显然,在此过程中,WhatsApp 会了解您的社交图谱,即您认识的人,包括不使用 WhatsApp 的人。
另一方面,Signal now 最近部署了一个更智能的解决方案,使用先进的现代加密技术与英特尔的 SGX 技术相结合,因此 OpenWhisperSystems 实际上不会学习你的地址簿(只有 SGX enclave 可以,并且不会泄露它),但只需要记录他们的用户是谁,因此他们也不会了解您可能认识但不使用 Signal 聊天的用户以及您认识但不使用 Signal(尚未)。.

注册锁定

虽然SignalWhatsApp都支持注册锁定,只要将新设备添加到帐户,就会强制您输入预先确定的 PIN,但目前尚不清楚如何实施安全性。即,在锁定之前尝试了多少次 PIN,以及服务运营商是否可以覆盖该锁定。Signal 目前正在使用 SGX 进行beta 测试,以便对您为此获得的尝试设置一个可验证的上限。

私人链接预览

在生成链接预览并从服务器隐藏您的 IP 时, Signal会竭尽全力隐藏您从 Signal 访问的 URL
另一方面,WhatsApp 在该主题上的立场不那么严格,尽管在这方面它仅比 Signal 更“糟糕”,因为它会将发件人的 IP 泄露给服务

发件人隐藏

Signal 具有一项功能,可让您在发送消息时向服务器隐藏您的身份也就是说,应用程序可以向服务器发送一条消息,该消息将被传递,而无需透露它的确切身份。因此,Signal 服务器看到的是具有给定 IP 的某人向指定的用户发送了一条消息。
据我所知,WhatsApp 没有实现任何类似的功能,而是依靠用户身份验证来发送以防止假冒和类似问题。

加密配置文件

在 Signal 中,您的个人资料图片和选择的姓名仅使用端到端加密传输另请参阅介绍博客文章这意味着服务器不会了解您的图片的外观或您使用什么字符串向他人表明自己的身份。
然而,在 WhatsApp 中,情况不太清楚。如果您将这些信息设置为公开,它们似乎很有可能确实以明文形式存储在服务器上。但是,如果您将其设置为仅限联系人,那么 WhatsApp 是使用其端到端加密来传输图像还是只是服务器上的访问控制 API 功能就不太清楚了。至少这篇(非官方)博客文章声称端到端加密不用于配置文件。

通过安全通道确认收据

Signals 使用与消息本身相同的安全通道发送已收到消息的通知。由于信号协议的设计,这意味着密钥材料的全新更新。另一方面,在 WhatsApp 中,接收通知是在此端到端协议之外传输的。具体而言,这意味着如果对话(或群组)中只有一方在进行状态妥协,则该方的状态妥协将允许该方的所有后续消息在 WhatsApp 中被动解密,而只有在下一次接收通知之前的消息对于 Signal 是可泄露的.

临时消息?

它们是 WhatsApp 和 Signal 都支持的功能 - 在满足某些条件后,在接收器上删除的消息结束。然而,它们的实施并没有真正的安全影响,因为“如果你能看到它,你可以用不同的设备拍摄它”的规则适用。

所以 TL;DR:
剩下的安全差异(在协议更新之后)主要是 WhatsApp 生成大量元数据以方便,而 Signal 试图避免元数据。

1:他们实际上并没有使用直接连接到他们的同行的点对点通信。相反,他们使用安全的双向渠道与其他人联系。

免责声明:这是一个非技术贡献(除了已经给出的答案)。有些内容可能是主观的,也可能是推测性的。

我相信,在评估/比较信息安全解决方案时,需要超越解决方案的纯技术//当前状态//,并考虑给定产品在未来可能采取的轨迹,因为已知或假设可能的动机控制组织。

2014 年 Facebook 收购了 WhatsApp

正如马克·古德曼 (Marc Goodman) 在他的《未来犯罪》(Future Crimes) 一书中所说,对 Facebook 用户而言,它的产品是它的产品,而广告商是它的客户,为了可行,Facebook 将其产品货币化,它通过最大化其提供的产品的数量和质量来实现它的客户。简而言之,数量转化为用户查看 Facebook 内容的时间(可用于展示广告的时间),质量转化为 Facebook 可以根据对用户的了解准确定位添加用户的程度。换句话说,Facebook 希望尽可能多地了解用户(在保证数据真正安全的情况下无法做到这一点),并将其用于:

  1. 最大化眼球时间(让用户花更多时间看 Facebook)
  2. 最大化目标广告的准确性和有效性

既然 WhatsApp 一直在提供无法访问用户数据的端到端加密,为什么 Facebook 会在 2014 年支付超过 190 亿美元购买它(参见https://en.wikipedia.org/wiki/WhatsApp引文 13, 14) 鉴于 Facebook 如何通过其产品获利?除非 Facebook 能够找到一种方法来收集有关用户的 WhatsApp 数据。我相信,最近对 WhatsApp 隐私政策的更改允许 WhatsApp 用户的联系人电话号码与 Facebook 共享,这表明了答案。

未来的猜测

考虑 Facebook 对 WhatsApp 的未来发展轨迹是推测性的。但是,在考虑信息安全解决方案时,我认为评估组织的跟踪记录以及他们的业务模型指向的方向是谨慎的。考虑:

  • 鉴于上述和“未来犯罪”的论点,最大化 WhatsApp 的信息安全与 Facebook 的商业模式适得其反
  • Facebook 有记录在案的有问题的隐私做法的历史,例如:在政策更新时重置用户的隐私设置,或尝试通过过滤用户的提要来控制用户情绪- 谷歌获取更多示例。

在比较信息安全解决方案时,尤其是具有类似技术能力的解决方案时,我建议选择一个更有可能在未来发展中将主要关注点放在隐私上的解决方案。在这里,Signal 似乎是一个更好的选择。

在此处添加的另一个考虑因素:

Signal 是开源的,并且在许多平台上以托管的、内存安全的语言(Java 或 JavaScript)实现。它也是由著名的安全研究人员编写/维护的,他擅长发现和修复安全漏洞(希望甚至在他们自己的代码中)。WhatsApp 是专有软件,包含用非托管的本地编程语言(几乎可以肯定是 C/C++)编写的组件。即使您相信 Facebook 不会将恶意内容引入您的 WA 二进制文件(并且您必须信任它们,除非您想自己对其进行逆向工程),但它们与其他任何人一样容易出错(在使用本机代码时),那是高度

已发现 WhatsApp 存在多个缓冲区溢出漏洞,其中至少包括一个在野外被利用的漏洞缓冲区溢出可用于获得对易受攻击的应用程序的完全控制,这当然意味着攻击者可以读取应用程序所能读取的所有内容(您的私钥、您的对话历史记录、您当前的聊天或通话、您的联系人/照片/麦克风/相机/您授予应用程序访问权限的任何其他内容),也可以用作发起其他攻击的平台(通过您的手机危害其他移动应用程序、您的移动操作系统和本地网络上的其他设备,可能包括您的家和/或工作计算机)。这是一笔买卖。

虽然开源软件并不是天生的抵御此类攻击,它就有更好的机会不受攻击。与 Facebook 这样的公司相比,更多人会查看源代码(包括许多具有安全意识的人,这是 Signal 的核心用户群之一)。大多数人实际上并没有做很多伤害,并且确实经常希望通过发现并负责任地披露安全漏洞来赢得声誉和/或获得赏金,因此更有可能发现和修复漏洞。然后是缓冲区溢出级漏洞只是方式,在内存安全语言中不太可能发生的事情。即使 Signal 中存在一个错误,让远程攻击者通过向您发送消息对应用程序做一些令人讨厌的事情,那件事也可能比“