Signal adds automatic checks to make chat-key attacks harder to hide
A Signal conversation starts with a small request to a server: give the app the public key linked to this phone number. If the server lies, it could hand over an attacker’s key instead. Signal’s Automatic Key Verification now gives users a way to detect that kind of substitution without comparing safety numbers directly with their contacts.
The feature works through key transparency: a public, globally consistent view of the keys associated with each phone number. Signal’s app periodically checks that the keys recorded for an account belong to the user’s devices. If the log cannot be verified, or contains unexpected keys, the app displays a warning that Automatic Key Verification is unavailable for the device.
That check depends on three auditors. Signal runs one, Cloudflare runs another, and Trail of Bits operates the third. Trail of Bits built its auditor independently from scratch. Each auditor keeps its own copy of the key map as a Merkle tree—a data structure that lets clients verify the integrity of a large record—and periodically signs the tree’s latest head.
The three signatures are designed to make a hidden split view harder to maintain. Signal clients require each tree head to belong to a lineage endorsed by all registered auditors within the last seven days. A fully malicious server could therefore keep showing different users different key maps for at most seven days before client warnings begin.
So what changes in practice? Users can switch on the feature under “Settings > Privacy > Advanced” and use “Verify Automatically” from a supported chat’s safety-number screen. It does not cover every conversation, including many chats started by searching for a username, and a failure still requires manual safety-number comparison. The system is an additional layer of protection, not a replacement for every existing check.
Comments
Loading the thread…
Sign in to leave a comment. Sign in