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/ |