ZRTP Frequently Asked Questions (FAQ)
The authoritative historical FAQ addressing the security properties, cryptographic assumptions, Diffie-Hellman negotiations, and user verification mechanisms of the ZRTP protocol.
Historical FAQ Reference
This document is preserved for historical study of early end-to-end voice encryption debates. It reflects the state of protocol analysis circa 2007-2011.
§1Fundamentals of ZRTP
**Q: What does ZRTP stand for?** A: ZRTP stands for "Zimmermann Real-time Transport Protocol", named after Phil Zimmermann, creator of Pretty Good Privacy (PGP) and lead author of the protocol specification.
**Q: How is ZRTP different from SRTP?** A: SRTP (Secure Real-time Transport Protocol, RFC 3711) is the encryption mechanism-the symmetric cipher (typically AES-128 or AES-256 in Counter Mode) that scrambles audio packets. SRTP, however, has no built-in way to agree upon encryption keys. ZRTP is the key agreement protocol that negotiates and authenticates the keys directly through the RTP connection.
**Q: Why not just use SIP with TLS and SIPS URLs?** A: SIPS and TLS only encrypt the signaling hop-by-hop between SIP proxies. An untrusted proxy or telecom provider still sees every SIP message in the clear. Furthermore, signaling encryption does nothing to protect the actual voice RTP packets, which travel over separate UDP ports.
§2Cryptographic Architecture & The SAS
**Q: What prevents a Man-in-the-Middle (MitM) attack?** A: ZRTP utilizes a Short Authentication String (SAS). After executing an ephemeral Diffie-Hellman exchange, both endpoints compute a cryptographic hash over the session state. The first 16 bits of this hash are converted into a two-word phonetic string (from the PGP word list) or four alphanumeric characters. Because an attacker would have to compute two distinct Diffie-Hellman exchanges to intercept both legs of the conversation, their hash values will not match. When the human callers speak the SAS words aloud, any interception is instantly exposed.
**Q: What if the attacker impersonates the caller's voice?** A: Real-time human vocal biometric synthesis in the middle of a live conversation is extraordinarily difficult, particularly when the words to be spoken are randomized and only revealed after the connection is established. Callers who know each other's voices will immediately recognize unfamiliar cadence, delay, or robotic synthesis.
**Q: What is "Key Continuity" and why does it matter?** A: ZRTP caches a shared cryptographic secret (retained secret) generated during the initial authenticated call. On all subsequent calls between those same two endpoints, the cached secret is blended into the new Diffie-Hellman key derivation. Even if callers fail to check the SAS on later calls, a MitM attacker who was not present during the very first call cannot decrypt the session.
§3Comparison with Other VoIP Security Protocols
| Feature | ZRTP (RFC 6189) | SDES (RFC 4568) | DTLS-SRTP (RFC 5764) |
|---|---|---|---|
| **Key Exchange Path** | In-Band Media (RTP) | Out-of-Band (SIP SDP) | In-Band Media (UDP) |
| **Trust Model** | Peer-to-Peer + SAS | Centralized SIP Proxies | X.509 Certificates / Fingerprints |
| **Vulnerability to Proxy Eavesdropping** | Immune | High (Proxies see keys) | Immune if fingerprints verified |
| **Setup Complexity** | Zero configuration | TLS setup required | Certificate management required |
| **Retained Secret Caching** | Yes (Key Continuity) | No | No |
This page reconstructs material originally published at gnutelephony.org. It has been formatted and annotated for archival preservation.
Historical source: GNU ZRTP. Reproduced or adapted under the GNU Free Documentation License (GFDL) 1.2 or later where stated.
Historical revision date: 2007-04-10 (Revised 2011-09-02). Restored to permanent static archive in October 2026.