One document matched: draft-kaplan-mmusic-best-effort-srtp-01.txt

Differences from draft-kaplan-mmusic-best-effort-srtp-00.txt



                                                                        
MMUSIC Working Group                                          H. Kaplan 
Internet Draft                                              Acme Packet 
Expires: April 2007                                            F. Audet 
                                                        Nortel Networks 
                                                           October 2006 
    
    
        Session Description Protocol (SDP) Offer/Answer Negotiation  
            For Best-Effort Secure Real-Time Transport Protocol 
                draft-kaplan-mmusic-best-effort-srtp-01.txt 
    
    
Status of this Memo 
    
   By submitting this Internet-Draft, each author represents that any 
   applicable patent or other IPR claims of which he or she is aware 
   have been or will be disclosed, and any of which he or she becomes 
   aware will be disclosed, in accordance with Section 6 of BCP 79.  
    
   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups. Note that 
   other groups may also distribute working documents as Internet-
   Drafts.  
    
   Internet-Drafts are draft documents valid for a maximum of six 
   months and may be updated, replaced, or obsoleted by other documents 
   at any time. It is inappropriate to use Internet-Drafts as reference 
   material or to cite them other than as "work in progress".  
    
   The list of current Internet-Drafts can be accessed at 
   http://www.ietf.org/1id-abstracts.txt.  
    
   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html 
    
   This Internet-Draft will expire on February 24, 2007.  
    
    
Abstract 
    
   This document defines the requirements and a proposed solution for 
   an SDP Offer/Answer exchange model for negotiating best-effort SRTP 
   keys, i.e., in a backward-compatible manner with non-SRTP devices.  
   The proposed solution is a trivial interpretation of the usage of 
   the profile and the usage of SDP indication of [sdesc] and [kmgmt]. 
    
    


 
 
Kaplan                   Expires - April 2007                 [Page 1] 




                           Best Effort SRTP               October 2006 
 
 
Table of Contents 
    
   1.    Introduction................................................2 
   2.    Notational Conventions......................................4 
   3.    Applicability...............................................5 
   4.    Requirements................................................5 
   5.    Solution Overview...........................................6 
   6.    SRTP Attribute..............................................7 
   7.    Offer/Answer Model:.........................................8 
      7.1.   Generating the Initial Offer...........................8 
         7.1.1 Offering Unique SRTP Payload Types................... 9 
      7.2.   Generating the Initial Answer..........................9 
         7.2.1 Answering Unique SRTP Payload Types................. 10 
      7.3.   Processing the Initial Answer.........................11 
   8.    Forked Offers and Multiple Answers.........................12 
   9.    Clipping and Changing Transport Types......................12 
   10.   Example Offer/Answer Exchange..............................12 
   11.   Security Considerations....................................14 
      11.1.  Security Implications vs. [sdesc] and [kmgmt].........14 
   12.   References.................................................15 
      12.1.  Normative References..................................15 
      12.2.  Informative References................................15 
   Author's Address.................................................16 
   Intellectual Property Statement..................................16 
   Disclaimer of Validity...........................................17 
   Copyright Statement..............................................17 
   Acknowledgments..................................................17 
    
    
1. Introduction 
    
   The support of SRTP has been increasing recently, but its adoption 
   has still been relatively slow.  One of the reasons for this is that 
   the currently defined mechanisms for exchanging SRTP keys are based 
   on an all-or-nothing approach, i.e., "Always secure" or "Always not 
   secure".  If the offer indicates SRTP and the answerer cannot 
   support SRTP, or the particular key exchange mechanism, the entire 
   offer, or the actual session invitation, will fail.  When the 
   desired policy is "Always secure", the current established mechanism 
   works perfectly well. 
    
   However, a need has been identified for a third policy: "Best-Effort 
   Security". Best Effort Security means that you prefer that SRTP be 
   used, but you are willing to use RTP if the other end does not 
   support it. There are different reasons why one may wish to use a 
   Best Effort policy. It could be to allow for interoperability with 
   many devices that may not support SRTP. In other cases, it may be as 
   a migration strategy or introducing new equipment that support SRTP, 

 
 
