Project revival: TwoSquares is preserving GNU Telephony's history and preparing an open-source revival. Contributors and collaborators are welcome.
GNU Telephony
Open-source telephony, preserved and being revived
From the historical GNU Telephony project

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.

ProjectGNU ZRTP
Doc TypeTechnical FAQ
Original Date2007-04-10 (Revised 2011-09-02)
RestoredOctober 2026
LicenseGFDL 1.2+
SourceHistorical Archive

§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

FeatureZRTP (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 + SASCentralized SIP ProxiesX.509 Certificates / Fingerprints
**Vulnerability to Proxy Eavesdropping**ImmuneHigh (Proxies see keys)Immune if fingerprints verified
**Setup Complexity**Zero configurationTLS setup requiredCertificate management required
**Retained Secret Caching**Yes (Key Continuity)NoNo
This page reconstructs material originally published at gnutelephony.org. It has been formatted and annotated for archival preservation.
Licensing & Attribution

Historical source: GNU ZRTP. Reproduced or adapted under the GNU Free Documentation License (GFDL) 1.2 or later where stated.

Document Revision Record

Historical revision date: 2007-04-10 (Revised 2011-09-02). Restored to permanent static archive in October 2026.