Internet Engineering Task Force                                 J. Arkko
MMUSIC Working Group                                          E. Carrara
INTERNET-DRAFT                                               F. Lindholm
Expires: May July 2002                                            M. Naslund
                                                              K. Norrman
                                                                Ericsson
                                                          November, 2001
                                                           January, 2002

               Key Management Extensions for SDP and RTSP
                  <draft-ietf-mmusic-kmgmt-ext-00.txt>
                  <draft-ietf-mmusic-kmgmt-ext-01.txt>

Status of this memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   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

Abstract

   Work for securing real-time applications have started. It has also
   brought toward the need for a key management infrastructure to
   support the security protocol.

   This document defines extensions for SDP and RTSP to carry the
   security information needed by a key management protocol, in order to
   secure the media stream itself. stream. Indications are also given on how it should
   be used together with SIP and RTSP.

TABLE OF CONTENTS

   1. Introduction..................................................2 Introduction.................................................. 2
   1.1. Notational Conventions......................................3 Conventions...................................... 3
   2. Extensions to SDP Attribute Fields for Key Management.......................3 and RTSP.................................... 3
   2.1. SDP Grammar.................................................4 Extensions.............................................. 3
   2.2. SDP in RTSP Extensions............................................. 4
   3. Usage with SIP and RTSP.........................................5
   3. RTSP....................................... 5
   3.1. SIP usage................................................... 5
   3.2. RTSP Header and Grammar.......................................5 usage.................................................. 5
   3.3. Example scenarios........................................... 6
   4. Security Considerations.......................................6 Considerations....................................... 8
   5. IANA Considerations...........................................6 Considerations........................................... 9
   6. Conclusions...................................................7 Conclusions................................................... 9
   7. Acknowledgments...............................................7 Acknowledgments............................................... 9
   8. Author's Addresses............................................7 Addresses............................................ 9
   9. References....................................................7 References....................................................10

1. Introduction

   There has recently been work to define a security framework for the
   protection of real-time applications running over RTP, [SRTP].
   However, a security protocol needs a key management infrastructure to
   exchange keys and security parameters, managing and refreshing keys,
   etc.

   The Session Description Protocol [SDP] focus in the following sections is used to convey
   advertisements of conference sessions describe SDP attribute
   extensions and communicate the relevant
   conference setup information RTSP header extensions to prospective participants. SDP is
   intended support key management, and
   a possible integration within SIP and RTSP.

   Some of the motivations to use different transport protocols include the key management in the session
   establishment are:

     * Just as appropriate, e.g. the Session Initiation Protocol [SIP] codec information is a description of how to encode
      and decode the audio (or video) stream, the Real-Time Streaming
   Protocol [RTSP].

   An efficient way of performing key management data
      is to integrate it into
   SDP. This approach may reduce the number a description of roundtrips compared how to a
   standalone key management scheme (and in some cases it could also
   reduce encrypt and decrypt the total bandwidth consumption). However, data.

     * The possibility to make negotiate the security for the entire
      multimedia session at the same time.

     * The knowledge of the media at the session establishment makes it possible
      easy to integrate tie the key management protocol (e.g. [MIKEY]) into SDP, a
   set of attributes in SDP is needed. Such to the multimedia sessions.

     * This approach may be more efficient than setting up the security
      later, as that approach might force extra roundtrips, possibly
      also a set of attributes is
   defined in this document separate set-up for each stream, hence implying more delay
      to support integrated the actual setup of the media stream key
   management. session.

   Currently in SDP, SDP [SDP], one field exists to transport keys, i.e. the
   "key=" field. However, this is not enough for a key management
   protocol.
   There MUST exist the possibility The approach here is to include not only use and extend the key, but
   also SDP description
   to transport the key encrypted, encryption parameters, security protocol
   parameters, management offer/answer and at the same time have also to associate it all authenticated. This can
   not be done
   with the "key=" field as specified today.

   In RTSP, media sessions. SIP uses the offer/answer model [OAM]
   whereby extensions to SDP description is mainly used in the response to the
   DESCRIBE method. This makes it hard to send key management messages
   back from the client to the server. Therefore, this draft also
   defines an will be enough. An extra RTSP header that may be used to carry additional key
   management messages. is
   also defined.