Kaplan                   Expires - April 2007                 [Page 2] 




                           Best Effort SRTP               October 2006 
 
 
   cohabitating with devices that do not support SRTP until the older 
   equipment is replaced. 
    
   Today, there is no generally accepted (and backward compatible) way 
   to indicate Best Effort SRTP key negotiation.  Therefore, an SRTP-
   capable device must either be prepared to re-attempt to establish a 
   media stream with RTP after failing with SRTP, or simply not offer 
   SRTP by default, and upgrade to SRTP when possible.  
    
   With the current mechanism, it may in the best case be possible to 
   start without SRTP initially (i.e., with the AVP [rtp] profile), and 
   then negotiate through another Offer/Answer [RFC3264] with either 
   [kmgmt] or [sdesc] the usage of SRTP and the session keys. This is 
   an extremely cumbersome process, and has the implication that every 
   call will use an additional Offer/Answer exchange, and will also 
   have the consequence that every call will start without SRTP, which 
   is undesirable. 
    
   Also with the current mechanism, starting with SRTP (i.e., the SAVP 
   profile) and downgrading to RTP is only achievable by rejecting the 
   whole session. However, rejecting a session in SIP (normally with a 
   4XX response code), has very negative implications because of the 
   [herfp] issue. To summarize the issue [herfp] means that the 
   rejection sent by the UAS, when used with forking, is very unlikely 
   to reach the UAC. Since that rejection is intended to cause a re-
   negotiation without SRTP, the net effect is that the call fork fails 
   completely. In the best case scenario, another fork may answer 
   (e.g., a voicemail system), and in the worst case scenario, the 
   other forks also fails, which means that the calls fails entirely. 
   This is clearly unacceptable and a great impediment to the 
   deployment of SRTP.  Note that this is an issue for both parallel 
   and sequential forking. 
    
      Note: Some may argue that one may reject the Offer setting the 
      port in the answer to zero as per [RFC3264], and then do a second 
      Offer/Answer; however, since the endpoints that do not support 
      the SAVP profile most likely do not behave this way in the first 
      place (they will reject the whole session), this means it would 
      not be backward compatible to use an Offer rejection mechanism.  
      Furthermore, many UAs automatically generate a BYE if they 
      receive an SDP answer with no accepted media lines 
    
   This document proposes a solution to Best Effort SRTP and backward 
   compatibility problem by introducing a third Policy to the existing 
   ones.  
    
   The existing supported mechanisms as of today are as follows: 
     * SAVP (and associated keys) means secure transport only, i.e. 
     "SRTP only" 
 
 
Kaplan                   Expires - April 2007                 [Page 3] 




                           Best Effort SRTP               October 2006 
 
 
     * AVP means insecure transport only, i.e. "RTP only" 
      
   This drafts proposes a Third mechanism: 
     * AVP with associated SRTP attributes means "Best-Effort SRTP" 
    
    
   The mechanism outlined in this document is fairly trivial, and is 
   defined in order to successfully negotiate multiple mechanisms in 
   one offer/answer exchange, even if the answerer only supports 
   clear/non-secure RTP, and it is backward compatible. Examples are 
   given for [kmgmt] and [sdesc].  This mechanism only applies to 
   Offer/Answer-based applications. 
    
   The procedures described in this specification represent a technique 
   that has already been used and deployed in the real-world. It has 
   also been briefly mentioned in [sdp-neg], which lists many 
   techniques used today. Of all the techniques described in [sdp-neg], 
   it is by far the simplest one to address the "Best Effort SRTP" 
   problem, and the only one that does not risk "breaking" any 
   implementations.  
    
   It has been argued in [sdp-neg] that using "RTP/AVP" violates 
   [srtp].  After reviewing [srtp], the authors could not find any 
   justification to this claim.  Rather, the authors claim that "if 
   SAVP is indicated, we can infer that SRTP is to be used, but the 
   reverse is not necessarily true, i.e., if AVP is used, it does not 
   mean that SRTP will not be used".  In other words, there is a well-
   defined encoding for using SRTP which is "SAVP", but that does not 
   preclude an offerer from offering "AVP" and proposing SRTP 
   dynamically.  RFC 3407 [sim-cap] essentially already allows such a 
   model, whereby the backward-compatible encoded media profile may be 
   of one type, while the [sim-cap] offered alternate capability may 
   change the profile for those that understand [sim-cap].  This draft 
   essentially employs a similar model, but using the [sdesc] or 
   [kmgmt] attributes as the explicit alternate profile offer.  It 
   should also be noted that [zrtp] already uses AVP for SRTP traffic.   
    
   A second requirement of this draft allows the offerer to indicate to 
   the answerer to use unique payload types for SRTP packets, in order 
   to make them distinguishable from clear RTP packets.  This is 
   mandatory if the offerer needs to render media before receiving the 
   answer, and cannot do so until it has the keys in the answer to do 
   so. 
    
2. Notational Conventions 
    
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
   document are to be interpreted as described in RFC 2119.  The 
 
 
Kaplan                   Expires - April 2007                 [Page 4] 




                           Best Effort SRTP               October 2006 
 
 
   terminology in this document conforms to RFC 2828, "Internet 
   Security Glossary". 
    
    
