Network Working Group P. Nikander Internet-Draft J. Arkko Expires:December 16, 2003 P. JokelaJune 28, 2004 Ericsson Research Nomadic LabJune 17,December 29, 2003 End-Host Mobility and Multi-Homing with Host Identity Protocoldraft-nikander-hip-mm-00.txtdraft-nikander-hip-mm-01 Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http:// www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire onDecember 16, 2003.June 28, 2004. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract This document specifies basic end-host mobility and multi-homing mechanisms for the Host Identity Protocol. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . .4. 3 2. Conventions used in this document . . . . . . . . . . . . .6. 5 3.Usage scenariosTerminology . . . . . . . . . . . . . . . . . . . . . .7 3.1 End-host mobility. . . 6 4. Usage scenarios . . . . . . . . . . . . . . . . . . . . . . . 73.2 Location privacy4.1 End-host mobility . . . . . . . . . . . . . . . . . . . . . . 73.34.2 End-host multi-homing . . . . . . . . . . . . . . . . . . . . 73.44.3 Site multi-homing . . . . . . . . . . . . . . . . . . . . .8 3.5. 7 4.4 Combined mobility and multi-homing . . . . . . . . . . . . . . 83.64.5 Network renumbering . . . . . . . . . . . . . . . . . . . .8 3.7 Combined all . . . . . . . . . . . . . . . . . . . . . . .. 84.5. Overview of HIP basic mobility and multi-homing functionality . .9 4.1 IP addresses assigned to a node. . . . . . . . . . . . . . . . . . . . . . 94.25.1 Informing the peer about multiple or changed address(es) . . . 94.35.2 Address verification . . . . . . . . . . . . . . . . . . . .10 4.4 Forwarding Agents . . . .. 10 5.3 Address data structure and status . . . . . . . . . . . . . . 11 6. Protocol overview . .10 4.4.1 Address leases from an Forwarding Agent. . . . . . . . . .11 4.4.2 Recovering from forwarding agent crashes. . . . . . . . . . 124.5 Security Associations .6.1 Initiating the protocol in NES . . . . . . . . . . . . . . . . 13 6.2 Initiating the protocol in R1 or I2 . .12 5. Protocol overview. . . . . . . . . . . 13 6.3 Explicit address check . . . . . . . . . .13 5.1 Acquiring an address lease from a Forwarding Agent. . . . .13 5.2 Renewing an address lease. . . . . 15 7. Parameter and packet formats . . . . . . . . . . . .14 5.3 Readdressing and address status. . . . . 16 7.1 REA parameter . . . . . . . . .14 6. Protocol definition. . . . . . . . . . . . . . . 16 7.2 Modified NES_INFO parameter . . . . .16 6.1 Packet formats. . . . . . . . . . . . 17 7.3 NES packet with included REA . . . . . . . . . . .16 6.1.1 REA - the HIP readdress packet. . . . . . 18 7.4 R1 and I2 packets with included REA . . . . . . . . .16 6.1.2 AC and ACR - the HIP Address Check and Address Check Reply. . . . 18 8. Processing rules . . . . . . . . . . . . . . . . . . . . . . .19 6.1.3 FAQ, FAA, FAD - the HIP Forwarding Agent packets20 8.1 Sending REAs . . . . . .20 6.2 Requesting Address Leases. . . . . . . . . . . . . . . . .21 6.3 Providing address Leases. . 20 8.2 Handling received REAs . . . . . . . . . . . . . . . .21 6.4 Sending REAs. . . . 20 8.3 Verifying address reachability . . . . . . . . . . . . . . . . 21 8.4 Changing the preferred address . . . .21 6.5 Handling received REAs at end hosts. . . . . . . . . . . . 227.9. Policy considerations . . . . . . . . . . . . . . . . . . . . 238.10. Security Considerations . . . . . . . . . . . . . . . . . .24 8.1 Why does the foreign agent may require a puzzle solution?. 248.2 Attacker masquerading as a FA . . . . . . . . . . . . .11. IANA Considerations . .24 8.3 Location privacy. . . . . . . . . . . . . . . . . . . 25 12. Acknowledgments . . .25 9. IANA Considerations. . . . . . . . . . . . . . . . . . . . 2610. Acknowledgments .Normative references . . . . . . . . . . . . . . . . . . . . . 27NormativeInformative references . . . . . . . . . . . . . . . . . . . . 28Informative references . . . . . . . . . . . . . . . . . . . 29Authors' Addresses . . . . . . . . . . . . . . . . . . . . .29 A. Site multi-homing . . . .. 28 A. Changes from previous versions . . . . . . . . . . . . . . . .3129 A.1A host connectedFrom -00 toa multi-homed site-01 . . . . . . . . . . .31 A.2 Transit providers with NATs .. . . . . . . . . . . .. . . 3129 B. Implementation experiences . . . . . . . . . . . . . . . . .32. 30 Intellectual Property and Copyright Statements . . . . . . .33. 31 1. Introduction This document specifieshowan extension to the Host Identity Protocol [3](HIP)(HIP). The extension provides a simple and efficient means fornodeshosts tocommunicatekeep their communications on-going whilebeing multi-homed, mobile,having multiple IP addresses, either at the same time orsimultanously mobileone after another. That is, the extension provides basic support for multi-homing, mobility, andmulti-homed.simultaneous multi-homing and mobility. Additionally,HIPthe extension allows communications to continue even whenthemulti-homing or mobility causes a changeinof the IP version that is available in thenetwork. More specifically,network; that is, if one of the communicating hosts has both IPv4 and IPv6 connectivity, either directly or through a proxy,the other host can alternate between IPv4 and IPv6 without any effects on the upper layer protocols. This document does not specify any rendezvous or proxy services. Those are subject to other specifications . Hence, this document alone does not necessarily allow two mobile hosts to communicate, unless they have other means for initial rendezvous and solving the simultaneous movement problem. The Host Identity Protocol [3] (HIP) defines a mechanism that decouples the transport layer (TCP, UDP, etc) from the internetworkinglayer,layer (IPv4 and IPv6), and introduces a new Host Identity namespace. When a host uses HIP, the transport layer sockets and IPsec Security Associations are not bound to IP addresses but to Host Identifiers. This document specifies how the mapping from Host Identifiers to IP addresses can be extended from a static one-to-one mapping into a dynamic one-to-manymapping. This enablesmapping, thereby enabling end-host mobility and multi-homing.Additionally, this document introduces the concept of Forwarding Agents. A Forwarding Agents provides Mobile IP Home Agent like functionality for HIP enabled mobility.In practice, the HIP base exchangecreates[3]creates a pair of IPsec Security Associations (SA) betweenany communicatinga pair of HIP enablednodes.hosts. These SAs are not bound to IPaddressesaddresses, but to the Host Identifiers (publickeys).keys) used to create them. However, the hosts must also know at least one IP address where their peers are reachable. Initiallythisthese IPaddress isaddresses are theoneones used during the HIP base exchange. Since the SAs are not bound to IP addresses, thenodeshost are able to receiveIPsecpackets that protected using a HIPpacketscreated ESP SA from any address. Thus, anodehost can change its IP address and continue to send packets to its peers. However, the peers are not able tosend repliesreplys before they can reliably and securely update the set of addresses that they associate with the sendingnode's address(es).host. This document specifies a mechanism thatallowallows a HIPnodehost to update the set of addresses that itsaddress(es) to its peers.peers associate with it. The address update is implemented withanew HIPpacket type, the HIP Readdress (REA) packet.parameter types. Due to the danger of flooding attacks (see [4]), thepeerpeers must always check the reachability of thenodehost at a new address before it can use the new addresses. The reachability check is implementedwithby the challenger creating apair ofnewHIP packet types, HIP Address Check (AC)SPI, announcing the new SPI, andHIP Address Check Reply (ACR).waiting for traffic on the new SPI. In addition to initiatingand reachbilitythe reachability check,an AC packet mayannouncing the new SPI alsoactacts as an acknowledgement for a precedingREA packet.address change. There are a number of situations where the simple end-to-end readdressing functionality is not sufficient. These include the initial reachability of a mobilenode,host, location privacy, end-host and site multi-homing with legacy hosts, and NAT traversal. In these situations there is a need for some helper functionality in the network.In thisThis documentwe describe mechanisms for initial reachability, multi-homing, recovering from simultaneous movements, and combining mobility and multi-homing. Some of these functions require an additional node in the network, which has been given the name of Forwarding Agent. As a special case, a Forwarding Agent can act as a lightweight Rendezvous server as defined in [3].does not address those needs. 2. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119 [1]. 3. Terminology Preferred address An address that a host prefers to receive data. New preferred address A new preferred address sent by a host to its peers. The reachability of the new preferred address often needs to be verified before it can be taken into use. Consequently, there may simultaneously be an active preferred address, being used, and a new preferred address, whose reachability is being verified. Interface A logical concept used to group IP addresses together. If a host announces multiple interface, each interface will be associated with a different incoming Security Association. 4. Usage scenarios In this section we briefly introduce a number of usage scenarios where the HIP mobility and multi-homing facility is useful. To understand these usage scenarios, the reader should be at least minimally familiar with the HIP protocol specification [3]. However, for the (relatively) uninitiated reader it is most important to keep in mind that in HIP the actual payload traffic is protected with ESP, and that the ESP SPI acts as an index to the right host-to-host context.3.14.1 End-host mobility A mobile IP host must change its IP address according to connectivity. The change of an IP address might be needed due to a change in the advertised IPv6 prefixes on the link, a reconnected PPP link, a new DHCP lease, or an actual movement to another subnet. In order to maintain its communication context, the host must inform its peers about the new IP address. Although HIP enables ESP and the upper layer to be independent of the internetworking layer, there still needs to be a mapping of the pseudo-IP addresses used in the upper stack (LSI and HIT) to a real IP address. Thus, from the functional point of view, it is sufficient that the peernodeshost learn the new IP address. The upper layer protocols need to know about the address and connectivity change only for QoS and other similar purposes. In most cases, theyneeddo not need to know.3.2 Location privacy To protect its privacy, an IP host may want to keep its actual IP address private. Since HIP insulates the upper layer from the IP address, this can be accomplished by simple address rewriting at an privacy protecting node. Note that a mobile node may want to keep its location private. In that case, it informs its real address to the privacy protecting node and not to the actual peers. Full location privacy falls beyond this document. 3.34.2 End-host multi-homing A host may have multiple interfaces, and it isdesireddesirable that it can stay reachable through all or any subset of the currently available interfaces. It is expected that the set of available interfaces may change dynamically, and that there may be policies associated with the usage of the different interfaces. For instance, the host may have a fast but low range wireless interface and a slow high range interface. The host may generally prefer to use the fast interface, but it may not beavailable only some of the time.always available. Note that a host may be multi-homed and mobile simultaneously, and that a multi-homed host may want to protect the location of some of itsinterfaceinterfaces while revealing the real IP address of some others.3.44.3 Site multi-homing A host may have an interface that has multiple globally reachable IP addresses. Such a situation may be a result of the site having multiple upper Internet Service Providers, or just because the site provides allnodeshost with both IPv4 and IPv6 addresses. It is desirable that the host can stay reachable with all or any subset of the currently available globally routable addresses, independent on how they are provided. Note that a single interface may experience site multi-homing while the host itself may have multiple interfaces.3.54.4 Combined mobility and multi-homing It looks likely that in the future manyof themobilenodeshosts will be simultaneously mobile andmulti-homing,multi-homed, i.e., have multiple mobile interfaces. Furthermore, if the interfaces use different accesstechnology,technologies, it is fairly likely that one of the interfaces may appear stable (retain its current IP address) while some other(s) may experience mobility (undergo IP address change).3.64.5 Network renumbering It is expected that IPv6 networks will be renumbered much more often than most IPv4 networks are. From an end-host point of view, network renumber is similar to mobility.3.7 Combined all It is desirable that a host may simultaneously have multiple active interfaces, be mobile (on any or all of its interfaces), utilize multiple globally reachable addresses (on any or all of its interfaces), and protect its location privacy (on any or all of its interfaces). 4.5. Overview of HIP basic mobility and multi-homing functionality HIP mobility and multi-homing is fundamentally based on the HIP architecture [4], where the transport and internetworking layers are insulated from each other with the new host identity protocol layer. In the HIParchitecure,architecture, the transport layer sockets are bound to the Host Identifiers (through HIT or LSI in the case of legacy APIs), and the Host Identifiers are translated to the actual IP address. In thebaseHIP base protocol specification [3], it is defined how two hosts exchange their Host Identifiers and establish a pair of ESP Security Associations (SA). The ESP SAs are then used to carry the actual payload data between the two hosts, by wrapping TCP, UDP, and other upper layerheaderspackets into transport mode ESP payloads. The IP header, carrying the ESP header, uses the actual IP addresses in the network.In theThe basespecification, hosts usespecification does not contain any mechanisms for changing thesameIP addressesfor nodesthat were used during the base HIP exchange.This specification definesHence, in order to remain connected any systems that implement only theway how IP addresses can be changed duringspace specification and nothing else must retain thecommunication. 4.1 IP addresses assignedability toa node A host can have multiplereceive packets at their primary IPaddresses. It may have many interfacesaddress; thatare assignedis, those systems cannot change the IPaddresses or it may haveaddress they are using without causing loss of connectivity. 5.1 Informing the peer about multipleaddresses assignedor changed address(es) This document specifies a new HIP protocol parameter, the REA parameter (see Section 7.1), that allows the hosts toone interface. There may also be multipleexchange information about their IPaddresses in function of time: the node mayaddress(es), and any changesits topological locationinthe network, or its network may change addresses.their address(es). The logical structure created with REA parameters has three levels: hosts, interfaces, and addresses. This is illustrated in Figure 1. address11 / interface1 - address12 / / address21 host -- interface2 < \ address22 \ interface3 - address31 \ address32 Figure 1 In this document, the interfaces are considered to be logical objects. A host may claim to have any number ofinterfaces, as long as a single IP address does not appear to be bound to more than one interface.interfaces. The purpose of the interfaces is to group the addresses into collections that are likely to experience fate sharing. For example, if the host needs to change its addresses on interface2, it is likely that both address21 and address22 will simultaneously become obsolete.4.2 InformingNote, however, that especially in thepeercase of site multi-homing one of the addresses may become unreachablewhile the other one still works. In the typical case, however, this does not require the host to inform its peers about the situation, since even the non-working address still logically exists. All addresses on a single interface share an SA. Each interface has its own SA. In the usual case, the latencies experienced on distinct interfaces may be considerably different. Hence, if multipleor changed address(es) Tointerfaces were to share an SA, it would become fairly likely that some of the packets would beablediscarded due touse effectively multiple addresses assignedappearing to have been received outside of the ESP reordering window. While it would be possible to share an SA between multiple interfaces, there would be no benefit from it. As thehostinterfaces are logical objects, andupdateas the hosts are free to create new interface as demand and to move addresses between interfaces as they will, a conforming host may claim thatchange duringtwo physical interfaces are in fact one logical one, thereby allowing thecommunication with another node,two interfaces to share an SA. An address may appear on more than one interface. This creates no ambiguity since each interface must have aHIP protocol packet, the REA packet (see Section 6.1.1), is specified. The logical structure created with REA packets has three levels: hosts, interfaces,different SPI, andaddresses. This is illustrated in Figure 1. address11 / interface1 - address12 / / address21 host -- interface2 < \ address22 \ interface3 - address31 \ address32 Figure 1since the receiver will ignore the IP addresses anyway. A single REApayload handlesparameter contains data only about one interface. To signal simultaneously changes on several interfaces, it is necessary to send severalconsequtiveREApayloads.parameters. The packet structure supports this.4.3If the REA parameter is send in a NES packet and the sender wants to receive an acknowledgement, it must explicitly indicate so. Otherwise the recipient of the REA parameter may consider the REA as informational, and act only when it needs to activate a new address. 5.2 Address verification When a HIP host receives a group of IP addresses from another HIP host in a REA, it does not necessarily knowfor surewhether the other host is actually reachable at the claimed addresses. In fact,if the other HIPa maliciouspeer hostis not fully trusted, itmay be intentionally giving a bogusaddress with the intention of causingaddresses in order to cause a packet flood towards the given address[8].[7]. Thus, before the HIP host can actually use a new address, it must first check that the peer is reachable at the new address. This is implementedwith the HIP Address Check (AC) and Address Check Reply (ACR) packets. To acknowledge that it has receivedby requesting theREA, andpeer toinitiate an address check, the HIP host receivingcreate aREA immediately sends an ACnew outgoing SA, using a new random SPI value, and waiting for data toall addresses mentioned in the REA.appear on this new SA. 5.3 Address data structure and status In a typical implementation,aneach remote addressconsistsis represented as a piece of state that contains the following data: the actualbitpattern used inbit pattern representing theIP source and destination fields, a lifetime, and a status.IPv4 or IPv6 address, lifetime (seconds), status (UNVERIFIED, ACTIVE, DEPRECATED). The status is used to track the reachability of theaddress. 4.4 Forwarding Agents For nodesaddress: UNVERIFIED indicates thatare mobile, an IP address from where it can be reached is necessary ifthenode wants to be reachable by other nodes. The Forwarding Agent provides one possible solution to this. Thereachability of theHIP node may require usage of both IPv6 and IPv4. If the HIP node itself is behind a networkaddress has not been checked yet, ACTIVE indicates thatsupports only one of the IP protocol versions,theHIP node may usereachability of theFA for acting as a gateway whenaddress has been checked and thepeer node wants to use a IP protocol versionaddress has not been deprecated, DEPRECATED indicates that theHIP node behind the FA does not directly support.address lifetime has expired TheHIP node can "lease" IP address(es) from the FA iffollowing state changes are allowed: UNVERIFIED to ACTIVE The reachability procedure completes succesfully. UNVERIFIED to DEPRECATED The address lifetime expires while itneeds anis UNVERIFIED. ACTIVE to DEPRECATED The addressfrom wherelifetime expires while itcan be reached. This can beis ACTIVE. ACTIVE to UNVERIFIED There has been no traffic on thecase, for example, when a mobile node needs a contactaddress forpeer nodes. The HIP node contacts the FA, requests for an IP address (and SPI range),some time, andstart announcingtheIPlocal policy mandates that the address(and some SPI)reachability must be verified again before starting toits peers.use it again. DEPRECATED to UNVERIFIED TheSPI is required ifhost receives a new lifetime for theIPaddress. A DEPRECATED addressleased from the FAMUST NOT be changed to ACTIVE without first verifying its reachability. 6. Protocol overview The readdressing protocol isnot unique, i.e. it does not map one-to-onedesigned tothe HITbe piggybacked on a number oftheexisting HIPnode. Further ESP protected dataexchanges. The main packetsarriving toon which theFA can thusREA parameters are expected to beidentified using thecarried on are New SPIvalue and verifying(NES) packets. However, some implementations may want towhich HIP node that particular SPI has been reserved. As longexperiment with sending REA parameters also on other packets, such asthe "lease"R1 and I2. The protocol isvalid, the FA will forward any packets sent to the IP address (andanSPI withinasymmetric protcool where one host, called therange) toMobile Host, informs another host, called theHIP host.Peer host, about changes of IP addresses on one of its interfaces. Thebasic operational model is depictedprotocol consists of three steps, illustrated in Figure 2.Without mobility (REA), using a FA results in triangular routing, as shown. +----------+ +--------------+ | HIP host |---------------------------->| Another host | +----------+ +--------------+ ^ real IP address | | | | | +----------+ leased IP address | | FA |<------------------------------------+ +----------+ Figure 21. Theactual method of discovering FAs is beyondMobile Host sends a REA parameter to thescope of this document, and will be specified elsewhere. 4.4.1 Address leases from an Forwarding Agent To acquirePeer host. 2. The Peer Host initiates an addresslease fromcheck procedure by sending agiven FA, the HIP host sendsnew SPI value to aForwarding Agent Query (FAQ)new address. Any packetto it. In some cases, the FAQ may be sent asthat contains abroadcast or multicast packet; the details of such practice willnew SPI may bespecified elsewhere.used, including NES, I2 and R2. TheHIP host may use any identity it wishes; however, the identity maynew SPI value MUST besubject to local access control byrandom, i.e., theFA. That is, some FAs mayMobile Host MUST NOT bewillingable toserve only some HIP hosts. Ifguess it. When theFA is willing to serve an address toMobile Host receives theHIP host,new SPI value, itreplies to the FAQ withcreates aForwarding Agent Advice (FAA) packet. A FAA establishes an address lease to the HIP host. The HIP host can relynew outgoing SA and starts sending data onthe FA to keep forwarding packetsit. 3. The Peer Host waits for new data to arrive on theHIP host until the address lease expires. Ifnew SA, indicated by theFA is not willing to serveSPI. Once it has succesfully received data on theHIP host,SA, itresponds with a Forwarding Agent Denied (FAD) packet, specifyingmarks thereason for denial. Eachnew addresslease has a lifetime. The HIPas reachable. Mobile hostmay renewPeer host REA parameter -----------------------------------> new SPI <----------------------------------- data on new SA -----------------------------------> Figure 2 The idea of the addresslease at any time before itcheck procedure is that if thelease expires. SubjectMobile Host is able toits policy,succesfully construct theFA should renew and extendnew outgoing SA, using thelease, but it MAY refuse any extensions. In any case,new SPI value, and send data on that SA, then it mustnot reduce the lease lifetime making it to expire prior to the initial expiration time. The HIP host may abandon the lease at any time, either by failing to renew it or by sending an Forwarding Agent Query that specifies a zero lifetime. If an address lease expires without having been renewed,have received theFA simply discardssecond message in theforwarding stateprotocol, andany resources associated with it. 4.4.2 Recovering from forwarding agent crashes If a FA crashes,therefore itlooses its state. Consequently, it cannot forward packets sent to it, since it does not know the IP address associated with the leased address (and the SPI). The only thing the forwarding agent could do wouldmust beto simulate lost state by the actual HIP host that is leasingreachable at the said address.However, since the crashed FA does not know the HIT of the host, it cannot do that. Effectively, the forwarding agent becomes a black hole until the HIP host recognizes the situation and ackquires a new lease. It is currently an open problem whether a crashed FA should send some kind of error message to the hosts sending ESP packets to it. 4.5 Security AssociationsXXX: Residual threat: Thesecurity associations between the nodes are not any longer directly connectedMobile Host able to anticipate theIP address of the node. The SA is associated with the HITKEY index andthere may be either one SA between the nodes, or multiple SAs whenguess theinterface capabilitiesSPI value by trying out all? Not really, I think, since it would requiresuch an arrangement. All addresses on a single interface share an SA. Multiple interfaces may share a single SA, but each interface may also have its own SA. In practice, multiple interfaces may share an SA if the experienced latency is fairly similar, in which case theabout 2^31 packetsare received within the IPsec reordering window. However, the latencies between two interfaces are considerably different, it becomes more likely that some ofon thepackets would be discarded due to appearing to have been received outside ofaverage... 6.1 Initiating theESP reordering window. Thus,protocol inthatNES The most common caseitisnecessarytouse different SAs for different interfaces. 5. Protocol overview The HIP mobility and multi-homing functionality consist of the following subprotocols: Acquiring an address lease from a Forwarding Agent Renewing an address lease Informing peers about multiple addresses or address changes, and verifying the reachability of addresses 5.1 Acquiring an address lease from a Forwarding Agent HIP host Forwarding Agent Forwarding Agent Query -----------------------------------> R1 <----------------------------------- Forwarding Agent Query -----------------------------------> Forwarding Agent Advice <----------------------------------- To acquire an address lease,carry theHIP host sends an FAQ, requesting for an address lease. The host may specifyreaddress protocol on NES packets. In this case, thetype of address it wants to have (IPv4, IPv6, either),Mobile Host initiates rekey (usually using thenumber of SPIs requested,current Diffie-Hellman keys) and includes a REA parameter on thedesired lifetime. Any of these fields may be left empty, as well.initial NES packet. TheFAQ is always signed. If the Forwarding agent does not trust the HIP host, it may answer with an R1, basically asking the HIPPeer host replies tosolvethis with apuzzle before the Forwarding Agent is even willingreply NES packet, sent toconsidertherequest. Once the HIP host has solved the puzzle, it may sendnew preferred address. As theFAQ again, this time including an answer toMobile Host receives thepuzzle. XXX: Isreply NES, itOK thatstarts using theFA answers with a normal R1, or should we use some other packet type, e.g., Forwarding Agent R1 (FAR1)? Ifnew outgoing SA. Finally, as theFA is willing to servePeer Host receives traffic on theHIP host,new incoming SA, itanswers with an FAA, specifying the leased IP address, its lifetime, and if the address is an IPv4 address, a range of SPIs that has been reserved formarks theHIP host. 5.2 Renewing an address lease Once annew addresslease is about to expire, the HIP host may wantas valid and switches over torenew it. HIP host Forwarding Agent Forwarding Agent Query -----------------------------------> Forwarding Agent Advice <----------------------------------- To renew a lease,use theHIP host simply sends a FAQ specifying an existing lease, togethernew outgoing SA, associated with thedesired extended lease time, and the FA replies with an FAA. 5.3 Readdressing and address status HIPnew address. Mobile hostAnotherPeer host NES with REA ----------------------------------->ACrecord additional addresses (prepare new incoming SA) NES with new SPI in NES_INFO <-----------------------------------ACR(prepare new incoming SA) (switch to new outgoing SA) data on new SA ----------------------------------->When the host changes its IP address, gets more addresses or loses an address, it may want(switch totell thisnew outgoing SA) changeto peer nodes. Thepreferred addresschanging host sends the readdress packet (REA)The text in (parantheses) indicate functions that are performed anyway, as a part of NES processing, and not new to thepeer where it tells all available addresses. The address update packetREA processing. Figure 3 Basically, the processing structure issigned providing proof aboutequal to thesending party. Ascurrent NES processing other than that thenode receiving a REA packet cannot be sure if allPeer host records thereceivedadditional addressesare valid evenform thesignature is correct, itREA parameter, sends theAddress Check (AC) packetNES reply toeach ofthe newaddresses received. If the host receiving an AC message has sentpreferred address instead of theREA message that matchescurrent preferred address, and updates thereceived AC message,preferred address as soon as itMUST send an Address Check Reply (ACR) packet back toreceives data on thepeer for confirmation. New addresses received innew SA. 6.2 Initiating the protocol in R1 or I2 A Responder host MAY include one or more REApacket are ready to be used afterparameters in theACR packet has been received. If a node receives an AC packet that does not match to any REAR1 packet thatis has sent out,itMUST dropsends to thepacket. Such a packet mayInitiator. These parameters MUST bean indication that someone else is on purpose or on mistake sending a false address to its peer. 6. Protocol definition The location information update procedure inprotected by theHIP consists ofR1 signature. If thereaddressR1 packettelling the current set of addresses thatcontains REA parameters, thenode is using, address check and address check replies. With this set of messagesInitiator SHOULD send theIP addresses can be updatedI2 packet to thepeer and the peer is able to verifynew preferred address. The Responder MUST make sure that theaddresses are valid. In addition to the actual address update, the HIP nodepuzzle solution isprovided a possibility to get leased addresses from the FA. The FA can provide address(es) (and a range of SPIs)valid BOTH for theHIP nodeinitial IP destination address used for I1 and for theHIP node can use this towards other nodes.new preferred address. TheFA thus forwards packets toI1 destination address and theHIP node whennew preferred address may be identical. Initiator Responder R1 with REA <----------------------------------- record additional addresses change responder address I2 with new SPI in SPI_LSI -----------------------------------> (process normally) R2 <----------------------------------- (process normally) Figure 4 XXX: What about R1 source address? Most probably we want to allow itreceives packets senttothe leased address. 6.1 Packet formats 6.1.1 REA - the HIP readdress packet A HIP readressing packet consists of one or more of REA_INFO payloads, followed by a signature (HIP_SIGNATURE) and a HMAC. The purpose of the signature isbe any address to allowmiddleboxesan optimized rendezvous server toverify the integritysend an R1 instead of thepacket. The HMAC allows the peer node to verify the packet very fast. Intermediate systems that use the SPI will have to inspect ALL HIP packets for aactual host? An Initiator MAY include one or more REApacket. This is a potential DoS attack againstparameters in theIntermediate system, asI2 packet, independent on whether there was REA parameter(s) in thesignature processing mayR1 or not. These parameters MUST berelatively expensive. A further step against attack forprotected by theIntermediate systems is to implement ESP's replay protection of windowingI2 signature. Even if thesequence number. This requiresI2 packet contains REA parameters, theintermediate system to track ALL ESP packetsResponder MUST still send the R2 packet tofollowtheSequence Number. Optionally,source address of themessage may contain an ESP protected datagram. This datagram is processed as if it had arrived separately.I2. Thepurpose of allowing datagrams tonew preferred address SHOULD beembedded inside the REA packet isidentical toincrease the efficiency of transmittingthefirstI2 source address. Initiator Responder I2 with REA -----------------------------------> (process normally) record additional addresses R2 with new SPI in LSI_SPI <----------------------------------- (process normally) datapacket, as only one IPv6 header is required. XXX Note (by Jari Arkko): I don't believe that this is a significant function. In fact, header compressiononlinks is probably more efficient than this (the effect could be negative), and there might be some problems that this causes. I don't think it causesnew SA ------------------------------------> (process normally) Figure 5 6.3 Explicit address check When thesame type of problemsPeer Host wants to use a new address thatpiggybacking caused in Mobile IPv6, however, because the packet is always encrypted, hence it could not receive different treatment at the firewalls etc. But I'mhas not100% sure that there are no other problems. 6.1.1.1 REA_INFO payload Note thatyet been checked, it must first run check theREA_INFO payload is a kindreachability of"expanded" NES. XXX (Pekka): Note that I have, forthetime being, removed the old ESP sequence number. Firstly, it may be hardaddress before sending any large amounts of data toacquire reliably in some implemtations (ours included). Secondly, we now have a REA ID field, which is basically athe address. See Section 8.3. 7. Parameter and packet formats 7.1 REAsequence number.parameter 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P| Reserved | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Current SPI in reverse direction | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Current SPI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | New SPI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Keymaterial index | REA ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Address Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type1281 (first non-critical) Length Length in octets, excluding Type and Lengthfieldsfields. P Preferred address. The first address in this REA is the new preferred address. Reserved Zero when sent, ignored when received. Interface ID Interface ID, as defined by the sendinghost Current SPI rev. The current SPI used in the reverse direction Current SPI The current SPI used for receiving ESP on this interface New SPIhost. Thenew SPI used for receiving ESP on thisinterfaceKeymaterial index A bit index to the KEYMAT, where to pick up the keying material for the new SA. REA ID A 16-bit sequence number of nonce, used to match the REA packet to the corresponding AC packet.IDs may have any values, and need not be consequtively allocated. Address Lifetime Addresslifetimelifetime, in seconds. Reserved Zero when sent, ignored whenreceivedreceived. Address An IPv6 address or an IPv4-in-IPv6 format IPv4 address[2][2]. The Interface ID field identifies the (logical) interface that thispacketparameter applies to. It is implicitly qualified by the Host Identity of the sending host. The Interface ID groups a set of addresses to an interface. Thepurpose of the Interface ID is to allow a knowledgeable peer to interact with the sender. For example, the sender could be informing its peer that that an interface has both an IPv4 address and one or more IPv6 addresses. Thesending host is free to introduce new interface IDs at will. That is, if a received REA has a new interface ID, it means that all the old addresses, assigned to the other interface IDs, are also supposed to still work, while the new addresses in the newly received REA are supposed to be associated with a new interface. On the other hand, if a received REA has an interface ID that the receiver already knows about, it would replace (all) the address(es) currently associated with the interface with the new one(s).IfThe Address Lifetime indicates how long theSAfollowing address ischanged, and if the SAexpected to be valid. The lifetime isnot used at any other interface any more, itexpressed in seconds. Each address MUSTNOT be deleted until all ESP packets with a lower Sequence Numberhavebeen received and processed, orareasonable time has elapsed (to account for lost packets). 6.1.1.2 HMACnon-zero lifetime. TheHMAC SHA-1address isusedexpected toverify a received packet. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / HMAC data / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 65532 Length Length in octets, excluding Type and Length fields HMAC data 20 bytesbecome deprecated when the specified number ofHMAC SHA-1 data 6.1.2 AC and ACR -seconds has passed since theHIP Address Checkreception of the message. A deprecated address SHOULD NOT be used as an destination address if an alternate (non-deprecated) is available andAddress Check Replyhas sufficient scope. Since IP addresses are ignored upon reception, deprecation status does not have any affect on the receiver. TheHIP Address Check (AC) andAddressCheck Reply (ACR) packets containfield contains anAC_INFO payload, followed byIPv6 address, or an IPv4 address in the IPv4-in-IPv6 format [2]. The latter format denotes aHMAC. In additionplain IPv4 address that can be used toacting asreach the Mobile Host. 7.2 Modified NES_INFO parameter The NES_INFO parameter is defined in the base specification [3]. The R-bit is defined to indicate wheter a NES is a reply to another NES or not. If a NES is not a reply, the receiver must reply. If a NES is anaddress probe,unexpected reply, theAddress Checkpacket is simply dropped. This specification changes the semantics of the R-bit slightly. (It is expected that this change mayalso actsbe later incorporated to the base specification.) The new semantics of the R-bit are defined as follows. R Zero if the sender is requesting animplicit acknowledgement toexplicit NES_INFO as aREA packet. 6.1.2.1 AC_INFO payload 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AC ID | REA ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RTT timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 129 Length Lengthreply, one if no reply is needed. Processing NES packets currently defines the following behaviour. If the system is inoctets, excluding Typestate E3 andLength fields AC ID A 16-bit sequence number of nonce, used to matchtheACNES has the R-bit set, the packettois silently dropped. The new behaviour is defined as follows. If thecorresponding ACR packet.system is in state E3 and the NES_INFO has the R-bit set, the system initiates unidirectional rekeying, as defined in Section 8.3. 7.3 NES packet with included REAIDA16-bit sequence number of nonce, used to match thesingle REA is included in a NES packetto the corresponding AC packet. RTT timestamp A timestamp field which may be used for RTT estimation Reserved Zero when sent, ignored when received 6.1.3 FAQ, FAA, FAD -between the NES_INFO and HMAC parameters: IP ( HIPForwarding Agent packets The( REA, NES_INFO, [ DIFFIE_HELLMAN, ] HMAC, HIP_SIGNATURE ) ) If there are multiple REA parameters to be sent in a single NES, each of them must be matched with a NES_INFO parameter: IP ( HIPFAQ, FAA( REA1, REA2, NES_INFO1, NES_INFO2, [ DH, ] ... ) ) 7.4 R1 andFADI2 packetscontain an FA_INFO payload,with included REA The REA parameter is included early in the R1 andpossibly other payloads.I2 packets, since middle boxes may be interested in inspecting them. If aforwarding agent sends an R1REA is not present, a typical middle box is only interested inresponse to FAQ,thesecond FAQ must also contain an BIRTHDAY_COOKIE payload, containing the cookie response. The FAA,SPI_LSI parameter andFAD packets MUST contain athe signature. IP ( HIP ( REA, BIRTHDAY_COOKIE, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ( HOST_IDor| HOST_ID_FQDNpayload. The FAA packet MAY contain a), HIP_SIGNATURE_2 ) ) IP ( HIP ( SPI_LSI, REA, BIRTHDAY_COOKIE, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED { HOST_IDor HOST_ID_FQDN payload. 6.1.3.1 FA_INFO payload 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Request ID | Lease ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Lease duration | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Addr type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IPv4 address: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Min SPI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max SPI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IPv6 address: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | IPv6 address (128 bits) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 130 Length Length in octets, excluding Type and Length fields Request ID A 16-bit sequence numberHOST_ID_FQDN }, HIP_SIGNATURE ) ) 8. Processing rules XXX: This section needs more work. 8.1 Sending REAs The decision ofnonce, usedwhen tomatchsend REAs is basically a local policy issue. However, it is RECOMMENDED that a host sends a REA whenever it recognizes a change of its IP addresses, and assumes that theFAQ packetchange is going to last at least for a few seconds. Rapidly sending conflicting REAs SHOULD be avoided. When a host decided to inform its Peers about changes in its IP addresses, it has to decide how to group thecorresponding FAA/FAD packet. Lease ID A 16-bit number XXX Lease duration Duration ofvarious addresses into interfaces, and whether to include any addresses on multiple interfaces. Since each interface is associated with a different Security Association, thelease Reserved Zero when sent, ignored when received Addr type Address type: 4 for IPv4grouping policy may be based on IPsec replay protection considerations. In the typical case, simply basing the grouping on actual kernel level physical and6 for IPv6 (TBD) 6.2 Requesting Address Leases To request address leases fromlogical interfaces is often theFA,best policy. Virtual interfaces, such as IPsec tunnel interfaces or Mobile IP home addresses SHOULD NOT be announced. Once theHIP node sends an FAQ packet tohost has decided on theFA. The FAQ packet consistsinterfaces and assingment of addresses to theHIP header, FA_INFO payload andinterfaces, it creates aHIP_SIGNATURE.REA parameter for each interface. If there are multiple interfaces and therefore multiple parameters, theFAQ packetparameters MUST be ordered so that the new preferred address is in thesecond onefirst REA parameter. The REA parameters MAY be sentfromin R1, I2 and NES packets. If theHIP nodehost does not have any other reason to send R1, I2 or NES, it should generate a new initial NES, SHOULD NOT include any Diffie-Hellman parameter to it, and send theFA, i.e.REA parameters in theFA respondednewly generated NES packet. If there are multiple REA parameters leading to a packet size that exceeds thefirst FAQ with anMTU, the host SHOULD send multiple packets, each smaller than the MTU. In the case of R1packet, a BIRTHDAY_COOKIE payload containingand I2, thecookie response mustadditional packets should beincluded inNES packets that are send after thepacket. 6.3 Providing address Leasesbase exchange has been completed. 8.2 Handling received REAs A host SHOULD be prepared to receive REA parameters in any HIP packets, excluding I1. Whenthe FAa host receivesan FAQ packet fromaHIP node,REA parameter, itmay verifyfirst performs thesignature infollowing operations: 1. The host checks if thepacket.Interface ID listed is a new one. If it is a new one, it creates a new logical interface that contains no addresses. 2. For each address listed in theFA does not trust onREA parameter, check that therequesting node,address is a legal unicast or anycast address. That is, the addres MUST NOT be a broadcast or multicast address. Note that some implementations MAY accept addresses that indicate the local host, since it maygenerate an R1 packet containing a puzzle forbe allowed that therequestinghost runs HIPnode.with itself. 3. For each address listed in the REA parameter, check if the address is already listed at the interface. If theFA trusts toaddress is listed, its lifetime is updated. If therequesting HIP node, oraddress is status is DEPRECATED, theHIP node respondedstatus is changed to UNVERIFIED. if theR1 packet with a new FAQ with a solved puzzle,address is not listed, theFA can allocate address(es)address is added, andpossibly SPIs forits status is set to UNVERIFIED. 4. Mark all addresses at therequesting node. The FA_INFO payload may contain information aboutinterface that were NOT listed in therequestedREA parameter as DEPRECATED. As a result, the interface now contains any addresses listed in the REA parameter either as UNVERIFIED or ACTIVE, and any old addresses not listed in therequested SPI ranges. If these requests can be met,REA parameter as DEPRECATED. Once theFA may allocate address(es) and possible SPIs forhost has updated therequesting node. Ifinterface, if theallocation request was accepted andREA parameter contains a new preferred address, the host SHOULD initiate asuccessfull reservationchange ofdata was performed,theFA responds topreferred address. This usually requires that therequesting node with a FAA packet. The FAA consistshost first verifies reachability ofan FA_INFO payload describingtheaddress(es)address, andpossible SPIs that are reserved foronly then changes therequesting node.address. See Section 8.4. 8.3 Verifying address reachability A host MAY what to verify the reachability of any UNVERIFIED address at any time. However, the exact method of verification depends on whether the host will next send a packet that contains a new SPI value or not. That is, if theFA was not ablehost is replying toallocate address(es), SPIsa R1 with an I2, to an I2 with an R2, orthe request was malformed, the FA respondsto a initial NES with aFADreply NES, then the verification is piggybacked on the I2, R2, or reply NES packet.6.4 Sending REAs The HIP node may wantOtherwise the verification is initiated by sending an unidirectional NES packet containing REA and NES_INFO parameters. Any of the I2, R2, NES-reply or unidirectional-NES packets cause either the creation or change of the outgoing SA in the Mobile Host. Furthermore, as part of the process to sendaddress information toR2, NES-reply or unidirectional-NES, thepeer node whenever there are updates inPeer Host MUST prepare a new incoming SA, using theaddressesSPI value included in R2 or NES, so thatare assigned to it. The leased addresses can be considered also to be possible addresses and they must be assignedit is prepared to receive traffic on the new SA. Note that in the case of receiving alogical interface. TheREApacket containson an R1 and replying with an I2, receiving theHIP header, one or more REA_INFO, HIP_SIGNATUREcorresponding R2 is sufficient for marking the Responder's primary address active, andHMAC TLVs. The REA_INFO describes allthere is no need to wait for data to appear on the SA. On the other hand, marking theaddresses that are associated with that particular interface identifier. If a previously associatedaddress active as a part of receiving data on the SA is an idempotent operation, and does notincludedcause any harm. Mobile host Peer host prepare incoming SA new SPI in R2, or NES <----------------------------------- switch to new outgoing SA data on new SA -----------------------------------> mark address ACTIVE 8.4 Changing thelist,preferred address A host MAY want to change thepeer considers it as a lostpreferred outgoing addressand removes it fromfor many reasons, e.g., because traffic information or ICMP error messages indicate that the currently used preferred addressassociations. 6.5 Handling received REAs at end hosts When a HIP node receivesmay have become unreachable. Another reason is receiving a REApacket, it verifiesparameter that has thesignature in it.P-bit set. To change the preferred address, the host initiates the following procedure: 1. If thepacket was valid, it may initiate an address check procedure. Thenew preferred addresscheck (AC) packetissent to all addresses that werenot listedinon any interface, theREA_INFO payload. The HIP node receivingprocedure fails. 2. If theREA packet from a node that it trusts, may accept allnew preferred address has DEPRECATED status and there is at least one non-depraceted address, the host selects one of the non-deprecated addresseswithout making anyas a new preferred addresscheck for them.and continues. 3. IfACs are sent,theaddresses innew preferred address has ACTIVE status, theREA_INFO must not be used until corresponding ACR packetpreferred address isreceived fromchanged and thepeer node. 7.procedure succeeds. 4. If the new preferred address has UNVERIFIED status, the host starts to verify its reachability. Once the verification has succeeded, the preferred address change is completed, unless a new change has been initiated in the mean while. 9. Policy considerationsTBD 8.XXX: This section needs to be written. The host may change the status of unused ACTIVE addresses into UNVERIFIED after a locally configured period if inactivity. 10. Security Considerations XXX: This section requires lots of more work. (Initial text by Jari Arkko): If not controlled in some manner, messaging related to address changes would create the following types of vulnerabilities: Revealing the contents of the (cleartext) communications Hijacking communications and man-in-the-middle attacks Denial of service for the involved nodes, by disabling their ability to receive the desired communications Denial of service for third parties, by redirecting a large amount of traffic to them Revealing the location of the nodes to other parties In HIP, communications are bound to the public keys of the end-points and not to IP addresses. The REA message is signed with the sender'sprivatepublic key, and hence it becomes impossible to hijack the communications of anothernodehost through the use of the REA message. Similarly, since only thenodehost itself can sign messages to move its traffic flows to a new IP address, denial of service attacks through REA can not cause the traffic flows to be sent to an IP address that thenodehost did not wish to use. Finally, In HIP all communications are encrypted with ESP, so a hijack attempt would also be unable to reveal the contents of the communications.MalicousMalicious nodes that use HIP can, however, try to cause a denial of service attack by establishing a high-volume traffic flow, such as a video stream, and then redirecting it to a victim. However, the return routability check provides some assurance that the given address is willing to accept the new traffic. Only attackers who are on the path between the peer and the new address could respond to the test.8.1 Why does the foreign agent may require a puzzle solution? In Section 5.1 it is stated that a foreign agent may pass a puzzle, in an R1, to the HIP host if it does not trust the HIP host. This protects the foreing agent from CPU consuming DoS attacks. If this protection were not used, an attacker could send a stream of bogus FAQ packets to the foreign agent, making it to spend all of its CPU to verify signatures that might be full garbage. 8.2 Attacker masquerading as a FA The ability for an attacker to masquerade as a forwarding agent depends on how the HIP host locates forwarding agents. That, in turn, falls beyond the scope of this document. However, if the HIP host accepts services from unknown or untrusted forwarding agents, it is taking a risk of getting a black hole or eavesdropped address. The resulting attack is usually not very serious, though, since all actual data traffic is protected with ESP, and the HIP packets are signed. Thus, the worst an untrustworthy forwarding agent can do is to blackhole the packets. 8.3 Location privacy TBD 9.11. IANA Considerations10.12. AcknowledgmentsThanks to Kimmo Nieminen.Normative references [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 2373, July 1998. [3] Moskowitz, R., Nikander, P. andR. Moskowitz,P. Jokela, "Host Identity Protocol",draft-moskowitz-hip-06draft-moskowitz-hip-07 (work in progress),MayJune 2003. [4] Moskowitz, R., "Host Identity Protocol Architecture", draft-moskowitz-hip-arch-03 (work in progress), May 2003. Informative references [5] Bellovin, S., "EIDs, IPsec, and HostNAT", IETF 41th, March 1998. [6]Nikander, P., Ylitalo, J. and J. Wall, "Integrating Security, Mobility, and Multi-Homing in a HIP Way", Network and Distributed Systems Security Symposium (NDSS'03), February 6-7, 2003, San Diego, CA, pages 87-99, Internet Society, February 2003. [7]Rescorla, E. and B. Korver, "Guidelines for Writing RFC Text on Security Considerations", draft-iab-sec-cons-03 (work in progress), February 2003.[8][7] Nikander, P.,Aura, T., Arkko, J., Montenegro, G. and E. Nordmark,"Mobile IP version 6 Route Optimization Security Design Background",draft-nikander-mobileip-v6-ro-sec-00draft-nikander-mobileip-v6-ro-sec-01 (work in progress),AprilJuly 2003. Authors' Addresses Pekka Nikander Ericsson Research Nomadic Lab JORVAS FIN-02420 FINLAND Phone: +358 9 299 1 EMail: pekka.nikander@nomadiclab.com Jari Arkko Ericsson Research Nomadic Lab JORVAS FIN-02420 FINLAND Phone: +358 9 299 1 EMail: jari.arkko@nomadiclab.comPetri Jokela Ericsson Research Nomadic Lab JORVAS FIN-02420 FINLAND Phone: +358 9 299 1 EMail: petri.jokela@nomadiclab.comAppendix A.Site multi-homing A site, connected to multiple transit providers, is considered to be multi-homed. There is a possibility to send traffic using any of the transit provider networks. A node, connected to a multi-homed site, can experience this multi-homingChanges fromthe received IP addresses.previous versions A.1A host connected to a multi-homed site When a node connects to a multi-homed network, it may receive multiple IP addresses on this connected interface. These addresses can be either local IP addresses (behind a NAT) or public addresses. A traditional node setting up a connection, selects one of the available local addresses for this particular connection. This address cannot be changed for the existing connection. A HIP node experiencing similar site multi-homing is not limitedFrom -00 tothe one source address selected during the connection set up.-01 Thenodeactual protocol hasmultiple IP addressesbeen largely revised, based onone interface and the mapping between the Host Identity - Interface - IP addresses is a mapping from one to one to many. The used IP address can be changed while the connection exists. When configured multiple addresses to one interface,thenode can update this list of addresses to peer nodes. Thus, the different transit providers can be used according to policies definednew symmetric New SPI (NES) design adopted in thenode. The policies can be defined locallybase protocol draft version -08. There are no more separate REA, AC orthey can be received by other methods. (see policies, TBD) A.2 Transit providers with NATs A transit provider may have NAT boxes in the network. The HIP node connected to a site that is further connected to a transit provider using NATs, must getACR packets, but their functionality has been folded into theknowledge aboutNES packet. At theNAT box between itselfsame time, it has become possible to send REA parameters in R1 andthe peer node.I2. TheaddressForwarding Agent functionality was removed, since it looks like thatthe HIP node sends to the peer node mustit will bea public one, thus NATted address is not valid. The NAT box on the path must support address (and SPI) leasing for the HIP node. Whenmoved to the proposed HIPnode finds out thatResearch Group. Hence, thereis a NAT box, the host must get a leased address (or a set of addresses) from the NAT. These addresses are routable at thewill be two otherside of the NAT. They still need notdocuments related tobe globally routable as there may be another NAT box on the path.that, a simple Rendezvous server document (WG item) and a Forwarding Agent document (RG item). Appendix B. Implementation experiences Intellectual Property Statement The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. 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 Funding for the RFC Editor function is currently provided by the Internet Society.