I was reading through a WhatsApp whitepaper (and all related questions here) and couldn't 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?

1 Answer 1


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 following 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 the compromise of long-term keys does not compromise past session keys. An implementation of that property is what WhatsApp is doing to achieve this property.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .