在WhatsApp 部署关键透明度(翻译自:meta)

在WhatsApp 部署关键透明度(翻译自:meta)

在WhatsApp 部署关键透明度(翻译自:meta)

WhatsApp 推出了一项新的加密安全功能,可根据密钥透明度自动验证安全连接。该功能不需要用户执行额外的操作或步骤,并有助于确保对话安全。密钥透明度解决方案有助于加强端到端加密以所有人可以使用的透明方式为私人、个人消息传递应用程序提供的保证。我们发布了一个名为Auditable Key Directory (AKD) 的开源库。这使任何人都可以验证目录正确性的审计证据。这巩固了我们关键的透明度部署。端到端加密是WhatsApp 上私人消息传递的基础,有助于确保只有您和您与之交流的人才能阅读您发送的内容,而中间的任何人,甚至WhatsApp 都不能。它是使用最广泛的端到端加密部署之一,并依赖于1970 年代首次开发的公钥加密技术。从技术角度来看,要使端到端加密可信,对话的“端”需要知道彼此的加密密钥是真实有效的。

为此,我们最注重安全的用户始终可以利用我们在用户联系信息下提供的安全代码验证功能。当亲自到场时,可以通过快速扫描二维码来验证密钥,或者如果是远程验证,则可以共享一个唯一的60 位代码。

这是验证连接是否安全的最有效方法之一。但实际上,我们知道双重检查长代码很麻烦,我们的团队一直在寻找使这更容易的方法。

我们很高兴推出一种新的加密安全功能,无需如此长的代码即可自动验证安全连接。为此,我们正在通过开发一个基于开源库的新的可审计密钥目录(AKD) 来提高密钥透明度。 AKD 将使WhatsApp 客户端能够自动验证用户的加密密钥是否真实,并使任何人都能够验证目录正确性的审计证据。

我们实现关键透明度的方法是双管齐下的,并引入了两个新组件:

服务器(WhatsApp) 维护一个映射到用户帐户公钥的仅附加AKD。第三方审核日志记录,其中服务器目录中的任何更改都记录在公共的、保护隐私的审核跟踪中,供任何人验证。通过这两项新增功能,用户可以通过WhatsApp 目录自动验证对话的安全性。随着此功能的推出,使用Validate Secure Codepages 的具有安全意识的用户会注意到此验证过程会快速自动进行。

系统是WhatsApp 的一项新服务,依靠公共审计来验证个人对话的端到端加密状态。虽然该系统为我们的用户提供了简单方便的验证工具,但我们鼓励那些希望在根本不使用WhatsApp 服务器的情况下验证其端到端加密对话的用户使用传统的安全代码验证过程。

公钥只是用户用来加密消息的一个工具。用于解密消息的私钥驻留在用户的设备上。没有人—— 甚至WhatsApp—— 都无法访问这些私钥。单独的公钥列表无法提供对任何人内容的访问。

“验证安全代码”页面工作原理

端到端加密消息传递的关键是公钥/私钥对。私钥是您用来解密从另一方发送的消息的密钥,它永远不会离开您的设备。但是,公钥是您提供给其他人的,以便他们可以加密消息。这是通过首先将密钥提供给WhatsApp 来完成的,我们将在WhatsApp 中代表您存储密钥并将其提供给希望向您发送消息的用户。

端到端加密旨在防止的典型问题是中间人攻击,您认为您只与一个用户交谈;键并可以阅读您的消息。然后,攻击者可以为您的联系人获取正确的公钥,用它重新加密消息,然后将其发送给用户。今天是什么阻止了这个? WhatsApp 有一个安全页面

>每个联系人都有一个 QR 码和一个 60 位数字,可以在 WhatsApp 外部验证,以确保它与您的联系人在他们的设备上看到的相符。简而言之,它是你的公钥和他们的公钥的唯一散列,所以如果你们中的任何一个有错误的值,散列将不匹配。当它们确实匹配时,这将确认安全的端到端加密对话。

key transparency 解决的问题是什么?

在提供强有力的安全保障的同时,二维码扫描/号码匹配功能需要在 WhatsApp 之外与您的联系人进行通信——无论是通过视频通话、现实生活中还是通过电话等。这是:

  1. 在 1:1 通信中很难做到,尤其是当用户随着时间的推移更改设备(以及因此更改加密密钥)时;
  2. 小组中更难,因为每参与者都有一个唯一的代码(没有“组”代码);
  3. 几乎不可能在大团体中表演。每次有人加入或离开、注册新的配套设备、更换手机等时,都需要为所有参与者重做。例如,在一个 100 人的小组中,有 4950 对安全验证。

理想情况下,这不是手动过程,而是可以通过某种自动化流程进行验证。

输入密钥 透明度:我们在 WhatsApp 上建立 AKD 的协议,用于维护公钥更改记录。此外,我们还为目录建立了一个第三方公共存储库,用于存储可审核的更改日志,只要目录有新内容,该目录就会更新。这对于透明度和进一步加强我们的端到端加密保证至关重要。实际上,这证实了用户用来联系收件人的公钥与其他人用来与收件人通信的公钥相同。

