draft-ietf-mmusic-kmgmt-ext-03.txt   draft-ietf-mmusic-kmgmt-ext-04.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 2002 M. Naslund Expires: October 2002 M. Naslund
K. Norrman K. Norrman
Ericsson Ericsson
February, 2002 April, 2002
Key Management Extensions for SDP and RTSP Key Management Extensions for SDP and RTSP
<draft-ietf-mmusic-kmgmt-ext-03.txt> <draft-ietf-mmusic-kmgmt-ext-04.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 2, line 7 skipping to change at page 2, line 7
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.......................................3
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...................................... 6 3.1. General SDP processing.........................................5
3.2. SIP usage................................................... 6 3.2. SIP usage......................................................6
3.3. RTSP usage.................................................. 7 3.3. RTSP usage.....................................................7
3.4. Example scenarios........................................... 7 3.4. Example scenarios..............................................7
4. Adding a Key management protocol..............................10 4. Adding a Key management protocol.................................9
5. Security Considerations.......................................10 5. Security Considerations.........................................10
6. IANA Considerations...........................................11 6. IANA Considerations.............................................10
7. Conclusions...................................................11 7. Conclusions.....................................................10
8. Acknowledgments...............................................11 8. Acknowledgments.................................................11
9. Author's Addresses............................................11 9. Author's Addresses..............................................11
10. References...................................................12 10. References.....................................................11
10.1. Normative References.........................................11
10.2. Informative References.......................................12
1. Introduction 1. Introduction
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, managing and refreshing 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 so called security association for the
security protocol. This includes one or several cryptographic keys security protocol. This includes one or several cryptographic keys
and a set of necessary parameters for the security protocol, e.g., and a set of necessary parameters for the security protocol, e.g.,
cipher or authentication algorithm to be used. The key management cipher and authentication algorithm to be used. The key management
protocol has similarities with, e.g., SIP and RTSP in the sense that protocol has similarities with, e.g., SIP [SIP] and RTSP [RTSP] in
it negotiates necessary information in order to be able to setup the the sense that it negotiates necessary information in order to be
session. able to setup the session.
The focus in the following sections is to describe SDP attribute The focus in the following sections is to describe SDP attribute
extensions and RTSP header extensions to support key management, and extensions and RTSP header extensions to support key management, and
a possible integration within SIP and RTSP. A framework is therefore a possible integration within SIP and RTSP. A framework is therefore
described in the following, that will need to be accompanied by one described in the following. Such a framework will need to be
or more key management protocols. completed by one or more key management protocols, to describe how
the framework is used, e.g. which is the data to be carried in the
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.
skipping to change at page 3, line 34 skipping to change at page 3, line 38
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 RFC-2119.
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. All attribute values MUST follow the management protocol is used. The attribute values MUST follow the
general SDP or RTSP guideline. general SDP or RTSP guideline.
For the SDP description, the key management attributes may be defined For the SDP description, the key management attributes may be defined
at session level (i.e. before the media descriptor lines) and/or at at session level (i.e. before the media descriptor lines) and/or at
media level. If the key management attributes are defined at media media level. If the key management attributes are defined at media
level, they will only apply to that specific media. If the key level, they will only apply to that specific media. If the key
management attributes are defined at both session and media level, management attributes are defined at both session and media level,
the media level definition overrides the session level definition for the media level definition overrides the session level definition for
that specific media. that specific media.
The extensions were defined in a way to: The following SDP attribute is defined:
* 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 key management.
* make it easy to use another key management protocol, or a new
version, without having to redefine the 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"). The key management protocol data
contains the necessary information to establish the security
protocol, e.g., keys and cryptographic parameters. All parameters
and keys are protected by the key management. Note that if the key
management protocol fails, e.g., the receiver does not accept any
of the proposed security parameters, or simply does not understand
the key management protocol, the security setup will fail.
Consequently, it is impossible to establish a secure session. This
is very similar to the normal SIP/SDP behavior; if the sender only
supports two codecs, and the receiver do not support any of them,
it will be problematic to set up a session.
* in the case of SDP, an extra (optional) authentication attribute to key-mgmt:<name> <opaque-data>
be able to tie the key management data to the surrounding media <name> is the name of the key management protocol and the opaque-data
definitions ("key-extra-auth"). is a field to transport the key management protocol data. The key
management protocol data contains the necessary information to
establish the security protocol, e.g., keys and cryptographic
parameters. All parameters and keys are protected by the key
management. Note that if the key management protocol fails, e.g., the
receiver does not accept any of the proposed security parameters, or
simply does not understand the key management protocol, the security
setup will fail. Consequently, it is impossible to establish a secure
session. This is very similar to the normal SIP/SDP behavior: if the
sender supports codecs which are not supported by the receiver, it
will be problematic to set up a session.
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
Three new attributes are defined, keymgmt-prtcl, keymgmt-data, and One new attribute for SDP is defined:
key-extra-auth.
keymgmt-prtcl = "keymgmt-prot:" prtcl-name key-mgmt = "key-mgmt:" prtcl-name keymgmt-data
prtcl-name = non-ws-string prtcl-name = non-ws-string
; e.g. "MIKEY" ; e.g. "MIKEY"
keymgmt-data = "keymgmt-data:" byte-string keymgmt-data = byte-string
key-extra-auth = "keymgmt-auth:" byte-string
where non-ws-string and byte-string are as defined in SDP [SDPnew]. where non-ws-string and byte-string are as defined in SDP [SDPnew].
2.2. RTSP Extensions 2.2. RTSP Extensions
To support the three different attributes described, the following To support the needed attribute described, the following RTSP header
RTSP header is defined: is defined:
KeyMgmt = "KeyMgmt" ":" [stream-url] protocol data
stream-url = "url" "=" url ";"
protocol = "Prot" "=" token ";"
data = "Data" "=" quoted-string KeyMgmt _ "keymgmt" ":" "prot" "=" token ";" "data" "=" quoted-string
url, token and quoted-string are as defined in the RTSP specification token and quoted-string are as defined in the RTSP specification
[RTSP]. The url indicates the stream URL, which the parameters [RTSP].
correspond to.
The KeyMgmt header should be possible to use in both request and The KeyMgmt header should be possible to use in both request and
response messages of the following methods: response messages of the following methods:
* DESCRIBE * DESCRIBE
* ANNOUNCE * ANNOUNCE
* SETUP * SETUP
* PLAY
* RECORD
* SET_PARAMETER
* GET_PARAMETER
* OPTIONS
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 attributes when SIP and/or RTSP are used together with key management attribute when SIP and/or RTSP are used together with
SDP. SDP.
Some general requirements MUST be set on the key management protocol Some general requirements are set on a key management protocol (and
if it has to be suitable to work together with SIP and RTSP: its API) when used within SIP and RTSP:
* 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.
* The protocol MUST return, to SDP/RTSP, a valid answer whether the * It MUST be possible, using the key management API, to receive a
provided offer was accepted or not. valid offer/answer and 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 Today, the MIKEY protocol [MIKEY] has adopted the key management
to work together with SIP and RTSP. Other protocols may use the extensions to work together with SIP and RTSP. Other protocols may
described attributes 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 "keymgmt-prot" attribute is filled in with the identifier of * The identifier of the key management protocol used (e.g. MIKEY or
the key management protocol used (e.g. MIKEY or Kerberos). Kerberos) is put in the prtcl-name field.
* The "keymgmt-data" attribute is filled in by using the key
management protocol interface to obtain key management data. The
data may e.g. be a MIKEY message or Kerberos ticket.
* If used, the "keymgmt-auth" attribute is filled in by using the key * The keymgmt-data field is created by the data received from the key
management protocol interface to obtain key management data. Note management protocol API. The data may e.g. be a MIKEY message or
that what data from SDP are supposed to be provided to the Kerberos ticket.
interface MUST be specified by the key management protocol itself.
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 process these attributes in the following manner:
* Detect the key management protocol used by parsing the "keymgmt- * Detect the key management protocol used by checking the prtcl-name
prot" attribute. field in the key management attribute.
* Extract the key management data from the "keymgmt-data" attribute * Extract the key management data from the keymgmt-data field and
and call the key management interface with the extracted data. Note call the key management protocol with the extracted data. Note that
that depending on key management protocol, some extra parameters depending on key management protocol, some extra parameters might
might of course be requested, such as the source/destination of course be requested, such as the source/destination network
network address/port(s) for the specified media. address/port(s) for the specified media.
* 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), SDP processing can proceed whether it was accepted or not), the processing can proceed
according to normal processing (e.g. according to the offer/answer according to normal processing (e.g. according to the offer/answer
model, see also Section 3.2.). model, see also Section 3.2).
* If the optional "keymgmt-auth" attribute is included, this is If more than one key management protocol are supported, multiple
processed as the "keymgmt-data". instance of the key management attribute MAY be included in the
initial offer, each transporting a different key management data.
However, the offerer is RECOMMENDED to include only one of the
protocols for a specific media. If the answerer cannot support the
proposed protocol, it rejects the offer. Placing multiple key
management offers in a single message would have the disadvantage
that the message expands and the computational workload for the
offerer will increase drastically. It might be acceptable to use a
trial and error approach if the number of key management protocols
supported are few. The possibility to support multiple key management
protocols may introduce bidding down attacks. It is therefore
important that the local policy considers this (e.g., only allows
protocols that from a security point of view are equivalent, to be
negotiated).
What can be done to increase the likelihood for a successful setup is
to use a capability discovery mechanism (e.g., used in SIP). In this
case, the key management protocols supported are expressed at session
level without any data (i.e., a list of only the key-mgmt:<name> part
is used).
v=0
o=alice 2891092738 2891092738 IN IP4 lost.somewhere.com
c=IN IP4 lost.somewhere.com
a=key-mgmt:mikey
a=key-mgmt:coolxchg
m=audio 0 RTP/SAVP 98
a=rtpmap:98 AMR/8000
m=video 0 RTP/SAVP 31 34
a=rtpmap:31 H261/90000
a=rtpmap:34 H263/90000
3.2. SIP usage 3.2. SIP usage
The offerer should include the key management data within an offer The offerer SHOULD include the key management data within an offer
that contains the media description it should apply to. The answerer that contains the media description it should apply to. The answerer
MUST check with the key management protocol if the attribute values MUST check with the key management protocol if the attribute values
are valid, and then obtain from the key management the data to are valid, and then obtain from the key management the data to
include in the answer. If the offer is not accepted, the answerer 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 returns a notification message and the offerer may go out with a new
(different) offer, depending on the local security policy. (different) offer, depending on the local security policy.
Re-keying should be handled as a new offer, i.e. a re-INVITE should Re-keying can be handled as a new offer, i.e. a re-INVITE should be
be sent with the new proposed parameters. The answerer treats this as sent with the new proposed parameters. The answerer treats this as a
a new offer where the key management is the issue of change. new offer where the key management is the issue of change.
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). header has been introduced (Section 2.2). This also assumes that the
key management also have some kind of binding to the media, so that
the response to the server will be processed as required.
The processing of a key management header in RTSP should be done The processing of a key management header in RTSP should be done
analogous of the SDP message processing. The only differences will be analogous of the SDP message processing. The initial key management
that the url has been introduced and that there is no corresponding message from a server should be sent to the client using SDP. When
parameter for the extra authentication. The url should be processed responding to this, the client uses the new RTSP header to send back
as a standard RTSP stream url, i.e. to identify the session. It is an answer (included in the SETUP message). If the server retrieves a
however not mandatory to use. SETUP message in which it expects a key management message, but none
is included, a 403 Forbidden is returned to the client.
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 The server may provide re-keying/updating facilities by sending a new
management message in a SET_PARAMETER or ANNOUNCE messages. In the key management message in an ANNOUNCE messages. The ANNOUNCE message
latter, the RTSP header is not used if the ANNOUNCE message includes contains an SDP message including the key management parameters. The
a SDP description where the data can be provided in. The response response message is put in the new RTSP header in the response from
message is then put in the new RTSP header in the response message the client to the server. Note that the ANNOUNCE messages MUST be
from the client to the server. Note that the SET PARAMETER and the supported if this feature are to be used.
ANNOUNCE messages are not mandatory to support for the servers.
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 lost.somewhere.com
s=Cool stuff s=Cool stuff
e=alice@w-land.org e=alice@w-land.org
t=0 0 t=0 0
c=IN IP4 lost.somewhere.com c=IN IP4 lost.somewhere.com
a=keymgmt-prot:MIKEY a=key-mgmt:mikey uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
a=keymgmt-data: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 found.somewhere.com
s=Cool stuff s=Cool stuff
e=bob@null.org e=bob@null.org
t=0 0 t=0 0
c=IN IP4 found.somewhere.com c=IN IP4 found.somewhere.com
a=keymgmt-prot:MIKEY a=key-mgmt:mikey skaoqDeMkdwRW278HjKVB...
a=keymgmt-data: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 in the previous example
if she wished to protect only the audio stream. if she wished to protect only the audio stream.
v=0 v=0
o=alice 2891092738 2891092738 IN IP4 lost.somewhere.com o=alice 2891092738 2891092738 IN IP4 lost.somewhere.com
s=Cool stuff s=Cool stuff
e=alice@w-land.org e=alice@w-land.org
t=0 0 t=0 0
c=IN IP4 lost.somewhere.com c=IN IP4 lost.somewhere.com
m=audio 49000 RTP/SAVP 98 m=audio 49000 RTP/SAVP 98
a=rtpmap:98 AMR/8000 a=rtpmap:98 AMR/8000
a=keymgmt-prot:MIKEY a=key-mgmt:mikey uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
a=keymgmt-data: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
session level, the video part will not be affected by this (as a
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@client.com
The server sends back an OK message including a SDP description. As The server sends back an OK message including a SDP description.
the server
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.somewhere.com
s=Action Movie s=Action Movie
e=action@movie.somewhere.com e=action@movie.somewhere.com
t=0 0 t=0 0
c=IN IP4 movie.somewhere.com c=IN IP4 movie.somewhere.com
a=keymgmt-prot:MIKEY a=key-mgmt:mikey uiSDF9sdhs727ghsd/dhsoKkdOokdo7eWsnDSJD...
a=keymgmt-data: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.somewhere.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.somewhere.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.somewhere.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 is then proceeded as usual (with e.g. a SETUP message for The RTSP then proceeds as usual (with e.g. a SETUP message for the
the video followed by a PLAY message). video followed by a PLAY message).
4. Adding a Key management protocol 4. Adding a Key management protocol
This framework can not be used with all key management protocols. The This framework can not be used with all key management protocols. The
key management protocol MUST comply to the requirements described in key management protocol needs to comply with the requirements
Section 3. To be able to use a key management protocol with this described in Section 3. To be able to use a key management protocol
framework, the following MUST be specified: with this framework, the following needs to be specified:
* the key management protocol name that should be used in the * the key management protocol name that should be used in the
"keymgmt-prot" attribute (e.g. "MIKEY" for MIKEY). protocol name fields in both SDP and RTSP (e.g. "mikey" for MIKEY).
* the information the key management needs from SDP and RTSP (Section * the information the key management needs from SDP and RTSP (Section
3. gives a guideline of what SDP and RTSP needs from the key 3 gives a guideline of what SDP and RTSP needs from the key
management). The exact interface is implementation specific, but it management). The exact API is implementation specific, but it
SHOULD at least support to exchange the specified information. SHOULD at least support to exchange the specified information.
* if the "keymgmt-auth" attribute is needed by the key management, it The encoding of the data MUST be specified for each key management
should also specify the information needed for this. This also protocol and comply with the SDP and RTSP definitions. For most
includes a precise list of the SDP lines it covers. protocols, base64 encoding will be most appropriate.
The encoding of the data for both "keymgmt-data" and "keymgmt-auth"
MUST be specified for each key management protocol and comply with
the SDP and RTSP definitions. For most protocols, base64 encoding
will be most appropriate.
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 the intention of security of the media sessions. It is therefore not the intention of
this document to describe possible security solution or to define this document to describe possible security solution or to define
possible security problems. The defined SDP and RTSP extensions are possible security problems. The defined SDP and RTSP extensions are
not believed to introduce any new security risks to SDP and RTSP. not believed to introduce any new security risks to SDP and RTSP.
Note that the purpose of the key management fields is to secure the Note that the purpose of the key management fields is to provide
media streams themselves. Under the assumption that the key information to secure the media streams. Under the assumption that
management schemes are secure, the SDP payloads can be passed along the key management schemes are secure, the SDP can be passed along
unprotected, and the media streams will still be secure even if some unprotected without affecting the key management, and the media
attackers gained knowledge of the SDP contents. There may however, be streams will still be secure even if some attackers gained knowledge
other reasons to protect the SDP payloads such as preventing of the SDP contents.
attackers from gaining any information regarding the session or the
used equipment.
If the SDP messages are not sent authenticated between the parties, However, if the SDP messages are not sent authenticated between the
it is possible for an attacker to change attributes without being parties, it is possible for an active attacker to change attributes
detected. The "keymgmt-data" is protected by itself, but as it relies without being detected. As the key management protocol may (indirect)
on the session information from SDP, an attack on SDP may give rely on some of the session information from SDP (e.g., address
indirect consequences on the key management. The result of the information), an attack on SDP may give indirect consequences on the
attacks is not that severe, as it mainly will result in re-direction key management. In general, it is therefore a good thing, not only to
of the streams, or other DoS attacks. To circumvent the problem, the try to secure the session, but also to secure the session setup.
"keymgmt-auth" attribute may (optionally) be 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 exact coverage of such "keymgmt-auth" attribute, i.e.,
a precise list of which SDP lines are covered. Note however, the
"keymgmt-auth" cannot work when NATs are present (as this may require
that fields in the SDP are changed).
6. IANA Considerations 6. IANA Considerations
Three new attributes fields for SDP (see Section 2.1) and one new New attribute fields for SDP (see Section 2.1) and RTSP header are
RTSP header are registered (see Section 2.2). registered (see Section 2.2).
7. Conclusions 7. Conclusions
A security solution for real-time applications needs a key management A security solution for real-time applications needs a key management
infrastructure. Integrating the key management scheme with the infrastructure. Integrating the key management scheme with the
session establishment protocol could be done efficiently in most of session establishment protocol could be done efficiently in most of
the scenarios. This draft proposes a framework that integrates a key the scenarios. This draft proposes a framework that integrates a key
management protocol (e.g., MIKEY) into SIP and RTSP, and which can be management protocol (e.g., MIKEY) into SIP and RTSP, and which can be
accompanied by different key management protocols. A set of new accompanied by different key management protocols. A set of new
attributes and headers has been defined in SDP and RTSP to support attributes and headers has been defined in SDP and RTSP to support
skipping to change at page 12, line 16 skipping to change at page 11, line 41
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@era.ericsson.se
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@era.ericsson.se
10. References 10. References
[KERB] Kohl, J., Neuman, C., "The Kerberos Network Authentication 10.1. Normative References
Service (V5)", IETF, RFC 1510.
[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 [OAM] Rosenberg, J. and Schulzrinne, H., "An Offer/Answer Model with
SDP", Internet Draft, IETF, Work in progress (MMUSIC). SDP", Internet Draft, IETF, Work in progress (MMUSIC).
[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.
[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).
[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 2543.
10.2. Informative References
[KERB] Kohl, J., Neuman, C., "The Kerberos Network Authentication
Service (V5)", IETF, RFC 1510.
[MIKEY] Arkko, J., Carrara, E., Lindholm, F., Naslund, M., and
Norrman, K., "MIKEY: Multimedia Internet KEYing", Internet Draft,
IETF, 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 2002. This Internet-Draft expires in October 2002.
 End of changes. 

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