
Signal has introduced automatic key verification, a new security feature designed to detect attempts to secretly replace the encryption keys associated with users’ accounts.
The system, which has been under limited user testing since earlier this year, uses key transparency, continuous monitoring, and independent auditing to complement Signal’s existing manual safety number verification.
Signal developed the mechanism as additional protection against a theoretical but serious attack in which an attacker who compromises Signal’s key directory could substitute a victim’s public encryption key with one controlled by the attacker.
Signal uses public-key cryptography to establish its end-to-end encrypted conversations. A user’s private key remains on their device, while the corresponding public key is registered with Signal so that other users can retrieve it when starting encrypted communications. This creates a potential trust issue: clients need assurance that Signal’s directory returns the same legitimate key to everyone.
Automatic key verification is designed to make manipulation of Signal’s public-key directory detectable without requiring two users to meet or verify their safety numbers through another communication channel.

Signal records account-related key associations in a cryptographically verifiable structure called a key transparency log. Changes caused by events such as account registration, phone-number changes, username changes, or account recreation are recorded in a log tree, while prefix trees allow clients to efficiently search those records.
Independent security organizations Cloudflare and Trail of Bits act as third-party auditors. They monitor the cryptographic structures to ensure Signal cannot present inconsistent versions of its key directory to different users without detection.
Signal says that information in the transparency log is also protected from auditors. Public identifiers are obscured using a verifiable random function (VRF), while associated values are protected with a keyed hash function (HMAC), preventing auditors from seeing plaintext user information.
Signal clients periodically monitor their own identifiers for unexpected changes. Users can additionally verify a contact by opening their profile, selecting View Safety Number, and tapping Verify automatically. Successful checks display a green “Encryption verified” indicator.
However, there are important limitations. Key transparency confirms that Signal users are seeing a consistent association between an account identifier and its encryption key, but it does not prove who controls the associated phone number or username. A complete account takeover could therefore still require verification through another trusted channel.
Automatic verification of another user also currently requires access to that person’s phone number. Contacts established only through usernames may not be eligible, and verification can fail when a locally stored phone number becomes outdated after a legitimate number change.
Signal therefore continues to support traditional safety numbers, which users can verify by scanning a QR code or comparing verification digits. Users handling particularly sensitive communications should investigate unexpected verification failures or key changes through a separate trusted channel rather than assuming they are benign. Those who do not want to rely on Signal or its external auditors can disable Automatic Key Verification under Privacy > Advanced and continue using manual safety-number checks.







Leave a Reply