Why This Matters: The Foundation of Trust in Encrypted Backups
End-to-end encrypted backups are a cornerstone of user privacy. When you protect your WhatsApp or Messenger chat history with a recovery code, that code must never be accessible to Meta, cloud storage providers, or any third party. Meta’s HSM-based Backup Key Vault achieves this by storing recovery codes in tamper-resistant hardware security modules (HSMs) deployed across a geographically distributed fleet.
Source: engineering.fb.com
Recent updates introduce two major improvements:
- Over-the-air fleet key distribution for Messenger, eliminating the need for app updates when new HSM fleets are deployed.
- Published evidence of secure fleet deployments, allowing any user to verify that new fleets are deployed correctly.
Let’s break down what these changes mean for engineers building similar systems.

Over-the-Air Fleet Key Distribution: How It Works
In WhatsApp, HSM fleet public keys are hardcoded into the application binary. This works but requires an app update every time a new fleet is added. For Messenger, Meta built a mechanism to distribute fleet public keys over the air as part of the HSM response.
The Validation Bundle
The fleet key is delivered inside a validation bundle that is:
- Signed by Cloudflare (independent third party)
- Counter-signed by Meta (service operator)
This dual-signing provides independent cryptographic proof that the fleet key is authentic. Cloudflare also maintains an audit log of every validation bundle, adding an extra layer of transparency.
Simplified Verification Flow
# Pseudocode: Client-side verification of a HSM fleet validation bundle
import hashlib
import json
# Step 1: Receive the validation bundle from the HSM
bundle = get_hsm_validation_bundle(fleet_id="us-east-1")
# Step 2: Verify Cloudflare signature
cloudflare_pub_key = fetch_cloudflare_public_key()
if not verify_signature(bundle["cloudflare_signature"], bundle["payload"], cloudflare_pub_key):
raise Exception("Cloudflare signature invalid")
# Step 3: Verify Meta counter-signature
meta_pub_key = fetch_meta_public_key()
if not verify_signature(bundle["meta_counter_signature"], bundle["payload"], meta_pub_key):
raise Exception("Meta counter-signature invalid")
# Step 4: Extract fleet public key and use it for session establishment
fleet_pub_key = bundle["payload"]["fleet_public_key"]
establish_encrypted_session(fleet_pub_key)
print("✅ Fleet key validated and session secured.")
This design ensures that even if an attacker compromises a single HSM, they cannot impersonate the entire fleet without breaking both Cloudflare’s and Meta’s signatures.
![]()
Transparency in Fleet Deployment: What Meta Is Publishing
Meta now commits to publishing evidence of secure deployment for each new HSM fleet on their blog. This evidence typically includes:
- Fleet public key fingerprint (SHA-256 hash)
- Cloudflare audit log entry ID (linking to Cloudflare’s independent log)
- Deployment timestamp and datacenter region
Why This Matters for the Industry
Most encrypted backup systems rely on a single provider’s word that the infrastructure is secure. Meta’s approach introduces third-party attestation (Cloudflare) and public verifiability – two principles that raise the bar for the entire industry.
Limitations and Caveats
- Infrequent deployments: New fleets are deployed every few years, so the transparency mechanism is rarely exercised. This makes it harder to build automated verification pipelines.
- Audit complexity: Following the steps in the whitepaper’s audit section requires technical expertise. Most users will never verify the evidence.
- Cloudflare dependency: The system’s security now depends on Cloudflare’s honesty and operational security. A compromise at Cloudflare could undermine the guarantees.
For a broader look at how large-scale infrastructure decisions affect security, check out our analysis of Azure Local Now Scales to Thousands of Nodes – a different take on sovereign cloud scaling.

Practical Takeaways for Engineers
- Use HSMs for high-value secrets – Recovery codes, master keys, and signing keys belong in tamper-resistant hardware.
- Employ independent co-signing – A second signature from a trusted third party (like Cloudflare) adds a layer of security that a single compromised key cannot bypass.
- Publish deployment evidence – Even if users don’t check it, the option to verify builds trust and forces internal processes to be auditable.
- Design for over-the-air updates – Hardcoding keys in apps is brittle. Plan for key rotation and fleet expansion without requiring client updates.
Next Steps for Learning
- Read the full whitepaper: “Security of End-To-End Encrypted Backups”
- Explore Python 3.14.3 Released: A Deep Dive into Major New Features to see how language-level improvements can simplify cryptographic code.
- Study the HSM attestation protocol from the TPM 2.0 specification – many of the same concepts apply.
Recommended Reading
- Azure Local Now Scales to Thousands of Nodes – Another approach to sovereign, distributed infrastructure.
- Python 3.14.3 Released: A Deep Dive into Major New Features – New language features that can help write cleaner cryptographic code.