MMUSIC Working Group H. Kaplan
Internet Draft Acme Packet
Expires: April 2007 F. Audet
Nortel Networks
October 2006
Session Description Protocol (SDP) Offer/Answer Negotiation
For Best-Effort Secure Real-Time Transport Protocol
draft-kaplan-mmusic-best-effort-srtp-01.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress".
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This Internet-Draft will expire on February 24, 2007.
Abstract
This document defines the requirements and a proposed solution for
an SDP Offer/Answer exchange model for negotiating best-effort SRTP
keys, i.e., in a backward-compatible manner with non-SRTP devices.
The proposed solution is a trivial interpretation of the usage of
the profile and the usage of SDP indication of [sdesc] and [kmgmt].
Kaplan Expires - April 2007 [Page 1]
Best Effort SRTP October 2006
Table of Contents
1. Introduction................................................2
2. Notational Conventions......................................4
3. Applicability...............................................5
4. Requirements................................................5
5. Solution Overview...........................................6
6. SRTP Attribute..............................................7
7. Offer/Answer Model:.........................................8
7.1. Generating the Initial Offer...........................8
7.1.1 Offering Unique SRTP Payload Types................... 9
7.2. Generating the Initial Answer..........................9
7.2.1 Answering Unique SRTP Payload Types................. 10
7.3. Processing the Initial Answer.........................11
8. Forked Offers and Multiple Answers.........................12
9. Clipping and Changing Transport Types......................12
10. Example Offer/Answer Exchange..............................12
11. Security Considerations....................................14
11.1. Security Implications vs. [sdesc] and [kmgmt].........14
12. References.................................................15
12.1. Normative References..................................15
12.2. Informative References................................15
Author's Address.................................................16
Intellectual Property Statement..................................16
Disclaimer of Validity...........................................17
Copyright Statement..............................................17
Acknowledgments..................................................17
1. Introduction
The support of SRTP has been increasing recently, but its adoption
has still been relatively slow. One of the reasons for this is that
the currently defined mechanisms for exchanging SRTP keys are based
on an all-or-nothing approach, i.e., "Always secure" or "Always not
secure". If the offer indicates SRTP and the answerer cannot
support SRTP, or the particular key exchange mechanism, the entire
offer, or the actual session invitation, will fail. When the
desired policy is "Always secure", the current established mechanism
works perfectly well.
However, a need has been identified for a third policy: "Best-Effort
Security". Best Effort Security means that you prefer that SRTP be
used, but you are willing to use RTP if the other end does not
support it. There are different reasons why one may wish to use a
Best Effort policy. It could be to allow for interoperability with
many devices that may not support SRTP. In other cases, it may be as
a migration strategy or introducing new equipment that support SRTP,
Kaplan Expires - April 2007 [Page 2]
Best Effort SRTP October 2006
cohabitating with devices that do not support SRTP until the older
equipment is replaced.
Today, there is no generally accepted (and backward compatible) way
to indicate Best Effort SRTP key negotiation. Therefore, an SRTP-
capable device must either be prepared to re-attempt to establish a
media stream with RTP after failing with SRTP, or simply not offer
SRTP by default, and upgrade to SRTP when possible.
With the current mechanism, it may in the best case be possible to
start without SRTP initially (i.e., with the AVP [rtp] profile), and
then negotiate through another Offer/Answer [RFC3264] with either
[kmgmt] or [sdesc] the usage of SRTP and the session keys. This is
an extremely cumbersome process, and has the implication that every
call will use an additional Offer/Answer exchange, and will also
have the consequence that every call will start without SRTP, which
is undesirable.
Also with the current mechanism, starting with SRTP (i.e., the SAVP
profile) and downgrading to RTP is only achievable by rejecting the
whole session. However, rejecting a session in SIP (normally with a
4XX response code), has very negative implications because of the
[herfp] issue. To summarize the issue [herfp] means that the
rejection sent by the UAS, when used with forking, is very unlikely
to reach the UAC. Since that rejection is intended to cause a re-
negotiation without SRTP, the net effect is that the call fork fails
completely. In the best case scenario, another fork may answer
(e.g., a voicemail system), and in the worst case scenario, the
other forks also fails, which means that the calls fails entirely.
This is clearly unacceptable and a great impediment to the
deployment of SRTP. Note that this is an issue for both parallel
and sequential forking.
Note: Some may argue that one may reject the Offer setting the
port in the answer to zero as per [RFC3264], and then do a second
Offer/Answer; however, since the endpoints that do not support
the SAVP profile most likely do not behave this way in the first
place (they will reject the whole session), this means it would
not be backward compatible to use an Offer rejection mechanism.
Furthermore, many UAs automatically generate a BYE if they
receive an SDP answer with no accepted media lines
This document proposes a solution to Best Effort SRTP and backward
compatibility problem by introducing a third Policy to the existing
ones.
The existing supported mechanisms as of today are as follows:
* SAVP (and associated keys) means secure transport only, i.e.
"SRTP only"
Kaplan Expires - April 2007 [Page 3]
Best Effort SRTP October 2006
* AVP means insecure transport only, i.e. "RTP only"
This drafts proposes a Third mechanism:
* AVP with associated SRTP attributes means "Best-Effort SRTP"
The mechanism outlined in this document is fairly trivial, and is
defined in order to successfully negotiate multiple mechanisms in
one offer/answer exchange, even if the answerer only supports
clear/non-secure RTP, and it is backward compatible. Examples are
given for [kmgmt] and [sdesc]. This mechanism only applies to
Offer/Answer-based applications.
The procedures described in this specification represent a technique
that has already been used and deployed in the real-world. It has
also been briefly mentioned in [sdp-neg], which lists many
techniques used today. Of all the techniques described in [sdp-neg],
it is by far the simplest one to address the "Best Effort SRTP"
problem, and the only one that does not risk "breaking" any
implementations.
It has been argued in [sdp-neg] that using "RTP/AVP" violates
[srtp]. After reviewing [srtp], the authors could not find any
justification to this claim. Rather, the authors claim that "if
SAVP is indicated, we can infer that SRTP is to be used, but the
reverse is not necessarily true, i.e., if AVP is used, it does not
mean that SRTP will not be used". In other words, there is a well-
defined encoding for using SRTP which is "SAVP", but that does not
preclude an offerer from offering "AVP" and proposing SRTP
dynamically. RFC 3407 [sim-cap] essentially already allows such a
model, whereby the backward-compatible encoded media profile may be
of one type, while the [sim-cap] offered alternate capability may
change the profile for those that understand [sim-cap]. This draft
essentially employs a similar model, but using the [sdesc] or
[kmgmt] attributes as the explicit alternate profile offer. It
should also be noted that [zrtp] already uses AVP for SRTP traffic.
A second requirement of this draft allows the offerer to indicate to
the answerer to use unique payload types for SRTP packets, in order
to make them distinguishable from clear RTP packets. This is
mandatory if the offerer needs to render media before receiving the
answer, and cannot do so until it has the keys in the answer to do
so.
2. Notational Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119. The
Kaplan Expires - April 2007 [Page 4]
Best Effort SRTP October 2006
terminology in this document conforms to RFC 2828, "Internet
Security Glossary".
3. Applicability
This draft proposes using a [sdesc]/[kmgmt] style key exchange in a
backward-compatible manner with legacy RTP devices, for Offer/Answer
exchange-based applications. This mechanism should provide a
smoother migration path, broader applicability, and more rapid
acceptance than [sdesc] or [kmgmt] mechanism used only in the "SRTP
only" mode.
The rules of this specification apply to AVP/SAVP.
OPEN ISSUE: The same technique arguably could be used with AVPF
[RFC4585]/SAVPF[savpf]. Should it? We have assumed only
AVP/SAVP, but it could easily be expanded to cover
AVPF/SAVPF.
4. Requirements
Unlike the requirements addressed in [sdpng] and [sdp-cap-neg], this
mechanism is not trying to address all the general issues with SDP
capability negotiation. Instead, it is trying to provide a solution
to a very short and defined set of requirements:
REQ-1: It MUST be possible to indicate and negotiate RTP vs. SRTP
profiles, on a per media stream basis.
REQ-2: It MUST be possible to offer SRTP profile to an RTP-only
answerer, and successfully negotiate RTP, without additional
offer/answers.
REQ-3: It MUST be possible to offer SRTP without allowing a fallback
to RTP, if the answerer does not support SRTP but the offerer only
wishes to either use SRTP or fail the negotiation.
REQ-4: The mechanism MUST be backwards compatible for SIP RTP-only
devices, without requiring them to change.
REQ-5: The mechanism MUST be media-type agnostic. (i.e., work with
any media type of any codec, etc.)
REQ-6: The mechanism MUST work in the presence of SIP forking.
REQ-7: The mechanism SHOULD support RTCP-based feedback, e.g. AVPF.
OPEN ISSUE: Should REQ-7 be a requirement?
Kaplan Expires - April 2007 [Page 5]
Best Effort SRTP October 2006
We believe the above to be the necessary and sufficient requirements
set to achieve broad applicability and deployment of SRTP in the
near future. Below, we provide a proposed solution meeting those
requirements.
5. Solution Overview
The basic concept is:
If an SRTP-capable device wishes to *only* offer SRTP and will only
accept SRTP be used, then it performs exactly the same steps as
defined in [sdesc] or [kmgmt], including indicating the SAVP
profile. The answerer would do the same. This is per current
practice.
If a device wishes to offer RTP only, then it uses the AVP profile,
and does not use [sdesc] or [kmgmt]. The answerer does the same.
This is also per current practice.
If an SRTP-capable device wishes to offer SRTP but will accept an
RTP answer if the far-end only supports that for a given media
stream, then it indicates SRTP support as an alternative, by
inserting the same media-level crypto attributes of [sdesc] or key
management attributes of [kmgmt], or both, into the offer using non-
secure transport profiles (e.g., "AVP" instead of "SAVP"). The
offerer may also indicate SAVP support for media lines when a
session-level key is used, using a new attribute. The offerer may
also indicate unique Payload Type mapping values for SRTP/SRTCP
packets in a new attribute, if she wishes to distinguish SRTP from
RTP before the SDP answer comes back.
A legacy RTP-only device will ignore these unknown attributes and
answer as if they did not exist, i.e. using the "AVP" profile
without any crypto or key-mgmt attributes. The offerer then knows
they don't support it and will establish the session using regular
RTP.
A device supporting this draft and SRTP understands the attributes
indicate a willingness to use the SAVP profile instead, and responds
accordingly, by including a crypto or key-mgmt attribute in the
answer (but still using "AVP" encoding), resulting in SRTP. If the
offer included the payload type mappings, the answerer would use
them for SRTP packets.
* The main difficulty with offering SRTP-attributes using non-
secure transport profiles is that SRTP packets are virtually
Kaplan Expires - April 2007 [Page 6]
Best Effort SRTP October 2006
indistinguishable from RTP packets - there is no "SRTP flag".
That means the offerer must either wait for the answer before
knowing how to handle received RTP packets, or a distinguishing
factor must be defined. This specification supports both models,
by allowing the offerer to indicate its preference, and mandating
the answerer support both.
6. SRTP Attribute
This draft introduces a new media-level SRTP attribute ("a=srtp"),
for the purpose of indicating SRTP is desired for a media stream
when it would otherwise be ambiguous, and for indicating payload
type mappings for the RTP payload types in the m= media line.
Examples of the new attribute are as follows:
a=srtp
a=srtp: map:0=96,18=97,101=102
The first example shows the attribute being used solely to indicate
the associated media line is capable of SRTP.
The second example indicates the associated media line is capable of
SRTP, and if SRTP is used, it will accept/receive SRTP on payload
type 96 for SRTP in place of payload type 0 (PCMU), 97 for 18
(G729), and 102 for 101.
Following the ABNF rules used in [sdp], the new attribute is defined
in ABNF as follows:
att-field = "srtp"
att-value = space srtp-options
srtp-options = srtp-payload-mapping | ([srtp-payload-
mapping] 1*(byte-string))
srtp-payload-mapping = "map:" map-list
map-list = map *("," map)
map = rtp-pt "=" srtp-pt
rtp-pt = 1*3(DIGIT)
srtp-pt = 1*3(DIGIT)
;typically dynamic payload types
;in the range 96-127
Note that, per the ABNF definition of attribute in [sdp], the att-
value field is optional. Thus having both "a=srtp" and "a=srtp:..."
forms is legitimate. The <srtp-payload-mapping> is optional if more
byte-strings are present, in case some future extension of this
attribute does not need the mapping but wishes to use the srtp-
capability semantic.
The srtp attribute payload mapping list identifies which payload
type numbers offered in the m= media line should be replaced with
different payload type numbers if SRTP is chosen. As such, the rtp-
Kaplan Expires - April 2007 [Page 7]
Best Effort SRTP October 2006
pt (RTP payload type) values MUST correspond to fmt payload types in
the media-description line in an SDP offer. The srtp-pt (SRTP
payload type) values MUST be in the dynamic payload type range of
96-101, unless that is insufficient. The srtp-pt numbers MUST NOT
conflict with any of the offered fmt RTP payload type numbers.
7. Offer/Answer Model:
This draft is based on the offer/answer method of [RFC3264] as used
by [sdesc] and [kmgmt], except the use of secure transport (e.g.,
"SAVP") type encoding in SDP is not always used, as described above
in section 6 and detailed below. This also changes some of the
offer/answer details and RTP processing behavior as described below.
7.1. Generating the Initial Offer
If a device supporting this draft wanted to mandate use of secure
transport (i.e., SRTP) for a particular media stream they MUST
continue to use the [sdesc] or [kmgmt] prescribed secure transport
encoding, i.e. "SAVP", as before.
A device supporting this draft that wishes to use secure transport
if the answerer supports it, but is willing to accept non-secure
transport otherwise (i.e., best effort SRTP), offers the same media-
level crypto attributes and parameters as [sdesc], and/or media-
level key-mgmt attributes of [kmgmt], except that it will indicate
the "RTP/AVP" profile in SDP. The purpose of this is that, should
the receiver(s) of the offer not support SRTP, or not support it for
that particular media stream, the offer will not be rejected. The
offerer can still decide to end the session at any time should it
wish to.
An offerer MAY offer both [sdesc] crypto attributes and [kmgmt] key-
mgmt attributes in the same SDP offer, for the same media sessions.
The offerer SHOULD order them in the order it prefers - the first
type offered is the most preferred, per media stream.
A potential complication is that KMGMT allows for supporting either
session level key management, media level key management, or both.
When used with best-effort negotiation and in conjunction with
[sdesc], an explicit indication is needed to indicate which media
streams are potential SRTP candidates, when session-level [kmgmt] is
used. This specification requires that if Best Effort SRTP is used,
and session-level keys are offered, then a media-level srtp
attribute MUST be included in the offer for each media stream the
offerer wishes to offer SRTP for. If both session-level and media-
level attributes are offered, for example a session-level key-mgmt
and media-level crypto, the srtp attribute encoding MUST be used for
Kaplan Expires - April 2007 [Page 8]
Best Effort SRTP October 2006
every media stream the offerer wishes to use SRTP for. Note that
the media-level key will always be assumed to be more preferred than
the session-level one. An offerer MAY include the srtp attribute
for any media stream it wishes to offer SRTP for, even if it is not
offering a session-level key type.
7.1.1 Offering Unique SRTP Payload Types
In general, the offerer cannot definitively know whether the
received media is SRTP or RTP until it receives the answer, because
there is no distinguishing factor in the packets. If the offerer
wishes to render media before an SDP answer is received, it MUST
also include the srtp attribute with the payload mapping list,
defined earlier, to indicate unique SRTP payload types for the same
offered payloads as the media line. This will indicate to the
answerer which payload types to use for SRTP packets, if it accepts
the offer using SRTP. The offerer can then safely render RTP media
before the answer arrives, for payload types in the media line,
while ignoring received packets using the SRTP payload types mapped
in the srtp-attribute types until the answer arrives with the key to
decrypt SRTP. If the key type used is such that the offerer can
decrypt SRTP before the answer, the offerer MAY render it at any
time. If the offerer does not wish to render media until an answer
is received, it is OPTIONAL whether to include the payload mapping
list.
OPEN ISSUE: do we even make it optional, or mandate that the
offerer always include the mapping list?
In summary, the offerer encodes a secure transport type (SAVP) for
every media stream it demands be secured, while encoding a non-
secure transport type (AVP) but with the crypto and/or key-mgmt
attributes for every media stream it would accept non-secure
transport for. If it offers session-level keys, it includes the
srtp attribute for each media line it would have previously used
SAVP for. The offerer also indicates unique payload types for SRTP
media in the srtp attribute, if it needs to distinguish RTP from
SRTP before the answer arrives.
7.2. Generating the Initial Answer
If the offer contained both crypto and key-mgmt attributes, it is up
to answerer's local policy which key mechanism the answerer wishes
to use. The answerer SHOULD accept the first one in the offer it
understands and can support, per media stream. It MUST only encode
the like attribute type it chose to use for SRTP per media stream,
in the answer. In other words, it cannot choose both crypto and
key-mgmt for the same media stream.
Kaplan Expires - April 2007 [Page 9]
Best Effort SRTP October 2006
Regardless of local-policy preference for which particular key type
to accept, the answerer MUST accept either one or the other if it
can. In other words, the offerer has indicated it wishes to use
SRTP, and the answerer MUST agree to do so if possible.
As per [sdesc] and [kmgmt], if the answerer chooses to accept crypto
attributes or key-mgmt, it MUST use the first attribute in the
offered list of attributes per media stream it can support if there
are more than one offered attributes for a given key exchange type.
For example if two crypto-style keys are offered for a given media
stream, the answerer must select the first one it supports.
If it cannot support any of the offered crypto or key-mgmt
attributes, however, it MUST treat the offer as if *no* crypto-
attributes had been offered. In other words, if the answerer's
policy allows non-secure RTP, it can accept the offer as if it had
been so. If the answerer's local policy is to only allow SRTP media
and not accept non-secure RTP, it MAY reject the offer. This lets a
key-mgmt-only offerer successfully negotiate non-secure RTP with a
crypto-only answerer, and vice-versa.
If the offer used a secure transport encoding in SDP, per [sdesc] or
[kmgmt], then it MUST operate as in [sdesc] or [kmgmt] and answer
using a secure transport encoding syntax if it can for the same
media stream, or fail the offer. Thus an answerer supporting this
draft will interoperate with an offerer supporting only legacy
[sdesc] or [kmgmt].
If the offer uses best effort SRTP (using RTP/AVP profile), but
offered crypto or key-mgmt attributes which were acceptable and
answered, the answerer encodes its chosen key type and values and
MUST continue to use the insecure transport encoding, i.e., the
RTP/AVP profile. If the offer included the srtp attribute, the
answerer MUST include the srtp attribute for each media stream the
answerer wishes to use SRTP for.
7.2.1 Answering Unique SRTP Payload Types
If the offer indicated unique payload types for SRTP, by including
the srtp attribute and payload mapping list, the answerer MUST use
the indicated payload types for SRTP packets it sends, if it accepts
the SRTP offer. This is so that the offerer can distinguish RTP
from SRTP packets arriving before the answer, which can often be the
case. If the answerer used the same payload types for SRTP packets
as indicated in the m= media line, the offerer would attempt to
render them as RTP, which would produce a degraded user experience.
Kaplan Expires - April 2007 [Page 10]
Best Effort SRTP October 2006
The answerer MUST answer such an offer using the actual/real payload
types it is going to use for RTP or SRTP packets. Therefore, if it
selects to use SRTP and the offerer indicated payload type mappings
in the srtp attribute, the answerer will answer using the srtp-
specific payload type values in the m= media line of its answer.
If the offer included the optional payload mappings in an srtp
attribute, the answerer MUST include the srtp attribute for each
media stream the answerer wishes to use SRTP for, with the same
payload mappings, for those formats it is answering with.
7.3. Processing the Initial Answer
As per [sdesc] and [kmgmt], the answer is checked for matching
crypto or key-mgmt attributes and key information. If the answer
uses the RTP/AVP profile, and no crypto or key-mgmt attribute lines
are found in the answer, however, and the originally offered
transport was "AVP", then the negotiation MUST NOT be considered to
have failed. Instead, non-secure RTP is used regardless if the
original offer included any crypto or key-mgmt attributes to begin
with. This lets a Best-Effort SRTP offerer successfully negotiate
with a non-SRTP answerer, and a key-mgmt-only offerer successfully
negotiate non-secure RTP with a crypto-only answerer, and vice-
versa.
If a crypto attribute line is found in the answer, but does not have
a matching tag, included key, or contain all of the mandatory
negotiated session parameters, then the session negotiation MUST
fail. If a key-mgmt line is found in the answer, but does not pass
key management protocol processing, then the session negotiation
MUST fail. If both a crypto attribute and key-mgmt line is found in
the answer, at the media-level for the same media stream, then the
session negotiation MUST fail. If an answer contains a valid crypto
or key-mgmt attribute but they were not of the same key exchange
type as the offer for that media stream, then the session
negotiation MUST fail. These would all represent protocol failures.
If a key-mgmt line is found in the answer at the session level and a
key-mgmt or crypto attribute at the media level, and such was also
offered, then the media-level answers are used for each respective
media stream, and the session-level one used for the remaining SAVP
media streams (ones without media-level crypto or key-mgmt answers).
This is the same as best current practice today.
For each media stream which an acceptable answer is received at the
media level, and for all remaining SAVP media streams if an
acceptable session-level answer, the offerer MUST only accept SRTP
using the key and other values in the answer. It would do so as
described in [sdesc] or [kmgmt], as if the original Offer and Answer
Kaplan Expires - April 2007 [Page 11]
Best Effort SRTP October 2006
used SAVP secure transport encoding. The offerer would then begin
generating SRTP based on the answer as per [sdesc] or [kmgmt] and
[srtp].
8. Forked Offers and Multiple Answers
The generated Offer may be forked along the path, resulting in
multiple Answers. It is typically up to local-policy how to handle
such situations.
9. Clipping and Changing Transport Types
This draft does not rely on an Answer before processing RTP media,
but may rely on such for SRTP media. Such is the case typically for
SRTP today regardless, as the offered keys are usually the transmit
keys - so an Answer has to be received to know how to decrypt
received SRTP. NAT traversal using ICE has this limitation as well.
[sdesc] and [mikey-rsa-r] also have this limitation. Security
preconditions, as defined in [sec-pre], and/or sending the SDP
answer in provisional responses as soon as possible, are RECOMMENDED
for such cases.
This draft, however, provides a solution for rendering RTP media
safely, without worry it is SRTP, before the answer arrives. For
cases where the decrypt key is known at the time of the offer, this
draft also provides the ability to render SRTP media before the
answer arrives.
A second issue is changing transport types, in an updated
offer/answer. Since media typically reaches the UAC before an
answer, it may be difficult to know when to switch from RTP to SRTP
or vice-versa. This draft provides a solution to that problem as
well, by simply offering new dynamic payload types.
10. Example Offer/Answer Exchange
In the following example, Alice is proposing to establish an
unsecure RTP H.263 video channel in conjunction with a Best Effort
SRTP voice channel using either G.711 or G.729, using either [kmgmt]
or [sdesc]. Alice wishes to use payload type values 96 and 97 for
the RTP payload types of 0 and 18. Note that the a=crypto and the
a=key-mgmt lines are really 2 long lines.
v=0
o=alice 2890844526 2890842807 IN IP4 192.0.2.2
Kaplan Expires - April 2007 [Page 12]
Best Effort SRTP October 2006
s=Best effort secured discussion
e=alice@example.com (Alice)
c=IN IP4 192.0.2.2
t=2873397496 2873404696
m=video 51372 RTP/AVP 34
a=rtpmap:34 H263/9000
m=audio 49170 RTP/AVP 0 18
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=srtp: map:0=96,18=97
a=crypto:1 AES_CM_128_HMAC_SHA1_80
inline:WVNfX19zZW1jdGwgKCkgewkyMjA7fQp9CnVubGVz|2^20|1:4
a=key-mgmt:mikey AQAFgM0XflABAAAAAAAAAAAAAAsAyONQ6gAAAAAGEE
oo2pee4hp2UaDX8ZE22YwKAAAPZG9uYWxkQGR1Y2suY29tAQAAAAAAAQA
k0JKpgaVkDaawi9whVBtBt0KZ14ymNuu62+Nv3ozPLygwK/GbAV9iemnG
UIZ19fWQUOSrzKTAv9zV
In this sample Answer below, Bob does not support SRTP, and
therefore ignores the [kmgmt] and [sdesc] attributes and selects RTP
for the voice channel, and also accepts the video channel.
v=0
o=bob 2890890210 807082634 IN IP4 192.0.2.4
s=Open discussion
e=bob@example.net (Bob)
c=IN IP4 192.0.2.4
t=2873397496 2873404696
m=video 4900 RTP/AVP 34
a=rtpmap:34 H263/9000
m=audio 32640 RTP/AVP 0
a=rtpmap:0 PCMU/8000
In this sample Answer below, Bob does support SRTP, selects [sdesc]
for the voice channel, and also accepts the video channel. Note Bob
includes the srtp attribute and payload mapping info, and will
accept SRTP packets using payload type 102 for RTP of 0 (PCMU).
v=0
o=bob 2890890210 807082634 IN IP4 192.0.2.4
s=Secret discussion
e=bob@example.net (Bob)
c=IN IP4 192.0.2.4
t=2873397496 2873404696
m=video 4900 RTP/AVP 34
a=rtpmap:34 H263/9000
m=audio 32640 RTP/AVP 102
a=rtpmap:102 PCMU/8000
a=srtp: map:0=102
Kaplan Expires - April 2007 [Page 13]
Best Effort SRTP October 2006
a=crypto:1 AES_CM_128_HMAC_SHA1_80
inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4
11. Security Considerations
Like [sdesc], SDP using the mechanism in this draft with crypto
attributes is conveyed in an encapsulating application protocol
which MUST provide both strong eavesdropping and authentication
mechanisms. The same may be true of key-mgmt lines, depending on
the key management protocol. The security requirements in [sdesc]
and [kmgmt] MUST be followed for this draft as well.
11.1. Security Implications vs. [sdesc] and [kmgmt]
The best-effort mechanism proposed in this draft may be considered
less secure than [sdesc] and [kmgmt] because it allows a bid-down
attack to establish non-secure RTP sessions, even if both ends
supported SRTP. It is however more secure than not using SRTP at
all. This is by design, however, in order to facilitate
interoperability and migration from RTP to SRTP. No mechanism
proposed so far truly can prevent a bid-down attack. The difference
is that [sdesc] and [kmgmt] would result in a failed session
negotiation, whereas this mechanism would not. The authors consider
that a benefit of this draft, not a drawback. This draft still
mandates using SAVP if the offerer *only* accepts secure transport.
If the offerer would accept less anyway, then a malicious attacker
can as easily bid-down [sdesc] or [kmgmt] simply by failing the
session, since by definition such an offerer will re-signal using
non-secure transport encoding. Therefore, this draft's mechanism is
only more susceptible to bid-down in a trivial way - namely because
it will happen in fewer messages.
Using S/MIME or signing bodies using [identity] may also prevent
bid-down attacks.
Neither party needs to accept a session using non-secure RTP: the
offerer can simply use the secure transport encoding in SDP, and the
answerer can simply reject offers which do not offer such; or either
end can terminate the session or re-offer at any time. Those are
local policy decisions which are available for any mechanism.
Kaplan Expires - April 2007 [Page 14]
Best Effort SRTP October 2006
12. References
12.1. Normative References
[sdesc] Andreasen, F., Baugher, M., and D. Wing, "Session
Description Protocol (SDP) Security Description for Media Streams",
RFC 4568, July 2006
[kmgmt] Arkko, J., et al, "Key Management Extensions for Session
Description Protocol (SDP) and Real Time Streaming Protocol (RTSP)",
RFC 4567, July 2006
[sdp] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
with Session Description Protocol (SDP)", RFC 3264, June 2002.
[RFC3550] Schulzrinne, Casner, Frederick and Jacobson, "RTP: A
Transport Protocol for Real-Time Applications", RFC 3550, July 2003.
[srtp] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711,
March 2004.
[sip] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002.
12.2. Informative References
[RFC4585] Ott, Wenger, Sato, Burmeiste, Rey, "Extended RTP Profile
for Real-time Transport Control Protocol (RTCP)-Based Feedback
(RTP/AVPF)", RFC 4585, July 2006
[sim-cap] Andreasen, "Session Description Protocol (SDP) Simple
Capability Declaration", RFC 3407, October 2002
[herfp] Mahy, "A Solution to the Heterogeneous Error Response
Forking Problem (HERFP)in the Session Initiation Protocol (SIP)",
draft-mahy-sipping-herfp-fix-01
[identity] Peterson, Jennings, "Enhancements for Authenticated
Identity Management in the Session Initiation Protocol (SIP)",
draft-ietf-sip-identity-06
[mikey-rsa-r] Ignjatic, Dondeti, Audet, Lin, "An additional mode of
key distribution in MIKEY: MIKEY-RSA-R", draft-ietf-mikey-rsa-r-07
Kaplan Expires - April 2007 [Page 15]
Best Effort SRTP October 2006
[savpf] Ott, Carrara, "Extended Secure RTP Profile for RTCP-based
Feedback (RTP/SAVPF)", draft-ietf-avt-profile-savpf-06
[sdp-neg] Andreasen, "SDP Capability Negotiation", draft-andreasen-
mmusic-sdp-capability-negotiation-00
[sec-pre] Andreasen, Wing, "Security Preconditions for Session
Description Protocol (SDP) Media Streams", draft-ietf-mmusic-
securityprecondition-02
[zrtp] Zimmermann, "ZRTP: Extensions to RTP for Diffie-Hellman Key
Agreement for SRTP", draft-zimmermann-avt-zrtp-01
Author's Address
Hadriel Kaplan
Acme Packet
71 Third Ave.
Burlington, MA 01803, USA
Email: hkaplan@acmepacket.com
Francois Audet
Nortel Networks
4655 Great America Parkway
Santa Clara, CA 95054, USA
Email: audet@nortel.com
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights 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; nor does it represent that
it has made any independent effort to identify any such rights.
Information on the procedures with respect to rights in RFC
documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this
specification can be obtained from the IETF on-line IPR repository
at http://www.ietf.org/ipr.
Kaplan Expires - April 2007 [Page 16]
Best Effort SRTP October 2006
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf-
ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
INTERNET ENGINEERING TASK FORCE DISCLAIM 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.
Copyright Statement
Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgments
The authors wish to thank Alan Johnston who first suggested the idea
(we believe). We also thank Flemming Andreasen, Dan Wing, Randell
Jessup, Andrew Zmolek, Robert Gilman and John Elwell for their
suggestions and comments.
Kaplan Expires - April 2007 [Page 17]