draft-ietf-mmusic-kmgmt-ext-10.txt   draft-ietf-mmusic-kmgmt-ext-11.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 2004 M. Naslund Expires: October 2004 M. Naslund
K. Norrman K. Norrman
Ericsson Ericsson
February 2004 April 2004
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-10.txt> <draft-ietf-mmusic-kmgmt-ext-11.txt>
Status of this memo Status of this memo
This document is an Internet-Draft and is in full conformance with By submitting this Internet-Draft, I certify that any applicable
all provisions of Section 10 of RFC2026. patent or other IPR claims of which I am (we are) aware have been
disclosed, and any of which I (we) become aware will be disclosed, in
accordance with RFC 3668 (BCP 79).
By submitting this Internet-Draft, I accept the provisions of Section
3 of RFC 3667 (BCP 78).
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.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
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".
skipping to change at page 2, line 21 skipping to change at page 2, line 28
TABLE OF CONTENTS TABLE OF CONTENTS
1. Introduction.....................................................2 1. Introduction.....................................................2
1.1. Notational Conventions.........................................4 1.1. Notational Conventions.........................................4
2. Extensions to SDP and RTSP.......................................4 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................................................5
3. Usage with SDP, SIP, RTSP, and SAP...............................6 3. Usage with SDP, SIP, RTSP, and SAP...............................6
3.1. Use of SDP.....................................................7 3.1. Use of SDP.....................................................7
3.1.1 General processing............................................7 3.1.1 General processing............................................7
3.1.2 Use of SDP with offer/answer and SIP..........................8 3.1.2 Use of SDP with offer/answer and SIP..........................9
3.1.3 Use of SDP with SAP..........................................10 3.1.3 Use of SDP with SAP..........................................10
3.1.4 Bidding-down attack prevention...............................10 3.1.4 Bidding-down attack prevention...............................11
3.2. RTSP usage....................................................12 3.2. RTSP usage....................................................12
4. Example scenarios...............................................14 4. Example scenarios...............................................14
5. Adding further Key management protocols.........................18 5. Adding further Key management protocols.........................18
6. Integration of MIKEY............................................18 6. Integration of MIKEY............................................19
6.1 MIKEY Interface................................................19 6.1 MIKEY Interface................................................19
7. Security Considerations.........................................20 7. Security Considerations.........................................20
8. IANA Considerations.............................................21 8. IANA Considerations.............................................21
8.1. SDP Attribute Registration....................................21 8.1. SDP Attribute Registration....................................21
8.2. RTSP Registration.............................................21 8.2. RTSP Registration.............................................22
8.3. Protocol Identifier Registration..............................22 8.3. Protocol Identifier Registration..............................22
9. Acknowledgments.................................................23 9. Acknowledgments.................................................23
10. Author's Addresses.............................................23 10. Author's Addresses.............................................23
11. References.....................................................24 11. References.....................................................24
11.1. Normative References.........................................24 11.1. Normative References.........................................24
11.2. Informative References.......................................24 11.2. Informative References.......................................24
1. Introduction 1. Introduction
[RFC Editor remark] All instances of RFC xxxx should be replaced [RFC Editor remark] All instances of RFC xxxx should be replaced
skipping to change at page 4, line 38 skipping to change at page 4, line 44
parameters and keys are protected by the key management protocol. parameters and keys are protected by the key management protocol.
The key management data SHALL be base64 [RFC3548] encoded and comply The key management data SHALL be base64 [RFC3548] encoded and comply
with the base64 grammar as defined in [SDPnew]. The key management with the base64 grammar as defined in [SDPnew]. The key management
protocol identifier, KMID, is defined as below in Augmented Backus- protocol identifier, KMID, is defined as below in Augmented Backus-
Naur Form grammar (ABNF) [RFC2234]. Naur Form grammar (ABNF) [RFC2234].
KMID = 1*(ALPHA / DIGIT) KMID = 1*(ALPHA / DIGIT)
Values for the identifier, KMID, are registered and defined in Values for the identifier, KMID, are registered and defined in
accordance to Section 8. Note that the KMID will be case sensitive accordance to Section 8. Note that the KMID is case sensitive and it
and it is RECOMMENDED that values registered are lower case letters. is RECOMMENDED that values registered are lower case letters.
2.1. SDP Extensions 2.1. SDP Extensions
This section provides an ABNF grammar (as used in [SDPnew]) for the This section provides an ABNF grammar (as used in [SDPnew]) for the
key management extensions to SDP. 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 5, line 14 skipping to change at page 5, line 21
key-mgmt-att-value = 0*1SP prtcl-id SP keymgmt-data key-mgmt-att-value = 0*1SP prtcl-id SP keymgmt-data
prtcl-id = KMID prtcl-id = KMID
; e.g. "mikey" ; e.g. "mikey"
keymgmt-data = base64 keymgmt-data = base64
SP = 0x20 SP = 0x20
where KMID is as defined in Section 2 of this memo, base64 is as where KMID is as defined in Section 2 of this memo, base64 is as
defined in SDP [SDPnew]. Prtcl-id refers to the set of values defined defined in SDP [SDPnew]. Prtcl-id refers to the set of values defined
for KMID in Section 7. for KMID in Section 8.
The attribute MAY be used at session level, media level, or at both The 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. In other words, if the media level defined at session level. In other words, if the media level
attribute is present, the session level attribute MUST be ignored for attribute is present, the session level attribute MUST be ignored for
this media. Section 3.1 describes in detail how the attributes are this media. Section 3.1 describes in detail how the attributes are
used and how the SDP is handled in different usage scenarios. used and how the SDP is handled in different usage scenarios.
2.2. RTSP Extensions 2.2. RTSP Extensions
skipping to change at page 6, line 33 skipping to change at page 6, line 40
* 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 request-response message exchange. most one request-response message exchange.
* 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.
The content of the key management messages depends on the key The content of the key management messages depends on the key
management protocol that is used. However, the content of such key management protocol that is used. However, the content of such key
management messages might be expected to be roughly as follow. The management messages might be expected to be roughly as follow: the
key management Initiator (e.g. the offerer) includes the key key management Initiator (e.g. the offerer) includes the key
management data in a first message, containing the media description management data in a first message, containing the media description
it should apply to. This data in general consists of the security it should apply to. This data in general consists of the security
parameters (including key material) needed to secure the parameters (including key material) needed to secure the
communication, together with the necessary authentication information communication, together with the necessary authentication information
(to assure that the message is authentic). (to assure that the message is authentic).
At the Responder's side, the key management protocol checks the At the Responder's side, the key management protocol checks the
validity of the key management message, together with the validity of the key management message, together with the
availability of the parameters offered, and then provides the key availability of the parameters offered, and then provides the key
skipping to change at page 7, line 37 skipping to change at page 7, line 42
applicable, as there are cases where an answer can not or will not be applicable, as there are cases where an answer can not or will not be
sent back. sent back.
The general processing for creating an initial offer SHALL follow the The general processing for creating an initial offer SHALL follow the
following actions: following actions:
* The identifier of the key management protocol used MUST be placed * The identifier of the key management protocol used MUST be placed
in the prtcl-id field of SDP. A table of legal protocols in the prtcl-id field of SDP. A table of legal protocols
identifiers is maintained by IANA (see Section 8). identifiers is maintained by IANA (see Section 8).
* 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 [RFC3548] by the SDP message. This message SHALL be base64 encoded [RFC3548] by the SDP
application and then encapsulated in the keymgmt-data attribute. application and then encapsulated in the keymgmt-data attribute.
Note though that the semantics of the encapsulated message is Note though that the semantics of the encapsulated message is
dependent on the key management protocol that is used. dependent on the key management protocol that is used.
The general processing for handling a received offer SHALL follow the The general processing for handling a received offer SHALL follow the
following actions: following actions:
* The key management protocol is identified according to the prtcl-id * The key management protocol is identified according to the prtcl-id
skipping to change at page 8, line 7 skipping to change at page 8, line 13
IANA (Section 8). IANA (Section 8).
* 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 processing. Note then passed to the key management protocol for processing. Note
that depending on key management protocol, some extra parameters that depending on key management protocol, some extra parameters
might also be requested by the specific API, such as the might also be requested by the specific API, such as the
source/destination network address/port(s) for the specified media source/destination network address/port(s) for the specified media
(however, this will be implementation specific depending on the (however, this will be implementation specific depending on the
actual API). The extra parameters that a key management protocol actual API). The extra parameters that a key management protocol
might need (other than the ones defined here) SHOULD be might need (other than the ones defined here) MUST be documented,
documented, describing their use, as well as the interaction of describing their use, as well as the interaction of that key
that key management protocol with SDP and RTSP. management protocol with SDP and RTSP.
* If errors occur, or the key management offer is rejected, the * If errors occur, or the key management offer is rejected, the
session SHALL be aborted. Possible error messages are dependent session SHALL be aborted. Possible error messages are dependent
on the specific session establishment protocol. on the specific session establishment protocol.
At this stage, the key management will have either accepted or At this stage, the key management will have either accepted or
rejected the offered parameters. This MAY cause a response message to rejected the offered parameters. This MAY cause a response message to
be generated, depending on the key management protocol and the be generated, depending on the key management protocol and the
application scenario. application scenario.
skipping to change at page 8, line 45 skipping to change at page 8, line 51
* The key management protocol is identified according to the prtcl-id * The key management protocol is identified according to the prtcl-id
field. 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 processing. then passed to the key management protocol for processing.
* If errors occur, or the key management offer is rejected, the * If errors occur, or the key management offer is rejected, the
session SHALL be aborted. If possible an error message indicating session SHALL be aborted. If possible an error message indicating
the failure SHOULD be sent back. Otherwise, if all the steps are the failure SHOULD be sent back.
successful, the normal setup proceeds.
Otherwise, if all the steps are successful, the normal setup
proceeds.
3.1.2 Use of SDP with offer/answer and SIP 3.1.2 Use of SDP with offer/answer and SIP
This section defines additional processing rules, to the general one This section defines additional processing rules, to the general
defined in Section 3.1.1, applicable only to applications using SDP rules defined in Section 3.1.1, applicable only to applications using
with the offer-answer model [OAM] (and in particular SIP). SDP with the offer-answer model [OAM] (and in particular SIP).
When an initial offer is created, the following offer-answer specific When an initial offer is created, the following offer-answer specific
procedure SHALL be applied: procedure SHALL be applied:
* Before creating the key management data field, the list of protocol * Before creating the key management data field, the list of protocol
identifiers MUST be provided by the SDP application to (each) key identifiers MUST be provided by the SDP application to (each) key
management protocol, as defined in Section 3.1.4 (to defeat management protocol, as defined in Section 3.1.4 (to defeat
bidding-down attacks). bidding-down attacks).
For a received SDP offer that contains the key management attributes, For a received SDP offer that contains the key management attributes,
skipping to change at page 9, line 26 skipping to change at page 9, line 32
* Before, or in conjunction with, passing the key management data to * Before, or in conjunction with, passing the key management data to
the key management protocol, the complete list of protocol the key management protocol, the complete list of protocol
identifier from the offer message is provided by the SDP identifier from the offer message is provided by the SDP
application to the key management protocol (as defined in Section application to the key management protocol (as defined in Section
3.1.4). 3.1.4).
When an answer is created, the following offer-answer specific When an answer is created, the following offer-answer specific
procedure SHALL be applied: procedure SHALL be applied:
* If the key management rejects the offer, the answerer SHOULD return * If the key management rejects the offer, the answerer SHOULD return
a "606 Not Acceptable" message and optionally also including one a "606 Not Acceptable" message, optionally also including one or
or more Warning headers (a 306 "Attribute not understood" when one more Warning headers (a 306 "Attribute not understood" when one of
of the parameters is not supported, and a 399 "Miscellaneous the parameters is not supported, and a 399 "Miscellaneous warning"
warning" with arbitrary information to be presented to a human with arbitrary information to be presented to a human user or
user or logged, see Section 20.43 in [SIP]). Further details about logged, see Section 20.43 in [SIP]). Further details about the
the cause of failure MAY be described in an included message from cause of failure MAY be described in an included message from the
the key management protocol. The session is then aborted (and it key management protocol. The session is then aborted (and it is up
is up to local policy or end user to decide how to continue). to local policy or end user to decide how to continue).
Note that the key management attribute (related to the same key Note that the key management attribute (related to the same key
management protocol) MAY be present both at session level and at management protocol) MAY be present both at session level and at
media level. Consequently, the process SHALL be repeated for each media level. Consequently, the process SHALL be repeated for each
such key management attribute detected. In case the key management such key management attribute detected. In case the key management
processing of any such attribute does not succeed (e.g. processing of any such attribute does not succeed (e.g.
authentication failure, parameters not supported etc.), on either authentication failure, parameters not supported etc.), on either
session or media level, the entire session setup SHALL be aborted, session or media level, the entire session setup SHALL be aborted,
including those parts of the session which successfully completed including those parts of the session which successfully completed
their part of the key management. their part of the key management.
skipping to change at page 11, line 34 skipping to change at page 11, line 43
where KMID is as defined in Section 2. where KMID is as defined in Section 2.
For example, if the offered protocols are MIKEY and two yet-to-be- For example, if the offered protocols are MIKEY and two yet-to-be-
invented protocols KEYP1, KEYP2, the SDP is: invented protocols KEYP1, KEYP2, the SDP is:
v=0 v=0
o=alice 2891092738 2891092738 IN IP4 lost.example.com 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.example.com c=IN IP4 lost.example.com
a=key-mgmt:mikey <data1> a=key-mgmt:mikey ddOoF9sdhskd727ghuiSDsdhsoKko7eWsnDSJD...
a=key-mgmt:keyp1 <data2> a=key-mgmt:keyp1 727gkdOshsuiSDF9sdhsdKnD/dhsoSJokdo7eWD...
a=key-mgmt:keyp2 <data3> a=key-mgmt:keyp2 DFsnuiSDSh9sdh Kksd/dhsoddo7eOok727gWsJD...
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 each specified 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).
Each of the three protocols includes this protocol identifier Each of the three protocols includes this protocol identifier
list in its authentication coverage (according to its protocol list in its authentication coverage (according to its protocol
skipping to change at page 12, line 20 skipping to change at page 12, line 27
(Section 2.2). This also assumes that the key management also has (Section 2.2). This also assumes that the key management also has
some kind of binding to the media, so that the response to the server some kind of binding to the media, so that the response to the server
will be processed as required. will be processed as required.
The server SHALL be the Initiator of the key management exchange for The server SHALL be the Initiator of the key management exchange for
sessions in PLAY mode, i.e. transporting media from server to client. sessions in PLAY mode, i.e. transporting media from server to client.
The below text describes the behavior for PLAY mode. For any other The below text describes the behavior for PLAY mode. For any other
mode the behavior is not defined in this specification. mode the behavior is not defined in this specification.
To obtain a session description, the client initially contacts the To obtain a session description, the client initially contacts the
server via a DESCRIBE message (according to RTSP, a media description server via a DESCRIBE message. The initial key management message
could also be obtained by other means e.g. using http). The initial from the RTSP server is sent to the client in the SDP of the 200 OK
key management message from the RTSP server is sent to the client in in response to the DESCRIBE. Note that only one key management
the SDP of the 200 OK in response to the DESCRIBE. Note that only one protocol SHALL be used per session / media level. A server MAY allow
key management protocol SHALL be used per session / media level. A the SDP with key-management attribute(s) to be distributed to the
server MAY allow the SDP with key-management attribute(s) to be client though other means than RTSP, although this is not specified
distributed to the client though other means than RTSP. here.
The "uri" parameter of the KeyMgmt header is used to indicate for the The "uri" parameter of the KeyMgmt header is used to indicate for the
key management protocol on what context the carried message applies. key management protocol on what context the carried message applies.
For key management messages on the SDP session level, the answer MUST For key management messages on the SDP session level, the answer MUST
contain the RTSP aggregated control URL to indicate this. For Key contain the RTSP aggregated control URL to indicate this. For Key
management messages initially on SDP media level, the key management management messages initially on SDP media level, the key management
response message in the KeyMgmt header MAY use the RTSP media level response message in the KeyMgmt header MAY use the RTSP media level
URL. For RTSP sessions not using aggregated control, i.e. no session URL. For RTSP sessions not using aggregated control, i.e. no session
level control URI is defined, the key management protocol SHALL only level control URI is defined, the key management protocol SHALL only
be invoked on individual media streams. In this case also, the key be invoked on individual media streams. In this case also, the key
management response SHALL be on individual media streams (i.e. one management response SHALL be on individual media streams (i.e. one
RTSP key management header per media). RTSP key management header per media).
When responding to the initial key management message, the client When responding to the initial key management message, the client
uses the new RTSP header (KeyMgmt) to send back an answer. How this uses the new RTSP header (KeyMgmt) to send back an answer. How this
is done depends on the usage context. is done depends on the usage context:
* Key management protocol responses for the initial establishment of * Key management protocol responses for the initial establishment of
security parameters for an aggregated RTSP session SHALL be sent security parameters for an aggregated RTSP session SHALL be sent
in the first SETUP of the session. This means that if the key in the first SETUP of the session. This means that if the key
management is declared for the whole session but is setup in non- management is declared for the whole session but is setup in non-
aggregated fashion, i.e. one media per RTSP session, each SETUP aggregated fashion, i.e. one media per RTSP session, each SETUP
MUST carry the same response for the session level context. When MUST carry the same response for the session level context. When
performing a setup of the second or any subsequent media in a RTSP performing a setup of the second or any subsequent media in a RTSP
session the same key management parameters as established for the session the same key management parameters as established for the
first media also applies to these setups. first media also applies to these setups.
skipping to change at page 13, line 28 skipping to change at page 13, line 34
except that, if there is an error, the session is aborted (no error except that, if there is an error, the session is aborted (no error
is sent back). is sent back).
The client SHALL create the response, using the key management header The client SHALL create the response, using the key management header
in RTSP, as follows: in RTSP, as follows:
* The identifier of the key management protocol used (e.g. MIKEY) * The identifier of the key management protocol used (e.g. MIKEY)
MUST be placed in the "prot" field of the header. The prot values MUST be placed in the "prot" field of the header. The prot values
are maintained by IANA (Section 8). are maintained by IANA (Section 8).
* 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 the RTSP message. This message SHALL be base64 encoded by the RTSP
application and then encapsulated in the "data" field of the application and then encapsulated in the "data" field of the
header. The semantic of the encapsulated message is dependent on header. The semantic of the encapsulated message is dependent on
the key management protocol that is used. the key management protocol that is used.
* Include if necessary the URL to indicate the context in the "uri" * Include, if necessary, the URL to indicate the context in the "uri"
parameter. parameter.
The server SHALL process a received key management header in RTSP as The server SHALL process a received key management header in RTSP as
follow: follow:
* The key management protocol is identified according to the "prot" * The key management protocol is identified according to the "prot"
field. field.
* The key management data from the "data" field MUST be extracted, * The key management data from the "data" field MUST be extracted,
base64 decoded to reconstruct the original message, and then base64 decoded to reconstruct the original message, and then
skipping to change at page 14, line 13 skipping to change at page 14, line 22
specify (within the RTSP status code message or through key specify (within the RTSP status code message or through key
management messages) details about the type of error that management messages) details about the type of error that
occurred. occurred.
Re-keying within RTSP is for further study, given that media updating Re-keying within RTSP is for further study, given that media updating
mechanisms within RTSP are unspecified at the time this document is mechanisms within RTSP are unspecified at the time this document is
written. written.
4. Example scenarios 4. Example scenarios
The following examples utilizes MIKEY [MIKEY] as key management The following examples utilize MIKEY [MIKEY] as the key management
protocol to be integrated into SDP and RTSP (see Section 5.1.). protocol to be integrated into SDP and RTSP (see Section 5.1.).
Example 1 (SIP/SDP) Example 1 (SIP/SDP)
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 w-land.example.com o=alice 2891092738 2891092738 IN IP4 w-land.example.com
s=Cool stuff s=Cool stuff
skipping to change at page 18, line 24 skipping to change at page 18, line 36
This framework cannot be used with all key management protocols. The This framework cannot be used with all key management protocols. The
key management protocol needs to comply with the requirements key management protocol needs to comply with the requirements
described in Section 3. In addition to this, the following needs to described in Section 3. In addition to this, the following needs to
be defined: be defined:
* The key management protocol identifier to be used as the protocol * The key management protocol identifier to be used as the protocol
identifier should be registered at IANA according to Section 8. identifier should be registered at IANA according to Section 8.
* The information that the key management needs from SDP and RTSP, * The information that the key management needs from SDP and RTSP,
and vice versa, as described in Section 3. The exact API is and vice versa, as described in Section 3. The exact API is
implementation specific, but it SHOULD at least support the implementation specific, but it MUST at least support the exchange
exchange of the specified information. of the specified information.
* The key management protocol to be added MUST be such, that the * The key management protocol to be added MUST be such, that the
processing in Section 3 (describing its interactions with SDP and processing in Section 3 (describing its interactions with SDP and
RTSP) can be applied. Note in particular, Section 3.1.4 requires RTSP) can be applied. Note in particular, Section 3.1.4 requires
each key management protocol to specify how the list of protocol each key management protocol to specify how the list of protocol
identifiers is authenticated inside that key management protocol. identifiers is authenticated inside that key management protocol.
The key management MUST always be given the protocol identifier(s) The key management MUST always be given the protocol identifier(s)
of the key management protocol(s) included in the offer in the of the key management protocol(s) included in the offer in the
correct order as they appear. correct order as they appear.
skipping to change at page 19, line 18 skipping to change at page 19, line 27
the keymgmt-data attribute. The examples in Section 4 use MIKEY, the keymgmt-data attribute. The examples in Section 4 use MIKEY,
where the semantic of the exchange is also briefly explained. where the semantic of the exchange is also briefly explained.
The key management protocol identifier (KMID) to be used as the The key management protocol identifier (KMID) to be used as the
protocol identifier SHALL be "mikey" and is registered at IANA, see protocol identifier SHALL be "mikey" and is registered at IANA, see
in detail Section 8. in detail Section 8.
The information that the key management needs from SDP and RTSP, and The information that the key management needs from SDP and RTSP, and
vice versa, follows Section 3. To avoid bidding-down attacks, the vice versa, follows Section 3. To avoid bidding-down attacks, the
directives in Section 3.1.4 are followed. The list of protocol directives in Section 3.1.4 are followed. The list of protocol
identifiers is authenticated within MIKEY by placing such list in a identifiers is authenticated within MIKEY by placing the list in a
General Extension Payload (of type "SDP IDs", [MIKEY]), which then General Extension Payload (of type "SDP IDs", [MIKEY]), which then
automatically will be integrity protected/signed. The receiver SHALL automatically will be integrity protected/signed. The receiver SHALL
then match the list in the General Extension Payload with the list then match the list in the General Extension Payload with the list
included in SDP and SHOULD (according to policy) if they differ, or included in SDP and SHOULD (according to policy) if they differ, or
if integrity/signature verification fails, reject the offer. if integrity/signature verification fails, reject the offer.
To signal the MIKEY identity of the client to the server in the The server will need to be able to know the identity of the Client
DESCRIBE, it is RECOMMENDED to include the From header field in RTSP. before creating and sending a MIKEY message. To signal the (MIKEY)
identity of the client to the server in the DESCRIBE, it is
RECOMMENDED to include the From header field in RTSP. Other methods
to establish the identity could be using the IP address or retrieving
the identity from the RTSP authentication if used.
6.1 MIKEY Interface 6.1 MIKEY Interface
This subsection describes some aspects, which implementers SHOULD This subsection describes some aspects, which implementers SHOULD
consider. If the MIKEY implementation is separate from the consider. If the MIKEY implementation is separate from the
SDP/SIP/RTSP, an application programming interface (API) between SDP/SIP/RTSP, an application programming interface (API) between
MIKEY and those protocols is needed with certain functionality MIKEY and those protocols is needed with certain functionality
(however, exactly what it looks like is implementation dependent). (however, exactly what it looks like is implementation dependent).
Implementers of MIKEY are RECOMMENDED to consider providing at least Implementers of MIKEY are RECOMMENDED to consider providing at least
skipping to change at page 19, line 49 skipping to change at page 20, line 12
* the possibility for MIKEY to receive information about the sessions * the possibility for MIKEY to receive information about the sessions
negotiated. This is to some extent implementation dependent. But negotiated. This is to some extent implementation dependent. But
it is RECOMMENDED that, in the case of SRTP streams, the number of it is RECOMMENDED that, in the case of SRTP streams, the number of
SRTP streams is included (and the direction of these). It is also SRTP streams is included (and the direction of these). It is also
RECOMMENDED to provide the destination addresses and ports to RECOMMENDED to provide the destination addresses and ports to
MIKEY. When referring to streams described in SDP, MIKEY allocated MIKEY. When referring to streams described in SDP, MIKEY allocated
two consecutive numbers for the related Crypto Session indexes (as two consecutive numbers for the related Crypto Session indexes (as
each stream can be bi-directional). An example: if the SDP each stream can be bi-directional). An example: if the SDP
contains two m lines (specifying whatever direction of the contains two m lines (specifying whatever direction of the
streams), and MIKEY is at the session level, then MIKEY allocates streams), and MIKEY is at the session level, then MIKEY allocates
e.g. the CS IDs '1' and '2' for the first m line, and '3' and '4' e.g. the Crypto Sessions Identifiers (CS IDs, see [MIKEY)] '1' and
for the second m line. '2' for the first m line, and '3' and '4' for the second m line.
* the possibility for MIKEY to receive incoming MIKEY messages and * the possibility for MIKEY to receive incoming MIKEY messages and
return a status code from/to the SIP/RTSP application. return a status code from/to the SIP/RTSP application.
* the possibility for the SIP or RTSP applications to receive * the possibility for the SIP or RTSP applications to receive
information from MIKEY. This would typically include the receiving information from MIKEY. This would typically include the receiving
of the CSB ID (to later be able to identify the active MIKEY of the Crypto Session Bundle Identifier (CSB ID, see [MIKEY], to
session), and the SSRCs and the ROC for SRTP usage. It is also later be able to identify the active MIKEY session), and the SSRCs
RECOMMENDED that extra information about errors can be received. and the rollover counter (ROC, see [SRTP]) for SRTP usage. It is
also RECOMMENDED that extra information about errors can be
received.
* the possibility for the SIP or RTSP application to receive outgoing * the possibility for the SIP or RTSP application to receive outgoing
MIKEY messages. MIKEY messages.
* the possibility to tear down a MIKEY CSB (e.g. if the SIP session * the possibility to tear down a MIKEY CSB (e.g. if the SIP session
is closed, the CSB SHOULD also be closed). is closed, the CSB SHOULD also be closed).
7. Security Considerations 7. Security Considerations
The framework for transfer of key management data as described here The framework for transfer of key management data as described here
skipping to change at page 22, line 39 skipping to change at page 22, line 53
Contact: Fredrik Lindholm Contact: Fredrik Lindholm
mailto: fredrik.lindholm@ericsson.com 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-att-field Purpose: Usage of MIKEY with the key-mgmt-att-field
attribute and the keymgmt RTSP header attribute and the keymgmt RTSP header
Reference: Section 7 in RFC yyyy Reference: Section 7 in RFC yyyy
Note that this registration will imply that the protocol identifier, Note that this registration implies that the protocol identifier,
KMID, name space will be shared between SDP and RTSP. KMID, name space will be shared between SDP and RTSP.
Further values may be registered according to the "Specification Further values may be registered according to the "Specification
Required" policy as defined in [RFC2434]. Each new registration needs Required" policy as defined in [RFC2434]. Each new registration needs
to indicate the parameter name, and register it within IANA. Note to indicate the parameter name, and register it within IANA. Note
that the parameter name is case sensitive and it is RECOMMENDED that that the parameter name is case sensitive and it is RECOMMENDED that
the name to be in lower case letters. For each new registration, it the name to be in lower case letters. For each new registration, it
is mandatory that a permanent, stable, and publicly accessible is mandatory that a permanent, stable, and publicly accessible
document exists that specifies the semantics of the registered document exists that specifies the semantics of the registered
parameter and the requested details of interaction between the key parameter and the requested details of interaction between the key
management protocol and SDP, as specified in RFC xxxx. management protocol and SDP, as specified in RFC xxxx.
The registration itself of new values should be sent to IANA. New values MUST be register with IANA. Registrations SHALL include
Registrations SHALL include the following information: the following information:
* Contact: the contact name and email address * Contact: the contact name and email address
* Value name: the name of the value being registered (which MUST * Value name: the name of the value being registered (which MUST
comply with the KMID as defined in Section 2) comply with the KMID as defined in Section 2)
* Long Name: long-form name in English * Long Name: long-form name in English
* Purpose: short explanation of the purpose of the registered name. * Purpose: short explanation of the purpose of the registered name.
* Reference: a reference to the specification (e.g. RFC number) * Reference: a reference to the specification (e.g. RFC number)
providing the usage guidelines in accordance to Section 5 (and providing the usage guidelines in accordance to Section 5 (and
also complying to the specified requirements). also complying to the specified requirements).
skipping to change at page 24, line 26 skipping to change at page 24, line 35
[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 [RFC2119] Bradner, S. "Key words for use in RFCs to Indicate
Requirement Levels", IETF, RFC 2119. 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, draft-ietf-mmusic-sdp- Description Protocol", Internet Draft, IETF, draft-ietf-mmusic-sdp-
new-15.txt. new-15.txt.
[SIP] Handley, M., Schulzrinne, H., Schooler, E., and Rosenberg, J., [SIP] Rosenberg et al., "SIP: Session Initiation Protocol", IETF, RFC
"SIP: Session Initiation Protocol", IETF, RFC 3261. 3261.
[RFC2234] Crocker, D. and Overell, P., "Augmented BNF for Syntax [RFC2234] Crocker, D. and Overell, P., "Augmented BNF for Syntax
Specifications: ABNF", RFC 2234, November 1997. Specifications: ABNF", RFC 2234, November 1997.
[RFC2434] 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 [RFC3548] Josefsson, S., "The Base16, Base32, and Base64 Data
Encodings", IETF, RFC 3548. Encodings", IETF, RFC 3548.
11.2. Informative References 11.2. Informative References
[E2M] Ono, K. and Tachimoto, S., "End-to-middle security in the [E2M] Ono, K. and Tachimoto, S., "End-to-middle security in the
Session Initiation Protocol (SIP)", Internet Draft, IETF, draft-ono- Session Initiation Protocol (SIP)", Internet Draft, IETF, draft-ono-
sipping-end2middle-security-00. sipping-end2middle-security-01.
[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.
[SRTP] Baugher, M., Blom, R., Carrara, E., McGrew, D., Naslund, M, [SRTP] Baugher, M., McGrew, D., Naslund, M., Carrara, E., Norrman,
Norrman, K., and Oran, D., "The Secure Real Time Transport Protocol", K., "The Secure Real-time Transport Protocol", IETF, RFC 3711.
Internet Draft, IETF, <draft-ietf-avt-srtp-09.txt>.
IPR Notices
The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. Copies of
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to
obtain a general license or permission for the use of such
proprietary rights by implementors or users of this specification can
be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2004). All Rights Reserved. Copyright (C) The Internet Society (2004). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
This document and translations of it may be copied and furnished to except as set forth therein, the authors retain all their rights.
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 Disclaimer of Validity
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an This document and the information contained herein are provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
This Internet-Draft expires in August 2004. This Internet-Draft expires in October 2004.
 End of changes. 

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