draft-ietf-mmusic-kmgmt-ext-07.txt   draft-ietf-mmusic-kmgmt-ext-08.txt 
Internet Engineering Task Force J. Arkko Internet Engineering Task Force J. Arkko
MMUSIC Working Group E. Carrara MMUSIC Working Group E. Carrara
INTERNET-DRAFT F. Lindholm INTERNET-DRAFT F. Lindholm
Expires: August 2003 M. Naslund Expires: February 2004 M. Naslund
K. Norrman K. Norrman
Ericsson Ericsson
February, 2003 August 2003
Key Management Extensions for Session Description Key Management Extensions for Session Description
Protocol (SDP) and Real Time Streaming Protocol (RTSP) Protocol (SDP) and Real Time Streaming Protocol (RTSP)
<draft-ietf-mmusic-kmgmt-ext-07.txt> <draft-ietf-mmusic-kmgmt-ext-08.txt>
Status of this memo Status of this memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts. groups may also distribute working documents as Internet-Drafts.
skipping to change at page 1, line 35 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or cite them other than as "work in progress". material or cite them other than as "work in progress".
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/lid-abstracts.txt http://www.ietf.org/ietf/lid-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract Abstract
This document defines general extensions for SDP and RTSP to carry This document defines general extensions for SDP and RTSP to carry
the security information needed by a key management protocol, in the security information needed by a key management protocol, in
order to secure the media. These extensions are presented as a order to secure the media. These extensions are presented as a
framework, to be used by one or more key management protocols. As framework, to be used by one or more key management protocols. As
such, its use is meaningful only when it is completed by the key such, its use is meaningful only when it is completed by the key
management protocol in use. management protocol in use.
General guidelines are also given on how the framework should be used General guidelines are also given on how the framework should be used
together with SIP and RTSP. together with SIP and RTSP.
TABLE OF CONTENTS TABLE OF CONTENTS
1. Introduction.....................................................2 1. Introduction.....................................................2
1.1. Notational Conventions.........................................3 1.1. Notational Conventions.........................................3
2. Extensions to SDP and RTSP.......................................3 2. Extensions to SDP and RTSP.......................................4
2.1. SDP Extensions.................................................4 2.1. SDP Extensions.................................................4
2.2. RTSP Extensions................................................5 2.2. RTSP Extensions................................................4
3. Usage with SIP and RTSP..........................................5 3. Usage with SIP and RTSP..........................................5
3.1. General SDP processing.........................................5 3.1. General SDP processing.........................................5
3.2. SIP usage......................................................7 3.2. SIP usage......................................................7
3.3. RTSP usage.....................................................8 3.3. RTSP usage.....................................................8
3.4. Example scenarios..............................................9 3.4. Example scenarios..............................................9
4. Adding further Key management protocols.........................11 4. Adding further Key management protocols.........................11
5. Security Considerations.........................................11 5. Security Considerations.........................................12
6. IANA Considerations.............................................12 6. IANA Considerations.............................................13
6.1. SDP Attribute Registration....................................12 6.1. SDP Attribute Registration....................................13
6.2. Protocol Identifier Registration..............................13 6.2. Protocol Identifier Registration..............................13
7. Conclusions.....................................................13 8. Acknowledgments.................................................14
8. Acknowledgments.................................................13
9. Author's Addresses..............................................14 9. Author's Addresses..............................................14
10. References.....................................................14 10. References.....................................................15
10.1. Normative References.........................................14 10.1. Normative References.........................................15
10.2. Informative References.......................................15 10.2. Informative References.......................................15
1. Introduction 1. Introduction
[Editor remark] All instances of RFC xxxx should be replaced with [Editor remark] All instances of RFC xxxx should be replaced with
the RFC number of this document, when published. Furthermore, all the RFC number of this document, when published. Furthermore, all
instances of RFC yyyy should be replaced with the RFC number of instances of RFC yyyy should be replaced with the RFC number of
the MIKEY (Multimedia Internet KEYing) document [MIKEY], when the MIKEY (Multimedia Internet KEYing) document [MIKEY], when
published. published.
There has recently been work to define a security framework for the There has recently been work to define a security framework for the
protection of real-time applications running over RTP, [SRTP]. protection of real-time applications running over RTP, [SRTP].
However, a security protocol needs a key management infrastructure to However, a security protocol needs a key management infrastructure to
exchange keys and security parameters, managing and refreshing keys, exchange keys and security parameters, manage and refresh keys, etc.
etc.
A key management protocol is executed prior to the security protocol A key management protocol is executed prior to the security protocol
execution. The key management protocol's main goal is to, in a secure execution. The key management protocol's main goal is to, in a secure
and reliable way, establish a so-called security association for the and reliable way, establish a security association for the security
security protocol. This includes one or several cryptographic keys protocol. This includes one or more cryptographic keys and the set of
and a set of necessary parameters for the security protocol, e.g., necessary parameters for the security protocol, e.g., cipher and
cipher and authentication algorithm to be used. The key management authentication algorithm to be used. The key management protocol has
protocol has similarities with, e.g., SIP [SIP] and RTSP [RTSP] in similarities with, e.g., SIP [SIP] and RTSP [RTSP] in the sense that
the sense that it negotiates necessary information in order to be it negotiates necessary information in order to be able to setup the
able to setup the session. session.
The focus in the following sections is to describe SDP attribute The focus in the following sections is to describe a new SDP
extensions and RTSP header extensions to support key management, and attribute and RTSP header extension to support key management, and
a possible integration within SIP and RTSP. A framework is therefore the integration within SIP and RTSP. A framework is therefore
described in the following. Such a framework will need to be described in the following. This framework is completed by one or
completed by one or more key management protocols, to describe how more key management protocols, to describe how the framework is used,
the framework is used, e.g. which is the data to be carried in the e.g. which is the data to be carried in the extensions.
extensions.
Some of the motivations to create a framework with the possibility to Some of the motivations to create a framework with the possibility to
include the key management in the session establishment are: include the key management in the session establishment are:
* Just as the codec information is a description of how to encode and * Just as the codec information is a description of how to encode and
decode the audio (or video) stream, the key management data is a decode the audio (or video) stream, the key management data is a
description of how to encrypt and decrypt the data. description of how to encrypt and decrypt the data.
* The possibility to negotiate the security for the entire multimedia * The possibility to negotiate the security for the entire multimedia
session at the same time. session at the same time.
* The knowledge of the media at the session establishment makes it * The knowledge of the media at the session establishment makes it
easy to tie the key management to the multimedia sessions. easy to tie the key management to the multimedia sessions.
* This approach may be more efficient than setting up the security * This approach may be more efficient than setting up the security
later, as that approach might force extra roundtrips, possibly later, as that approach might force extra roundtrips, possibly
also a separate set-up for each stream, hence implying more delay also a separate set-up for each stream, hence implying more delay
to the actual setup of the media session. to the actual setup of the media session.
* The possibility to negotiate keying material end-to-end without
applying end-to-end protection of the SDP (instead, hop-by-hop
security mechanisms can be used which may be useful if
intermediate proxies needs access to the SDP).
Currently in SDP [SDPnew], one field exists to transport keys, i.e. Currently in SDP [SDPnew], one field exists to transport keys, i.e.
the "key=" field. However, this is not enough for a key management the "k=" field. However, this is not enough for a key management
protocol as there are many more parameters that need to be protocol as there are many more parameters that need to be
transported. The approach here is to use and extend the SDP transported. The approach here is to use and extend the SDP
description to transport the key management offer/answer and also to description to transport the key management offer/answer and also to
associate it with the media sessions. SIP uses the offer/answer model associate it with the media sessions. SIP uses the offer/answer model
[OAM] whereby extensions to SDP will be enough. However, RTSP [RTSP] [OAM] whereby extensions to SDP will be enough. However, RTSP
does not use the offer/answer model. This makes it impossible to send [RTSP]does not use the offer/answer model with SDP, so a new header
back an answer to the server. To solve this, a new header is is introduced to convey key management data.
introduced in which the key management data can be included.
1.1. Notational Conventions 1.1. Notational Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119. document are to be interpreted as described in [RFC2119].
2. Extensions to SDP and RTSP 2. Extensions to SDP and RTSP
This section describes common attributes that are to be included in This section describes common attributes that are to be included in
an SDP description or in an RTSP header when an integrated key an SDP description or in an RTSP header when an integrated key
management protocol is used. The attribute values MUST follow the management protocol is used. The attribute values MUST follow the
general SDP or RTSP guidelines. general SDP or RTSP guidelines (see [SDPnew] and [RTSP]).
For the SDP description, the key management attributes MAY be defined
at session level (i.e. before the media descriptor lines) and/or at
media level. If the key management attributes are defined at media
level, 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.
The following SDP attribute is defined:
key-mgmt:<identifier> <opaque-data>
<identifier> is the name of the key management protocol and the For both SDP and RTSP, the general method of adding the key
opaque-data is a field to transport the key management protocol data. management protocol is to introduce new attributes, one identifier to
The key management protocol data contains the necessary information identify the specific key management protocol, and one data field
to establish the security protocol, e.g., keys and cryptographic where the key management protocol data is placed. The key management
parameters. All parameters and keys are protected by the key protocol data contains the necessary information to establish the
management. Note that if the key management protocol fails, e.g., the security protocol, e.g., keys and cryptographic parameters. All
receiver does not accept any of the proposed security parameters, or parameters and keys are protected by the key management.
simply does not understand the key management protocol, the security
setup will fail. Consequently, it is impossible to establish a secure
session. So, if the key management fails, the offer must be rejected.
2.1. SDP Extensions 2.1. SDP Extensions
This section provides an Augmented Backus-Naur Form (ABNF) grammar This section provides an Augmented Backus-Naur Form (ABNF) grammar
(as used in [SDPnew]) for the key management extensions to SDP. (as used in [SDPnew]) for the key management extensions to SDP.
Note that the new definitions are compliant with the definition of an Note that the new definitions are compliant with the definition of an
attribute field, i.e. attribute field, i.e.
attribute = (att-field ":" att-value) | att-field attribute = (att-field ":" att-value) | att-field
skipping to change at page 4, line 48 skipping to change at page 4, line 40
One new attribute for SDP is defined: One new attribute for SDP is defined:
key-mgmt = "key-mgmt: " prtcl-id keymgmt-data key-mgmt = "key-mgmt: " prtcl-id keymgmt-data
prtcl-id = non-ws-string prtcl-id = non-ws-string
; e.g. "mikey" ; e.g. "mikey"
keymgmt-data = text keymgmt-data = text
where non-ws-string and text are as defined in SDP [SDPnew]. The where non-ws-string and text are as defined in SDP [SDPnew]. The
attribute may be used at session level, media level or at both attribute may be used at session level, media level, or at both
levels. An attribute defined at media level overrides an attribute levels. An attribute defined at media level overrides an attribute
defined at session level. Note that the prtcl-id name will be case defined at session level. Note that the prtcl-id name will be case
sensitive and it is therefore RECOMMENDED that attributes registered sensitive and it is therefore RECOMMENDED that attributes registered
be in lower case letters. are in lower case letters. Section 3 describes in detail how the
attributes are used and how the SDP is handled in different usage
scenarios.
2.2. RTSP Extensions 2.2. RTSP Extensions
To support the needed attribute described, the following RTSP header To support the needed attribute, the following RTSP header is
is defined: defined:
KeyMgmt = "keymgmt" ":" 1#key-mgmt-spec KeyMgmt = "keymgmt" ":" 1#key-mgmt-spec
key-mgmt-spec = "prot" "=" token ";" "data" "=" quoted-string key-mgmt-spec = "prot" "=" token ";" "data" "=" quoted-string
"token" and "quoted-string" are as defined in the RTSP specification
token and quoted-string are as defined in the RTSP specification
[RTSP]. [RTSP].
The KeyMgmt header should be possible to use in the messages The KeyMgmt header should be possible to use in the messages
described in the table below. described in the table below.
Method Direction Requirement Method Direction Requirement
DESCRIBE C->S required DESCRIBE C->S required
SETUP C->S required SETUP C->S required
ANNOUNCE C->S, S->C optional (required: if re-key should ANNOUNCE C->S, S->C optional (required: if re-key is supported)
be supported)
Note: Section 3 describes in detail how the RTSP extensions are used.
3. Usage with SIP and RTSP 3. Usage with SIP and RTSP
This section gives recommendations of how/when to include the defined This section gives recommendations of how/when to include the defined
key management attribute when SIP and/or RTSP are used together with key management attribute when SIP and/or RTSP are used together with
SDP. SDP.
When a key management protocol is integrated with SIP/SDP and RTSP, When a key management protocol is integrated with SIP/SDP and RTSP,
the following requirements are put on the key management: the following requirements are placed on the key management:
* It MUST be possible to execute the key management protocol in at * It MUST be possible to execute the key management protocol in at
most one roundtrip in case the answerer accepts the offer. most one roundtrip in case the answerer accepts the offer.
* It MUST be possible from the SIP/SDP and RTSP application, using * It MUST be possible from the SIP/SDP and RTSP application, using
the key management API, to receive key management data, and the key management API, to receive key management data, and
information of whether a message is accepted or not. information of whether a message is accepted or not.
Today, the MIKEY protocol [MIKEY] has adopted the key management Today, the MIKEY protocol [MIKEY] has adopted the key management
extensions to work together with SIP and RTSP. Other protocols MAY extensions to work together with SIP and RTSP. Other protocols MAY
use the described attribute and header, e.g. Kerberos [KERB]. use the described attribute and header, e.g. Kerberos [KERB].
3.1. General SDP processing 3.1. General SDP processing
When an SDP message is created, the following procedure should be When an SDP message is created, the following procedure should be
applied: applied:
* The identifier of the key management protocol used (e.g. MIKEY or * The identifier of the key management protocol used (e.g. MIKEY or
Kerberos) MUST be put in the prtcl-id field. Kerberos) MUST be placed in the prtcl-id field.
* The keymgmt-data field MUST be created as follows. The key * The keymgmt-data field MUST be created as follows. The key
management protocol MUST be used to create the key management management protocol MUST be used to create the key management
message. This message SHALL be base64 encoded by SDP and then message. This message SHALL be base64 encoded [RFC3548] by the SDP
encapsulated in the keymgmt-data attribute. The data may e.g. be a application and then encapsulated in the keymgmt-data attribute.
MIKEY message (see [MIKEY], Section 7) or Kerberos ticket. The data may e.g. be a MIKEY message (see [MIKEY], Section 7) or
Kerberos ticket.
A received SDP message that contains the key management attributes A received SDP message that contains the key management attributes
SHOULD process these attributes in the following manner: SHOULD be processed in the following manner:
* The key management protocol used MUST be identified by checking the * The key management protocol is identified according to the prtcl-id
prtcl-id field in the key management attribute. field.
* The key management data from the keymgmt-data field MUST be * The key management data from the keymgmt-data field MUST be
extracted, base64 decoded to reconstruct the original message, and extracted, base64 decoded to reconstruct the original message, and
then passed to the key management protocol for further processing. then passed to the key management protocol. Note that depending on
Note that depending on key management protocol, some extra key management protocol, some extra parameters might of course be
parameters might of course be requested by the API, such as the requested by the specific API, such as the source/destination
source/destination network address/port(s) for the specified media network address/port(s) for the specified media (however, this
(however, the key management interface specification should will be implementation specific depending on the actual API).
specify this).
* Depending on the outcome of the key management processing (i.e. * Depending on the outcome of the key management processing (i.e.
whether it was accepted or not), the processing can proceed whether it was successful or not), the processing can proceed
according to normal processing (e.g. according to the offer/answer according to normal rules (e.g. according to the offer/answer
model, see also Section 3.2). model, see also Section 3.2).
Note that the attribute MAY be repeated more than once (e.g., one at Note that the key management attribute MAY be repeated more than once
session level and one at media level). Consequently, the process is (e.g., one at session level and one at media level). Consequently,
repeated for each key management attribute detected. the process is repeated for each key management attribute detected.
However, in case of failure of the key management (on either session
or media level), the session setup SHALL be aborted (see also Section
3.2 and Section 3.3 for more details).
If more than one key management protocol is supported, multiple If more than one key management protocol is supported, multiple
instances of the key management attribute MAY be included in the instances of the key management attribute MAY be included in the
initial offer, each transporting a different key management data, initial offer, each transporting a different key management data,
thus indicating alternatives supported. thus indicating supported alternatives.
If the sender includes more than one key management protocol If the sender includes more than one key management protocol
attributes at session level (analogous for the media level), these attribute at session level (analogous for the media level), these
SHOULD be listed in order of preference (with the first being the SHOULD be listed in order of preference (the first being the
preferred). The receiver chooses the key management protocol it preferred). The receiver selects the key management protocol it
supports. When answering, only the accepted key management protocol wishes to use and includes only that attribute in the answer. If the
attribute MUST be included. If the receiver does not support any of receiver does not support any of the sender's suggested key
the sender's suggested key management protocols, the receiver answers management protocols, the receiver returns an error message (see
with an error message (see SIP and RTSP), whereby the sender MUST put section 3.2 and section 3.3), whereby the sender MUST abort the
down the current setup procedure. current setup procedure.
Note that the placement of multiple key management offers in a single Note that the placement of multiple key management offers in a single
message has the disadvantage that the message expands and the message has the disadvantage that the message expands and the
computational workload for the offerer will increase drastically. The computational workload for the offerer will increase drastically.
possibility to support multiple key management protocols may
The possibility to support multiple key management protocols may
introduce bidding down attacks. To avoid this, the list of introduce bidding down attacks. To avoid this, the list of
identifiers of the proposed key management protocols MUST be identifiers of the proposed key management protocols MUST be
authenticated, which MUST be done by each key management. authenticated. The authentication MUST be done separately by each key
management protocol (see e.g. Section 7.1 in [MIKEY]).
This puts the requirement that it MUST be specified (in the key Accordingly, it MUST be specified (in the key management protocol
management protocol itself or in a companion document) how the specification itself or in a companion document) how the list of key
protocol identifiers could be authenticated from the offerer to the management protocol identifiers can be authenticated from the offerer
responder by the use of the specific key management protocol. Note to the answerer by the specific key management protocol. Note that
that even if only one key management protocol is used, that still even if only one key management protocol is used, that still MUST
must authenticate its own protocol identifier. If the key management authenticate its own protocol identifier.
protocol fails to authenticate the protocol list, it MUST return an
error message to SDP.
The list of protocol identifiers MUST be given to the selected key The list of protocol identifiers MUST be given to the selected key
management protocol by SDP with ";" separated identifiers. All the management protocol by the SDP application with ";" separated
offered protocol identifiers MUST be included, in the same order as identifiers. All the offered protocol identifiers MUST be included,
they appear in the corresponding SDP description. in the same order as they appear in the corresponding SDP
description.
The protocol list can formally be described as The protocol list can formally be described as
prtcl-list = prtcl-id *(";" prtcl-id) prtcl-list = prtcl-id *(";" prtcl-id)
prtcl-id = non-ws-string prtcl-id = non-ws-string
Example For example, if the SDP is:
v=0 v=0
o=alice 2891092738 2891092738 IN IP4 lost.downunder.dom o=alice 2891092738 2891092738 IN IP4 lost.example.com
s=Secret discussion s=Secret discussion
t=0 0 t=0 0
c=IN IP4 lost.downunder.dom c=IN IP4 lost.example.com
a=key-mgmt:mikey <data1> a=key-mgmt:mikey <data1>
a=key-mgmt:keyp1 <data2> a=key-mgmt:keyp1 <data2>
a=key-mgmt:keyp2 <data3> a=key-mgmt:keyp2 <data3>
m=audio 39000 RTP/SAVP 98 m=audio 39000 RTP/SAVP 98
a=rtpmap:98 AMR/8000 a=rtpmap:98 AMR/8000
m=video 42000 RTP/SAVP 31 m=video 42000 RTP/SAVP 31
a=rtpmap:31 H261/90000 a=rtpmap:31 H261/90000
The protocol list, "mikey;keyp1;keyp2", would be generated from The protocol list, "mikey;keyp1;keyp2", would be generated from
the SDP description and used as input to the selected key the SDP description and used as input to each specified key
management protocol (together with the data for that protocol). management protocol (together with the data for that protocol).
If more than one protocol is supported by the offerer, it is If more than one protocol is supported by the offerer, it is
RECOMMENDED that he offers all to him acceptable protocols in the RECOMMENDED that all acceptable protocols are included in the first
first offer, rather than making single, subsequent alternative offers offer, rather than making single, subsequent alternative offers in
in response to error messages, see "Security Considerations". response to error messages, see "Security Considerations".
3.2. SIP usage 3.2. SIP usage
The offerer SHOULD include the key management data within an offer When used with SIP and the offer/answer model, the offerer SHOULD
that contains the media description it should apply to. The answerer include the key management data within an offer that contains the
MUST check with the key management protocol if the attribute values media description it should apply to. The answerer MUST check with
are valid, and then obtain from the key management the data to the key management protocol if the attribute values are valid, and
include in the answer. then obtain from the key management the data to include in the
answer.
If the offer is not accepted, the answerer SHOULD return a "606 Not If the offer is not accepted, the answerer SHOULD return a "606 Not
Acceptable" message, including one or more Warning headers (at least Acceptable" message, including one or more Warning headers (at least
a 306). The offer MUST then abort the security setup. a 306 "Attribute not understood"). The session is then aborted (and
it is up to local policy or end user to decide how to continue).
Re-keying can be handled as a new offer, i.e. a re-INVITE should be Re-keying can 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 sent with the new proposed parameters. The answerer treats this as a
new offer where the key management is the issue of change. In new offer where the key management is the issue of change. In
general, the re-INVITE (and the key exchange) must be finalized general, the re-INVITE (and the key exchange) must be finalized
before the security protocol can change the keys. The synchronization before the security protocol can change the keys. The same key
method used when changing keys are dependent on the security and key management protocol used in the original INVITE SHALL also be used in
management protocol used. The same protocol used in the original the re-INVITE carrying re-keying. If the re-INVITE carrying re-keying
INVITE SHALL also be used in the re-INVITE carrying re-keying. If the fails (e.g., the authentication verification fails), the answerer
re-INVITE carrying re-keying fails (e.g., the authentication SHOULD send a "606 Not Acceptable" message, including one or more
verification fails), the answerer SHOULD send a "606 Not Acceptable" Warning headers (at least a 306). The offer MUST then abort the
message, including one or more Warning headers (at least a 306). The security setup.
offer MUST then abort the security setup.
3.3. RTSP usage 3.3. RTSP usage
RTSP does not use the offer/answer model, as SIP does. This causes 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 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 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 one initiating the security parameter exchange). To solve this, a new
header has been introduced (Section 2.2). This also assumes that the header has been introduced (Section 2.2). This also assumes that the
key management also has some kind of binding to the media, so that key management also has some kind of binding to the media, so that
the response to the server will be processed as required. the response to the server will be processed as required.
The processing of a key management header in RTSP should be done The initial key management message from a server should be sent to
analogous of the SDP message processing. The initial key management the client using SDP. When responding to this, the client uses the
message from a server should be sent to the client using SDP. When new RTSP header to send back an answer (included in the SETUP
responding to this, the client uses the new RTSP header to send back message). If a server receives a SETUP message in which it expects a
an answer (included in the SETUP message). If a server receives a key management message, but none is included, a 403 Forbidden SHOULD
SETUP message in which it expects a key management message, but none be returned to the client, whereby the current setup MUST be aborted.
is included, a 403 Forbidden SHOULD be returned to the client,
whereby the current setup MUST be aborted. The processing of creating a key management header in RTSP SHOULD be
as follow:
* The identifier of the key management protocol used (e.g. MIKEY or
Kerberos) MUST be placed in the "prot" field of the header.
* The keymgmt-data field MUST be created as follows. The key
management protocol MUST be used to create the key management
message. This message SHALL be base64 encoded by the SDP
application and then encapsulated in the "data" field of the
header. The data may e.g. be a MIKEY message (see [MIKEY], Section
7) or Kerberos ticket.
A received key management header SHOULD be processed in the following
manner:
* The key management protocol is identified according to the "prot"
field.
* The key management data from the "data" field MUST be extracted,
base64 decoded to reconstruct the original message, and then
passed to the key management protocol. Note that depending on the
key management protocol, some extra parameters might of course be
requested by the specific API, such as the source/destination
network address/port(s) for the specified media (however, this
will be implementation specific depending on the actual API).
* Depending on the outcome of the key management processing (i.e.
whether it was successful or not), the processing can proceed
according to normal rules (see also below).
The server MAY provide re-keying/updating facilities by sending a new The server MAY provide re-keying/updating facilities by sending a new
key management message in an ANNOUNCE messages. The ANNOUNCE message key management message in an ANNOUNCE messages. The ANNOUNCE message
contains an SDP message including the key management parameters. The contains an SDP message including the key management parameters. The
response message is put in the new RTSP header in the response from response message is put in the new RTSP header in the response from
the client to the server. Note that the ANNOUNCE messages MUST be the client to the server. Note that the ANNOUNCE messages MUST be
supported if this feature is to be used. supported if this feature is to be used.
3.4. Example scenarios 3.4. Example scenarios
Example 1 (SIP) Example 1 (SIP)
A SIP call is taking place between Alice and Bob. Alice sends an A SIP call is taking place between Alice and Bob. Alice sends an
Invite message consisting of the following offer: Invite message consisting of the following offer:
v=0 v=0
o=alice 2891092738 2891092738 IN IP4 lost.somewhere.com o=alice 2891092738 2891092738 IN IP4 w-land.example.com
s=Cool stuff s=Cool stuff
e=alice@w-land.org e=alice@w-land.example.com
t=0 0 t=0 0
c=IN IP4 lost.somewhere.com c=IN IP4 w-land.example.com
a=key-mgmt:mikey uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD... a=key-mgmt:mikey uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
m=audio 49000 RTP/SAVP 98 m=audio 49000 RTP/SAVP 98
a=rtpmap:98 AMR/8000 a=rtpmap:98 AMR/8000
m=video 52230 RTP/SAVP 31 m=video 52230 RTP/SAVP 31
a=rtpmap:31 H261/90000 a=rtpmap:31 H261/90000
i.e. Alice proposes to set up one audio stream and one video stream 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 that run over SRTP. To set up the security parameters for SRTP, she
uses MIKEY. Note that MIKEY is negotiating the crypto suite for both uses MIKEY. Note that MIKEY is negotiating the crypto suite for both
streams (as it is placed at the session level). streams (as it is placed at the session level).
Bob accepts the offer and sends an answer back to Alice: Bob accepts the offer and sends an answer back to Alice:
v=0 v=0
o=bob 2891092897 2891092897 IN IP4 found.somewhere.com o=bob 2891092897 2891092897 IN IP4 foo.example.com
s=Cool stuff s=Cool stuff
e=bob@null.org e=bob@foo.example.com
t=0 0 t=0 0
c=IN IP4 found.somewhere.com c=IN IP4 foo.example.com
a=key-mgmt:mikey skaoqDeMkdwRW278HjKVB... a=key-mgmt:mikey skaoqDeMkdwRW278HjKVB...
m=audio 49030 RTP/SAVP 98 m=audio 49030 RTP/SAVP 98
a=rtpmap:98 AMR/8000 a=rtpmap:98 AMR/8000
m=video 52230 RTP/SAVP 31 m=video 52230 RTP/SAVP 31
a=rtpmap:31 H261/90000 a=rtpmap:31 H261/90000
Example 2 (SDP) Example 2 (SDP)
This example shows how Alice would have done in the previous example This example shows how Alice would have done if she wished to protect
if she wished to protect only the audio stream. only the audio stream.
v=0 v=0
o=alice 2891092738 2891092738 IN IP4 lost.somewhere.com o=alice 2891092738 2891092738 IN IP4 w-land.example.com
s=Cool stuff s=Cool stuff
e=alice@w-land.org e=alice@w-land.example.com
t=0 0 t=0 0
c=IN IP4 lost.somewhere.com c=IN IP4 w-land.example.com
m=audio 49000 RTP/SAVP 98 m=audio 49000 RTP/SAVP 98
a=rtpmap:98 AMR/8000 a=rtpmap:98 AMR/8000
a=key-mgmt:mikey uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD... a=key-mgmt:mikey uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
m=video 52230 RTP/AVP 31 m=video 52230 RTP/AVP 31
a=rtpmap:31 H261/90000 a=rtpmap:31 H261/90000
Note that even if the key management attribute is specified at Note that even if the key management attribute were specified at
session level, the video part will not be affected by this (as a session level, the video part would not be affected by this (as a
security profile is not used). security profile is not used).
Example 3 (RTSP) Example 3 (RTSP)
A client wants to set up a streaming session and requests a media A client wants to set up a streaming session and requests a media
description from the streaming server. description from the streaming server.
DESCRIBE rtsp://server.example.com/fizzle/foo RTSP/1.0 DESCRIBE rtsp://server.example.com/fizzle/foo RTSP/1.0
CSeq: 312 CSeq: 312
Accept: application/sdp Accept: application/sdp
From: user@client.com From: user@example.com
The server sends back an OK message including an SDP description. The server sends back an OK message including an SDP description.
RTSP/1.0 200 OK RTSP/1.0 200 OK
CSeq: 312 CSeq: 312
Date: 23 Jan 1997 15:35:06 GMT Date: 23 Jan 1997 15:35:06 GMT
Content-Type: application/sdp Content-Type: application/sdp
v=0 v=0
o=actionmovie 2891092738 2891092738 IN IP4 movie.somewhere.com o=actionmovie 2891092738 2891092738 IN IP4 movie.example.com
s=Action Movie s=Action Movie
e=action@movie.somewhere.com e=action@movie.example.com
t=0 0 t=0 0
c=IN IP4 movie.somewhere.com c=IN IP4 movie.example.com
a=key-mgmt:mikey uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD... a=key-mgmt:mikey uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
m=audio 0 RTP/SAVP 98 m=audio 0 RTP/SAVP 98
a=rtpmap:98 AMR/8000 a=rtpmap:98 AMR/8000
control:rtsp://movie.somewhere.com/action/audio control:rtsp://movie.example.com/action/audio
m=video 0 RTP/SAVP 31 m=video 0 RTP/SAVP 31
a=rtpmap:31 H261/90000 a=rtpmap:31 H261/90000
control:rtsp://movie.somewhere.com/action/video control:rtsp://movie.example.com/action/video
The client is now ready to setup the sessions. It includes the key The client is now ready to setup the sessions. It includes the key
management data in the first message going back to the server (i.e. management data in the first message going back to the server (i.e.
the SETUP message). the SETUP message).
SETUP rtsp://movie.somewhere.com/action/audio RTSP/1.0 SETUP rtsp://movie.example.com/action/audio RTSP/1.0
CSeq: 313 CSeq: 313
Transport: RTP/SAVP/UDP;unicast;client_port=3056-3057 Transport: RTP/SAVP/UDP;unicast;client_port=3056-3057
keymgmt: prot=mikey; data="skaoqDeMkdwRW278HjKVB..." keymgmt: prot=mikey; data="skaoqDeMkdwRW278HjKVB..."
The server processes the request including checking the validity of The server processes the request including checking the validity of
the key management header. the key management header.
RTSP/1.0 200 OK RTSP/1.0 200 OK
CSeq: 313 CSeq: 313
Session: 12345678 Session: 12345678
Transport: RTP/SAVP/UDP;unicast;client_port=3056-3057; Transport: RTP/SAVP/UDP;unicast;client_port=3056-3057;
server_port=5000-5001 server_port=5000-5001
The RTSP then proceeds as usual (with e.g. a SETUP message for the The RTSP then proceeds as usual (with e.g. a SETUP message for the
skipping to change at page 11, line 43 skipping to change at page 12, line 17
included in the offer in the correct order as they appear. included in the offer in the correct order as they appear.
The key management data MUST be base64 encoded in the SDP and RTSP The key management data MUST be base64 encoded in the SDP and RTSP
fields. Therefore, considerations of possible conversion from the fields. Therefore, considerations of possible conversion from the
normal key management representation to base64 SHOULD be taken into normal key management representation to base64 SHOULD be taken into
account. account.
5. Security Considerations 5. Security Considerations
The nature of this document is to allow SDP and RTSP to support The nature of this document is to allow SDP and RTSP to support
security of the media sessions. It is therefore not a primary negotiation of the security of the media sessions. It is therefore
intention of this document to describe possible security solutions or not a primary intention of this document to describe possible
to define possible security problems. The defined SDP and RTSP security solutions or to define possible security problems. The
extensions are not believed to introduce any new security risks to defined SDP and RTSP extensions are not believed to introduce any new
SDP and RTSP, if used as specified. security risks to SDP and RTSP, if used as specified.
Note that the purpose of the key management fields is to provide Note that the purpose of the key management fields is to provide
information to secure the media streams. Under the assumption that information to secure the media streams. Under the assumption that
the key management schemes are secure, the SDP can be passed along the key management schemes are secure, the SDP can be passed along
unprotected without affecting the key management, and the media unprotected without affecting the key management, and the media
streams will still be secure even if some attackers gained knowledge streams will still be secure even if some attackers gained knowledge
of the SDP contents. of the SDP contents.
However, if the SDP messages are not sent authenticated between the However, if the SDP messages are not sent authenticated between the
parties, it is possible for an active attacker to change attributes parties, it is possible for an active attacker to change attributes
without being detected. As the key management protocol may without being detected. As the key management protocol may
(indirectly) rely on some of the session information from SDP (e.g., (indirectly) rely on some of the session information from SDP (e.g.,
address information), an attack on SDP may have indirect consequences address information), an attack on SDP may have indirect consequences
on the key management. Even if the key management protocol does not on the key management. Even if the key management protocol does not
rely on parameters of SDP and will not be affected by manipulation of rely on parameters of SDP and will not be affected by manipulation of
these, different DoS attacks aimed at SDP (e.g. the SIMCAP these, different DoS attacks aimed at SDP (e.g. the SIMCAP
extensions) may lead to undesired interruption in the setup. In extensions) may lead to undesired interruption in the setup.
general, it is therefore a good thing, not only to try to secure the
session, but also to secure the session setup. However, a solution In general, it is therefore a good thing, not only to try to secure
for this might not necessarily need to be end-to-end, but could also the session, but also to secure the session setup. However, the
be hop-by-hop depending on the trust model for the specific use case. security of the session setup might not possible on an end-to-end
basis, but may require to be protected on a hop-by-hop basis (this is
generally the case for SIP/SDP when intermediate proxies needs to
obtain information about the sessions etc). In fact, the focus of
this framework is mainly when end-to-end protection of the session
setup is not used, but where the media streams needs to be end-to-end
protected.
Note that it is impossible to assure the authenticity of a declined Note that it is impossible to assure the authenticity of a declined
offer, since even if it comes from the true respondent, the fact that offer, since even if it comes from the true respondent, the fact that
the answerer declines the offer usually means that he does not the answerer declines the offer usually means that he does not
support the protocol(s) offered, and consequently cannot be expected support the protocol(s) offered, and consequently cannot be expected
to authenticate the response either. This means that if the initiator to authenticate the response either. This means that if the initiator
is unsure of which protocol(s) the responder supports, we RECOMMEND is unsure of which protocol(s) the responder supports, we RECOMMEND
that the initiator offers all acceptable protocols in a single offer. that the initiator offers all acceptable protocols in a single offer.
If not, this opens up the possibility for a "man-in-the-middle" If not, this opens up the possibility for a "man-in-the-middle"
(MITM) to affect the outcome of the eventually agreed upon protocol, (MITM) to affect the outcome of the eventually agreed upon protocol,
by faking unauthenticated error messages until the initiator by faking unauthenticated error messages until the initiator
eventually offers a protocol "to the liking" of the MITM. This is not eventually offers a protocol "to the liking" of the MITM. This is not
really a security problem, but rather a mild form of denial of really a security problem, but rather a mild form of denial of
service that can be avoided by following the above recommendation. service that can be avoided by following the above recommendation.
6. IANA Considerations 6. IANA Considerations
6.1. SDP Attribute Registration 6.1. SDP Attribute Registration
A new SDP attribute needs to be defined for the purpose of key A new SDP attribute needs to be registered for the purpose of key
management protocol integration with SDP. management protocol integration with SDP.
Contact: Fredrik Lindholm Contact: Fredrik Lindholm
mailto: fredrik.lindholm@era.ericsson.se mailto: fredrik.lindholm@ericsson.com
tel: +46 8 58531705 tel: +46 8 58531705
SDP Attribute ("att-field"): SDP Attribute ("att-field"):
Name: key-mgmt Name: key-mgmt
Long form: key management protocol Long form: key management protocol
Type of name: att-field Type of name: att-field
Type of attribute: Media and session level Type of attribute: Media and session level
Purpose: See RFC xxxx, Section 2. Purpose: See RFC xxxx, Section 2.
Reference: RFC xxxx, Section 2.1 Reference: RFC xxxx, Section 2.1
Values: See registrations below Values: See registrations below
6.2. Protocol Identifier Registration 6.2. Protocol Identifier Registration
This document defines one new name space associated with the above This document defines one new name space associated with the above
registered key-mgmt attribute i.e., the protocol identifier (see also registered key-mgmt attribute i.e., the protocol identifier (see also
Section 2.1 and Section 2.2). Section 2.1 and Section 2.2).
A new registry needs to be set up for "prtcl-id" parameter of the A new registry needs to be set up for "prtcl-id" parameter of the
skipping to change at page 13, line 19 skipping to change at page 13, line 46
This document defines one new name space associated with the above This document defines one new name space associated with the above
registered key-mgmt attribute i.e., the protocol identifier (see also registered key-mgmt attribute i.e., the protocol identifier (see also
Section 2.1 and Section 2.2). Section 2.1 and Section 2.2).
A new registry needs to be set up for "prtcl-id" parameter of the A new registry needs to be set up for "prtcl-id" parameter of the
"key-mgmt" attribute, with the following registration created "key-mgmt" attribute, with the following registration created
initially: "mikey". initially: "mikey".
Contact: Fredrik Lindholm Contact: Fredrik Lindholm
mailto: fredrik.lindholm@era.ericsson.se mailto: fredrik.lindholm@ericsson.com
tel: +46 8 58531705 tel: +46 8 58531705
Value name: mikey Value name: mikey
Long name: Multimedia Internet KEYing Long name: Multimedia Internet KEYing
Purpose: Usage of MIKEY with the key-mgmt attribute Purpose: Usage of MIKEY with the key-mgmt attribute
Reference: Section 7 in RFC yyyy Reference: Section 7 in RFC yyyy
Further entries may be registered according to the "Specification Further entries may be registered according to the "Specification
Required" policy as defined in RFC 2434 [GWISC]. Each new Required" policy as defined in [RFC2434]. Each new registration needs
registration needs to indicate the parameter name and the syntax of to indicate the parameter name and the syntax of possible additional
possible additional arguments. Note that the parameter name is case arguments. Note that the parameter name is case sensitive and it is
sensitive and it is recommended that the name should be in lower case recommended that the name should be in lower case letters. For each
letters. For each new registration, it is mandatory that a permanent, new registration, it is mandatory that a permanent, stable, and
stable, and publicly accessible document exists that specifies the publicly accessible document exists that specifies the semantics of
semantics of the registered parameter, the syntax and semantics of the registered parameter, the syntax and semantics of its parameters
its parameters as well as all the requested details of interaction as well as all the requested details of interaction between the key
between the key management protocol and SDP, as specified in this management protocol and SDP, as specified in this document.
document.
7. 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 draft proposes a framework that integrates a key
management protocol (e.g., MIKEY) into SIP and RTSP, and which can be
accompanied by different key management protocols. A set of new
attributes and headers has been defined in SDP and RTSP to support
this.
8. Acknowledgments 8. Acknowledgments
Thanks to: Rolf Blom, Magnus Westerlund, and the rest involved in the Thanks to: Rolf Blom, Magnus Westerlund, and the rest involved in the
MMUSIC WG and the MSEC WG. MMUSIC WG and the MSEC WG.
A special thanks to Joerg Ott and Colin Perkins. A special thanks to Joerg Ott and Colin Perkins.
9. Author's Addresses 9. Author's Addresses
Jari Arkko Jari Arkko
Ericsson Ericsson
02420 Jorvas Phone: +358 40 5079256 02420 Jorvas Phone: +358 40 5079256
Finland Email: jari.arkko@ericsson.com Finland Email: jari.arkko@ericsson.com
Elisabetta Carrara Elisabetta Carrara
Ericsson Research Ericsson Research
SE-16480 Stockholm Phone: +46 8 50877040 SE-16480 Stockholm Phone: +46 8 50877040
Sweden EMail: elisabetta.carrara@era.ericsson.se Sweden EMail: elisabetta.carrara@ericsson.com
Fredrik Lindholm Fredrik Lindholm
Ericsson Research Ericsson Research
SE-16480 Stockholm Phone: +46 8 58531705 SE-16480 Stockholm Phone: +46 8 58531705
Sweden EMail: fredrik.lindholm@era.ericsson.se Sweden EMail: fredrik.lindholm@ericsson.com
Mats Naslund Mats Naslund
Ericsson Research Ericsson Research
SE-16480 Stockholm Phone: +46 8 58533739 SE-16480 Stockholm Phone: +46 8 58533739
Sweden EMail: mats.naslund@era.ericsson.se Sweden EMail: mats.naslund@ericsson.com
Karl Norrman Karl Norrman
Ericsson Research Ericsson Research
SE-16480 Stockholm Phone: +46 8 4044502 SE-16480 Stockholm Phone: +46 8 4044502
Sweden EMail: karl.norrman@era.ericsson.se Sweden EMail: karl.norrman@ericsson.com
10. References 10. References
10.1. Normative References 10.1. Normative References
[OAM] Rosenberg, J. and Schulzrinne, H., "An Offer/Answer Model with [OAM] Rosenberg, J. and Schulzrinne, H., "An Offer/Answer Model with
the Session Description Protocol (SDP)", IETF, 3264. the Session Description Protocol (SDP)", IETF, RFC 3264.
[RTSP] Schulzrinne, H., Rao, A., and Lanphier, R., "Real Time [RTSP] Schulzrinne, H., Rao, A., and Lanphier, R., "Real Time
Streaming Protocol (RTSP)", IETF, RFC 2326. Streaming Protocol (RTSP)", IETF, RFC 2326.
[RFC2119] Bradner, S. "Key words for use in RFCs to Indicate
Requirement Levels", IETF, RFC 2119.
[SDPnew] Handley, M., Jacobson, V., and Perkins, C., "SDP: Session [SDPnew] Handley, M., Jacobson, V., and Perkins, C., "SDP: Session
Description Protocol", Internet Draft, IETF, Work in progress Description Protocol", Internet Draft, IETF, Work in progress
(MMUSIC). (MMUSIC), draft-ietf-mmusic-sdp-new-13.txt.
[SIP] Handley, M., Schulzrinne, H., Schooler, E., and Rosenberg, J., [SIP] Handley, M., Schulzrinne, H., Schooler, E., and Rosenberg, J.,
"SIP: Session Initiation Protocol", IETF, RFC 2543. "SIP: Session Initiation Protocol", IETF, RFC 3261.
[GWISC] Narten, T. and Alvestrand, H., "Guidelines for Writing an [RFC2434] Narten, T. and Alvestrand, H., "Guidelines for Writing an
IANA Considerations Section in RFCs", IETF, RFC 2434. IANA Considerations Section in RFCs", IETF, RFC 2434.
[RFC3548] Josefsson, S., "The Base16, Base32, and Base64 Data
Encodings", IETF, RFC 3548.
10.2. Informative References 10.2. Informative References
[KERB] Kohl, J., Neuman, C., "The Kerberos Network Authentication [KERB] Kohl, J., Neuman, C., "The Kerberos Network Authentication
Service (V5)", IETF, RFC 1510. Service (V5)", IETF, RFC 1510.
[MIKEY] Arkko, J., Carrara, E., Lindholm, F., Naslund, M., and [MIKEY] Arkko, J., Carrara, E., Lindholm, F., Naslund, M., and
Norrman, K., "MIKEY: Multimedia Internet KEYing", IETF, RFC yyyy, Norrman, K., "MIKEY: Multimedia Internet KEYing", IETF, RFC yyyy,
[Internet Draft, Work in progress (MSEC)]. [Internet Draft, Work in progress (MSEC)].
[SRTP] Baugher, M., Blom, R., Carrara, E., McGrew, D., Naslund, M, [SRTP] Baugher, M., Blom, R., Carrara, E., McGrew, D., Naslund, M,
Norrman, K., and Oran, D., "The Secure Real Time Transport Protocol", Norrman, K., and Oran, D., "The Secure Real Time Transport Protocol",
Internet Draft, IETF, Work in Progress (AVT). Internet Draft, IETF, Work in Progress (AVT).
This Internet-Draft expires in August 2003. Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS 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.
This Internet-Draft expires in February 2004.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/