1.1. 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.

2. Extensions to SDP Attributes for Key Management and RTSP

   This subsection section describes common attributes that are to be included in the
   an SDP description or in an RTSP header when an integrated key
   management protocol is used. All attribute values MUST follow the
   general SDP guidelines.

   The attributes are designed to give a minimal impact on SDP, i.e.
   only a minimal set of "knowledge" MUST be built into an existing SDP
   stack in order to support the key management.

   Three SDP attributes are defined.

   To be able to detect the key management protocol applied, this MUST
   be signaled by:

   a=keymgmt-prot:<protocol>

   The key management protocol data MUST be provided in the following
   field:

   a=keymgmt-data:<key-transport-data>

   Note that the data MUST be encoded in a way so that it complies with or RTSP guideline.

   For the normal SDP rules.

   In case the key management mechanism does not provide authentication
   of the key management part, additional authentication data MAY be
   provided in description, the "keymgmt-auth" field.

   a=keymgmt-auth:<key-auth-data>

   The key management attributes may be defined both
   at the session level (i.e. before the media descriptor lines) and and/or at the
   media level
   of the SDP description. level. If the key management attributes are defined at media
   level, it they will only apply to that specific media. If the key
   management attributes are defined at both session and media level,
   the media level definition overrides the session level definition for
   that specific media.

   Example 1 (session level)

   a=keymgmt-prot:MIKEY
   a=keymgmt-data:uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
   m=audio 49000 RTP/SAVP 98
   a=rtpmap:98 AMR/8000
   m=video 2232 RTP/SAVP 31

   In this example, MIKEY is negotiating

   The extensions were defined in a way to:

     * give a minimal impact on current SDP implementations, i.e. only
      minimal modifications MUST be built into an existing SDP stack in
      order to support the crypto suite for both
   streams at session level. It is recommended key management.

     * make it easy to use this approach if
   possible another key management protocol, or a new
      version, without having to save both bandwidth and computational resources.

   Example 2 (media level)

   m=audio 49000 RTP/SAVP 98
   a=keymgmt-prot:MIKEY
   a=keymgmt-data:uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
   a=rtpmap:98 AMR/8000
   m=video 2232 RTP/AVP 31

   Note that redefine the video part in this example is not protected by any
   security protocol. attributes or add new
      ones.

   The following set of attributes have been identified as necessary to
   support:

     * key management protocol identifier, to indicate the key
       management protocol used ('keymgmt-prtcl')

     * key management raw data field, to transport the key management
       protocol data ('keymgmt-data')

     * in the case of SDP, an extra (optional) authentication attribute
       to be able to tie the key management data to the surrounding
       media definitions ('key-extra-auth').

2.1. SDP Grammar Extensions

   This section provides an Augmented Backus-Naur Form (ABNF) grammar
   (as used in [SDP]) for the key management extensions to SDP.

   Note that the new definitions are compliant with the definition of an
   attribute field, i.e.

   attribute      = (att-field ":" att-value) | att-field

   Three new attributes are defined, keymgmt-prtcl, keymgmt-data, and
   key-extra-auth.

   keymgmt-prtcl  = "keymgmt-prot:" prtcl-name

   prtcl-name     = 1*(alpha-numeric|SAFE) 1*(safe)
                    ; e.g. "MIKEY"

   keymgmt-data   = "keymgmt-data:" byte-string

   key-extra-auth = "keymgmt-auth:" byte-string

   byte-string    = 1*(0x01..0x09|0x0b|0x0c|0x0e..0xff)
                     ;any byte except NUL, CR or LF
   alpha-numeric  = ALPHA | DIGIT

   DIGIT          = "0" | POS-DIGIT

   POS-DIGIT      = "1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"

   ALPHA          = "a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"|"k"|
                    "l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"|"u"|"v"|
                    "w"|"x"|"y"|"z"|"A"|"B"|"C"|"D"|"E"|"F"|"G"|
                    "H"|"I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|"Q"|"R"|
                    "S"|"T"|"U"|"V"|"W"|"X"|"Y"|"Z"

   SAFE           =  "\$" | "-" | "_" | "." | "+"

