diff options
Diffstat (limited to 'doc/rfc/rfc4383.txt')
-rw-r--r-- | doc/rfc/rfc4383.txt | 1067 |
1 files changed, 1067 insertions, 0 deletions
diff --git a/doc/rfc/rfc4383.txt b/doc/rfc/rfc4383.txt new file mode 100644 index 0000000..c01fb35 --- /dev/null +++ b/doc/rfc/rfc4383.txt @@ -0,0 +1,1067 @@ + + + + + + +Network Working Group M. Baugher +Request for Comments: 4383 Cisco +Category: Standards Track E. Carrara + Royal Institute of Technology + February 2006 + + + The Use of Timed Efficient Stream Loss-Tolerant Authentication (TESLA) + in the Secure Real-time Transport Protocol (SRTP) + +Status of This Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2006). + +Abstract + + 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. + + + + + + + + + + + + + + + + + + + + + + + +Baugher & Carrara Standards Track [Page 1] + +RFC 4383 TESLA-SRTP February 2006 + + +Table of Contents + + 1. Introduction ....................................................2 + 1.1. Notational Conventions .....................................3 + 2. SRTP ............................................................3 + 3. TESLA ...........................................................4 + 4. Usage of TESLA within SRTP ......................................5 + 4.1. The TESLA Extension ........................................5 + 4.2. SRTP Packet Format .........................................6 + 4.3. Extension of the SRTP Cryptographic Context ................7 + 4.4. SRTP Processing ............................................8 + 4.4.1. Sender Processing ...................................9 + 4.4.2. Receiver Processing .................................9 + 4.5. SRTCP Packet Format .......................................11 + 4.6. TESLA MAC .................................................13 + 4.7. PRFs ......................................................13 + 5. TESLA Bootstrapping and Cleanup ................................14 + 6. SRTP TESLA Default Parameters ..................................14 + 7. Security Considerations ........................................15 + 8. Acknowledgements ...............................................16 + 9. References .....................................................17 + 9.1. Normative References ......................................17 + 9.2. Informative References ....................................17 + +1. Introduction + + Multicast and broadcast communications introduce some new security + challenges compared to unicast communication. Many multicast and + broadcast applications need "data origin authentication" (DOA), or + "source authentication", in order to guarantee that a received + message had originated from a given source, and was not manipulated + during the transmission. In unicast communication, a pairwise + security association between one sender and one receiver can provide + data origin authentication using symmetric-key cryptography (such as + a message authentication code, MAC). When the communication is + strictly pairwise, the sender and receiver agree upon a key that is + known only to them. + + In groups, however, a key is shared among more than two members, and + this symmetric-key approach does not guarantee data origin + authentication. When there is a group security association [RFC4046] + instead of a pairwise security association, any of the members can + alter the packet and impersonate any other member. The MAC in this + case only guarantees that the packet was not manipulated by an + attacker outside the group (and hence not in possession of the group + key), and that the packet was sent by a source within the group. + + + + + +Baugher & Carrara Standards Track [Page 2] + +RFC 4383 TESLA-SRTP February 2006 + + + Some applications cannot tolerate source ambiguity and need to + identify the true sender from any other group member. A common way + to solve the problem is by use of asymmetric cryptography, such as + digital signatures. This method, unfortunately, suffers from high + overhead in terms of time (to sign and verify) and bandwidth (to + convey the signature in the packet). + + Several schemes have been proposed to provide efficient data origin + authentication in multicast and broadcast scenarios. The Timed + Efficient Stream Loss-tolerant Authentication (TESLA) is one such + scheme. + + This memo specifies TESLA authentication for SRTP. SRTP TESLA can + provide data origin authentication to RTP applications that use group + security associations (such as multicast RTP applications) so long as + receivers abide by the TESLA security invariants [RFC4082]. + +1.1. Notational Conventions + + The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [RFC2119]. + + This specification assumes that the reader is familiar with both SRTP + and TESLA. Few of their details are explained in this document, and + the reader can find them in their respective specifications, + [RFC3711] and [RFC4082]. This specification uses the same + definitions as TESLA for common terms and assumes that the reader is + familiar with the TESLA algorithms and protocols [RFC4082]. + +2. SRTP + + The Secure Real-time Transport Protocol (SRTP) [RFC3711] is a profile + of RTP, which can provide confidentiality, message authentication, + and replay protection to the RTP traffic and to the RTP control + protocol, the Real-time Transport Control Protocol (RTCP). Note that + the term "SRTP" may often be used to indicate SRTCP as well. + + SRTP is a framework that allows new security functions and new + transforms to be added. SRTP currently does not define any mechanism + to provide data origin authentication for group security + associations. Fortunately, it is straightforward to add TESLA to the + SRTP cryptographic framework. + + The TESLA extension to SRTP is defined in this specification, which + assumes that the reader is familiar with the SRTP specification + [RFC3711], its packet structure, and its processing rules. TESLA is + + + + +Baugher & Carrara Standards Track [Page 3] + +RFC 4383 TESLA-SRTP February 2006 + + + an alternative message-authentication algorithm that authenticates + messages from the source when a key is shared among two or more + receivers. + +3. TESLA + + TESLA provides delayed per-packet data authentication and is + specified in [RFC4082]. + + In addition to its SRTP data-packet definition given here, TESLA + needs an initial synchronization protocol and initial bootstrapping + procedure. The synchronization protocol allows the sender and the + receiver to compare their clocks and determine an upper bound of the + difference. The synchronization protocol is outside the scope of + this document. + + TESLA also requires an initial bootstrapping procedure to exchange + needed parameters and the initial commitment to the key chain + [RFC4082]. For SRTP, it is assumed that the bootstrapping is + performed out-of-band, possibly using the key management protocol + that is exchanging the security parameters for SRTP, e.g., [RFC3547, + RFC3830]. Initial bootstrapping of TESLA is outside the scope of + this document. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Baugher & Carrara Standards Track [Page 4] + +RFC 4383 TESLA-SRTP February 2006 + + +4. Usage of TESLA within SRTP + + The present specification is an extension to the SRTP specification + [RFC3711] and describes the use of TESLA with only a single key chain + and delayed-authentication [RFC4082]. + +4.1. The TESLA Extension + + TESLA is an OPTIONAL authentication transform for SRTP. When used, + TESLA adds the fields shown in Figure 1 per-packet. The fields added + by TESLA are called "TESLA authentication extensions," whereas + "authentication tag" or "integrity protection tag" indicate the + normal SRTP integrity protection tag, when the SRTP master key is + shared by more than two endpoints [RFC3711]. + + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | i | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ~ Disclosed Key ~ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ~ TESLA MAC ~ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 1. The "TESLA authentication extension". + + i: 32 bit, MANDATORY + Identifier of the time interval i, corresponding to the key K_i, + which is used to calculate the TESLA MAC of the current packet + (and other packets sent in the current time interval i). + + Disclosed Key: variable length, MANDATORY + The disclosed key (K_(i-d)), which can be used to authenticate + previous packets from earlier time intervals [RFC4082]. A + Section 4.3 parameter establishes the size of this field. + + TESLA MAC (Message Authentication Code): variable length, MANDATORY + The MAC computed using the key K'_i (derived from K_i) + [RFC4082], which is disclosed in a subsequent packet (in the + Disclosed Key field). The MAC coverage is defined in Section + 4.6. A Section 4.3 parameter establishes the size of this + field. + + + + + + + + + +Baugher & Carrara Standards Track [Page 5] + +RFC 4383 TESLA-SRTP February 2006 + + +4.2. SRTP Packet Format + + Figure 2 illustrates the format of the SRTP packet when TESLA is + applied. When applied to RTP, the TESLA authentication extension + SHALL be inserted before the (optional) SRTP MKI and (recommended) + authentication tag (SRTP MAC). + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<+<+ + |V=2|P|X| CC |M| PT | sequence number | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + | timestamp | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + | synchronization source (SSRC) identifier | | | + +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | | + | contributing source (CSRC) identifiers | | | + | .... | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + | RTP extension (OPTIONAL) | | | ++>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| | payload ... | | | +| | +-------------------------------+ | | +| | | RTP padding | RTP pad count | | | ++>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<+ | +| | i | | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| ~ Disclosed Key ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| ~ TESLA MAC ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<|-+ +| ~ MKI ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| ~ MAC ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| | | ++- Encrypted Portion TESLA Authenticated Portion ---+ | + | + Authenticated Portion ---+ + + Figure 2. The format of the SRTP packet when TESLA is applied. + + As in SRTP, the "Encrypted Portion" of an SRTP packet consists of the + encryption of the RTP payload (including RTP padding when present) of + the equivalent RTP packet. + + + + + + +Baugher & Carrara Standards Track [Page 6] + +RFC 4383 TESLA-SRTP February 2006 + + + The "Authenticated Portion" of an SRTP packet consists of the RTP + header, the Encrypted Portion of the SRTP packet, and the TESLA + authentication extension. Note that the definition is extended from + [RFC3711] by the inclusion of the TESLA authentication extension. + + The "TESLA Authenticated Portion" of an SRTP packet consists of the + RTP header and the Encrypted Portion of the SRTP packet. As shown in + Figure 2, the SRTP MAC covers up to the MKI field but does not + include the MKI. It is necessary for packet integrity that the + SRTP-TESLA MAC tag be covered by the SRTP integrity check. SRTP does + not cover the MKI field (because it does not need to be covered for + SRTP packet integrity). In order to make the two tags (SRTP-TESLA + MAC and SRTP-MAC) contiguous, we would need to redefine the SRTP + specification to include the MKI in SRTP-MAC coverage. This change + is impossible, so the MKI field separates the TESLA MAC from the SRTP + MAC in the packet layout of Figure 2. This change to the packet + format presents no problem to an implementation that supports the new + SRTP-TESLA authentication transform. + + The lengths of the Disclosed Key and TESLA MAC fields are Section 4.3 + parameters. As in SRTP, fields that follow the packet payload are + not necessarily aligned on 32-bit boundaries. + +4.3. Extension of the SRTP Cryptographic Context + + When TESLA is used, the definition of cryptographic context in + Section 3.2 of SRTP SHALL include the following extensions. + + Transform-Dependent Parameters + + 1. an identifier for the PRF (TESLA PRF), implementing the one-way + function F(x) in TESLA (to derive the keys in the chain), and + the one-way function F'(x) in TESLA (to derive the keys for the + TESLA MAC, from the keys in the chain), e.g., to indicate + HMAC-SHA1. See Section 6 for the default value. + + 2. a non-negative integer, n_p, determining the length of the F + output; i.e., the length of the keys in the chain (that is also + the key disclosed in an SRTP packet). See Section 6 for the + default value. + + 3. a non-negative integer, n_f, determining the length of the + output of F', i.e., of the key for the TESLA MAC. See Section + 6 for the default value. + + 4. an identifier for the TESLA MAC that accepts the output of + F'(x) as its key, e.g., to indicate HMAC-SHA1. See Section 6 + for the default value. + + + +Baugher & Carrara Standards Track [Page 7] + +RFC 4383 TESLA-SRTP February 2006 + + + 5. a non-negative integer, n_m, determining the length of the + output of the TESLA MAC. See Section 6 for the default value. + + 6. the beginning of the session T_0. + + 7. the interval duration T_int (in msec). + + 8. the key disclosure delay d (in number of intervals). + + 9. the upper bound D_t (in sec) on the lag of the receiver clock + relative to the sender clock (this quantity has to be + calculated by the peers out-of-band). + + 10. a non-negative integer, n_c, determining the length of the key + chain, K_0...K_n-1 of [RFC4082] (see also Section 6 of this + document), which is determined based upon the expected duration + of the stream. + + 11. the initial key of the chain to which the sender has committed + himself. + + F(x) is used to compute a keychain of keys in SRTP TESLA, as defined + in Section 6. Also according to TESLA, F'(x) computes a TESLA MAC + key with inputs as defined in Section 6. + + Section 6 of this document defines the default values for the + transform-specific TESLA parameters. + +4.4. SRTP Processing + + The SRTP packet processing is described in Section 3.3 of the SRTP + specification [RFC3711]. The use of TESLA slightly changes the + processing, as the SRTP MAC is checked upon packet arrival for DoS + prevention, but the current packet is not TESLA-authenticated. Each + packet is buffered until a subsequent packet discloses its TESLA key. + The TESLA verification itself consists of some steps, such as tests + of TESLA security invariants, that are described in Sections 3.5-3.7 + of [RFC4082]. The words "TESLA computation" and "TESLA verification" + hereby imply all those steps, which are not all spelled out in the + following. In particular, notice that the TESLA verification implies + checking the safety condition (Section 3.5 of [RFC4082]). + + As pointed out in [RFC4082], if the packet is deemed "unsafe", then + the receiver considers the packet unauthenticated. It should discard + unsafe packets, but, at its own risk, it may choose to use them + unverified. Hence, if the safe condition does not hold, it is + RECOMMENDED to discard the packet and log the event. + + + + +Baugher & Carrara Standards Track [Page 8] + +RFC 4383 TESLA-SRTP February 2006 + + +4.4.1. Sender Processing + + The sender processing is as described in Section 3.3 of [RFC3711], up + to step 5, inclusive. After that, the following process is followed: + + 6. When TESLA is applied, identify the key in the TESLA chain to be + used in the current time interval, and the TESLA MAC key derived + from it. Execute the TESLA computation to obtain the TESLA + authentication extension for the current packet, by appending the + current interval identifier (as i field), the disclosed key of the + chain for the previous disclosure interval (i.e., the key for + interval i is disclosed in interval i+d), and the TESLA MAC under + the current key from the chain. This step uses the related TESLA + parameters from the crypto context as for Step 4. + + 7. If the MKI indicator in the SRTP crypto context is set to one, + append the MKI to the packet. + + 8. When TESLA is applied, and if the SRTP authentication (external + tag) is required (for DoS), compute the authentication tag as + described in step 7 of Section 3.3 of the SRTP specification, but + with coverage as defined in this specification (see Section 4.6). + + 9. If necessary, update the rollover counter (step 8 in Section 3.3 + of [RFC3711]). + +4.4.2. Receiver Processing + + The receiver processing is as described in Section 3.3 of [RFC3711], + up to step 4, inclusive. + + To authenticate and replay-protect the current packet, the processing + is as follows: + + First, check if the packet has been replayed (as per Section 3.3 + of [RFC3711]). Note, however, that the SRTP replay list contains + SRTP indices of recently received packets that have been + authenticated by TESLA (i.e., replay list updates MUST NOT be + based on SRTP MAC). If the packet is judged to be replayed, then + the packet MUST be discarded, and the event SHOULD be logged. + + Next, perform verification of the SRTP integrity protection tag + (not the TESLA MAC), if present, using the rollover counter from + the current packet, the authentication algorithm indicated in the + cryptographic context, and the session authentication key. If the + verification is unsuccessful, the packet MUST be discarded from + further processing, and the event SHOULD be logged. + + + + +Baugher & Carrara Standards Track [Page 9] + +RFC 4383 TESLA-SRTP February 2006 + + + If the verification is successful, remove and store the MKI (if + present) and authentication tag fields from the packet. The + packet is buffered, awaiting disclosure of the TESLA key in a + subsequent packet. + + TESLA authentication is performed on a packet when the key is + disclosed in a subsequent packet. Recall that a key for interval + i is disclosed during interval i+d, i.e., the same key is + disclosed in packets sent over d intervals of length t_int. If + the interval identifier i from the packet (Section 4.1) has + advanced more than d intervals from the highest value of i that + has been received, then packets have been lost, and one or more + keys MUST be computed as described in Section 3.2, second + paragraph, of the TESLA specification [RFC4082]. The computation + is performed recursively for all disclosed keys that have been + lost, from the newly-received interval to the last-received + interval. + + When a newly-disclosed key is received or computed, perform the + TESLA verification of the packet using the rollover counter from + the packet, the TESLA security parameters from the cryptographic + context, and the disclosed key. If the verification is + unsuccessful, the packet MUST be discarded from further + processing, and the event SHOULD be logged. If the TESLA + verification is successful, remove the TESLA authentication + extension from the packet. + + To decrypt the current packet, the processing is as follows: + + Decrypt the Encrypted Portion of the packet, using the decryption + algorithm indicated in the cryptographic context, the session + encryption key, and salt (if used) found in Step 4 with the index + from Step 2. + + (Note that the order of decryption and TESLA verification is not + mandated. It is RECOMMENDED that the TESLA verification be performed + before decryption. TESLA application designers might choose to + implement optimistic processing techniques such as notification of + TESLA verification results after decryption or even after plaintext + processing. Optimistic verification is beyond the scope of this + document.) + + Update the rollover counter and highest sequence number, s_l, in the + cryptographic context, using the packet index estimated in Step 2. + If replay protection is provided, also update the Replay List (i.e., + the Replay List is updated after the TESLA authentication is + successfully verified). + + + + +Baugher & Carrara Standards Track [Page 10] + +RFC 4383 TESLA-SRTP February 2006 + + +4.5. SRTCP Packet Format + + Figure 3 illustrates the format of the SRTCP packet when TESLA is + applied. The TESLA authentication extension SHALL be inserted before + the MKI and authentication tag. Recall from [RFC3711] that in SRTCP + the MKI is OPTIONAL, while the E-bit, the SRTCP index, and the + authentication tag are MANDATORY. This means that the SRTP + (external) MAC is MANDATORY also when TESLA is used. + + As in SRTP, the "Encrypted Portion" of an SRTCP packet consists of + the encryption of the RTCP payload of the equivalent compound RTCP + packet, from the first RTCP packet, i.e., from the ninth (9) byte to + the end of the compound packet. + + The "Authenticated Portion" of an SRTCP packet consists of the entire + equivalent (eventually compound) RTCP packet, the E flag, the SRTCP + index (after any encryption has been applied to the payload), and the + TESLA extension. Note that the definition is extended from [RFC3711] + by the inclusion of the TESLA authentication extension. + + We define the "TESLA Authenticated Portion" of an SRTCP packet as + consisting of the RTCP header (first 8 bytes) and the Encrypted + Portion of the SRTCP packet. + + Processing of an SRTCP packets is similar to the SRTP processing + (Section 4.3), but there are SRTCP-specific changes described in + Section 3.4 of the SRTP specification [RFC3711] and in Section 4.6 of + this memo. + + + + + + + + + + + + + + + + + + + + + + + +Baugher & Carrara Standards Track [Page 11] + +RFC 4383 TESLA-SRTP February 2006 + + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<+<+ + |V=2|P| RC | PT=SR or RR | length | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + | SSRC of sender | | | ++>+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | | +| ~ sender info ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| ~ report block 1 ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| ~ report block 2 ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| ~ ... ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| |V=2|P| SC | PT=SDES=202 | length | | | +| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | | +| | SSRC/CSRC_1 | | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| ~ SDES items ~ | | +| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | | +| ~ ... ~ | | ++>+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | | +| |E| SRTCP index | | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<+ | +| | i | | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| ~ Disclosed Key ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| ~ TESLA MAC ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<|-+ +| ~ SRTCP MKI ~ | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| : authentication tag : | | +| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +| | | ++-- Encrypted Portion TESLA Authenticated Portion -----+ | + | + Authenticated Portion -------+ + + Figure 3. The format of the SRTCP packet when TESLA is applied. + + Note that when additional fields are added to a packet, it will + increase the packet size and thus the RTCP average packet size. + + + + + + + +Baugher & Carrara Standards Track [Page 12] + +RFC 4383 TESLA-SRTP February 2006 + + +4.6. TESLA MAC + + Let M' denote packet data to be TESLA-authenticated. In the case of + SRTP, M' SHALL consist of the SRTP TESLA Authenticated Portion (RTP + header and SRTP Encrypted Portion; see Figure 2) of the packet + concatenated with the rollover counter (ROC) of the same packet: + + M' = ROC || TESLA Authenticated Portion. + + In the case of SRTCP, M' SHALL consist of the SRTCP TESLA + Authenticated Portion only (RTCP header and SRTCP Encrypted Portion). + + The normal authentication tag (OPTIONAL for SRTP, MANDATORY for + SRTCP) SHALL be applied with the same coverage as specified in + [RFC3711]. That is: + + - for SRTP: Authenticated Portion || ROC (with the extended + definition of SRTP Authentication Portion as in Section 4.2). + + - for SRTCP: Authenticated Portion (with the extended definition of + SRTCP Authentication Portion as in Section 4.2). + + The predefined authentication transform in SRTP, HMAC-SHA1 [RFC2104], + is also used to generate the TESLA MAC. For SRTP (and respectively + for SRTCP), the HMAC SHALL be applied to the key in the TESLA chain + corresponding to a particular time interval, and to M' as specified + above. The HMAC output SHALL then be truncated to the n_m left-most + bits. Default values are in Section 6. + + As with SRTP, the predefined HMAC-SHA1 authentication algorithm MAY + be replaced with an alternative algorithm that is specified in a + future Internet RFC. + +4.7. PRFs + + TESLA requires a pseudo-random function (PRF) to implement + + * one one-way function F(x) to derive the key chain, and + * one one-way function F'(x) to derive (from each key of the chain) + the key that is actually used to calculate the TESLA MAC. + + When TESLA is used within SRTP, the default choice of the PRF SHALL + be HMAC-SHA1. Default values are in Section 6. + + Other PRFs can be chosen, and their use SHALL follow the common + guidelines in [RFC3711] when adding new security parameters. + + + + + +Baugher & Carrara Standards Track [Page 13] + +RFC 4383 TESLA-SRTP February 2006 + + +5. TESLA Bootstrapping and Cleanup + + The extensions to the SRTP cryptographic context include a set of + TESLA parameters that are listed in Section 4.3 of this document. + Furthermore, TESLA MUST be bootstrapped at session setup (for the + parameter exchange and the initial key commitment) through a regular + data authentication system (a digital signature algorithm is + RECOMMENDED). Key management procedures can take care of this + bootstrapping prior to the commencement of an SRTP session where + TESLA authentication is used. The bootstrapping mechanism is out of + scope for this document (it could, for example, be part of the key + management protocol). + + A critical factor for the security of TESLA is that the sender and + receiver need to be loosely synchronized. TESLA requires a bound on + clock drift to be known (D_t). Use of TESLA in SRTP assumes that the + time synchronization is guaranteed by out-of-band schemes (e.g., key + management). That is, it is not in the scope of SRTP. + + It also should be noted that TESLA has some reliability requirements + in that a key is disclosed for a packet in a subsequent packet, which + can get lost. Since a key in a lost packet can be derived from a + future packet, TESLA is robust to packet loss. This key stream + stops, however, when the key-bearing data stream packets stop at the + conclusion of the RTP session. To avoid this nasty boundary + condition, send null packets with TESLA keys for one entire key- + disclosure period following the interval in which the stream ceases: + Null packets SHOULD be sent for d intervals of duration t_int (items + 8 and 9 of Section 4.3). The rate of null packets SHOULD be the + average rate of the session media stream. + +6. SRTP TESLA Default Parameters + + Key management procedures establish SRTP TESLA operating parameters, + which are listed in Section 4.3 of this document. The operating + parameters appear in the SRTP cryptographic context and have the + default values that are described in this section. In the future, an + Internet RFC MAY define alternative settings for SRTP TESLA that are + different than those specified here. In particular, note that the + settings defined in this memo can have a large impact on bandwidth, + as they add 38 bytes to each packet (when the field length values are + the default ones). For certain applications, this overhead may + represent more than a 50% increase in packet size. Alternative + settings might seek to reduce the number and length of various TESLA + fields and outputs. No such optimizations are considered in this + memo. + + + + + +Baugher & Carrara Standards Track [Page 14] + +RFC 4383 TESLA-SRTP February 2006 + + + It is RECOMMENDED that the SRTP MAC be truncated to 32 bits, since + the SRTP MAC provides only group authentication and serves only as + protection against external DoS. + + The default values for the security parameters are listed in the + following table. + + Parameter Mandatory-to-support Default + --------- -------------------- ------- + TESLA PRF HMAC-SHA1 HMAC-SHA1 + BIT-OUTPUT LENGTH n_p 160 160 + BIT-OUTPUT LENGTH n_f 160 160 + + TESLA MAC HMAC-SHA1 HMAC-SHA1 + (TRUNCATED) BIT-OUTPUT LENGTH n_m 80 80 + + As shown above, TESLA implementations MUST support HMAC-SHA1 + [RFC2104] for the TESLA MAC and the TESLA PRF. The TESLA keychain + generator is recursively defined as follows [RFC4082]. + + K_i=HMAC_SHA1(K_{i+1},0), i=0..N-1 + + where N-1=n_c from the cryptographic context. + + The TESLA MAC key generator is defined as follows [RFC4082]. + + K'_i=HMAC_SHA1(K_i,1) + + The TESLA MAC uses a truncated output of ten bytes [RFC2104] and is + defined as follows. + + HMAC_SHA1(K'_i, M') + + where M' is as specified in Section 4.6. + +7. Security Considerations + + Denial of Service (DoS) attacks on delayed authentication are + discussed in [PCST]. TESLA requires receiver buffering before + authentication; therefore, the receiver can suffer a denial of + service attack due to a flood of bogus packets. To address this + problem, the external SRTP MAC, based on the group key, MAY be used + in addition to the TESLA MAC. The short size of the SRTP MAC + (default 32 bits) is motivated because that MAC is purely for DoS + prevention from attackers external to the group. The shorter output + tag means that an attacker has a better chance of getting a forged + packet accepted, which is about 2^31 attempts on average. As a first + line of defense against a denial of service attack, a short tag is + + + +Baugher & Carrara Standards Track [Page 15] + +RFC 4383 TESLA-SRTP February 2006 + + + probably adequate; a victim will likely have ample evidence that it + is under attack before accepting a forged packet, which will + subsequently fail the TESLA check. [RFC4082] describes other + mechanisms that can be used to prevent DoS, in place of the external + group-key MAC. If used, they need to be added as processing steps + (following the guidelines of [RFC4082]). + + The use of TESLA in SRTP defined in this specification is subject to + the security considerations discussed in the SRTP specification + [RFC3711] and in the TESLA specification [RFC4082]. In particular, + the TESLA security is dependent on the computation of the "safety + condition" as defined in Section 3.5 of [RFC4082]. + + SRTP TESLA depends on the effective security of the systems that + perform bootstrapping (time synchronization) and key management. + These systems are external to SRTP and are not considered in this + specification. + + The length of the TESLA MAC is by default 80 bits. RFC 2104 requires + the MAC length to be at least 80 bits and at least half the output + size of the underlying hash function. The SHA-1 output size is 160 + bits, so both of these requirements are met with the 80-bit MAC + specified in this document. Note that IPsec implementations tend to + use 96 bits for their MAC values to align the header with a 64-bit + boundary. Both MAC sizes are well beyond the reach of current + cryptanalytic techniques. + +8. Acknowledgements + + The authors would like to thank Ran Canetti, Karl Norrman, Mats + Naslund, Fredrik Lindholm, David McGrew, and Bob Briscoe for their + valuable help. + + + + + + + + + + + + + + + + + + + +Baugher & Carrara Standards Track [Page 16] + +RFC 4383 TESLA-SRTP February 2006 + + +9. References + +9.1. Normative References + + [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- + Hashing for Message Authentication", RFC 2104, February + 1997. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. + Norrman, "The Secure Real-time Transport Protocol (SRTP)", + RFC 3711, March 2004. + + [RFC4082] Perrig, A., Song, D., Canetti, R., Tygar, J., and B. + Briscoe, "Timed Efficient Stream Loss-Tolerant + Authentication (TESLA): Multicast Source Authentication + Transform Introduction", RFC 4082, June 2005. + +9.2. Informative References + + [PCST] Perrig, A., Canetti, R., Song, D., Tygar, D., "Efficient + and Secure Source Authentication for Multicast", in Proc. + of Network and Distributed System Security Symposium NDSS + 2001, pp. 35-46, 2001. + + [RFC3547] Baugher, M., Weis, B., Hardjono, T., and H. Harney, "The + Group Domain of Interpretation", RFC 3547, July 2003. + + [RFC3830] Arkko, J., Carrara, E., Lindholm, F., Naslund, M., and K. + Norrman, "MIKEY: Multimedia Internet KEYing", RFC 3830, + August 2004. + + [RFC4046] Baugher, M., Canetti, R., Dondeti, L., and F. Lindholm, + "Multicast Security (MSEC) Group Key Management + Architecture", RFC 4046, April 2005. + + + + + + + + + + + + + + +Baugher & Carrara Standards Track [Page 17] + +RFC 4383 TESLA-SRTP February 2006 + + +Authors' Addresses + + Questions and comments should be directed to the authors and + msec@ietf.org. + + Mark Baugher + Cisco Systems, Inc. + 5510 SW Orchid Street + Portland, OR 97219 USA + + Phone: +1 408-853-4418 + EMail: mbaugher@cisco.com + + + Elisabetta Carrara + Royal Institute of Technology + Stockholm + Sweden + + EMail: carrara@kth.se + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Baugher & Carrara Standards Track [Page 18] + +RFC 4383 TESLA-SRTP February 2006 + + +Full Copyright Statement + + Copyright (C) The Internet Society (2006). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET + ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE + INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + +Acknowledgement + + Funding for the RFC Editor function is provided by the IETF + Administrative Support Activity (IASA). + + + + + + + +Baugher & Carrara Standards Track [Page 19] + |