draft-ietf-mobileip-mipv6-ha-ipsec-06.txt   rfc3776.txt 
Network Working Group J. Arkko Network Working Group J. Arkko
Internet-Draft Ericsson Request for Comments: 3776 Ericsson
Expires: December 29, 2003 V. Devarapalli Category: Standards Track V. Devarapalli
Nokia Research Center Nokia Research Center
F. Dupont F. Dupont
ENST Bretagne GET/ENST Bretagne
June 30, 2003 June 2004
Using IPsec to Protect Mobile IPv6 Signaling between Mobile Nodes and Using IPsec to Protect Mobile IPv6 Signaling Between
Home Agents Mobile Nodes and Home Agents
draft-ietf-mobileip-mipv6-ha-ipsec-06.txt
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document specifies an Internet standards track protocol for the
all provisions of Section 10 of RFC2026. Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Internet-Drafts are working documents of the Internet Engineering Official Protocol Standards" (STD 1) for the standardization state
Task Force (IETF), its areas, and its working groups. Note that and status of this protocol. Distribution of this memo is unlimited.
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 December 29, 2003.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved. Copyright (C) The Internet Society (2004).
Abstract Abstract
Mobile IPv6 uses IPsec to protect signaling between the home agent Mobile IPv6 uses IPsec to protect signaling between the home agent
and the mobile node. Mobile IPv6 base document defines the main and the mobile node. Mobile IPv6 base document defines the main
requirements these nodes must follow. This document discusses these requirements these nodes must follow. This document discusses these
requirements in more depth, illustrates the used packet formats, requirements in more depth, illustrates the used packet formats,
describes suitable configuration procedures, and shows how describes suitable configuration procedures, and shows how
implementations can process the packets in the right order. implementations can process the packets in the right order.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 7 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Packet Formats . . . . . . . . . . . . . . . . . . . . . . . 8 3. Packet Formats . . . . . . . . . . . . . . . . . . . . . . . 5
3.1 Binding Updates and Acknowledgements . . . . . . . . . 8 3.1 Binding Updates and Acknowledgements . . . . . . . . . 5
3.2 Return Routability Signaling . . . . . . . . . . . . . 9 3.2 Return Routability Signaling . . . . . . . . . . . . . 7
3.3 Prefix Discovery . . . . . . . . . . . . . . . . . . . 10 3.3 Prefix Discovery . . . . . . . . . . . . . . . . . . . 8
3.4 Payload Packets . . . . . . . . . . . . . . . . . . . 11 3.4 Payload Packets . . . . . . . . . . . . . . . . . . . 9
4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 12 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1 Mandatory Support . . . . . . . . . . . . . . . . . . 12 4.1 Mandatory Support . . . . . . . . . . . . . . . . . . 10
4.2 Policy Requirements . . . . . . . . . . . . . . . . . 12 4.2 Policy Requirements . . . . . . . . . . . . . . . . . 10
4.3 IPsec Protocol Processing . . . . . . . . . . . . . . 15 4.3 IPsec Protocol Processing . . . . . . . . . . . . . . 13
4.4 Dynamic Keying . . . . . . . . . . . . . . . . . . . . 17 4.4 Dynamic Keying . . . . . . . . . . . . . . . . . . . . 15
5. Example Configurations . . . . . . . . . . . . . . . . . . . 19 5. Example Configurations . . . . . . . . . . . . . . . . . . . 16
5.1 Format . . . . . . . . . . . . . . . . . . . . . . . . 19 5.1 Format . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2 Manual Configuration . . . . . . . . . . . . . . . . . 20 5.2 Manual Configuration . . . . . . . . . . . . . . . . . 18
5.2.1 Binding Updates and Acknowledgements . . . . . . 20 5.2.1 Binding Updates and Acknowledgements . . . . . . 18
5.2.2 Return Routability Signaling . . . . . . . . . . 21 5.2.2 Return Routability Signaling . . . . . . . . . . 19
5.2.3 Prefix Discovery . . . . . . . . . . . . . . . . 22 5.2.3 Prefix Discovery . . . . . . . . . . . . . . . . 20
5.2.4 Payload Packets . . . . . . . . . . . . . . . . 23 5.2.4 Payload Packets . . . . . . . . . . . . . . . . 21
5.3 Dynamic Keying . . . . . . . . . . . . . . . . . . . . 25 5.3 Dynamic Keying . . . . . . . . . . . . . . . . . . . . 22
5.3.1 Binding Updates and Acknowledgements . . . . . . 25 5.3.1 Binding Updates and Acknowledgements . . . . . . 22
5.3.2 Return Routability Signaling . . . . . . . . . . 26 5.3.2 Return Routability Signaling . . . . . . . . . . 23
5.3.3 Prefix Discovery . . . . . . . . . . . . . . . . 27 5.3.3 Prefix Discovery . . . . . . . . . . . . . . . . 24
5.3.4 Payload Packets . . . . . . . . . . . . . . . . 27 5.3.4 Payload Packets . . . . . . . . . . . . . . . . 25
6. Processing Steps within a Node . . . . . . . . . . . . . . . 29 6. Processing Steps within a Node . . . . . . . . . . . . . . . 25
6.1 Binding Update to the Home Agent . . . . . . . . . . . 29 6.1 Binding Update to the Home Agent . . . . . . . . . . . 25
6.2 Binding Update from the Mobile Node . . . . . . . . . 30 6.2 Binding Update from the Mobile Node . . . . . . . . . 26
6.3 Binding Acknowledgement to the Mobile Node . . . . . . 31 6.3 Binding Acknowledgement to the Mobile Node . . . . . . 27
6.4 Binding Acknowledgement from the Home Agent . . . . . 32 6.4 Binding Acknowledgement from the Home Agent . . . . . 28
6.5 Home Test Init to the Home Agent . . . . . . . . . . . 32 6.5 Home Test Init to the Home Agent . . . . . . . . . . . 29
6.6 Home Test Init from the Mobile Node . . . . . . . . . 33 6.6 Home Test Init from the Mobile Node . . . . . . . . . 30
6.7 Home Test to the Mobile Node . . . . . . . . . . . . . 33 6.7 Home Test to the Mobile Node . . . . . . . . . . . . . 30
6.8 Home Test from the Home Agent . . . . . . . . . . . . 34 6.8 Home Test from the Home Agent . . . . . . . . . . . . 31
6.9 Prefix Solicitation Message to the Home Agent . . . . 35 6.9 Prefix Solicitation Message to the Home Agent . . . . 31
6.10 Prefix Solicitation Message from the Mobile Node . . . 35 6.10 Prefix Solicitation Message from the Mobile Node . . . 31
6.11 Prefix Advertisement Message to the Mobile Node . . . 35 6.11 Prefix Advertisement Message to the Mobile Node . . . 32
6.12 Prefix Advertisement Message from the Home Agent . . . 35 6.12 Prefix Advertisement Message from the Home Agent . . . 32
6.13 Payload Packet to the Home Agent . . . . . . . . . . . 35 6.13 Payload Packet to the Home Agent . . . . . . . . . . . 32
6.14 Payload Packet from the Mobile Node . . . . . . . . . 35 6.14 Payload Packet from the Mobile Node . . . . . . . . . 32
6.15 Payload Packet to the Mobile Node . . . . . . . . . . 35 6.15 Payload Packet to the Mobile Node . . . . . . . . . . 32
6.16 Payload Packet from the Home Agent . . . . . . . . . . 35 6.16 Payload Packet from the Home Agent . . . . . . . . . . 32
6.17 Establishing New Security Associations . . . . . . . . 35 6.17 Establishing New Security Associations . . . . . . . . 32
6.18 Rekeying Security Associations . . . . . . . . . . . . 36 6.18 Rekeying Security Associations . . . . . . . . . . . . 33
6.19 Movements and Dynamic Keying . . . . . . . . . . . . . 37 6.19 Movements and Dynamic Keying . . . . . . . . . . . . . 34
7. Implementation Considerations . . . . . . . . . . . . . . . 39 7. Implementation Considerations . . . . . . . . . . . . . . . 35
7.1 IPsec . . . . . . . . . . . . . . . . . . . . . . . . 39 7.1 IPsec . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2 IKE . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.2 IKE . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.3 Bump-in-the-Stack . . . . . . . . . . . . . . . . . . 40 7.3 Bump-in-the-Stack . . . . . . . . . . . . . . . . . . 37
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . 42 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . 37
9. Security Considerations . . . . . . . . . . . . . . . . . . 43 9. Security Considerations . . . . . . . . . . . . . . . . . . 37
Normative References . . . . . . . . . . . . . . . . . . . . 44 10 References . . . . . . . . . . . . . . . . . . . . . . . . . 38
Informative References . . . . . . . . . . . . . . . . . . . 45 10.1 Normative References . . . . . . . . . . . . . . . . . 38
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 45 10.2 Informative References . . . . . . . . . . . . . . . . 38
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 46 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 39
B. Changes from Previous Version . . . . . . . . . . . . . . . 47 12. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 39
Intellectual Property and Copyright Statements . . . . . . . 48 13. Full Copyright Statement . . . . . . . . . . . . . . . . . . 40
1. Introduction 1. Introduction
This document illustrates the use of IPsec in securing Mobile IPv6 This document illustrates the use of IPsec in securing Mobile IPv6
[8] traffic between mobile nodes and home agents. In Mobile IPv6, a [7] traffic between mobile nodes and home agents. In Mobile IPv6, a
mobile node is always expected to be addressable at its home address, mobile node is always expected to be addressable at its home address,
whether it is currently attached to its home link or is away from whether it is currently attached to its home link or is away from
home. The "home address" is an IP address assigned to the mobile home. The "home address" is an IP address assigned to the mobile
node within its home subnet prefix on its home link. While a mobile node within its home subnet prefix on its home link. While a mobile
node is at home, packets addressed to its home address are routed to node is at home, packets addressed to its home address are routed to
the mobile node's home link. the mobile node's home link.
While a mobile node is attached to some foreign link away from home, While a mobile node is attached to some foreign link away from home,
it is also addressable at a care-of addresses. A care-of address is it is also addressable at a care-of address. A care-of address is an
an IP address associated with a mobile node that has a subnet prefix IP address associated with a mobile node that has a subnet prefix
from a particular foreign link. The association between a mobile from a particular foreign link. The association between a mobile
node's home address and care-of address is known as a "binding" for node's home address and care-of address is known as a "binding" for
the mobile node. While away from home, a mobile node registers its the mobile node. While away from home, a mobile node registers its
primary care-of address with a router on its home link, requesting primary care-of address with a router on its home link, requesting
this router to function as the "home agent" for the mobile node. The this router to function as the "home agent" for the mobile node. The
mobile node performs this binding registration by sending a "Binding mobile node performs this binding registration by sending a "Binding
Update" message to the home agent. The home agent replies to the Update" message to the home agent. The home agent replies to the
mobile node by returning a "Binding Acknowledgement" message. mobile node by returning a "Binding Acknowledgement" message.
Any other nodes communicating with a mobile node are referred to as Any other nodes communicating with a mobile node are referred to as
skipping to change at page 4, line 41 skipping to change at page 3, line 41
Updates and Acknowledgements. Additionally, return routability test Updates and Acknowledgements. Additionally, return routability test
is performed between the mobile node, home agent, and the is performed between the mobile node, home agent, and the
correspondent node in order to authorize the establishment of the correspondent node in order to authorize the establishment of the
binding. Packets between the mobile node and the correspondent node binding. Packets between the mobile node and the correspondent node
are either tunneled via the home agent, or sent directly if a binding are either tunneled via the home agent, or sent directly if a binding
exists in the correspondent node for the current location of the exists in the correspondent node for the current location of the
mobile node. mobile node.
Mobile IPv6 tunnels payload packets between the mobile node and the Mobile IPv6 tunnels payload packets between the mobile node and the
home agent in both directions. This tunneling uses IPv6 home agent in both directions. This tunneling uses IPv6
encapsulation [7]. Where these tunnels need to be secured, they are encapsulation [6]. Where these tunnels need to be secured, they are
replaced by IPsec tunnels [2]. replaced by IPsec tunnels [2].
Mobile IPv6 also provides support for the reconfiguration of the home Mobile IPv6 also provides support for the reconfiguration of the home
network. Here the home subnet prefixes may change over time. Mobile network. Here, the home subnet prefixes may change over time.
nodes can learn new information about home subnet prefixes through Mobile nodes can learn new information about home subnet prefixes
the "prefix discovery" mechanism. through the "prefix discovery" mechanism.
This document discusses security mechanisms for the control traffic This document discusses security mechanisms for the control traffic
between the mobile node and the home agent. If this traffic is not between the mobile node and the home agent. If this traffic is not
protected, mobile nodes and correspondent nodes are vulnerable to protected, mobile nodes and correspondent nodes are vulnerable to
man-in-the-middle, hijacking, passive wiretapping, impersonation, and man-in-the-middle, hijacking, passive wiretapping, impersonation, and
denial-of-service attacks. Any third parties are also vulnerable to denial-of-service attacks. Any third parties are also vulnerable to
denial-of-service attacks, for instance if an attacker could direct denial-of-service attacks, for instance if an attacker could direct
the traffic flowing through the home agent to a innocent third party. the traffic flowing through the home agent to a innocent third party.
These attacks are discussed in more detail in Section 15.1 of the These attacks are discussed in more detail in Section 15.1 of the
Mobile IPv6 base specification [8]. Mobile IPv6 base specification [7].
In order to avoid these attacks, the base specification uses IPsec In order to avoid these attacks, the base specification uses IPsec
Encapsulating Security Payload (ESP) [4] to protect control traffic Encapsulating Security Payload (ESP) [3] to protect control traffic
between the home agent and the mobile node. This control traffic between the home agent and the mobile node. This control traffic
consists of various messages carried by the Mobility Header protocol consists of various messages carried by the Mobility Header protocol
in IPv6 [6]. The traffic takes the following forms: in IPv6 [5]. The traffic takes the following forms:
o Binding Update and Acknowledgement messages exchanged between the o Binding Update and Acknowledgement messages exchanged between the
mobile node and the home agent, as described in Sections 10.3.1, mobile node and the home agent, as described in Sections 10.3.1,
10.3.2, 11.7.1, and 11.7.3 of the base specification [8]. 10.3.2, 11.7.1, and 11.7.3 of the base specification [7].
o Return routability messages Home Test Init and Home Test that pass o Return routability messages Home Test Init and Home Test that pass
through the home agent on their way to a correspondent node, as through the home agent on their way to a correspondent node, as
described in Section 10.4.6 of the base specification [8]. described in Section 10.4.6 of the base specification [7].
o ICMPv6 messages exchanged between the mobile node and the home o ICMPv6 messages exchanged between the mobile node and the home
agent for the purposes of prefix discovery, as described in agent for the purposes of prefix discovery, as described in
Sections 10.6 and 11.4 of the base specification [8]. Sections 10.6 and 11.4 of the base specification [7].
The nodes may also optionally protect payload traffic passing through The nodes may also optionally protect payload traffic passing through
the home agent, as described in Section 5.3 of the base specification the home agent, as described in Section 5.5 of the base specification
[8]. If multicast group membership control protocols or stateful [7]. If multicast group membership control protocols or stateful
address autoconfiguration protocols are supported, payload data address autoconfiguration protocols are supported, payload data
protection support is required. protection support is required.
The control traffic between the mobile node and the home agent The control traffic between the mobile node and the home agent
requires message authentication, integrity, correct ordering and requires message authentication, integrity, correct ordering and
anti-replay protection. The mobile node and the home agent must have anti-replay protection. The mobile node and the home agent must have
an IPsec security association to protect this traffic. IPsec does an IPsec security association to protect this traffic. IPsec does
not proving correct ordering of messages. Correct ordering of the not proving correct ordering of messages. Correct ordering of the
control traffic is ensured by a sequence number in the Binding Update control traffic is ensured by a sequence number in the Binding Update
and Binding Acknowledgement messages. The sequence number in the and Binding Acknowledgement messages. The sequence number in the
Binding Updates also provides protection to a certain extent. It Binding Updates also provides protection to a certain extent. It
fails in some scenarios, for example, if the Home Agent loses the fails in some scenarios, for example, if the Home Agent loses the
Binding Cache state. Full protection against replay attacks is Binding Cache state. Full protection against replay attacks is
possible only when IKE is used. possible only when IKE is used.
Great care is needed when using IKE [5] to establish security Great care is needed when using IKE [4] to establish security
associations to Mobile IPv6 home agents. The right kind of addresses associations to Mobile IPv6 home agents. The right kind of addresses
must be used for transporting IKE. This is necessary to avoid must be used for transporting IKE. This is necessary to avoid
circular dependencies in which the use of a Binding Update triggers circular dependencies in which the use of a Binding Update triggers
the need for an IKE exchange that cannot complete prior to the the need for an IKE exchange that cannot complete prior to the
Binding Update having been completed. Binding Update having been completed.
The mobile IPv6 base document defines the main requirements the The mobile IPv6 base document defines the main requirements the
mobile nodes and home agents must follow when securing the above mobile nodes and home agents must follow when securing the above
traffic. This document discusses these requirements in more depth, traffic. This document discusses these requirements in more depth,
illustrates the used packet formats, describes suitable configuration illustrates the used packet formats, describes suitable configuration
skipping to change at page 6, line 22 skipping to change at page 5, line 22
We begin our description by showing the required wire formats for the We begin our description by showing the required wire formats for the
protected packets in Section 3. Section 4 describes rules which protected packets in Section 3. Section 4 describes rules which
associated Mobile IPv6, IPsec, and IKE implementations must observe. associated Mobile IPv6, IPsec, and IKE implementations must observe.
Section 5 discusses how to configure either manually keyed IPsec Section 5 discusses how to configure either manually keyed IPsec
security associations or how to configure IKE to establish them security associations or how to configure IKE to establish them
automatically. Section 6 shows examples of how packets are processed automatically. Section 6 shows examples of how packets are processed
within the nodes. within the nodes.
All implementations of Mobile IPv6 mobile node and home agent MUST All implementations of Mobile IPv6 mobile node and home agent MUST
support at least the formats described in Section 3 and obey the support at least the formats described in Section 3 and obey the
rules in Section 4. Note that in addition to the use of ESP as rules in Section 4.
specified here, it may also be possible to use Authentication Header
(AH) [3], but for brevity this is not discussed in this
specification.
The configuration and processing sections are informative, and should The configuration and processing sections are informative, and should
only be considered as one possible way of providing the required only be considered as one possible way of providing the required
functionality. functionality.
Note that where this document indicates a feature MUST be supported Note that where this document indicates a feature MUST be supported
and SHOULD be used, this implies that all implementations must be and SHOULD be used, this implies that all implementations must be
capable of using the specified feature, but there may be cases where, capable of using the specified feature, but there may be cases where,
for instance, a configuration option disables to use of the feature for instance, a configuration option disables to use of the feature
in a particular situation. in a particular situation.
2. Terminology 2. Terminology
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [1]. document are to be interpreted as described in RFC 2119 [1].
3. Packet Formats 3. Packet Formats
3.1 Binding Updates and Acknowledgements 3.1. Binding Updates and Acknowledgements
When the mobile node is away from its home, the BUs sent by it to the When the mobile node is away from its home, the BUs sent by it to the
home agent MUST support at least the following headers in the home agent MUST support at least the following headers in the
following order: following order:
IPv6 header (source = care-of address, IPv6 header (source = care-of address,
destination = home agent) destination = home agent)
Destination Options header Destination Options header
Home Address option (home address) Home Address option (home address)
ESP header in transport mode ESP header in transport mode
skipping to change at page 9, line 4 skipping to change at page 6, line 38
mobile node can use its home address as a source address. This mobile node can use its home address as a source address. This
typically happens for the de-registration Binding Update when the typically happens for the de-registration Binding Update when the
mobile is returning home. In this situation, the Binding Updates mobile is returning home. In this situation, the Binding Updates
MUST support at least the following headers in the following order: MUST support at least the following headers in the following order:
IPv6 header (source = home address, IPv6 header (source = home address,
destination = home agent) destination = home agent)
ESP header in transport mode ESP header in transport mode
Mobility header Mobility header
Binding Update Binding Update
The Binding Acknowledgement messages sent to the home address MUST The Binding Acknowledgement messages sent to the home address MUST
support at least the following headers in the following order: support at least the following headers in the following order:
IPv6 header (source = home agent, IPv6 header (source = home agent,
destination = home address) destination = home address)
ESP header in transport mode ESP header in transport mode
Mobility header Mobility header
Binding Acknowledgement Binding Acknowledgement
3.2 Return Routability Signaling 3.2. Return Routability Signaling
When the Home Test Init messages tunneled to the home agent are When the Home Test Init messages tunneled to the home agent are
protected by IPsec, they MUST support at least the following headers protected by IPsec, they MUST support at least the following headers
in the following order: in the following order:
IPv6 header (source = care-of address, IPv6 header (source = care-of address,
destination = home agent) destination = home agent)
ESP header in tunnel mode ESP header in tunnel mode
IPv6 header (source = home address, IPv6 header (source = home address,
destination = correspondent node) destination = correspondent node)
skipping to change at page 10, line 18 skipping to change at page 8, line 9
association's outer header destination address had changed. When the association's outer header destination address had changed. When the
mobile node adopts a new care-of address, it adopts also a new source mobile node adopts a new care-of address, it adopts also a new source
address for outgoing tunnel packets. The home agent accepts packets address for outgoing tunnel packets. The home agent accepts packets
sent like this, as the outer source address in tunnel packets is not sent like this, as the outer source address in tunnel packets is not
checked according to the rules in RFC 2401. (We note, however, that checked according to the rules in RFC 2401. (We note, however, that
some implementations are known to make source address checks.) For a some implementations are known to make source address checks.) For a
discussion of the role of source addresses in outer tunnel headers, discussion of the role of source addresses in outer tunnel headers,
see Section 5.1.2.1 of RFC 2401 [2]. Note also that the home agent see Section 5.1.2.1 of RFC 2401 [2]. Note also that the home agent
requires the packets to be authenticated regardless of the source requires the packets to be authenticated regardless of the source
address change, hence the "new" sender must possess the same keys for address change, hence the "new" sender must possess the same keys for
the security association as the it had in the previous location. the security association as it had in the previous location. This
This proves that the sender is the same entity, regardless of the proves that the sender is the same entity, regardless of the changes
changes in the addresses. in the addresses.
The process is more complicated in the home agent side, as the home The process is more complicated in the home agent side, as the home
agent has stored the previous care-of address in its Security agent has stored the previous care-of address in its Security
Association Database as the outer header destination address. When Association Database as the outer header destination address. When
IKE is being used, the mobile node runs it on top of its current IKE is being used, the mobile node runs it on top of its current
care-of address, and the resulting tunnel-mode security associations care-of address, and the resulting tunnel-mode security associations
will use the same addresses as IKE run over. In order for the home will use the same addresses as IKE run over. In order for the home
agent to be able to tunnel a Home Test message to the mobile node, it agent to be able to tunnel a Home Test message to the mobile node, it
uses the current care-of address as the destination of the tunnel uses the current care-of address as the destination of the tunnel
packets, as if the home agent had modified the outer header packets, as if the home agent had modified the outer header
destination address in the security association used for this destination address in the security association used for this
protection. This implies that the same security association can be protection. This implies that the same security association can be
used in multiple locations, and no new configuration or used in multiple locations, and no new configuration or
re-establishment of IKE phases is needed per movement. Section 5.2.2 re-establishment of IKE phases is needed per movement. Section 5.2.2
discusses the security policy and security association database discusses the security policy and security association database
entries that are needed to accomplish this. entries that are needed to accomplish this.
3.3 Prefix Discovery 3.3. Prefix Discovery
If IPsec is used to protect prefix discovery, requests for prefixes If IPsec is used to protect prefix discovery, requests for prefixes
from the mobile node to the home agent MUST support at least the from the mobile node to the home agent MUST support at least the
following headers in the following order. following headers in the following order.
IPv6 header (source = care-of address, IPv6 header (source = care-of address,
destination = home agent) destination = home agent)
Destination Options header Destination Options header
Home Address option (home address) Home Address option (home address)
ESP header in transport mode ESP header in transport mode
skipping to change at page 11, line 16 skipping to change at page 9, line 7
least the following headers in the following order. least the following headers in the following order.
IPv6 header (source = home agent, IPv6 header (source = home agent,
destination = care-of address) destination = care-of address)
Routing header (type 2) Routing header (type 2)
home address home address
ESP header in transport mode ESP header in transport mode
ICMPv6 ICMPv6
Mobile Prefix Advertisement Mobile Prefix Advertisement
3.4 Payload Packets 3.4. Payload Packets
If IPsec is used to protect payload packets tunneled to the home If IPsec is used to protect payload packets tunneled to the home
agent from the mobile node, a similar format is used as in the case agent from the mobile node, we use a format similar to the one in
of tunneled Home Test Init messages. However, instead of the Section 3.2. However, instead of the MobilityHeader, these packets
Mobility Header these packets may contain any legal IPv6 protocol(s): may contain any legal IPv6 protocol(s):
IPv6 header (source = care-of address, IPv6 header (source = care-of address,
destination = home agent) destination = home agent)
ESP header in tunnel mode ESP header in tunnel mode
IPv6 header (source = home address, IPv6 header (source = home address,
destination = correspondent node) destination = correspondent node)
Any protocol Any protocol
Similarly, when the payload packets are tunneled from the home agent Similarly, when the payload packets are tunneled from the home agent
to the mobile node with ESP encapsulation, they MUST support at least to the mobile node with ESP encapsulation, they MUST support at least
skipping to change at page 12, line 17 skipping to change at page 10, line 5
This section describes mandatory rules for all Mobile IPv6 mobile This section describes mandatory rules for all Mobile IPv6 mobile
nodes and home agents. These rules are necessary in order for it to nodes and home agents. These rules are necessary in order for it to
be possible to enable IPsec communications despite movements, be possible to enable IPsec communications despite movements,
guarantee sufficient security, and to ensure correct processing order guarantee sufficient security, and to ensure correct processing order
of packets. of packets.
The rules in the following sections apply only to the communications The rules in the following sections apply only to the communications
between home agents and mobile nodes. They should not be taken as between home agents and mobile nodes. They should not be taken as
requirements on how IPsec in general is used by mobile nodes. requirements on how IPsec in general is used by mobile nodes.
4.1 Mandatory Support 4.1. Mandatory Support
The following requirements apply to both home agents and mobile The following requirements apply to both home agents and mobile
nodes: nodes:
o Manual configuration of IPsec security associations MUST be o Manual configuration of IPsec security associations MUST be
supported. The configuration of the keys is expected to take supported. The configuration of the keys is expected to take
place out-of-band, for instance at the time the mobile node is place out-of-band, for instance at the time the mobile node is
configured to use its home agent. configured to use its home agent.
o Automatic key management with IKE [5] MAY be supported. Only o Automatic key management with IKE [4] MAY be supported. Only
IKEv1 is discussed in this document. Other automatic key IKEv1 is discussed in this document. Other automatic key
management mechanisms exist and will appear beyond IKEv1, but this management mechanisms exist and will appear beyond IKEv1, but this
document does not address the issues related to them. document does not address the issues related to them.
o ESP encapsulation of Binding Updates and Acknowledgements between o ESP encapsulation of Binding Updates and Acknowledgements between
the mobile node and home agent MUST be supported and MUST be used. the mobile node and home agent MUST be supported and MUST be used.
o ESP encapsulation of the Home Test Init and Home Test messages o ESP encapsulation of the Home Test Init and Home Test messages
tunneled between the mobile node and home agent MUST be supported tunneled between the mobile node and home agent MUST be supported
and SHOULD be used. and SHOULD be used.
skipping to change at page 12, line 49 skipping to change at page 10, line 37
o ESP encapsulation of the ICMPv6 messages related to prefix o ESP encapsulation of the ICMPv6 messages related to prefix
discovery MUST be supported and SHOULD be used. discovery MUST be supported and SHOULD be used.
o ESP encapsulation of the payload packets tunneled between the o ESP encapsulation of the payload packets tunneled between the
mobile node and home agent MAY be supported and used. mobile node and home agent MAY be supported and used.
o If multicast group membership control protocols or stateful o If multicast group membership control protocols or stateful
address autoconfiguration protocols are supported, payload data address autoconfiguration protocols are supported, payload data
protection MUST be supported for those protocols. protection MUST be supported for those protocols.
4.2 Policy Requirements 4.2. Policy Requirements
The following requirements apply to both home agents and mobile The following requirements apply to both home agents and mobile
nodes: nodes:
o As required in the base specification [8], when a packet destined o As required in the base specification [7], when a packet destined
to the receiving node is matched against IPsec security policy or to the receiving node is matched against IPsec security policy or
selectors of a security association, an address appearing in a selectors of a security association, an address appearing in a
Home Address destination option is considered as the source Home Address destination option is considered as the source
address of the packet. address of the packet.
Note that the home address option appears before IPsec headers. Note that the home address option appears before IPsec headers.
Section 11.3.2 of the base specification describes one possible Section 11.3.2 of the base specification describes one possible
implementation approach for this: The IPsec policy operations can implementation approach for this: The IPsec policy operations can
be performed at the time when the packet has not yet been modified be performed at the time when the packet has not yet been modified
per Mobile IPv6 rules, or has been brought back to its normal form per Mobile IPv6 rules, or has been brought back to its normal form
skipping to change at page 14, line 13 skipping to change at page 11, line 48
Agent, the tunnel between the home agent and the mobile node's Agent, the tunnel between the home agent and the mobile node's
care-of address is torn down. The security policy entries, which care-of address is torn down. The security policy entries, which
were used for protecting tunneled traffic between the mobile node were used for protecting tunneled traffic between the mobile node
and the home agent MUST be made inactive (for instance, by and the home agent MUST be made inactive (for instance, by
removing them and installing them back later through an API). The removing them and installing them back later through an API). The
corresponding security associations could be kept as they are or corresponding security associations could be kept as they are or
deleted depending on how they were created. If the security deleted depending on how they were created. If the security
associations were created dynamically using IKE, they are associations were created dynamically using IKE, they are
automatically deleted when they expire. If the security automatically deleted when they expire. If the security
associations were created through manual configuration, they MUST associations were created through manual configuration, they MUST
be retained and used later when the mobile node moves aways from be retained and used later when the mobile node moves away from
home again. The security associations protecting Binding Updates home again. The security associations protecting Binding Updates
and Acknowledgements, and prefix discovery SHOULD NOT be deleted and Acknowledgements, and prefix discovery SHOULD NOT be deleted
as they do not depend on care-of addresses and can be used again. as they do not depend on care-of addresses and can be used again.
The following rules apply to mobile nodes: The following rules apply to mobile nodes:
o The mobile node MUST use the Home Address destination option in o The mobile node MUST use the Home Address destination option in
Binding Updates and Mobile Prefix Solicitations, sent to the home Binding Updates and Mobile Prefix Solicitations, sent to the home
agent from a care-of address. agent from a care-of address.
skipping to change at page 15, line 12 skipping to change at page 13, line 5
locally administered table in the home agent. If the phase 1 locally administered table in the home agent. If the phase 1
identity is a Fully Qualified Domain Name (FQDN), secure forms of identity is a Fully Qualified Domain Name (FQDN), secure forms of
DNS may also be used. DNS may also be used.
o When the set of prefixes advertised by the home agent changes, o When the set of prefixes advertised by the home agent changes,
there is a need to configure new security policy entries, and there is a need to configure new security policy entries, and
there may be a need to configure new security associations. It is there may be a need to configure new security associations. It is
outside the scope of this specification to discuss automatic outside the scope of this specification to discuss automatic
methods for this, if new home addresses are required. methods for this, if new home addresses are required.
4.3 IPsec Protocol Processing 4.3. IPsec Protocol Processing
The following requirements apply to both home agents and mobile The following requirements apply to both home agents and mobile
nodes: nodes:
o When securing Binding Updates, Binding Acknowledgements, and o When securing Binding Updates, Binding Acknowledgements, and
prefix discovery, both the mobile nodes and the home agents MUST prefix discovery, both the mobile nodes and the home agents MUST
support and SHOULD use the Encapsulating Security Payload (ESP) support and SHOULD use the Encapsulating Security Payload (ESP)
[4] header in transport mode and MUST use a non-null payload [3] header in transport mode and MUST use a non-null payload
authentication algorithm to provide data origin authentication, authentication algorithm to provide data origin authentication,
connectionless integrity and optional anti-replay protection. connectionless integrity and optional anti-replay protection.
Mandatory support for encryption and integrity protection Mandatory support for encryption and integrity protection
algorithms is as defined in RFC 2401 [2], RFC 2402 [3], and RFC algorithms is as defined in RFC 2401 [2], RFC 2402 [8], and RFC
2406 [4]. Care is needed when selecting suitable encryption 2406 [3]. Care is needed when selecting suitable encryption
algorithms for ESP, however. Currently available integrity algorithms for ESP, however. Currently available integrity
protection algorithms are in general considered to be secure. The protection algorithms are in general considered to be secure. The
encryption algorithm, DES, mandated by the current IPsec standards encryption algorithm, DES, mandated by the current IPsec standards
is not, however. This is particularly problematic when IPsec is not, however. This is particularly problematic when IPsec
security associations are configured manually, as the same key is security associations are configured manually, as the same key is
used for a long time. used for a long time.
o Tunnel mode IPsec ESP MUST be supported and SHOULD be used for the o Tunnel mode IPsec ESP MUST be supported and SHOULD be used for the
protection of packets belonging to the return routability protection of packets belonging to the return routability
procedure. A non-null encryption transform and a non-null procedure. A non-null encryption transform and a non-null
skipping to change at page 15, line 49 skipping to change at page 13, line 42
Note that the return routability procedure involves two message Note that the return routability procedure involves two message
exchanges from the mobile node to the correspondent node. The exchanges from the mobile node to the correspondent node. The
purpose of these exchanges is to assure that the mobile node is purpose of these exchanges is to assure that the mobile node is
live at the claimed home and care-of addresses. One of the live at the claimed home and care-of addresses. One of the
exchanges is sent directly to and from the correspondent node, exchanges is sent directly to and from the correspondent node,
while another one is tunneled through the home agent. If an while another one is tunneled through the home agent. If an
attacker is on the mobile node's link and the mobile node's attacker is on the mobile node's link and the mobile node's
current link is an unprotected wireless link, the attacker would current link is an unprotected wireless link, the attacker would
able to see both sets of messages, and launch attacks based on it able to see both sets of messages, and launch attacks based on it
(these attacks are discussed further in Section 15.4 of the base (these attacks are discussed further in Section 15.4 of the base
specification [8]. One can prevent the attack by making sure that specification [7].) One can prevent the attack by making sure
the packets tunneled through the home agent are encrypted. that the packets tunneled through the home agent are encrypted.
Note that this specification concerns itself only with on-the-wire Note that this specification concerns itself only with on-the-wire
formats, and does not dictate specific implementations mechanisms. formats, and does not dictate specific implementations mechanisms.
In the case of IPsec tunnel mode, the use of IP-in-IP In the case of IPsec tunnel mode, the use of IP-in-IP
encapsulation followed by IPsec transport mode encapsulation may encapsulation followed by IPsec transport mode encapsulation may
also be possible. also be possible.
The following rules apply to mobile nodes: The following rules apply to mobile nodes:
o When ESP is used to protect Binding Updates, there is no o When ESP is used to protect Binding Updates, there is no
skipping to change at page 16, line 26 skipping to change at page 14, line 20
home agent to verify that the care-of address has not been home agent to verify that the care-of address has not been
tampered with. As a result, the attacker would have redirected tampered with. As a result, the attacker would have redirected
the mobile node's traffic to another address. In order to prevent the mobile node's traffic to another address. In order to prevent
this, Mobile IPv6 implementations MUST use the Alternate Care-of this, Mobile IPv6 implementations MUST use the Alternate Care-of
Address mobility option in Binding Updates sent by mobile nodes Address mobility option in Binding Updates sent by mobile nodes
while away from home. The exception to this is when the mobile while away from home. The exception to this is when the mobile
node returns home and sends a Binding Update to the home agent in node returns home and sends a Binding Update to the home agent in
order to de-register. In this case no Alternate Care-of Address order to de-register. In this case no Alternate Care-of Address
option is needed, as described in Section 3.1. option is needed, as described in Section 3.1.
o When IPsec is used to protect return routability signaling or When IPsec is used to protect return routability signaling or
payload packets, the mobile node MUST set the source address it payload packets, the mobile node MUST set the source address it
uses for the outgoing tunnel packets to the current primary uses for the outgoing tunnel packets to the current primary care-
care-of address. The mobile node starts to use a new primary of address. The mobile node starts to use a new primary care-of
care-of address immediately after sending a Binding Update to the address immediately after sending a Binding Update to the home
home agent to register this new address. Similarly, it starts to agent to register this new address. Similarly, it starts to use
use the new address as the required destination address of the new address as the required destination address of tunneled
tunneled packets received from the home agent. packets received from the home agent.
The following rules apply to home agents: The following rules apply to home agents:
o When IPsec is used to protect return routability signaling or o When IPsec is used to protect return routability signaling or
payload packets, IPsec security associations are needed to provide payload packets, IPsec security associations are needed to provide
this protection. When the care-of address for the mobile node this protection. When the care-of address for the mobile node
changes as a result of an accepted Binding Update, special changes as a result of an accepted Binding Update, special
treatment is needed for the next packets sent using these security treatment is needed for the next packets sent using these security
associations. The home agent MUST set the new care-of address as associations. The home agent MUST set the new care-of address as
the destination address of these packets, as if the outer header the destination address of these packets, as if the outer header
skipping to change at page 17, line 7 skipping to change at page 15, line 5
Such address changes can be implemented, for instance, through an Such address changes can be implemented, for instance, through an
API from the Mobile IPv6 implementation to the IPsec API from the Mobile IPv6 implementation to the IPsec
implementation. It should be noted that the use of such an API implementation. It should be noted that the use of such an API
and the address changes MUST only be done based on the Binding and the address changes MUST only be done based on the Binding
Updates received by the home agent and protected by the use of Updates received by the home agent and protected by the use of
IPsec. Address modifications based on other sources, such as IPsec. Address modifications based on other sources, such as
Binding Updates to the correspondent nodes protected by return Binding Updates to the correspondent nodes protected by return
routability, or open access to an API from any application may routability, or open access to an API from any application may
result in security vulnerabilities. result in security vulnerabilities.
4.4 Dynamic Keying 4.4. Dynamic Keying
The following requirements apply to both home agents and mobile The following requirements apply to both home agents and mobile
nodes: nodes:
o If anti-replay protection is required, dynamic keying MUST be o If anti-replay protection is required, dynamic keying MUST be
used. IPsec can provide anti-replay protection only if dynamic used. IPsec can provide anti-replay protection only if dynamic
keying is used (which may not always be the case). IPsec also keying is used (which may not always be the case). IPsec also
does not guarantee correct ordering of packets, only that they does not guarantee correct ordering of packets, only that they
have not been replayed. Because of this, sequence numbers within have not been replayed. Because of this, sequence numbers within
the Mobile IPv6 messages are used to ensure correct ordering. the Mobile IPv6 messages are used to ensure correct ordering.
skipping to change at page 17, line 39 skipping to change at page 15, line 37
home agent. Therefore, if preshared secret authentication is used home agent. Therefore, if preshared secret authentication is used
in IKEv1 between the mobile node and the home agent then in IKEv1 between the mobile node and the home agent then
aggressive mode MUST be used. Note also that care needs to be aggressive mode MUST be used. Note also that care needs to be
taken with phase 1 identity selection. Where the ID_IPV6_ADDR taken with phase 1 identity selection. Where the ID_IPV6_ADDR
Identity Payloads is used, unambiguous mapping of identities to Identity Payloads is used, unambiguous mapping of identities to
keys is not possible. (The next version of IKE may not have these keys is not possible. (The next version of IKE may not have these
limitations.) limitations.)
Note that the difficulties with main mode and preshared secrets in Note that the difficulties with main mode and preshared secrets in
IKE version 1 are well known for dynamic addresses. With static IKE version 1 are well known for dynamic addresses. With static
addresses, there has not been a problem. With Mobile IPv6, addresses, there has not been a problem. With Mobile IPv6, however,
however, the use of the care-of addresses to run IKE to the home the use of the care-of addresses to run IKE to the home agent
agent presents a problem even when the home address stays stable. presents a problem even when the home address stays stable. Further
Further discussion about the use of care-of addresses in this way discussion about the use of care-of addresses in this way appears in
appears in Section 7. Section 7.
The following rules apply to mobile nodes: The following rules apply to mobile nodes:
o In addition to the rules above, if dynamic keying is used, the key o In addition to the rules above, if dynamic keying is used, the key
management protocol MUST use the care-of address as the source management protocol MUST use the care-of address as the source
address in the protocol exchanges with the mobile node's home address in the protocol exchanges with the mobile node's home
agent. agent.
o However, the IPsec security associations with the mobile node's o However, the IPsec security associations with the mobile node's
home agent use home addresses. That is, the IPsec security home agent use home addresses. That is, the IPsec security
skipping to change at page 18, line 26 skipping to change at page 16, line 26
selectors. Security associations for payload and return selectors. Security associations for payload and return
routability protection are requested for a specific tunnel routability protection are requested for a specific tunnel
interface and either the payload protocol or the Mobility header interface and either the payload protocol or the Mobility header
protocol, in tunnel mode. In this case one requested endpoint is protocol, in tunnel mode. In this case one requested endpoint is
an IP address and the other one is a wildcard, and there are no an IP address and the other one is a wildcard, and there are no
other selectors. other selectors.
o If the mobile node has used IKE version 1 to establish security o If the mobile node has used IKE version 1 to establish security
associations with its home agent, it should follow the procedures associations with its home agent, it should follow the procedures
discussed in Section 11.7.1 and 11.7.3 of the base specification discussed in Section 11.7.1 and 11.7.3 of the base specification
[8] to determine whether the IKE endpoints can be moved or if IKE [7] to determine whether the IKE endpoints can be moved or if IKE
phase 1 has to be re-established. phase 1 has to be re-established.
The following rules apply to home agents: The following rules apply to home agents:
o If the home agent has used IKE version 1 to establish security o If the home agent has used IKE version 1 to establish security
associations with the mobile node, it should follow the procedures associations with the mobile node, it should follow the procedures
discussed in Section 10.3.1 and 10.3.2 of the base specification discussed in Section 10.3.1 and 10.3.2 of the base specification
[8] to determine whether the IKE endpoints can be moved or if IKE [7] to determine whether the IKE endpoints can be moved or if IKE
phase 1 has to be re-established. phase 1 has to be re-established.
5. Example Configurations 5. Example Configurations
In the following we describe the Security Policy Database (SPD) and In the following we describe the Security Policy Database (SPD) and
Security Association Database (SAD) entries necessary to protect Security Association Database (SAD) entries necessary to protect
Binding Updates and Binding Acknowledgements exchanged between the Binding Updates and Binding Acknowledgements exchanged between the
mobile node and the home agent. mobile node and the home agent.
Section 5.1 introduces the format we use in the description of the Section 5.1 introduces the format we use in the description of the
SPD and the SAD. Section 5.2 describes how to configure manually SPD and the SAD. Section 5.2 describes how to configure manually
keyed IPsec security associations without dynamic keying, and Section keyed IPsec security associations without dynamic keying, and Section
5.3 describes how to use dynamic keying. 5.3 describes how to use dynamic keying.
5.1 Format 5.1. Format
The format used in the examples is as follows. The SPD description The format used in the examples is as follows. The SPD description
has the format has the format
<node> "SPD OUT:" <node> "SPD OUT:"
"-" <spdentry> "-" <spdentry>
"-" <spdentry> "-" <spdentry>
... ...
"-" <spdentry> "-" <spdentry>
skipping to change at page 19, line 43 skipping to change at page 17, line 31
Where <node> represents the name of the node, and <spdentry> has the Where <node> represents the name of the node, and <spdentry> has the
following format: following format:
"IF" <condition> "THEN USE SA " <sa> | "IF" <condition> "THEN USE SA " <sa> |
"IF" <condition> "THEN USE SA " <pattern> | "IF" <condition> "THEN USE SA " <pattern> |
Where <condition> is a boolean expression about the fields of the Where <condition> is a boolean expression about the fields of the
IPv6 packet, <sa> is the name of a specific security association, and IPv6 packet, <sa> is the name of a specific security association, and
<pattern> is a specification for a security association to be <pattern> is a specification for a security association to be
negotiated via IKE [5]. The SAD description has the format negotiated via IKE [4]. The SAD description has the format
<node> "SAD:" <node> "SAD:"
"-" <sadentry> "-" <sadentry>
"-" <sadentry> "-" <sadentry>
... ...
"-" <sadentry> "-" <sadentry>
Where <node> represents the name of the node, and <sadentry> has the Where <node> represents the name of the node, and <sadentry> has the
following format: following format:
skipping to change at page 20, line 22 skipping to change at page 18, line 14
Where <dir> is "IN" or "OUT", <spi> is the SPI of the security Where <dir> is "IN" or "OUT", <spi> is the SPI of the security
association, <destination> is its destination, <ipsec-proto> is in association, <destination> is its destination, <ipsec-proto> is in
our case "ESP", <mode> is either "TUNNEL" or "TRANSPORT", and <rule> our case "ESP", <mode> is either "TUNNEL" or "TRANSPORT", and <rule>
is an expression which describes the IPsec selectors, i.e., which is an expression which describes the IPsec selectors, i.e., which
fields of the IPv6 packet must have which values. fields of the IPv6 packet must have which values.
We will be using an example mobile node in this section with the home We will be using an example mobile node in this section with the home
address "home_address_1". The user's identity in this mobile node is address "home_address_1". The user's identity in this mobile node is
"user_1". The home agent's address is "home_agent_1". "user_1". The home agent's address is "home_agent_1".
5.2 Manual Configuration 5.2. Manual Configuration
5.2.1 Binding Updates and Acknowledgements 5.2.1. Binding Updates and Acknowledgements
Here are the contents of the SPD and SAD for protecting Binding Here are the contents of the SPD and SAD for protecting Binding
Updates and Acknowledgements: Updates and Acknowledgements:
mobile node SPD OUT: mobile node SPD OUT:
- IF source = home_address_1 & destination = home_agent_1 & - IF source = home_address_1 & destination = home_agent_1 &
proto = MH proto = MH
THEN USE SA SA1 THEN USE SA SA1
mobile node SPD IN: mobile node SPD IN:
skipping to change at page 21, line 42 skipping to change at page 19, line 10
home agent SAD: home agent SAD:
- SA2(OUT, spi_b, home_address_1, ESP, TRANSPORT): - SA2(OUT, spi_b, home_address_1, ESP, TRANSPORT):
source = home_agent_1 & destination = home_address_1 & source = home_agent_1 & destination = home_address_1 &
proto = MH proto = MH
- SA1(IN, spi_a, home_agent_1, ESP, TRANSPORT): - SA1(IN, spi_a, home_agent_1, ESP, TRANSPORT):
source = home_address_1 & destination = home_agent_1 & source = home_address_1 & destination = home_agent_1 &
proto = MH proto = MH
In the above, "MH" refers to the protocol number for the Mobility In the above, "MH" refers to the protocol number for the Mobility
Header [8]. Header [7].
5.2.2 Return Routability Signaling 5.2.2. Return Routability Signaling
In the following we describe the necessary SPD and SAD entries to In the following we describe the necessary SPD and SAD entries to
protect return routability signaling between the mobile node and the protect return routability signaling between the mobile node and the
home agent. Note that the rules in the SPD are ordered, and the ones home agent. Note that the rules in the SPD are ordered, and the ones
in the previous section must take precedence over these ones. In in the previous section must take precedence over these ones. In
other words, the higher precedence entries must occur first in the other words, the higher precedence entries must occur first in the
RFC 2401 [2] ordered list of SPD entries. RFC 2401 [2] ordered list of SPD entries.
mobile node SPD OUT: mobile node SPD OUT:
- IF interface = IPv6 IPv6 tunnel to home_agent_1 & - IF interface = IPv6 IPv6 tunnel to home_agent_1 &
skipping to change at page 22, line 47 skipping to change at page 20, line 16
source = any & destination = home_address_1 & proto = MH source = any & destination = home_address_1 & proto = MH
- SA3(IN, spi_c, home_agent_1, ESP, TUNNEL): - SA3(IN, spi_c, home_agent_1, ESP, TUNNEL):
source = home_address_1 & destination = any & proto = MH source = home_address_1 & destination = any & proto = MH
The security association from the home agent to the mobile node uses The security association from the home agent to the mobile node uses
the current care-of address as the destination. As discussed the current care-of address as the destination. As discussed
earlier, this address is updated in the SAD as the mobile node moves. earlier, this address is updated in the SAD as the mobile node moves.
It can be initialized to the home address before the mobile node has It can be initialized to the home address before the mobile node has
registered. registered.
5.2.3 Prefix Discovery 5.2.3. Prefix Discovery
In the following we describe some additional SPD and SAD entries to In the following we describe some additional SPD and SAD entries to
protect prefix discovery. Note that the SPDs described above protect protect prefix discovery. Note that the SPDs described above protect
all ICMPv6 traffic between the mobile node and the home agent, as all ICMPv6 traffic between the mobile node and the home agent, as
IPsec may not have the ability to distinguish between different IPsec may not have the ability to distinguish between different
ICMPv6 types. ICMPv6 types.
mobile node SPD OUT: mobile node SPD OUT:
- IF source = home_address_1 & destination = home_agent_1 & - IF source = home_address_1 & destination = home_agent_1 &
proto = ICMPv6 proto = ICMPv6
skipping to change at page 23, line 33 skipping to change at page 21, line 4
home agent SPD OUT: home agent SPD OUT:
- IF source = home_agent_1 & destination = home_address_1 & - IF source = home_agent_1 & destination = home_address_1 &
proto = ICMPv6 proto = ICMPv6
THEN USE SA SA6 THEN USE SA SA6
home agent SPD IN: home agent SPD IN:
- IF source = home_address_1 & destination = home_agent_1 & - IF source = home_address_1 & destination = home_agent_1 &
proto = ICMPv6 proto = ICMPv6
THEN USE SA SA5 THEN USE SA SA5
home agent SAD: home agent SAD:
- SA6(OUT, spi_f, home_address_1, ESP, TRANSPORT): - SA6(OUT, spi_f, home_address_1, ESP, TRANSPORT):
source = home_agent_1 & destination = home_address_1 & source = home_agent_1 & destination = home_address_1 &
proto = ICMPv6 proto = ICMPv6
- SA5(IN, spi_e, home_agent_1, ESP, TRANSPORT): - SA5(IN, spi_e, home_agent_1, ESP, TRANSPORT):
source = home_address_1 & destination = home_agent_1 & source = home_address_1 & destination = home_agent_1 &
proto = ICMPv6 proto = ICMPv6
5.2.4 Payload Packets 5.2.4. Payload Packets
It is also possible to perform some additional, optional, protection It is also possible to perform some additional, optional, protection
of tunneled payload packets. This protection takes place in a of tunneled payload packets. This protection takes place in a
similar manner to the return routability protection above, but similar manner to the return routability protection above, but
requires a different value for the protocol field. The necessary SPD requires a different value for the protocol field. The necessary SPD
and SAD entries are shown below. It is assumed that the entries for and SAD entries are shown below. It is assumed that the entries for
protecting Binding Updates and Acknowledgements, and the entries to protecting Binding Updates and Acknowledgements, and the entries to
protect Home Test Init and Home Test messages take precedence over protect Home Test Init and Home Test messages take precedence over
these entries. these entries.
skipping to change at page 24, line 35 skipping to change at page 22, line 4
- IF interface = IPv6 tunnel to home_address_1 & - IF interface = IPv6 tunnel to home_address_1 &
source = any & destination = home_address_1 & source = any & destination = home_address_1 &
proto = X proto = X
THEN USE SA SA8 THEN USE SA SA8
home agent SPD IN: home agent SPD IN:
- IF interface = IPv6 tunnel from home_address_1 & - IF interface = IPv6 tunnel from home_address_1 &
source = home_address_1 & destination = any & source = home_address_1 & destination = any &
proto = X proto = X
THEN USE SA SA7 THEN USE SA SA7
home agent SAD: home agent SAD:
- SA8(OUT, spi_h, care_of_address_1, ESP, TUNNEL): - SA8(OUT, spi_h, care_of_address_1, ESP, TUNNEL):
source = any & destination = home_address_1 & proto = X source = any & destination = home_address_1 & proto = X
- SA7(IN, spi_g, home_agent_1, ESP, TUNNEL): - SA7(IN, spi_g, home_agent_1, ESP, TUNNEL):
source = home_address_1 & destination = any & proto = X source = home_address_1 & destination = any & proto = X
If multicast group membership control protocols such as MLDv1 [9] or If multicast group membership control protocols such as MLDv1 [9] or
MLDv2 [12] need to be protected, these packets may use a link-local MLDv2 [11] need to be protected, these packets may use a link-local
address rather than the home address of the mobile node. In this address rather than the home address of the mobile node. In this
case the source and destination can be left as a wildcard and the SPD case the source and destination can be left as a wildcard and the SPD
entries will work solely based on the used interface and the entries will work solely based on the used interface and the
protocol, which is ICMPv6 for both MLDv1 and MLDv2. protocol, which is ICMPv6 for both MLDv1 and MLDv2.
Similar problems are encountered when stateful address Similar problems are encountered when stateful address
autoconfiguration protocols such as DHCPv6 [10] are used. The same autoconfiguration protocols such as DHCPv6 [10] are used. The same
approach is applicable for DHCPv6 as well. DHCPv6 uses the UDP approach is applicable for DHCPv6 as well. DHCPv6 uses the UDP
protocol. protocol.
Support for multiple layers of encapsulation (such as ESP Support for multiple layers of encapsulation (such as ESP
encapsulated in ESP) is not required by RFC 2401 [2] and is also encapsulated in ESP) is not required by RFC 2401 [2] and is also
otherwise often problematic. It is therefore useful to avoid setting otherwise often problematic. It is therefore useful to avoid setting
the protocol X in the above entries to either AH or ESP. the protocol X in the above entries to either AH or ESP.
5.3 Dynamic Keying 5.3. Dynamic Keying
In this section we show an example configuration that uses IKE to In this section we show an example configuration that uses IKE to
negotiate security associations. negotiate security associations.
5.3.1 Binding Updates and Acknowledgements 5.3.1. Binding Updates and Acknowledgements
Here are the contents of the SPD for protecting Binding Updates and Here are the contents of the SPD for protecting Binding Updates and
Acknowledgements: Acknowledgements:
mobile node SPD OUT: mobile node SPD OUT:
- IF source = home_address_1 & destination = home_agent_1 & - IF source = home_address_1 & destination = home_agent_1 &
proto = MH proto = MH
THEN USE SA ESP TRANSPORT: local phase 1 identity = user_1 THEN USE SA ESP TRANSPORT: local phase 1 identity = user_1
mobile node SPD IN: mobile node SPD IN:
skipping to change at page 25, line 50 skipping to change at page 23, line 18
We have omitted details of the proposed transforms in the above, and We have omitted details of the proposed transforms in the above, and
all details related to the particular authentication method such as all details related to the particular authentication method such as
certificates beyond listing a specific identity that must be used. certificates beyond listing a specific identity that must be used.
We require IKE version 1 to be run using the care-of addresses but We require IKE version 1 to be run using the care-of addresses but
still negotiate IPsec SAs that use home addresses. The extra still negotiate IPsec SAs that use home addresses. The extra
conditions set by the home agent SPD for the peer phase 1 identity to conditions set by the home agent SPD for the peer phase 1 identity to
be "user_1" must be verified by the home agent. The purpose of the be "user_1" must be verified by the home agent. The purpose of the
condition is to ensure that the IKE phase 2 negotiation for a given condition is to ensure that the IKE phase 2 negotiation for a given
user's home address can't be requested by another user. In the user's home address can not be requested by another user. In the
mobile node, we simply set our local identity to be "user_1". mobile node, we simply set our local identity to be "user_1".
These checks also imply that the configuration of the home agent is These checks also imply that the configuration of the home agent is
user-specific: every user or home address requires a specific user-specific: every user or home address requires a specific
configuration entry. It would be possible to alleviate the configuration entry. It would be possible to alleviate the
configuration tasks by using certificates that have home addresses in configuration tasks by using certificates that have home addresses in
the Subject AltName field. However, it isn't clear if all IKE the Subject AltName field. However, it is not clear if all IKE
implementations allow one address to be used for carrying the IKE implementations allow one address to be used for carrying the IKE
negotiations when another address is mentioned in the used negotiations when another address is mentioned in the used
certificates. In any case, even this approach would have required certificates. In any case, even this approach would have required
user-specific tasks in the certification authority. user-specific tasks in the certification authority.
5.3.2 Return Routability Signaling 5.3.2. Return Routability Signaling
Protection for the return routability signaling can be configured in Protection for the return routability signaling can be configured in
a similar manner as above. a similar manner as above.
mobile node SPD OUT: mobile node SPD OUT:
- IF interface = IPv6 tunnel to home_agent_1 & - IF interface = IPv6 tunnel to home_agent_1 &
source = home_address_1 & destination = any & source = home_address_1 & destination = any &
proto = MH proto = MH
THEN USE SA ESP TUNNEL: outer destination = home_agent_1 & THEN USE SA ESP TUNNEL: outer destination = home_agent_1 &
local phase 1 identity = user_1 local phase 1 identity = user_1
skipping to change at page 27, line 6 skipping to change at page 24, line 25
THEN USE SA ESP TUNNEL: outer destination = home_address_1 & THEN USE SA ESP TUNNEL: outer destination = home_address_1 &
peer phase 1 identity = user_1 peer phase 1 identity = user_1
The security association from the home agent to the mobile node uses The security association from the home agent to the mobile node uses
the current care-of address as the destination. As discussed the current care-of address as the destination. As discussed
earlier, this address is updated in the SAD as the mobile node moves. earlier, this address is updated in the SAD as the mobile node moves.
The SPD entries can be written using the home address (as above), if The SPD entries can be written using the home address (as above), if
the care-of address update in the SAD is also done upon the creation the care-of address update in the SAD is also done upon the creation
of security associations. of security associations.
5.3.3 Prefix Discovery 5.3.3. Prefix Discovery
In the following we describe some additional SPD entries to protect In the following we describe some additional SPD entries to protect
prefix discovery with IKE. (Note that when actual new prefixes are prefix discovery with IKE. (Note that when actual new prefixes are
discovered, there may be a need to enter new manually configured SPD discovered, there may be a need to enter new manually configured SPD
entries to specify the authorization policy for the resulting new entries to specify the authorization policy for the resulting new
home addresses.) home addresses.)
mobile node SPD OUT: mobile node SPD OUT:
- IF source = home_address_1 & destination = home_agent_1 & - IF source = home_address_1 & destination = home_agent_1 &
proto = ICMPv6 proto = ICMPv6
skipping to change at page 27, line 34 skipping to change at page 25, line 5
home agent SPD OUT: home agent SPD OUT:
- IF source = home_agent_1 & destination = home_address_1 & - IF source = home_agent_1 & destination = home_address_1 &
proto = ICMPv6 proto = ICMPv6
THEN USE SA ESP TRANSPORT: peer phase 1 identity = user_1 THEN USE SA ESP TRANSPORT: peer phase 1 identity = user_1
home agent SPD IN: home agent SPD IN:
- IF source = home_address_1 & destination = home_agent_1 & - IF source = home_address_1 & destination = home_agent_1 &
proto = ICMPv6 proto = ICMPv6
THEN USE SA ESP TRANSPORT: peer phase 1 identity = user_1 THEN USE SA ESP TRANSPORT: peer phase 1 identity = user_1
5.3.4 Payload Packets 5.3.4. Payload Packets
Protection for the payload packets happens similarly to the Protection for the payload packets happens similarly to the
protection of return routability signaling. As in the manually keyed protection of return routability signaling. As in the manually keyed
case, these SPD entries have lower priority than the above ones. case, these SPD entries have lower priority than the above ones.
mobile node SPD OUT: mobile node SPD OUT:
- IF interface = IPv6 tunnel to home_agent_1 & - IF interface = IPv6 tunnel to home_agent_1 &
source = home_address_1 & destination = any & source = home_address_1 & destination = any &
proto = X proto = X
THEN USE SA ESP TUNNEL: outer destination = home_agent_1 & THEN USE SA ESP TUNNEL: outer destination = home_agent_1 &
skipping to change at page 29, line 7 skipping to change at page 25, line 41
home agent SPD IN: home agent SPD IN:
- IF interface = IPv6 tunnel from home_address_1 & - IF interface = IPv6 tunnel from home_address_1 &
source = home_address_1 & destination = any & source = home_address_1 & destination = any &
proto = X proto = X
THEN USE SA ESP TUNNEL: outer destination = home_address_1 & THEN USE SA ESP TUNNEL: outer destination = home_address_1 &
peer phase 1 identity = user_1 peer phase 1 identity = user_1
6. Processing Steps within a Node 6. Processing Steps within a Node
6.1 Binding Update to the Home Agent 6.1. Binding Update to the Home Agent
Step 1. At the mobile node, Mobile IPv6 module first produces the Step 1. At the mobile node, Mobile IPv6 module first produces the
following packet: following packet:
IPv6 header (source = home address, IPv6 header (source = home address,
destination = home agent) destination = home agent)
Mobility header Mobility header
Binding Update Binding Update
Step 2. This packet is matched against the IPsec SPD on the mobile Step 2. This packet is matched against the IPsec SPD on the mobile
node and we make a note that IPsec must be applied. node and we make a note that IPsec must be applied.
Step 3. Then, we add the necessary Mobile IPv6 options but do not Step 3. Then, we add the necessary Mobile IPv6 options but do not
change the addresses yet, as described in Section 11.2.2 of the base change the addresses yet, as described in Section 11.3.2 of the base
specification [8]. This results in: specification [7]. This results in:
IPv6 header (source = home address, IPv6 header (source = home address,
destination = home agent) destination = home agent)
Destination Options header Destination Options header
Home Address option (care-of address) Home Address option (care-of address)
Mobility header Mobility header
Binding Update Binding Update
Step 4. Finally, IPsec headers are added and the necessary Step 4. Finally, IPsec headers are added and the necessary
authenticator values are calculated: authenticator values are calculated:
skipping to change at page 30, line 13 skipping to change at page 26, line 41
and the Destination Options header are changed: and the Destination Options header are changed:
IPv6 header (source = care-of address, IPv6 header (source = care-of address,
destination = home agent) destination = home agent)
Destination Options header Destination Options header
Home Address option (home address) Home Address option (home address)
ESP header (SPI = spi_a) ESP header (SPI = spi_a)
Mobility header Mobility header
Binding Update Binding Update
6.2 Binding Update from the Mobile Node 6.2. Binding Update from the Mobile Node
Step 1. The following packet is received at the home agent: Step 1. The following packet is received at the home agent:
IPv6 header (source = care-of address, IPv6 header (source = care-of address,
destination = home agent) destination = home agent)
Destination Options header Destination Options header
Home Address option (home address) Home Address option (home address)
ESP header (SPI = spi_a) ESP header (SPI = spi_a)
Mobility header Mobility header
Binding Update Binding Update
skipping to change at page 31, line 8 skipping to change at page 27, line 35
MH). MH).
Step 5. Mobile IPv6 processes the Binding Update. The Binding Step 5. Mobile IPv6 processes the Binding Update. The Binding
Update is delivered to the Mobile IPv6 module. Update is delivered to the Mobile IPv6 module.
Step 6. If there are any security associations in the security Step 6. If there are any security associations in the security
association database for the protection of return routability or association database for the protection of return routability or
payload packets for this mobile node, those security associations are payload packets for this mobile node, those security associations are
updated with the new care-of address. updated with the new care-of address.
6.3 Binding Acknowledgement to the Mobile Node 6.3. Binding Acknowledgement to the Mobile Node
Step 1. Mobile IPv6 produces the following packet: Step 1. Mobile IPv6 produces the following packet:
IPv6 header (source = home agent, IPv6 header (source = home agent,
destination = home address) destination = home address)
Mobility header Mobility header
Binding Acknowledgement Binding Acknowledgement
Step 2. This packet matches the IPsec policy entries, and we Step 2. This packet matches the IPsec policy entries, and we
remember that IPsec has to be applied. remember that IPsec has to be applied.
Step 3. Then, we add the necessary Route Headers but do not change Step 3. Then, we add the necessary Route Headers but do not change
the addresses yet, as described in Section 9.6 of the base the addresses yet, as described in Section 9.5.4 of the base
specification [8]. This results in: specification [7]. This results in:
IPv6 header (source = home agent, IPv6 header (source = home agent,
destination = home address) destination = home address)
Routing header (type 2) Routing header (type 2)
care-of address care-of address
Mobility header Mobility header
Binding Acknowledgement Binding Acknowledgement
Step 4. We apply IPsec: Step 4. We apply IPsec:
skipping to change at page 32, line 5 skipping to change at page 28, line 37
addresses in the IPv6 header and the Route header: addresses in the IPv6 header and the Route header:
IPv6 header (source = home agent, IPv6 header (source = home agent,
destination = care-of address) destination = care-of address)
Routing header (type 2) Routing header (type 2)
home address home address
ESP header (SPI = spi_b) ESP header (SPI = spi_b)
Mobility header Mobility header
Binding Acknowledgement Binding Acknowledgement
6.4 Binding Acknowledgement from the Home Agent 6.4. Binding Acknowledgement from the Home Agent
Step 1. The following packet is received at the mobile node Step 1. The following packet is received at the mobile node
IPv6 header (source = home agent, IPv6 header (source = home agent,
destination = care-of address) destination = care-of address)
Routing header (type 2) Routing header (type 2)
home address home address
ESP header (SPI = spi_b) ESP header (SPI = spi_b)
Mobility header Mobility header
Binding Acknowledgement Binding Acknowledgement
skipping to change at page 32, line 43 skipping to change at page 29, line 30
Mobility header Mobility header
Binding Acknowledgement Binding Acknowledgement
Step 4. This packet matches the policy required for this security Step 4. This packet matches the policy required for this security
association (source = home agent, destination = home address, proto = association (source = home agent, destination = home address, proto =
MH). MH).
Step 5. The Binding Acknowledgement is delivered to the Mobile IPv6 Step 5. The Binding Acknowledgement is delivered to the Mobile IPv6
module. module.
6.5 Home Test Init to the Home Agent 6.5. Home Test Init to the Home Agent
Step 1. The mobile node constructs a Home Test Init message: Step 1. The mobile node constructs a Home Test Init message:
IPv6 header (source = home address, IPv6 header (source = home address,
destination = correspondent node) destination = correspondent node)
Mobility header Mobility header
Home Test Init Home Test Init
Step 2. Mobile IPv6 determines that this packet should go to the Step 2. Mobile IPv6 determines that this packet should go to the
tunnel to the home agent. tunnel to the home agent.
skipping to change at page 33, line 23 skipping to change at page 30, line 11
destination = home agent) destination = home agent)
ESP header (SPI = spi_c) ESP header (SPI = spi_c)
IPv6 header (source = home address, IPv6 header (source = home address,
destination = correspondent node) destination = correspondent node)
Mobility header Mobility header
Home Test Init Home Test Init
Step 5. The packet is sent directly to the home agent using IPsec Step 5. The packet is sent directly to the home agent using IPsec
encapsulation. encapsulation.
6.6 Home Test Init from the Mobile Node 6.6. Home Test Init from the Mobile Node
Step 1. The home agent receives the following packet: Step 1. The home agent receives the following packet:
IPv6 header (source = care-of address, IPv6 header (source = care-of address,
destination = home agent) destination = home agent)
ESP header (SPI = spi_c) ESP header (SPI = spi_c)
IPv6 header (source = home address, IPv6 header (source = home address,
destination = correspondent node) destination = correspondent node)
Mobility Header Mobility Header
Home Test Init Home Test Init
skipping to change at page 33, line 47 skipping to change at page 30, line 35
IPv6 header (source = home address, IPv6 header (source = home address,
destination = correspondent node) destination = correspondent node)
Mobility Header Mobility Header
Home Test Init Home Test Init
Step 3. The resulting packet matches the policy required for this Step 3. The resulting packet matches the policy required for this
security association and the packet can be processed further. security association and the packet can be processed further.
Step 4. The packet is then forwarded to the correspondent node. Step 4. The packet is then forwarded to the correspondent node.
6.7 Home Test to the Mobile Node 6.7. Home Test to the Mobile Node
Step 1. The home agent receives a Home Test packet from the Step 1. The home agent receives a Home Test packet from the
correspondent node: correspondent node:
IPv6 header (source = correspondent node, IPv6 header (source = correspondent node,
destination = home address) destination = home address)
Mobility Header Mobility Header
Home Test Init Home Test Init
Step 2. The home agent determines that this packet is destined to a Step 2. The home agent determines that this packet is destined to a
skipping to change at page 34, line 32 skipping to change at page 31, line 21
destination = care-of address) destination = care-of address)
ESP header (SPI = spi_d) ESP header (SPI = spi_d)
IPv6 header (source = correspondent node, IPv6 header (source = correspondent node,
destination = home address) destination = home address)
Mobility Header Mobility Header
Home Test Init Home Test Init
Step 5. The packet is sent directly to the care-of address using Step 5. The packet is sent directly to the care-of address using
IPsec encapsulation. IPsec encapsulation.
6.8 Home Test from the Home Agent 6.8. Home Test from the Home Agent
Step 1. The mobile node receives the following packet: Step 1. The mobile node receives the following packet:
IPv6 header (source = home agent, IPv6 header (source = home agent,
destination = care-of address) destination = care-of address)
ESP header (SPI = spi_d) ESP header (SPI = spi_d)
IPv6 header (source = correspondent node, IPv6 header (source = correspondent node,
destination = home address) destination = home address)
Mobility Header Mobility Header
Home Test Init Home Test Init
skipping to change at page 35, line 7 skipping to change at page 31, line 45
IPv6 header (source = correspondent node, IPv6 header (source = correspondent node,
destination = home address) destination = home address)
Mobility Header Mobility Header
Home Test Init Home Test Init
Step 3. This matches the policy required for this security Step 3. This matches the policy required for this security
association (source = any, destination = home address). association (source = any, destination = home address).
Step 4. The packet is given to Mobile IPv6 processing. Step 4. The packet is given to Mobile IPv6 processing.
6.9 Prefix Solicitation Message to the Home Agent 6.9. Prefix Solicitation Message to the Home Agent
This procedure is similar to the one presented in Section 6.1. This procedure is similar to the one presented in Section 6.1.
6.10 Prefix Solicitation Message from the Mobile Node 6.10. Prefix Solicitation Message from the Mobile Node
This procedure is similar to the one presented in Section 6.2. This procedure is similar to the one presented in Section 6.2.
6.11 Prefix Advertisement Message to the Mobile Node 6.11. Prefix Advertisement Message to the Mobile Node
This procedure is similar to the one presented in Section 6.3. This procedure is similar to the one presented in Section 6.3.
6.12 Prefix Advertisement Message from the Home Agent 6.12. Prefix Advertisement Message from the Home Agent
This procedure is similar to the one presented in Section 6.4. This procedure is similar to the one presented in Section 6.4.
6.13 Payload Packet to the Home Agent 6.13. Payload Packet to the Home Agent
This procedure is similar to the one presented in Section 6.5. This procedure is similar to the one presented in Section 6.5.
6.14 Payload Packet from the Mobile Node 6.14. Payload Packet from the Mobile Node
This procedure is similar to the one presented in Section 6.6. This procedure is similar to the one presented in Section 6.6.
6.15 Payload Packet to the Mobile Node 6.15. Payload Packet to the Mobile Node
This procedure is similar to the one presented in Section 6.7. This procedure is similar to the one presented in Section 6.7.
6.16 Payload Packet from the Home Agent 6.16. Payload Packet from the Home Agent
This procedure is similar to the one presented in Section 6.8. This procedure is similar to the one presented in Section 6.8.
6.17 Establishing New Security Associations 6.17. Establishing New Security Associations
Step 1. The mobile node wishes to send a Binding Update to the home Step 1. The mobile node wishes to send a Binding Update to the home
agent. agent.
IPv6 header (source = home address, IPv6 header (source = home address,
destination = home agent) destination = home agent)
Mobility header Mobility header
Binding Update Binding Update
Step 2. There is no existing security association to protect the Step 2. There is no existing security association to protect the
skipping to change at page 36, line 42 skipping to change at page 33, line 34
... IDci = ID_IPV6_ADDR home address ... ... IDci = ID_IPV6_ADDR home address ...
IPv6 header (source = home agent, IPv6 header (source = home agent,
destination = care-of address) destination = care-of address)
UDP UDP
IKE IKE
... IDcr = ID_IPV6_ADDR home agent ... ... IDcr = ID_IPV6_ADDR home agent ...
Step 4. The remaining steps are as shown in Section 6.1. Step 4. The remaining steps are as shown in Section 6.1.
6.18 Rekeying Security Associations 6.18. Rekeying Security Associations
Step 1. The mobile node and the home agent have existing security Step 1. The mobile node and the home agent have existing security
associations. Either side may decide at any time that the security associations. Either side may decide at any time that the security
associations need to be rekeyed, for instance, because the specified associations need to be rekeyed, for instance, because the specified
lifetime is approaching. lifetime is approaching.
Step 2. Mobility header packets sent during rekey may be protected Step 2. Mobility header packets sent during rekey may be protected
by the existing security associations. by the existing security associations.
Step 3. When the rekeying is finished, new security associations are Step 3. When the rekeying is finished, new security associations are
skipping to change at page 37, line 29 skipping to change at page 34, line 19
Since cryptographic acceleration hardware may only be able to handle Since cryptographic acceleration hardware may only be able to handle
a limited number of active security associations, security a limited number of active security associations, security
associations may be deleted via IKE in order to keep the number of associations may be deleted via IKE in order to keep the number of
active cryptographic contexts to a minimum. Such deletions should active cryptographic contexts to a minimum. Such deletions should
not be interpreted as a sign of losing a contact to the peer or as a not be interpreted as a sign of losing a contact to the peer or as a
reason to remove a binding. Rather, if additional traffic needs to reason to remove a binding. Rather, if additional traffic needs to
be sent, it is preferable to bring up another security association to be sent, it is preferable to bring up another security association to
protect it. protect it.
6.19 Movements and Dynamic Keying 6.19. Movements and Dynamic Keying
In this section we describe the sequence of events that relate to In this section we describe the sequence of events that relate to
movement with IKE-based security associations. In the initial state, movement with IKE-based security associations. In the initial state,
the mobile node is not registered in any location and has no security the mobile node is not registered in any location and has no security
associations with the home agent. Depending on whether the peers associations with the home agent. Depending on whether the peers
will be able to move IKE endpoints to new care-of addresses, the will be able to move IKE endpoints to new care-of addresses, the
actions taken in Step 9 and 10 are different. actions taken in Step 9 and 10 are different.
Step 1. Mobile node with the home address A moves to care-of address Step 1. Mobile node with the home address A moves to care-of address
B. B.
skipping to change at page 38, line 24 skipping to change at page 35, line 16
care-of address C. care-of address C.
Step 8. Mobile node sends a Binding Update and receives a Binding Step 8. Mobile node sends a Binding Update and receives a Binding
Acknowledgement using the security associations created in Step 3. Acknowledgement using the security associations created in Step 3.
The home agent ensures that the next packets sent using the security The home agent ensures that the next packets sent using the security
associations created in Step 5 will have the new care-of address as associations created in Step 5 will have the new care-of address as
their destination address, as if the outer header destination address their destination address, as if the outer header destination address
in the security association had changed. in the security association had changed.
Step 9. If the mobile node and the HA have the capability to change Step 9. If the mobile node and the HA have the capability to change
the IKE endpoints, they change the address to C. If they dont have the IKE endpoints, they change the address to C. If they do not have
the capability, both nodes remove their phase 1 connections created the capability, both nodes remove their phase 1 connections created
on top of the care-of address B and will establish a new IKE phase 1 on top of the care-of address B and will establish a new IKE phase 1
on top of the care-of address C. This capability to change the IKE on top of the care-of address C. This capability to change the IKE
phase 1 end points is indicated through setting the Key Management phase 1 end points is indicated through setting the Key Management
Mobility Capability (K) flag [8] in the Binding Update and Binding Mobility Capability (K) flag [7] in the Binding Update and Binding
Acknowledgement messages. Acknowledgement messages.
Step 10. If a new IKE phase 1 connection was setup after movement, Step 10. If a new IKE phase 1 connection was setup after movement,
the MN will not be able to receive any notifications delivered on top the MN will not be able to receive any notifications delivered on top
of the old IKE phase 1 security association. Notifications delivered of the old IKE phase 1 security association. Notifications delivered
on top of the new security association are received and processed on top of the new security association are received and processed
normally. If the mobile node and HA were able to update the IKE normally. If the mobile node and HA were able to update the IKE
endpoints, they can continue using the same IKE phase 1 connection. endpoints, they can continue using the same IKE phase 1 connection.
7. Implementation Considerations 7. Implementation Considerations
7.1 IPsec 7.1. IPsec
Note that packet formats and header ordering discussed in Section 3 Note that packet formats and header ordering discussed in Section 3
must be supported, but implementations may also support other must be supported, but implementations may also support other
formats. In general, the use of formats not required here may lead formats. In general, the use of formats not required here may lead
to incorrect processing of the packets by the peer (such as silently to incorrect processing of the packets by the peer (such as silently
discarding them), unless support for these formats has been verified discarding them), unless support for these formats has been verified
off-line. Such verification can take place at the same time the off-line. Such verification can take place at the same time the
parameters of the security associations are agreed upon. In some parameters of the security associations are agreed upon. In some
cases, however, basic IPv6 specifications call for support of options cases, however, basic IPv6 specifications call for support of options
not discussed here. In these cases such verification step might be not discussed here. In these cases, such a verification step might
unnecessary as long as the peer fully supports the relevant IPv6 be unnecessary as long as the peer fully supports the relevant IPv6
specifications. However, no claims are made in this document about specifications. However, no claims are made in this document about
the validity of these other formats in the context of Mobile IPv6. the validity of these other formats in the context of Mobile IPv6.
It is also likely that systems that support Mobile IPv6 have been It is also likely that systems that support Mobile IPv6 have been
tested more extensively with the required formats. tested more extensively with the required formats.
We have chosen to require an encapsulation format for return We have chosen to require an encapsulation format for return
routability and payload packet protection which can only be realized routability and payload packet protection which can only be realized
if the destination of the IPsec packets sent from the home agent can if the destination of the IPsec packets sent from the home agent can
be changed as the mobile node moves. One of the main reasons for be changed as the mobile node moves. One of the main reasons for
choosing such a format is that it removes the overhead of twenty four choosing such a format is that it removes the overhead of twenty four
skipping to change at page 40, line 10 skipping to change at page 36, line 36
sent on this security association will be addressed to the new sent on this security association will be addressed to the new
care-of address. care-of address.
We have chosen to require policy entries that are specific to a We have chosen to require policy entries that are specific to a
tunnel interface. This means that implementations have to regard the tunnel interface. This means that implementations have to regard the
Home Agent - Mobile Node tunnel as a separate interface on which Home Agent - Mobile Node tunnel as a separate interface on which
IPsec SPDs can be based. A further complication of the IPsec IPsec SPDs can be based. A further complication of the IPsec
processing on a tunnel interface is that this requires access to the processing on a tunnel interface is that this requires access to the
BITS implementation before the packet actually goes out. BITS implementation before the packet actually goes out.
7.2 IKE 7.2. IKE
We have chosen to require that a dynamic key management protocol must We have chosen to require that a dynamic key management protocol must
be able to make an authorization decision for IPsec security be able to make an authorization decision for IPsec security
association creation with different addresses than with what the key association creation with different addresses than with what the key
management protocol is run. We expect this to be done typically by management protocol is run. We expect this to be done typically by
configuring the allowed combinations of phase 1 user identities and configuring the allowed combinations of phase 1 user identities and
home addresses. home addresses.
When certificate authentication is used, IKE fragmentation can be When certificate authentication is used, IKE fragmentation can be
encountered. This can occur when certificate chains are used, or encountered. This can occur when certificate chains are used, or
skipping to change at page 40, line 35 skipping to change at page 37, line 15
against an access list. Where fragmentation occurs, the endpoints against an access list. Where fragmentation occurs, the endpoints
will not always be able to establish a security association. will not always be able to establish a security association.
Fortunately, typical Mobile IPv6 deployment uses short certificate Fortunately, typical Mobile IPv6 deployment uses short certificate
chains, as the mobile node is communicating directly with its home chains, as the mobile node is communicating directly with its home
network. Where the problem appears, it may be difficult (at least network. Where the problem appears, it may be difficult (at least
away from home) to replace the firewalls or routers with equipment away from home) to replace the firewalls or routers with equipment
that can properly support fragments. It may help to store the peer that can properly support fragments. It may help to store the peer
certificates locally, or to obtain them through other means. certificates locally, or to obtain them through other means.
7.3 Bump-in-the-Stack 7.3. Bump-in-the-Stack
Mobile IPv6 sets high requirements for a so-called Bump-In-The-Stack Mobile IPv6 sets high requirements for a so-called Bump-In-The-Stack
(BITS) implementation model of IPsec. As Mobile IPv6 specific (BITS) implementation model of IPsec. As Mobile IPv6 specific
modifications of the packets are required before or after IPsec modifications of the packets are required before or after IPsec
processing, the BITS implementation has to perform also some tasks processing, the BITS implementation has to perform also some tasks
related to mobility. This may increase the complexity of the related to mobility. This may increase the complexity of the
implementation, even if it already performs some tasks of the IP implementation, even if it already performs some tasks of the IP
layer (such as fragmentation). layer (such as fragmentation).
Specifically, Bump-in-the-Stack implementations may have to deal with Specifically, Bump-in-the-Stack implementations may have to deal with
skipping to change at page 42, line 8 skipping to change at page 37, line 45
o Detecting packets sent between the mobile node and its home agent o Detecting packets sent between the mobile node and its home agent
using IPv6 encapsulation. using IPv6 encapsulation.
o Offering the necessary APIs for updating the IPsec and IKE o Offering the necessary APIs for updating the IPsec and IKE
security association endpoints. security association endpoints.
8. IANA Considerations 8. IANA Considerations
No IANA actions are necessary based on this document. IANA actions No IANA actions are necessary based on this document. IANA actions
for the Mobile IPv6 protocol itself have been covered in [8]. for the Mobile IPv6 protocol itself have been covered in [7].
9. Security Considerations 9. Security Considerations
The Mobile IPv6 base specification [8] requires strong security The Mobile IPv6 base specification [7] requires strong security
between the mobile node and the home agent. This memo discusses how between the mobile node and the home agent. This memo discusses how
that security can be arranged in practice, using IPsec. The security that security can be arranged in practice, using IPsec. The security
considerations related to this are documented in the base considerations related to this are documented in the base
specification, including a discussion of the implications of using specification, including a discussion of the implications of using
either manual or dynamic keying. either manual or dynamic keying.
Normative References 10. References
10.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[2] Kent, S. and R. Atkinson, "Security Architecture for the [2] Kent, S. and R. Atkinson, "Security Architecture for the
Internet Protocol", RFC 2401, November 1998. Internet Protocol", RFC 2401, November 1998.
[3] Kent, S. and R. Atkinson, "IP Authentication Header", RFC 2402, [3] Kent, S. and R. Atkinson, "IP Encapsulating Security Payload
November 1998.
[4] Kent, S. and R. Atkinson, "IP Encapsulating Security Payload
(ESP)", RFC 2406, November 1998. (ESP)", RFC 2406, November 1998.
[5] Harkins, D. and D. Carrel, "The Internet Key Exchange (IKE)", [4] Harkins, D. and D. Carrel, "The Internet Key Exchange (IKE)",
RFC 2409, November 1998. RFC 2409, November 1998.
[6] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) [5] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6)
Specification", RFC 2460, December 1998. Specification", RFC 2460, December 1998.
[7] Conta, A. and S. Deering, "Generic Packet Tunneling in IPv6 [6] Conta, A. and S. Deering, "Generic Packet Tunneling in IPv6
Specification", RFC 2473, December 1998. Specification", RFC 2473, December 1998.
[8] Perkins, C., Johnson, D. and J. Arkko, "Mobility Support in [7] Johnson, D., Perkins, C. and J. Arkko, "Mobility Support in
IPv6", draft-ietf-mobileip-ipv6-24 (work in progress), June IPv6", RFC 3775, June 2004.
2003.
Informative References 10.2. Informative References
[8] Kent, S. and R. Atkinson, "IP Authentication Header", RFC 2402,
November 1998.
[9] Deering, S., Fenner, W. and B. Haberman, "Multicast Listener [9] Deering, S., Fenner, W. and B. Haberman, "Multicast Listener
Discovery (MLD) for IPv6", RFC 2710, October 1999. Discovery (MLD) for IPv6", RFC 2710, October 1999.
[10] Droms, R., "Dynamic Host Configuration Protocol for IPv6 [10] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins, C. and
(DHCPv6)", draft-ietf-dhc-dhcpv6-28 (work in progress), M. Carney, "Dynamic Host Configuration Protocol for IPv6
November 2002. (DHCPv6)", RFC 3315, July 2003.
[11] Kivinen, T., Huttunen, A., Swander, B. and V. Volpe, [11] Vida, R. and L. Costa, Eds., "Multicast Listener Discovery
"Negotiation of NAT-Traversal in the IKE", Version 2 (MLDv2) for IPv6", RFC 3810, June 2004.
draft-ietf-ipsec-nat-t-ike-04 (work in progress), November
2002.
[12] Vida, R. and L. Costa, "Multicast Listener Discovery Version 2 11. Acknowledgements
(MLDv2) for IPv6", draft-vida-mld-v2-06 (work in progress),
December 2002.
Authors' Addresses The authors would like to thank Greg O'Shea, Michael Thomas, Kevin
Miles, Cheryl Madson, Bernard Aboba, Erik Nordmark, Gabriel
Montenegro, Steven Kent, and Santeri Paavolainen for interesting
discussions in this problem space.
12. Authors' Addresses
Jari Arkko Jari Arkko
Ericsson Ericsson
Jorvas 02420 02420 Jorvas
Finland Finland
EMail: jari.arkko@ericsson.com EMail: jari.arkko@ericsson.com
Vijay Devarapalli Vijay Devarapalli
Nokia Research Center Nokia Research Center
313 Fairchild Drive 313 Fairchild Drive
Mountain View CA 94043 Mountain View CA 94043
USA USA
EMail: vijayd@iprg.nokia.com EMail: vijayd@iprg.nokia.com
Francis Dupont Francis Dupont
ENST Bretagne ENST Bretagne
Campus de Rennes 2, rue de la Chataigneraie Campus de Rennes
BP 78 2, rue de la Chataigneraie
Cesson-Sevigne Cedex 35512 CS 17607
35576 Cesson-Sevigne Cedex
France France
EMail: Francis.Dupont@enst-bretagne.fr EMail: Francis.Dupont@enst-bretagne.fr
Appendix A. Acknowledgements 13. Full Copyright Statement
The authors would like to thank Greg O'Shea, Michael Thomas, Kevin
Miles, Cheryl Madson, Bernard Aboba, Erik Nordmark, Gabriel
Montenegro, Steven Kent, and Santeri Paavolainen for interesting
discussions in this problem space.
Appendix B. Changes from Previous Version
The following changes have been made to this document from version
05:
o It has been clarified that, as required by the base specification,
the Home Address destination option and type 2 Routing header
affect policy checks only with respect to the nodes that are the
original senders or final receivers of the packet (tracked issue
319).
o Text regarding other protocols than IKEv1 has been aligned with
the text in the base specification, which does not claim treatment
of the issues beyond IKEv1 (tracked issue 319).
o This document no longer references draft-touch-ipsec-vpn (tracked Copyright (C) The Internet Society (2004). This document is subject
issue 312). to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
o The replay protection requirements of this document have been This document and the information contained herein are provided on an
clarified (tracked issue 311). "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 Statement Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it might or might not be available; nor does it represent that it has
has made any effort to identify any such rights. Information on the made any independent effort to identify any such rights. Information
IETF's procedures with respect to rights in standards-track and on the procedures with respect to rights in RFC documents can be
standards-related documentation can be found in BCP-11. Copies of found in BCP 78 and BCP 79.
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to Copies of IPR disclosures made to the IETF Secretariat and any
obtain a general license or permission for the use of such assurances of licenses to be made available, or the result of an
proprietary rights by implementors or users of this specification can attempt made to obtain a general license or permission for the use of
be obtained from the IETF Secretariat. 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 The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF Executive this standard. Please address the information to the IETF at ietf-
Director. ipr@ietf.org.
Full Copyright Statement
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assignees.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS 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.
Acknowledgement Acknowledgement
Funding for the RFC Editor function is currently provided by the Funding for the RFC Editor function is currently provided by the
Internet Society. Internet Society.
 End of changes. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/