Verifying Sessions Without the 60-Digit Ritual

WhatsApp has introduced a cryptographic security feature that automatically verifies that a conversation is protected by end-to-end encryption. The underlying technology, called key transparency, requires no extra steps from the user. It is designed to confirm that the public key you are using to encrypt messages to a contact is the same one everyone else uses for that contact, reducing the risk of a person-in-the-middle attack where an attacker substitutes their own key.

The foundation of this deployment is an open-source Rust library called Auditable Key Directory (AKD). It lets anyone manage, and more importantly verify, an append-only directory of public keys mapped to user accounts.

The Verification Problem at Scale

End-to-end encryption is only as strong as the assurance that the “ends” — the two devices in a conversation — hold authentic keys for each other. WhatsApp has long offered a manual security code verification feature for this. Under a contact's info page, users can compare a 60-digit code or scan a QR code in person. This is one of the strongest guarantees available, but it is cumbersome and poorly suited to real-world messaging patterns:

  • In 1:1 chats, users change devices and keys over time, requiring repeated checks.
  • In groups, there is no single group code. Each pair of participants has a unique code, and any membership or key change invalidates all affected pairs.
  • In large groups the checks explode combinatorially — a group of 100 people involves 4,950 pairs to verify.

The new system does not replace QR code scanning. It complements it in three ways: it lets a single client run a check against the directory without out-of-band coordination, it provides a consistency mechanism when manual checks are impractical, and it acts as a lightweight first-line verification that encourages more users to confirm their sessions.

How Key Transparency Works

WhatsApp’s implementation builds on the academic lineage of CONIKS, SEEMless, and the more recent Parakeet papers. The server maintains an append-only directory of public keys. When a user registers, re-registers, or adds a device, the change is added to the directory as part of a new epoch. The GitHub-hosted AKD crate handles proof generation and verification for inclusion and key history. The system operates in two layers:

  1. The WhatsApp directory: a high-volume, efficiently batched AKD that maps user accounts to public keys.
  2. A third-party audit record: every change to the directory produces an audit proof written to public storage. Anyone can verify that the directory history has not been rewritten and that changes are strictly append-only, without exposing which keys belong to which users or revealing usage patterns.

Because the AKD is updated in discrete epochs that commit a batch of changes atomically, the system can handle WhatsApp’s scale of tens of thousands of key changes per minute. A distributed queue collects pending changes between epochs, and shared Merkle tree paths in the database enable efficient batch inserts. Epoch frequency is a tunable parameter.

Security-conscious users will see this automated check run when they open the verify security code page for a contact. If the check surfaces a problem, the recommendation is to fall back to the full manual QR code or 60-digit verification.

It is worth restating that the directory holds only public keys. Public keys encrypt messages; the private keys that decrypt them never leave the user's device. A record of public keys therefore cannot be used to read anyone's content or infer who they talk to.

Rollout and Access

WhatsApp is hosting and operating an AKD for all its users across platforms. The automatic verification on the security code page is now available on WhatsApp for Android and iOS. Users who prefer to avoid relying on WhatsApp’s servers entirely can still use the traditional manual verification process.

For deeper details on data flows, formats, and attack surfaces, the engineering rationale is spelled out in the WhatsApp Key Transparency whitepaper, and the underlying crate is available on GitHub for independent auditing.