One document matched: draft-baugher-mmusic-sdp-dh-00.txt
Network Working Group M. Baugher
Internet-Draft D. McGrew
Expires: August 28, 2006 Cisco Systems, Inc.
February 24, 2006
Diffie-Hellman Exchanges for Multimedia Sessions
draft-baugher-mmusic-sdp-dh-00.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/ietf/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 August 28, 2006.
Copyright Notice
Copyright (C) The Internet Society (2006).
Abstract
This memo defines a new Session Description Protocol (SDP) attribute
for exchanging Diffie-Hellman (DH) public keys. The attribute is an
SDP session-level attribute for describing DH keys, and there is a
new media-level parameter for describing public keying material for
SRTP key generation. The SDP attribute supports the key
establishment schemes of NIST Draft Special Publication 800-56, adds
domain parameters and supports external authentication of the DH
endpoint without a public key infrastructure.
Baugher & McGrew Expires August 28, 2006 [Page 1]
Internet-Draft SDP-DH February 2006
Table of Contents
1. Introduction: SDP Discrete Logarithm Cryptography (DLC) . . . 3
1.1. Attacks and Protections . . . . . . . . . . . . . . . . . 3
1.2. Overview of This Document . . . . . . . . . . . . . . . . 5
1.3. Conformance Language . . . . . . . . . . . . . . . . . . . 6
2. The SDP DH Attribute and Parameters . . . . . . . . . . . . . 7
2.1. Mandatory DLC Suite: Stat_FFCDH_Group_2 . . . . . . . . . 7
2.1.1. IKE Group 2 Domain Parameters . . . . . . . . . . . . 8
2.1.2. Encoding of the DHkey Parameter . . . . . . . . . . . 8
2.1.3. Computation of the Shared Secret . . . . . . . . . . . 9
2.2. The Stat_ECDH_Group_19 DLC Suite . . . . . . . . . . . . . 9
2.2.1. IKE Group 19 Domain Parameters . . . . . . . . . . . . 10
2.2.2. DHkey Parameter Encoding . . . . . . . . . . . . . . . 10
2.2.3. Computation of the Shared Secret . . . . . . . . . . . 11
2.3. The Ephem_ECDH_Group_19 DLC Suite . . . . . . . . . . . . 11
2.3.1. IKE Group 19 Domain Parameters . . . . . . . . . . . . 11
2.3.2. DHkey Parameter Encoding . . . . . . . . . . . . . . . 11
2.3.3. Computation of the Shared Secret . . . . . . . . . . . 11
2.4. The Stat_FFDH_Group_14 DLC Suite . . . . . . . . . . . . . 11
2.4.1. IKE Group 14 Domain Parameters . . . . . . . . . . . . 12
2.4.2. DHkey Parameter Encoding . . . . . . . . . . . . . . . 12
2.4.3. Computation of the Shared Secret . . . . . . . . . . . 12
2.5. The Ephem_FFDH_Group_14 DLC Suite . . . . . . . . . . . . 13
2.5.1. IKE Group 14 Domain Parameters . . . . . . . . . . . . 13
2.5.2. DHkey Parameter Encoding . . . . . . . . . . . . . . . 13
2.5.3. Computation of the Shared Secret . . . . . . . . . . . 13
2.6. ABNF Grammar for DH Attribute and DLC_Suites . . . . . . . 13
2.7. Offer/Answer Processing . . . . . . . . . . . . . . . . . 14
2.8. Adding New DH Suites . . . . . . . . . . . . . . . . . . . 15
3. The "nonce" DH Parameter . . . . . . . . . . . . . . . . . . . 16
3.1. Changes to RFC {sdesc} "crypto" Grammar . . . . . . . . . 16
3.2. Generating SRTP Master Keys from Public Information . . . 18
3.3. Media-session Key Derivation . . . . . . . . . . . . . . . 18
3.4. Offer/Answer Processing . . . . . . . . . . . . . . . . . 19
4. Person-to-Person Authentication . . . . . . . . . . . . . . . 20
5. Security Considerations . . . . . . . . . . . . . . . . . . . 21
5.1. Man-in-the-Middle Attacks . . . . . . . . . . . . . . . . 21
5.2. Bid-down Attack . . . . . . . . . . . . . . . . . . . . . 22
5.3. Ephemeral and Static Keys . . . . . . . . . . . . . . . . 23
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 25
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.1. Normative References . . . . . . . . . . . . . . . . . . . 26
8.2. Informative References . . . . . . . . . . . . . . . . . . 27
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 28
Intellectual Property and Copyright Statements . . . . . . . . . . 29
Baugher & McGrew Expires August 28, 2006 [Page 2]
Internet-Draft SDP-DH February 2006
1. Introduction: SDP Discrete Logarithm Cryptography (DLC)
RFC {sdesc} allows keys and parameters to be signaled in Session
Description Protocol (SDP) by a media-level attribute. Called
"crypto", this attribute establishes keys between endpoints and
defines "crypto suites" for SRTP [sdesc]. However, RFC {sdesc}
currently uses only symmetric cryptography and lacks a public key
mechanism such as a Diffie-Hellman (DH) key exchange. This document
adds a DH exchange to SDP to improve security in several ways.
1. It eliminates the need to trust the signaling devices (e.g. SIP
proxies).
2. It reduces or eliminates the need for public-key infrastructure,
as is needed when protecting RFC {sdesc} symmetric keys with
S/MIME [RFC3851].
3. It provides better security in the presence of forked signaling.
4. It can provide perfect forward secrecy to media keys.
To these ends, DH offers several advantages over RFC {sdesc} methods.
When SIP forking occurs[RFC3261], RFC {sdesc} can potentially reveal
the key to an untrusted party on one of the forked devices. For
example, a phone call may be forked to an executive and a
receptionist. If the SDP crypto attribute contains a symmetric key,
the receptionist is given enough information to perpetrate a passive
eavesdropping attack on the caller. In contrast, an SDP Diffie-
Hellman exchange (SDP-DH) provides a shared secret between the caller
and each of the forked endpoints. With SDP-DH, the receptionist in
our example would only know the public DH value of the caller and
would not be able to perpetrate an attack.
1.1. Attacks and Protections
To prevent attacks during forking or any SDP message exchange, RFC
{sdesc} has a stringent and challenging requirement: The SDP message
needs end-to-end security when it contains a crypto attribute on any
of its media lines. This attribute and its parameters may be secured
end-to-end by S/MIME or by an end-to-end data security protocol such
as TLS. These mechanisms are easy to provide in some situations,
such as when all of the devices that handle the signaling are within
a single trust domain. However, SIP generally does not have end-to-
end transport connections between caller and callee, but uses SIPS
for transport-level security. SIPS is a set of hop-by-hop TLS
connections. There are no verifiable guarantees about the security
at SIP hops that have access to the SIP message during forwarding.
And, lacking the end-to-end integrity protection afforded by S/MIME,
Baugher & McGrew Expires August 28, 2006 [Page 3]
Internet-Draft SDP-DH February 2006
the crypto attribute is vulnerable to both passive and active attacks
by systems in the middle. An SDP Diffie-Hellman exchange provides an
alternative to hop-by-hop transport security without requiring a
public key infrastructure or S/MIME.
When the signaling message contains a DH key, it is sufficient to
provide authentication without confidentiality on signaling traffic.
The level of trust in the devices that handle the plaintext SDP
message is reduced, since knowledge of the DH public key does not
allow those devices to perform a passive eavesdropping attack.
Certain devices in the signaling path can perform an active attack in
the absence of end-to-end authentication. An active attack can
happen when the attacker intercepts both signaling and media messages
between the media endpoints and is able to decrypt, eavesdrop, and
re-encrypt the media. However, the active attack is considerably
more difficult than a passive attack.
Several existing methods can provide complete protection against
active attacks. In cases where the signaling system is trusted to
identify an endpoint's public key, the SIP Identity service
[SIPidentity] can be used to authenticate the DH public keys. SIP
Identity authenticates the SDP message so long as the phone users
trust the SIP Identity provider. When properly authenticated by such
means, SDP-DH establishes a pair-wise secret at each endpoint, and
has no vulnerability to active attacks. When SIP Identity is
unavailable, or when it is undesirable to trust that mechanism, it is
possible to provide person-to-person authentication on the DH key
strictly between the media endpoints. This method is used by the
AT&T secure phone [Schneier], for example. In it, one person reads a
fingerprint (hash) of the shared secret and the other person checks
it against their hash. Following the process of checking a hash of
the DH shared secret, each user can cache information about the
public keys, allowing them to construct a "personal PKI" that is
analogous to a PGP key ring [Zimmermann].
Finally, SDP-DH can provide perfect forward secrecy [DVW] to the
cryptographic keys of SDP media sessions. This method protects
recorded media sessions against future disclosure of either
endpoint's private keys for ephemeral DH public keys. The media-
stream key cannot be recovered so long as the ephemeral DH keying
material that generated the secret is maintained according Section
5.6.4 of the Draft Recommendation [NIST-800-56].
Nonetheless, there are significant performance advantages to static
keys over ephemeral keys for applications that wish to trade the
benefits of perfect forward secrecy for the lower computational
overhead that comes from reusing public-keys across multiple
multimedia sessions. This memo therefore allows for both ephemeral
Baugher & McGrew Expires August 28, 2006 [Page 4]
Internet-Draft SDP-DH February 2006
and static Diffie-Hellman key management schemes. A DH public key
MAY be ephemeral or static.
To add Diffie-Hellman public keys to SDP messages, this memo
introduces a new security attribute that is called "DH", which
appears at the SDP session level. To allow SRTP to derive keys from
the DH shared secret, this document defines a new media-level
security parameter called "nonce", which carries public data for use
in generating a pair-wise secret for the SRTP master key; the public
data are salt, a nonce, optional key lifetime and optional SRTP
master key index. The DH attribute and nonce parameter provide a
framework for putting Diffie-Hellman key exchange protocols into SDP.
Definitions are provided for IETF-standard Elliptic Curve
Cryptography (ECC) [FS] and integer-based Finite Field Cryptography
(FFC) [RFC3526][RFC4306]. An example DH attribute that uses a
STAT_FFDH_Group_19 "DH suite", a DH dhkey parameter, and the media-
level nonce parameter are shown in Figure 1.
v=0
o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5
s=SDP Seminar
i=A Seminar on the session description protocol
u=http://www.example.com/seminars/sdp.pdf
e=j.doe@example.com (Jane Doe)
c=IN IP4 161.44.17.12/127
t=2873397496 2873404696
a=DH: STAT_ECDH_GROUP_19
dhkey: 2tC2U5QiHPmwUeH+yleH0Jjf5jf8kLnvlF0MN3JYEYA=
UnGgRhzbglLWHxxFb6PlmrH0WzOsz19YOJ4Fd7iZC7M=
m=video 51372 RTP/SAVP 31
a=crypto:1 AES_CM_128_HMAC_SHA1_80
nonce:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32
Figure 1: Example DH attribute and parameters.
1.2. Overview of This Document
Section 2 defines the SDP DH attribute shown in Figure 1 and it
defines public key ("dhkey") encodings, offer/answer processing, and
the SDP-DH grammar in Augmented Backus-Naur form (ABNF). Section 3
applies DH to the RFC{sdesc} media-level crypto attribute and gives
the ABNF of a new crypto parameter called "nonce" (also shown in
Figure 1) for generating media keys. The new parameter uses the
output of SDP DH for input into SRTP master key generation according
to Section 3. Section 4 defines a hash for person-to-person
authentication. The Security Considerations of Section 5 discusses
attacks and protections for DH suites, and Section 6 states the
Baugher & McGrew Expires August 28, 2006 [Page 5]
Internet-Draft SDP-DH February 2006
requirements on IANA for the SDP DH attribute and the parameters
defined herein.
1.3. Conformance Language
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 [RFC2119].
Baugher & McGrew Expires August 28, 2006 [Page 6]
Internet-Draft SDP-DH February 2006
2. The SDP DH Attribute and Parameters
The SDP DH attribute has a discrete logarithm cryptography suite of
parameters (DH suite) and an encoding of one public key. As shown in
Figure 1, DH is an SDP session-level attribute whereas crypto is at
the media level. The DH attribute applies to a multimedia session
and the crypto nonce parameter applies to a single media session.
The reason that the DH attribute operates at the SDP session level is
to allow the computationally expensive DH exchange to be used across
multiple media streams.
An SDP Offer/Answer exchange [RFC3264] SHALL be the default method of
exchanging DH parameters between endpoints that compute a shared DH
secret. SRTP key generation SHALL use the DH shared secret and
public keying material. This exchange of DH public keys and keying
material MUST be externally authenticated between the two parties.
The authentication MAY be a person-to-person procedure or MAY use SIP
Identity as described in the Security Considerations section.
The SDP DH attribute is a framework to support Diffie-Hellman key
establishment "schemes" [NIST-800-56]. This document REQUIRES one
key-establishment scheme as the basis for interoperability, however,
and that is a static, Finite Field Cryptography (FFC) scheme.
Stat_FFDH_Group_2 is the DH-suite name for the mandatory scheme.
Stat_FFDH_Group_2 uses domain parameters from the IKEv2 MODP Group 2
[RFC4306]. Implementations of this specification MUST support at
least the static FFC scheme. Note that an ephemeral FFC scheme can
be implicitly supported with a static public key that is used exactly
once. The key is more than nominally static, therefore, when it is
reused over multiple multimedia sessions from a cache of public keys
and shared secrets. Use of static keys trades perfect forward
secrecy for savings in exponentiations and user effort, particularly
when the user effort is an external person-to-person authentication
"ceremony" [WE] or a check of SIP Identity. Applications that desire
PFS MAY choose an ephemeral DH suite or MAY use a static public key
only once.
The SDP DH attribute has two parameters, a "DH suite" and "dhkey".
1. A DH suite declares the key management scheme and parameters.
2. dhkey encodes a cryptographic key for the DH suite.
SDP DH has one output, the DH shared secret.
2.1. Mandatory DLC Suite: Stat_FFCDH_Group_2
In choosing a common DH suite for maximal interoperability, there are
Baugher & McGrew Expires August 28, 2006 [Page 7]
Internet-Draft SDP-DH February 2006
trade offs in security, efficiency of computation, compactness of
signaling parameters as well as known Intellectual Property Rights
(IPR) claims. For Session Description Protocol signaling,
compactness is a compelling requirement. From this perspective, the
Elliptic Curve Cryptography Diffie-Hellman (ECC-DH) suites are
attractive. But there are known IPR claims on ECC.
The Finite Field Cryptography (FFC) DH suites are without known IPR
claims. The smallest group size acceptable to the Draft
Recommendation is 1024 bits and this is chosen as the "Mandatory" DH
suite, which is mandatory to implement but not mandatory to use. It
is mandatory to implement so as to foster interoperable
implementations that can always communicate using SDP DH. But the
cryptographic strength of the 1024-bit DH Suite (Stat_FFCDH_Group_2)
might be too weak for certain applications who MAY reject use of this
suite in SDP DH offers.
Stat_FFCDH_Group_2 is based upon the "dhStatic" scheme of Table 5 in
the Draft Recommendation [NIST-800-56].
2.1.1. IKE Group 2 Domain Parameters
The public key for Stat_FFCDH_Group_2 is a big integer that is 1024
bits in length and defined in IKEv2 [RFC4306]. The big prime integer
field IKEv2 MODP Group 2 is quoted and copied below for the
convenience of the reader. See the discussion in Appendix E of RFC
2412 for a description of how the primes were generated and
suggestions on efficient implementations [RFC2412].
"This group is assigned id 2 (two).
The prime is 2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 }.
Its hexadecimal value is:
FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 29024E08
8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD EF9519B3 CD3A431B
302B0A6D F25F1437 4FE1356D 6D51C245 E485B576 625E7EC6 F44C42E9
A637ED6B 0BFF5CB6 F406B7ED EE386BFB 5A899FA5 AE9F2411 7C4B1FE6
49286651 ECE65381 FFFFFFFF FFFFFFFF
The generator is 2."
2.1.2. Encoding of the DHkey Parameter
An example DH attribute is shown below, the STAT_FFDH_GROUP_2 DH
suite name string is followed by an example dhkey parameter.
Baugher & McGrew Expires August 28, 2006 [Page 8]
Internet-Draft SDP-DH February 2006
v=0
o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5
s=SDP Seminar
i=A Seminar on the session description protocol
u=http://www.example.com/seminars/sdp.pdf
e=j.doe@example.com (Jane Doe)
c=IN IP4 161.44.17.12/127
t=2873397496 2873404696
a=DH: STAT_FFDH_GROUP_2
dhkey:
f3kHGsXFPDWlPU7/9Vn+Elcb32j7X5xRVVbWZVN9xaTq9v0MiKCovTwVA6K/17SW0
P3BrY3lGmkhJHRbmuqiurPLCBDGYqUdl8HLPlqX0Jd9qYJ58ILszdSgyrjnQzrLGu
lgHoOQXeZef8SGEXY5qtaugNSg57Qxdn4e1MJQpAk=
m=video 51372 RTP/SAVP 31
a=crypto:1 AES_CM_128_HMAC_SHA1_80
nonce:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32
m=audio 49170 RTP/SAVP 0
a=crypto:1 AES_CM_128_HMAC_SHA1_32
nonce:NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32
m=application 32416 udp wb
a=orient:portrait
Figure 3: Example STAT_FFDH_Group_2 DLC Suite
An ABNF grammar for the DH attribute and dhkey parameter is given in
the Grammar Section below. Stat_FFCDH_Group_2 has a public key value
that is 172 bytes long when it is base-64 encoded. Some applications
that use SDP over User Datagram Protocol (UDP) might have a problem
with such a large field. The ECC DH suites have a much shorter
public key and are described below.
2.1.3. Computation of the Shared Secret
Computation of the shared secret value Z for this DH suite is defined
in Section 5.7.1.1 of the Draft Recommendation[NIST-800-56].
2.2. The Stat_ECDH_Group_19 DLC Suite
The Stat_ECDH_Group_19 key establishment scheme is based upon the
"Cofactor Static Unified Model" of Table 5 in the Draft
Recommendation [NIST-800-56]. This scheme uses two static keys, one
at the offerer and one at the answerer but no ephemeral keys.
"Stat_ECDH_Group_19_SHA256" is an alternative designation since SHA-
256 [FIPS-180-2] is the hash function used by this DH Suite. But
SHA-256 is mandated for this key establishment scheme by Table 2 of
the Draft Recommendation, and so "SHA256" is redundant. Furthermore,
the "Group_19" in the DH Suite name is based on IKE Group 19, which
Baugher & McGrew Expires August 28, 2006 [Page 9]
Internet-Draft SDP-DH February 2006
is an Elliptic Curve Diffie-Hellman based on the nineteenth IKE
group.
2.2.1. IKE Group 19 Domain Parameters
Stat_ECDH_Group_19 SHALL use the IKE Group 19 domain parameters. For
the convenience of reader, the definition of the nineteenth IKE group
is reproduced below [FS].
"The curve is based on the integers modulo the generalized Mersenne
prime p given by
p = 2^(256)-2^(224)+2^(192)+2^(96)-1.
The equation for the elliptic curve is: y^2 = x^3 - 3 x + b.
Field size: 256
Group Prime/Irreducible Polynomial:
FFFFFFFF 00000001 00000000 00000000
00000000 FFFFFFFF FFFFFFFF FFFFFFFF
Group Curve b:
5AC635D8 AA3A93E7 B3EBBD55 769886BC
651D06B0 CC53B0F6 3BCE3C3E 27D2604B
Group order:
FFFFFFFF 00000000 FFFFFFFF FFFFFFFF
BCE6FAAD A7179E84 F3B9CAC2 FC632551
The group was chosen verifiably at random using SHA-1 as specified in
IEEE P1363 [IEEE-1363] from the seed:
C49D3608 86E70493 6A6678E1 139D26B7 819F7E90
The generator for this group is given by g=(gx,gy) where
gx: 6B17D1F2 E12C4247 F8BCE6E5 63A440F2
77037D81 2DEB33A0 F4A13945 D898C296
gy: 4FE342E2 FE1A7F9B 8EE7EB4A 7C0F9E16
2BCE3357 6B315ECE CBB64068 37BF51F5"
2.2.2. DHkey Parameter Encoding
The public key for Stat_ECDH_Group_19 is a point on an elliptic
curve, which is encoded in the SDP DH "dhkey" parameter. An example
of a Stat_ECDH_Group_19 DH suite is shown in Figure 1.
Baugher & McGrew Expires August 28, 2006 [Page 10]
Internet-Draft SDP-DH February 2006
The data in the dhkey parameter of Figure 1 is a point with an x
coordinate (gx) followed by a y coordinate (gy) and encoded in base
64. This is given in Augmented Backus-Naur form in the grammar
section of this document. The dhkey value is shown in Figure 1 as a
pair of base-64 encoded values that follow "dhkey:". These sum to 88
bytes in length. Also shown in the figure is a new parameter for
crypto called "nonce", which uses the DH secret in deriving an SRTP
master key. DHkey is defined in a later section.
2.2.3. Computation of the Shared Secret
Computation of the Diffie-Hellman shared secret, Z, for this DH suite
is defined in Section 5.7.1.2 of the Draft Recommendation
[NIST-800-56].
2.3. The Ephem_ECDH_Group_19 DLC Suite
The Ephem_ECDH_Group_19 key establishment scheme is based upon the
Cofactor Ephemeral Unified Model of Table 5 in the Draft
Recommendation [NIST-800-56]. This scheme uses two ephemeral keys
and no static keys.
2.3.1. IKE Group 19 Domain Parameters
Ephem_ECDH_Group_19 SHALL use the IKE Group 19 domain parameters.
For the convenience of reader, the definition of the nineteenth IKE
group is reproduced in the Stat_ECDH_Group_19 section above.
2.3.2. DHkey Parameter Encoding
The public key for Ephem_ECDH_Group_19 is a point on an elliptic
curve, which is encoded in an SDP DH parameter called "dhkey". The
dhkey parameter encoding for Ephem_ECDH_Group_19 is identical to that
of the Stat_ECDH_Group_19 given above. The Ephem_ECDH_Group_19
grammar is given in the Grammar section below.
2.3.3. Computation of the Shared Secret
Computation of the Diffie-Hellman shared secret, Z, for this DH suite
is defined in Section 5.7.1.2 of the Draft Recommendation
[NIST-800-56].
2.4. The Stat_FFDH_Group_14 DLC Suite
This section defines a Finite Field Cryptography (FFC) exchange,
"Stat_FFDH_Group_14." This key management scheme uses (only) pair-
wise static keys and no ephemeral keys. Stat_FFDH_Group_14 is based
upon the "dhStatic" scheme of Table 5 in the Draft Recommendation
Baugher & McGrew Expires August 28, 2006 [Page 11]
Internet-Draft SDP-DH February 2006
[NIST-800-56] as well as X.9 and IEEE P1363 [IEEE1363]. This memo
defines Stat_FFDH_Group_14 to use the IKE Group 14 domain parameters
[RFC3526].
2.4.1. IKE Group 14 Domain Parameters
For the convenience of the reader, the IKE Group 14 definition is
copied from the standard [RFC3526] below.
"This group is assigned id 14. This prime is:
2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 }
Its hexadecimal value is:
FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE45B3D
C2007CB8 A163BF05 98DA4836 1C55D39A 69163FA8 FD24CF5F
83655D23 DCA3AD96 1C62F356 208552BB 9ED52907 7096966D
670C354E 4ABC9804 F1746C08 CA18217C 32905E46 2E36CE3B
E39E772C 180E8603 9B2783A2 EC07A28F B5C55DF0 6F4C52C9
DE2BCBF6 95581718 3995497C EA956AE5 15D22618 98FA0510
15728E5A 8AACAA68 FFFFFFFF FFFFFFFF
The generator is: 2."
2.4.2. DHkey Parameter Encoding
The dhkey for a Stat_FFDH_Group_14 public key is a 2048 byte integer
that is base-64 encoded as shown in the example below.
dhkey: ///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mO
xObIlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0T
ELppjftawv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjv
wWY2kg2HFXTmmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1T
kq8mATxdGwIyhghfDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3
ivL9pVYFxg5lUl86pVq5RXSJhiY+gUQFXKOWoqsqmj//////////w==
An ABNF grammar for Stat_FFDH_Group_14 is given in the Grammar
section of this document.
2.4.3. Computation of the Shared Secret
Computation of the Diffie-Hellman shared secret, Z, for this DH suite
is defined in Section 5.7.1.1 of the Draft Recommendation
[NIST-800-56].
Baugher & McGrew Expires August 28, 2006 [Page 12]
Internet-Draft SDP-DH February 2006
2.5. The Ephem_FFDH_Group_14 DLC Suite
This section defines a Finite Field Cryptography (FFC) exchange,
"Ephem_FFDH_Group_14." This key management scheme uses (only) pair-
wise ephemeral keys and no static keys. Ephem_FFDH_Group_14 is based
upon the "dhEphem" of the Draft Recommendation [NIST-800-56] as well
as X.9 and IEEE P1363 [IEEE1363].
2.5.1. IKE Group 14 Domain Parameters
Ephem_FFDH_Group_14 SHALL use the IKE Group 14 domain parameters
[RFC3526]. For the convenience of the reader, the IKE Group 14
definition is given in the Stat_FFDH_Group_14 section above.
2.5.2. DHkey Parameter Encoding
The dhkey for an Ephem_FFDH_Group_14 public key is a 2048 byte
integer that is base-64 encoded. The encoding for
Ephem_FFDH_Group_14 encoding is identical to that of
Stat_FFDH_Group_14 and is shown in the section above. An ABNF
grammar for Ephem_FFDH_Group_14 is given in the Grammar section of
this document.
2.5.3. Computation of the Shared Secret
Computation of the Diffie-Hellman shared secret, Z, for this DH suite
is defined in Section 5.7.1.1 of the Draft Recommendation
[NIST-800-56].
2.6. ABNF Grammar for DH Attribute and DLC_Suites
Baugher & McGrew Expires August 28, 2006 [Page 13]
Internet-Draft SDP-DH February 2006
"a=DH:" [tag] dlc-suite
tag = *WSP 1*9DIGIT
dlc-suite = 1*WSP ( Stat_FFDH_Group_2 /
Stat_ECDH_Group_19 /
Stat_FFDH_Group_14 /
Ephem_ECDH_Group_19 /
Ephem_FFDH_Group_14 )
Stat_FFDH_Group_2 = "Stat_ECDH_Group_2" 1*LWSP "dhkey:" GexpX
Stat_ECDH_Group_19 = "Stat_ECDH_Group_19" 1*LWSP "dhkey:" gx gy
Stat_FFDH_Group_14 = "Stat_FFDH_Group_14" 1*LWSP "dhkey:" GexpW
Ephem_ECDH_Group_19 = "Ephem_ECDH_Group_19" 1*LWSP "dhkey:" gx gy
Ephem_FFDH_Group_14 = "Ephem_FFDH_Group_14" 1*LWSP "dhkey:" GexpW
gx = *LWSP 44(BASE64)
gy = 1*LWSP 44(BASE64)
GexpX = 172( *LWSP BASE64 )
GexpW = 344( *LWSP BASE64 )
BASE64 = %x21-3A / %x3C-7E ; base-64 character set
NOTES:
1. Gexp* is G^o in the offer where o is the offerer's private key.
2. Gexp* is G^a in the answer where a is the answerer's private key.
3. WSP, LWSP, ALPHA, DIGIT and ABNF grammar are from RFC 4234.
Figure 7: SDP DH Grammar
2.7. Offer/Answer Processing
An Offerer who uses a DH attribute in an SDP message MUST number that
attribute if it is one offer among multiple offers. An Offerer
SHOULD NOT number the DH attribute if there is only one offer but an
answerer MUST accept a single offer that has a tag and use that tag
in a successful reply. Each numbered offer MUST have a unique tag
from the other SDP DH offers. Each offer MUST differ in at least one
other parameter from the other offers.
Upon receipt of a single offer, the answerer SHALL accept or reject
the message according to the answerer's security policy for
processing DH. An implementation's security policy MAY allow ECDH or
not, for example. Or a policy MAY choose to use only ephemeral keys.
An answerer that does not recognize an SDP DH attribute will of
course ignore it [RFC2327], and there will be no DH attribute in the
answer. In this case, the offerer MUST abort the offer/answer
exchange. When it cannot accept an offer, the answerer MAY return a
Baugher & McGrew Expires August 28, 2006 [Page 14]
Internet-Draft SDP-DH February 2006
DH suite that it will accept as a hint in its answer. The offerer
MAY choose to re-run the SDP offer/answer exchange if the alternative
DH suite is within its security policy but MUST NOT re-run the
exchange if the answerer's DH suite "bids down" its minimum
acceptable policy (see the "Security Considerations" below).
Upon receipt of multiple offers, the answerer SHALL accept one offer
according to its security policy or it MUST reject all offers. A
selected offer MUST have the same tag value in the answerer's DH
attribute as it does on the offerer's. The answerer MUST use the
same DH suite as the selected offer and MUST provide its public key
in the dhkey parameter. When it selects an offer and answers with
its public key, the answerer SHALL compute the Diffie-Hellman secret.
This secret SHALL be used for nonce processing as defined below.
2.8. Adding New DH Suites
Of the more than one dozen key-management schemes found in the draft
document, "Recommendations for Pair-Wise Key Establishment Schemes
Using Discrete Logarithm Cryptography" [NIST-800-56], this memo
selects several for SDP. The selection was made on the bases of
general usefulness to SDP applications and consideration of known
patent encumbrances. Nonetheless, it is likely that new DH suites
might be needed and these can be added in the future through a
published RFC. The RFC SHOULD reference NIST 800-56 and assign a DH
suite name to identify its scheme including whether it is static or
ephemeral, Finite Field or Elliptic Curve Cryptography, and give the
domain parameter set.
All DH suites in this document use single key-pair key agreement.
Future DH suites MAY add two-pair agreement schemes as found in Table
5 of the Draft Recommendation[NIST-800-56].
Baugher & McGrew Expires August 28, 2006 [Page 15]
Internet-Draft SDP-DH February 2006
3. The "nonce" DH Parameter
The "nonce" parameter carries input values that an endpoint uses to
derive a shared secret with the other endpoint. In order to use a
secret key derived from the DH exchange to protect a particular media
line, that media line SHALL contain a "nonce" parameter, which is
defined in this section. RFC {sdesc} defines the "inline" parameter
to convey a cryptographic key for a media stream. The nonce
parameter is used in place of the inline parameter. The two
parameters MUST NOT appear in the same media line. The inline
parameter carries secret information when it encodes an SRTP master
key and salt along with the optional lifetime and master key
indicator (MKI) values. The nonce carried by the nonce parameter is
passed to the DH Key Derivation Function (Section 3.2), along with
the DH public key from the dhkey parameter. The format of the dhkey
parameter is shown below.
nonce: salt || nonce ["|" lifetime] ["|" MKI]
The nonce parameter is structurally identical to inline in its
concatenated values, though it is semantically different. (Thus, the
routines that generate an inline parameter for an offer or an answer
can serve with little modification to produce a nonce offer or
answer.) Like the inline parameter, the nonce parameter includes two
random values for an SRTP key, a 14-byte "salt" and a nonce that is
16 bytes or longer depending on the SRTP crypto suite. However, the
nonce from the nonce parameter is not used directly, but instead is
passed to the key derivation function; the output of that function
provides the key that is associated with the salt. The inline
parameter also encodes the optional lifetime and MKI; the definition
and use of these fields is as defined by RFC {sdesc}. The ABNF for
nonce is given next and followed by the key derivation procedure and
offer/answer processing. Note that the nonce parameter MAY be
public; there is no requirement to keep it confidential.
3.1. Changes to RFC {sdesc} "crypto" Grammar
The following change is made to the RFC {sdesc} crypto attribute to
add the new parameter, "nonce". In the extended crypto attribute
grammar shown below, nonce is an alternative (a new key-method-ext)
to the inline parameter [sdesc].
Baugher & McGrew Expires August 28, 2006 [Page 16]
Internet-Draft SDP-DH February 2006
"a=crypto:" tag 1*WSP crypto-suite 1*WSP key-params
*(1*WSP session-param)
tag = 1*9DIGIT
crypto-suite = 1*(ALPHA / DIGIT / "_")
key-params = key-param *(";" key-param)
key-param = key-method ":" key-info
key-method = "inline" / "nonce" / key-method-ext
key-method-ext = 1*(ALPHA / DIGIT / "_")
key-info = %x21-3A / %x3C-7E ; visible (printing) characters
; except semi-colon
Figure 3.1-1: Extension to RFC {sdesc} key-method
Figure 3.1-1 is the general syntax for an RFC {sdesc} a=crypto line
that is extended with a new key method called "nonce." According to
RFC {sdesc}, crypto is specialized according to SDP transport; only
the RTP/SAVP (i.e. SRTP) transport has a crypto attribute defined in
RFC {sdesc}. This definition is shown below with its nonce
extension.
key-method = srtp-key-method
key-info = srtp-key-info
srtp-key-method = "inline" / "nonce" ; nonce key is nonce
srtp-key-info = key-salt ["|" lifetime] ["|" mki]
key-salt = 1*(base64) ; binary key and salt values
; concatenated together, and then
; base64 encoded [section 6.8 of
; RFC2046]
lifetime = ["2^"] 1*(DIGIT)
mki = mki-value ":" mki-length
mki-value = 1*DIGIT
mki-length = 1*3DIGIT ; range 1..128.
Figure 3.1-2: Extension to RFC {sdesc} srtp-key-method
Figure 3.1-2 is the RTP/SAVP (SRTP) syntax for a "nonce" method. The
"key-salt" in nonce is interpreted to be a 16-byte nonce and SRTP
salt value. The salt definition is not changed and is a 14-byte
binary value. Both nonce and key are base-64 encoded. The nonce is
used in a new type of SRTP master key generation as defined below.
Baugher & McGrew Expires August 28, 2006 [Page 17]
Internet-Draft SDP-DH February 2006
3.2. Generating SRTP Master Keys from Public Information
The key that results from the SDP DH key derivation function is used
as the SRTP master key. The master salt, key lifetime and key
indicator for an SRTP master key are taken from the salt field of the
"nonce" parameter. These are shown in Figure 3.1-2. DH key
derivation is invoked once for every SRTP master key that needs to be
generated, which is once for every media-level SRTP crypto attribute.
Thus, an SRTP master key is a special case of DH media-session key
derivation, which is described below.
3.3. Media-session Key Derivation
The DH suites of this document use the "Concatenation Key Derivation
Function" of Section 5.8.1 of the Draft Recommendation [NIST-800-56].
This key derivation function SHALL be used to derive SRTP master keys
prior to SRTP key derivation, which is unchanged by this memo. The
function is shown below with substitution of relevant parameters.
SHA-256(counter, Z, OtherInput),
where the values of Z and OtherInput are defined as follows.
counter: a 32-bit long string containing the value
00000001 (hexadecimal)
Z: Shared secret computed from the two DH pubkey values
OtherInput: contextID || keydatalen || pubkeymat
contextID: set to "offer"||"answer" where || is concatenation
keydatalen: length of SRTP master key, defined by SRTP Crypto
Suite
pubkeymat: the entire pubkeymat parameter, as an octet string
For larger key sizes, please refer to [NIST-800-56].
The Draft Recommendation defines a contextID and "shared data" that
depend on the particular protocol implementation. As defined here,
the SDP implementation uses the nonce as shared data. The nonce is
carried in the media-level nonce parameter as defined above.
According to the Draft Recommendation, the contextID is the
concatenation of endpoint identifiers that are also protocol
specific. As defined here, the SDP implementation uses "offer" and
"answer" for endpoint identifiers, which are fixed length and
concatenated. The shared secret Z is the DH secret that is computed
according to the Draft Recommendation. The final protocol-dependent
parameter is the key derivation function (kdf), which SHALL be SHA-
256. The processing of these values is given in the Draft
Recommendation but copied below for the convenience of the reader.
Baugher & McGrew Expires August 28, 2006 [Page 18]
Internet-Draft SDP-DH February 2006
"Process:
1. reps = upperbound(keydatalen / hashlen).
2. If reps > (232 ?1), then ABORT: output "Invalid" and stop.
3. Initialize a 32-bit, big-endian bit string counter as 0000000116.
4. For i = 1 to reps by 1, do the following:
4.1 Compute Hashi = H( counter || Z || contextID || nonce ).
4.2 Increment counter (modulo 232), treating it as an unsigned
32-bit integer.
5. Let Hhash be set to Hashreps if (keydatalen / hashlen) is an
integer; otherwise, let Hhash be set to the
(keydatalen mod hashlen) leftmost bits of Hashreps.
6. Set DerivedKeyingMaterial =
Hash1 || Hash2 || ... || Hashreps-1 || Hhash.
Output:
The bit string DerivedKeyingMaterial of length keydatalen bits (or
"Invalid"). Any scheme attempting to call this key derivation
function with keydatalen greater than or equal to hashlen*(2^32 - 1)
shall output "Invalid" and stop without outputting
DerivedKeyingMaterial.
Note:
The hashlen is the length in bits of the output block of the hash
function, which is a 256-bit SHA-256 message digest."
3.4. Offer/Answer Processing
Use of the nonce parameter follows the Offer/Answer processing rules
of RFC {sdesc} with one additional dependency: The answerer MUST
reject any media-level crypto attribute with a nonce parameter if
there is no session-level Diffie-Hellman secret. If there were no DH
attribute in the SDP message and no accepted DH attribute in the
answer, then there can be no Diffie-Hellman secret. Thus, successful
processing of nonce is dependent upon the successful processing of
the SDP DH attribute.
The answerer MUST use a nonce parameter in the answer for each RTP/
SAVP media stream that it will source.
Baugher & McGrew Expires August 28, 2006 [Page 19]
Internet-Draft SDP-DH February 2006
4. Person-to-Person Authentication
Diffie-Hellman exchanges MUST be externally authenticated to prevent
active attacks in the middle. For phone calls between persons, a
strong form of external authentication is for each user to validate a
number that is derived from the shared secret. Both users therefore
need a common means to arrive at the same output. The default method
of this document is to use the DH shared secret as an HMAC key and
the contextID concatenated with values of the DH Suite chosen in the
answer.
FINGERPRINT = HMAC-SHA1 ( Z, "offeranswer" || DH_Suite
|| Offer_dhkey
|| Answer_dhkey )
DH_Suite = ( "Stat_FFDH_Group_2" /
"Ephem_ECDH_Group_19" /
"Stat_ECDH_Grou_19" /
"Stat_FFDH_Group_14" /
"Ephem_FFDH_Group_14" )
Notes:
1. Z is the shared Diffie-Hellman secret
2. FINGERPRINT truncation and phonetic alphabet are implementation-
dependent.
Baugher & McGrew Expires August 28, 2006 [Page 20]
Internet-Draft SDP-DH February 2006
5. Security Considerations
This document improves the security of signaling protocols that use
Session Description Protocol (SDP) for SRTP cryptographic context
establishment - and potentially other SDP media "transports" as well.
As described in the introduction, the public key exchanges establish
a shared secret between endpoints using public values in the SDP
message even in the absence of integrity protection. There are
vulnerabilities to this method, however, that REQUIRE use of external
authentication and special consideration for bid-down attacks when
the SDP message contains multiple DH and crypto offers and is not
integrity-protected. Each are considered below.
5.1. Man-in-the-Middle Attacks
A Diffie-Hellman exchange that is not externally authenticated is
vulnerable to a man-in-the-middle attack. In the context of an SDP
offer/answer exchange, the threat is that an attacker in control of
the signaling channel will substitute its DH public key for that of
the offerer and forward it to the answerer. Upon receipt of the
answer, the attacker will substitute its DH public key for that of
the answerer and forward it on to the offerer. This attack succeeds
in obtaining media data sent between the two endpoints when the
attacker is also in the middle of the media channel: With its two DH
secrets, the attacker has a shared secret with the answerer, another
shared secret with the offerer, and can decrypt each packet from one
and re-encrypt it for the other. Neither the offerer or answerer can
necessarily detect this attack.
There are three defenses to the "man-in-the-middle" attack. One
defense is a "person-to-person authentication procedure" where one
user reads a hash of the DH secret to the other user who verifies
that they have the same truncated value (as done in the AT&T Model
3600 Telephone Security Device [Schneier]). This procedure reveals a
man-in-the-middle attack because each truncated hash will be
different when two DH secrets are managed by the man-in-the-middle.
By assumption, a man-in-the-middle cannot force the hashes of its
distinct keys with each endpoint to match, nor can the attacker
impersonate the voice of either side well enough to substitute the
correct values over the phone. Manual and somewhat laborious,
person-to-person authentication needs to be done only once to admit a
static key onto the key ring so the procedure need not be repeated
for each phone call. This procedure is secure and does not require
pre-existing infrastructure between the calling and called parties.
This procedure will only work, however, when there are people in
communication over the telephone. For machine-to-machine or human-
to-machine sessions, there needs to be a pre-existing relationship
either from a previous run of person-to-person authentication or with
Baugher & McGrew Expires August 28, 2006 [Page 21]
Internet-Draft SDP-DH February 2006
a common, trusted third party.
The second defense against a man-in-the-middle attack uses a pre-
existing relationship between each person and their service provider,
who attests to the fact that the caller is authorized to use the
"from" address in the SIP signaling message that encapsulates the
SDP. This is the "SIP Identity" solution, which establishes that the
SIP "from" address is not forged. The service provider will use its
private key to integrity-protect the SIP message and to speak on
behalf of the domain from which the message originates. In this
case, the user MUST trust the service provider to not alter the DH
public key that the user has placed in the message. The user
therefore trusts the service provider to not launch a man-in-the-
middle attack just as the customer of a third-party certificate
authority trusts that authority.
If there exists a third party certificate authority that each
endpoint trusts to correctly identify the other endpoint, then this
method can serve to authenticate each endpoint to the other and
prevent a man-in-the-middle attack, but recent experience has shown
that no such authority exists for any-to-any authorization
applications such as telephony. If such a third party did exist,
then the endpoint implicitly trusts the third party to not launch a
man-in-the-middle's attack.
Whenever a third party or service provider is trusted to correctly
identify the source domain of an endpoint, this external
authentication technique can also use person-to-person authentication
as a failsafe procedure especially in cases where there is no
integrity protection of the SDP message.
5.2. Bid-down Attack
There is a case where integrity protection of the SDP message could
thwart an attack: When multiple offers are contained in the SDP
message, an attacker in control of the signaling channel might alter
the message to always use the weakest DH-suite offer. The use of
multiple offers serves to match security policies between the
endpoints and is a convenience for periods when a transition from one
DH suite to another. An example is the current transition from SHA-1
to SHA-256 hashing for certain security applications. It is a matter
of security policy, however, that such a "bid-down attack" not bid
down the security below a minimum threshold. In any case, it is
RECOMMENDED that answers that are lower than the first (preferred)
offer be logged and available to any human user.
Baugher & McGrew Expires August 28, 2006 [Page 22]
Internet-Draft SDP-DH February 2006
5.3. Ephemeral and Static Keys
Certain applications require perfect forward secrecy (PFS), which is
a property of session keys that are generated using an ephemeral
Diffie-Hellman secret. When the DH public keys and the derived DH
secret are ephemeral, they are destroyed (zeroed) immediately after
use along with all intermediate results. Thus, the secret used to
generate the session keys is destroyed even before any session key is
used. For ephemeral DH suites, an attacker gains no advantage by
recording all the media streams in hope of stealing the private key
of one of the communicating parties. The ephemeral secret and all
intermediate computational results MUST be destroyed immediately
after they are used [NIST-800-56].
Static DH suites lack the PFS property since they exist after the
session terminates. Although a static key that is used for only a
single multimedia session might be considered ephemeral, the fact
that the keys MUST be destroyed immediately after use is not signaled
between the two parties. Although one endpoint might treat its
static key as an ephemeral key, there is no guarantee that the other
party will do the same.
When the parties desire PFS for a multimedia session, they MUST use
an ephemeral DH key. All ephemeral keying materials MUST NOT be
cached, written to a file, or maintained following their use in
generating session keys. Once used, any and all storage locations of
keys and intermediate results MUST be set to zeros. This is the
opposite of the recommended procedure for static keys: An
implementation SHOULD cache static keys when system resources are
available and for a period of time determined by policy.
Baugher & McGrew Expires August 28, 2006 [Page 23]
Internet-Draft SDP-DH February 2006
6. IANA Considerations
IANA is requested to register a new SDP session-level attribute
("att-field" ) named "DH". "Static_FFDH_Group_2,
"Static_ECDH_Group_19", "Ephem_ECDH_Group_19", Statid_FFDH_Group_14",
"Ephem_FFDH_Group_14", and "dhkey" are DH parameter names.
IANA is further requested to register a new SDP media level att-field
for crypto named "nonce".
Baugher & McGrew Expires August 28, 2006 [Page 24]
Internet-Draft SDP-DH February 2006
7. Acknowledgements
The authors thank Cullen Jennings and Flemming Andreasen for their
ideas, suggestions, and review.
Baugher & McGrew Expires August 28, 2006 [Page 25]
Internet-Draft SDP-DH February 2006
8. References
8.1. Normative References
[FIPS-180-2]
"Secure Hash Standard (http://csrc.nist.gov/publications/
fips/fips180-2/fips180-2withchangenotice.pdf)",
August 2002.
[FS] Fu, D. and J. Solinas, "ECP Groups for IKE, Work in
Progress", 2004.
[NIST-800-56]
Barker, E., Johnson, D., and M. Smid, "Recommendation for
Pair-Wise Key Establishment Schemes Using Discrete
Logarithm Cryptography, NIST Special Publication 800-56",
July 2005.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2327] Handley, M. and V. Jacobson, "SDP: Session Description
Protocol", RFC 2327, April 1998.
[RFC3261] 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.
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
with Session Description Protocol (SDP)", RFC 3264,
June 2002.
[RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential (MODP)
Diffie-Hellman groups for Internet Key Exchange (IKE)",
RFC 3526, May 2003.
[RFC4234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 4234, October 2005.
[RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
RFC 4306, December 2005.
[SIPidentity]
Peterson, J. and C. Jennings, "Enhancements for
Authenticated Identity Management in the Session
Initiation Protocol (SIP)", 2005.
Baugher & McGrew Expires August 28, 2006 [Page 26]
Internet-Draft SDP-DH February 2006
[sdesc] Andreasen, F., Baugher, M., and D. Wing, "SDP Security
Descriptions for Media Streams, IETF Work in Progress,
2006", 2006.
8.2. Informative References
[DVW] Diffie, W., van Oorschot, P., and M. Wiener,
""Authentication and authenticated key exchanges,"
Designs, Codes, and Cryptography, vol. 2, no. 2, pp. 107--
125, 199", 1992, <Diffie, van Oorschot, Wiener>.
[IEEE1363]
"IEEE P1363, Standard Specifications for Public Key
Cryptography, Institute of Electrical and Electronics
Engineers", 2004.
[RFC2412] Orman, H., "The OAKLEY Key Determination Protocol",
RFC 2412, November 1998.
[RFC3156] Elkins, M., Del Torto, D., Levien, R., and T. Roessler,
"MIME Security with OpenPGP", RFC 3156, August 2001.
[RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
Norrman, "The Secure Real-time Transport Protocol (SRTP)",
RFC 3711, March 2004.
[RFC3851] Ramsdell, B., "Secure/Multipurpose Internet Mail
Extensions (S/MIME) Version 3.1 Message Specification",
RFC 3851, July 2004.
[RS] Raymond, J-F. and A. Stiglic, "Security Issues in the
Diffie-Hellman Key Agreement Protocol
(http://crypto.cs.mcgill.ca/~stiglic/Papers/dhfull.pdf)",
2005.
[SEC1] "SEC1: Elliptic Curve Cryptography, Standards for
Efficient Cryptogrphy, Certicom Corp., 1999", April 2003.
[Schneier]
Schneier, B., "Applied Cryptography", 1996.
[WE] Ellison, C. and J. Walker, "UPnP(TM) Security Ceremonies",
October 2003.
[Zimmermann]
"Zimmermann, Philip, The Official PGP User's Guide, The
MIT Press, 1995 ISBN 0-262-74017-6 (Out of Print)", 2005.
Baugher & McGrew Expires August 28, 2006 [Page 27]
Internet-Draft SDP-DH February 2006
Authors' Addresses
Mark Baugher
Cisco Systems, Inc.
800 East Tasman Drive
San Jose, CA 95164
US
Phone: (503) 245-4543
Email: mbaugher@cisco.com
David A. McGrew
Cisco Systems, Inc.
800 East Tasman Drive
San Jose, CA 95164
US
Phone: (301) 349-5815
Email: mcgrew@cisco.com
Baugher & McGrew Expires August 28, 2006 [Page 28]
Internet-Draft SDP-DH February 2006
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.
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.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Baugher & McGrew Expires August 28, 2006 [Page 29]
| PAFTECH AB 2003-2026 | 2026-04-23 05:02:02 |