Dev

Trail of Bits Audits Signal Automatic Key Verification

Trail of Bits disclosed its Merkle-tree-based verification system as a third-party auditor supporting Signal's automatic key verification.

8 min read Reviewed & edited by the SINGULISM Editorial Team

Trail of Bits Audits Signal Automatic Key Verification
Photo by Towfiqu barbhuiya on Unsplash

Every Signal conversation begins by querying Signal’s servers for the public key tied to the user’s phone number. Reporting on Lobsters of blog.trailofbits.com via dangroshev highlights the risk hidden in this premise. If the server returns an incorrect public key, encrypted messages could reach an attacker. Previously, the only way to detect such substitution was direct comparison of safety numbers.

Signal has introduced automatic key verification as an alternative. It is a mechanism to attest to the security of conversations without requiring users to directly compare numbers. Trail of Bits has built and operates one of the three auditors that underpin the trustworthiness of this mechanism. With an implementation written independently from scratch, it continuously checks the operation of automatic key verification.

Every Signal chat starts the same way: the client asks the Signal server for the public key associated with your contact’s phone number.

The above quote shows that key distribution is the starting point of trust. The core of this announcement is a structure in which third parties attest to the legitimacy of key distribution.

Conventional Verification Using Safety Numbers

In conventional Signal, comparing safety numbers was the primary means of detecting substitution. Users verify numbers in person. Or they compare numbers over a separate trusted channel. This method is cryptographically robust. Because key fingerprints are compared by the human eye, device owners can directly detect server-side misconduct.

However, the operational burden is significant. It takes effort to verify individually with every contact. If users skip the procedure, detection capability declines. For organizational use, verification becomes more cumbersome as the number of devices grows. Balancing convenience and security was a challenge.

For endpoint defense in general, implementation flaws continue to undermine trust. As shown in Microsoft Defender Privilege Escalation Vulnerability “RoguePlanet” Disclosed, failures in privilege management undermine the premises of detection mechanisms. For key verification as well, procedures left entirely to users have limited coverage. Demand for automated attestation had been growing.

On the mobile platform side as well, combining on-device processing with external verification is becoming important. Apple Intelligence Fully Launches, Siri AI Overhaul Coming in iOS 27 discusses smarter devices and platform updates. Messaging security is also moving toward being supported not by devices alone but by distributed verification infrastructure. Automatic key verification is a feature in line with that trend.

How Automatic Key Verification Works and Overview

Automatic key verification is a type of approach called key transparency. It visualizes the mapping between phone numbers and public keys in a globally consistent form. The aim is to make it difficult to conceal equivocation attacks. In Signal’s application, all keys for each user are registered in a global map. The application periodically runs self-checks. It is a mechanism to confirm that registered keys belong to one’s own devices.

If verification fails, a warning is displayed to the user. The message “Automatic Key Verification is currently unavailable for your device” is used. Failure to verify the log also triggers a warning. Inclusion of an unexpected key also triggers a warning. Signal’s documentation explains that it may also become unavailable for other reasons.

The correctness of the global map is attested by signatures from external auditors. Signal’s key transparency server distributes the head value of a Merkle tree. Client devices obtain auditor-signed head values. They accept only head values belonging to a lineage endorsed by all enrolled auditors. The design confirms through a chain of signatures that the key set at a given point in time is identical globally.

There are currently three enrolled auditors. One auditor is operated by Signal. One auditor is operated by Cloudflare. One auditor is operated by Trail of Bits. Client devices require signatures from all three. Verification cannot succeed on the claim of a single operator alone. Multi-party attestation is required.

Role and Implementation Details of the

Third-Party Auditor

Trail of Bits’ auditor externally verifies the integrity of the user-to-public-key mapping. It checks that the mapping is globally consistent. It checks that the format is correct. It checks that no entries are concealed. Each time a new entry is added, it updates its local replica. The replica is stored as a Merkle tree.

The auditor periodically signs the head of the tree. It uses a signing key held only by the auditor. It pledges to sign only a consistent, single lineage of the Merkle tree. Thanks to this pledge, users can conclude that the key set they see is identical to that seen by all other users. It is a structure in which the auditor does not endorse a fork in the lineage.

