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]