Your contact list is fundamental to the experiences you love and enjoy on WhatsApp. Contacts lets you know which of your friends and family are on WhatsApp, you can easily message or call them, and it gives you context about who is in your groups. But losing your phone can also mean losing your contact list. Traditionally, WhatsApp has not had the ability to store your contact list in a way that can be easily and automatically recovered in case you lose it. Furthermore, the only place you could add contacts from your mobile device was by typing in a phone number or scanning a QR code.
As part of WhatsApp’s new feature to privately add and manage your contacts on WhatsApp across linked devices, we’re announcing a new encrypted storage system we’ve designed called Identity Proof Linked Storage (IPLS). IPLS allows you to save your contacts and automatically restore them directly through WhatsApp. With IPLS you can now create contacts directly within WhatsApp and choose to sync them to your phone or store them securely only on WhatsApp – giving you the option to create contacts specific to your account. If you use linked devices, it also allows you to seamlessly add and manage contacts no matter which device you use.
If you have multiple accounts on the same phone, such as a work and a personal account, you can now customize your contact list for each account. If you lose your phone, your contact list can be recovered on a newly registered device.
Contact names are stored encrypted in WhatsApp, and we’ve provided this with additional, robust security by using IPLS to discourage access to contacts by anyone but the user.
IPLS includes new privacy technology that protects your contact lists in a privacy-protective way. To further ensure the safety and security of this system, we have collaborated with Cloudflare to offer independent third party audit of its cryptographic properties. The new technology stack was assessed by third-party researchers and NCC Group Cryptography Services, an independent cybersecurity consultancy.
What is ID linked storage?
IPLS is a new system at WhatsApp that allows users to store their contact names encrypted. IPLS allows the client device to store the contact information using a strong encryption key generated on the client device. Retrieving it is based on the client verifying the identity of the primary device.
IPLS is based on two existing pieces of technology already widely used by WhatsApp: important transparency and our Hardware Security Module (HSM).
Certain events related to your phone’s WhatsApp application (such as installation or reinstallation) cause the creation of a new cryptographic key pair associated with your phone number. WhatsApp’s key transparency system publishes records of these changes to the primary device’s identity key in an attachment-only cryptographic file Auditable Key Directory (AKD) which allows WhatsApp clients to automatically verify a user’s encryption key.
Key transparency allows WhatsApp, and the general public, to cryptographically verify whether a particular phone number used for a WhatsApp account is associated with a particular identity key.
The HSMs are employed by WhatsApp end-to-end encrypted backups and ensure private, tamper-proof execution of application logic within WhatsApp data centers in a privacy-protective manner. Data processing within HSM’s security boundaries remains opaque, even for WhatsApp insiders with the highest privileges and physical access to the hardware.
The components of IPLS
The AKD and Cloudflare integration
As mentioned, the first building block of IPLS is WhatsApp’s AKD, which links a customer’s phone number to a customer’s identity key. The primary device identity is used to authenticate the client to ensure that only the owner of the contact encryption key is allowed to restore the contacts.
To strengthen the one-off character of AKD, WhatsApp has enabled Cloudflare to act as an additional witness to the additions to AKD. Cloudflare digitally signs each era, and its associated root hash, and returns a digital signature validation confirming that the directory has not been tampered with. The HSM-based Key Vault validates the Cloudflare signature using Cloudflare’s public key.
WhatsApp is dependent on the availability of the Cloudflare signing service and cannot continue with AKD’s updates if the digital signature of each update is missing.
Additionally, WhatsApp provides verifiable proofs of consistency for the transitions between eras. The auditable proofs are published to an Amazon S3 read-once, read-many instance, which has a public interface through which any entity can retrieve the proofs.
Using AKD and partnering with Cloudflare ensures that there is only one instance of the directory that is validated by a third party.
HSM based key store
To ensure the privacy of user contacts registered on WhatsApp, contact names are first encrypted with a symmetric encryption key generated by the user’s device and then stored in the HSM-based Key Vault. Storing and retrieving the Contact Encryption Key occurs over an end-to-end encrypted channel between the client and the HSM-based Key Vault, keeping the data opaque to WhatsApp during transmission.
Storing the ignition key in the HSM-based Key Vault guarantees its availability even if the user loses their phone. If a user loses their client device and wants to recover their contacts, the new client device can retrieve the ignition key by establishing a secure session with the HSM-based Key Vault. The Key Vault verifies the client’s identity key by accessing AKD through a secure cryptographic protocol and verifying that the client has the associated private key.
Once the client is authenticated, the new client will access the ignition key in the HSM-based Key Vault using the secure channel set up with the client’s identity key and the HSM key.
Privacy-preserving contact storage at WhatsApp scale
IPLS is a new system that discourages unauthorized access to sensitive data by effectively tying data access to publicly verifiable identity key changes published on WhatsApp’s core transparency infrastructure. This approach is similar to the way QR code scanning technology can be used to detect a public key breach in a end-to-end encrypted messaging system.
WhatsApp’s new approach to contacts gives users more ways to easily manage and securely store contacts across devices and accounts without losing them when they switch phones or reinstall WhatsApp. We’re excited about how IPLS has helped make this new feature possible and will ensure that WhatsApp contacts are encrypted and easy to move with users when they get a new phone.