Internet Engineering Task Force                  Flemming Andreasen
   MMUSIC Working Group                                       Dan Wing
   Internet-Draft
   Expires: April December 2006                                Cisco Systems
                                                         October, 2005
                                                            June, 2006

                       Security Preconditions for
            Session Description Protocol (SDP) Media Streams
            <draft-ietf-mmusic-securityprecondition-01.txt>
            <draft-ietf-mmusic-securityprecondition-02.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 cite them other than as "work in progress".

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/lid-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 April 20, December 25, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005). (2006).  All Rights Reserved.

Abstract

   This document defines a new security precondition for the Session
   Description Protocol (SDP) precondition framework described in RFCs
   3312 and 4032.  A security precondition can be used to delay session
   establishment or modification until media stream security for a
   secure media stream has been negotiated successfully.

1  Notational Conventions............................................2
2  Introduction......................................................2
3  Security Precondition Definition..................................3
4  Examples..........................................................5  Examples..........................................................6
 4.1  SDP Security Descriptions Example.............................5 Example.............................6
 4.2  Key Management Extension for SDP Example......................8
5  Security Considerations..........................................10 Considerations..........................................11
6  IANA Considerations..............................................11 Considerations..............................................12
7  Acknowledgements.................................................11  Acknowledgements.................................................12
8  Authors' Addresses...............................................11 Addresses...............................................13
9  Normative References.............................................12 References.............................................13
10   Informative References.........................................12 References.........................................13
11   Intellectual Property Statement................................14 Statement................................15

1  Notational Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "MUST", "MUST NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

2  Introduction

   The concept of a Session Description Protocol (SDP) [SDP]
   precondition is defined in [RFC3312] as updated by [RFC4032].  A
   precondition is a condition that has to be satisfied for a given
   media stream in order for session establishment or modification to
   proceed.  When the a (mandatory) precondition is not met, session
   progress is delayed until the precondition is satisfied or the
   session establishment fails.  For example, RFC 3312 defines the
   Quality of Service precondition, which is used to ensure
   availability of network resources prior to establishing (i.e.
   alerting) a call.

   Media streams can either be provided in cleartext and with no
   integrity protection, or some kind of media security can be applied,
   e.g., confidentiality and/or message integrity.  For example, the
   Audio/Video profile of the Real-Time Transfer protocol (RTP)
   [RFC3551] is normally used without any security services whereas the
   Secure Real-time Transport Protocol (SRTP) [SRTP] is always used
   with security services.  When media stream security is being
   negotiated, e.g., using the mechanism defined in SDP Security
   Descriptions [SDESC], both the offerer and the answerer need to know
   the cryptographic parameters being used for the media stream; the
   offerer may provide multiple choices for the cryptographic
   parameters, or the cryptographic parameters selected by the answerer
   may differ from those of the offerer (e.g. the key used in one
   direction versus the other).  In such cases, to avoid media
   clipping, the offerer must needs to receive the answer prior to receiving
   any media packets from the answerer.  This can be achieved by using
   a security precondition, which ensures the successful negotiation of
   media stream security parameters for a secure media stream prior to
   session establishment or modification.

