draft-ietf-ipsecme-ikev2-resumption-08.txt   draft-ietf-ipsecme-ikev2-resumption-09.txt 
Network Working Group Y. Sheffer Network Working Group Y. Sheffer
Internet-Draft Check Point Internet-Draft Check Point
Intended status: Standards Track H. Tschofenig Intended status: Standards Track H. Tschofenig
Expires: March 25, 2010 Nokia Siemens Networks Expires: April 24, 2010 Nokia Siemens Networks
September 21, 2009 October 21, 2009
IKEv2 Session Resumption IKEv2 Session Resumption
draft-ietf-ipsecme-ikev2-resumption-08.txt draft-ietf-ipsecme-ikev2-resumption-09.txt
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. This document may contain material provisions of BCP 78 and BCP 79. This document may contain material
from IETF Documents or IETF Contributions published or made publicly from IETF Documents or IETF Contributions published or made publicly
available before November 10, 2008. The person(s) controlling the available before November 10, 2008. The person(s) controlling the
copyright in some of this material may not have granted the IETF copyright in some of this material may not have granted the IETF
Trust the right to allow modifications of such material outside the Trust the right to allow modifications of such material outside the
IETF Standards Process. Without obtaining an adequate license from IETF Standards Process. Without obtaining an adequate license from
skipping to change at page 1, line 43 skipping to change at page 1, line 43
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on March 25, 2010. This Internet-Draft will expire on April 24, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info). publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 3, line 35 skipping to change at page 3, line 35
7.1. TICKET_LT_OPAQUE Notify Payload . . . . . . . . . . . . . 18 7.1. TICKET_LT_OPAQUE Notify Payload . . . . . . . . . . . . . 18
7.2. TICKET_OPAQUE Notify Payload . . . . . . . . . . . . . . . 18 7.2. TICKET_OPAQUE Notify Payload . . . . . . . . . . . . . . . 18
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
9. Security Considerations . . . . . . . . . . . . . . . . . . . 19 9. Security Considerations . . . . . . . . . . . . . . . . . . . 19
9.1. Stolen Tickets . . . . . . . . . . . . . . . . . . . . . . 19 9.1. Stolen Tickets . . . . . . . . . . . . . . . . . . . . . . 19
9.2. Forged Tickets . . . . . . . . . . . . . . . . . . . . . . 19 9.2. Forged Tickets . . . . . . . . . . . . . . . . . . . . . . 19
9.3. Denial of Service Attacks . . . . . . . . . . . . . . . . 20 9.3. Denial of Service Attacks . . . . . . . . . . . . . . . . 20
9.4. Detecting the Need for Resumption . . . . . . . . . . . . 20 9.4. Detecting the Need for Resumption . . . . . . . . . . . . 20
9.5. Key Management for Tickets By Value . . . . . . . . . . . 20 9.5. Key Management for Tickets By Value . . . . . . . . . . . 20
9.6. Ticket Lifetime . . . . . . . . . . . . . . . . . . . . . 21 9.6. Ticket Lifetime . . . . . . . . . . . . . . . . . . . . . 21
9.7. Ticket Revocation . . . . . . . . . . . . . . . . . . . . 21 9.7. Tickets and Identity . . . . . . . . . . . . . . . . . . . 21
9.8. Ticket by Value Format . . . . . . . . . . . . . . . . . . 21 9.8. Ticket Revocation . . . . . . . . . . . . . . . . . . . . 21
9.9. Identity Privacy, Anonymity, and Unlinkability . . . . . . 21 9.9. Ticket by Value Format . . . . . . . . . . . . . . . . . . 21
9.10. Identity Privacy, Anonymity, and Unlinkability . . . . . . 22
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 22 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 22
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 22 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23
11.1. Normative References . . . . . . . . . . . . . . . . . . . 22 11.1. Normative References . . . . . . . . . . . . . . . . . . . 23
11.2. Informative References . . . . . . . . . . . . . . . . . . 23 11.2. Informative References . . . . . . . . . . . . . . . . . . 23
Appendix A. Ticket Format . . . . . . . . . . . . . . . . . . . . 24 Appendix A. Ticket Format . . . . . . . . . . . . . . . . . . . . 24
A.1. Example Ticket by Value Format . . . . . . . . . . . . . . 24 A.1. Example Ticket by Value Format . . . . . . . . . . . . . . 25
A.2. Example Ticket by Reference Format . . . . . . . . . . . . 25 A.2. Example Ticket by Reference Format . . . . . . . . . . . . 25
Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 26 Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 26
B.1. -08 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 B.1. -09 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
B.2. -07 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 B.2. -08 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
B.3. -06 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 B.3. -07 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
B.4. -05 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 B.4. -06 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
B.5. -04 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 B.5. -05 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
B.6. -03 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 B.6. -04 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
B.7. -02 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 B.7. -03 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
B.8. -01 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 B.8. -02 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
B.9. -00 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 B.9. -01 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
B.10. -01 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 B.10. -00 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
B.11. -00 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 B.11. -01 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
B.12. -04 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 B.12. -00 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
B.13. -03 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 B.13. -04 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
B.14. -02 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 B.14. -03 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
B.15. -01 . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 B.15. -02 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
B.16. -00 . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 B.16. -01 . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
B.17. -00 . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29
1. Introduction 1. Introduction
The Internet Key Exchange version 2 (IKEv2) protocol has a certain The Internet Key Exchange version 2 (IKEv2) protocol has a certain
computational and communication overhead with respect to the number computational and communication overhead with respect to the number
of round-trips required and the cryptographic operations involved. of round-trips required and the cryptographic operations involved.
In particular the Extensible Authentication Protocol (EAP) is used In particular the Extensible Authentication Protocol (EAP) is used
for authentication in remote access cases, which increases latency. for authentication in remote access cases, which increases latency.
skipping to change at page 7, line 10 skipping to change at page 7, line 10
The second use case focuses on the usage of transport (or tunnel) The second use case focuses on the usage of transport (or tunnel)
mode to secure the communicate between two end points (e.g., two mode to secure the communicate between two end points (e.g., two
servers). The two endpoints have a client-server relationship with servers). The two endpoints have a client-server relationship with
respect to a protocol that runs using the protections afforded by the respect to a protocol that runs using the protections afforded by the
IPsec SA. IPsec SA.
(a) (a)
+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+
! ! IKEv2/IKEv2-EAP ! ! Protected | | IKEv2/IKEv2-EAP | | Protected
! Remote !<------------------------>! ! Subnet | Remote |<------------------------>| | Subnet
! Access ! ! Access !<--- and/or | Access | | Access |<--- and/or
! Client !<------------------------>! Gateway ! Internet | Client |<------------------------>| Gateway | Internet
! ! IPsec tunnel ! ! | | IPsec tunnel | |
+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+
(b) (b)
+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+
! ! IKE_SESSION_RESUME ! ! | | IKE_SESSION_RESUME | |
! Remote !<------------------------>! ! | Remote |<------------------------>| |
! Access ! ! Access ! | Access | | Access |
! Client !<------------------------>! Gateway ! | Client |<------------------------>| Gateway |
! ! IPsec tunnel ! ! | | IPsec tunnel | |
+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+
Figure 1: Resuming a Session with a Remote Access Gateway Figure 1: Resuming a Session with a Remote Access Gateway
In the first use case above, an end host (an entity with a host In the first use case above, an end host (an entity with a host
implementation of IPsec [RFC4301]) establishes a tunnel mode IPsec SA implementation of IPsec [RFC4301]) establishes a tunnel mode IPsec SA
with a gateway in a remote network using IKEv2. The end host in this with a gateway in a remote network using IKEv2. The end host in this
scenario is sometimes referred to as a remote access client. At a scenario is sometimes referred to as a remote access client. At a
later stage when a client needs to re-establish the IKEv2 session it later stage when a client needs to re-establish the IKEv2 session it
may choose to establish IPsec SAs using a full IKEv2 exchange or the may choose to establish IPsec SAs using a full IKEv2 exchange or the
skipping to change at page 12, line 18 skipping to change at page 12, line 18
In particular, NAT detection payloads. In particular, NAT detection payloads.
o The client's NAT traversal status SHOULD be determined anew in o The client's NAT traversal status SHOULD be determined anew in
IKE_SESSION_RESUME. If NAT is detected, the initiator switches to IKE_SESSION_RESUME. If NAT is detected, the initiator switches to
UDP encapsulation on port 4500, as per [RFC4306], Sec. 2.23. NAT UDP encapsulation on port 4500, as per [RFC4306], Sec. 2.23. NAT
status is explicitly not part of the session resumption state. status is explicitly not part of the session resumption state.
o The SPI values and Message ID fields behave similarly to o The SPI values and Message ID fields behave similarly to
IKE_SA_INIT. IKE_SA_INIT.
Although the IKE SA is not fully valid until the completion of the Although the IKE SA is not fully valid until the completion of the
IKE_AUTH exchange, the peers must create much of the SA state IKE_AUTH exchange, the peers must create much of the SA state
(Section 5) now. Specifically, the SK_xx values are required to (Section 5) now. Specifically, the shared key values are required to
protect the IKE_AUTH payloads. protect the IKE_AUTH payloads. Their generation is described in
Section 5.1.
4.3.3. IKE_AUTH Exchange 4.3.3. IKE_AUTH Exchange
Following the IKE_SESSION_RESUME exchange, the client MUST initiate Following the IKE_SESSION_RESUME exchange, the client MUST initiate
an IKE_AUTH exchange, which is largely as specified in [RFC4306]. an IKE_AUTH exchange, which is largely as specified in [RFC4306].
This section lists the differences and constraints compared to the This section lists the differences and constraints compared to the
base document. base document.
The value of the AUTH payload is derived in a manner similar to the The value of the AUTH payload is derived in a manner similar to the
usage of IKEv2 pre-shared secret authentication: usage of IKEv2 pre-shared secret authentication:
AUTH = prf(SK_px, <message octets>) AUTH = prf(SK_px, <message octets>)
Each of the initiator and responder uses its own SK_p value, taken Each of the initiator and responder uses its own value for SK_px,
from the newly generated IKE SA, Section 5.1. namely SK_pi for the initiator and SK_pr for the responder. Both are
taken from the newly generated IKE SA, Section 5.1.
The exact material to be signed is defined in Section 2.15 of The exact material to be signed is defined in Section 2.15 of
[RFC4306]. [RFC4306].
The IDi value sent in the IKE_AUTH exchange MUST be identical to the The IDi value sent in the IKE_AUTH exchange MUST be identical to the
value included in the ticket. A CERT payload MUST NOT be included in value included in the ticket. A CERT payload MUST NOT be included in
this exchange, and therefore a new IDr value cannot be negotiated this exchange, and therefore a new IDr value cannot be negotiated
(since it would not be authenticated). As a result, the IDr value (since it would not be authenticated). As a result, the IDr value
sent (by the gateway, and optionally by the client) in this exchange sent (by the gateway, and optionally by the client) in this exchange
MUST also be identical to the value included in the ticket. MUST also be identical to the value included in the ticket.
skipping to change at page 15, line 9 skipping to change at page 15, line 9
| | resent by client if | | | resent by client if |
| | necessary | | | necessary |
| Time until re-authentication | From new exchange (but | | Time until re-authentication | From new exchange (but |
| [RFC4478] | ticket lifetime is bounded | | [RFC4478] | ticket lifetime is bounded |
| | by this duration) | | | by this duration) |
| Peer supports redirects | From new exchange | | Peer supports redirects | From new exchange |
| [I-D.ietf-ipsecme-ikev2-redirect] | | | [I-D.ietf-ipsecme-ikev2-redirect] | |
+-------------------------------------+-----------------------------+ +-------------------------------------+-----------------------------+
Note 1: The authenticated peer identity used for policy lookups may Note 1: The authenticated peer identity used for policy lookups may
not be the same as the IDi payload (see Sec. 3.5 of not be the same as the IDi payload. This is possible when
[RFC4718]), and if so, MUST be included in the ticket. Note using certain EAP methods, see Sec. 3.5 of [RFC4718]. If
that the client may not have access to this value. these identities are indeed different, then the
authenticated client identity MUST be included in the
ticket. Note that the client may not have access to this
value.
Note 2: Certificates don't need to be stored if the peer never uses Note 2: Certificates don't need to be stored if the peer never uses
them for anything after the IKE SA is up; however if they them for anything after the IKE SA is up; however if they
are needed, e.g. if exposed to applications via IPsec APIs, are needed, e.g. if exposed to applications via IPsec APIs,
they MUST be stored in the ticket. they MUST be stored in the ticket.
Note 3: If the certificate has an iPAddress SubjectAltName, and the Note 3: If the certificate has an iPAddress SubjectAltName, and the
implementation requires it to match the peer's source IP implementation requires it to match the peer's source IP
address, the same check needs to be performed on session address, the same check needs to be performed on session
resumption and the required information saved locally or in resumption and the required information saved locally or in
the ticket. the ticket.
Note 4: SPI values of the old SA MAY be stored in the ticket, to Note 4: SPI values of the old SA MAY be stored in the ticket, to
skipping to change at page 17, line 15 skipping to change at page 17, line 18
6.2. Ticket Identity and Lifecycle 6.2. Ticket Identity and Lifecycle
Each ticket is associated with a single IKE SA. In particular, when Each ticket is associated with a single IKE SA. In particular, when
an IKE SA is deleted by the client or the gateway, the client MUST an IKE SA is deleted by the client or the gateway, the client MUST
delete its stored ticket. Similarly, when credentials associated delete its stored ticket. Similarly, when credentials associated
with the IKE SA are invalidated (e.g. when a user logs out), the with the IKE SA are invalidated (e.g. when a user logs out), the
ticket MUST be deleted. When the IKE SA is rekeyed the ticket is ticket MUST be deleted. When the IKE SA is rekeyed the ticket is
invalidated, and the client SHOULD request a new ticket. When a invalidated, and the client SHOULD request a new ticket. When a
client does not follow these rules, it might present an invalid client does not follow these rules, it might present an invalid
ticket to the gateway. See Section 9.7 for more about this issue. ticket to the gateway. See Section 9.8 for more about this issue.
The lifetime of the ticket sent by the gateway SHOULD be the minimum The lifetime of the ticket sent by the gateway SHOULD be the minimum
of the IKE SA lifetime (per the gateway's local policy) and its re- of the IKE SA lifetime (per the gateway's local policy) and its re-
authentication time, according to [RFC4478]. Even if neither of authentication time, according to [RFC4478]. Even if neither of
these are enforced by the gateway, a finite lifetime MUST be these are enforced by the gateway, a finite lifetime MUST be
specified for the ticket. specified for the ticket.
The key that is used to protect the ticket MUST have a lifetime that The key that is used to protect the ticket MUST have a lifetime that
is significantly longer than the lifetime of an IKE SA. is significantly longer than the lifetime of an IKE SA.
In normal operation, the client will request a ticket when In normal operation, the client will request a ticket when
establishing the initial IKE SA, and then every time the SA is establishing the initial IKE SA, and then every time the SA is
rekeyed or re-established because of re-authentication. rekeyed or re-established because of re-authentication.
7. IKE Notifications 7. IKE Notifications
This document defines a number of notifications. The notification This document defines a number of notifications. The Notify Message
numbers are TBA by IANA. types are TBA by IANA.
+-------------------+--------+-----------------+ +-------------------+-------+-----------------+
| Notification Name | Number | Data | | Notification Name | Value | Data |
+-------------------+--------+-----------------+ +-------------------+-------+-----------------+
| TICKET_LT_OPAQUE | TBA1 | See Section 7.1 | | TICKET_LT_OPAQUE | TBA1 | See Section 7.1 |
| TICKET_REQUEST | TBA2 | None | | TICKET_REQUEST | TBA2 | None |
| TICKET_ACK | TBA3 | None | | TICKET_ACK | TBA3 | None |
| TICKET_NACK | TBA4 | None | | TICKET_NACK | TBA4 | None |
| TICKET_OPAQUE | TBA5 | See Section 7.2 | | TICKET_OPAQUE | TBA5 | See Section 7.2 |
+-------------------+--------+-----------------+ +-------------------+-------+-----------------+
For all these notifications, the Protocol ID and the SPI Size fields For all these notifications, the Protocol ID and the SPI Size fields
MUST both be sent as 0. MUST both be sent as 0.
7.1. TICKET_LT_OPAQUE Notify Payload 7.1. TICKET_LT_OPAQUE Notify Payload
The data for the TICKET_LT_OPAQUE Notify payload consists of the The data for the TICKET_LT_OPAQUE Notify payload consists of the
Notify message header, a Lifetime field and the ticket itself. The Notify message header, a Lifetime field and the ticket itself. The
four octet Lifetime field contains a relative time value, the number four octet Lifetime field contains a relative time value, the number
of seconds until the ticket expires (encoded as an unsigned integer). of seconds until the ticket expires (encoded as an unsigned integer,
in network byte order).
0 1 2 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 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 ! | Next Payload |C| Reserved | Payload Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Protocol ID ! SPI Size = 0 ! Notify Message Type ! | Protocol ID | SPI Size = 0 | Notify Message Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Lifetime ! | Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! ! | |
~ Ticket ~ ~ Ticket ~
! ! | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: TICKET_LT_OPAQUE Notify Payload Figure 6: TICKET_LT_OPAQUE Notify Payload
7.2. TICKET_OPAQUE Notify Payload 7.2. TICKET_OPAQUE Notify Payload
The data for the TICKET_OPAQUE Notify payload consists of the Notify The data for the TICKET_OPAQUE Notify payload consists of the Notify
message header, and the ticket itself. Unlike the TICKET_LT_OPAQUE message header, and the ticket itself. Unlike the TICKET_LT_OPAQUE
payload, no lifetime value is included in the TICKET_OPAQUE Notify payload, no lifetime value is included in the TICKET_OPAQUE Notify
payload. payload.
0 1 2 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 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 ! | Next Payload |C| Reserved | Payload Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Protocol ID ! SPI Size = 0 ! Notify Message Type ! | Protocol ID | SPI Size = 0 | Notify Message Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! ! | |
~ Ticket ~ ~ Ticket ~
! ! | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: TICKET_OPAQUE Notify Payload Figure 7: TICKET_OPAQUE Notify Payload
8. IANA Considerations 8. IANA Considerations
Section 4.3.2 defines a new IKEv2 exchange type, IKE_SESSION_RESUME, Section 4.3.2 defines a new IKEv2 exchange type, IKE_SESSION_RESUME,
whose value is to be allocated (has been allocated) from the "IKEv2 whose value is to be allocated (has been allocated) from the "IKEv2
Exchange Types" registry. Exchange Types" registry.
Section 7 defines several new IKEv2 notifications whose values are to Section 7 defines several new IKEv2 notifications whose Message Type
be allocated (have been allocated) from the "IKEv2 Notify Message values are to be allocated (have been allocated) from the "IKEv2
Types - Status Types" registry. Notify Message Types - Status Types" registry.
9. Security Considerations 9. Security Considerations
This section addresses security issues related to the usage of a This section addresses security issues related to the usage of a
ticket. ticket.
9.1. Stolen Tickets 9.1. Stolen Tickets
A man-in-the-middle may try to eavesdrop on an exchange to obtain a A man-in-the-middle may try to eavesdrop on an exchange to obtain a
ticket by value and use it to establish a session with the IKEv2 ticket by value and use it to establish a session with the IKEv2
skipping to change at page 19, line 39 skipping to change at page 19, line 39
key, a stolen ticket cannot be used by an attacker to successfully key, a stolen ticket cannot be used by an attacker to successfully
resume a session. An IKEv2 responder MUST use strong encryption and resume a session. An IKEv2 responder MUST use strong encryption and
integrity protection of the ticket to prevent an attacker from integrity protection of the ticket to prevent an attacker from
obtaining the ticket's contents, e.g., by using a brute force attack. obtaining the ticket's contents, e.g., by using a brute force attack.
A ticket by reference does not need to be encrypted. When an A ticket by reference does not need to be encrypted. When an
adversary is able to eavesdrop on a resumption attempt, as described adversary is able to eavesdrop on a resumption attempt, as described
in the previous paragraph, then the ticket by reference may be in the previous paragraph, then the ticket by reference may be
obtained. A ticket by reference cannot be used by an attacker to obtained. A ticket by reference cannot be used by an attacker to
successfully resume a session, for the same reasons as for a ticket successfully resume a session, for the same reasons as for a ticket
by value. Moreover, the adversary MUST NOT be able to resolve the by value, namely because the attacker would not be able to prove,
ticket via the reference, i.e., access control MUST be enforced to during IKE_AUTH, its knowledge of the secret part of the IKE state
ensure disclosure only to authorized entities. embedded in the ticket. Moreover, the adversary MUST NOT be able to
resolve the ticket via the reference, i.e., access control MUST be
enforced to ensure disclosure only to authorized entities.
9.2. Forged Tickets 9.2. Forged Tickets
A malicious user could forge or alter a ticket by value in order to A malicious user could forge or alter a ticket by value in order to
resume a session, to extend its lifetime, to impersonate as another resume a session, to extend its lifetime, to impersonate as another
user, or to gain additional privileges. This attack is not possible user, or to gain additional privileges. This attack is not possible
if the content of the ticket by value is protected using a strong if the content of the ticket by value is protected using a strong
integrity protection algorithm. integrity protection algorithm.
In case of a ticket by reference an adversary may attempt to In case of a ticket by reference an adversary may attempt to
construct a fake ticket by reference to point to state information construct a fake ticket by reference to point to state information
stored by the IKEv2 responder. This attack will fail because the stored by the IKEv2 responder. This attack will fail because the
adversary is not in possession of the keying material associated with adversary is not in possession of the keying material associated with
the IKEv2 SA. As noted in Section 6.1, it is often useful to the IKEv2 SA. As noted in Section 6.1, it is often useful to
integrity-protect the ticket by reference, too. integrity-protect the ticket by reference, too.
9.3. Denial of Service Attacks 9.3. Denial of Service Attacks
An adversary could generate and send a large number of tickets by An adversary could generate and send a large number of tickets by
value to a gateway for verification. To minimize the possibility of value to a gateway for verification. Such an attack could burden the
such denial of service, ticket verification should be lightweight gateway's CPU, and/or exhaust its memory with half-open IKE state.
(e.g., using efficient symmetric key cryptographic algorithms). To minimize the possibility of such denial of service, ticket
verification should be lightweight (e.g., using efficient symmetric
key cryptographic algorithms).
When an adversary chooses to send a large number of tickets by When an adversary chooses to send a large number of tickets by
reference then this may lead to an amplification attack as the IKEv2 reference then this may lead to an amplification attack as the IKEv2
responder is forced to resolve the reference to a ticket in order to responder is forced to resolve the reference to a ticket in order to
determine that the adversary is not in possession of the keying determine that the adversary is not in possession of the keying
material corresponding to the stored state or that the reference is material corresponding to the stored state or that the reference is
void. To minimize this attack, the protocol to resolve the reference void. To minimize this attack, the protocol to resolve the reference
should be as lightweight as possible and should not generate a large should be as lightweight as possible and should not generate a large
number of messages. number of messages.
Note also that the regular IKEv2 cookie mechanism can be used to
handle state-overflow DoS situations.
9.4. Detecting the Need for Resumption 9.4. Detecting the Need for Resumption
Detecting when an old IKE SA is no longer usable and needs to be Detecting when an old IKE SA is no longer usable and needs to be
resumed is out of scope of the current document. However, clients resumed is out of scope of the current document. However, clients
are warned against implementing a more liberal policy than that used are warned against implementing a more liberal policy than that used
to detect failed IKE SAs (Sec. 2.4 of RFC 4306). In particular, to detect failed IKE SAs (Sec. 2.4 of RFC 4306). In particular,
untrusted messages MUST NOT be relied upon to make this decision. untrusted messages MUST NOT be relied upon to make this decision.
9.5. Key Management for Tickets By Value 9.5. Key Management for Tickets By Value
skipping to change at page 21, line 14 skipping to change at page 21, line 22
9.6. Ticket Lifetime 9.6. Ticket Lifetime
An IKEv2 responder controls the validity period of the state An IKEv2 responder controls the validity period of the state
information by attaching a lifetime to a ticket. The chosen lifetime information by attaching a lifetime to a ticket. The chosen lifetime
is based on the operational and security requirements of the is based on the operational and security requirements of the
environment in which this IKEv2 extension is deployed. The responder environment in which this IKEv2 extension is deployed. The responder
provides information about the ticket lifetime to the IKEv2 provides information about the ticket lifetime to the IKEv2
initiator, allowing it to manage its tickets. initiator, allowing it to manage its tickets.
9.7. Ticket Revocation 9.7. Tickets and Identity
A ticket is associated with a certain identity, and MUST be managed
securely on the client side. Section 6.2 requires that a ticket be
deleted when the credentials associated with the ticket's identity
are no longer valid, e.g. when a user whose credentials were used to
create the SA logs out.
9.8. Ticket Revocation
A misbehaving client could present a ticket in its possession to the A misbehaving client could present a ticket in its possession to the
gateway resulting in session resumption, even though the IKE SA gateway resulting in session resumption, even though the IKE SA
associated with this ticket had previously been deleted. This is associated with this ticket had previously been deleted. This is
disallowed by Section 6.2. This issue is unique to ticket by value disallowed by Section 6.2. This issue is unique to ticket by value
cases, since a ticket by reference will have been deleted from the cases, since a ticket by reference will have been deleted from the
ticket store. ticket store.
To avoid this issue for ticket by value, an Invalid Ticket List (ITL) To avoid this issue for ticket by value, an Invalid Ticket List (ITL)
may be maintained by the gateway, see may be maintained by the gateway, see
[I-D.rescorla-stateless-tokens]. This can be a simple blacklist of [I-D.rescorla-stateless-tokens]. This can be a simple blacklist of
revoked tickets. Alternatively, [I-D.rescorla-stateless-tokens] revoked tickets. Alternatively, [I-D.rescorla-stateless-tokens]
suggests to use Bloom Filters [Bloom70] to maintain the list in suggests to use Bloom Filters [Bloom70] to maintain the list in
constant space. Management of such lists is outside the scope of the constant space. Management of such lists is outside the scope of the
current document. Note that a policy that requires tickets to have current document. Note that a policy that requires tickets to have
shorter lifetimes (e.g., 1 hour) significantly mitigates this issue. shorter lifetimes (e.g., 1 hour) significantly mitigates this issue.
9.8. Ticket by Value Format 9.9. Ticket by Value Format
The ticket's format is not defined by this document, since this is The ticket's format is not defined by this document, since this is
not required for interoperability. However great care must be taken not required for interoperability. However great care must be taken
when defining a ticket format such that the requirements outlined in when defining a ticket format such that the requirements outlined in
Section 6.1 are met. The ticket by value MUST have its integrity and Section 6.1 are met. The ticket by value MUST have its integrity and
confidentiality protected with strong cryptographic techniques to confidentiality protected with strong cryptographic techniques to
prevent a breach in the security of the system. prevent a breach in the security of the system.
9.9. Identity Privacy, Anonymity, and Unlinkability 9.10. Identity Privacy, Anonymity, and Unlinkability
Since opaque state information is passed around between the IKEv2 Since opaque state information is passed around between the IKEv2
initiator and the IKEv2 responder it is important that leakage of initiator and the IKEv2 responder it is important that leakage of
information, such as the identities of an IKEv2 initiator and a information, such as the identities of an IKEv2 initiator and a
responder, MUST be avoided. responder, MUST be avoided.
When an IKEv2 initiator presents a ticket as part of the When an IKEv2 initiator presents a ticket as part of the
IKE_SESSION_RESUME exchange, confidentiality is not provided for the IKE_SESSION_RESUME exchange, confidentiality is not provided for the
exchange. There is thereby the possibility for an on-path adversary exchange. There is thereby the possibility for an on-path adversary
to observe multiple exchange handshakes where the same state to observe multiple exchange handshakes where the same state
skipping to change at page 23, line 13 skipping to change at page 23, line 27
RFC 4306, December 2005. RFC 4306, December 2005.
11.2. Informative References 11.2. Informative References
[Bloom70] Bloom, B., "Space/time trade-offs in hash coding with [Bloom70] Bloom, B., "Space/time trade-offs in hash coding with
allowable errors", Comm. ACM 13(7):422-6, July 1970. allowable errors", Comm. ACM 13(7):422-6, July 1970.
[I-D.eronen-ipsec-ikev2-eap-auth] [I-D.eronen-ipsec-ikev2-eap-auth]
Eronen, P., Tschofenig, H., and Y. Sheffer, "An Extension Eronen, P., Tschofenig, H., and Y. Sheffer, "An Extension
for EAP-Only Authentication in IKEv2", for EAP-Only Authentication in IKEv2",
draft-eronen-ipsec-ikev2-eap-auth-06 (work in progress), draft-eronen-ipsec-ikev2-eap-auth-07 (work in progress),
April 2009. October 2009.
[I-D.ietf-ipsecme-ikev2-redirect] [I-D.ietf-ipsecme-ikev2-redirect]
Devarapalli, V. and K. Weniger, "Redirect Mechanism for Devarapalli, V. and K. Weniger, "Redirect Mechanism for
IKEv2", draft-ietf-ipsecme-ikev2-redirect-13 (work in IKEv2", draft-ietf-ipsecme-ikev2-redirect-13 (work in
progress), August 2009. progress), August 2009.
[I-D.ietf-ipsecme-ikev2bis] [I-D.ietf-ipsecme-ikev2bis]
Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen, Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen,
"Internet Key Exchange Protocol: IKEv2", "Internet Key Exchange Protocol: IKEv2",
draft-ietf-ipsecme-ikev2bis-04 (work in progress), draft-ietf-ipsecme-ikev2bis-05 (work in progress),
July 2009. October 2009.
[I-D.ietf-rohc-ikev2-extensions-hcoipsec] [I-D.ietf-rohc-ikev2-extensions-hcoipsec]
Ertekin, E., Christou, C., Jasani, R., Kivinen, T., and C. Ertekin, E., Christou, C., Jasani, R., Kivinen, T., and C.
Bormann, "IKEv2 Extensions to Support Robust Header Bormann, "IKEv2 Extensions to Support Robust Header
Compression over IPsec (ROHCoIPsec)", Compression over IPsec (ROHCoIPsec)",
draft-ietf-rohc-ikev2-extensions-hcoipsec-09 (work in draft-ietf-rohc-ikev2-extensions-hcoipsec-09 (work in
progress), August 2009. progress), August 2009.
[I-D.rescorla-stateless-tokens] [I-D.rescorla-stateless-tokens]
Rescorla, E., "How to Implement Secure (Mostly) Stateless Rescorla, E., "How to Implement Secure (Mostly) Stateless
skipping to change at page 26, line 25 skipping to change at page 26, line 25
} ikev2_state_ref; } ikev2_state_ref;
} protected_part; } protected_part;
opaque MAC[0..255]; // the length depends opaque MAC[0..255]; // the length depends
// on the integrity algorithm // on the integrity algorithm
} ticket; } ticket;
Appendix B. Change Log Appendix B. Change Log
Note to RFC Editor: remove this appendix before publication. Note to RFC Editor: remove this appendix before publication.
B.1. -08 B.1. -09
Implemented IESG and opsdir review comments.
B.2. -08
Implemented IETF LC, secdir and gen-art comments. Implemented IETF LC, secdir and gen-art comments.
B.2. -07 B.3. -07
Implemented AD Review comments, most of them editorial. Implemented AD Review comments, most of them editorial.
B.3. -06 B.4. -06
Clients resuming propely closed sessions and how this can be avoided. Clients resuming propely closed sessions and how this can be avoided.
B.4. -05 B.5. -05
Editorial changes: reordered and merged some sections. Editorial changes: reordered and merged some sections.
Restated the use cases. Restated the use cases.
IDr is not negotiated during resumption, the gateway must use the IDr is not negotiated during resumption, the gateway must use the
stored IDr. stored IDr.
Multiple small clarifications based on Pasi's LC review. Multiple small clarifications based on Pasi's LC review.
IPR: pre5378Trust200902. IPR: pre5378Trust200902.
B.5. -04 B.6. -04
Closed issue #105, Non-PKI use of EAP, and resumption. Closed issue #105, Non-PKI use of EAP, and resumption.
Closed issue #106, Resumption and NAT detection and changing ports. Closed issue #106, Resumption and NAT detection and changing ports.
B.6. -03 B.7. -03
Changed the protocol from one to two round trips, to simplify the Changed the protocol from one to two round trips, to simplify the
security assumptions. Eliminated security considerations associated security assumptions. Eliminated security considerations associated
with the previous version. with the previous version.
Closed issue #69, Clarify behavior of SPI and sequence numbers. Closed issue #69, Clarify behavior of SPI and sequence numbers.
Closed issue #70, Ticket lifetime - explicit or not? (and ticket push Closed issue #70, Ticket lifetime - explicit or not? (and ticket push
from gateway). from gateway).
skipping to change at page 27, line 38 skipping to change at page 27, line 40
Closed issue #95, Minor nits for ikev2-resumption-02. Closed issue #95, Minor nits for ikev2-resumption-02.
Closed issue #97, Clarify what state comes from where. Closed issue #97, Clarify what state comes from where.
Closed issue #98, Replays in 1-RTT protocol. Closed issue #98, Replays in 1-RTT protocol.
Closed issue #100, NAT detection [and] IP address change. Closed issue #100, NAT detection [and] IP address change.
Closed issue #101, Assorted issues by Tero. Closed issue #101, Assorted issues by Tero.
B.7. -02 B.8. -02
Added a new TICKET_OPAQUE payload that does not have a lifetime field Added a new TICKET_OPAQUE payload that does not have a lifetime field
included. included.
Removed the lifetime usage from the IKE_SESSION_RESUME exchange Removed the lifetime usage from the IKE_SESSION_RESUME exchange
(utilizing the TICKET_OPAQUE) when presenting the ticket to the (utilizing the TICKET_OPAQUE) when presenting the ticket to the
gateway. gateway.
Removed IDi payloads from the IKE_SESSION_RESUME exchange. Removed IDi payloads from the IKE_SESSION_RESUME exchange.
Clarified that IPsec Child SAs would be deleted once the old IKE SA Clarified that IPsec Child SAs would be deleted once the old IKE SA
gets deleted as well. gets deleted as well.
Clarified the behavior of SPI and sequence number usage. Clarified the behavior of SPI and sequence number usage.
B.8. -01 B.9. -01
Addressed issue#75, see Addressed issue#75, see
http://tools.ietf.org/wg/ipsecme/trac/ticket/75. This included http://tools.ietf.org/wg/ipsecme/trac/ticket/75. This included
changes throughout the document to ensure that the ticket may contain changes throughout the document to ensure that the ticket may contain
a reference or a value. a reference or a value.
B.9. -00 B.10. -00
Resubmitted document as a WG item. Resubmitted document as a WG item.
B.10. -01 B.11. -01
Added reference to [I-D.xu-ike-sa-sync] Added reference to [I-D.xu-ike-sa-sync]
Included recommended ticket format into the appendix Included recommended ticket format into the appendix
Various editorial improvements within the document Various editorial improvements within the document
B.11. -00 B.12. -00
Issued a -00 version for the IPSECME working group. Reflected Issued a -00 version for the IPSECME working group. Reflected
discussions at IETF#72 regarding the strict focus on session discussions at IETF#72 regarding the strict focus on session
resumption. Consequently, text about failover was removed. resumption. Consequently, text about failover was removed.
B.12. -04 B.13. -04
Editorial fixes; references cleaned up; updated author's contact Editorial fixes; references cleaned up; updated author's contact
address address
B.13. -03 B.14. -03
Removed counter mechanism. Added an optional anti-DoS mechanism, Removed counter mechanism. Added an optional anti-DoS mechanism,
based on IKEv2 cookies (removed previous discussion of cookies). based on IKEv2 cookies (removed previous discussion of cookies).
Clarified that gateways may support reallocation of same IP address, Clarified that gateways may support reallocation of same IP address,
if provided by network. Proposed a solution outline to the problem if provided by network. Proposed a solution outline to the problem
of key exchange for the keys that protect tickets. Added fields to of key exchange for the keys that protect tickets. Added fields to
the ticket to enable interoperability. Removed incorrect MOBIKE the ticket to enable interoperability. Removed incorrect MOBIKE
notification. notification.
B.14. -02 B.15. -02
Clarifications on generation of SPI values, on the ticket's lifetime Clarifications on generation of SPI values, on the ticket's lifetime
and on the integrity protection of the anti-replay counter. and on the integrity protection of the anti-replay counter.
Eliminated redundant SPIs from the notification payloads. Eliminated redundant SPIs from the notification payloads.
B.15. -01 B.16. -01
Editorial review. Removed 24-hour limitation on ticket lifetime, Editorial review. Removed 24-hour limitation on ticket lifetime,
lifetime is up to local policy. lifetime is up to local policy.
B.16. -00 B.17. -00
Initial version. This draft is a selective merge of Initial version. This draft is a selective merge of
draft-sheffer-ike-session-resumption-00 and draft-sheffer-ike-session-resumption-00 and
draft-dondeti-ipsec-failover-sol-00. draft-dondeti-ipsec-failover-sol-00.
Authors' Addresses Authors' Addresses
Yaron Sheffer Yaron Sheffer
Check Point Software Technologies Ltd. Check Point Software Technologies Ltd.
5 Hasolelim St. 5 Hasolelim St.
 End of changes. 50 change blocks. 
97 lines changed or deleted 124 lines changed or added

This html diff was produced by rfcdiff 1.37a. The latest version is available from http://tools.ietf.org/tools/rfcdiff/