3. Applicability 
    
   This draft proposes using a [sdesc]/[kmgmt] style key exchange in a 
   backward-compatible manner with legacy RTP devices, for Offer/Answer 
   exchange-based applications.  This mechanism should provide a 
   smoother migration path, broader applicability, and more rapid 
   acceptance than [sdesc] or [kmgmt] mechanism used only in the "SRTP 
   only" mode. 
    
   The rules of this specification apply to AVP/SAVP. 
    
   OPEN ISSUE: The same technique arguably could be used with AVPF 
               [RFC4585]/SAVPF[savpf]. Should it? We have assumed only 
               AVP/SAVP, but it could easily be expanded to cover 
               AVPF/SAVPF. 
    
    
4. Requirements 
    
   Unlike the requirements addressed in [sdpng] and [sdp-cap-neg], this 
   mechanism is not trying to address all the general issues with SDP 
   capability negotiation.  Instead, it is trying to provide a solution 
   to a very short and defined set of requirements: 
    
   REQ-1: It MUST be possible to indicate and negotiate RTP vs. SRTP 
   profiles, on a per media stream basis. 
    
   REQ-2: It MUST be possible to offer SRTP profile to an RTP-only 
   answerer, and successfully negotiate RTP, without additional 
   offer/answers. 
    
   REQ-3: It MUST be possible to offer SRTP without allowing a fallback 
   to RTP, if the answerer does not support SRTP but the offerer only 
   wishes to either use SRTP or fail the negotiation. 
    
   REQ-4: The mechanism MUST be backwards compatible for SIP RTP-only 
   devices, without requiring them to change. 
    
   REQ-5: The mechanism MUST be media-type agnostic. (i.e., work with 
   any media type of any codec, etc.) 
    
   REQ-6: The mechanism MUST work in the presence of SIP forking. 
    
   REQ-7: The mechanism SHOULD support RTCP-based feedback, e.g. AVPF. 
   OPEN ISSUE: Should REQ-7 be a requirement? 
 
 
Kaplan                   Expires - April 2007                 [Page 5] 




                           Best Effort SRTP               October 2006 
 
 
 
   We believe the above to be the necessary and sufficient requirements 
   set to achieve broad applicability and deployment of SRTP in the 
   near future.  Below, we provide a proposed solution meeting those 
   requirements. 
    
    
5. Solution Overview  
    
   The basic concept is: 
    
   If an SRTP-capable device wishes to *only* offer SRTP and will only 
   accept SRTP be used, then it performs exactly the same steps as 
   defined in [sdesc] or [kmgmt], including indicating the SAVP 
   profile.  The answerer would do the same.  This is per current 
   practice. 
    
   If a device wishes to offer RTP only, then it uses the AVP profile, 
   and does not use [sdesc] or [kmgmt].  The answerer does the same.  
   This is also per current practice. 
    
   If an SRTP-capable device wishes to offer SRTP but will accept an 
   RTP answer if the far-end only supports that for a given media 
   stream, then it indicates SRTP support as an alternative, by 
   inserting the same media-level crypto attributes of [sdesc] or key 
   management attributes of [kmgmt], or both, into the offer using non-
   secure transport profiles (e.g., "AVP" instead of "SAVP").  The 
   offerer may also indicate SAVP support for media lines when a 
   session-level key is used, using a new attribute.  The offerer may 
   also indicate unique Payload Type mapping values for SRTP/SRTCP 
   packets in a new attribute, if she wishes to distinguish SRTP from 
   RTP before the SDP answer comes back. 
    
   A legacy RTP-only device will ignore these unknown attributes and 
   answer as if they did not exist, i.e. using the "AVP" profile 
   without any crypto or key-mgmt attributes.  The offerer then knows 
   they don't support it and will establish the session using regular 
   RTP. 
    
   A device supporting this draft and SRTP understands the attributes 
   indicate a willingness to use the SAVP profile instead, and responds 
   accordingly, by including a crypto or key-mgmt attribute in the 
   answer (but still using "AVP" encoding), resulting in SRTP.  If the 
   offer included the payload type mappings, the answerer would use 
   them for SRTP packets. 
    
    
     * The main difficulty with offering SRTP-attributes using non-
     secure transport profiles is that SRTP packets are virtually 
 
 
Kaplan                   Expires - April 2007                 [Page 6] 




                           Best Effort SRTP               October 2006 
 
 
     indistinguishable from RTP packets - there is no "SRTP flag".  
     That means the offerer must either wait for the answer before 
     knowing how to handle received RTP packets, or a distinguishing 
     factor must be defined.  This specification supports both models, 
     by allowing the offerer to indicate its preference, and mandating 
     the answerer support both.   
    