2.2. SDP in SIP and RTSP

   Both SIP and RTSP provide means to transport SDP descriptions. This
   section gives a recommendation of how/when to include key management
   initiated SDP descriptions in SIP and RTSP.

   For SIP, the recommendation is to use the Invite message (and the
   following response) to transport the SDP description with the key
   management parameters.

   For RTSP, the recommendation is to let the server include a SDP
   description with the key management parameters in the response to a
   DESCRIBE message. A problem with RTSP is that no SDP description can
   be assumed to be sent back to the server. Therefore, other means to
   send key management messages between client

   where safe and server is needed.
   This may be solved by using the new RTSP header byte-string are as defined in Section 3.

   In general, any key management protocol using SDP as a mean of
   transport, MUST not require a great number of exchange messages. It
   is RECOMMENDED that the key management protocol does not use more
   than one roundtrip. This is to create as small (if any) impact as
   possible on the underlying transporting mechanism (e.g., SIP and
   RTSP).

3. [SDP].

2.2. RTSP Header and Grammar Extensions

   To support the three different parameters described in Section 2, a
   new attributes described, the following
   RTSP header is defined. defined:

   KeyMgmt    = "KeyMgmt" ":" [stream-url] protocol data [auth]

   stream-url = "url" "=" url ";"

   protocol   = "Prot" "=" prtcl-name token ";"

   data       = ";" "Data" "=" string

   auth       = ";" "Auth" "=" string

   string     = 1*(alpha-numeric|SAFE|"=")

   alpha-numeric, SAFE quoted-string

   url, token and prtcl-name quoted-string are as defined in Section 2.1. the RTSP specification
   [RTSP]. The url indicates the stream URL for URL, which the parameters
   correspond to.
   It is recommended that

   The KeyMgmt header should be possible to use in both request and
   response messages of the following methods:
   * DESCRIBE
   * ANNOUNCE
   * SETUP
   * PLAY
   * RECORD
   * SET_PARAMETER
   * GET_PARAMETER
   * OPTIONS

3. Usage with SIP and RTSP

   This section gives recommendations of how/when to include the defined
   key management attributes when SIP and/or RTSP are used together with
   SDP.

   Some general requirements MUST be set on the key management protocol
   if it has to be suitable to work together with SIP and RTSP:

     * It MUST be possible to execute the key management protocol in at
      most one roundtrip in case the answerer accepts the offer.

     * The protocol MUST return, to SDP/RTSP, a valid answer whether the
      provided offer was accepted or not.

     * There MUST be a possibility for the key management protocol to
      tie the media sessions to the negotiated parameters (i.e. an
      interface between the key management and the SDP and RTSP
      implementation MUST exist).

   Today, the MIKEY protocol has adopted the key management extensions
   to work together with SIP and RTSP. Other protocols may use the
   described attributes and header, e.g. Kerberos.

3.1. SIP usage

   The offerer should include the key management data within an offer
   that contains the media description it should apply to. The answerer
   MUST check with the key management protocol if the attribute values
   are valid, and then obtain from the key management the data to
   include in the answer. If the offer is not accepted, the answerer
   returns a notification message and the offerer may go out with a new
   (different) offer, depending on the local security policy.

   Re-keying should be handled as a new offer, i.e. a re-INVITE should
   be sent with the new proposed parameters. The answerer treats this as
   a new offer where the key management is the issue of change.

3.2. RTSP usage

   RTSP does not use the offer/answer model, as SIP does. This causes
   some problems as it is not possible (without abusing RTSP) to send
   back an answer to the server (as the server will in most cases be the
   one initiating the security parameter exchange). To solve this, a new
   header has been introduced (Section 2.2).

   The initial key management message from a server should be sent to
   the client using SDP. When responding to this, the client uses the
   new RTSP header to send back an answer (included in either the SETUP
   or the PLAY message).

   The server may provide re-keying facilities by sending a new key
   management message in a SET_PARAMETER or ANNOUNCE messages. In the
   latter, the RTSP header is not used if the ANNOUNCE message includes
   a SDP description where the data can be provided in. The response
   message is then put in the new RTSP header in the response message
   from the client to the server. Note that the SET PARAMETER and the
   ANNOUNCE messages are not mandatory to support for the servers.

