I was reading trough Whatsapp white paper (and all related questions here) and couldn´f find an answer to this question: are the public keys for the recipient requested by the sender from Whatsapp servers every new message or only at session setup?

I´m asking this to know if Whatsapp, compelled by a government order, can, in theory, create a 'fake' public key for the recipient, which in reality belongs to whatsapp itself, and in turn gain access to the communication between parties. I understand that this possibility exists because the keys are requested from whatsapp servers, but are they requested at every new message (thus making it able to be intercepted at any time if the public keys are swapped) or only at the first communication between parties?

Also, I understood that they use'forward secrecy', which means at every new message a new key-pair is generated, is that correct?


The public key is requested from the sender when you are initiating the session.

You can also verify your keys to see if you are a victim of a MitM attack. All information regarding that can be find in the whitepaper.

The coming quote is an answer to your question about forward secrecy.

Clients exchange messages that are protected with a Message Key using AES256 in CBC mode for encryption and HMAC-SHA256 for authentication.

Forward secrecy is a property of secure communication protocols in which compromise of long-term keys does not compromise past session keys. A implemenation of that property is that whatsapp is doing for achieve this property.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.