3  Security Precondition Definition

   The semantics for a security precondition are that the relevant
   cryptographic parameters (cipher, key, etc.) for a secure media
   stream are known to have been negotiated in the direction(s)
   required.  If the security precondition is used with a non-secure
   media stream, the security precondition is by definition satisfied.
   A secure media stream is here defined as a media stream that uses
   some kind of security service, e.g. message integrity,
   confidentiality or both, regardless of the cryptographic strength of
   the mechanisms being used.

     As an extreme example of this, Secure RTP (SRTP) using the NULL
     encryption algorithm and no message integrity would be considered
     a secure media stream whereas use of plain RTP would not.  Note
     though, that use of SRTP without authentication is discouraged.

   Security preconditions do not guarantee that an established media
   stream will be secure.  They merely guarantee that the recipient of
   the media stream packets will be able to perform any relevant
   decryption and integrity checking on those media stream packets.
   Please refer to Section 5 for further security considerations.

   The security precondition type is defined by the string "sec" and
   hence we modify the grammar found in RFC 3312 as follows:

     precondition-type  =  "sec" | "qos" | token

   RFC 3312 defines support for two kinds of status types, namely
   segmented and end-to-end.  The security precondition-type defined
   here MUST be used with the end-to-end status type; use of the
   segmented status type is undefined.

   An entity that wishes to delay session establishment or modification
   until media stream

   A security has been established uses preconditions can use the security
   precondition-type in an offer. strength-tag "mandatory",
   "optional" or "none".

   When a mandatory security precondition with a strength-tag of "mandatory" is
   received in an offer, session establishment or modification MUST be
   delayed until the security precondition has been met, i.e. the
   relevant cryptographic parameters (cipher, key, etc.) for a secure
   media stream are known to have been negotiated in the direction(s)
   required.  A  When a mandatory security precondition is offered, and
   the answerer cannot satisfy the security precondition, e.g. because
   the offer was for a secure media stream, but it did not include the
   necessary parameters to establish the secure media stream is here defined as a (keying
   material for example), the offered media stream that uses some kind of security service, e.g. message
   integrity, confidentiality or both, regardless of the cryptographic
   strength of the mechanisms being used.

     As an extreme example of this, Secure RTP (SRTP) using the NULL
     encryption algorithm and no message integrity would satisfy the
     above whereas use of plain RTP would not.  Note though, that use
     of SRTP without authentication is discouraged. MUST be rejected as
   described in RFC 3312.

   The delay of session establishment defined here implies that
   alerting of the called party MUST NOT occur and media for which
   security is being negotiated MUST NOT be exchanged until the
   precondition has been satisfied.  In cases where secure media and
   other non-secure data is multiplexed on a media stream, e.g. when
   Interactive Connectivity Establishment [ICE] is being used, the non-
   secure data is allowed to be exchanged prior to the security
   precondition being satisfied.

   The direction tags defined in RFC 3312 are interpreted as follows:

   * send:  Media stream

   When a security negotiation is at precondition with a stage where it is
     possible to send secure media packets to the other party and the
     other party will be able to process them correctly.  The
     definition strength-tag of "media packets" includes all packets that make up
     the media stream.  In "optional" is
   received in an offer, the case of Secure RTP for example, it
     includes SRTP answerer MUST generate its answer SDP as well
   soon as SRTCP.  When media and non-media packets
     are multiplexed on a given media stream, e.g. when ICE is being
     used, the requirement applies to the media packets only.

   * recv:  Media stream security negotiation is at a stage where it possible.  Since session progress is
     possible to receive and correctly process secure media stream
     packets sent by not delayed in this
   case, the other party.

   The precise criteria for determining answerer does not know when the other party offerer is able to
   correctly process
   secure media stream packets depends on and hence clipping may occur.  If the secure
   media stream protocol being used as well as
   answerer wants to avoid clipping and delay session progress until he
   knows the mechanism by which offerer has received the required cryptographic parameters are negotiated.

   We here provide details for SRTP negotiated through SDP security
   descriptions as defined in [SDESC]:

   * When the offerer requests answer, the "send" security precondition, it
     needs to receive answerer MUST
   increase the answer before strength of the security precondition is
     satisfied.  The reason for this is twofold.  First, the offerer
     needs to know where to send the media to.  Secondly, in the case
     where alternative cryptographic parameters are offered, the
     offerer needs to know which set was selected.  The answerer does
     not know when the answer is actually received by the offerer
     (which using a
   strength-tag of "mandatory" in turn will satisfy the precondition), and hence the
     answerer needs to answer.  Note that use the confirm-status attribute [RFC3312].
     This will make the offerer generate of a new offer showing
   mandatory precondition requires the
     updated status presence of a SIP "Require"
   header field containing the precondition.

   * When the offerer option tag "precondition": Any SIP UA
   that does not support a mandatory precondition will consequently
   reject such requests (which also has unintended ramifications for
   SIP forking that are known as the "recv" Heterogeneous Error Response
   Forking Problem (see e.g. [HERFP]).  To get around this, an optional
   security precondition, it
     also needs to receive precondition and the answer before SIP "Supported" header field
   containing the option tag "precondition" can be used instead.

   When a security precondition with a strength-tag of "none" is satisfied.  The reason for this is straightforward:
   received, processing continues us usual.  The answer
     contains the cryptographic parameters "none" strength-tag
   merely indicates that will be used by the
     answerer for sending media to the offerer; prior to receipt of
     these cryptographic parameters the offerer is unable to
     authenticate or decrypt media.

   When supports the security preconditions are used with precondition
   - the Key Management
   Extensions for Session Description Protocol (SDP) [KMGMT], the
   details depend on answerer MAY upgrade the actual key management protocol being used.

   After an initial offer/answer sequence strength-tag in which the answer as
   described in [RFC3312].

   The direction tags defined in RFC 3312 are interpreted as follows:

   * send:  Media stream security
   precondition negotiation is requested, any subsequent offer/answer sequence for at a stage where it is
     possible to send media packets to the purpose of updating other party and the status other
     party will be able to process them correctly from a security point
     of the precondition SHOULD use
   the same key material view, i.e. decrypt and/or integrity check them as the initial offer/answer sequence.  This
   means necessary.
     The definition of "media packets" includes all packets that make
     up the key-mgmt attribute lines [KMGMT] or crypto attribute
   lines [SDESC] in SDP offers that are sent in response to SDP answers
   containing a confirm-status field [RFC3312] SHOULD repeat media stream.  In the same
   data case of Secure RTP for example, it
     includes SRTP as that sent in well as SRTCP.  When media and non-media packets
     are multiplexed on a given media stream, e.g. when ICE is being
     used, the previous SDP offer.  If applicable requirement applies to the
   key management protocol or SDP media packets only.

   * recv:  Media stream security description, the SDP answers negotiation is at a stage where it is
     possible to these SDP offers SHOULD repeat the same data in the key-mgmt
   attribute lines [KMGMT] or crypto attribute lines [SDESC] as that receive and correctly process media stream packets
     sent in by the previous SDP answer.

   Of course, this duplication other party from a security point of key exchange during precondition
   establishment view.

   The precise criteria for determining when the other party is not able to be interpreted as
   correctly process media stream packets from a replay attack.  This
   issue may be solved if, e.g. the SDP implementation recognizes that security point of view
   depend on the key management secure media stream protocol data is identical in the second
   offer/answer exchange and avoids forwarding being used as well as the information to
   mechanism by which the
   security layer required cryptographic parameters are
   negotiated.

   We here provide details for further processing.

   Security preconditions may have a strength-tag of either "mandatory"
   or "optional".  When a mandatory SRTP negotiated through SDP security precondition is offered,
   and
   descriptions as defined in [SDESC]:

   * When the answerer cannot satisfy offerer requests the "send" security precondition, e.g.
   because the offer does not include any parameters related it
     needs to
   establishing a secure media stream, receive the answer before the offer MUST be rejected as
   described in RFC 3312.  When an optional security precondition is
     satisfied.  The reason for this is twofold.  First, the offerer
     needs to know where to send the media to.  Secondly, in the case
     where alternative cryptographic parameters are offered, the
     offerer needs to know which set was selected.  The answerer MUST generate its does
     not know when the answer SDP as soon as
   possible; since session progress is not delayed actually received by the offerer
     (which in this case,
   clipping may occur.  If turn will satisfy the precondition), and hence the
     answerer wants needs to avoid clipping and
   delay session progress until use the confirm-status attribute [RFC3312].
     This will make the offerer has received generate a new offer showing the answer,
     updated status of the answerer MUST increase precondition.

   * When the strength of offerer requests the "recv" security precondition
   by using a strength-tag of "mandatory" in the answer.

     Note that use of a "mandatory" precondition requires precondition, it
     also needs to receive the presence
     of a SIP "Require" header with answer before the option tag "precondition": Any
     SIP UA that does not support a mandatory precondition will
     consequently reject such requests.  To get around this issue, an
     optional security precondition and the SIP "Supported" header with
     is satisfied.  The reason for this is straightforward: The answer
     contains the option tag "precondition" can cryptographic parameters that will be used instead.

   Offers with security preconditions in re-INVITEs or UPDATEs follow by the rules given in Section 6 of RFC 3312, i.e.:

     "Both user agents SHOULD continue using
     answerer for sending media to the old session offerer; prior to receipt of
     these cryptographic parameters
     until all the mandatory offerer is unable to
     authenticate or decrypt such media.

   When security preconditions are met.  At that moment,
     the user agents can begin using the new session parameters."

4  Examples

4.1 SDP Security Descriptions Example

   The call flow of Figure 1 shows a basic session establishment using used with the Key Management
   Extensions for Session Initiation Description Protocol [SIP] and SDP security descriptions
   [SDESC] with (SDP) [KMGMT], the
   details depend on the actual key management protocol being used.

   After an initial offer/answer exchange in which the security descriptions
   precondition is requested, any subsequent offer/answer sequence for
   the purpose of updating the status of the precondition for a secure
   media stream (SRTP SHOULD use the same key material as the initial
   offer/answer exchange.  This means that the key-mgmt attribute lines
   [KMGMT] or crypto attribute lines [SDESC] in this case).

                  A                                            B

                  |                                            |
                  |-------------(1) INVITE SDP offers, that are
   sent in response to SDP answers containing a confirm-status field
   [RFC3312], SHOULD repeat the same data as that sent in the previous
   SDP offer.  If applicable to the key management protocol or SDP
   security description, the SDP answers to these SDP offers SHOULD
   repeat the same data in the key-mgmt attribute lines [KMGMT] or
   crypto attribute lines [SDESC] as that sent in the previous SDP
   answer.

   Of course, this duplication of key exchange during precondition
   establishment is not to be interpreted as a replay attack.  This
   issue may be solved if, e.g., the SDP implementation recognizes that
   the key management protocol data is identical in the second
   offer/answer exchange and avoids forwarding the information to the
   security layer for further processing.

   Offers with security preconditions in re-INVITEs or UPDATEs follow
   the rules given in Section 6 of RFC 3312, i.e.:

     "Both user agents SHOULD continue using the old session parameters
     until all the mandatory preconditions are met.  At that moment,
     the user agents can begin using the new session parameters."

4  Examples

4.1 SDP Security Descriptions Example

   The call flow of Figure 1 shows a basic session establishment using
   the Session Initiation Protocol [SIP] and SDP security descriptions
   [SDESC] with security descriptions for the secure media stream (SRTP
   in this case).

                  A                                            B

                  |                                            |
                  |-------------(1) INVITE SDP1--------------->|
                  |                                            |
                  |<------(2) 183 Session Progress SDP2--------|
                  |                                            |
                  |----------------(3) PRACK SDP3------------->|
                  |                                            |
                  |<-----------(4) 200 OK (PRACK) SDP4---------|
                  |                                            |
                  |<-------------(5) 180 Ringing---------------|
                  |                                            |
                  |                                            |
                  |                                            |

                Figure 1: Security Preconditions with SDP Security
                          Descriptions Example

   The SDP descriptions of this example are shown below - we have
   omitted the details of the SDP security descriptions as well as any
   SIP details for clarity of the security precondition described here:

   SDP1: A includes a mandatory end-to-end security precondition for
   both the send and receive direction in the initial offer as well as
   a "crypto" attribute (see [SDESC]), which includes keying material
   that can be used by A to generate media packets.  Since B does not
   know any of the security parameters yet, the current status (see RFC
   3312) is set to "none".  A's local status table (see RFC 3312) for
   the security precondition is as follows:

       Direction |  Current | Desired Strength |  Confirm
      -----------+----------+------------------+----------
         send    |    no    |   mandatory      |    no
         recv    |    no    |   mandatory      |    no

   and the resulting offer SDP is:

     m=audio 20000 RTP/SAVP 0
     c=IN IP4 192.0.2.1
     a=curr:sec e2e none
     a=des:sec mandatory e2e sendrecv
     a=crypto:foo...

   SDP2: When B receives the offer and generates an answer, B knows the
   (send and recv) security parameters of both A and B.  However, A
   does not know B's security parameters, so the current status of B's
   "send" security precondition (which equal A's "recv" security
   precondition) is "no".  Similarly, A does not know any of B's SDP
   information, so B's "send" security precondition is also "no".  B's
   local status table therefore looks as follows:

       Direction |  Current | Desired Strength |  Confirm
      -----------+----------+------------------+----------
         send    |    no    |   mandatory      |    no
         recv    |    no    |   mandatory      |    no

   B requests A to confirm when A knows the security parameters used in
   the send and receive direction and hence the resulting answer SDP
   becomes:

     m=audio 30000 RTP/SAVP 0
     c=IN IP4 192.0.2.4
     a=curr:sec e2e none
     a=des:sec mandatory e2e sendrecv
     a=conf:sec e2e sendrecv
     a=crypto:bar...

   SDP3: When A receives the answer, A updates its local status table
   based on the rules in RFC 3312.  A knows the security parameters of
   both the send and receive direction and hence A's local status table
   is updated as follows:

       Direction |  Current | Desired Strength |  Confirm
      -----------+----------+------------------+----------
         send    |    yes   |   mandatory      |    yes
         recv    |    yes   |   mandatory      |    yes

   Since B requested confirmation of the send and recv security
   preconditions, and both are now satisfied, A immediately sends an
   updated offer (3) to B showing that the security preconditions are
   satisfied:

     m=audio 20000 RTP/SAVP 0
     c=IN IP4 192.0.2.1
     a=curr:sec e2e sendrecv
     a=des:sec mandatory e2e sendrecv
     a=crypto:foo...

   Note that we here use PRACK [RFC3262] instead of UPDATE [RFC3311]
   since the precondition is satisfied immediately, and the original
   offer/answer exchange is complete)

   SDP4:  Upon receiving the updated offer, B updates its local status
   table based on the rules in RFC 3312 which yields the following:

       Direction |  Current | Desired Strength |  Confirm
      -----------+----------+------------------+----------
         send    |    yes   |   mandatory      |    no
         recv    |    yes   |   mandatory      |    no

   B responds with an answer (4) which contains the current status of
   the security precondition (i.e., sendrecv) from B's point of view:

     m=audio 30000 RTP/SAVP 0
     c=IN IP4 192.0.2.4
     a=curr:sec e2e sendrecv
     a=des:sec mandatory e2e sendrecv
     a=crypto:bar...

   B's local status table indicates that all mandatory preconditions
   have been satisfied, and hence session establishment resumes; B
   returns a 180 (Ringing) response (5) to indicate alerting.

