How does ZRTP detect Man-in-the-Middle attacks?
The Diffie-Helman key agreement protocol is vulnerable to a so called Man-in-the-Middle (MitM) attack where a bad guy sits between the good guys and has control of their communication path. To overcome this weakness ZRTP defines counter measures: • A Short Authentication String (SAS) • Retained Secrets (RS) – ZRTP implementations compute the RS from the previously negotiated data and uses the RS for the next session After the key negotiation phase the ZRTP implementations on both peers compute the SAS and present it as short textual information to the user. Both users should read the SAS string and compare the values over the audio connection. If the values on both peers are the same no MitM happened. After verifying the SAS data the user may set the SAS status to verified. If both users set SAS to verified the ZRTP implementations can save this status and are able to use this information during further negotiation sessions. This relieves the user from always verifying the SAS. Once a