6. SRTP Attribute 
    
   This draft introduces a new media-level SRTP attribute ("a=srtp"), 
   for the purpose of indicating SRTP is desired for a media stream 
   when it would otherwise be ambiguous, and for indicating payload 
   type mappings for the RTP payload types in the m= media line.  
   Examples of the new attribute are as follows: 
       a=srtp 
       a=srtp: map:0=96,18=97,101=102 
    
   The first example shows the attribute being used solely to indicate 
   the associated media line is capable of SRTP. 
    
   The second example indicates the associated media line is capable of 
   SRTP, and if SRTP is used, it will accept/receive SRTP on payload 
   type 96 for SRTP in place of payload type 0 (PCMU), 97 for 18 
   (G729), and 102 for 101. 
    
   Following the ABNF rules used in [sdp], the new attribute is defined 
   in ABNF as follows: 
   att-field =             "srtp" 
   att-value =             space srtp-options 
   srtp-options =          srtp-payload-mapping | ([srtp-payload-  
                           mapping] 1*(byte-string)) 
   srtp-payload-mapping =  "map:" map-list 
   map-list =              map *("," map) 
   map =                   rtp-pt "=" srtp-pt 
   rtp-pt =                1*3(DIGIT) 
   srtp-pt =               1*3(DIGIT) 
                           ;typically dynamic payload types  
                           ;in the range 96-127 
    
   Note that, per the ABNF definition of attribute in [sdp], the att-
   value field is optional.  Thus having both "a=srtp" and "a=srtp:..." 
   forms is legitimate.  The <srtp-payload-mapping> is optional if more 
   byte-strings are present, in case some future extension of this 
   attribute does not need the mapping but wishes to use the srtp-
   capability semantic.  
    
   The srtp attribute payload mapping list identifies which payload 
   type numbers offered in the m= media line should be replaced with 
   different payload type numbers if SRTP is chosen.  As such, the rtp-
 
 
Kaplan                   Expires - April 2007                 [Page 7] 




                           Best Effort SRTP               October 2006 
 
 
   pt (RTP payload type) values MUST correspond to fmt payload types in 
   the media-description line in an SDP offer.  The srtp-pt (SRTP 
   payload type) values MUST be in the dynamic payload type range of 
   96-101, unless that is insufficient.  The srtp-pt numbers MUST NOT 
   conflict with any of the offered fmt RTP payload type numbers. 
    
7. Offer/Answer Model:  
    
   This draft is based on the offer/answer method of [RFC3264] as used 
   by [sdesc] and [kmgmt], except the use of secure transport (e.g., 
   "SAVP") type encoding in SDP is not always used, as described above 
   in section 6 and detailed below.  This also changes some of the 
   offer/answer details and RTP processing behavior as described below. 
    
    
7.1. Generating the Initial Offer 
    
   If a device supporting this draft wanted to mandate use of secure 
   transport (i.e., SRTP) for a particular media stream they MUST 
   continue to use the [sdesc] or [kmgmt] prescribed secure transport 
   encoding, i.e. "SAVP", as before.   
    
   A device supporting this draft that wishes to use secure transport 
   if the answerer supports it, but is willing to accept non-secure 
   transport otherwise (i.e., best effort SRTP), offers the same media-
   level crypto attributes and parameters as [sdesc], and/or media-
   level key-mgmt attributes of [kmgmt], except that it will indicate 
   the "RTP/AVP" profile in SDP.  The purpose of this is that, should 
   the receiver(s) of the offer not support SRTP, or not support it for 
   that particular media stream, the offer will not be rejected.  The 
   offerer can still decide to end the session at any time should it 
   wish to.  
    
   An offerer MAY offer both [sdesc] crypto attributes and [kmgmt] key-
   mgmt attributes in the same SDP offer, for the same media sessions.  
   The offerer SHOULD order them in the order it prefers - the first 
   type offered is the most preferred, per media stream.   
    
   A potential complication is that KMGMT allows for supporting either 
   session level key management, media level key management, or both. 
   When used with best-effort negotiation and in conjunction with 
   [sdesc], an explicit indication is needed to indicate which media 
   streams are potential SRTP candidates, when session-level [kmgmt] is 
   used. This specification requires that if Best Effort SRTP is used, 
   and session-level keys are offered, then a media-level srtp 
   attribute MUST be included in the offer for each media stream the 
   offerer wishes to offer SRTP for.  If both session-level and media-
   level attributes are offered, for example a session-level key-mgmt 
   and media-level crypto, the srtp attribute encoding MUST be used for 
 
 
