Introducing Automatic Key Verification

Introducing Automatic Key Verification

Introducing Automatic Key Verification Katherine Yen on 11 Aug 2026

Signal now offers a feature called “automatic key verification” which complements the existing safety number system. Signal is always end-to-end encrypted, and automatic key verification provides an additional, streamlined way to confirm that there’s no unexpected party between you and the other “end” of an end-to-end encrypted session.

Signal 现在推出了一项名为“自动密钥验证”(automatic key verification)的功能,作为现有安全码(safety number)系统的补充。Signal 始终采用端到端加密,而自动密钥验证提供了一种额外且简化的方式,用于确认在您与端到端加密会话的另一端之间不存在任何意外的第三方。

It works through a system of verifications performed by you, your Signal connections, and third-party auditors that together provide the same assurance as manually verifying safety numbers. Unlike safety numbers, these verifications are done independently and do not require an in-person meeting or a secondary communication channel.

该功能通过一套由您、您的 Signal 联系人以及第三方审计机构共同执行的验证系统来运作,其提供的保障与手动验证安全码相同。与安全码不同的是,这些验证是独立完成的,不需要面对面会面或使用辅助通信渠道。

This system of verifications ensures that the association between a phone number or username and its public encryption key is globally consistent and transparent to all participants in Signal’s ecosystem. This protects against scenarios where a key is swapped out without the key owner’s knowledge — for example, if a malicious party compromised Signal and associated a different key with your connection’s phone number.

这套验证系统确保了电话号码或用户名与其公钥之间的关联在 Signal 生态系统中是全球一致且透明的。这可以防止密钥在所有者不知情的情况下被替换——例如,如果恶意方入侵了 Signal 并将一个不同的密钥与您联系人的电话号码关联起来。

To see this feature in action, go to a Signal connection’s profile, hit “View Safety Number,” and tap on the “Verify automatically” button under the “Automatic key verification” heading. The button will show a green checkmark and “Encryption verified” when the feature is available and verification succeeds. Over time, this verification, combined with the ones continually performed by your Signal connection and third-party auditors, ensures the consistency of this Signal connection’s key across the Signal ecosystem.

要体验此功能,请进入 Signal 联系人的个人资料页面,点击“查看安全码”,然后在“自动密钥验证”标题下点击“自动验证”按钮。当该功能可用且验证成功时,按钮将显示一个绿色对勾和“加密已验证”字样。随着时间的推移,这种验证与您的 Signal 联系人及第三方审计机构持续进行的验证相结合,确保了该 Signal 联系人的密钥在整个 Signal 生态系统中的一致性。

This feature is built on a concept known as “key transparency,” which is the term we’ll use throughout the rest of this post as we explain why we built a key transparency system and give a high-level overview of how it works.

此功能基于一个被称为“密钥透明度”(key transparency)的概念。在本文的后续部分,我们将使用这一术语来解释我们为何构建密钥透明度系统,并概述其工作原理。

A primer on public and private keys

公钥与私钥入门

Asymmetric cryptography is what enables you to send messages to your friend that only your friend can read. It involves a pair of mathematically-linked keys called the public key and private key, which can be used in a variety of applications including sending and receiving messages.

非对称加密技术使您能够向朋友发送只有对方才能阅读的消息。它涉及一对数学关联的密钥,即公钥和私钥,可用于包括发送和接收消息在内的多种应用场景。

Imagine you have a locked mailbox with a slot. Your public key is like your mailbox address — you can share it with anyone who wants to send mail to you. Your private key is like the mailbox key. You’re the only person that has it, and you can use it to read messages sent to you. Anyone can drop mail in your mailbox (encrypt with your public key), but only you can unlock and read it (decrypt with your private key). Your mailbox address must be publicly available; you can’t receive mail if no one knows where to send it.

想象一下,您有一个带投递口的锁闭信箱。您的公钥就像您的信箱地址——您可以将其分享给任何想给您寄信的人。您的私钥就像信箱钥匙。只有您拥有这把钥匙,并可以用它来阅读寄给您的信件。任何人都可以往您的信箱里投信(用您的公钥加密),但只有您能打开并阅读它(用您的私钥解密)。您的信箱地址必须是公开的;如果没人知道往哪里寄信,您就无法收到邮件。

When you sign up for Signal, the Signal app generates a public/private key pair for you as part of the registration process. The private key stays on your device — only you, not Signal, not anyone else, have access to this private key. Your public key is sent to Signal, which acts as a central directory for all users’ public keys. When you want to send a message to another Signal user, you ask Signal for your connection’s public key and encrypt your message with the key that Signal hands back and your private key.

当您注册 Signal 时,Signal 应用会在注册过程中为您生成一对公钥/私钥。私钥保留在您的设备上——只有您自己,而不是 Signal 或其他任何人,能够访问此私钥。您的公钥会被发送给 Signal,Signal 充当所有用户公钥的中央目录。当您想向另一位 Signal 用户发送消息时,您会向 Signal 请求对方的公钥,并使用 Signal 返回的密钥以及您的私钥来加密您的消息。