4.2 Key Management Extension for SDP Example

   The call flow of Figure 2 shows a basic session establishment using
   the Session Initiation Protocol [SIP] and Key Management Extensions
   for SDP [KMGMT] with security descriptions for the secure media
   stream (SRTP in this case):

                  A                                            B

                  |                                            |
                  |-------------(1) INVITE SDP1--------------->|
                  |                                            |
                  |<------(2) 183 Session Progress SDP2--------|
                  |                                            |
                  |----------------(3) PRACK SDP3------------->|
                  |                                            |
                  |<-----------(4) 200 OK (PRACK) SDP4---------|
                  |                                            |
                  |<-------------(5) 180 Ringing---------------|
                  |                                            |
                  |                                            |
                  |                                            |

                Figure 2: Security Preconditions with Key Management
                          Extensions for SDP Example

   The SDP descriptions of this example are shown below - we show an
   example use of MIKEY [MIKEY] with the Key Management Extensions,
   however we have omitted the details of the MIKEY parameters as well
   as any SIP details for clarity of the security precondition
   described here:

   SDP1: A includes a mandatory end-to-end security precondition for
   both the send and receive direction in the initial offer as well as
   a "key-mgmt" attribute (see [KMGMT]), which includes keying material
   that can be used by A to generate media packets.  Since B does not
   know any of the security parameters yet, the current status (see RFC
   3312) is set to "none".  A's local status table (see RFC 3312) for
   the security precondition is as follows:

       Direction |  Current | Desired Strength |  Confirm
      -----------+----------+------------------+----------
         send    |    no    |   mandatory      |    no
         recv    |    no    |   mandatory      |    no

   and the resulting offer SDP is:

     m=audio 20000 RTP/SAVP 0
     c=IN IP4 192.0.2.1
     a=curr:sec e2e none
     a=des:sec mandatory e2e sendrecv
     a=key-mgmt:mikey AQAFgM0X...

   SDP2: When B receives the offer and generates an answer, B knows the
   (send and recv) security parameters of both A and B.  B generates
   keying material for sending media to A, however, A does not know B's
   keying material, so the current status of B's "send" security
   precondition (which equal A's "recv" security precondition) is "no".
   Similarly, A does not know any of B's SDP information, so B's "recv"
   security precondition is also "no".  B's local status table
   therefore looks as follows:

       Direction |  Current | Desired Strength |  Confirm
      -----------+----------+------------------+----------
         send    |    no    |   mandatory      |    no
         recv    |    no    |   mandatory      |    no
   B requests A to confirm when A knows the security parameters used in
   the send and receive direction and hence the resulting answer SDP
   becomes:

     m=audio 30000 RTP/SAVP 0
     c=IN IP4 192.0.2.4
     a=curr:sec e2e none
     a=des:sec mandatory e2e sendrecv
     a=conf:sec e2e sendrecv
     a=key-mgmt:mikey AQAFgM0X...

   Note that the actual MIKEY data in the answer differs from that in
   the offer, however we have only shown the initial and common part of
   the MIKEY value in the above.

   SDP3: When A receives the answer, A updates its local status table
   based on the rules in RFC 3312.  A now knows all the security
   parameters of both the send and receive direction and hence A's
   local status table is updated as follows:

       Direction |  Current | Desired Strength |  Confirm
      -----------+----------+------------------+----------
         send    |    yes   |   mandatory      |    yes
         recv    |    yes   |   mandatory      |    yes

   Since B requested confirmation of the send and recv security
   preconditions, and both are now satisfied, A immediately sends an
   updated offer (3) to B showing that the security preconditions are
   satisfied:

     m=audio 20000 RTP/SAVP 0
     c=IN IP4 192.0.2.1
     a=curr:sec e2e sendrecv
     a=des:sec mandatory e2e sendrecv
     a=key-mgmt:mikey AQAFgM0X...

   SDP4:  Upon receiving the updated offer, B updates its local status
   table based on the rules in RFC 3312 rules in RFC 3312 which yields the following:

       Direction |  Current | Desired Strength |  Confirm
      -----------+----------+------------------+----------
         send    |    yes   |   mandatory      |    no
         recv    |    yes   |   mandatory      |    no

   B responds with an answer (4) which contains the current status of
   the security precondition (i.e., sendrecv) from B's point of view:

     m=audio 30000 RTP/SAVP 0
     c=IN IP4 192.0.2.4
     a=curr:sec e2e sendrecv
     a=des:sec mandatory e2e sendrecv
     a=key-mgmt:mikey AQAFgM0X...

   B's local status table indicates that all mandatory preconditions
   have been satisfied, and hence session establishment resumes; B
   returns a 180 (Ringing) response (5) to indicate alerting.

5  Security Considerations

   In addition to the general security considerations for preconditions
   provided in RFC 3312, the following security issues should be
   considered.

   Security preconditions delay session establishment until
   cryptographic parameters required to send and/or receive media for a
   media stream have been negotiated.  Negotiation of such parameters
   can fail for a variety of reasons, including policy preventing use
   of certain cryptographic algorithms, keys, and other security
   parameters.  If an attacker can remove security preconditions or
   downgrade the strength-tag from an offer/answer exchange, the
   attacker can thereby cause user alerting for a session that may have
   no functioning media.  This is likely to cause inconvenience to both
   the offerer and the answerer.  Similarly, security preconditions can
   be used to prevent clipping due to race conditions between an
   offer/answer exchange and secure media stream packets based on that
   offer/answer exchange.  If an attacker can remove or downgrade the
   strength-tag of security preconditions from an offer/answer
   exchange, the attacker can cause clipping to occur in the associated
   secure media stream.

   Conversely, an attacker might add security preconditions to offers
   that do not contain them or increase their strength-tag.  This in
   turn may lead to session failure (e.g. if the answerer does not
   support it), heterogeneous error response forking problems, or a
   delay in session establishment that was not desired.

   Use of signaling integrity mechanisms can prevent all of the above
   problems.  Where intermediaries on the signaling path (e.g. SIP
   proxies) are trusted, it is sufficient to use only hop-by-hop
   integrity protection of signaling, e.g., IPSec or TLS.  In all other
   cases, end-to-end integrity protection of signaling, e.g. S/MIME,
   MUST be used.  Note that the end-to-end integrity protection MUST
   cover not only the message body, which yields contains the following:

       Direction |  Current | Desired Strength |  Confirm
      -----------+----------+------------------+----------
         send    |    yes   |   mandatory      |    no
         recv    |    yes   |   mandatory      |    no

   B responds with an answer (4) security
   preconditions, but also the SIP "Supported" and "Require" headers,
   which contains may contain the current status "precondition" option tag.  If only the
   message body were integrity protected, removal of the "precondition"
   option tag could lead to clipping (when a security precondition (i.e., sendrecv) from B's point of view:

     m=audio 30000 RTP/SAVP 0
     c=IN IP4 192.0.2.4
     a=curr:sec e2e sendrecv
     a=des:sec mandatory e2e sendrecv
     a=key-mgmt:mikey AQAFgM0X...

   B's local status table indicates that all mandatory preconditions
   have been satisfied, and hence session establishment resumes; B
   returns a 180 (Ringing) response (5) was
   otherwise to indicate alerting.

5  Security Considerations

   In be used), whereas addition of the option tag could lead
   to session failure (if the general other side does not support
   preconditions).

   As specified in Section 3, security for preconditions provided in
   RFC 3312, do not guarantee
   that an established media stream will be secure.  They merely
   guarantee that the following security issues, which are specific to
   security preconditions, should recipient of the media stream packets will be considered.

   Security preconditions delay session establishment until
   cryptographic parameters required
   able to send and/or receive perform any relevant decryption and integrity checking on
   those media have
   been negotiated.  Negotiation of such parameters can fail for stream packets.  If an offer includes a
   variety of reasons, including policy preventing use of certain
   cryptographic algorithms, keys, secure and other a
   non-secure media stream as alternatives, this may lead to additional
   security parameters.  If
   intermediaries can remove issues.  It is important to understand how security
   preconditions interact with those.

     SDP and the offer/answer model currently do not define how such
     alternatives could be negotiated, however there is work in
     progress to address that (see e.g. [SDPCN]).  Below, we provide
     general security considerations for security preconditions or downgrade with
     such mechanisms.

   If the
   strength from an offer/answer exchange, they can thereby cause user
   alerting offer were to include secure and non-secure media streams as
   alternative offers, and media for a session that either alternative may have no functioning media, which is
   likely to cause inconvenience be received
   prior to the called party.  Similarly,
   security preconditions can answer, then the offerer may not know if the answerer
   accepted the secure alternative.  An active attacker thus may be used to prevent clipping due
   able to race
   conditions between an offer/answer exchange and secure inject malicious media stream packets based on that offer/answer exchange.  If intermediaries can
   remove or downgrade until the strength answer is
   received.  Use of security preconditions from an
   offer/answer exchange, they can cause clipping to occur in would not address this
   vulnerability since security preconditions do not guarantee that a
   media stream established is secure, even if the
   associated strength-tag is
   "mandatory".

   In the above scenario with secure and non-secure media stream.

   Conversely, intermediaries streams as
   alternatives, the offerer may also add security be concerned about a passive
   attacker performing eavesdropping on the media stream.  Security
   preconditions to
   offers that do not contain them or increase their strength.  This in
   turn may lead to session failure or delayed session establishment can help here by ensuring that was clipping will not desired.

   Use of integrity mechanisms can prevent all of occur
   if the above problems.
   Where intermediaries on answerer supports the signaling path are trusted, it secure media stream and furthermore
   accepts it.  Still, they would not guarantee that the media stream
   established is
   sufficient to only use hop-by-hop integrity protection, e.g. IPSec
   or TLS.  In all other cases, end-to-end integrity protection, e.g.
   S/MIME, MUST be used. secure and hence by themselves would not protect
   against eavesdropping.

6  IANA Considerations

   IANA is hereby requested to register a RFC 3312 precondition type
   called "sec" with the name "Security precondition".  The reference
   for this precondition type is the current document.

7  Acknowledgements

   The security precondition was defined in earlier draft versions of
   RFC 3312.  RFC 3312 contains an extensive list of people who worked
   on those earlier draft versions which are acknowledged here as well.
   The authors would additionally like to thank Mark Baugher, Gonzalo
   Camarillo, Paul Kyzivat and Thomas Stach for their comments on this
   document.

8  Authors' Addresses

   Flemming Andreasen
   Cisco Systems, Inc.
   499 Thornall Street, 8th Floor
   Edison, New Jersey  08837 USA
   EMail: fandreas@cisco.com

   Dan Wing
   Cisco Systems, Inc.
   170 West Tasman Drive
   San Jose, CA  95134  USA
   EMail: dwing@cisco.com

9  Normative References

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
   Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3312] G. Camarillo, W. Marshall, J. Rosenberg, "Integration of
   Resource Management and Session Initiation Protocol (SIP)", RFC
   3312, October 2002.

   [RFC4032] G. Camarillo and P. Kyzivat, "Update to the Session
   Initiation Protocol (SIP) Preconditions Framework", RFC 4032, March
   2005.

   [RFC2327] M. Handley and V. Jacobson, "SDP: Session Description
   Protocol", RFC 2327, April 1998.

   [SIP] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J.
   Peterson, R. Sparks, M. Handley, E. Schooler, "SIP: Session
   Initiation Protocol", RFC 3261, June 2002.