The implementation approach is characterized by independent development based on the specification. It does not reuse existing code. It is an independent implementation written from scratch. The aim is to make misinterpretations of the specification easier to detect. The aim is to reduce the risk of a flaw in a single implementation spreading system-wide. Mutual checks through diverse implementations strengthen the robustness of the transparency infrastructure.

In terms of development culture, there is a growing movement to publish independent implementations for scrutiny. AI Video Generator MoneyPrinterTurbo Surges on GitHub describes how publicly released code rapidly attracted attention. For cryptographic infrastructure as well, the combination of reproducible implementations and external verification is the source of trust. Trail of Bits’ approach follows this principle.

7-Day Lineage Requirement and Warning Mechanism

Client devices require a lineage endorsed by all auditors within the last 7 days. When obtaining the head value from Signal’s key transparency server, they check for the presence of valid auditor signatures. If the signatures are not complete, they display a warning and treat automatic key verification as failed. This effectively caps the period during which unilateral server misconduct can be concealed from users.

Even a fully malicious server can maintain a forked view for at most one week. After one week, clients raise a warning. An attacker cannot distribute inconsistent key sets over the long term. There is no guarantee of evading detection even for short-term misconduct. This assumes auditors continue to sign the head.

This design balances availability and strictness. It leaves room to tolerate delays or failures in obtaining signatures. It allows operational recovery within the 7-day window. At the same time, it does not grant indefinite grace. It makes the unverifiable state explicit to users. By displaying a warning, users can choose alternatives such as manual verification.

Operationally, the uptime of all three auditors determines overall availability. If even one falls behind in signing, clients cannot approve the lineage. Redundancy is ensured through operator diversity. Key management and monitoring of the signing infrastructure are critical. Operating a transparency log requires more frequent signature updates than a conventional public-key infrastructure.

Technical Significance and Background of the

Independent Implementation

Key transparency shares the same concept as certificate transparency. It publishes the entire log in a tamper-evident structure. It cryptographically attests that all parties are seeing the same log. Merkle trees are the underlying technology for this. Leaves store key entries. Inclusion can be proven via the path from root to leaf. Signing the head fixes the log at a point in time.

Trail of Bits’ choice of an independent implementation is significant. It can surface ambiguities in the specification at implementation time. Behavior can be cross-checked against Signal’s and Cloudflare’s implementations. Interoperability issues can be found early. Defects based on common misunderstandings can be reduced. Auditor diversity must be underpinned not only by institutional independence but also by technical independence.

Binding phone numbers to keys directly affects user experience. Key sets change with number reuse or device changes. Keys also increase with multi-device use. The global map must track such changes while maintaining consistency. Self-checks confirm that no unexpected device keys have been added to one’s own number. This helps detect hijacking or misregistration.

A future challenge is guiding users when warnings appear. Even if detection works technically, harm cannot be prevented unless users respond appropriately. Guidance toward manual safety-number verification needs to be clear. Recovery procedures on the operator side are also important. If auditors publish operational reports, trust in the transparency infrastructure will increase further.

Editorial Opinion

In the short term, automatic verification is expected to become more widespread as updates roll out to supported devices. If the use of warnings becomes established, anomaly detection for key distribution could become embedded in practice. The operational load on auditors and the stability of the signing infrastructure will be the immediate focus.

In the long term, key transparency is expected to become established as a standard feature of messaging infrastructure. The third-party audit framework could extend to key management by other providers. Operational knowledge from transparency logs is expected to influence the design of authentication infrastructure as a whole.

The remaining issue is the clarity of user actions and recovery procedures when warnings appear. Whether the 7-day grace period is sufficient to prevent actual harm needs verification. Where should the balance between convenience and strictness lie?

References

Frequently Asked Questions

What is Signal's automatic key verification?
It is a mechanism that publishes the mapping between phone numbers and public keys as a global map, and devices confirm its correctness through self-checks. It supplements the conventional manual comparison of safety numbers. In case of an anomaly, it displays a warning to notify users.
What does Trail of Bits' auditor do?
It holds a replica of the key mapping in a Merkle tree and periodically signs the head. It signs only a consistent, single lineage. The complete set of three signatures, including Signal and Cloudflare, attests to the overall consistency.
What happens if auditor signatures are missing?
Devices require a lineage endorsed by all auditors within the last 7 days. They do not accept head values that do not meet the requirement. Automatic key verification is treated as failed, and a warning is displayed.
Source: Lobsters

Comments

← Back to Home