rfc-4383

The Use of Timed Efficient Stream Loss-Tolerant Authentication (TESLA) in the Secure Real-time Transport Protocol (SRTP)

M. Baugher, E. Carrara
date2006-02 streamIETF areasec wgmsec statusPROPOSED STANDARD pages19 canonicalhttps://www.rfc-editor.org/rfc/rfc4383 doi10.17487/RFC4383
This memo describes the use of the Timed Efficient Stream Loss-tolerant Authentication (RFC 4082) transform within the Secure Real-time Transport Protocol (SRTP), to provide data origin authentication for multicast and broadcast data streams. [STANDARDS-TRACK]

Extracted elements (23)

design-rationale §1

Digital signatures solve multicast source authentication but suffer high overhead in computation time and bandwidth. TESLA provides an efficient alternative with delayed per-packet authentication via a one-way key chain.

rtp, realtime, security, crypto, multicast

design-rationale §1

In a group security association, a shared symmetric key cannot provide data origin authentication because any group member can impersonate any other member; the MAC only guarantees the packet was not modified by an outside attacker. This motivates the use of TESLA rather than a simple group MAC.

rtp, realtime, security, crypto, multicast

design-rationale §7

The 80-bit TESLA MAC length is chosen to meet RFC 2104's requirements that MAC length be at least 80 bits and at least half the output size of the underlying hash (SHA-1 = 160 bits). This is intentionally shorter than IPsec's common 96-bit MAC but is sufficient given current cryptanalytic capabilities.

rtp, realtime, crypto, security

design-rationale §4.2

The MKI field necessarily separates the TESLA MAC from the SRTP MAC in the packet layout because SRTP does not cover the MKI in its MAC computation, and changing SRTP to include MKI coverage would require redefining the SRTP specification, which is impossible without breaking existing implementations.

rtp, realtime

interoperability-note §4.2

The TESLA Authenticated Portion is defined as the RTP header plus the Encrypted Portion only, whereas the SRTP Authenticated Portion is extended to include the TESLA authentication extension. The SRTP MAC therefore covers the TESLA MAC tag, ensuring TESLA MAC packet integrity is verified by the outer SRTP integrity check.

rtp, realtime, security

normative-requirement §4.5 SHALL

For SRTCP, the external SRTP authentication tag is MANDATORY when TESLA is used (the E-bit, SRTCP index, and authentication tag are mandatory in SRTCP). The TESLA authentication extension SHALL be inserted before the MKI and authentication tag in the SRTCP packet.

rtp, realtime, security

normative-requirement §4.6 SHALL

For SRTP, the TESLA MAC input M' SHALL be the SRTP TESLA Authenticated Portion (RTP header concatenated with the Encrypted Portion) prepended with the rollover counter: M' = ROC || TESLA Authenticated Portion. For SRTCP, M' SHALL consist of the SRTCP TESLA Authenticated Portion only (RTCP header and Encrypted Portion).

rtp, realtime, crypto

normative-requirement §4.4.2 MUST

If a received SRTP packet is judged to be replayed, it MUST be discarded and the event SHOULD be logged. If the SRTP integrity tag verification fails, the packet MUST likewise be discarded and the event SHOULD be logged.

rtp, realtime, security

normative-requirement §6 RECOMMENDED

It is RECOMMENDED that the SRTP MAC (group-key MAC used for DoS prevention) be truncated to 32 bits, since it serves only as protection against external attackers and not as a source-authentication mechanism.

rtp, realtime, security, crypto

normative-requirement §6 MUST

TESLA implementations MUST support HMAC-SHA1 for both the TESLA MAC and the TESLA PRF. The key chain is defined as K_i = HMAC_SHA1(K_{i+1}, 0) and the MAC key as K'_i = HMAC_SHA1(K_i, 1).

rtp, realtime, crypto

normative-requirement §5 MUST

TESLA MUST be bootstrapped at session setup for parameter exchange and initial key commitment; a digital signature algorithm is RECOMMENDED for this bootstrapping. Time synchronization to bound clock drift D_t is also required out-of-band before the session begins.

