mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-03 00:00:24 -04:00
doc: Removed the standards directory
This collection of Internet standards and drafts hadn't been updated for a long time and the documents are readily available on the Internet anyway. The strongSwan documentation page https://docs.strongswan.org/docs/5.9/features/ietf.html specifies which standards are currently supported.
This commit is contained in:
parent
2b474073d9
commit
110e8e6608
@ -1,505 +0,0 @@
|
||||
|
||||
|
||||
|
||||
Network Working Group Y. Sheffer
|
||||
Internet-Draft Check Point
|
||||
Intended status: Informational July 6, 2008
|
||||
Expires: January 7, 2009
|
||||
|
||||
|
||||
Using EAP-GTC for Simple User Authentication in IKEv2
|
||||
draft-sheffer-ikev2-gtc-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 January 7, 2009.
|
||||
|
||||
Abstract
|
||||
|
||||
Despite many years of effort, simple username-password authentication
|
||||
is still prevalent. In many cases a password is the only credential
|
||||
available to the end user. IKEv2 uses EAP as a sub-protocol for user
|
||||
authentication. This provides a well-specified and extensible
|
||||
architecture. To this day EAP does not provide a simple password-
|
||||
based authentication method. The only existing password
|
||||
authentication methods either require the peer to know the password
|
||||
in advance (EAP-MD5), or are needlessly complex when used within
|
||||
IKEv2 (e.g. PEAP). This document codifies the common practice of
|
||||
using EAP-GTC for this type of authentication, with the goal of
|
||||
achieving maximum interoperability. The various security issues are
|
||||
extensively analyzed.
|
||||
|
||||
|
||||
|
||||
Sheffer Expires January 7, 2009 [Page 1]
|
||||
|
||||
Internet-Draft EAP-GTC in IKEv2 July 2008
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
3. Alternatives to EAP-GTC in IKEv2 . . . . . . . . . . . . . . . 4
|
||||
3.1. Non-password credentials . . . . . . . . . . . . . . . . . 4
|
||||
3.2. Using the IKE preshared secret . . . . . . . . . . . . . . 4
|
||||
3.3. EAP-MD5 , EAP-MSCHAPv2 and mutual authentication
|
||||
schemes . . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
4. Using EAP-GTC in IKE: Details . . . . . . . . . . . . . . . . . 5
|
||||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
|
||||
6.1. Key generation and MITM protection . . . . . . . . . . . . 6
|
||||
6.2. Protection of credentials between the IKE gateway and
|
||||
the AAA server . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
6.3. Server authentication . . . . . . . . . . . . . . . . . . . 6
|
||||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
8.1. Normative References . . . . . . . . . . . . . . . . . . . 7
|
||||
8.2. Informative References . . . . . . . . . . . . . . . . . . 7
|
||||
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . . 8
|
||||
A.1. -00 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
|
||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 8
|
||||
Intellectual Property and Copyright Statements . . . . . . . . . . 9
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Sheffer Expires January 7, 2009 [Page 2]
|
||||
|
||||
Internet-Draft EAP-GTC in IKEv2 July 2008
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
"Oh dear! It's possible that we have added EAP to IKE to support a
|
||||
case that EAP can't support." -- C. Kaufman.
|
||||
|
||||
Despite many years of effort, simple username-password authentication
|
||||
is still prevalent. In many cases a password is the only credential
|
||||
available to the end user.
|
||||
|
||||
IKEv2 [RFC4306] uses the Extensible Authentication Protocol (EAP) as
|
||||
a sub-protocol for user authentication. This provides a well-
|
||||
specified and extensible architecture and enables useful capabilities
|
||||
like SIM authentication. Unfortunately, for a number of reasons EAP
|
||||
still does not provide a simple password-based authentication method.
|
||||
The only existing password authentication methods either require the
|
||||
peer to know the password in advance (EAP-MD5), or are needlessly
|
||||
complex when used within IKEv2 (e.g. PEAP).
|
||||
|
||||
Technically, the IKE preshared secret authentication mode can be used
|
||||
for password authentication. In fact even the IKEv2 RFC winks at
|
||||
this practice. But this use jeopardizes the protocol's security and
|
||||
should clearly be avoided (more details below).
|
||||
|
||||
EAP is used in IKEv2 at a stage when the remote access gateway has
|
||||
already been authenticated. At this point the user has a high enough
|
||||
level of trust to send his or her password to the gateway. Such an
|
||||
exchange is enabled by the EAP Generic Token Card (GTC) method, which
|
||||
is a simple text transport between the two EAP peers. To quote
|
||||
[RFC3748]:
|
||||
|
||||
The EAP GTC method is intended for use with the Token Cards
|
||||
supporting challenge/response authentication and MUST NOT be used
|
||||
to provide support for cleartext passwords in the absence of a
|
||||
protected tunnel with server authentication.
|
||||
|
||||
IKEv2 does indeed provide "a protected tunnel with server
|
||||
authentication". The current document updates [RFC3748] by making an
|
||||
exception and allowing the use of GTC to carry secret credentials, in
|
||||
this specific situation. Section 6 further elaborates on the
|
||||
security properties of this solution.
|
||||
|
||||
Other protocols provide a similar protected tunnel, for example TLS-
|
||||
EAP, described in [I-D.nir-tls-eap]. These protocols however are out
|
||||
of scope for this document.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Sheffer Expires January 7, 2009 [Page 3]
|
||||
|
||||
Internet-Draft EAP-GTC in IKEv2 July 2008
|
||||
|
||||
|
||||
2. Terminology
|
||||
|
||||
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 [RFC2119].
|
||||
|
||||
|
||||
3. Alternatives to EAP-GTC in IKEv2
|
||||
|
||||
This section presents a few of the alternatives to EAP-GTC, and
|
||||
explains why they are either insecure or impractical given today's
|
||||
common identity management infrastructure.
|
||||
|
||||
3.1. Non-password credentials
|
||||
|
||||
Certificate-based authentication, especially when combined with
|
||||
hardware protection (e.g. a hardware token), can be deployed in a
|
||||
more secure manner than the form of password authentication which we
|
||||
discuss. However, due to a host of issues to do with cost,
|
||||
inconvenience and reliability this solution has not gained wide
|
||||
market acceptance over the last 10 years.
|
||||
|
||||
3.2. Using the IKE preshared secret
|
||||
|
||||
Sec. 2.15 of RFC 4306 points out that the generation of the IKE
|
||||
preshared secret from a weak password is insecure. Such use is
|
||||
vulnerable to off line password guessing by an active attacker. All
|
||||
the attacker needs to do is respond correctly to the first IKE_INIT
|
||||
message, and then record the third IKE message. This is then
|
||||
followed by a dictionary attack to obtain the password.
|
||||
|
||||
3.3. EAP-MD5 , EAP-MSCHAPv2 and mutual authentication schemes
|
||||
|
||||
Challenge-response schemes, like EAP-MD5 and EAP-MSCHAPv2, have a
|
||||
clear security advantage over sending the plaintext password to the
|
||||
gateway. Password-based mutual authentication schemes like SRP have
|
||||
a further advantage in that the gateway's authentication is much
|
||||
stronger than when using certificates alone, since the AAA server
|
||||
proves its knowledge of a per-client credential, and the gateway
|
||||
proves that it has been authorized by the AAA server for that
|
||||
particular client.
|
||||
|
||||
Unfortunately all of these methods also suffer from a major drawback:
|
||||
the gateway must have a priori access to the plaintext password.
|
||||
While many RADIUS servers may indeed have such access, other very
|
||||
common deployments do not provide it. One typical example is when
|
||||
the gateway directly accesses an LDAP directory (or a Microsoft
|
||||
Active Directory) to authenticate the user. The usual way to do that
|
||||
|
||||
|
||||
|
||||
Sheffer Expires January 7, 2009 [Page 4]
|
||||
|
||||
Internet-Draft EAP-GTC in IKEv2 July 2008
|
||||
|
||||
|
||||
is by issuing an LDAP Bind operation into the directory, using the
|
||||
just-received plaintext password. Often in this case it is the IKE
|
||||
gateway that terminates the EAP protocol, and it needs a way to
|
||||
obtain the raw password.
|
||||
|
||||
An additional issue with mutual authentication schemes is their heavy
|
||||
IP encumbrance, which has resulted in a scarcity of standards using
|
||||
them and a low rate of market adoption.
|
||||
|
||||
|
||||
4. Using EAP-GTC in IKE: Details
|
||||
|
||||
EAP-GTC is specified in [RFC3748], Sec. 5.6. This section is non-
|
||||
normative, and is merely an interpretation of this specification in
|
||||
the context of IKEv2.
|
||||
|
||||
Simple authentication requires a non secret identity ("user name")
|
||||
and a secret credential ("password"). Both of these are arbitrary
|
||||
Unicode strings, although implementations may impose length
|
||||
constraints.
|
||||
|
||||
In the case of EAP-GTC, the user name is conveyed in the IKE IDi
|
||||
payload. According to [RFC4718], Sec. 3.4, the user name can be
|
||||
encoded in one of two ways: as a simple user name, in which case the
|
||||
ID_KEY_ID identification type is used; or as a combination user name
|
||||
plus realm, in which case the format is a NAI [RFC4282] and the
|
||||
identification type is ID_RFC822_ADDR. In either case, the user name
|
||||
is a Unicode string encoded as UTF-8. Using the EAP Identity payload
|
||||
is redundant, and if it is used, it should be identical to the IDi
|
||||
payload.
|
||||
|
||||
EAP-GTC consists of a simple 2-message exchange. The contents of the
|
||||
Type-Data field in the Request should not be interpreted in any way,
|
||||
and should be displayed to the user. This field contains a Unicode
|
||||
string, encoded as UTF-8.
|
||||
|
||||
The password is sent in the EAP Response. The Type-Data field of the
|
||||
Response is also a Unicode string encoded as UTF-8. Note that none
|
||||
of the IDi payload, the EAP Request or the EAP Response is null-
|
||||
terminated.
|
||||
|
||||
If either or both the user name and the password are non-ASCII, they
|
||||
should be normalized by the IKE client before the IKE/EAP message is
|
||||
constructed. The normalization method is SASLprep, [RFC4013].
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Sheffer Expires January 7, 2009 [Page 5]
|
||||
|
||||
Internet-Draft EAP-GTC in IKEv2 July 2008
|
||||
|
||||
|
||||
5. IANA Considerations
|
||||
|
||||
This document does not require any action by IANA.
|
||||
|
||||
|
||||
6. Security Considerations
|
||||
|
||||
6.1. Key generation and MITM protection
|
||||
|
||||
Modern EAP methods generate a key shared between the two protocol
|
||||
peers. GTC does not (and cannot) generate such a key. RFC 4306
|
||||
mandates that:
|
||||
|
||||
EAP methods that do not establish a shared key SHOULD NOT be used,
|
||||
as they are subject to a number of man-in-the-middle attacks
|
||||
[EAPMITM] if these EAP methods are used in other protocols that do
|
||||
not use a server-authenticated tunnel.
|
||||
|
||||
However GTC must never be used in such a situation, since the client
|
||||
would be sending its credentials openly to an unauthenticated server.
|
||||
When using GTC with IKEv2, the implementation (or local
|
||||
administrators) MUST ensure that the same credentials are never used
|
||||
in such a manner.
|
||||
|
||||
6.2. Protection of credentials between the IKE gateway and the AAA
|
||||
server
|
||||
|
||||
In the proposed solution, the raw credentials are sent from the IKE
|
||||
gateway to a AAA server, typically a RADIUS server. These
|
||||
credentials and the associated messaging MUST be strongly protected.
|
||||
Some of the existing options include:
|
||||
o An IPsec tunnel between the gateway and the AAA server.
|
||||
o RADIUS over TCP with TLS, [I-D.winter-radsec].
|
||||
o RADIUS over UDP with DTLS, [I-D.dekok-radext-dtls] (expired).
|
||||
The legacy RADIUS security mechanism (Sec. 5.2 of [RFC2865]) is
|
||||
considered weak and SHOULD NOT be used when better alternatives are
|
||||
available.
|
||||
|
||||
6.3. Server authentication
|
||||
|
||||
The client may only send its cleartext credentials after it has
|
||||
positively authenticated the server. This authentication is
|
||||
specified, albeit rather vaguely, in [RFC4306] and is out of scope of
|
||||
the current document. Unauthenticated (BTNS) derivatives of IKE MUST
|
||||
NOT be used with EAP-GTC.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Sheffer Expires January 7, 2009 [Page 6]
|
||||
|
||||
Internet-Draft EAP-GTC in IKEv2 July 2008
|
||||
|
||||
|
||||
7. Acknowledgments
|
||||
|
||||
I would like to thank Yoav Nir and Charlie Kaufman for their helpful
|
||||
comments.
|
||||
|
||||
|
||||
8. References
|
||||
|
||||
8.1. Normative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
|
||||
Levkowetz, "Extensible Authentication Protocol (EAP)",
|
||||
RFC 3748, June 2004.
|
||||
|
||||
[RFC4013] Zeilenga, K., "SASLprep: Stringprep Profile for User Names
|
||||
and Passwords", RFC 4013, February 2005.
|
||||
|
||||
[RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
|
||||
RFC 4306, December 2005.
|
||||
|
||||
8.2. Informative References
|
||||
|
||||
[EAPMITM] Asokan, N., Niemi, V., and K. Nyberg, "Man-in-the-Middle
|
||||
in Tunneled Authentication Protocols", November 2002,
|
||||
<http://eprint.iacr.org/2002/163>.
|
||||
|
||||
[I-D.dekok-radext-dtls]
|
||||
DeKok, A., "DTLS as a Transport Layer for RADIUS",
|
||||
draft-dekok-radext-dtls-00 (work in progress),
|
||||
February 2007.
|
||||
|
||||
[I-D.nir-tls-eap]
|
||||
Nir, Y., Tschofenig, H., and P. Gutmann, "TLS using EAP
|
||||
Authentication", draft-nir-tls-eap-03 (work in progress),
|
||||
April 2008.
|
||||
|
||||
[I-D.winter-radsec]
|
||||
Winter, S., McCauley, M., and S. Venaas, "RadSec Version 2
|
||||
- A Secure and Reliable Transport for the RADIUS
|
||||
Protocol", draft-winter-radsec-01 (work in progress),
|
||||
February 2008.
|
||||
|
||||
[RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson,
|
||||
"Remote Authentication Dial In User Service (RADIUS)",
|
||||
RFC 2865, June 2000.
|
||||
|
||||
|
||||
|
||||
Sheffer Expires January 7, 2009 [Page 7]
|
||||
|
||||
Internet-Draft EAP-GTC in IKEv2 July 2008
|
||||
|
||||
|
||||
[RFC4282] Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The
|
||||
Network Access Identifier", RFC 4282, December 2005.
|
||||
|
||||
[RFC4718] Eronen, P. and P. Hoffman, "IKEv2 Clarifications and
|
||||
Implementation Guidelines", RFC 4718, October 2006.
|
||||
|
||||
|
||||
Appendix A. Change Log
|
||||
|
||||
A.1. -00
|
||||
|
||||
Initial version.
|
||||
|
||||
|
||||
Author's Address
|
||||
|
||||
Yaron Sheffer
|
||||
Check Point Software Technologies Ltd.
|
||||
5 Hasolelim St.
|
||||
Tel Aviv 67897
|
||||
Israel
|
||||
|
||||
Email: yaronf@checkpoint.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Sheffer Expires January 7, 2009 [Page 8]
|
||||
|
||||
Internet-Draft EAP-GTC in IKEv2 July 2008
|
||||
|
||||
|
||||
Full Copyright Statement
|
||||
|
||||
Copyright (C) The IETF Trust (2008).
|
||||
|
||||
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.
|
||||
|
||||
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, THE IETF TRUST 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.
|
||||
|
||||
|
||||
Intellectual Property
|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Sheffer Expires January 7, 2009 [Page 9]
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,732 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Network Working Group W. Simpson
|
||||
Request for Comments: 1994 DayDreamer
|
||||
Obsoletes: 1334 August 1996
|
||||
Category: Standards Track
|
||||
|
||||
|
||||
PPP Challenge Handshake Authentication Protocol (CHAP)
|
||||
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This document specifies an Internet standards track protocol for the
|
||||
Internet community, and requests discussion and suggestions for
|
||||
improvements. Please refer to the current edition of the "Internet
|
||||
Official Protocol Standards" (STD 1) for the standardization state
|
||||
and status of this protocol. Distribution of this memo is unlimited.
|
||||
|
||||
Abstract
|
||||
|
||||
The Point-to-Point Protocol (PPP) [1] provides a standard method for
|
||||
transporting multi-protocol datagrams over point-to-point links.
|
||||
|
||||
PPP also defines an extensible Link Control Protocol, which allows
|
||||
negotiation of an Authentication Protocol for authenticating its peer
|
||||
before allowing Network Layer protocols to transmit over the link.
|
||||
|
||||
This document defines a method for Authentication using PPP, which
|
||||
uses a random Challenge, with a cryptographically hashed Response
|
||||
which depends upon the Challenge and a secret key.
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction .......................................... 1
|
||||
1.1 Specification of Requirements ................... 1
|
||||
1.2 Terminology ..................................... 2
|
||||
2. Challenge-Handshake Authentication Protocol ........... 2
|
||||
2.1 Advantages ...................................... 3
|
||||
2.2 Disadvantages ................................... 3
|
||||
2.3 Design Requirements ............................. 4
|
||||
3. Configuration Option Format ........................... 5
|
||||
4. Packet Format ......................................... 6
|
||||
4.1 Challenge and Response .......................... 7
|
||||
4.2 Success and Failure ............................. 9
|
||||
SECURITY CONSIDERATIONS ...................................... 10
|
||||
ACKNOWLEDGEMENTS ............................................. 11
|
||||
REFERENCES ................................................... 12
|
||||
CONTACTS ..................................................... 12
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page i]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
In order to establish communications over a point-to-point link, each
|
||||
end of the PPP link must first send LCP packets to configure the data
|
||||
link during Link Establishment phase. After the link has been
|
||||
established, PPP provides for an optional Authentication phase before
|
||||
proceeding to the Network-Layer Protocol phase.
|
||||
|
||||
By default, authentication is not mandatory. If authentication of
|
||||
the link is desired, an implementation MUST specify the
|
||||
Authentication-Protocol Configuration Option during Link
|
||||
Establishment phase.
|
||||
|
||||
These authentication protocols are intended for use primarily by
|
||||
hosts and routers that connect to a PPP network server via switched
|
||||
circuits or dial-up lines, but might be applied to dedicated links as
|
||||
well. The server can use the identification of the connecting host
|
||||
or router in the selection of options for network layer negotiations.
|
||||
|
||||
This document defines a PPP authentication protocol. The Link
|
||||
Establishment and Authentication phases, and the Authentication-
|
||||
Protocol Configuration Option, are defined in The Point-to-Point
|
||||
Protocol (PPP) [1].
|
||||
|
||||
|
||||
1.1. Specification of Requirements
|
||||
|
||||
In this document, several words are used to signify the requirements
|
||||
of the specification. These words are often capitalized.
|
||||
|
||||
MUST This word, or the adjective "required", means that the
|
||||
definition is an absolute requirement of the specification.
|
||||
|
||||
MUST NOT This phrase means that the definition is an absolute
|
||||
prohibition of the specification.
|
||||
|
||||
SHOULD This word, or the adjective "recommended", means that there
|
||||
may exist valid reasons in particular circumstances to
|
||||
ignore this item, but the full implications must be
|
||||
understood and carefully weighed before choosing a
|
||||
different course.
|
||||
|
||||
MAY This word, or the adjective "optional", means that this
|
||||
item is one of an allowed set of alternatives. An
|
||||
implementation which does not include this option MUST be
|
||||
prepared to interoperate with another implementation which
|
||||
does include the option.
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 1]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
1.2. Terminology
|
||||
|
||||
This document frequently uses the following terms:
|
||||
|
||||
authenticator
|
||||
The end of the link requiring the authentication. The
|
||||
authenticator specifies the authentication protocol to be
|
||||
used in the Configure-Request during Link Establishment
|
||||
phase.
|
||||
|
||||
peer The other end of the point-to-point link; the end which is
|
||||
being authenticated by the authenticator.
|
||||
|
||||
silently discard
|
||||
This means the implementation discards the packet without
|
||||
further processing. The implementation SHOULD provide the
|
||||
capability of logging the error, including the contents of
|
||||
the silently discarded packet, and SHOULD record the event
|
||||
in a statistics counter.
|
||||
|
||||
|
||||
|
||||
|
||||
2. Challenge-Handshake Authentication Protocol
|
||||
|
||||
The Challenge-Handshake Authentication Protocol (CHAP) is used to
|
||||
periodically verify the identity of the peer using a 3-way handshake.
|
||||
This is done upon initial link establishment, and MAY be repeated
|
||||
anytime after the link has been established.
|
||||
|
||||
1. After the Link Establishment phase is complete, the
|
||||
authenticator sends a "challenge" message to the peer.
|
||||
|
||||
2. The peer responds with a value calculated using a "one-way
|
||||
hash" function.
|
||||
|
||||
3. The authenticator checks the response against its own
|
||||
calculation of the expected hash value. If the values match,
|
||||
the authentication is acknowledged; otherwise the connection
|
||||
SHOULD be terminated.
|
||||
|
||||
4. At random intervals, the authenticator sends a new challenge to
|
||||
the peer, and repeats steps 1 to 3.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 2]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
2.1. Advantages
|
||||
|
||||
CHAP provides protection against playback attack by the peer through
|
||||
the use of an incrementally changing identifier and a variable
|
||||
challenge value. The use of repeated challenges is intended to limit
|
||||
the time of exposure to any single attack. The authenticator is in
|
||||
control of the frequency and timing of the challenges.
|
||||
|
||||
This authentication method depends upon a "secret" known only to the
|
||||
authenticator and that peer. The secret is not sent over the link.
|
||||
|
||||
Although the authentication is only one-way, by negotiating CHAP in
|
||||
both directions the same secret set may easily be used for mutual
|
||||
authentication.
|
||||
|
||||
Since CHAP may be used to authenticate many different systems, name
|
||||
fields may be used as an index to locate the proper secret in a large
|
||||
table of secrets. This also makes it possible to support more than
|
||||
one name/secret pair per system, and to change the secret in use at
|
||||
any time during the session.
|
||||
|
||||
|
||||
2.2. Disadvantages
|
||||
|
||||
CHAP requires that the secret be available in plaintext form.
|
||||
Irreversably encrypted password databases commonly available cannot
|
||||
be used.
|
||||
|
||||
It is not as useful for large installations, since every possible
|
||||
secret is maintained at both ends of the link.
|
||||
|
||||
Implementation Note: To avoid sending the secret over other links
|
||||
in the network, it is recommended that the challenge and response
|
||||
values be examined at a central server, rather than each network
|
||||
access server. Otherwise, the secret SHOULD be sent to such
|
||||
servers in a reversably encrypted form. Either case requires a
|
||||
trusted relationship, which is outside the scope of this
|
||||
specification.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 3]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
2.3. Design Requirements
|
||||
|
||||
The CHAP algorithm requires that the length of the secret MUST be at
|
||||
least 1 octet. The secret SHOULD be at least as large and
|
||||
unguessable as a well-chosen password. It is preferred that the
|
||||
secret be at least the length of the hash value for the hashing
|
||||
algorithm chosen (16 octets for MD5). This is to ensure a
|
||||
sufficiently large range for the secret to provide protection against
|
||||
exhaustive search attacks.
|
||||
|
||||
The one-way hash algorithm is chosen such that it is computationally
|
||||
infeasible to determine the secret from the known challenge and
|
||||
response values.
|
||||
|
||||
Each challenge value SHOULD be unique, since repetition of a
|
||||
challenge value in conjunction with the same secret would permit an
|
||||
attacker to reply with a previously intercepted response. Since it
|
||||
is expected that the same secret MAY be used to authenticate with
|
||||
servers in disparate geographic regions, the challenge SHOULD exhibit
|
||||
global and temporal uniqueness.
|
||||
|
||||
Each challenge value SHOULD also be unpredictable, least an attacker
|
||||
trick a peer into responding to a predicted future challenge, and
|
||||
then use the response to masquerade as that peer to an authenticator.
|
||||
|
||||
Although protocols such as CHAP are incapable of protecting against
|
||||
realtime active wiretapping attacks, generation of unique
|
||||
unpredictable challenges can protect against a wide range of active
|
||||
attacks.
|
||||
|
||||
A discussion of sources of uniqueness and probability of divergence
|
||||
is included in the Magic-Number Configuration Option [1].
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 4]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
3. Configuration Option Format
|
||||
|
||||
A summary of the Authentication-Protocol Configuration Option format
|
||||
to negotiate the Challenge-Handshake Authentication Protocol is shown
|
||||
below. The fields are transmitted from left to right.
|
||||
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Type | Length | Authentication-Protocol |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Algorithm |
|
||||
+-+-+-+-+-+-+-+-+
|
||||
|
||||
Type
|
||||
|
||||
3
|
||||
|
||||
Length
|
||||
|
||||
5
|
||||
|
||||
Authentication-Protocol
|
||||
|
||||
c223 (hex) for Challenge-Handshake Authentication Protocol.
|
||||
|
||||
Algorithm
|
||||
|
||||
The Algorithm field is one octet and indicates the authentication
|
||||
method to be used. Up-to-date values are specified in the most
|
||||
recent "Assigned Numbers" [2]. One value is required to be
|
||||
implemented:
|
||||
|
||||
5 CHAP with MD5 [3]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 5]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
4. Packet Format
|
||||
|
||||
Exactly one Challenge-Handshake Authentication Protocol packet is
|
||||
encapsulated in the Information field of a PPP Data Link Layer frame
|
||||
where the protocol field indicates type hex c223 (Challenge-Handshake
|
||||
Authentication Protocol). A summary of the CHAP packet format is
|
||||
shown below. The fields are transmitted from left to right.
|
||||
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Code | Identifier | Length |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Data ...
|
||||
+-+-+-+-+
|
||||
|
||||
Code
|
||||
|
||||
The Code field is one octet and identifies the type of CHAP
|
||||
packet. CHAP Codes are assigned as follows:
|
||||
|
||||
1 Challenge
|
||||
2 Response
|
||||
3 Success
|
||||
4 Failure
|
||||
|
||||
Identifier
|
||||
|
||||
The Identifier field is one octet and aids in matching challenges,
|
||||
responses and replies.
|
||||
|
||||
Length
|
||||
|
||||
The Length field is two octets and indicates the length of the
|
||||
CHAP packet including the Code, Identifier, Length and Data
|
||||
fields. Octets outside the range of the Length field should be
|
||||
treated as Data Link Layer padding and should be ignored on
|
||||
reception.
|
||||
|
||||
Data
|
||||
|
||||
The Data field is zero or more octets. The format of the Data
|
||||
field is determined by the Code field.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 6]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
4.1. Challenge and Response
|
||||
|
||||
Description
|
||||
|
||||
The Challenge packet is used to begin the Challenge-Handshake
|
||||
Authentication Protocol. The authenticator MUST transmit a CHAP
|
||||
packet with the Code field set to 1 (Challenge). Additional
|
||||
Challenge packets MUST be sent until a valid Response packet is
|
||||
received, or an optional retry counter expires.
|
||||
|
||||
A Challenge packet MAY also be transmitted at any time during the
|
||||
Network-Layer Protocol phase to ensure that the connection has not
|
||||
been altered.
|
||||
|
||||
The peer SHOULD expect Challenge packets during the Authentication
|
||||
phase and the Network-Layer Protocol phase. Whenever a Challenge
|
||||
packet is received, the peer MUST transmit a CHAP packet with the
|
||||
Code field set to 2 (Response).
|
||||
|
||||
Whenever a Response packet is received, the authenticator compares
|
||||
the Response Value with its own calculation of the expected value.
|
||||
Based on this comparison, the authenticator MUST send a Success or
|
||||
Failure packet (described below).
|
||||
|
||||
Implementation Notes: Because the Success might be lost, the
|
||||
authenticator MUST allow repeated Response packets during the
|
||||
Network-Layer Protocol phase after completing the
|
||||
Authentication phase. To prevent discovery of alternative
|
||||
Names and Secrets, any Response packets received having the
|
||||
current Challenge Identifier MUST return the same reply Code
|
||||
previously returned for that specific Challenge (the message
|
||||
portion MAY be different). Any Response packets received
|
||||
during any other phase MUST be silently discarded.
|
||||
|
||||
When the Failure is lost, and the authenticator terminates the
|
||||
link, the LCP Terminate-Request and Terminate-Ack provide an
|
||||
alternative indication that authentication failed.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 7]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
A summary of the Challenge and Response packet format is shown below.
|
||||
The fields are transmitted from left to right.
|
||||
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Code | Identifier | Length |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Value-Size | Value ...
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Name ...
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
|
||||
Code
|
||||
|
||||
1 for Challenge;
|
||||
|
||||
2 for Response.
|
||||
|
||||
Identifier
|
||||
|
||||
The Identifier field is one octet. The Identifier field MUST be
|
||||
changed each time a Challenge is sent.
|
||||
|
||||
The Response Identifier MUST be copied from the Identifier field
|
||||
of the Challenge which caused the Response.
|
||||
|
||||
Value-Size
|
||||
|
||||
This field is one octet and indicates the length of the Value
|
||||
field.
|
||||
|
||||
Value
|
||||
|
||||
The Value field is one or more octets. The most significant octet
|
||||
is transmitted first.
|
||||
|
||||
The Challenge Value is a variable stream of octets. The
|
||||
importance of the uniqueness of the Challenge Value and its
|
||||
relationship to the secret is described above. The Challenge
|
||||
Value MUST be changed each time a Challenge is sent. The length
|
||||
of the Challenge Value depends upon the method used to generate
|
||||
the octets, and is independent of the hash algorithm used.
|
||||
|
||||
The Response Value is the one-way hash calculated over a stream of
|
||||
octets consisting of the Identifier, followed by (concatenated
|
||||
with) the "secret", followed by (concatenated with) the Challenge
|
||||
Value. The length of the Response Value depends upon the hash
|
||||
algorithm used (16 octets for MD5).
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 8]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
Name
|
||||
|
||||
The Name field is one or more octets representing the
|
||||
identification of the system transmitting the packet. There are
|
||||
no limitations on the content of this field. For example, it MAY
|
||||
contain ASCII character strings or globally unique identifiers in
|
||||
ASN.1 syntax. The Name should not be NUL or CR/LF terminated.
|
||||
The size is determined from the Length field.
|
||||
|
||||
|
||||
4.2. Success and Failure
|
||||
|
||||
Description
|
||||
|
||||
If the Value received in a Response is equal to the expected
|
||||
value, then the implementation MUST transmit a CHAP packet with
|
||||
the Code field set to 3 (Success).
|
||||
|
||||
If the Value received in a Response is not equal to the expected
|
||||
value, then the implementation MUST transmit a CHAP packet with
|
||||
the Code field set to 4 (Failure), and SHOULD take action to
|
||||
terminate the link.
|
||||
|
||||
A summary of the Success and Failure packet format is shown below.
|
||||
The fields are transmitted from left to right.
|
||||
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Code | Identifier | Length |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Message ...
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-
|
||||
|
||||
Code
|
||||
|
||||
3 for Success;
|
||||
|
||||
4 for Failure.
|
||||
|
||||
Identifier
|
||||
|
||||
The Identifier field is one octet and aids in matching requests
|
||||
and replies. The Identifier field MUST be copied from the
|
||||
Identifier field of the Response which caused this reply.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 9]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
Message
|
||||
|
||||
The Message field is zero or more octets, and its contents are
|
||||
implementation dependent. It is intended to be human readable,
|
||||
and MUST NOT affect operation of the protocol. It is recommended
|
||||
that the message contain displayable ASCII characters 32 through
|
||||
126 decimal. Mechanisms for extension to other character sets are
|
||||
the topic of future research. The size is determined from the
|
||||
Length field.
|
||||
|
||||
|
||||
|
||||
Security Considerations
|
||||
|
||||
Security issues are the primary topic of this RFC.
|
||||
|
||||
The interaction of the authentication protocols within PPP are highly
|
||||
implementation dependent. This is indicated by the use of SHOULD
|
||||
throughout the document.
|
||||
|
||||
For example, upon failure of authentication, some implementations do
|
||||
not terminate the link. Instead, the implementation limits the kind
|
||||
of traffic in the Network-Layer Protocols to a filtered subset, which
|
||||
in turn allows the user opportunity to update secrets or send mail to
|
||||
the network administrator indicating a problem.
|
||||
|
||||
There is no provision for re-tries of failed authentication.
|
||||
However, the LCP state machine can renegotiate the authentication
|
||||
protocol at any time, thus allowing a new attempt. It is recommended
|
||||
that any counters used for authentication failure not be reset until
|
||||
after successful authentication, or subsequent termination of the
|
||||
failed link.
|
||||
|
||||
There is no requirement that authentication be full duplex or that
|
||||
the same protocol be used in both directions. It is perfectly
|
||||
acceptable for different protocols to be used in each direction.
|
||||
This will, of course, depend on the specific protocols negotiated.
|
||||
|
||||
The secret SHOULD NOT be the same in both directions. This allows an
|
||||
attacker to replay the peer's challenge, accept the computed
|
||||
response, and use that response to authenticate.
|
||||
|
||||
In practice, within or associated with each PPP server, there is a
|
||||
database which associates "user" names with authentication
|
||||
information ("secrets"). It is not anticipated that a particular
|
||||
named user would be authenticated by multiple methods. This would
|
||||
make the user vulnerable to attacks which negotiate the least secure
|
||||
method from among a set (such as PAP rather than CHAP). If the same
|
||||
|
||||
|
||||
|
||||
Simpson [Page 10]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
secret was used, PAP would reveal the secret to be used later with
|
||||
CHAP.
|
||||
|
||||
Instead, for each user name there should be an indication of exactly
|
||||
one method used to authenticate that user name. If a user needs to
|
||||
make use of different authentication methods under different
|
||||
circumstances, then distinct user names SHOULD be employed, each of
|
||||
which identifies exactly one authentication method.
|
||||
|
||||
Passwords and other secrets should be stored at the respective ends
|
||||
such that access to them is as limited as possible. Ideally, the
|
||||
secrets should only be accessible to the process requiring access in
|
||||
order to perform the authentication.
|
||||
|
||||
The secrets should be distributed with a mechanism that limits the
|
||||
number of entities that handle (and thus gain knowledge of) the
|
||||
secret. Ideally, no unauthorized person should ever gain knowledge
|
||||
of the secrets. Such a mechanism is outside the scope of this
|
||||
specification.
|
||||
|
||||
|
||||
Acknowledgements
|
||||
|
||||
David Kaufman, Frank Heinrich, and Karl Auerbach used a challenge
|
||||
handshake at SDC when designing one of the protocols for a "secure"
|
||||
network in the mid-1970s. Tom Bearson built a prototype Sytek
|
||||
product ("Poloneous"?) on the challenge-response notion in the 1982-
|
||||
83 timeframe. Another variant is documented in the various IBM SNA
|
||||
manuals. Yet another variant was implemented by Karl Auerbach in the
|
||||
Telebit NetBlazer circa 1991.
|
||||
|
||||
Kim Toms and Barney Wolff provided useful critiques of earlier
|
||||
versions of this document.
|
||||
|
||||
Special thanks to Dave Balenson, Steve Crocker, James Galvin, and
|
||||
Steve Kent, for their extensive explanations and suggestions. Now,
|
||||
if only we could get them to agree with each other.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 11]
|
||||
|
||||
RFC 1994 PPP CHAP August 1996
|
||||
|
||||
|
||||
References
|
||||
|
||||
[1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD
|
||||
51, RFC 1661, DayDreamer, July 1994.
|
||||
|
||||
[2] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC
|
||||
1700, USC/Information Sciences Institute, October 1994.
|
||||
|
||||
[3] Rivest, R., and S. Dusse, "The MD5 Message-Digest Algorithm",
|
||||
MIT Laboratory for Computer Science and RSA Data Security,
|
||||
Inc., RFC 1321, April 1992.
|
||||
|
||||
|
||||
|
||||
Contacts
|
||||
|
||||
Comments should be submitted to the ietf-ppp@merit.edu mailing list.
|
||||
|
||||
This document was reviewed by the Point-to-Point Protocol Working
|
||||
Group of the Internet Engineering Task Force (IETF). The working
|
||||
group can be contacted via the current chair:
|
||||
|
||||
Karl Fox
|
||||
Ascend Communications
|
||||
3518 Riverside Drive, Suite 101
|
||||
Columbus, Ohio 43221
|
||||
|
||||
karl@MorningStar.com
|
||||
karl@Ascend.com
|
||||
|
||||
|
||||
Questions about this memo can also be directed to:
|
||||
|
||||
William Allen Simpson
|
||||
DayDreamer
|
||||
Computer Systems Consulting Services
|
||||
1384 Fontaine
|
||||
Madison Heights, Michigan 48071
|
||||
|
||||
wsimpson@UMich.edu
|
||||
wsimpson@GreenDragon.com (preferred)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Simpson [Page 12]
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,339 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Network Working Group J. Schiller
|
||||
Request for Comments: 4307 Massachusetts Institute of Technology
|
||||
Category: Standards Track December 2005
|
||||
|
||||
|
||||
Cryptographic Algorithms for Use in the
|
||||
Internet Key Exchange Version 2 (IKEv2)
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This document specifies an Internet standards track protocol for the
|
||||
Internet community, and requests discussion and suggestions for
|
||||
improvements. Please refer to the current edition of the "Internet
|
||||
Official Protocol Standards" (STD 1) for the standardization state
|
||||
and status of this protocol. Distribution of this memo is unlimited.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The Internet Society (2005).
|
||||
|
||||
Abstract
|
||||
|
||||
The IPsec series of protocols makes use of various cryptographic
|
||||
algorithms in order to provide security services. The Internet Key
|
||||
Exchange (IKE (RFC 2409) and IKEv2) provide a mechanism to negotiate
|
||||
which algorithms should be used in any given association. However,
|
||||
to ensure interoperability between disparate implementations, it is
|
||||
necessary to specify a set of mandatory-to-implement algorithms to
|
||||
ensure that there is at least one algorithm that all implementations
|
||||
will have available. This document defines the current set of
|
||||
algorithms that are mandatory to implement as part of IKEv2, as well
|
||||
as algorithms that should be implemented because they may be promoted
|
||||
to mandatory at some future time.
|
||||
|
||||
1. Introduction
|
||||
|
||||
The Internet Key Exchange protocol provides for the negotiation of
|
||||
cryptographic algorithms between both endpoints of a cryptographic
|
||||
|
||||
association. Different implementations of IPsec and IKE may provide
|
||||
different algorithms. However, the IETF desires that all
|
||||
implementations should have some way to interoperate. In particular,
|
||||
this requires that IKE define a set of mandatory-to-implement
|
||||
algorithms because IKE itself uses such algorithms as part of its own
|
||||
negotiations. This requires that some set of algorithms be specified
|
||||
as "mandatory-to-implement" for IKE.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Schiller Standards Track [Page 1]
|
||||
|
||||
RFC 4307 IKEv2 Cryptographic Algorithms December 2005
|
||||
|
||||
|
||||
The nature of cryptography is that new algorithms surface
|
||||
continuously and existing algorithms are continuously attacked. An
|
||||
algorithm believed to be strong today may be demonstrated to be weak
|
||||
tomorrow. Given this, the choice of mandatory-to-implement algorithm
|
||||
should be conservative so as to minimize the likelihood of it being
|
||||
compromised quickly. Thought should also be given to performance
|
||||
considerations as many uses of IPsec will be in environments where
|
||||
performance is a concern.
|
||||
|
||||
Finally, we need to recognize that the mandatory-to-implement
|
||||
algorithm(s) may need to change over time to adapt to the changing
|
||||
world. For this reason, the selection of mandatory-to-implement
|
||||
algorithms was removed from the main IKEv2 specification and placed
|
||||
in this document. As the choice of algorithm changes, only this
|
||||
document should need to be updated.
|
||||
|
||||
Ideally, the mandatory-to-implement algorithm of tomorrow should
|
||||
already be available in most implementations of IPsec by the time it
|
||||
is made mandatory. To facilitate this, we will attempt to identify
|
||||
those algorithms (that are known today) in this document. There is
|
||||
no guarantee that the algorithms we believe today may be mandatory in
|
||||
the future will in fact become so. All algorithms known today are
|
||||
subject to cryptographic attack and may be broken in the future.
|
||||
|
||||
2. Requirements Terminology
|
||||
|
||||
Keywords "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", and
|
||||
"MAY" that appear in this document are to be interpreted as described
|
||||
in [RFC2119].
|
||||
|
||||
We define some additional terms here:
|
||||
|
||||
SHOULD+ This term means the same as SHOULD. However, it is likely
|
||||
that an algorithm marked as SHOULD+ will be promoted at
|
||||
some future time to be a MUST.
|
||||
|
||||
SHOULD- This term means the same as SHOULD. However, an algorithm
|
||||
marked as SHOULD- may be deprecated to a MAY in a future
|
||||
version of this document.
|
||||
|
||||
MUST- This term means the same as MUST. However, we expect at
|
||||
some point that this algorithm will no longer be a MUST in
|
||||
a future document. Although its status will be determined
|
||||
at a later time, it is reasonable to expect that if a
|
||||
future revision of a document alters the status of a MUST-
|
||||
algorithm, it will remain at least a SHOULD or a SHOULD-.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Schiller Standards Track [Page 2]
|
||||
|
||||
RFC 4307 IKEv2 Cryptographic Algorithms December 2005
|
||||
|
||||
|
||||
3. Algorithm Selection
|
||||
|
||||
3.1. IKEv2 Algorithm Selection
|
||||
|
||||
3.1.1. Encrypted Payload Algorithms
|
||||
|
||||
The IKEv2 Encrypted Payload requires both a confidentiality algorithm
|
||||
and an integrity algorithm. For confidentiality, implementations
|
||||
MUST- implement 3DES-CBC and SHOULD+ implement AES-128-CBC. For
|
||||
integrity, HMAC-SHA1 MUST be implemented.
|
||||
|
||||
3.1.2. Diffie-Hellman Groups
|
||||
|
||||
There are several Modular Exponential (MODP) groups that are defined
|
||||
for use in IKEv2. They are defined in both the [IKEv2] base document
|
||||
and in the MODP extensions document. They are identified by group
|
||||
number. Any groups not listed here are considered as "MAY be
|
||||
implemented".
|
||||
|
||||
Group Number Bit Length Status Defined
|
||||
2 1024 MODP Group MUST- [RFC2409]
|
||||
14 2048 MODP Group SHOULD+ [RFC3526]
|
||||
|
||||
3.1.3. IKEv2 Transform Type 1 Algorithms
|
||||
|
||||
IKEv2 defines several possible algorithms for Transfer Type 1
|
||||
(encryption). These are defined below with their implementation
|
||||
status.
|
||||
|
||||
Name Number Defined In Status
|
||||
RESERVED 0
|
||||
ENCR_3DES 3 [RFC2451] MUST-
|
||||
ENCR_NULL 11 [RFC2410] MAY
|
||||
ENCR_AES_CBC 12 [AES-CBC] SHOULD+
|
||||
ENCR_AES_CTR 13 [AES-CTR] SHOULD
|
||||
|
||||
3.1.4. IKEv2 Transform Type 2 Algorithms
|
||||
|
||||
Transfer Type 2 Algorithms are pseudo-random functions used to
|
||||
generate random values when needed.
|
||||
|
||||
Name Number Defined In Status
|
||||
RESERVED 0
|
||||
PRF_HMAC_MD5 1 [RFC2104] MAY
|
||||
PRF_HMAC_SHA1 2 [RFC2104] MUST
|
||||
PRF_AES128_CBC 4 [AESPRF] SHOULD+
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Schiller Standards Track [Page 3]
|
||||
|
||||
RFC 4307 IKEv2 Cryptographic Algorithms December 2005
|
||||
|
||||
|
||||
3.1.5. IKEv2 Transform Type 3 Algorithms
|
||||
|
||||
Transfer Type 3 Algorithms are Integrity algorithms used to protect
|
||||
data against tampering.
|
||||
|
||||
Name Number Defined In Status
|
||||
NONE 0
|
||||
AUTH_HMAC_MD5_96 1 [RFC2403] MAY
|
||||
AUTH_HMAC_SHA1_96 2 [RFC2404] MUST
|
||||
AUTH_AES_XCBC_96 5 [AES-MAC] SHOULD+
|
||||
|
||||
4. Security Considerations
|
||||
|
||||
The security of cryptographic-based systems depends on both the
|
||||
strength of the cryptographic algorithms chosen and the strength of
|
||||
the keys used with those algorithms. The security also depends on
|
||||
the engineering of the protocol used by the system to ensure that
|
||||
there are no non-cryptographic ways to bypass the security of the
|
||||
overall system.
|
||||
|
||||
This document concerns itself with the selection of cryptographic
|
||||
algorithms for the use of IKEv2, specifically with the selection of
|
||||
"mandatory-to-implement" algorithms. The algorithms identified in
|
||||
this document as "MUST implement" or "SHOULD implement" are not known
|
||||
to be broken at the current time, and cryptographic research so far
|
||||
leads us to believe that they will likely remain secure into the
|
||||
foreseeable future. However, this isn't necessarily forever. We
|
||||
would therefore expect that new revisions of this document will be
|
||||
issued from time to time that reflect the current best practice in
|
||||
this area.
|
||||
|
||||
5. Normative References
|
||||
|
||||
[RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange
|
||||
(IKE)", RFC 2409, November 1998.
|
||||
|
||||
[IKEv2] Kaufman, C., Ed., "Internet Key Exchange (IKEv2)
|
||||
Protocol", RFC 4306, December 2005.
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential
|
||||
(MODP) Diffie-Hellman groups for Internet Key Exchange
|
||||
(IKE)", RFC 3526, May 2003.
|
||||
|
||||
[RFC2451] Pereira, R. and R. Adams, "The ESP CBC-Mode Cipher
|
||||
Algorithms", RFC 2451, November 1998.
|
||||
|
||||
|
||||
|
||||
Schiller Standards Track [Page 4]
|
||||
|
||||
RFC 4307 IKEv2 Cryptographic Algorithms December 2005
|
||||
|
||||
|
||||
[RFC2410] Glenn, R. and S. Kent, "The NULL Encryption Algorithm
|
||||
and Its Use With IPsec", RFC 2410, November 1998.
|
||||
|
||||
[AES-CBC] Frankel, S., Glenn, R., and S. Kelly, "The AES-CBC
|
||||
Cipher Algorithm and Its Use with IPsec", RFC 3602,
|
||||
September 2003.
|
||||
|
||||
[AES-CTR] Housley, R., "Using Advanced Encryption Standard (AES)
|
||||
Counter Mode With IPsec Encapsulating Security Payload
|
||||
(ESP)", RFC 3686, January 2004.
|
||||
|
||||
[RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC:
|
||||
Keyed-Hashing for Message Authentication", RFC 2104,
|
||||
February 1997.
|
||||
|
||||
[AESPRF] Hoffman, P., "The AES-XCBC-PRF-128 Algorithm for the
|
||||
Internet Key Exchange Protocol (IKE)", RFC 3664, January
|
||||
2004.
|
||||
|
||||
[RFC2403] Madson, C. and R. Glenn, "The Use of HMAC-MD5-96 within
|
||||
ESP and AH", RFC 2403, November 1998.
|
||||
|
||||
[RFC2404] Madson, C. and R. Glenn, "The Use of HMAC-SHA-1-96
|
||||
within ESP and AH", RFC 2404, November 1998.
|
||||
|
||||
[AES-MAC] Frankel, S. and H. Herbert, "The AES-XCBC-MAC-96
|
||||
Algorithm and Its Use With IPsec", RFC 3566, September
|
||||
2003.
|
||||
|
||||
Author's Address
|
||||
|
||||
Jeffrey I. Schiller
|
||||
Massachusetts Institute of Technology
|
||||
Room W92-190
|
||||
77 Massachusetts Avenue
|
||||
Cambridge, MA 02139-4307
|
||||
USA
|
||||
|
||||
Phone: +1 (617) 253-0161
|
||||
EMail: jis@mit.edu
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Schiller Standards Track [Page 5]
|
||||
|
||||
RFC 4307 IKEv2 Cryptographic Algorithms December 2005
|
||||
|
||||
|
||||
Full Copyright Statement
|
||||
|
||||
Copyright (C) The Internet Society (2005).
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
Intellectual Property
|
||||
|
||||
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.
|
||||
|
||||
Acknowledgement
|
||||
|
||||
Funding for the RFC Editor function is currently provided by the
|
||||
Internet Society.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Schiller Standards Track [Page 6]
|
||||
|
@ -1,283 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Network Working Group Y. Nir
|
||||
Request for Comments: 4478 Check Point
|
||||
Category: Experimental April 2006
|
||||
|
||||
|
||||
Repeated Authentication in Internet Key Exchange (IKEv2) Protocol
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This memo defines an Experimental Protocol for the Internet
|
||||
community. It does not specify an Internet standard of any kind.
|
||||
Discussion and suggestions for improvement are requested.
|
||||
Distribution of this memo is unlimited.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The Internet Society (2006).
|
||||
|
||||
Abstract
|
||||
|
||||
This document extends the Internet Key Exchange (IKEv2) Protocol
|
||||
document [IKEv2]. With some IPsec peers, particularly in the remote
|
||||
access scenario, it is desirable to repeat the mutual authentication
|
||||
periodically. The purpose of this is to limit the time that security
|
||||
associations (SAs) can be used by a third party who has gained
|
||||
control of the IPsec peer. This document describes a mechanism to
|
||||
perform this function.
|
||||
|
||||
1. Introduction
|
||||
|
||||
In several cases, such as the remote access scenario, policy dictates
|
||||
that the mutual authentication needs to be repeated periodically.
|
||||
Repeated authentication can usually be achieved by simply repeating
|
||||
the Initial exchange by whichever side has a stricter policy.
|
||||
|
||||
However, in the remote access scenario it is usually up to a human
|
||||
user to supply the authentication credentials, and often Extensible
|
||||
Authentication Protocol (EAP) is used for authentication, which makes
|
||||
it unreasonable or impossible for the remote access gateway to
|
||||
initiate the IKEv2 exchange.
|
||||
|
||||
This document describes a new notification that the original
|
||||
Responder can send to the original Initiator with the number of
|
||||
seconds before the authentication needs to be repeated. The
|
||||
Initiator SHOULD repeat the Initial exchange before that time is
|
||||
expired. If the Initiator fails to do so, the Responder may close
|
||||
all Security Associations.
|
||||
|
||||
|
||||
|
||||
|
||||
Nir Experimental [Page 1]
|
||||
|
||||
RFC 4478 Repeated Authentication in IKEv2 April 2006
|
||||
|
||||
|
||||
Repeated authentication is not the same as IKE SA rekeying, and need
|
||||
not be tied to it. The key words "MUST", "MUST NOT", "SHOULD",
|
||||
"SHOULD NOT", and "MAY" in this document are to be interpreted as
|
||||
described in [RFC2119].
|
||||
|
||||
2. Authentication Lifetime
|
||||
|
||||
The Responder in an IKEv2 negotiation MAY be configured to limit the
|
||||
time that an IKE SA and the associated IPsec SAs may be used before
|
||||
the peer is required to repeat the authentication, through a new
|
||||
Initial Exchange.
|
||||
|
||||
The Responder MUST send this information to the Initiator in an
|
||||
AUTH_LIFETIME notification either in the last message of an IKE_AUTH
|
||||
exchange, or in an INFORMATIONAL request, which may be sent at any
|
||||
time.
|
||||
|
||||
When sent as part of the IKE SA setup, the AUTH_LIFETIME notification
|
||||
is used as follows:
|
||||
|
||||
Initiator Responder
|
||||
------------------------------- -----------------------------
|
||||
HDR, SAi1, KEi, Ni -->
|
||||
<-- HDR, SAr1, KEr, Nr, [CERTREQ]
|
||||
HDR, SK {IDi, [CERT,] [CERTREQ,]
|
||||
[IDr,] AUTH, SAi2, TSi, TSr} -->
|
||||
<-- HDR, SK {IDr, [CERT,] AUTH,
|
||||
SAr2, TSi, TSr,
|
||||
N(AUTH_LIFETIME)}
|
||||
|
||||
The separate Informational exchange is formed as follows:
|
||||
|
||||
<-- HDR, SK {N(AUTH_LIFETIME)}
|
||||
HDR SK {} -->
|
||||
|
||||
The AUTH_LIFETIME notification is described in Section 3.
|
||||
|
||||
The original Responder that sends the AUTH_LIFETIME notification
|
||||
SHOULD send a DELETE notification soon after the end of the lifetime
|
||||
period, unless the IKE SA is deleted before the lifetime period
|
||||
elapses. If the IKE SA is rekeyed, then the time limit applies to
|
||||
the new SA.
|
||||
|
||||
An Initiator that received an AUTH_LIFETIME notification SHOULD
|
||||
repeat the Initial exchange within the time indicated in the
|
||||
notification. The time is measured from the time that the original
|
||||
Initiator receives the notification.
|
||||
|
||||
|
||||
|
||||
|
||||
Nir Experimental [Page 2]
|
||||
|
||||
RFC 4478 Repeated Authentication in IKEv2 April 2006
|
||||
|
||||
|
||||
A special case is where the notification is sent in an Informational
|
||||
exchange, and the lifetime is zero. In that case, the original
|
||||
responder SHOULD allow a reasonable time for the repeated
|
||||
authentication to occur.
|
||||
|
||||
The AUTH_LIFETIME notification MUST be protected and MAY be sent by
|
||||
the original Responder at any time. If the policy changes, the
|
||||
original Responder MAY send it again in a new Informational.
|
||||
|
||||
The new Initial exchange is not altered. The initiator SHOULD delete
|
||||
the old IKE SA within a reasonable time of the new Auth exchange.
|
||||
|
||||
3. AUTH_LIFETIME Notification
|
||||
|
||||
The AUTH_LIFETIME message is a notification payload formatted as
|
||||
follows:
|
||||
|
||||
1 2 3
|
||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
! Next Payload !C! RESERVED ! Payload Length !
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
! Protocol ID ! SPI Size ! Notify Message Type !
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
! Lifetime !
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
|
||||
o Payload Length is 12.
|
||||
o Protocol ID (1 octet) MUST be 0.
|
||||
o SPI size is 0 (SPI is in message header).
|
||||
o Notify Message type is 16403 by IANA.
|
||||
o Lifetime is the amount of time (in seconds) left before the
|
||||
peer should repeat the Initial exchange. A zero value
|
||||
signifies that the Initial exchange should begin immediately.
|
||||
It is usually not reasonable to set this value to less than 300
|
||||
(5 minutes) since that is too cumbersome for a user.
|
||||
It is also usually not reasonable to set this value to more
|
||||
than 86400 (1 day) as that would negate the security benefit of
|
||||
repeating the authentication.
|
||||
|
||||
4. Interoperability with Non-Supporting IKEv2 Implementations
|
||||
|
||||
IKEv2 implementations that do not support the AUTH_LIFETIME
|
||||
notification will ignore it and will not repeat the authentication.
|
||||
In that case the original Responder will send a Delete notification
|
||||
for the IKE SA in an Informational exchange. Such implementations
|
||||
may be configured manually to repeat the authentication periodically.
|
||||
|
||||
|
||||
|
||||
|
||||
Nir Experimental [Page 3]
|
||||
|
||||
RFC 4478 Repeated Authentication in IKEv2 April 2006
|
||||
|
||||
|
||||
Non-supporting Responders are not a problem because they will simply
|
||||
not send these notifications. In that case, there is no requirement
|
||||
that the original Initiator re-authenticate.
|
||||
|
||||
5. Security Considerations
|
||||
|
||||
The AUTH_LIFETIME notification sent by the Responder does not
|
||||
override any security policy on the Initiator. In particular, the
|
||||
Initiator may have a different policy regarding re-authentication,
|
||||
requiring more frequent re-authentication. Such an Initiator can
|
||||
repeat the authentication earlier then is required by the
|
||||
notification.
|
||||
|
||||
An Initiator MAY set reasonable limits on the amount of time in the
|
||||
AUTH_LIFETIME notification. For example, an authentication lifetime
|
||||
of less than 300 seconds from SA initiation may be considered
|
||||
unreasonable.
|
||||
|
||||
6. IANA Considerations
|
||||
|
||||
The IANA has assigned a notification payload type for the
|
||||
AUTH_LIFETIME notifications from the IKEv2 Notify Message Types
|
||||
registry.
|
||||
|
||||
7. Normative References
|
||||
|
||||
[IKEv2] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC
|
||||
4306, December 2005.
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
Author's Address
|
||||
|
||||
Yoav Nir
|
||||
Check Point Software Technologies
|
||||
|
||||
EMail: ynir@checkpoint.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Nir Experimental [Page 4]
|
||||
|
||||
RFC 4478 Repeated Authentication in IKEv2 April 2006
|
||||
|
||||
|
||||
Full 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.
|
||||
|
||||
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.
|
||||
|
||||
Intellectual Property
|
||||
|
||||
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.
|
||||
|
||||
Acknowledgement
|
||||
|
||||
Funding for the RFC Editor function is provided by the IETF
|
||||
Administrative Support Activity (IASA).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Nir Experimental [Page 5]
|
||||
|
@ -1,787 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Network Working Group D. McGrew
|
||||
Request for Comments: 4543 Cisco Systems, Inc.
|
||||
Category: Standards Track J. Viega
|
||||
McAfee, Inc.
|
||||
May 2006
|
||||
|
||||
|
||||
The Use of Galois Message Authentication Code (GMAC) in
|
||||
IPsec ESP and AH
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This document specifies an Internet standards track protocol for the
|
||||
Internet community, and requests discussion and suggestions for
|
||||
improvements. Please refer to the current edition of the "Internet
|
||||
Official Protocol Standards" (STD 1) for the standardization state
|
||||
and status of this protocol. Distribution of this memo is unlimited.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The Internet Society (2006).
|
||||
|
||||
Abstract
|
||||
|
||||
This memo describes the use of the Advanced Encryption Standard (AES)
|
||||
Galois Message Authentication Code (GMAC) as a mechanism to provide
|
||||
data origin authentication, but not confidentiality, within the IPsec
|
||||
Encapsulating Security Payload (ESP) and Authentication Header (AH).
|
||||
GMAC is based on the Galois/Counter Mode (GCM) of operation, and can
|
||||
be efficiently implemented in hardware for speeds of 10 gigabits per
|
||||
second and above, and is also well-suited to software
|
||||
implementations.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 1]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction ....................................................2
|
||||
1.1. Conventions Used in This Document ..........................3
|
||||
2. AES-GMAC ........................................................3
|
||||
3. The Use of AES-GMAC in ESP ......................................3
|
||||
3.1. Initialization Vector ......................................4
|
||||
3.2. Nonce Format ...............................................4
|
||||
3.3. AAD Construction ...........................................5
|
||||
3.4. Integrity Check Value (ICV) ................................6
|
||||
3.5. Differences with AES-GCM-ESP ...............................6
|
||||
3.6. Packet Expansion ...........................................7
|
||||
4. The Use of AES-GMAC in AH .......................................7
|
||||
5. IKE Conventions .................................................8
|
||||
5.1. Phase 1 Identifier .........................................8
|
||||
5.2. Phase 2 Identifier .........................................8
|
||||
5.3. Key Length Attribute .......................................9
|
||||
5.4. Keying Material and Salt Values ............................9
|
||||
6. Test Vectors ....................................................9
|
||||
7. Security Considerations ........................................10
|
||||
8. Design Rationale ...............................................11
|
||||
9. IANA Considerations ............................................11
|
||||
10. Acknowledgements ..............................................11
|
||||
11. References ....................................................12
|
||||
11.1. Normative References .....................................12
|
||||
11.2. Informative References ...................................12
|
||||
1. Introduction
|
||||
|
||||
This document describes the use of AES-GMAC mode (AES-GMAC) as a
|
||||
mechanism for data origin authentication in ESP [RFC4303] and AH
|
||||
[RFC4302]. We refer to these methods as ENCR_NULL_AUTH_AES_GMAC and
|
||||
AUTH_AES_GMAC, respectively. ENCR_NULL_AUTH_AES_GMAC is a companion
|
||||
to the AES Galois/Counter Mode ESP [RFC4106], which provides
|
||||
authentication as well as confidentiality. ENCR_NULL_AUTH_AES_GMAC
|
||||
is intended for cases in which confidentiality is not desired. Like
|
||||
GCM, GMAC is efficient and secure, and is amenable to high-speed
|
||||
implementations in hardware. ENCR_NULL_AUTH_AES_GMAC and
|
||||
AUTH_AES_GMAC are designed so that the incremental cost of
|
||||
implementation, given an implementation is AES-GCM-ESP, is small.
|
||||
|
||||
This document does not cover implementation details of GCM or GMAC.
|
||||
Those details can be found in [GCM], along with test vectors.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 2]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
1.1. Conventions Used in This Document
|
||||
|
||||
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 [RFC2119].
|
||||
|
||||
2. AES-GMAC
|
||||
|
||||
GMAC is a block cipher mode of operation providing data origin
|
||||
authentication. It is defined in terms of the GCM authenticated
|
||||
encryption operation as follows. The GCM authenticated encryption
|
||||
operation has four inputs: a secret key, an initialization vector
|
||||
(IV), a plaintext, and an input for additional authenticated data
|
||||
(AAD). It has two outputs, a ciphertext whose length is identical to
|
||||
the plaintext and an authentication tag. GMAC is the special case of
|
||||
GCM in which the plaintext has a length of zero. The (zero-length)
|
||||
ciphertext output is ignored, of course, so that the only output of
|
||||
the function is the Authentication Tag. In the following, we
|
||||
describe how the GMAC IV and AAD are formed from the ESP and AH
|
||||
fields, and how the ESP and AH packets are formed from the
|
||||
Authentication Tag.
|
||||
|
||||
Below we refer to the AES-GMAC IV input as a nonce, in order to
|
||||
distinguish it from the IV fields in the packets. The same nonce and
|
||||
key combination MUST NOT be used more than once, since reusing a
|
||||
nonce/key combination destroys the security guarantees of AES-GMAC.
|
||||
|
||||
Because of this restriction, it can be difficult to use this mode
|
||||
securely when using statically configured keys. For the sake of good
|
||||
security, implementations MUST use an automated key management
|
||||
system, such as the Internet Key Exchange (IKE) (either version two
|
||||
[RFC4306] or version one [RFC2409]), to ensure that this requirement
|
||||
is met.
|
||||
|
||||
3. The Use of AES-GMAC in ESP
|
||||
|
||||
The AES-GMAC algorithm for ESP is defined as an ESP "combined mode"
|
||||
algorithm (see Section 3.2.3 of [RFC4303]), rather than an ESP
|
||||
integrity algorithm. It is called ENCR_NULL_AUTH_AES_GMAC to
|
||||
highlight the fact that it performs no encryption and provides no
|
||||
confidentiality.
|
||||
|
||||
Rationale: ESP makes no provision for integrity transforms to
|
||||
place an initialization vector within the Payload field; only
|
||||
encryption transforms are expected to use IVs. Defining GMAC as
|
||||
an encryption transform avoids this issue, and allows GMAC to
|
||||
benefit from the same pipelining as does GCM.
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 3]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
Like all ESP combined modes, it is registered in IKEv2 as an
|
||||
encryption transform, or "Type 1" transform. It MUST NOT be used in
|
||||
conjunction with any other ESP encryption transform (within a
|
||||
particular ESP encapsulation). If confidentiality is desired, then
|
||||
GCM ESP [RFC4106] SHOULD be used instead.
|
||||
|
||||
3.1. Initialization Vector
|
||||
|
||||
With ENCR_NULL_AUTH_AES_GMAC, an explicit Initialization Vector (IV)
|
||||
is included in the ESP Payload, at the outset of that field. The IV
|
||||
MUST be eight octets long. For a given key, the IV MUST NOT repeat.
|
||||
The most natural way to meet this requirement is to set the IV using
|
||||
a counter, but implementations are free to set the IV field in any
|
||||
way that guarantees uniqueness, such as a linear feedback shift
|
||||
register (LFSR). Note that the sender can use any IV generation
|
||||
method that meets the uniqueness requirement without coordinating
|
||||
with the receiver.
|
||||
|
||||
3.2. Nonce Format
|
||||
|
||||
The nonce passed to the AES-GMAC authentication algorithm has the
|
||||
following layout:
|
||||
|
||||
0 1 2 3
|
||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Salt |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Initialization Vector |
|
||||
| |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
|
||||
Figure 1: Nonce Format
|
||||
|
||||
The components of the nonce are as follows:
|
||||
|
||||
Salt
|
||||
The salt field is a four-octet value that is assigned at the
|
||||
beginning of the security association, and then remains constant
|
||||
for the life of the security association. The salt SHOULD be
|
||||
unpredictable (i.e., chosen at random) before it is selected, but
|
||||
need not be secret. We describe how to set the salt for a
|
||||
Security Association established via the Internet Key Exchange in
|
||||
Section 5.4.
|
||||
|
||||
Initialization Vector
|
||||
The IV field is described in Section 3.1.
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 4]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
3.3. AAD Construction
|
||||
|
||||
Data integrity and data origin authentication are provided for the
|
||||
SPI, (Extended) Sequence Number, Authenticated Payload, Padding, Pad
|
||||
Length, and Next Header fields. This is done by including those
|
||||
fields in the AES-GMAC Additional Authenticated Data (AAD) field.
|
||||
Two formats of the AAD are defined: one for 32-bit sequence numbers,
|
||||
and one for 64-bit extended sequence numbers. The format with 32-bit
|
||||
sequence numbers is shown in Figure 2, and the format with 64-bit
|
||||
extended sequence numbers is shown in Figure 3.
|
||||
|
||||
0 1 2 3
|
||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| SPI |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| 32-bit Sequence Number |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| |
|
||||
~ Authenticated Payload (variable) ~
|
||||
| |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Padding (0-255 bytes) |
|
||||
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| | Pad Length | Next Header |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
|
||||
Figure 2: AAD Format with 32-bit Sequence Number
|
||||
|
||||
0 1 2 3
|
||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| SPI |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| 64-bit Extended Sequence Number |
|
||||
| |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| |
|
||||
~ Authenticated Payload (variable) ~
|
||||
| |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Padding (0-255 bytes) |
|
||||
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| | Pad Length | Next Header |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
|
||||
Figure 3: AAD Format with 64-bit Extended Sequence Number
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 5]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
The use of 32-bit sequence numbers vs. 64-bit extended sequence
|
||||
numbers is determined by the security association (SA) management
|
||||
protocol that is used to create the SA. For IKEv2 [RFC4306] this is
|
||||
negotiated via Transform Type 5, and the default for ESP is to use
|
||||
64-bit extended sequence numbers in the absence of negotiation (e.g.,
|
||||
see Section 2.2.1 of [RFC4303]).
|
||||
|
||||
3.4. Integrity Check Value (ICV)
|
||||
|
||||
The ICV consists solely of the AES-GMAC Authentication Tag. The
|
||||
Authentication Tag MUST NOT be truncated, so the length of the ICV is
|
||||
16 octets.
|
||||
|
||||
3.5. Differences with AES-GCM-ESP
|
||||
|
||||
In this section, we highlight the differences between this
|
||||
specification and AES-GCM-ESP [RFC4106]. The essential difference is
|
||||
that in this document, the AAD consists of the SPI, Sequence Number,
|
||||
and ESP Payload, and the AES-GCM plaintext is zero-length, while in
|
||||
AES-GCM-ESP, the AAD consists only of the SPI and Sequence Number,
|
||||
and the AES-GCM plaintext consists of the ESP Payload. These
|
||||
differences are illustrated in Figure 4. This figure shows the case
|
||||
in which the Extended Sequence Number option is not used. When that
|
||||
option is exercised, the Sequence Number field in the figure would be
|
||||
replaced with the Extended Sequence Number.
|
||||
|
||||
Importantly, ENCR_NULL_AUTH_AES_GMAC is *not* equivalent to AES-GCM-
|
||||
ESP with encryption "turned off". However, the ICV computations
|
||||
performed in both cases are similar because of the structure of the
|
||||
GHASH function [GCM].
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 6]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
+-> +-----------------------+ <-+
|
||||
AES-GCM-ESP | | SPI | |
|
||||
AAD -------+ +-----------------------+ |
|
||||
| | Sequence Number | |
|
||||
+-> +-----------------------+ |
|
||||
| Authentication | |
|
||||
| IV | |
|
||||
+->+-> +-----------------------+ +
|
||||
AES-GCM-ESP | | | |
|
||||
Plaintext -+ ~ ESP Payload ~ |
|
||||
| | | |
|
||||
| +-----------+-----+-----+ |
|
||||
| | Padding | PL | NH | |
|
||||
+----> +-----------+-----+-----+ <-+
|
||||
|
|
||||
ENCR_NULL_AUTH_AES_GMAC AAD --+
|
||||
|
||||
Figure 4: Differences between ENCR_NULL_AUTH_AES_GMAC and AES-GCM-ESP
|
||||
|
||||
3.6. Packet Expansion
|
||||
|
||||
The IV adds an additional eight octets to the packet and the ICV adds
|
||||
an additional 16 octets. These are the only sources of packet
|
||||
expansion, other than the 10-13 bytes taken up by the ESP SPI,
|
||||
Sequence Number, Padding, Pad Length, and Next Header fields (if the
|
||||
minimal amount of padding is used).
|
||||
|
||||
4. The Use of AES-GMAC in AH
|
||||
|
||||
In AUTH_AES_GMAC, the AH Authentication Data field consists of the IV
|
||||
and the Authentication Tag, as shown in Figure 5. Unlike the usual
|
||||
AH case, the Authentication Data field contains both an input to the
|
||||
authentication algorithm (the IV) and the output of the
|
||||
authentication algorithm (the tag). No padding is required in the
|
||||
Authentication Data field, because its length is a multiple of 64
|
||||
bits.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 7]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
0 1 2 3
|
||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Initialization Vector (IV) |
|
||||
| (8 octets) |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| |
|
||||
| Integrity Check Value (ICV) (16 octets) |
|
||||
| |
|
||||
| |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
|
||||
Figure 5: The AUTH_AES_GMAC Authentication Data Format
|
||||
|
||||
The IV is as described in Section 3.1. The Integrity Check Value
|
||||
(ICV) is as described in Section 3.4.
|
||||
|
||||
The GMAC Nonce input is formed as described in Section 3.2. The GMAC
|
||||
AAD input consists of the authenticated data as defined in Section
|
||||
3.1 of [RFC4302]. These values are provided as to that algorithm,
|
||||
along with the secret key, and the resulting authentication tag given
|
||||
as output is used to form the ICV.
|
||||
|
||||
5. IKE Conventions
|
||||
|
||||
This section describes the conventions used to generate keying
|
||||
material and salt values for use with ENCR_NULL_AUTH_AES_GMAC and
|
||||
AUTH_AES_GMAC using the Internet Key Exchange (IKE) versions one
|
||||
[RFC2409] and two [RFC4306].
|
||||
|
||||
5.1. Phase 1 Identifier
|
||||
|
||||
This document does not specify the conventions for using AES-GMAC for
|
||||
IKE Phase 1 negotiations. For AES-GMAC to be used in this manner, a
|
||||
separate specification would be needed, and an Encryption Algorithm
|
||||
Identifier would need to be assigned. Implementations SHOULD use an
|
||||
IKE Phase 1 cipher that is at least as strong as AES-GMAC. The use
|
||||
of AES-CBC [RFC3602] with the same AES key size as used by
|
||||
ENCR_NULL_AUTH_AES_GMAC or AUTH_AES_GMAC is RECOMMENDED.
|
||||
|
||||
5.2. Phase 2 Identifier
|
||||
|
||||
For IKE Phase 2 negotiations, IANA has assigned identifiers as
|
||||
described in Section 9.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 8]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
5.3. Key Length Attribute
|
||||
|
||||
AES-GMAC can be used with any of the three AES key lengths. The way
|
||||
that the key length is indicated is different for AH and ESP.
|
||||
|
||||
For AH, each key length has its own separate integrity transform
|
||||
identifier and algorithm name (Section 9). The IKE Key Length
|
||||
attribute MUST NOT be used with these identifiers. This transform
|
||||
MUST NOT be used with ESP.
|
||||
|
||||
For ESP, there is a single encryption transform identifier (which
|
||||
represents the combined transform) (Section 9). The IKE Key Length
|
||||
attribute MUST be used with each use of this identifier to indicate
|
||||
the key length. The Key Length attribute MUST have a value of 128,
|
||||
192, or 256.
|
||||
|
||||
5.4. Keying Material and Salt Values
|
||||
|
||||
IKE makes use of a pseudo-random function (PRF) to derive keying
|
||||
material. The PRF is used iteratively to derive keying material of
|
||||
arbitrary size, called KEYMAT. Keying material is extracted from the
|
||||
output string without regard to boundaries.
|
||||
|
||||
The size of the KEYMAT for the ENCR_NULL_AUTH_AES_GMAC and
|
||||
AUTH_AES_GMAC MUST be four octets longer than is needed for the
|
||||
associated AES key. The keying material is used as follows:
|
||||
|
||||
ENCR_NULL_AUTH_AES_GMAC with a 128-bit key and AUTH_AES_128_GMAC
|
||||
The KEYMAT requested for each AES-GMAC key is 20 octets. The
|
||||
first 16 octets are the 128-bit AES key, and the remaining four
|
||||
octets are used as the salt value in the nonce.
|
||||
|
||||
ENCR_NULL_AUTH_AES_GMAC with a 192-bit key and AUTH_AES_192_GMAC
|
||||
The KEYMAT requested for each AES-GMAC key is 28 octets. The
|
||||
first 24 octets are the 192-bit AES key, and the remaining four
|
||||
octets are used as the salt value in the nonce.
|
||||
|
||||
ENCR_NULL_AUTH_AES_GMAC with a 256-bit key and AUTH_AES_256_GMAC
|
||||
The KEYMAT requested for each AES-GMAC key is 36 octets. The
|
||||
first 32 octets are the 256-bit AES key, and the remaining four
|
||||
octets are used as the salt value in the nonce.
|
||||
|
||||
6. Test Vectors
|
||||
|
||||
Appendix B of [GCM] provides test vectors that will assist
|
||||
implementers with AES-GMAC.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 9]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
7. Security Considerations
|
||||
|
||||
Since the authentication coverage is different between AES-GCM-ESP
|
||||
and this specification (see Figure 4), it is worth pointing out that
|
||||
both specifications are secure. In ENCR_NULL_AUTH_AES_GMAC, the IV
|
||||
is not included in either the plaintext or the additional
|
||||
authenticated data. This does not adversely affect security, because
|
||||
the IV field only provides an input to the GMAC IV, which is not
|
||||
required to be authenticated (see [GCM]). In AUTH_AES_GMAC, the IV
|
||||
is included in the additional authenticated data. This fact has no
|
||||
adverse effect on security; it follows from the property that GMAC is
|
||||
secure even against attacks in which the adversary can manipulate
|
||||
both the IV and the message. Even an adversary with these powerful
|
||||
capabilities cannot forge an authentication tag for any message
|
||||
(other than one that was submitted to the chosen-message oracle).
|
||||
Since such an adversary could easily choose messages that contain the
|
||||
IVs with which they correspond, there are no security problems with
|
||||
the inclusion of the IV in the AAD.
|
||||
|
||||
GMAC is provably secure against adversaries that can adaptively
|
||||
choose plaintexts, ICVs and the AAD field, under standard
|
||||
cryptographic assumptions (roughly, that the output of the underlying
|
||||
cipher under a randomly chosen key is indistinguishable from a
|
||||
randomly selected output). Essentially, this means that, if used
|
||||
within its intended parameters, a break of GMAC implies a break of
|
||||
the underlying block cipher. The proof of security is available in
|
||||
[GCMP].
|
||||
|
||||
The most important security consideration is that the IV never
|
||||
repeats for a given key. In part, this is handled by disallowing the
|
||||
use of AES-GMAC when using statically configured keys, as discussed
|
||||
in Section 2.
|
||||
|
||||
When IKE is used to establish fresh keys between two peer entities,
|
||||
separate keys are established for the two traffic flows. If a
|
||||
different mechanism is used to establish fresh keys, one that
|
||||
establishes only a single key to protect packets, then there is a
|
||||
high probability that the peers will select the same IV values for
|
||||
some packets. Thus, to avoid counter block collisions, ESP or AH
|
||||
implementations that permit use of the same key for protecting
|
||||
packets with the same peer MUST ensure that the two peers assign
|
||||
different salt values to the security association (SA).
|
||||
|
||||
The other consideration is that, as with any block cipher mode of
|
||||
operation, the security of all data protected under a given security
|
||||
association decreases slightly with each message.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 10]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
To protect against this problem, implementations MUST generate a
|
||||
fresh key before processing 2^64 blocks of data with a given key.
|
||||
Note that it is impossible to reach this limit when using 32-bit
|
||||
Sequence Numbers.
|
||||
|
||||
Note that, for each message, GMAC calls the block cipher only once.
|
||||
|
||||
8. Design Rationale
|
||||
|
||||
This specification was designed to be as similar to AES-GCM-ESP
|
||||
[RFC4106] as possible. We re-use the design and implementation
|
||||
experience from that specification. We include all three AES key
|
||||
sizes since AES-GCM-ESP supports all of those sizes, and the larger
|
||||
key sizes provide future users with more high-security options.
|
||||
|
||||
9. IANA Considerations
|
||||
|
||||
IANA has assigned the following IKEv2 parameters. For the use of AES
|
||||
GMAC in AH, the following integrity (type 3) transform identifiers
|
||||
have been assigned:
|
||||
|
||||
"9" for AUTH_AES_128_GMAC
|
||||
|
||||
"10" for AUTH_AES_192_GMAC
|
||||
|
||||
"11" for AUTH_AES_256_GMAC
|
||||
|
||||
For the use of AES-GMAC in ESP, the following encryption (type 1)
|
||||
transform identifier has been assigned:
|
||||
|
||||
"21" for ENCR_NULL_AUTH_AES_GMAC
|
||||
|
||||
10. Acknowledgements
|
||||
|
||||
Our discussions with Fabio Maino and David Black significantly
|
||||
improved this specification, and Tero Kivinen provided us with useful
|
||||
comments. Steve Kent provided guidance on ESP interactions. This
|
||||
work is closely modeled after AES-GCM, which itself is closely
|
||||
modeled after Russ Housley's AES-CCM transform [RFC4309].
|
||||
Additionally, the GCM mode of operation was originally conceived as
|
||||
an improvement to the CWC mode [CWC] in which Doug Whiting and Yoshi
|
||||
Kohno participated. We express our thanks to Fabio, David, Tero,
|
||||
Steve, Russ, Doug, and Yoshi.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 11]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
11. References
|
||||
|
||||
11.1. Normative References
|
||||
|
||||
[GCM] McGrew, D. and J. Viega, "The Galois/Counter Mode of
|
||||
Operation (GCM)", Submission to NIST. http://
|
||||
csrc.nist.gov/CryptoToolkit/modes/proposedmodes/gcm/
|
||||
gcm-spec.pdf, January 2004.
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC3602] Frankel, S., Glenn, R., and S. Kelly, "The AES-CBC Cipher
|
||||
Algorithm and Its Use with IPsec", RFC 3602, September
|
||||
2003.
|
||||
|
||||
11.2. Informative References
|
||||
|
||||
[CWC] Kohno, T., Viega, J., and D. Whiting, "CWC: A high-
|
||||
performance conventional authenticated encryption mode",
|
||||
Fast Software Encryption.
|
||||
http://eprint.iacr.org/2003/106.pdf, February 2004.
|
||||
|
||||
[GCMP] McGrew, D. and J. Viega, "The Security and Performance of
|
||||
the Galois/Counter Mode (GCM)", Proceedings of INDOCRYPT
|
||||
'04, http://eprint.iacr.org/2004/193, December 2004.
|
||||
|
||||
[RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange
|
||||
(IKE)", RFC 2409, November 1998.
|
||||
|
||||
[RFC4106] Viega, J. and D. McGrew, "The Use of Galois/Counter Mode
|
||||
(GCM) in IPsec Encapsulating Security Payload (ESP)", RFC
|
||||
4106, June 2005.
|
||||
|
||||
[RFC4302] Kent, S., "IP Authentication Header", RFC 4302, December
|
||||
2005.
|
||||
|
||||
[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", RFC
|
||||
4303, December 2005.
|
||||
|
||||
[RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC
|
||||
4306, December 2005.
|
||||
|
||||
[RFC4309] Housley, R., "Using Advanced Encryption Standard (AES) CCM
|
||||
Mode with IPsec Encapsulating Security Payload (ESP)", RFC
|
||||
4309, December 2005.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 12]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
David A. McGrew
|
||||
Cisco Systems, Inc.
|
||||
510 McCarthy Blvd.
|
||||
Milpitas, CA 95035
|
||||
US
|
||||
|
||||
Phone: (408) 525 8651
|
||||
EMail: mcgrew@cisco.com
|
||||
URI: http://www.mindspring.com/~dmcgrew/dam.htm
|
||||
|
||||
|
||||
John Viega
|
||||
McAfee, Inc.
|
||||
1145 Herndon Parkway, Suite 500
|
||||
Herndon, VA 20170
|
||||
|
||||
EMail: viega@list.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 13]
|
||||
|
||||
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
||||
|
||||
|
||||
Full 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.
|
||||
|
||||
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.
|
||||
|
||||
Intellectual Property
|
||||
|
||||
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.
|
||||
|
||||
Acknowledgement
|
||||
|
||||
Funding for the RFC Editor function is provided by the IETF
|
||||
Administrative Support Activity (IASA).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
McGrew & Viega Standards Track [Page 14]
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,619 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Network Working Group P. Eronen
|
||||
Request for Comments: 4739 Nokia
|
||||
Category: Experimental J. Korhonen
|
||||
TeliaSonera
|
||||
November 2006
|
||||
|
||||
|
||||
Multiple Authentication Exchanges
|
||||
in the Internet Key Exchange (IKEv2) Protocol
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This memo defines an Experimental Protocol for the Internet
|
||||
community. It does not specify an Internet standard of any kind.
|
||||
Discussion and suggestions for improvement are requested.
|
||||
Distribution of this memo is unlimited.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The IETF Trust (2006).
|
||||
|
||||
Abstract
|
||||
|
||||
The Internet Key Exchange (IKEv2) protocol supports several
|
||||
mechanisms for authenticating the parties, including signatures with
|
||||
public-key certificates, shared secrets, and Extensible
|
||||
Authentication Protocol (EAP) methods. Currently, each endpoint uses
|
||||
only one of these mechanisms to authenticate itself. This document
|
||||
specifies an extension to IKEv2 that allows the use of multiple
|
||||
authentication exchanges, using either different mechanisms or the
|
||||
same mechanism. This extension allows, for instance, performing
|
||||
certificate-based authentication of the client host followed by an
|
||||
EAP authentication of the user. When backend authentication servers
|
||||
are used, they can belong to different administrative domains, such
|
||||
as the network access provider and the service provider.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 1]
|
||||
|
||||
RFC 4739 Multiple Auth. Exchanges in IKEv2 November 2006
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction ....................................................3
|
||||
1.1. Usage Scenarios ............................................4
|
||||
1.2. Terminology ................................................5
|
||||
2. Solution ........................................................5
|
||||
2.1. Solution Overview ..........................................5
|
||||
2.2. Example 1: Multiple EAP Authentications ....................6
|
||||
2.3. Example 2: Mixed EAP and Certificate Authentications .......7
|
||||
2.4. Example 3: Multiple Initiator Certificates .................8
|
||||
2.5. Example 4: Multiple Responder Certificates .................8
|
||||
3. Payload Formats .................................................9
|
||||
3.1. MULTIPLE_AUTH_SUPPORTED Notify Payload .....................9
|
||||
3.2. ANOTHER_AUTH_FOLLOWS Notify Payload ........................9
|
||||
4. IANA Considerations .............................................9
|
||||
5. Security Considerations .........................................9
|
||||
6. Acknowledgments ................................................10
|
||||
7. References .....................................................10
|
||||
7.1. Normative References ......................................10
|
||||
7.2. Informative References ....................................10
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 2]
|
||||
|
||||
RFC 4739 Multiple Auth. Exchanges in IKEv2 November 2006
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
IKEv2 [IKEv2] supports several mechanisms for parties involved in the
|
||||
IKE_SA (IKE security association). These include signatures with
|
||||
public-key certificates, shared secrets, and Extensible
|
||||
Authentication Protocol (EAP) methods.
|
||||
|
||||
Currently, each endpoint uses only one of these mechanisms to
|
||||
authenticate itself. However, there are scenarios where making the
|
||||
authorization decision in IKEv2 (whether to allow access or not)
|
||||
requires using several of these methods.
|
||||
|
||||
For instance, it may be necessary to authenticate both the host
|
||||
(machine) requesting access, and the user currently using the host.
|
||||
These two authentications would use two separate sets of credentials
|
||||
(such as certificates and associated private keys) and might even use
|
||||
different authentication mechanisms.
|
||||
|
||||
To take another example, when an operator is hosting a Virtual
|
||||
Private Network (VPN) gateway service for a third party, it may be
|
||||
necessary to authenticate the client to both the operator (for
|
||||
billing purposes) and the third party's Authentication,
|
||||
Authorization, and Accounting (AAA) server (for authorizing access to
|
||||
the third party's internal network).
|
||||
|
||||
This document specifies an extension to IKEv2 that allows the use of
|
||||
multiple authentication exchanges, using either different mechanisms
|
||||
or the same mechanism. This extension allows, for instance,
|
||||
performing certificate-based authentication of the client host
|
||||
followed by an EAP authentication of the user.
|
||||
|
||||
Each authentication exchange requiring communication with backend AAA
|
||||
servers may be directed to different backend AAA servers, located
|
||||
even in different administrative domains. However, details of the
|
||||
communication between the IKEv2 gateway and the backend
|
||||
authentication servers are beyond the scope of this document. In
|
||||
particular, this document does not specify any changes to existing
|
||||
AAA protocols, and it does not require the use of any particular AAA
|
||||
protocol.
|
||||
|
||||
In case of several EAP authentications, it is important to notice
|
||||
that they are not a "sequence" (as described in Section 2.1 of
|
||||
[EAP]), but separate independent EAP conversations, which are usually
|
||||
also terminated in different EAP servers. Multiple authentication
|
||||
methods within a single EAP conversation are still prohibited as
|
||||
described in Section 2.1 of [EAP]. Using multiple independent EAP
|
||||
conversations is similar to the separate Network Access Provider
|
||||
(NAP) and Internet Service Provider (ISP) authentication exchanges
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 3]
|
||||
|
||||
RFC 4739 Multiple Auth. Exchanges in IKEv2 November 2006
|
||||
|
||||
|
||||
planned for [PANA]. The discovery of the appropriate EAP server for
|
||||
each EAP authentication conversation is based on AAA routing.
|
||||
|
||||
1.1. Usage Scenarios
|
||||
|
||||
Figure 1 shows an example architecture of an operator-hosted VPN
|
||||
scenario that could benefit from a two-phase authentication within
|
||||
the IKEv2 exchange. First, the client authenticates towards the
|
||||
Network Access Provider (NAP) and gets access to the NAP-hosted VPN
|
||||
gateway. The first-phase authentication involves the backend AAA
|
||||
server of the NAP. After the first authentication, the client
|
||||
initiates the second authentication round that also involves the
|
||||
Third Party's backend AAA server. If both authentications succeed,
|
||||
the required IPsec tunnels are set up and the client can access
|
||||
protected networks behind the Third Party.
|
||||
|
||||
|
||||
Client *Network Access Provider*
|
||||
+---------+ +---------+ +-----+
|
||||
| | | NAP's | | NAP |
|
||||
|Protected| IPsec SAs | Tunnel | AAA Protocol | AAA |
|
||||
|Endpoint |<------------------>|Endpoint |<------------>|Serv/|
|
||||
| | | | |Proxy|
|
||||
+---------+ +---------+ +-----+
|
||||
^ ^
|
||||
IPsec or / AAA |
|
||||
Leased Line / Protocol |
|
||||
/ |
|
||||
v |
|
||||
+---------+ *Third Party* v
|
||||
|3rd Party| +-----+
|
||||
Protected | Tunnel | | 3rd |
|
||||
Subnet <----|Endpoint | |Party|
|
||||
| | | AAA |
|
||||
+---------+ +-----+
|
||||
|
||||
Figure 1: Two-phase authentication used to gain access to
|
||||
the Third Party network via Network Access Provider. AAA
|
||||
traffic goes through NAP's AAA server.
|
||||
|
||||
The NAP's AAA server can be used to proxy the AAA traffic to the
|
||||
Third Party's backend AAA server. Alternatively, the AAA traffic
|
||||
from the NAP's tunnel endpoint could go directly to the Third Party's
|
||||
backend AAA servers. However, this is more or less an AAA routing
|
||||
issue.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 4]
|
||||
|
||||
RFC 4739 Multiple Auth. Exchanges in IKEv2 November 2006
|
||||
|
||||
|
||||
1.2. Terminology
|
||||
|
||||
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 [KEYWORDS].
|
||||
|
||||
The terms and abbreviations "authenticator", "backend authentication
|
||||
server", "EAP server", and "peer" in this document are to be
|
||||
interpreted as described in [EAP].
|
||||
|
||||
When messages containing IKEv2 payloads are described, optional
|
||||
payloads are shown in brackets (for instance, "[FOO]"), and a plus
|
||||
sign indicates that a payload can be repeated one or more times (for
|
||||
instance, "FOO+").
|
||||
|
||||
2. Solution
|
||||
|
||||
2.1. Solution Overview
|
||||
|
||||
The peers announce support for this IKEv2 extension by including a
|
||||
MULTIPLE_AUTH_SUPPORTED notification in the IKE_SA_INIT response
|
||||
(responder) and the first IKE_AUTH request (initiator).
|
||||
|
||||
If both peers support this extension, either of them can announce
|
||||
that it wishes to have a second authentication by including an
|
||||
ANOTHER_AUTH_FOLLOWS notification in any IKE_AUTH message that
|
||||
contains an AUTH payload. This indicates that the peer sending the
|
||||
ANOTHER_AUTH_FOLLOWS wishes to authenticate another set of
|
||||
credentials to the other peer. The next IKE_AUTH message sent by
|
||||
this peer will contain a second identity payload (IDi or IDr) and
|
||||
starts another authentication exchange. The IKE_AUTH phase is
|
||||
considered successful only if all the individual authentication
|
||||
exchanges complete successfully.
|
||||
|
||||
It is assumed that both peers know what credentials they want to
|
||||
present; there is no negotiation about, for instance, what type of
|
||||
authentication is to be done. As in IKEv2, EAP-based authentication
|
||||
is always requested by the initiator (by omitting the AUTH payload).
|
||||
|
||||
The AUTH payloads are calculated as specified in [IKEv2] Sections
|
||||
2.15 and 2.16, where IDi' refers to the latest IDi payload sent by
|
||||
the initiator, and IDr' refers to the latest IDr payload sent by the
|
||||
responder. If EAP methods that do not generate shared keys are used,
|
||||
it is possible that several AUTH payloads with identical contents are
|
||||
sent. When such EAP methods are used, the purpose of the AUTH
|
||||
payload is simply to delimit the authentication exchanges, and ensure
|
||||
that the IKE_SA_INIT request/response messages were not modified.
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 5]
|
||||
|
||||
RFC 4739 Multiple Auth. Exchanges in IKEv2 November 2006
|
||||
|
||||
|
||||
2.2. Example 1: Multiple EAP Authentications
|
||||
|
||||
This example shows certificate-based authentication of the responder
|
||||
followed by an EAP authentication exchange (messages 1-10). When the
|
||||
first EAP exchange is ending (the initiator is sending its AUTH
|
||||
payload), the initiator announces that it wishes to have a second
|
||||
authentication exchange by including an ANOTHER_AUTH_FOLLOWS
|
||||
notification (message 9).
|
||||
|
||||
After this, a second authentication exchange begins. The initiator
|
||||
sends a new IDi payload but no AUTH payload (message 11), indicating
|
||||
that EAP will be used. After that, another EAP authentication
|
||||
exchange follows (messages 12-18).
|
||||
|
||||
Initiator Responder
|
||||
----------- -----------
|
||||
1. HDR, SA, KE, Ni -->
|
||||
<-- 2. HDR, SA, KE, Nr, [CERTREQ],
|
||||
N(MULTIPLE_AUTH_SUPPORTED)
|
||||
3. HDR, SK { IDi, [CERTREQ+], [IDr],
|
||||
SA, TSi, TSr, N(MULTIPLE_AUTH_SUPPORTED) } -->
|
||||
<-- 4. HDR, SK { IDr, [CERT+], AUTH,
|
||||
EAP(Request) }
|
||||
5. HDR, SK { EAP(Response) } -->
|
||||
<-- 6. HDR, SK { EAP(Request) }
|
||||
7. HDR, SK { EAP(Response) } -->
|
||||
<-- 8. HDR, SK { EAP(Success) }
|
||||
9. HDR, SK { AUTH,
|
||||
N(ANOTHER_AUTH_FOLLOWS) } -->
|
||||
<-- 10. HDR, SK { AUTH }
|
||||
11. HDR, SK { IDi } -->
|
||||
<-- 12. HDR, SK { EAP(Request) }
|
||||
13. HDR, SK { EAP(Response) } -->
|
||||
<-- 14. HDR, SK { EAP(Request) }
|
||||
15. HDR, SK { EAP(Response) } -->
|
||||
<-- 16. HDR, SK { EAP(Success) }
|
||||
17. HDR, SK { AUTH } -->
|
||||
<-- 18. HDR, SK { AUTH, SA, TSi, TSr }
|
||||
|
||||
Example 1: Certificate-based authentication of the
|
||||
responder, followed by two EAP authentication exchanges.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 6]
|
||||
|
||||
RFC 4739 Multiple Auth. Exchanges in IKEv2 November 2006
|
||||
|
||||
|
||||
2.3. Example 2: Mixed EAP and Certificate Authentications
|
||||
|
||||
Another example is shown below: here both the initiator and the
|
||||
responder are first authenticated using certificates (or shared
|
||||
secrets); this is followed by an EAP authentication exchange.
|
||||
|
||||
Initiator Responder
|
||||
----------- -----------
|
||||
1. HDR, SA, KE, Ni -->
|
||||
<-- 2. HDR, SA, KE, Nr, [CERTREQ],
|
||||
N(MULTIPLE_AUTH_SUPPORTED)
|
||||
3. HDR, SK { IDi, [CERT+], [CERTREQ+], [IDr], AUTH,
|
||||
SA, TSi, TSr, N(MULTIPLE_AUTH_SUPPORTED),
|
||||
N(ANOTHER_AUTH_FOLLOWS) } -->
|
||||
<-- 4. HDR, SK { IDr, [CERT+], AUTH }
|
||||
5. HDR, SK { IDi } -->
|
||||
<-- 6. HDR, SK { EAP(Request) }
|
||||
7. HDR, SK { EAP(Response) } -->
|
||||
<-- 8. HDR, SK { EAP(Request) }
|
||||
9. HDR, SK { EAP(Response) } -->
|
||||
<-- 10. HDR, SK { EAP(Success) }
|
||||
11. HDR, SK { AUTH } -->
|
||||
<-- 12. HDR, SK { AUTH, SA, TSi, TSr }
|
||||
|
||||
Example 2: Certificate-based (or shared-secret-based)
|
||||
authentication of the initiator and the responder,
|
||||
followed by an EAP authentication exchange.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 7]
|
||||
|
||||
RFC 4739 Multiple Auth. Exchanges in IKEv2 November 2006
|
||||
|
||||
|
||||
2.4. Example 3: Multiple Initiator Certificates
|
||||
|
||||
This example shows yet another possibility: the initiator has two
|
||||
different certificates (and associated private keys), and
|
||||
authenticates both of them to the responder.
|
||||
|
||||
Initiator Responder
|
||||
----------- -----------
|
||||
1. HDR, SA, KE, Ni -->
|
||||
<-- 2. HDR, SA, KE, Nr, [CERTREQ],
|
||||
N(MULTIPLE_AUTH_SUPPORTED)
|
||||
3. HDR, SK { IDi, [CERT+], [CERTREQ+], [IDr], AUTH,
|
||||
SA, TSi, TSr, N(MULTIPLE_AUTH_SUPPORTED),
|
||||
N(ANOTHER_AUTH_FOLLOWS) } -->
|
||||
<-- 4. HDR, SK { IDr, [CERT+], AUTH }
|
||||
5. HDR, SK { IDi, [CERT+], AUTH } -->
|
||||
<-- 6. HDR, SK { SA, TSi, TSr }
|
||||
|
||||
Example 3: Two certificate-based authentications of the
|
||||
initiator, and one certificate-based authentication
|
||||
of the responder.
|
||||
|
||||
2.5. Example 4: Multiple Responder Certificates
|
||||
|
||||
This example shows yet another possibility: the responder has two
|
||||
different certificates (and associated private keys), and
|
||||
authenticates both of them to the initiator.
|
||||
|
||||
Initiator Responder
|
||||
----------- -----------
|
||||
1. HDR, SA, KE, Ni -->
|
||||
<-- 2. HDR, SA, KE, Nr, [CERTREQ],
|
||||
N(MULTIPLE_AUTH_SUPPORTED)
|
||||
3. HDR, SK { IDi, [CERT+], [CERTREQ+], [IDr], AUTH,
|
||||
SA, TSi, TSr, N(MULTIPLE_AUTH_SUPPORTED) } -->
|
||||
<-- 4. HDR, SK { IDr, [CERT+], AUTH,
|
||||
N(ANOTHER_AUTH_FOLLOWS) }
|
||||
5. HDR, SK { } -->
|
||||
<-- 6. HDR, SK { IDr, [CERT+], AUTH,
|
||||
SA, TSi, TSr }
|
||||
|
||||
Example 4: Two certificate-based authentications of the
|
||||
responder, and one certificate-based authentication
|
||||
of the initiator.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 8]
|
||||
|
||||
RFC 4739 Multiple Auth. Exchanges in IKEv2 November 2006
|
||||
|
||||
|
||||
3. Payload Formats
|
||||
|
||||
3.1. MULTIPLE_AUTH_SUPPORTED Notify Payload
|
||||
|
||||
The MULTIPLE_AUTH_SUPPORTED notification is included in the
|
||||
IKE_SA_INIT response or the first IKE_AUTH request to indicate that
|
||||
the peer supports this specification. The Notify Message Type is
|
||||
MULTIPLE_AUTH_SUPPORTED (16404). The Protocol ID and SPI Size fields
|
||||
MUST be set to zero, and there is no data associated with this Notify
|
||||
type.
|
||||
|
||||
3.2. ANOTHER_AUTH_FOLLOWS Notify Payload
|
||||
|
||||
The ANOTHER_AUTH_FOLLOWS notification payload is included in an
|
||||
IKE_AUTH message containing an AUTH payload to indicate that the peer
|
||||
wants to continue with another authentication exchange. The Notify
|
||||
Message Type is ANOTHER_AUTH_FOLLOWS (16405). The Protocol ID and
|
||||
SPI Size fields MUST be set to zero, and there is no data associated
|
||||
with this Notify type.
|
||||
|
||||
4. IANA Considerations
|
||||
|
||||
This document defines two new IKEv2 notifications,
|
||||
MULTIPLE_AUTH_SUPPORTED and ANOTHER_AUTH_FOLLOWS, whose values are
|
||||
allocated from the "IKEv2 Notify Message Types" namespace defined in
|
||||
[IKEv2].
|
||||
|
||||
This document does not define any new namespaces to be managed by
|
||||
IANA.
|
||||
|
||||
5. Security Considerations
|
||||
|
||||
Security considerations for IKEv2 are discussed in [IKEv2]. The
|
||||
reader is encouraged to pay special attention to considerations
|
||||
relating to the use of EAP methods that do not generate shared keys.
|
||||
However, the use of multiple authentication exchanges results in at
|
||||
least one new security consideration.
|
||||
|
||||
In normal IKEv2, the responder authenticates the initiator before
|
||||
revealing its identity (except when EAP is used). When multiple
|
||||
authentication exchanges are used to authenticate the initiator, the
|
||||
responder has to reveal its identity before all of the initiator
|
||||
authentication exchanges have been completed.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 9]
|
||||
|
||||
RFC 4739 Multiple Auth. Exchanges in IKEv2 November 2006
|
||||
|
||||
|
||||
6. Acknowledgments
|
||||
|
||||
The authors would like to thank Bernard Aboba, Jari Arkko, Spencer
|
||||
Dawkins, Lakshminath Dondeti, Henry Haverinen, Russ Housley, Mika
|
||||
Joutsenvirta, Charlie Kaufman, Tero Kivinen, Yoav Nir, Magnus
|
||||
Nystrom, Mohan Parthasarathy, and Juha Savolainen for their valuable
|
||||
comments.
|
||||
|
||||
7. References
|
||||
|
||||
7.1. Normative References
|
||||
|
||||
[IKEv2] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
|
||||
RFC 4306, December 2005.
|
||||
|
||||
[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", RFC 2119, March 1997.
|
||||
|
||||
7.2. Informative References
|
||||
|
||||
[EAP] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
|
||||
Levkowetz, "Extensible Authentication Protocol (EAP)",
|
||||
RFC 3748, June 2004.
|
||||
|
||||
[PANA] Yegin, A., Ohba, Y., Penno, R., Tsirtsis, G., and C.
|
||||
Wang, "Protocol for Carrying Authentication for Network
|
||||
Access (PANA) Requirements", RFC 4058, May 2005.
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Pasi Eronen
|
||||
Nokia Research Center
|
||||
P.O. Box 407
|
||||
FIN-00045 Nokia Group
|
||||
Finland
|
||||
|
||||
EMail: pasi.eronen@nokia.com
|
||||
|
||||
|
||||
Jouni Korhonen
|
||||
TeliaSonera
|
||||
P.O. Box 970
|
||||
FIN-00051 Sonera
|
||||
Finland
|
||||
|
||||
EMail: jouni.korhonen@teliasonera.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 10]
|
||||
|
||||
RFC 4739 Multiple Auth. Exchanges in IKEv2 November 2006
|
||||
|
||||
|
||||
Full Copyright Statement
|
||||
|
||||
Copyright (C) The IETF Trust (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.
|
||||
|
||||
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, THE IETF TRUST,
|
||||
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.
|
||||
|
||||
Intellectual Property
|
||||
|
||||
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.
|
||||
|
||||
Acknowledgement
|
||||
|
||||
Funding for the RFC Editor function is currently provided by the
|
||||
Internet Society.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen & Korhonen Experimental [Page 11]
|
||||
|
@ -1,619 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Network Working Group M. Myers
|
||||
Request for Comments: 4806 TraceRoute Security LLC
|
||||
Category: Standards Track H. Tschofenig
|
||||
Siemens Networks GmbH & Co KG
|
||||
February 2007
|
||||
|
||||
|
||||
Online Certificate Status Protocol (OCSP) Extensions to IKEv2
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This document specifies an Internet standards track protocol for the
|
||||
Internet community, and requests discussion and suggestions for
|
||||
improvements. Please refer to the current edition of the "Internet
|
||||
Official Protocol Standards" (STD 1) for the standardization state
|
||||
and status of this protocol. Distribution of this memo is unlimited.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The IETF Trust (2006).
|
||||
|
||||
Abstract
|
||||
|
||||
While the Internet Key Exchange Protocol version 2 (IKEv2) supports
|
||||
public key based authentication, the corresponding use of in-band
|
||||
Certificate Revocation Lists (CRL) is problematic due to unbounded
|
||||
CRL size. The size of an Online Certificate Status Protocol (OCSP)
|
||||
response is however well-bounded and small. This document defines
|
||||
the "OCSP Content" extension to IKEv2. A CERTREQ payload with "OCSP
|
||||
Content" identifies zero or more trusted OCSP responders and is a
|
||||
request for inclusion of an OCSP response in the IKEv2 handshake. A
|
||||
cooperative recipient of such a request responds with a CERT payload
|
||||
containing the appropriate OCSP response. This content is
|
||||
recognizable via the same "OCSP Content" identifier.
|
||||
|
||||
When certificates are used with IKEv2, the communicating peers need a
|
||||
mechanism to determine the revocation status of the peer's
|
||||
certificate. OCSP is one such mechanism. This document applies when
|
||||
OCSP is desired and security policy prevents one of the IKEv2 peers
|
||||
from accessing the relevant OCSP responder directly. Firewalls are
|
||||
often deployed in a manner that prevents such access by IKEv2 peers
|
||||
outside of an enterprise network.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 1]
|
||||
|
||||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
3. Extension Definition . . . . . . . . . . . . . . . . . . . . . 4
|
||||
3.1. OCSP Request . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
3.2. OCSP Response . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
4. Extension Requirements . . . . . . . . . . . . . . . . . . . . 5
|
||||
4.1. Request for OCSP Support . . . . . . . . . . . . . . . . . 5
|
||||
4.2. Response to OCSP Support . . . . . . . . . . . . . . . . . 6
|
||||
5. Examples and Discussion . . . . . . . . . . . . . . . . . . . 6
|
||||
5.1. Peer to Peer . . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
5.2. Extended Authentication Protocol (EAP) . . . . . . . . . . 7
|
||||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 8
|
||||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
|
||||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9
|
||||
9. Normative References . . . . . . . . . . . . . . . . . . . . . 9
|
||||
|
||||
1. Introduction
|
||||
|
||||
Version 2 of the Internet Key Exchange (IKE) protocol [IKEv2]
|
||||
supports a range of authentication mechanisms, including the use of
|
||||
public key based authentication. Confirmation of certificate
|
||||
reliability is essential in order to achieve the security assurances
|
||||
public key cryptography provides. One fundamental element of such
|
||||
confirmation is reference to certificate revocation status (see
|
||||
[RFC3280] for additional detail).
|
||||
|
||||
The traditional means of determining certificate revocation status is
|
||||
through the use of Certificate Revocation Lists (CRLs). IKEv2 allows
|
||||
CRLs to be exchanged in-band via the CERT payload.
|
||||
|
||||
However, CRLs can grow unbounded in size. Many real-world examples
|
||||
exist to demonstrate the impracticality of including a multi-megabyte
|
||||
file in an IKE exchange. This constraint is particularly acute in
|
||||
bandwidth-limited environments (e.g., mobile communications). The
|
||||
net effect is exclusion of in-band CRLs in favor of out-of-band (OOB)
|
||||
acquisition of these data, should they even be used at all.
|
||||
|
||||
Reliance on OOB methods can be further complicated if access to
|
||||
revocation data requires use of IPsec (and therefore IKE) to
|
||||
establish secure and authorized access to the CRLs of an IKE
|
||||
participant. Such network access deadlock further contributes to a
|
||||
reduced reliance on the status of certificate revocations in favor of
|
||||
blind trust.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 2]
|
||||
|
||||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||||
|
||||
|
||||
OCSP [RFC2560] offers a useful alternative. The size of an OCSP
|
||||
response is bounded and small and therefore suitable for in-band
|
||||
IKEv2 signaling of a certificate's revocation status.
|
||||
|
||||
This document defines an extension to IKEv2 that enables the use of
|
||||
OCSP for in-band signaling of certificate revocation status. A new
|
||||
content encoding is defined for use in the CERTREQ and CERT payloads.
|
||||
A CERTREQ payload with "OCSP Content" identifies zero or more trusted
|
||||
OCSP responders and is a request for inclusion of an OCSP response in
|
||||
the IKEv2 handshake. A cooperative recipient of such a request
|
||||
responds with a CERT payload containing the appropriate OCSP
|
||||
response. This content is recognizable via the same "OCSP Content"
|
||||
identifier.
|
||||
|
||||
2. Terminology
|
||||
|
||||
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].
|
||||
|
||||
This document defines the following terms:
|
||||
|
||||
OCSP request:
|
||||
|
||||
An OCSP request refers to the CERTREQ payload that contains a new
|
||||
content encoding, referred to as OCSP Content, that conforms to
|
||||
the definition and behavior specified in Section 3.1.
|
||||
|
||||
OCSP response:
|
||||
|
||||
An OCSP response refers to the CERT payload that contains a new
|
||||
content encoding, referred to as OCSP Content, that conforms to
|
||||
the definition and behavior specified in Section 3.2.
|
||||
|
||||
OCSP responder:
|
||||
|
||||
The term OCSP responder refers to the entity that accepts requests
|
||||
from an OCSP client and returns responses as defined in [RFC2560].
|
||||
Note that the OCSP responder does not refer to the party that
|
||||
sends the CERT message.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 3]
|
||||
|
||||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||||
|
||||
|
||||
3. Extension Definition
|
||||
|
||||
With reference to Section 3.6 of [IKEv2], the values for the Cert
|
||||
Encoding field of the CERT payload are extended as follows (see also
|
||||
the IANA Considerations section of this document):
|
||||
|
||||
Certificate Encoding Value
|
||||
-------------------- -----
|
||||
OCSP Content 14
|
||||
|
||||
3.1. OCSP Request
|
||||
|
||||
A value of OCSP Content (14) in the Cert Encoding field of a CERTREQ
|
||||
Payload indicates the presence of zero or more OCSP responder
|
||||
certificate hashes in the Certificate Authority field of the CERTREQ
|
||||
payload. Section 2.2 of [RFC2560] defines responses, which belong to
|
||||
one of the following three groups:
|
||||
|
||||
(a) the CA who issued the certificate
|
||||
|
||||
(b) a Trusted Responder whose public key is trusted by the requester
|
||||
|
||||
(c) a CA Designated Responder (Authorized Responder) who holds a
|
||||
specially marked certificate issued directly by the CA,
|
||||
indicating that the responder may issue OCSP responses for that
|
||||
CA
|
||||
|
||||
In case of (a), the use of hashes in the CERTREQ message is not
|
||||
needed since the OCSP response is signed by the CA who issued the
|
||||
certificate. In case of (c), the OCSP response is signed by the CA
|
||||
Designated Responder whereby the sender of the CERTREQ message does
|
||||
not know the public key in advance. The presence of OCSP Content in
|
||||
a CERTREQ message will identify one or more OCSP responders trusted
|
||||
by the sender in case of (b).
|
||||
|
||||
The presence of OCSP Content (14) in a CERTREQ message:
|
||||
|
||||
1. identifies zero or more OCSP responders trusted by the sender;
|
||||
|
||||
2. notifies the recipient of sender's support for the OCSP extension
|
||||
to IKEv2; and
|
||||
|
||||
3. notifies the recipient of sender's desire to receive OCSP
|
||||
confirmation in a subsequent CERT payload.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 4]
|
||||
|
||||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||||
|
||||
|
||||
3.2. OCSP Response
|
||||
|
||||
A value of OCSP Content (14) in the Cert Encoding field of a CERT
|
||||
Payload indicates the presence of an OCSP response in the Certificate
|
||||
Data field of the CERT payload.
|
||||
|
||||
Correlation between an OCSP response CERT payload and a corresponding
|
||||
CERT payload carrying a certificate can be achieved by matching the
|
||||
OCSP response CertID field to the certificate. See [RFC2560] for the
|
||||
definition of OCSP response content.
|
||||
|
||||
4. Extension Requirements
|
||||
|
||||
4.1. Request for OCSP Support
|
||||
|
||||
Section 3.7 of [IKEv2] allows for the concatenation of trust anchor
|
||||
hashes as the Certification Authority value of a single CERTREQ
|
||||
message. There is no means however to indicate which among those
|
||||
hashes, if present, relates to the certificate of a trusted OCSP
|
||||
responder.
|
||||
|
||||
Therefore, an OCSP request, as defined in Section 3.1 above, is
|
||||
transmitted separate from any other CERTREQ payloads in an IKEv2
|
||||
exchange.
|
||||
|
||||
Where it is useful to identify more than one trusted OCSP responder,
|
||||
each such identification SHALL be concatenated in a manner identical
|
||||
to the method documented in Section 3.7 of [IKEv2] regarding the
|
||||
assembly of multiple trust anchor hashes.
|
||||
|
||||
The Certification Authority value in an OCSP request CERTREQ SHALL be
|
||||
computed and produced in a manner identical to that of trust anchor
|
||||
hashes as documented in Section 3.7 of [IKEv2].
|
||||
|
||||
Upon receipt of an OCSP response CERT payload corresponding to a
|
||||
prior OCSP request CERTREQ, the CERTREQ sender SHALL incorporate the
|
||||
OCSP response into path validation logic defined by [RFC3280].
|
||||
|
||||
Note that the lack of an OCSP response CERT payload after sending an
|
||||
OCSP request CERT payload might be an indication that this OCSP
|
||||
extension is not supported. As a result, it is recommended that
|
||||
nodes be configured to require a response only if it is known that
|
||||
all peers do in fact support this extension. Otherwise, it is
|
||||
recommended that the nodes be configured to try OCSP and, if there is
|
||||
no response, attempt to determine certificate revocation status by
|
||||
some other means.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 5]
|
||||
|
||||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||||
|
||||
|
||||
4.2. Response to OCSP Support
|
||||
|
||||
Upon receipt of an OCSP request CERTREQ payload, the recipient SHOULD
|
||||
acquire the related OCSP-based assertion and produce and transmit an
|
||||
OCSP response CERT payload corresponding to the certificate needed to
|
||||
verify its signature on IKEv2 payloads.
|
||||
|
||||
An OCSP response CERT payload is transmitted separate from any other
|
||||
CERT payload in an IKEv2 exchange.
|
||||
|
||||
The means by which an OCSP response may be acquired for production of
|
||||
an OCSP response CERT payload is out of scope of this document.
|
||||
|
||||
The Certificate Data field of an OCSP response CERT payload SHALL
|
||||
contain a DER-encoded OCSPResponse structure as defined in [RFC2560].
|
||||
|
||||
5. Examples and Discussion
|
||||
|
||||
This section shows the standard IKEv2 message examples with both
|
||||
peers, the initiator and the responder, using public key based
|
||||
authentication, CERTREQ and CERT payloads. The first instance
|
||||
corresponds to Section 1.2 of [IKEv2], the illustrations of which are
|
||||
reproduced below for reference.
|
||||
|
||||
5.1. Peer to Peer
|
||||
|
||||
Application of the IKEv2 extensions defined in this document to the
|
||||
peer-to-peer exchange defined in Section 1.2 of [IKEv2] is as
|
||||
follows. Messages are numbered for ease of reference.
|
||||
|
||||
Initiator Responder
|
||||
----------- -----------
|
||||
(1) HDR, SAi1, KEi, Ni -->
|
||||
|
||||
(2) <-- HDR, SAr1, KEr, Nr,
|
||||
CERTREQ(OCSP Request)
|
||||
(3) HDR, SK {IDi, CERT(certificate),-->
|
||||
CERT(OCSP Response),
|
||||
CERTREQ(OCSP Request),
|
||||
[IDr,] AUTH, SAi2, TSi, TSr}
|
||||
|
||||
(4) <-- HDR, SK {IDr,
|
||||
CERT(certificate),
|
||||
CERT(OCSP Response),
|
||||
AUTH, SAr2, TSi, TSr}
|
||||
|
||||
OCSP Extensions to Baseline IKEv2
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 6]
|
||||
|
||||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||||
|
||||
|
||||
In (2), Responder sends an OCSP request CERTREQ payload identifying
|
||||
zero or more OCSP responders trusted by the Responder. In response,
|
||||
Initiator sends in (3) both a CERT payload carrying its certificate
|
||||
and an OCSP response CERT payload covering that certificate. In (3),
|
||||
Initiator also requests an OCSP response via the OCSP request CERTREQ
|
||||
payload. In (4), the Responder returns its certificate and a
|
||||
separate OCSP response CERT payload covering that certificate.
|
||||
|
||||
It is important to note that in this scenario, the Responder in (2)
|
||||
does not yet possess the Initiator's certificate and therefore cannot
|
||||
form an OCSP request as defined in [RFC2560]. To bypass this
|
||||
problem, hashes are used as defined in Section 4.1. In such
|
||||
instances, OCSP Requests are simply index values into these data.
|
||||
Thus, it is easily inferred that OCSP responses can be produced in
|
||||
the absence of a corresponding request (provided that OCSP nonces are
|
||||
not used, see Section 6).
|
||||
|
||||
It is also important in extending IKEv2 toward OCSP in this scenario
|
||||
that the Initiator has certain knowledge that the Responder is
|
||||
capable of and willing to participate in the extension. Yet the
|
||||
Responder will only trust one or more OCSP responder signatures.
|
||||
These factors motivate the definition of OCSP responder hash
|
||||
extension.
|
||||
|
||||
5.2. Extended Authentication Protocol (EAP)
|
||||
|
||||
Another scenario of pressing interest is the use of EAP to
|
||||
accommodate multiple end users seeking enterprise access to an IPsec
|
||||
gateway. Note that OCSP is used for the certificate status check of
|
||||
the server side IKEv2 certificate and not for certificates that may
|
||||
be used within EAP methods (either by the EAP peer or the EAP
|
||||
server). As with the preceding section, the following illustration
|
||||
is extracted from [IKEv2]. In the event of a conflict between this
|
||||
document and [IKEv2] regarding these illustrations, [IKEv2] SHALL
|
||||
dominate.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 7]
|
||||
|
||||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||||
|
||||
|
||||
Initiator Responder
|
||||
----------- -----------
|
||||
(1) HDR, SAi1, KEi, Ni -->
|
||||
(2) <-- HDR, SAr1, KEr, Nr
|
||||
(3) HDR, SK {IDi, -->
|
||||
CERTREQ(OCSP Request),
|
||||
[IDr,] AUTH, SAi2, TSi, TSr}
|
||||
(4) <-- HDR, SK {IDr,
|
||||
CERT(certificate),
|
||||
CERT(OCSP Response),
|
||||
AUTH, EAP}
|
||||
(5) HDR, SK {EAP} -->
|
||||
|
||||
(6) <-- HDR, SK {EAP (success)}
|
||||
|
||||
(7) HDR, SK {AUTH} -->
|
||||
|
||||
(8) <-- HDR, SK {AUTH, SAr2, TSi,
|
||||
TSr }
|
||||
|
||||
OCSP Extensions to EAP in IKEv2
|
||||
|
||||
In the EAP scenario, messages (5) through (8) are not relevant to
|
||||
this document.
|
||||
|
||||
6. Security Considerations
|
||||
|
||||
For the reasons noted above, an OCSP request, as defined in Section
|
||||
3.1, is used in place of an OCSP request syntax to trigger production
|
||||
and transmission of an OCSP response. OCSP, as defined in [RFC2560],
|
||||
may contain a nonce request extension to improve security against
|
||||
replay attacks (see Section 4.4.1 of [RFC2560] for further details).
|
||||
The OCSP request defined by this document cannot accommodate nonces.
|
||||
[RFC2560] deals with this aspect by allowing pre-produced responses.
|
||||
|
||||
[RFC2560] points to this replay vulnerability and indicates: "The use
|
||||
of precomputed responses allows replay attacks in which an old (good)
|
||||
response is replayed prior to its expiration date but after the
|
||||
certificate has been revoked. Deployments of OCSP should carefully
|
||||
evaluate the benefit of precomputed responses against the probability
|
||||
of a replay attack and the costs associated with its successful
|
||||
execution." Nodes SHOULD make the required freshness of an OCSP
|
||||
response configurable.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 8]
|
||||
|
||||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||||
|
||||
|
||||
7. IANA Considerations
|
||||
|
||||
This document defines one new field type for use in the IKEv2 Cert
|
||||
Encoding field of the Certificate Payload format. Official
|
||||
assignment of the "OCSP Content" extension to the Cert Encoding table
|
||||
of Section 3.6 of [IKEv2] has been acquired from IANA.
|
||||
|
||||
Certificate Encoding Value
|
||||
-------------------- -----
|
||||
OCSP Content 14
|
||||
|
||||
8. Acknowledgements
|
||||
|
||||
The authors would like to thank Russ Housley for his support.
|
||||
Additionally, we would like to thank Pasi Eronen, Nicolas Williams,
|
||||
Liqiang (Larry) Zhu, Lakshminath Dondeti, and Paul Hoffman for their
|
||||
review. Pasi gave us invaluable last-call comments. We would also
|
||||
like to thank Tom Taylor for his Gen-ART review. Jari Arkko gave us
|
||||
IESG review comments.
|
||||
|
||||
9. Normative References
|
||||
|
||||
[IKEv2] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
|
||||
RFC 4306, December 2005.
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC2560] Myers, M., Ankney, R., Malpani, A., Galperin, S., and C.
|
||||
Adams, "X.509 Internet Public Key Infrastructure Online
|
||||
Certificate Status Protocol - OCSP", RFC 2560, June 1999.
|
||||
|
||||
[RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet
|
||||
X.509 Public Key Infrastructure Certificate and
|
||||
Certificate Revocation List (CRL) Profile", RFC 3280,
|
||||
April 2002.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 9]
|
||||
|
||||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||||
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Michael Myers
|
||||
TraceRoute Security LLC
|
||||
|
||||
EMail: mmyers@fastq.com
|
||||
|
||||
|
||||
Hannes Tschofenig
|
||||
Siemens Networks GmbH & Co KG
|
||||
Otto-Hahn-Ring 6
|
||||
Munich, Bavaria 81739
|
||||
Germany
|
||||
|
||||
EMail: Hannes.Tschofenig@siemens.com
|
||||
URI: http://www.tschofenig.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 10]
|
||||
|
||||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||||
|
||||
|
||||
Full Copyright Statement
|
||||
|
||||
Copyright (C) The IETF Trust (2007).
|
||||
|
||||
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.
|
||||
|
||||
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, THE IETF TRUST 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.
|
||||
|
||||
Intellectual Property
|
||||
|
||||
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.
|
||||
|
||||
Acknowledgement
|
||||
|
||||
Funding for the RFC Editor function is currently provided by the
|
||||
Internet Society.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Myers & Tschofenig Standards Track [Page 11]
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,899 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Internet Engineering Task Force (IETF) P. Eronen
|
||||
Request for Comments: 5998 Independent
|
||||
Updates: 5996 H. Tschofenig
|
||||
Category: Standards Track Nokia Siemens Networks
|
||||
ISSN: 2070-1721 Y. Sheffer
|
||||
Independent
|
||||
September 2010
|
||||
|
||||
|
||||
An Extension for EAP-Only Authentication in IKEv2
|
||||
|
||||
Abstract
|
||||
|
||||
IKEv2 specifies that Extensible Authentication Protocol (EAP)
|
||||
authentication must be used together with responder authentication
|
||||
based on public key signatures. This is necessary with old EAP
|
||||
methods that provide only unilateral authentication using, e.g., one-
|
||||
time passwords or token cards.
|
||||
|
||||
This document specifies how EAP methods that provide mutual
|
||||
authentication and key agreement can be used to provide extensible
|
||||
responder authentication for IKEv2 based on methods other than public
|
||||
key signatures.
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This is an Internet Standards Track document.
|
||||
|
||||
This document is a product of the Internet Engineering Task Force
|
||||
(IETF). It represents the consensus of the IETF community. It has
|
||||
received public review and has been approved for publication by the
|
||||
Internet Engineering Steering Group (IESG). Further information on
|
||||
Internet Standards is available in Section 2 of RFC 5741.
|
||||
|
||||
Information about the current status of this document, any errata,
|
||||
and how to provide feedback on it may be obtained at
|
||||
http://www.rfc-editor.org/info/rfc5998.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 1]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2010 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.
|
||||
|
||||
This document may contain material from IETF Documents or IETF
|
||||
Contributions published or made publicly available before November
|
||||
10, 2008. The person(s) controlling the copyright in some of this
|
||||
material may not have granted the IETF Trust the right to allow
|
||||
modifications of such material outside the IETF Standards Process.
|
||||
Without obtaining an adequate license from the person(s) controlling
|
||||
the copyright in such materials, this document may not be modified
|
||||
outside the IETF Standards Process, and derivative works of it may
|
||||
not be created outside the IETF Standards Process, except to format
|
||||
it for publication as an RFC or to translate it into languages other
|
||||
than English.
|
||||
|
||||
1. Introduction
|
||||
|
||||
The Extensible Authentication Protocol (EAP), defined in [RFC3748],
|
||||
is an authentication framework that supports multiple authentication
|
||||
mechanisms. Today, EAP has been implemented at end hosts and routers
|
||||
that connect via switched circuits or dial-up lines using PPP
|
||||
[RFC1661], IEEE 802 wired switches [IEEE8021X], and IEEE 802.11
|
||||
wireless access points [IEEE80211i].
|
||||
|
||||
One of the advantages of the EAP architecture is its flexibility.
|
||||
EAP is used to select a specific authentication mechanism, typically
|
||||
after the authenticator requests more information in order to
|
||||
determine the specific authentication method to be used. Rather than
|
||||
requiring the authenticator (e.g., wireless LAN access point) to be
|
||||
updated to support each new authentication method, EAP permits the
|
||||
use of a backend authentication server that may implement some or all
|
||||
authentication methods.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 2]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
IKEv2 ([RFC4306] and [RFC5996]) is a component of IPsec used for
|
||||
performing mutual authentication and establishing and maintaining
|
||||
Security Associations (SAs) for IPsec ESP and Authentication Header
|
||||
(AH). In addition to supporting authentication using public key
|
||||
signatures and shared secrets, IKEv2 also supports EAP
|
||||
authentication.
|
||||
|
||||
IKEv2 provides EAP authentication since it was recognized that public
|
||||
key signatures and shared secrets are not flexible enough to meet the
|
||||
requirements of many deployment scenarios. By using EAP, IKEv2 can
|
||||
leverage existing authentication infrastructure and credential
|
||||
databases, since EAP allows users to choose a method suitable for
|
||||
existing credentials, and also makes separation of the IKEv2
|
||||
responder (VPN gateway) from the EAP authentication endpoint (backend
|
||||
Authentication, Authorization, and Accounting (AAA) server) easier.
|
||||
|
||||
Some older EAP methods are designed for unilateral authentication
|
||||
only (that is, EAP peer to EAP server). These methods are used in
|
||||
conjunction with IKEv2 public-key-based authentication of the
|
||||
responder to the initiator. It is expected that this approach is
|
||||
especially useful for "road warrior" VPN gateways that use, for
|
||||
instance, one-time passwords or token cards to authenticate the
|
||||
clients.
|
||||
|
||||
However, most newer EAP methods, such as those typically used with
|
||||
IEEE 802.11i wireless LANs, provide mutual authentication and key
|
||||
agreement. Currently, IKEv2 specifies that these EAP methods must
|
||||
also be used together with responder authentication based on public
|
||||
key signatures.
|
||||
|
||||
In order for the public key signature authentication of the gateway
|
||||
to be effective, a deployment of Public Key Infrastructure (PKI) is
|
||||
required, which has to include management of trust anchors on all
|
||||
supplicants. In many environments, this is not realistic, and the
|
||||
security of the gateway public key is the same as the security of a
|
||||
self-signed certificate. Mutually authenticating EAP methods alone
|
||||
can provide a sufficient level of security in many circumstances, and
|
||||
in fact, in some deployments, IEEE 802.11i uses EAP without any PKI
|
||||
for authenticating the Wireless Local Area Network (WLAN) access
|
||||
points.
|
||||
|
||||
This document specifies how EAP methods that offer mutual
|
||||
authentication and key agreement can be used to provide responder
|
||||
authentication in IKEv2 completely based on EAP.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 3]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
1.1. Terminology
|
||||
|
||||
All notation in this protocol extension is taken from [RFC4306].
|
||||
|
||||
Numbered messages refer to the IKEv2 message sequence when using EAP.
|
||||
|
||||
Thus:
|
||||
|
||||
o Message 1 is the request message of IKE_SA_INIT.
|
||||
|
||||
o Message 2 is the response message of IKE_SA_INIT.
|
||||
|
||||
o Message 3 is the first request of IKE_AUTH.
|
||||
|
||||
o Message 4 is the first response of IKE_AUTH.
|
||||
|
||||
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 [RFC2119].
|
||||
|
||||
2. Scenarios
|
||||
|
||||
In this section, we describe two scenarios for extensible
|
||||
authentication within IKEv2. These scenarios are intended to be
|
||||
illustrative examples rather than specifying how things should be
|
||||
done.
|
||||
|
||||
Figure 1 shows a configuration where the EAP and the IKEv2 endpoints
|
||||
are co-located. Authenticating the IKEv2 responder using both EAP
|
||||
and public key signatures is redundant. Offering EAP-based
|
||||
authentication has the advantage that multiple different
|
||||
authentication and key exchange protocols are available with EAP with
|
||||
different security properties (such as strong password-based
|
||||
protocols, protocols offering user identity confidentiality, and many
|
||||
more).
|
||||
|
||||
+------+-----+ +------------+
|
||||
O | IKEv2 | | IKEv2 |
|
||||
/|\ | Initiator |<---////////////////////--->| Responder |
|
||||
/ \ +------------+ IKEv2 +------------+
|
||||
User | EAP Peer | Exchange | EAP Server |
|
||||
+------------+ +------------+
|
||||
|
||||
Figure 1: EAP and IKEv2 Endpoints Are Co-Located
|
||||
|
||||
Figure 2 shows a typical corporate network access scenario. The
|
||||
initiator (client) interacts with the responder (VPN gateway) in the
|
||||
corporate network. The EAP exchange within IKE runs between the
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 4]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
client and the home AAA server. As a result of a successful EAP
|
||||
authentication protocol run, session keys are established and sent
|
||||
from the AAA server to the VPN gateway, and then used to authenticate
|
||||
the IKEv2 SA with AUTH payloads.
|
||||
|
||||
The protocol used between the VPN gateway and AAA server could be,
|
||||
for instance, Diameter [RFC4072] or RADIUS [RFC3579]. See Section 6
|
||||
for related security considerations.
|
||||
|
||||
+-------------------------------+
|
||||
| Corporate network |
|
||||
| |
|
||||
+-----------+ +--------+ |
|
||||
| IKEv2 | AAA | Home | |
|
||||
IKEv2 +////----->+ Responder +<---------->+ AAA | |
|
||||
Exchange / | (VPN GW) | (RADIUS/ | Server | |
|
||||
/ +-----------+ Diameter) +--------+ |
|
||||
/ | carrying EAP |
|
||||
| | |
|
||||
| +-------------------------------+
|
||||
v
|
||||
+------+-----+
|
||||
o | IKEv2 |
|
||||
/|\ | Initiator |
|
||||
/ \ | VPN client |
|
||||
User +------------+
|
||||
|
||||
Figure 2: Corporate Network Access
|
||||
|
||||
3. Solution
|
||||
|
||||
IKEv2 specifies that when the EAP method establishes a shared secret
|
||||
key, that key is used by both the initiator and responder to generate
|
||||
an AUTH payload (thus authenticating the IKEv2 SA set up by messages
|
||||
1 and 2).
|
||||
|
||||
When used together with public key responder authentication, the
|
||||
responder is, in effect, authenticated using two different methods:
|
||||
the public key signature AUTH payload in message 4, and the EAP-based
|
||||
AUTH payload later.
|
||||
|
||||
If the initiator does not wish to use public-key-based responder
|
||||
authentication, it includes an EAP_ONLY_AUTHENTICATION notification
|
||||
payload (16417) in message 3. The Protocol ID and Security Parameter
|
||||
Index (SPI) size fields are set to zero, and there is no additional
|
||||
data associated with this notification.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 5]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
If the responder supports this notification and chooses to use it, it
|
||||
omits the public-key-based AUTH payload and CERT payloads from
|
||||
message 4.
|
||||
|
||||
If the responder does not support the EAP_ONLY_AUTHENTICATION
|
||||
notification or does not wish to use it, it ignores the notification
|
||||
payload, and includes the AUTH payload in message 4. In this case,
|
||||
the initiator MUST verify that payload and any associated
|
||||
certificates, as per [RFC4306].
|
||||
|
||||
When receiving message 4, the initiator MUST verify that the proposed
|
||||
EAP method is allowed by this specification, and MUST abort the
|
||||
protocol immediately otherwise.
|
||||
|
||||
Both the initiator and responder MUST verify that the EAP method
|
||||
actually used provided mutual authentication and established a shared
|
||||
secret key. The AUTH payloads sent after EAP Success MUST use the
|
||||
EAP-generated key, and MUST NOT use SK_pi or SK_pr (see Section 2.15
|
||||
of [RFC5996]).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 6]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
An IKEv2 message exchange with this modification is shown below:
|
||||
|
||||
Initiator Responder
|
||||
----------- -----------
|
||||
HDR, SAi1, KEi, Ni,
|
||||
[N(NAT_DETECTION_SOURCE_IP),
|
||||
N(NAT_DETECTION_DESTINATION_IP)] -->
|
||||
|
||||
<-- HDR, SAr1, KEr, Nr, [CERTREQ],
|
||||
[N(NAT_DETECTION_SOURCE_IP),
|
||||
N(NAT_DETECTION_DESTINATION_IP)]
|
||||
|
||||
HDR, SK { IDi, [IDr], SAi2, TSi, TSr,
|
||||
N(EAP_ONLY_AUTHENTICATION),
|
||||
[CP(CFG_REQUEST)] } -->
|
||||
|
||||
<-- HDR, SK { IDr, EAP(Request) }
|
||||
|
||||
HDR, SK { EAP(Response) } -->
|
||||
|
||||
<-- HDR, SK { EAP(Request) }
|
||||
|
||||
HDR, SK { EAP(Response) } -->
|
||||
|
||||
<-- HDR, SK { EAP(Success) }
|
||||
|
||||
HDR, SK { AUTH } -->
|
||||
|
||||
<-- HDR, SK { AUTH, SAr2, TSi, TSr,
|
||||
[CP(CFG_REPLY] }
|
||||
|
||||
Note: all notation in the above protocol sequence and elsewhere in
|
||||
this specification is as defined in [RFC4306], and see in particular
|
||||
Sec. 1.2 of [RFC4306] for payload types.
|
||||
|
||||
The NAT detection and Configuration payloads are shown for
|
||||
informative purposes only; they do not change how EAP authentication
|
||||
works.
|
||||
|
||||
An IKE SA that was set up with this extension can be resumed using
|
||||
the mechanism described in [RFC5723]. However, session resumption
|
||||
does not change the authentication method. Therefore, during the
|
||||
IKE_AUTH exchange of the resumed session, this extension MUST NOT be
|
||||
sent by the initiator.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 7]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
4. Safe EAP Methods
|
||||
|
||||
EAP methods to be used with this extension MUST have the following
|
||||
properties:
|
||||
|
||||
1. The method provides mutual authentication of the peers.
|
||||
|
||||
2. The method is key-generating.
|
||||
|
||||
3. The method is resistant to dictionary attacks.
|
||||
|
||||
The authors believe that the following EAP methods are secure when
|
||||
used with the current extension. The list is not inclusive, and
|
||||
there are likely other safe methods that have not been listed here.
|
||||
|
||||
+-------------------------------+-------------------+---------------+
|
||||
| Method Name | Allows Channel | Reference |
|
||||
| | Binding? | |
|
||||
+-------------------------------+-------------------+---------------+
|
||||
| EAP-SIM | No | [RFC4186] |
|
||||
| EAP-AKA | Yes | [RFC4187] |
|
||||
| EAP-AKA' | Yes | [RFC5448] |
|
||||
| EAP-GPSK | Yes | [RFC5433] |
|
||||
| EAP-pwd | No | [RFC5931] |
|
||||
| EAP-EKE | Yes | [EMU-EAP-EKE] |
|
||||
| EAP-PAX | Yes | [RFC4746] |
|
||||
| EAP-SAKE | No | [RFC4763] |
|
||||
| EAP-SRP | No | [EAP-SRP] |
|
||||
| EAP-POTP (mutual | Yes | [RFC4793] |
|
||||
| authentication variant) | | |
|
||||
| EAP-TLS | No | [RFC5216] |
|
||||
| EAP-FAST | No | [RFC4851] |
|
||||
| EAP-TTLS | No | [RFC5281] |
|
||||
+-------------------------------+-------------------+---------------+
|
||||
|
||||
The "Allows channel binding?" column denotes protocols where
|
||||
protected identity information may be sent between the EAP endpoints.
|
||||
This third, optional property of the method provides protection
|
||||
against certain types of attacks (see Section 6.2 for an
|
||||
explanation), and therefore in some scenarios, methods that allow for
|
||||
channel binding are to be preferred. It is noted that at the time of
|
||||
writing, even when such capabilities are provided, they are not fully
|
||||
specified in an interoperable manner. In particular, no RFC
|
||||
specifies what identities should be sent under the protection of the
|
||||
channel binding mechanism, or what policy is to be used to correlate
|
||||
identities at the different layers.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 8]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
5. IANA Considerations
|
||||
|
||||
This document defines a new IKEv2 Notification Payload type,
|
||||
EAP_ONLY_AUTHENTICATION, described in Section 3. This payload has
|
||||
been assigned the type number 16417 from the "Status Types" range.
|
||||
|
||||
6. Security Considerations
|
||||
|
||||
Security considerations applicable to all EAP methods are discussed
|
||||
in [RFC3748]. The EAP Key Management Framework [RFC5247] deals with
|
||||
issues that arise when EAP is used as a part of a larger system.
|
||||
|
||||
6.1. Authentication of IKEv2 SA
|
||||
|
||||
It is important to note that the IKEv2 SA is not authenticated by
|
||||
just running an EAP conversation: the crucial step is the AUTH
|
||||
payload based on the EAP-generated key. Thus, EAP methods that do
|
||||
not provide mutual authentication or establish a shared secret key
|
||||
MUST NOT be used with the modifications presented in this document.
|
||||
|
||||
6.2. Authentication with Separated IKEv2 Responder / EAP Server
|
||||
|
||||
As described in Section 2, the EAP conversation can terminate either
|
||||
at the IKEv2 responder or at a backend AAA server.
|
||||
|
||||
If the EAP method is terminated at the IKEv2 responder, then no key
|
||||
transport via the AAA infrastructure is required. Pre-shared secret
|
||||
and public-key-based authentication offered by IKEv2 is then replaced
|
||||
by a wider range of authentication and key exchange methods.
|
||||
|
||||
However, typically EAP will be used with a backend AAA server. See
|
||||
[RFC5247] for a more complete discussion of the related security
|
||||
issues; here we provide only a short summary.
|
||||
|
||||
When a backend server is used, there are actually two authentication
|
||||
exchanges: the EAP method between the client and the AAA server, and
|
||||
another authentication between the AAA server and IKEv2 gateway. The
|
||||
AAA server authenticates the client using the selected EAP method,
|
||||
and they establish a session key. The AAA server then sends this key
|
||||
to the IKEv2 gateway over a connection authenticated using, e.g.,
|
||||
IPsec or Transport Layer Security (TLS).
|
||||
|
||||
Some EAP methods do not have any concept of pass-through
|
||||
authenticator (e.g., Network Access Server (NAS) or IKEv2 gateway)
|
||||
identity, and these two authentications remain quite independent of
|
||||
each other. That is, after the client has verified the AUTH payload
|
||||
sent by the IKEv2 gateway, it knows that it is talking to SOME
|
||||
gateway trusted by the home AAA server, but not which one. The
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 9]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
situation is somewhat similar if a single cryptographic hardware
|
||||
accelerator, containing a single private key, would be shared between
|
||||
multiple IKEv2 gateways (perhaps in some kind of cluster
|
||||
configuration). In particular, if one of the gateways is
|
||||
compromised, it can impersonate any of the other gateways towards the
|
||||
user (until the compromise is discovered and access rights revoked).
|
||||
|
||||
In some environments it is not desirable to trust the IKEv2 gateways
|
||||
this much (also known as the "Lying NAS Problem"). EAP methods that
|
||||
provide what is called "connection binding" or "channel binding"
|
||||
transport some identity or identities of the gateway (or WLAN access
|
||||
point / NAS) inside the EAP method. Then the AAA server can check
|
||||
that it is indeed sending the key to the gateway expected by the
|
||||
client. A potential solution is described in [EAP-SERVICE], see also
|
||||
[EMU-AAAPAY].
|
||||
|
||||
In some deployment configurations, AAA proxies may be present between
|
||||
the IKEv2 gateway and the backend AAA server. These AAA proxies MUST
|
||||
be trusted for secure operation, and therefore SHOULD be avoided when
|
||||
possible; see Section 2.3.4 of [RFC4072] and Section 4.3.7 of
|
||||
[RFC3579] for more discussion.
|
||||
|
||||
6.3. Protection of EAP Payloads
|
||||
|
||||
Although the EAP payloads are encrypted and integrity protected with
|
||||
SK_e/SK_a, this does not provide any protection against active
|
||||
attackers. Until the AUTH payload has been received and verified, a
|
||||
man-in-the-middle can change the KEi/KEr payloads and eavesdrop or
|
||||
modify the EAP payloads.
|
||||
|
||||
In IEEE 802.11i wireless LANs, the EAP payloads are neither encrypted
|
||||
nor integrity protected (by the link layer), so EAP methods are
|
||||
typically designed to take that into account.
|
||||
|
||||
In particular, EAP methods that are vulnerable to dictionary attacks
|
||||
when used in WLANs are still vulnerable (to active attackers) when
|
||||
run inside IKEv2.
|
||||
|
||||
The rules in Section 4 are designed to avoid this potential
|
||||
vulnerability.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 10]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
6.4. Identities and Authenticated Identities
|
||||
|
||||
When using this protocol, each of the peers sends two identity
|
||||
values:
|
||||
|
||||
1. An identity contained in the IKE ID payload.
|
||||
|
||||
2. An identity transferred within the specific EAP method's
|
||||
messages.
|
||||
|
||||
(IKEv2 omits the EAP Identity request/response pair, see Section 3.16
|
||||
of [RFC5996].) The first identity value can be used by the recipient
|
||||
to route AAA messages and/or to select authentication and EAP types.
|
||||
But it is only the second identity that is directly authenticated by
|
||||
the EAP method. The reader is referred to Section 2.16 of [RFC5996]
|
||||
regarding the need to base IPsec policy decisions on the
|
||||
authenticated identity. In the context of the extension described
|
||||
here, this guidance on IPsec policy applies both to the
|
||||
authentication of the client by the gateway and vice versa.
|
||||
|
||||
6.5. User Identity Confidentiality
|
||||
|
||||
IKEv2 provides confidentiality for the initiator identity against
|
||||
passive eavesdroppers, but not against active attackers. The
|
||||
initiator announces its identity first (in message 3), before the
|
||||
responder has been authenticated. The usage of EAP in IKEv2 does not
|
||||
change this situation, since the ID payload in message 3 is used
|
||||
instead of the EAP Identity Request/Response exchange. This is
|
||||
somewhat unfortunate since when EAP is used with public key
|
||||
authentication of the responder, it would be possible to provide
|
||||
active user identity confidentiality for the initiator.
|
||||
|
||||
IKEv2 protects the responder's identity even against active attacks.
|
||||
This property cannot be provided when using EAP. If public key
|
||||
responder authentication is used in addition to EAP, the responder
|
||||
reveals its identity before authenticating the initiator. If only
|
||||
EAP is used (as proposed in this document), the situation depends on
|
||||
the EAP method used (in some EAP methods, the server reveals its
|
||||
identity first).
|
||||
|
||||
Hence, if active user identity confidentiality for the responder is
|
||||
required then EAP methods that offer this functionality have to be
|
||||
used (see [RFC3748], Section 7.3).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 11]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
7. Acknowledgments
|
||||
|
||||
This document borrows some text from [RFC3748], [RFC4306], and
|
||||
[RFC4072]. We would also like to thank Hugo Krawczyk for interesting
|
||||
discussions about this topic, Dan Harkins, and David Harrington for
|
||||
their comments.
|
||||
|
||||
8. References
|
||||
|
||||
8.1. Normative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and
|
||||
H. Levkowetz, "Extensible Authentication Protocol
|
||||
(EAP)", RFC 3748, June 2004.
|
||||
|
||||
[RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
|
||||
RFC 4306, December 2005.
|
||||
|
||||
[RFC5723] Sheffer, Y. and H. Tschofenig, "Internet Key Exchange
|
||||
Protocol Version 2 (IKEv2) Session Resumption",
|
||||
RFC 5723, January 2010.
|
||||
|
||||
[RFC5996] Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen,
|
||||
"Internet Key Exchange Protocol Version 2 (IKEv2)",
|
||||
RFC 5996, September 2010.
|
||||
|
||||
8.2. Informative References
|
||||
|
||||
[EAP-SERVICE] Arkko, J. and P. Eronen, "Authenticated Service
|
||||
Information for the Extensible Authentication Protocol
|
||||
(EAP)", Work in Progress, October 2005.
|
||||
|
||||
[EAP-SRP] Carlson, J., Aboba, B., and H. Haverinen, "EAP SRP-
|
||||
SHA1 Authentication Protocol", Work in Progress,
|
||||
July 2001.
|
||||
|
||||
[EMU-AAAPAY] Clancy, C., Lior, A., Zorn, G., and K. Hoeper, "EAP
|
||||
Method Support for Transporting AAA Payloads", Work
|
||||
in Progress, May 2010.
|
||||
|
||||
[EMU-EAP-EKE] Sheffer, Y., Zorn, G., Tschofenig, H., and S. Fluhrer,
|
||||
"An EAP Authentication Method Based on the EKE
|
||||
Protocol", Work in Progress, August 2010.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 12]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
[IEEE80211i] Institute of Electrical and Electronics Engineers,
|
||||
"IEEE Standard for Information technology -
|
||||
Telecommunications and information exchange between
|
||||
systems - Local and metropolitan area networks -
|
||||
Specific requirements - Part 11: Wireless Medium
|
||||
Access Control (MAC) and Physical Layer (PHY)
|
||||
specifications: Amendment 6: Medium Access Control
|
||||
(MAC) Security Enhancements", IEEE Standard 802.11i-
|
||||
2004, July 2004.
|
||||
|
||||
[IEEE8021X] Institute of Electrical and Electronics Engineers,
|
||||
"Local and Metropolitan Area Networks: Port-Based
|
||||
Network Access Control", IEEE Standard 802.1X-2001,
|
||||
2001.
|
||||
|
||||
[RFC1661] Simpson, W., "The Point-to-Point Protocol (PPP)",
|
||||
STD 51, RFC 1661, July 1994.
|
||||
|
||||
[RFC3579] Aboba, B. and P. Calhoun, "RADIUS (Remote
|
||||
Authentication Dial In User Service) Support For
|
||||
Extensible Authentication Protocol (EAP)", RFC 3579,
|
||||
September 2003.
|
||||
|
||||
[RFC4072] Eronen, P., Hiller, T., and G. Zorn, "Diameter
|
||||
Extensible Authentication Protocol (EAP) Application",
|
||||
RFC 4072, August 2005.
|
||||
|
||||
[RFC4186] Haverinen, H. and J. Salowey, "Extensible
|
||||
Authentication Protocol Method for Global System for
|
||||
Mobile Communications (GSM) Subscriber Identity
|
||||
Modules (EAP-SIM)", RFC 4186, January 2006.
|
||||
|
||||
[RFC4187] Arkko, J. and H. Haverinen, "Extensible Authentication
|
||||
Protocol Method for 3rd Generation Authentication and
|
||||
Key Agreement (EAP-AKA)", RFC 4187, January 2006.
|
||||
|
||||
[RFC4746] Clancy, T. and W. Arbaugh, "Extensible Authentication
|
||||
Protocol (EAP) Password Authenticated Exchange",
|
||||
RFC 4746, November 2006.
|
||||
|
||||
[RFC4763] Vanderveen, M. and H. Soliman, "Extensible
|
||||
Authentication Protocol Method for Shared-secret
|
||||
Authentication and Key Establishment (EAP-SAKE)",
|
||||
RFC 4763, November 2006.
|
||||
|
||||
[RFC4793] Nystroem, M., "The EAP Protected One-Time Password
|
||||
Protocol (EAP-POTP)", RFC 4793, February 2007.
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 13]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
[RFC4851] Cam-Winget, N., McGrew, D., Salowey, J., and H. Zhou,
|
||||
"The Flexible Authentication via Secure Tunneling
|
||||
Extensible Authentication Protocol Method (EAP-FAST)",
|
||||
RFC 4851, May 2007.
|
||||
|
||||
[RFC5216] Simon, D., Aboba, B., and R. Hurst, "The EAP-TLS
|
||||
Authentication Protocol", RFC 5216, March 2008.
|
||||
|
||||
[RFC5247] Aboba, B., Simon, D., and P. Eronen, "Extensible
|
||||
Authentication Protocol (EAP) Key Management
|
||||
Framework", RFC 5247, August 2008.
|
||||
|
||||
[RFC5281] Funk, P. and S. Blake-Wilson, "Extensible
|
||||
Authentication Protocol Tunneled Transport Layer
|
||||
Security Authenticated Protocol Version 0 (EAP-
|
||||
TTLSv0)", RFC 5281, August 2008.
|
||||
|
||||
[RFC5433] Clancy, T. and H. Tschofenig, "Extensible
|
||||
Authentication Protocol - Generalized Pre-Shared Key
|
||||
(EAP-GPSK) Method", RFC 5433, February 2009.
|
||||
|
||||
[RFC5448] Arkko, J., Lehtovirta, V., and P. Eronen, "Improved
|
||||
Extensible Authentication Protocol Method for 3rd
|
||||
Generation Authentication and Key Agreement (EAP-
|
||||
AKA')", RFC 5448, May 2009.
|
||||
|
||||
[RFC5931] Harkins, D. and G. Zorn, "Extensible Authentication
|
||||
Protocol (EAP) Authentication Using Only A Password",
|
||||
RFC 5931, August 2010.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 14]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
Appendix A. Alternative Approaches
|
||||
|
||||
In this section, we list alternatives that have been considered
|
||||
during the work on this document. We concluded that the solution
|
||||
presented in Section 3 seems to fit better into IKEv2.
|
||||
|
||||
A.1. Ignore AUTH Payload at the Initiator
|
||||
|
||||
With this approach, the initiator simply ignores the AUTH payload in
|
||||
message 4 (but obviously must check the second AUTH payload later!).
|
||||
The main advantage of this approach is that no protocol modifications
|
||||
are required and no signature verification is required. A
|
||||
significant disadvantage is that the EAP method to be used cannot be
|
||||
selected to take this behavior into account.
|
||||
|
||||
The initiator could signal to the responder (using a notification
|
||||
payload) that it did not verify the first AUTH payload.
|
||||
|
||||
A.2. Unauthenticated Public Keys in AUTH Payload (Message 4)
|
||||
|
||||
Another solution approach suggests the use of unauthenticated public
|
||||
keys in the public key signature AUTH payload (for message 4).
|
||||
|
||||
That is, the initiator verifies the signature in the AUTH payload,
|
||||
but does not verify that the public key indeed belongs to the
|
||||
intended party (using certificates) -- since it doesn't have a PKI
|
||||
that would allow this. This could be used with X.509 certificates
|
||||
(the initiator ignores all other fields of the certificate except the
|
||||
public key), or "Raw RSA Key" CERT payloads.
|
||||
|
||||
This approach has the advantage that initiators that wish to perform
|
||||
certificate-based responder authentication (in addition to EAP) may
|
||||
do so, without requiring the responder to handle these cases
|
||||
separately. A disadvantage here, again, is that the EAP method
|
||||
selection cannot take into account the incomplete validation of the
|
||||
responder's certificate.
|
||||
|
||||
If using RSA, the overhead of signature verification is quite small,
|
||||
compared to the g^xy calculation required by the Diffie-Hellman
|
||||
exchange.
|
||||
|
||||
A.3. Using EAP Derived Session Keys for IKEv2
|
||||
|
||||
It has been proposed that when using an EAP method that provides
|
||||
mutual authentication and key agreement, the IKEv2 Diffie-Hellman
|
||||
exchange could also be omitted. This would mean that the session
|
||||
keys for IPsec SAs established later would rely only on EAP-provided
|
||||
keys.
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 15]
|
||||
|
||||
RFC 5998 Extension for EAP in IKEv2 September 2010
|
||||
|
||||
|
||||
It seems the only benefit of this approach is saving some computation
|
||||
time (g^xy calculation). This approach requires designing a
|
||||
completely new protocol (which would not resemble IKEv2 anymore); we
|
||||
do not believe that it should be considered. Nevertheless, we
|
||||
include it for completeness.
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Pasi Eronen
|
||||
Independent
|
||||
|
||||
EMail: pe@iki.fi
|
||||
|
||||
|
||||
Hannes Tschofenig
|
||||
Nokia Siemens Networks
|
||||
Linnoitustie 6
|
||||
Espoo 02600
|
||||
Finland
|
||||
|
||||
Phone: +358 (50) 4871445
|
||||
EMail: Hannes.Tschofenig@gmx.net
|
||||
URI: http://www.tschofenig.priv.at
|
||||
|
||||
|
||||
Yaron Sheffer
|
||||
Independent
|
||||
|
||||
EMail: yaronf.ietf@gmail.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Eronen, et al. Standards Track [Page 16]
|
||||
|
Loading…
x
Reference in New Issue
Block a user