虽然密钥透明不能替代二维码扫描,但它在以下方面对其进行了增强和补充:

  1. 二维码扫描需要两人协调带外验证。相比之下,密钥透明只需要一个客户端发起并执行目录检查,从而提高检查过程的可访问性;
  2. 当人工二维码验证不可行时(例如在大型群组通信场景中),密钥透明作为公钥一致性机制
  3. 还可以作为端到端加密的轻量级首次检查,从而提高更多用户对端到端加密检查的采用率,从而有利于整个消息传递安全。

如果自动检查返回的结果表明连接可能不安全,我们建议用户继续进行手动安全验证检查。

密钥透明度的历史

密钥透明度描述了一种协议,在该协议中,服务器维护用户帐户与其公共身份密钥之间映射的仅附加记录。这允许生成包含证明来断言给定映射在最近更新时存在于目录中。

WhatsApp 对密钥透明度的实现基于关于密钥透明度的原始学术著作,从CONIKS和SEEMless开始,并从最近的一篇名为Parakeet的论文中扩展。这共同产生了 Rust AKD crate,它作为维护关键透明度解决方案以及从目录生成包含和关键历史证明的基础。WhatsApp 将此 AKD 目录托管为我们所有用户可用的基础设施

公钥不能用于解密用户的消息或确定您一直在与谁交谈。然而,它们对于确保某人通过加密只有公钥相关私钥的持有者可以读取的消息来确保将消息发送给预期的接收者是必要的。

随着时间的推移更新他们的密钥,用户可能有很多条目。在 WhatsApp 的规模下,这相当于数十亿个条目随着时间的推移不断增长。当用户删除他们的帐户时,我们会删除该帐户的所有公钥,但在某个时间点存在密钥这一事实是不可变的(我们只是不能说出密钥是什么)。

密钥透明度如何工作?

安全原则

从一个核心的设计选择上,多重因素帮助我们决定增强这个项目的开放性和安全性。首先,AKD 及其所有证明生成和验证逻辑都是开源代码。这是一个基于Rust的箱子(库),适用于任何想要使用可公开验证的日志管理仅附加目录或验证仅附加审计证明并作为 WhatsApp 关键透明度解决方案的公共审计员参与的实体。单独的公钥列表无法提供对任何人内容的访问。

该库允许系统为目录条目的正确性提供重要保证,同时不会因易受基于内存的攻击而损害安全性。此外,我们坚持在下面概述的大多数内部组件中使用 Rust 的决定。

将 AKD 应用到 WhatsApp

大量密钥更改

WhatsApp 每分钟处理数以万计的关键变更(注册、重新注册等)。当尝试插入到仅附加日志中时,这种卷很难处理。

因此,我们决定实施一个分布式、高吞吐量的队列,在将“未决更改”聚集到一个批次中并插入以形成下一个纪元之前,“未决更改”就存在于其中。这使我们能够进行更大的批量插入,并极大地限制了我们需要进行的数据库操作的数量

由于 AKD 的变化是基于前一个时期的附加变化,我们需要确保一次只发生一次更新。单个处理器逐个依次处理每个更新,将无法跟上 WhatsApp 内的更改速度(无论数据库实现如何)。从添加或更新密钥到在目录中“发布”密钥,这会增加一些延迟。

通过将键批处理在一起并使一个纪元成为原子提交的更改集合,由于存储在数据库中的默克尔树中有许多共享路径我们可以从大量查询优化中受益。发布和发出新纪元的频率是一个可调参数,可以随时间调整。

大规模的公共审计

所有透明度解决方案的一般要求是可公开审计的,这意味着任何人都可以根据需要验证目录上的交易以断言:

  1. 历史未更改(现有记录未删除或更新)。
  2. 更改是仅附加的。

当发布对 AKD 的新更改时,我们会发出这些更改的审计证明,并将这些更改放入公共存储中供任何感兴趣的人使用。这些审计记录保证了不可变历史的属性,任何人都可以在他们想要的时候进行验证,同时保护目录中所有用户的隐私。

这不会冒任何人的实际信息被公开的风险也不会揭示任何用户的任何行为模式您可以阅读有关此隐私保证如何运作的更多信息,如SEEMless和 Parakeet中概述的那样,关键透明度所基于的学术著作。

WhatsApp 的关键透明度推出

关键的透明度解决方案有助于加强端到端加密以所有人都可以使用的透明方式向私人个人消息传递应用程序提供的保证。这项技术巩固了 WhatsApp 在安全领域的承诺和领导地位。

WhatsApp 已经为我们所有的用户托管和运行 AKD,无论您使用的应用程序的版本平台如何。使用验证安全代码功能的用户将开始注意到验证是自动的,因为这将在未来个月内在 Android 上推出。这是一种重要的机制,它使具有安全意识的用户能够快速验证端到端的加密个人对话。

一份更深入研究潜在攻击的技术白皮书、有关数据流和格式的更多详细信息等将很快发布。

作者:Sean Lawlor, Kevin Lewi

出处:https://engineering.fb.com/2023/04/13/security/whatsapp-key-transparency/

版权声明:元宇宙官网下载 发表于 2023-04-25 20:42:39。
转载请注明:在WhatsApp 部署关键透明度(翻译自:meta) | 零零洞洞

暂无评论

暂无评论...