Kaplan                   Expires - April 2007                 [Page 8] 




                           Best Effort SRTP               October 2006 
 
 
   every media stream the offerer wishes to use SRTP for.  Note that 
   the media-level key will always be assumed to be more preferred than 
   the session-level one.  An offerer MAY include the srtp attribute 
   for any media stream it wishes to offer SRTP for, even if it is not 
   offering a session-level key type. 
    
7.1.1     Offering Unique SRTP Payload Types 
    
   In general, the offerer cannot definitively know whether the 
   received media is SRTP or RTP until it receives the answer, because 
   there is no distinguishing factor in the packets.  If the offerer 
   wishes to render media before an SDP answer is received, it MUST 
   also include the srtp attribute with the payload mapping list, 
   defined earlier, to indicate unique SRTP payload types for the same 
   offered payloads as the media line.  This will indicate to the 
   answerer which payload types to use for SRTP packets, if it accepts 
   the offer using SRTP.  The offerer can then safely render RTP media 
   before the answer arrives, for payload types in the media line, 
   while ignoring received packets using the SRTP payload types mapped 
   in the srtp-attribute types until the answer arrives with the key to 
   decrypt SRTP.  If the key type used is such that the offerer can 
   decrypt SRTP before the answer, the offerer MAY render it at any 
   time.  If the offerer does not wish to render media until an answer 
   is received, it is OPTIONAL whether to include the payload mapping 
   list. 
    
    OPEN ISSUE: do we even make it optional, or mandate that the 
    offerer always include the mapping list? 
    
   In summary, the offerer encodes a secure transport type (SAVP) for 
   every media stream it demands be secured, while encoding a non-
   secure transport type (AVP) but with the crypto and/or key-mgmt 
   attributes for every media stream it would accept non-secure 
   transport for.  If it offers session-level keys, it includes the 
   srtp attribute for each media line it would have previously used 
   SAVP for.  The offerer also indicates unique payload types for SRTP 
   media in the srtp attribute, if it needs to distinguish RTP from 
   SRTP before the answer arrives. 
    
7.2. Generating the Initial Answer 
    
   If the offer contained both crypto and key-mgmt attributes, it is up 
   to answerer's local policy which key mechanism the answerer wishes 
   to use.  The answerer SHOULD accept the first one in the offer it 
   understands and can support, per media stream.  It MUST only encode 
   the like attribute type it chose to use for SRTP per media stream, 
   in the answer.  In other words, it cannot choose both crypto and 
   key-mgmt for the same media stream. 
    
 
 
Kaplan                   Expires - April 2007                 [Page 9] 




                           Best Effort SRTP               October 2006 
 
 
   Regardless of local-policy preference for which particular key type 
   to accept, the answerer MUST accept either one or the other if it 
   can.  In other words, the offerer has indicated it wishes to use 
   SRTP, and the answerer MUST agree to do so if possible. 
    
   As per [sdesc] and [kmgmt], if the answerer chooses to accept crypto 
   attributes or key-mgmt, it MUST use the first attribute in the 
   offered list of attributes per media stream it can support if there 
   are more than one offered attributes for a given key exchange type.  
   For example if two crypto-style keys are offered for a given media 
   stream, the answerer must select the first one it supports. 
    
   If it cannot support any of the offered crypto or key-mgmt 
   attributes, however, it MUST treat the offer as if *no* crypto-
   attributes had been offered.  In other words, if the answerer's 
   policy allows non-secure RTP, it can accept the offer as if it had 
   been so.  If the answerer's local policy is to only allow SRTP media 
   and not accept non-secure RTP, it MAY reject the offer.  This lets a 
   key-mgmt-only offerer successfully negotiate non-secure RTP with a 
   crypto-only answerer, and vice-versa. 
    
   If the offer used a secure transport encoding in SDP, per [sdesc] or 
   [kmgmt], then it MUST operate as in [sdesc] or [kmgmt] and answer 
   using a secure transport encoding syntax if it can for the same 
   media stream, or fail the offer.  Thus an answerer supporting this 
   draft will interoperate with an offerer supporting only legacy 
   [sdesc] or [kmgmt].   
    
   If the offer uses best effort SRTP (using RTP/AVP profile), but 
   offered crypto or key-mgmt attributes which were acceptable and 
   answered, the answerer encodes its chosen key type and values and 
   MUST continue to use the insecure transport encoding, i.e., the 
   RTP/AVP profile.  If the offer included the srtp attribute, the 
   answerer MUST include the srtp attribute for each media stream the 
   answerer wishes to use SRTP for.  
    
    
7.2.1     Answering Unique SRTP Payload Types 
    
   If the offer indicated unique payload types for SRTP, by including 
   the srtp attribute and payload mapping list, the answerer MUST use 
   the indicated payload types for SRTP packets it sends, if it accepts 
   the SRTP offer.  This is so that the offerer can distinguish RTP 
   from SRTP packets arriving before the answer, which can often be the 
   case.  If the answerer used the same payload types for SRTP packets 
   as indicated in the m= media line, the offerer would attempt to 
   render them as RTP, which would produce a degraded user experience.   
    

 
 