rtp, realtime, crypto, security

normative-requirement §4.6 SHALL

The HMAC-SHA1 algorithm SHALL be used to generate the TESLA MAC, applied to the TESLA chain key K'_i and input M'. The HMAC output SHALL be truncated to the n_m left-most bits (default 80 bits).

rtp, realtime, crypto

normative-requirement §4.4.2 MUST NOT

The SRTP replay list MUST NOT be updated based on the SRTP MAC; it MUST contain only indices of packets that have been TESLA-authenticated. Replay list updates occur only after successful TESLA verification.

rtp, realtime, security

normative-requirement §5 SHOULD

To avoid the boundary condition where a key-disclosure packet for the final data packets is lost, null packets SHOULD be sent for d intervals of duration T_int after the stream ceases. The rate of null packets SHOULD match the average rate of the session media stream.

rtp, realtime

normative-requirement §4.4.2 MUST

When a disclosed TESLA key is available for a buffered packet, TESLA verification MUST succeed for the packet to be used; if verification fails, the packet MUST be discarded and the event SHOULD be logged. If the TESLA safety condition does not hold (packet is 'unsafe'), it is RECOMMENDED to discard the packet.

rtp, realtime, security, crypto

normative-requirement §4.2 SHALL

When TESLA is applied to RTP, the TESLA authentication extension SHALL be inserted before the optional SRTP MKI and the recommended SRTP authentication tag in the SRTP packet.

rtp, realtime

normative-requirement §4.7 SHALL

When TESLA is used within SRTP, the default choice of the PRF for both F(x) (key chain derivation) and F'(x) (MAC key derivation) SHALL be HMAC-SHA1. Alternative PRFs SHALL follow the common SRTP guidelines for adding new security parameters.

rtp, realtime, crypto

protocol-element §6

Default SRTP TESLA parameters: TESLA PRF is HMAC-SHA1; key-chain output length n_p = 160 bits; F'-output length n_f = 160 bits; TESLA MAC algorithm is HMAC-SHA1 truncated to n_m = 80 bits. These defaults add 38 bytes per packet, which may exceed 50% overhead for some applications.

rtp, realtime, crypto

protocol-element §4.3

When TESLA is used, the SRTP cryptographic context SHALL be extended with 11 transform-dependent parameters: TESLA PRF identifier, key-chain output length n_p, F'-output length n_f, TESLA MAC identifier, TESLA MAC output length n_m, session start T_0, interval duration T_int, key-disclosure delay d, clock-drift bound D_t, key-chain length n_c, and the initial committed key.

rtp, realtime, crypto

security-consideration §7

SRTP TESLA security depends on the effective security of external systems that perform bootstrapping (key commitment) and time synchronization (clock-drift bound D_t). Compromise of these external systems undermines the TESLA source authentication guarantees; they are explicitly out of scope for this specification.

rtp, realtime, security

security-consideration §7

TESLA requires receiver buffering before authentication, making receivers vulnerable to denial-of-service attacks from floods of bogus packets. The external group-key SRTP MAC (MAY be used) provides a first line of defense against external DoS; its short 32-bit size is intentional since an adversary must average 2^31 attempts to forge an accepted packet before the TESLA check catches it.

rtp, realtime, security, multicast

security-consideration §7

TESLA security depends on correct computation of the 'safety condition' (Section 3.5 of RFC 4082) to verify that a disclosed key could not have been known by an attacker at the time the corresponding packet was sent. Packets that fail the safety condition are considered unauthenticated.

rtp, realtime, security, crypto

wire-format §4.1

The TESLA authentication extension appended per-packet contains three mandatory fields: a 32-bit time interval identifier i, a variable-length Disclosed Key (K_(i-d)), and a variable-length TESLA MAC. Field lengths for Disclosed Key and TESLA MAC are established by the SRTP cryptographic context parameters.

rtp, realtime, crypto