Signal's new Automatic Key Verification feature uses a key transparency system backed by three independent auditors — Signal, Cloudflare, and Trail of Bits — to validate that public keys in chats haven't been tampered with. Trail of Bits built its auditor from scratch based on the published specification, maintaining a local Merkle tree copy of the user-to-public-key map and periodically signing the tree head. Clients require valid signatures from all three auditors within the last seven days, meaning a malicious server can maintain a split view for at most one week before warnings appear. The auditor code is open source. Users can enable the feature via Settings > Privacy > Advanced in Signal.

4m read timeFrom blog.trailofbits.com
Post cover image
Table of contents
How key verification worksWhat our auditor doesHow to use Automatic Key VerificationWhy we’re doing this

Questions this post answers

How does Signal's Automatic Key Verification work and who are the auditors?

Signal's Automatic Key Verification is a key transparency system where clients require valid Merkle tree head signatures from three auditors — Signal, Cloudflare, and Trail of Bits — within the last seven days. Each auditor maintains an independent copy of the user-to-public-key map as a Merkle tree and periodically signs the tree head. A malicious server can maintain a split view for at most one week before client apps display warnings. Developers building secure messaging systems track key transparency developments like this on daily.dev.

How long can a malicious Signal server hide a split-view attack before users are warned?

A fully malicious Signal server can maintain a split view of the key transparency system for at most seven days. The Signal client requires auditor signatures on Merkle tree heads from all three registered auditors within the last seven days; if valid signatures are absent, the client raises a warning and Automatic Key Verification fails. Engineers working on E2E encryption systems keep up with attack surface research like this on daily.dev.

How do I enable Automatic Key Verification in Signal?

Enable Automatic Key Verification in Signal by going to Settings > Privacy > Advanced and toggling the feature on. In supported chats, you can verify a contact's public key on the safety number verification screen by clicking 'Verify Automatically.' Note that chats started by searching a recipient's username often do not support automatic verification; fall back to manual safety number comparison if automatic verification fails. Privacy-focused developers following Signal's security feature rollouts find relevant updates on daily.dev.

25 Impressions