draft-ietf-mmusic-kmgmt-ext-01.txt | draft-ietf-mmusic-kmgmt-ext-02.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: July 2002 M. Naslund | Expires: August 2002 M. Naslund | |||
K. Norrman | K. Norrman | |||
Ericsson | Ericsson | |||
January, 2002 | February, 2002 | |||
Key Management Extensions for SDP and RTSP | Key Management Extensions for SDP and RTSP | |||
<draft-ietf-mmusic-kmgmt-ext-01.txt> | <draft-ietf-mmusic-kmgmt-ext-02.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 36 | skipping to change at page 1, line 36 | |||
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 | |||
Abstract | Abstract | |||
This document defines extensions for SDP and RTSP to carry the | This document defines general extensions for SDP and RTSP to carry | |||
security information needed by a key management protocol, in order to | the security information needed by a key management protocol, in | |||
secure the media stream. Indications are also given on how it should | order to secure the media. These extensions are presented as a | |||
be used together with SIP and RTSP. | 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 | ||||
management protocol in use. | ||||
TABLE OF CONTENTS | General guidelines are also given on how the framework should be used | |||
together with SIP and RTSP. | ||||
TABLE OF CONTENTS | ||||
1. Introduction.................................................. 2 | 1. Introduction.................................................. 2 | |||
1.1. Notational Conventions...................................... 3 | 1.1. Notational Conventions...................................... 3 | |||
2. Extensions to SDP and RTSP.................................... 3 | 2. Extensions to SDP and RTSP.................................... 3 | |||
2.1. SDP Extensions.............................................. 3 | 2.1. SDP Extensions.............................................. 4 | |||
2.2. RTSP Extensions............................................. 4 | 2.2. RTSP Extensions............................................. 4 | |||
3. Usage with SIP and RTSP....................................... 5 | 3. Usage with SIP and RTSP....................................... 5 | |||
3.1. SIP usage................................................... 5 | 3.1. General SDP processing...................................... 5 | |||
3.2. RTSP usage.................................................. 5 | 3.2. SIP usage................................................... 6 | |||
3.3. Example scenarios........................................... 6 | 3.3. RTSP usage.................................................. 6 | |||
4. Security Considerations....................................... 8 | 3.4. Example scenarios........................................... 7 | |||
5. IANA Considerations........................................... 9 | 4. Security Considerations....................................... 9 | |||
6. Conclusions................................................... 9 | 5. IANA Considerations...........................................10 | |||
7. Acknowledgments............................................... 9 | 6. Conclusions...................................................10 | |||
8. Author's Addresses............................................ 9 | 7. Acknowledgments...............................................10 | |||
9. References....................................................10 | 8. Author's Addresses............................................10 | |||
9. References....................................................11 | ||||
1. Introduction | 1. Introduction | |||
There has recently been work to define a security framework for the | There has recently been work to define a security framework for the | |||
protection of real-time applications running over RTP, [SRTP]. | protection of real-time applications running over RTP, [SRTP]. | |||
However, a security protocol needs a key management infrastructure to | However, a security protocol needs a key management infrastructure to | |||
exchange keys and security parameters, managing and refreshing keys, | exchange keys and security parameters, managing and refreshing keys, | |||
etc. | etc. | |||
The focus in the following sections is to describe SDP attribute | The focus in the following sections is to describe SDP attribute | |||
extensions and RTSP header extensions to support key management, and | extensions and RTSP header extensions to support key management, and | |||
a possible integration within SIP and RTSP. | a possible integration within SIP and RTSP. A framework is therefore | |||
described in the following, that will need to be accompanied by one | ||||
or more key management protocols. | ||||
Some of the motivations to include the key management in the session | Some of the motivations to create a framework with the possibility to | |||
establishment are: | include the key management in the session establishment are: | |||
* Just as the codec information is a description of how to encode | * Just as the codec information is a description of how to encode | |||
and decode the audio (or video) stream, the key management data | and decode the audio (or video) stream, the key management data | |||
is a description of how to encrypt and decrypt the data. | is a description of how to encrypt and decrypt the data. | |||
* The possibility to negotiate the security for the entire | * The possibility to negotiate the security for the entire | |||
multimedia session at the same time. | multimedia 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. | |||
skipping to change at page 3, line 40 | skipping to change at page 3, line 48 | |||
order to support the key management. | order to support the key management. | |||
* make it easy to use another key management protocol, or a new | * make it easy to use another key management protocol, or a new | |||
version, without having to redefine the attributes or add new | version, without having to redefine the attributes or add new | |||
ones. | ones. | |||
The following set of attributes have been identified as necessary to | The following set of attributes have been identified as necessary to | |||
support: | support: | |||
* key management protocol identifier, to indicate the key | * key management protocol identifier, to indicate the key | |||
management protocol used ('keymgmt-prtcl') | management protocol used ("keymgmt-prtcl") | |||
* key management raw data field, to transport the key management | * key management raw data field, to transport the key management | |||
protocol data ('keymgmt-data') | protocol data ("keymgmt-data") | |||
* in the case of SDP, an extra (optional) authentication attribute | * in the case of SDP, an extra (optional) authentication attribute | |||
to be able to tie the key management data to the surrounding | to be able to tie the key management data to the surrounding | |||
media definitions ('key-extra-auth'). | media definitions ("key-extra-auth"). | |||
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 [SDP]) for the key management extensions to SDP. | (as used in [SDP]) 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 5, line 29 | skipping to change at page 5, line 36 | |||
* There MUST be a possibility for the key management protocol to | * There MUST be a possibility for the key management protocol to | |||
tie the media sessions to the negotiated parameters (i.e. an | tie the media sessions to the negotiated parameters (i.e. an | |||
interface between the key management and the SDP and RTSP | interface between the key management and the SDP and RTSP | |||
implementation MUST exist). | implementation MUST exist). | |||
Today, the MIKEY protocol has adopted the key management extensions | Today, the MIKEY protocol has adopted the key management extensions | |||
to work together with SIP and RTSP. Other protocols may use the | to work together with SIP and RTSP. Other protocols may use the | |||
described attributes and header, e.g. Kerberos. | described attributes and header, e.g. Kerberos. | |||
3.1. SIP usage | 3.1. General SDP processing | |||
When an SDP message is created, the following procedure should be | ||||
applied: | ||||
* The "keymgmt-prot" attribute is filled in with the identifier of | ||||
the key management protocol used (e.g. MIKEY or Kerberos). | ||||
* The "keymgmt-data" attribute is filled in by using the key | ||||
management protocol interface to obtain key management data. The | ||||
data may e.g. be a MIKEY message or Kerberos ticket. | ||||
* If used, the "keymgmt-auth" attribute is filled in by using the | ||||
key management protocol interface to obtain key management data. | ||||
Note that what data from SDP are supposed to be provided to the | ||||
interface MUST be specified by the key management protocol | ||||
itself. | ||||
A received SDP message that contains the key management attributes | ||||
SHOULD process these attributes in the following manner: | ||||
* Detect the key management protocol used by parsing the "keymgmt- | ||||
prot" attribute. | ||||
* Extract the key management data from the "keymgmt-data" attribute | ||||
and call the key management interface with the extracted data. | ||||
Note that depending on key management protocol, some extra | ||||
parameters might of course be requested, such as the | ||||
source/destination network address/port(s) for the specified | ||||
media. | ||||
* Depending on the outcome of the key management processing (i.e. | ||||
whether it was accepted or not), SDP processing can proceed | ||||
according to normal processing (e.g. according to the | ||||
offer/answer model, see also Section 3.2.). | ||||
* If the optional "keymgmt-auth" attribute is included, this is | ||||
processed as the "keymgmt-data". | ||||
3.2. SIP usage | ||||
The offerer should include the key management data within an offer | The offerer should include the key management data within an offer | |||
that contains the media description it should apply to. The answerer | that contains the media description it should apply to. The answerer | |||
MUST check with the key management protocol if the attribute values | MUST check with the key management protocol if the attribute values | |||
are valid, and then obtain from the key management the data to | are valid, and then obtain from the key management the data to | |||
include in the answer. If the offer is not accepted, the answerer | include in the answer. If the offer is not accepted, the answerer | |||
returns a notification message and the offerer may go out with a new | returns a notification message and the offerer may go out with a new | |||
(different) offer, depending on the local security policy. | (different) offer, depending on the local security policy. | |||
Re-keying should be handled as a new offer, i.e. a re-INVITE should | Re-keying should be handled as a new offer, i.e. a re-INVITE should | |||
be sent with the new proposed parameters. The answerer treats this as | be sent with the new proposed parameters. The answerer treats this as | |||
a new offer where the key management is the issue of change. | a new offer where the key management is the issue of change. | |||
3.2. RTSP usage | 3.3. RTSP usage | |||
RTSP does not use the offer/answer model, as SIP does. This causes | RTSP does not use the offer/answer model, as SIP does. This causes | |||
some problems as it is not possible (without abusing RTSP) to send | some problems as it is not possible (without abusing RTSP) to send | |||
back an answer to the server (as the server will in most cases be the | back an answer to the server (as the server will in most cases be the | |||
one initiating the security parameter exchange). To solve this, a new | one initiating the security parameter exchange). To solve this, a new | |||
header has been introduced (Section 2.2). | header has been introduced (Section 2.2). | |||
The processing of a key management header in RTSP should be done | ||||
analogous of the SDP message processing. The only differences will be | ||||
that the url has been introduced and that there is no corresponding | ||||
parameter for the extra authentication. The url should be processed | ||||
as a standard RTSP stream url, i.e. to identify the session. It is | ||||
however not mandatory to use. | ||||
The initial key management message from a server should be sent to | The initial key management message from a server should be sent to | |||
the client using SDP. When responding to this, the client uses the | the client using SDP. When responding to this, the client uses the | |||
new RTSP header to send back an answer (included in either the SETUP | new RTSP header to send back an answer (included in either the SETUP | |||
or the PLAY message). | or the PLAY message). | |||
The server may provide re-keying facilities by sending a new key | The server may provide re-keying facilities by sending a new key | |||
management message in a SET_PARAMETER or ANNOUNCE messages. In the | management message in a SET_PARAMETER or ANNOUNCE messages. In the | |||
latter, the RTSP header is not used if the ANNOUNCE message includes | latter, the RTSP header is not used if the ANNOUNCE message includes | |||
a SDP description where the data can be provided in. The response | a SDP description where the data can be provided in. The response | |||
message is then put in the new RTSP header in the response message | message is then put in the new RTSP header in the response message | |||
from the client to the server. Note that the SET PARAMETER and the | from the client to the server. Note that the SET PARAMETER and the | |||
ANNOUNCE messages are not mandatory to support for the servers. | ANNOUNCE messages are not mandatory to support for the servers. | |||
3.3. Example scenarios | 3.4. Example scenarios | |||
Example 1 (SIP) | Example 1 (SIP) | |||
A SIP call is taking place between Alice and Bob. Alice sends an | A SIP call is taking place between Alice and Bob. Alice sends an | |||
Invite message consisting of the following offer: | Invite message consisting of the following offer: | |||
v=0 | v=0 | |||
o=alice 2891092738 2891092738 IN IP4 lost.somewhere.com | o=alice 2891092738 2891092738 IN IP4 lost.somewhere.com | |||
s=Cool stuff | s=Cool stuff | |||
e=alice@w-land.org | e=alice@w-land.org | |||
skipping to change at page 8, line 35 | skipping to change at page 9, line 41 | |||
the video followed by a PLAY message). | the video followed by a PLAY message). | |||
4. Security Considerations | 4. Security Considerations | |||
The nature of this document is to allow SDP and RTSP to support | The nature of this document is to allow SDP and RTSP to support | |||
security of the media sessions. It is therefore not the intention of | security of the media sessions. It is therefore not the intention of | |||
this document to describe possible security solution or to define | this document to describe possible security solution or to define | |||
possible security problems. The defined SDP and RTSP extensions are | possible security problems. The defined SDP and RTSP extensions are | |||
not believed to introduce any new security risks to SDP and RTSP. | not believed to introduce any new security risks to SDP and RTSP. | |||
The 'key-extra-auth' attribute may be (optionally) used to guarantee | The "keymgmt-auth" attribute may be (optionally) used to guarantee an | |||
an authenticated binding between the session(s) and the security | authenticated binding between the session(s) and the security | |||
parameters, e.g. authenticating both the key management lines and | parameters, e.g. authenticating both the key management lines and | |||
(parts of) the surrounding SDP description. Each key management | (parts of) the surrounding SDP description. Each key management | |||
specifies the coverage of such 'key-extra-auth' attribute. A denial- | specifies the coverage of such "keymgmt-auth" attribute. A denial-of- | |||
of-service attack may be open if such authenticated binding is not | service attack may be open if such authenticated binding is not | |||
provided. Note however, the 'key-extra-auth' cannot work when NATs | provided. Note however, the "keymgmt-auth" cannot work when NATs are | |||
are present. | present. | |||
Note that the purpose of the key management fields is to secure the | Note that the purpose of the key management fields is to secure the | |||
media streams themselves. Under the assumption that the key | media streams themselves. Under the assumption that the key | |||
management schemes are secure, the SDP payloads can be passed along | management schemes are secure, the SDP payloads can be passed along | |||
unprotected, and the media streams will still be secure even if some | unprotected, and the media streams will still be secure even if some | |||
attackers gained knowledge of the SDP contents. There may however, be | attackers gained knowledge of the SDP contents. There may however, be | |||
other reasons to protect the SDP payloads such as preventing | other reasons to protect the SDP payloads such as preventing | |||
attackers from gaining any information regarding the session or the | attackers from gaining any information regarding the session or the | |||
used equipment. | used equipment. | |||
5. IANA Considerations | 5. IANA Considerations | |||
Three new attributes fields for SDP (see Section 2.1) and one new | Three new attributes fields for SDP (see Section 2.1) and one new | |||
RTSP header are registered (see Section 2.2). | RTSP header are registered (see Section 2.2). | |||
6. Conclusions | 6. Conclusions | |||
A security solution for real-time applications needs a key management | A security solution for real-time applications needs a key management | |||
infrastructure. Integrating the key management scheme with the | infrastructure. Integrating the key management scheme with the | |||
session establishment protocol could be done efficiently in most of | session establishment protocol could be done efficiently in most of | |||
the scenarios. A set of new attributes and headers have been defined | the scenarios. This draft proposes a framework that integrates a key | |||
in SDP and RTSP so that it will be possible to integrate a key | management protocol (e.g. MIKEY) into SIP and RTSP, and which can be | |||
management protocol (e.g. MIKEY) into SIP and RTSP. | accompanied by different key management protocols. A set of new | |||
attributes and headers has been defined in SDP and RTSP to support | ||||
this. | ||||
7. Acknowledgments | 7. Acknowledgments | |||
Thanks to: Rolf Blom, Joerg Ott, Colin Perkins, Magnus Westerlund, | Thanks to: Rolf Blom, Magnus Westerlund, and the rest involved in the | |||
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. | ||||
8. Author's Addresses | 8. 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 | |||
skipping to change at page 10, line 27 | skipping to change at page 11, line 34 | |||
[SDP] Handley, M., and Jacobson, V., "Session Description Protocol | [SDP] Handley, M., and Jacobson, V., "Session Description Protocol | |||
(SDP)", IETF, RFC2327 | (SDP)", IETF, RFC2327 | |||
[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, RFC2543. | "SIP: Session Initiation Protocol", IETF, RFC2543. | |||
[SRTP] Blom, R., Carrara, E., McGrew, D., Naslund, M, Norrman, K., | [SRTP] Blom, R., Carrara, E., McGrew, D., Naslund, M, Norrman, K., | |||
and Oran, D., "The Secure Real Time Transport Protocol", Internet | and Oran, D., "The Secure Real Time Transport Protocol", Internet | |||
Draft, IETF, Work in Progress (AVT). | Draft, IETF, Work in Progress (AVT). | |||
This Internet-Draft expires in July 2002. | This Internet-Draft expires in August 2002. | |||
End of changes. | ||||
This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |