ZRTP (composed of Z and
Real-time Transport Protocol) is a cryptographic
key-agreement protocol
In cryptography, a key-agreement protocol is a protocol whereby two (or more) parties generate a cryptographic Key (cryptography), key as a function of information provided by each honest party so that no party can predetermine the resulting value ...
to negotiate the
keys for
encryption
In Cryptography law, cryptography, encryption (more specifically, Code, encoding) is the process of transforming information in a way that, ideally, only authorized parties can decode. This process converts the original representation of the inf ...
between two end points in a
Voice over IP
Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables voice calls to be transmitted as ...
(VoIP) phone telephony call based on the
Real-time Transport Protocol. It uses
Diffie–Hellman key exchange
Diffie–Hellman (DH) key exchangeSynonyms of Diffie–Hellman key exchange include:
* Diffie–Hellman–Merkle key exchange
* Diffie–Hellman key agreement
* Diffie–Hellman key establishment
* Diffie–Hellman key negotiation
* Exponential ke ...
and the
Secure Real-time Transport Protocol (SRTP) for encryption. ZRTP was developed by
Phil Zimmermann, with help from
Bryce Wilcox-O'Hearn, Colin Plumb,
Jon Callas and Alan Johnston and was submitted to the
Internet Engineering Task Force
The Internet Engineering Task Force (IETF) is a standards organization for the Internet standard, Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster ...
(IETF) by Zimmermann, Callas and Johnston on March 5, 2006 and published on April 11, 2011 as .
Overview
ZRTP ("Z" is a reference to its inventor, Zimmermann; "RTP" stands for Real-time Transport Protocol) is described in the
Internet Draft as a ''"key agreement protocol which performs Diffie–Hellman key exchange during call setup in-band in the Real-time Transport Protocol (RTP) media stream which has been established using some other signaling protocol such as
Session Initiation Protocol (SIP). This generates a shared secret which is then used to generate keys and salt for a Secure RTP (SRTP) session."'' One of ZRTP's features is that it does not rely on SIP signaling for the key management, or on any servers at all. It supports
opportunistic encryption by auto-sensing if the other VoIP client supports ZRTP.
This protocol does not require prior shared secrets or rely on a
Public key infrastructure
A public key infrastructure (PKI) is a set of roles, policies, hardware, software and procedures needed to create, manage, distribute, use, store and revoke digital certificates and manage public-key encryption.
The purpose of a PKI is to fac ...
(PKI) or on certification authorities, in fact ephemeral Diffie–Hellman keys are generated on each session establishment: this allows the complexity of creating and maintaining a trusted third-party to be bypassed.
These keys contribute to the generation of the session secret, from which the session key and parameters for SRTP sessions are derived, along with previously shared secrets (if any): this gives protection against
man-in-the-middle (MiTM) attacks, so long as the attacker was not present in the first session between the two endpoints.
ZRTP can be used with any signaling protocol, including SIP,
H.323,
Jingle
A jingle is a short song or tune used in advertising and for other commercial uses. Jingles are a form of sound branding. A jingle contains one or more hooks and meanings that explicitly promote the product or service being advertised, usually ...
, and
distributed hash table
A distributed hash table (DHT) is a Distributed computing, distributed system that provides a lookup service similar to a hash table. Key–value pairs are stored in a DHT, and any participating node (networking), node can efficiently retrieve the ...
systems. ZRTP is independent of the signaling layer, because all its key negotiations occur via the RTP media stream.
ZRTP/S, a ZRTP protocol extension, can run on any kind of legacy telephony networks including GSM, UMTS, ISDN, PSTN,
SATCOM,
UHF/
VHF radio, because it is a narrow-band bitstream-oriented protocol and performs all key negotiations inside the bitstream between two endpoints.
Alan Johnston named the protocol ZRTP because in its earliest Internet drafts it was based on adding header extensions to RTP packets, which made ZRTP a variant of RTP. In later drafts the packet format changed to make it syntactically distinguishable from RTP. In view of that change, ZRTP is now a
pseudo-acronym.
Authentication
The
Diffie–Hellman key exchange
Diffie–Hellman (DH) key exchangeSynonyms of Diffie–Hellman key exchange include:
* Diffie–Hellman–Merkle key exchange
* Diffie–Hellman key agreement
* Diffie–Hellman key establishment
* Diffie–Hellman key negotiation
* Exponential ke ...
by itself does not provide protection against a man-in-the-middle attack. To ensure that the attacker is indeed not present in the first session (when no shared secrets exist), the ''Short Authentication String'' (SAS) method is used: the communicating parties verbally cross-check a shared value displayed at both endpoints. If the values do not match, a man-in-the-middle attack is indicated. A specific attack theorized against the ZRTP protocol involves creating a synthetic voice of both parties to read a bogus SAS which is known as a "
Rich Little attack", but this class of attack is not believed to be a serious risk to the protocol's security.
The SAS is used to authenticate the key exchange, which is essentially a
cryptographic hash
A cryptographic hash function (CHF) is a hash algorithm (a map of an arbitrary binary string to a binary string with a fixed size of n bits) that has special properties desirable for a cryptographic application:
* the probability of a particu ...
of the two Diffie–Hellman values. The SAS value is rendered to both ZRTP endpoints. To carry out authentication, this SAS value is read aloud to the communication partner over the voice connection. If the values on both ends do not match, a man-in-middle attack is indicated; if they do match, a man-in-the-middle attack is highly unlikely. The use of hash commitment in the DH exchange constrains the attacker to only one guess to generate the correct SAS in the attack, which means the SAS may be quite short. A 16-bit SAS, for example, provides the attacker only one chance out of 65536 of not being detected.
Key continuity
ZRTP provides a second layer of authentication against a MitM attack, based on a form of key continuity. It does this by caching some hashed key information for use in the next call, to be mixed in with the next call's DH shared secret, giving it key continuity properties analogous to
SSH. If the MitM is not present in the first call, he is locked out of subsequent calls. Thus, even if the SAS is never used, most MitM attacks are stopped because the MitM was not present in the first call.
Operating environment
* ZRTP protocol has been implemented and used on the following platforms:
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Android
* ZRTP protocol has been implemented in the following languages:
C,
C++,
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
* ZRTP protocol has been used successfully on the following transport media:
WiFi
Wi-Fi () is a family of wireless network protocols based on the IEEE 802.11 family of standards, which are commonly used for Wireless LAN, local area networking of devices and Internet access, allowing nearby digital devices to exchange data by ...
,
UMTS
The Universal Mobile Telecommunications System (UMTS) is a 3G mobile cellular system for networks based on the GSM standard. UMTS uses Wideband Code Division Multiple Access, wideband code-division multiple access (W-CDMA) radio access technolog ...
,
EDGE,
GPRS,
Satellite IP modem,
GSM CSD,
ISDN
Integrated Services Digital Network (ISDN) is a set of communication standards for simultaneous digital transmission of voice, video, data, and other network services over the digitalised circuits of the public switched telephone network. ...
Implementations
ZRTP has been implemented as
*
GNU ZRTP which is used in
Twinkle
Twinkle may refer to:
* Twinkling, the variation of brightness of distant objects
People
* Twinkle (singer) (1948–2015), born Lynn Annette Ripley, English singer-songwriter
* Twinkle Bajpai, Indian singer, television and film actress
* Twinkl ...
* GNU ZRTP4J which is used in
Jitsi
Jitsi (from — "wires") is a collection of free and open-source software, free and open-source multiplatform Voice over IP, voice (VoIP), Video conference, video conferencing and instant messaging applications for the Web platform, Windows, Li ...
(formerly SIP Communicator).
* ortp for use in
Linphone.
* libzrtp which can be used in
FreeSWITCH.
*
Signal
A signal is both the process and the result of transmission of data over some media accomplished by embedding some variation. Signals are important in multiple subject fields including signal processing, information theory and biology.
In ...
and its predecessor,
RedPhone, used ZRTP for encrypted calls on Android and iOS. As of March 2017, Signal's voice and video calling functionality uses the app's
Signal Protocol channel for authentication instead of ZRTP.
* CSipSimple is a free application for Android OS which fully supports ZRTP
*
PhonerLite softphone for Windows supports ZRTP
Commercial implementations of ZRTP are available in RokaCom from RokaCom, and PrivateWave Professional from PrivateWave and more recently in Silent Phone from Silent Circle, a company founded by Zimmermann. There is also Softphone from Acrobits.
Draytek support ZRTP in some of their VoIP hardware and software.
A list of free SIP Providers with ZRTP support has been published.
[
]
References
External links
RFC 6189
— ZRTP: Media Path Key Agreement for Unicast Secure RTP
{{DEFAULTSORT:Zrtp
Cryptographic protocols