Kaplan                   Expires - April 2007                [Page 10] 




                           Best Effort SRTP               October 2006 
 
 
   The answerer MUST answer such an offer using the actual/real payload 
   types it is going to use for RTP or SRTP packets.  Therefore, if it 
   selects to use SRTP and the offerer indicated payload type mappings 
   in the srtp attribute, the answerer will answer using the srtp-
   specific payload type values in the m= media line of its answer. 
    
   If the offer included the optional payload mappings in an srtp 
   attribute, the answerer MUST include the srtp attribute for each 
   media stream the answerer wishes to use SRTP for, with the same 
   payload mappings, for those formats it is answering with.   
    
7.3. Processing the Initial Answer 
    
   As per [sdesc] and [kmgmt], the answer is checked for matching 
   crypto or key-mgmt attributes and key information.  If the answer 
   uses the RTP/AVP profile, and no crypto or key-mgmt attribute lines 
   are found in the answer, however, and the originally offered 
   transport was "AVP", then the negotiation MUST NOT be considered to 
   have failed.  Instead, non-secure RTP is used regardless if the 
   original offer included any crypto or key-mgmt attributes to begin 
   with.  This lets a Best-Effort SRTP offerer successfully negotiate 
   with a non-SRTP answerer, and a key-mgmt-only offerer successfully 
   negotiate non-secure RTP with a crypto-only answerer, and vice-
   versa. 
    
   If a crypto attribute line is found in the answer, but does not have 
   a matching tag, included key, or contain all of the mandatory 
   negotiated session parameters, then the session negotiation MUST 
   fail.  If a key-mgmt line is found in the answer, but does not pass 
   key management protocol processing, then the session negotiation 
   MUST fail.  If both a crypto attribute and key-mgmt line is found in 
   the answer, at the media-level for the same media stream, then the 
   session negotiation MUST fail.  If an answer contains a valid crypto 
   or key-mgmt attribute but they were not of the same key exchange 
   type as the offer for that media stream, then the session 
   negotiation MUST fail.  These would all represent protocol failures. 
    
   If a key-mgmt line is found in the answer at the session level and a 
   key-mgmt or crypto attribute at the media level, and such was also 
   offered, then the media-level answers are used for each respective 
   media stream, and the session-level one used for the remaining SAVP 
   media streams (ones without media-level crypto or key-mgmt answers).  
   This is the same as best current practice today. 
    
   For each media stream which an acceptable answer is received at the 
   media level, and for all remaining SAVP media streams if an 
   acceptable session-level answer, the offerer MUST only accept SRTP 
   using the key and other values in the answer.  It would do so as 
   described in [sdesc] or [kmgmt], as if the original Offer and Answer 
 
 
Kaplan                   Expires - April 2007                [Page 11] 




                           Best Effort SRTP               October 2006 
 
 
   used SAVP secure transport encoding.  The offerer would then begin 
   generating SRTP based on the answer as per [sdesc] or [kmgmt] and 
   [srtp]. 
    
    
8. Forked Offers and Multiple Answers 
    
   The generated Offer may be forked along the path, resulting in 
   multiple Answers.  It is typically up to local-policy how to handle 
   such situations.   
    
    
9. Clipping and Changing Transport Types 
    
   This draft does not rely on an Answer before processing RTP media, 
   but may rely on such for SRTP media.  Such is the case typically for 
   SRTP today regardless, as the offered keys are usually the transmit 
   keys - so an Answer has to be received to know how to decrypt 
   received SRTP.  NAT traversal using ICE has this limitation as well.  
   [sdesc] and [mikey-rsa-r] also have this limitation.  Security 
   preconditions, as defined in [sec-pre], and/or sending the SDP 
   answer in provisional responses as soon as possible, are RECOMMENDED 
   for such cases. 
    
   This draft, however, provides a solution for rendering RTP media 
   safely, without worry it is SRTP, before the answer arrives.  For 
   cases where the decrypt key is known at the time of the offer, this 
   draft also provides the ability to render SRTP media before the 
   answer arrives. 
    
   A second issue is changing transport types, in an updated 
   offer/answer.  Since media typically reaches the UAC before an 
   answer, it may be difficult to know when to switch from RTP to SRTP 
   or vice-versa.  This draft provides a solution to that problem as 
   well, by simply offering new dynamic payload types. 
    
    