3.3. Example scenarios

   Example 1 (SIP)

   A SIP call is taking place between Alice and Bob. Alice sends an
   Invite message consisting of the following offer:

   v=0
   o=alice 2891092738 2891092738 IN IP4 lost.somewhere.com
   s=Cool stuff
   e=alice@w-land.org
   t=0 0
   c=IN IP4 lost.somewhere.com
   a=keymgmt-prot:MIKEY
   a=keymgmt-data:uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
   m=audio 49000 RTP/SAVP 98
   a=rtpmap:98 AMR/8000
   m=video 52230 RTP/SAVP 31
   a=rtpmap:31 H261/90000

   i.e. Alice proposes to set up one audio stream and one video stream
   that run over SRTP. To set up the security parameters for SRTP, she
   uses MIKEY. Note that MIKEY is negotiating the string crypto suite for both
   streams (as it is a base64 encoded value.

   The new key management header should be possible placed at the session level).

   Bob accepts the offer and sends an answer back to use Alice:

   v=0
   o=bob 2891092897 2891092897 IN IP4 found.somewhere.com
   s=Cool stuff
   e=bob@null.org
   t=0 0
   c=IN IP4 found.somewhere.com
   a=keymgmt-prot:MIKEY
   a=keymgmt-data:skaoqDeMkdwRW278HjKVB...
   m=audio 49030 RTP/SAVP 98
   a=rtpmap:98 AMR/8000
   m=video 52230 RTP/SAVP 31
   a=rtpmap:31 H261/90000
   Example 2 (SDP)

   This example shows how Alice would have done in both
   request and response messages of the following methods:
   * ANNOUNCE
   * SETUP
   * PLAY
   * RECORD
   * SET_PARAMETER
   * GET_PARAMETER
   * OPTIONS

   When previous example
   if she wished to protect only the audio stream.

   v=0
   o=alice 2891092738 2891092738 IN IP4 lost.somewhere.com
   s=Cool stuff
   e=alice@w-land.org
   t=0 0
   c=IN IP4 lost.somewhere.com
   m=audio 49000 RTP/SAVP 98
   a=rtpmap:98 AMR/8000
   a=keymgmt-prot:MIKEY
   a=keymgmt-data:uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
   m=video 52230 RTP/AVP 31
   a=rtpmap:31 H261/90000

   Example 3 (RTSP)

   A client wants to set up a key management protocol is enabled in streaming session and requests a media
   description from the RTSP implementation,
   it MUST for each streaming server.

   DESCRIBE rtsp://server.example.com/fizzle/foo RTSP/1.0
   CSeq: 312
   Accept: application/sdp
   From: user@client.com

   The server sends back an OK message including a SDP description. As
   the server

   RTSP/1.0 200 OK
   CSeq: 312
   Date: 23 Jan 1997 15:35:06 GMT
   Content-Type: application/sdp
   v=0
   o=actionmovie 2891092738 2891092738 IN IP4 movie.somewhere.com
   s=Action Movie
   e=action@movie.somewhere.com
   t=0 0
   c=IN IP4 movie.somewhere.com
   a=keymgmt-prot:MIKEY
   a=keymgmt-data:uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
   m=audio 0 RTP/SAVP 98
   a=rtpmap:98 AMR/8000
   control:rtsp://movie.somewhere.com/action/audio
   m=video 0 RTP/SAVP 31
   a=rtpmap:31 H261/90000
   control:rtsp://movie.somewhere.com/action/video

   The client is now ready to be sent (that may contain setup the KeyMgmt
   header), check with sessions. It includes the key
   management protocol if any parameters(s)
   should be include data in the header first message going back to the server (i.e.
   the Data or Auth parameter).
   For each message received (that contains SETUP message).

   SETUP rtsp://movie.somewhere.com/action/audio RTSP/1.0
   CSeq: 313
   Transport: RTP/SAVP/UDP;unicast;client_port=3056-3057
   KeyMgmt: Prot=MIKEY;Data="skaoqDeMkdwRW278HjKVB..."

   The server processes the KeyMgmt header), request including checking the key
   management parameters (Data and Auth) are passed to validity of
   the key management protocol header.

   RTSP/1.0 200 OK
   CSeq: 313
   Session: 12345678
   Transport: RTP/SAVP/UDP;unicast;client_port=3056-3057;
                         server_port=5000-5001

   The RTSP is then proceeded as usual (with e.g. a SETUP message for processing.
   the video followed by a PLAY message).

