SRTP – Secure RTP
♫ Sunday, March 7th, 2010SRTP is an encrypted version of RTP. It also includes SRTCP, which is the secure version of RTCP. This protocol assumes that a key exchange already happened in another protocol, like SIP/SDP offer/answer or another mechanism, like SIP/SDES. Assuming that both ends have an encryption key, SRTP will provide confidentiality, message authentication and replay protection.
From RFC 3711:
“SRTP provides a framework for encryption and message authentication of RTP and RTCP streams (Section 3). SRTP defines a set of default cryptographic transforms (Sections 4 and 5), and it allows new transforms to be introduced in the future (Section 6). With appropriate key management (Sections 7 and 8), SRTP is secure (Sections 9) for unicast and multicast RTP applications (Section 11).
SRTP can achieve high throughput and low packet expansion. SRTP proves to be a suitable protection for heterogeneous environments (mix of wired and wireless networks). To get such features, default transforms are described, based on an additive stream cipher for encryption, a keyed-hash based function for message authentication, and an “implicit” index for sequencing/synchronization based on the RTP sequence number for SRTP and an index number for Secure RTCP (SRTCP).”
Key exchange in SIP/SRTP calls
There are multiple ways to handle key exchange.
- MIKEY, Multimedia Internet Keying, RFC 3830, supports pre-shared keys, PKI-supported key exchange and a few other mechanisms.
- SDES, key exchange using SDP, RFC 4568, assumes protection of the signalling by TLS
- Using DTLS/UDP for key exchange using the same mechanism as TLS/TCP is the IETF recommendation (see this the SRTP/DTLS draft which will be published as RFC 5763)
Links:
- voip-info.org: SRTP
- Wikipedia: Secure RTP, SDES, DTLS
- RFC 3711: Secure RTP
- SIP Sessions: Encryption (Jiri Kuthan)