10.  Example Offer/Answer Exchange 
 
   In the following example, Alice is proposing to establish an 
   unsecure RTP H.263 video channel in conjunction with a Best Effort 
   SRTP voice channel using either G.711 or G.729, using either [kmgmt] 
   or [sdesc]. Alice wishes to use payload type values 96 and 97 for 
   the RTP payload types of 0 and 18.  Note that the a=crypto and the 
   a=key-mgmt lines are really 2 long lines. 
    
         v=0 
         o=alice 2890844526 2890842807 IN IP4 192.0.2.2 

 
 
Kaplan                   Expires - April 2007                [Page 12] 




                           Best Effort SRTP               October 2006 
 
 
         s=Best effort secured discussion 
         e=alice@example.com (Alice) 
         c=IN IP4 192.0.2.2 
         t=2873397496 2873404696 
         m=video 51372 RTP/AVP 34 
         a=rtpmap:34 H263/9000 
         m=audio 49170 RTP/AVP 0 18 
         a=rtpmap:0 PCMU/8000  
         a=rtpmap:18 G729/8000 
         a=srtp: map:0=96,18=97 
         a=crypto:1 AES_CM_128_HMAC_SHA1_80 
          inline:WVNfX19zZW1jdGwgKCkgewkyMjA7fQp9CnVubGVz|2^20|1:4 
         a=key-mgmt:mikey AQAFgM0XflABAAAAAAAAAAAAAAsAyONQ6gAAAAAGEE 
           oo2pee4hp2UaDX8ZE22YwKAAAPZG9uYWxkQGR1Y2suY29tAQAAAAAAAQA 
           k0JKpgaVkDaawi9whVBtBt0KZ14ymNuu62+Nv3ozPLygwK/GbAV9iemnG 
           UIZ19fWQUOSrzKTAv9zV 
    
    
   In this sample Answer below, Bob does not support SRTP, and 
   therefore ignores the [kmgmt] and [sdesc] attributes and selects RTP 
   for the voice channel, and also accepts the video channel. 
    
         v=0 
         o=bob 2890890210 807082634 IN IP4 192.0.2.4 
         s=Open discussion 
         e=bob@example.net (Bob) 
         c=IN IP4 192.0.2.4 
         t=2873397496 2873404696 
         m=video 4900 RTP/AVP 34 
         a=rtpmap:34 H263/9000 
         m=audio 32640 RTP/AVP 0 
         a=rtpmap:0 PCMU/8000  
    
   In this sample Answer below, Bob does support SRTP, selects [sdesc] 
   for the voice channel, and also accepts the video channel.  Note Bob 
   includes the srtp attribute and payload mapping info, and will 
   accept SRTP packets using payload type 102 for RTP of 0 (PCMU). 
    
         v=0 
         o=bob 2890890210 807082634 IN IP4 192.0.2.4 
         s=Secret discussion 
         e=bob@example.net (Bob) 
         c=IN IP4 192.0.2.4 
         t=2873397496 2873404696 
         m=video 4900 RTP/AVP 34 
         a=rtpmap:34 H263/9000 
         m=audio 32640 RTP/AVP 102 
         a=rtpmap:102 PCMU/8000 
         a=srtp: map:0=102  
 
 
Kaplan                   Expires - April 2007                [Page 13] 




                           Best Effort SRTP               October 2006 
 
 
         a=crypto:1 AES_CM_128_HMAC_SHA1_80 
          inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4 
    
    
11.  Security Considerations 
    
   Like [sdesc], SDP using the mechanism in this draft with crypto 
   attributes is conveyed in an encapsulating application protocol 
   which MUST provide both strong eavesdropping and authentication 
   mechanisms.  The same may be true of key-mgmt lines, depending on 
   the key management protocol.  The security requirements in [sdesc] 
   and [kmgmt] MUST be followed for this draft as well. 
    
    
11.1.     Security Implications vs. [sdesc] and [kmgmt] 
    
   The best-effort mechanism proposed in this draft may be considered 
   less secure than [sdesc] and [kmgmt] because it allows a bid-down 
   attack to establish non-secure RTP sessions, even if both ends 
   supported SRTP.  It is however more secure than not using SRTP at 
   all.  This is by design, however, in order to facilitate 
   interoperability and migration from RTP to SRTP.  No mechanism 
   proposed so far truly can prevent a bid-down attack.  The difference 
   is that [sdesc] and [kmgmt] would result in a failed session 
   negotiation, whereas this mechanism would not.  The authors consider 
   that a benefit of this draft, not a drawback.  This draft still 
   mandates using SAVP if the offerer *only* accepts secure transport.  
   If the offerer would accept less anyway, then a malicious attacker 
   can as easily bid-down [sdesc] or [kmgmt] simply by failing the 
   session, since by definition such an offerer will re-signal using 
   non-secure transport encoding.  Therefore, this draft's mechanism is 
   only more susceptible to bid-down in a trivial way - namely because 
   it will happen in fewer messages.   
    
   Using S/MIME or signing bodies using [identity] may also prevent 
   bid-down attacks.   
    
   Neither party needs to accept a session using non-secure RTP: the 
   offerer can simply use the secure transport encoding in SDP, and the 
   answerer can simply reject offers which do not offer such; or either 
   end can terminate the session or re-offer at any time.  Those are 
   local policy decisions which are available for any mechanism. 
    






 
 
