A Formal Security Analysis of the Signal Messaging Protocol [PDF]

Hi,

Thanks for reading our paper and asking questions!

When two parties communicate using the Signal Protocol, they share and update their state as they exchange messages. Each message has its own encryption key which is a branch of the tree you refer to. The order they exchange messages affects the way the tree is built. If all the state is exposed, then an adversary would know all the keying material and would be able to derive any message key. However, because Signal shares state that continuously updates, it has a form of "post-compromise security". This means that Alice can have a security guarantee about communication with Bob, even if Bob’s secrets have already been compromised. This is because of the ratcheting mechanism of Signal; if the adversary had access to the tree but then loses access in the future, the tree will change and the adversary will be locked out because the shared state continuously updates and contributes to keying material.

For reference, here is a link to our earlier paper that elaborates on this concept: https://eprint.iacr.org/2016/221

/r/netsec Thread Parent Link - eprint.iacr.org