Mallory in the middle attack

中间人攻击 (Mallory in the middle)

Sending messages requires fetching public keys for recipients, and fetching public keys means relying on a central directory. In theory, a malicious directory operator could carry out something called a “Mallory in the middle” attack, though doing so would require an outsider bypassing the security of major cloud providers or a privileged insider deliberately targeting a specific account. But even though this is a very advanced and unlikely attack, it’s one we still want to guard against. We’ll continue using the mailbox analogy to illustrate how this attack would hypothetically work.

发送消息需要获取接收者的公钥,而获取公钥意味着依赖中央目录。理论上,恶意的目录运营商可能会实施所谓的“中间人攻击”(Mallory in the middle),尽管这样做需要外部人员绕过大型云服务提供商的安全性,或者有特权的内部人员蓄意针对特定账户。尽管这是一种非常高级且不太可能发生的攻击,但我们仍希望防范它。我们将继续使用信箱类比来说明这种攻击在假设情况下是如何运作的。

Imagine Bob wants to send an invitation for coffee to his friend Alice, so Bob looks up her mailbox address in the central directory. If the directory is somehow compromised by an adversary (Mallory), it might direct Bob to Mallory’s mailbox instead of Alice’s. When Bob sends his mail to what he thinks is Alice’s mailbox, it actually goes to Mallory’s mailbox instead. Mallory then uses her own mailbox key to retrieve Bob’s message, reads it, modifies it if she chooses, puts it in a new envelope, and forwards it to Alice’s mailbox.

想象一下,Bob 想给他的朋友 Alice 发送一份咖啡邀请,于是 Bob 在中央目录中查找她的信箱地址。如果该目录被攻击者(Mallory)以某种方式篡改,它可能会将 Bob 指向 Mallory 的信箱,而不是 Alice 的。当 Bob 将信件发送到他认为属于 Alice 的信箱时,实际上却寄到了 Mallory 的信箱。随后,Mallory 使用她自己的信箱钥匙取出 Bob 的消息,阅读它,如果愿意还可以对其进行修改,然后将其放入一个新的信封中,并转发给 Alice 的信箱。

In her modification, Mallory could change the coffee shop location or meeting time for example, causing Alice to show up at the wrong place or time. Alice would have no indication that the message had been intercepted or tampered with, so to her, it looks like the message came directly from Bob. Meanwhile, Bob would be left waiting fruitlessly for Alice to show up. And even if Mallory chose not to alter Bob’s message, her ability to read it at all constitutes a serious breach of communication privacy.

在修改过程中,Mallory 可以更改咖啡店的地点或会面时间,导致 Alice 出现在错误的地点或时间。Alice 没有任何迹象表明消息已被拦截或篡改,因此在她看来,消息似乎直接来自 Bob。与此同时,Bob 将会徒劳地等待 Alice 的出现。即使 Mallory 选择不篡改 Bob 的消息,她能够阅读消息这一事实本身就构成了对通信隐私的严重侵犯。

Miscommunication about coffee is relatively low-stakes, but this kind of attack can create far more harm in other contexts. This attack works because Bob never actually verified Alice’s address. Bob just trusted that the mailbox listed in the directory is hers, which is a reasonable assumption. But, if Bob wanted to be extra cautious, he could ask Alice for her address directly either through an in-person meeting or some secondary, trusted communication channel, which may not be feasible if Alice and Bob are strictly pen pals.

关于咖啡的沟通失误风险相对较低,但在其他情况下,这种攻击可能会造成更大的危害。这种攻击之所以有效,是因为 Bob 从未真正验证过 Alice 的地址。Bob 只是信任目录中列出的信箱是她的,这在通常情况下是合理的假设。但是,如果 Bob 想格外谨慎,他可以直接向 Alice 询问她的地址,通过面对面会面或某种辅助的、可信的通信渠道进行确认,但如果 Alice 和 Bob 只是笔友,这可能并不可行。

So, how does Bob verify Alice’s address if he cannot meet her in person or use a secondary channel? In the rest of this blog post, we’ll outline how we developed a design for a system that enables Bob to automatically verify the data in the central directory without needing to communicate with Alice directly.

那么,如果 Bob 无法与 Alice 面对面会面或使用辅助渠道,他该如何验证 Alice 的地址呢?在本文的后续部分,我们将概述我们如何设计出一套系统,使 Bob 能够在无需直接与 Alice 通信的情况下,自动验证中央目录中的数据。

An analogy for designing a key transparency system

设计密钥透明度系统的类比

One way we could help Bob verify that the directory has the correct address for Alice is to keep a record of every change ever made to the directory. If somebody changes Alice’s address…

我们可以帮助 Bob 验证目录中 Alice 的地址是否正确的一种方法是,记录对目录所做的每一次更改。如果有人更改了 Alice 的地址……