Kaplan                   Expires - April 2007                [Page 14] 




                           Best Effort SRTP               October 2006 
 
 
12.  References 
    
12.1.     Normative References 
 
   [sdesc]  Andreasen, F., Baugher, M., and D. Wing, "Session 
   Description Protocol (SDP) Security Description for Media Streams", 
   RFC 4568, July 2006 
    
   [kmgmt]  Arkko, J., et al, "Key Management Extensions for Session 
   Description Protocol (SDP) and Real Time Streaming Protocol (RTSP)", 
   RFC 4567, July 2006 
     
   [sdp]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 
   Description Protocol", RFC 4566, July 2006. 
    
   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 
   with Session Description Protocol (SDP)", RFC 3264, June 2002. 
    
   [RFC3550]  Schulzrinne, Casner, Frederick and Jacobson, "RTP: A 
   Transport Protocol for Real-Time Applications", RFC 3550, July 2003. 
    
   [srtp]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 
   Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711, 
   March 2004. 
    
   [sip]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., 
   Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:  
   Session Initiation Protocol", RFC 3261, June 2002. 
     
    
12.2.     Informative References 
 
   [RFC4585] Ott, Wenger, Sato, Burmeiste, Rey, "Extended RTP Profile 
   for Real-time Transport Control Protocol (RTCP)-Based Feedback 
   (RTP/AVPF)", RFC 4585, July 2006 
    
   [sim-cap] Andreasen, "Session Description Protocol (SDP) Simple 
   Capability Declaration", RFC 3407, October 2002 
    
   [herfp] Mahy, "A Solution to the Heterogeneous Error Response 
   Forking Problem (HERFP)in the Session Initiation Protocol (SIP)", 
   draft-mahy-sipping-herfp-fix-01 
    
   [identity] Peterson, Jennings, "Enhancements for Authenticated 
   Identity Management in the Session Initiation Protocol (SIP)", 
   draft-ietf-sip-identity-06 
    
   [mikey-rsa-r] Ignjatic, Dondeti, Audet, Lin, "An additional mode of 
   key distribution in MIKEY: MIKEY-RSA-R", draft-ietf-mikey-rsa-r-07 
 
 
Kaplan                   Expires - April 2007                [Page 15] 




                           Best Effort SRTP               October 2006 
 
 
    
   [savpf] Ott, Carrara, "Extended Secure RTP Profile for RTCP-based 
   Feedback (RTP/SAVPF)", draft-ietf-avt-profile-savpf-06 
    
   [sdp-neg] Andreasen, "SDP Capability Negotiation", draft-andreasen-
   mmusic-sdp-capability-negotiation-00 
    
   [sec-pre] Andreasen, Wing, "Security Preconditions for Session 
   Description Protocol (SDP) Media Streams", draft-ietf-mmusic-
   securityprecondition-02 
    
   [zrtp] Zimmermann, "ZRTP: Extensions to RTP for Diffie-Hellman Key 
   Agreement for SRTP", draft-zimmermann-avt-zrtp-01 
    
 
Author's Address 
    
   Hadriel Kaplan 
   Acme Packet 
   71 Third Ave. 
   Burlington, MA 01803, USA 
   Email: hkaplan@acmepacket.com 
    
   Francois Audet 
   Nortel Networks 
   4655 Great America Parkway 
   Santa Clara, CA 95054, USA 
   Email: audet@nortel.com 
    
 
Intellectual Property Statement 
    
   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. 
    

 
 
Kaplan                   Expires - April 2007                [Page 16] 




                           Best Effort SRTP               October 2006 
 
 
   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. 
    
Disclaimer of Validity 
    
   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. 
 
 
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. 
    
    
Acknowledgments 
    
   The authors wish to thank Alan Johnston who first suggested the idea 
   (we believe).  We also thank Flemming Andreasen, Dan Wing, Randell 
   Jessup, Andrew Zmolek, Robert Gilman and John Elwell for their 
   suggestions and comments. 
    


















 
 
Kaplan                   Expires - April 2007                [Page 17] 






PAFTECH AB 2003-20262026-04-23 11:00:20