4. Security Considerations

   The nature of this document is to allow SDP and RTSP to support for
   security of the media sessions. It is therefore not the intention of
   this document to describe possible security solution nor or to define
   possible security problems. The defined SDP and RTSP extensions are
   not believed to introduce any new security risks to SDP and RTSP.

   The 'key-extra-auth' attribute may be (optionally) used to guarantee
   an authenticated binding between the session(s) and the security
   parameters, e.g. authenticating both the key management lines and
   (parts of) the surrounding SDP description. Each key management
   specifies the coverage of such 'key-extra-auth' attribute. A denial-
   of-service attack may be open if such authenticated binding is not
   provided. Note however, the 'key-extra-auth' cannot work when NATs
   are present.

   Note that the purpose of the key management fields is to secure the
   media streams themselves. Provided Under the assumption that the key
   management schemes are secure, the SDP payloads can be passed along
   unprotected, and the media streams will still be secure even if some
   attackers gained knowledge of the SDP contents. There may, may however, be
   other reasons to protect the SDP payloads such as preventing
   attackers from gaining any information regarding the session or the
   used equipment.

5. IANA Considerations

   Three new attributes fields for SDP (see Section 2) 2.1) and one new
   RTSP header are registered (see Section 3). 2.2).

6. Conclusions

   A security solution for real-time applications needs a key management
   infrastructure. Integrating the key management scheme with the
   session establishment protocol could be done efficiently in most of
   the scenarios. This document defines extensions to A set of new attributes and headers have been defined
   in SDP and RTSP so that it will be possible to integrate a key
   management protocol (e.g. MIKEY) into protocol such as SIP and RTSP.

7. Acknowledgments

   Thanks to: Rolf Blom, Joerg Ott, Colin Perkins, Magnus Westerlund,
   and the rest involved in the MMUSIC WG and the MSEC WG.

8. Author's Addresses

     Jari Arkko
     Ericsson
     02420 Jorvas             Phone:  +358 40 5079256
     Finland                  Email:  jari.arkko@ericsson.com

     Elisabetta Carrara
     Ericsson Research
     SE-16480 Stockholm       Phone:  +46 8 50877040
     Sweden                   EMail:  elisabetta.carrara@era.ericsson.se

     Fredrik Lindholm
     Ericsson Research
     SE-16480 Stockholm       Phone:  +46 8 58531705
     Sweden                   EMail:  fredrik.lindholm@era.ericsson.se

     Mats Naslund
     Ericsson Research
     SE-16480 Stockholm       Phone:  +46 8 58533739
     Sweden                   EMail:  mats.naslund@era.ericsson.se

     Karl Norrman
     Ericsson Research
     SE-16480 Stockholm       Phone:  +46 8 4044502
     Sweden                   EMail:  karl.norrman@era.ericsson.se

9. References

   [MIKEY] Arkko, J., Carrara, E., Lindholm, F., Naslund, M., and
   Norrman, K., "MIKEY: Multimedia Internet KEYing", Internet Draft,
   IETF, Work in progress (MSEC).

   [OAM] Rosenberg, J. and Schulzrinne, H., "An Offer/Answer Model with
   SDP", Internet Draft, IETF, Work in progress (MMUSIC).

   [RTSP] Schulzrinne, H., Rao, A., and Lanphier, R., "Real Time
   Streaming Protocol (RTSP)", RFC 2326, April 1998.

   [SDP] Handley, M., and Jacobson, V., "Session Description Protocol
   (SDP)", IETF, RFC2327

   [SIP] Handley, M., Schulzrinne, H., Schooler, E., and Rosenberg, J.,
   "SIP: Session Initiation Protocol", IETF, RFC2543.

   [SRTP] Blom, R., Carrara, E., McGrew, D., Naslund, M, Norrman, K.,
   and Oran, D., "The Secure Real Time Transport Protocol", Internet
   Draft, IETF, Work in Progress (AVT).

   This Internet-Draft expires in May July 2002.