10 Informative References

   [SDESC]     F. Andreasen, M. Baugher, and D. Wing, "SDP Security
   Descriptions for Media Streams", work in progress

   [RFC3551]   H. Schulzrinne, and S. Casner "RTP Profile for Audio and
   Video Conferences with Minimal Control", RFC 3550, July 2003.

   [SRTP]      M. Baugher, D. McGrew, M. Naslund, E. Carrara, K.
   Norrman, "The Secure Real-time Transport Protocol", RFC 3711, March
   2004.

   [ICE]       J. Rosenberg, "Interactive Connectivity Establishment
   (ICE): A Methodology for Network Address Translator (NAT) Traversal
   for Multimedia Session Establishment Protocols", IETF, work-in-progress. work-in-
   progress.

   [KMGMT]     J. Arkko, E. Carrara, F. Lindholm, M. Naslund, and K.
   Norrman, "Key Management Extensions for Session Description Protocol
   (SDP) and Real Time Streaming Protocol (RTSP)", IETF, work-in-
   progress.

   [MIKEY]     J. Arkko, E. Carrara, F. Lindholm, M. Naslund, and K.
   Norrman, "MIKEY: Multimedia Internet KEYing", RFC 3830, August 2004.

   [RFC3262]   Rosenberg, J. and H. Schulzrinne, "Reliability of
   Provisional Responses in Session Initiation Protocol (SIP)", RFC
   3262, June 2002.

   [RFC3311]   J. Rosenberg, J., "The Session Initiation Protocol (SIP)
   UPDATE Method," RFC 3311, September 2002.

   [HERFP]     R. Mahy, "A Solution to the Heterogeneous Error Response
   Forking Problem (HERFP) in the Session Initiation Problem (SIP)",
   Work in Progress, March 2006.

   [SDPCN]     F. Andreasen, "SDP Capability Negotiation", Work in
   Progress, June 2006.

11 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 IETF's procedures with respect to rights in IETF
   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.

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 (2005). (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.

Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.