123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851 |
- Network Working Group P. Eronen, Ed.
- Request for Comments: 4555 Nokia
- Category: Standards Track June 2006
- IKEv2 Mobility and Multihoming Protocol (MOBIKE)
- Status of This Memo
- This document specifies an Internet standards track protocol for the
- Internet community, and requests discussion and suggestions for
- improvements. Please refer to the current edition of the "Internet
- Official Protocol Standards" (STD 1) for the standardization state
- and status of this protocol. Distribution of this memo is unlimited.
- Copyright Notice
- Copyright (C) The Internet Society (2006).
- Abstract
- This document describes the MOBIKE protocol, a mobility and
- multihoming extension to Internet Key Exchange (IKEv2). MOBIKE
- allows the IP addresses associated with IKEv2 and tunnel mode IPsec
- Security Associations to change. A mobile Virtual Private Network
- (VPN) client could use MOBIKE to keep the connection with the VPN
- gateway active while moving from one address to another. Similarly,
- a multihomed host could use MOBIKE to move the traffic to a different
- interface if, for instance, the one currently being used stops
- working.
- Eronen Standards Track [Page 1]
- RFC 4555 MOBIKE Protocol June 2006
- Table of Contents
- 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
- 1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . 3
- 1.2. Scope and Limitations . . . . . . . . . . . . . . . . . . 4
- 1.3. Terminology and Notation . . . . . . . . . . . . . . . . . 4
- 2. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 5
- 2.1. Basic Operation . . . . . . . . . . . . . . . . . . . . . 5
- 2.2. Example Protocol Exchanges . . . . . . . . . . . . . . . . 6
- 2.3. MOBIKE and Network Address Translation (NAT) . . . . . . . 9
- 3. Protocol Exchanges . . . . . . . . . . . . . . . . . . . . . . 10
- 3.1. Initial IKE Exchange . . . . . . . . . . . . . . . . . . . 10
- 3.2. Signaling Support for MOBIKE . . . . . . . . . . . . . . . 10
- 3.3. Initial Tunnel Header Addresses . . . . . . . . . . . . . 11
- 3.4. Additional Addresses . . . . . . . . . . . . . . . . . . . 11
- 3.5. Changing Addresses in IPsec SAs . . . . . . . . . . . . . 12
- 3.6. Updating Additional Addresses . . . . . . . . . . . . . . 15
- 3.7. Return Routability Check . . . . . . . . . . . . . . . . . 17
- 3.8. Changes in NAT Mappings . . . . . . . . . . . . . . . . . 18
- 3.9. NAT Prohibition . . . . . . . . . . . . . . . . . . . . . 19
- 3.10. Path Testing . . . . . . . . . . . . . . . . . . . . . . . 20
- 3.11. Failure Recovery and Timeouts . . . . . . . . . . . . . . 20
- 3.12. Dead Peer Detection . . . . . . . . . . . . . . . . . . . 20
- 4. Payload Formats . . . . . . . . . . . . . . . . . . . . . . . 21
- 4.1. Notify Messages - Error Types . . . . . . . . . . . . . . 21
- 4.2. Notify Messages - Status Types . . . . . . . . . . . . . . 21
- 5. Security Considerations . . . . . . . . . . . . . . . . . . . 24
- 5.1. Traffic Redirection and Hijacking . . . . . . . . . . . . 24
- 5.2. IPsec Payload Protection . . . . . . . . . . . . . . . . . 24
- 5.3. Denial-of-Service Attacks against Third Parties . . . . . 25
- 5.4. Spoofing Network Connectivity Indications . . . . . . . . 26
- 5.5. Address and Topology Disclosure . . . . . . . . . . . . . 27
- 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28
- 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 29
- 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29
- 8.1. Normative References . . . . . . . . . . . . . . . . . . . 29
- 8.2. Informative References . . . . . . . . . . . . . . . . . . 29
- Appendix A. Implementation Considerations . . . . . . . . . . . . 31
- A.1. Links from SPD Cache to Outbound SAD Entries . . . . . . . 31
- A.2. Creating Outbound SAs . . . . . . . . . . . . . . . . . . 31
- Eronen Standards Track [Page 2]
- RFC 4555 MOBIKE Protocol June 2006
- 1. Introduction
- 1.1. Motivation
- IKEv2 is used for performing mutual authentication, as well as
- establishing and maintaining IPsec Security Associations (SAs). In
- the base IKEv2 protocol [IKEv2], the IKE SAs and tunnel mode IPsec
- SAs are created implicitly between the IP addresses that are used
- when the IKE_SA is established. These IP addresses are then used as
- the outer (tunnel header) addresses for tunnel mode IPsec packets
- (transport mode IPsec SAs are beyond the scope of this document).
- Currently, it is not possible to change these addresses after the
- IKE_SA has been created.
- There are scenarios where these IP addresses might change. One
- example is mobility: a host changes its point of network attachment
- and receives a new IP address. Another example is a multihoming host
- that would like to change to a different interface if, for instance,
- the currently used interface stops working for some reason.
- Although the problem can be solved by creating new IKE and IPsec SAs
- when the addresses need to be changed, this may not be optimal for
- several reasons. In some cases, creating a new IKE_SA may require
- user interaction for authentication, such as entering a code from a
- token card. Creating new SAs often involves expensive calculations
- and possibly a large number of round-trips. For these reasons, a
- mechanism for updating the IP addresses of existing IKE and IPsec SAs
- is needed. The MOBIKE protocol described in this document provides
- such a mechanism.
- The main scenario for MOBIKE is enabling a remote access VPN user to
- move from one address to another without re-establishing all security
- associations with the VPN gateway. For instance, a user could start
- from fixed Ethernet in the office and then disconnect the laptop and
- move to the office's wireless LAN. When the user leaves the office,
- the laptop could start using General Packet Radio Service (GPRS);
- when the user arrives home, the laptop could switch to the home
- wireless LAN. MOBIKE updates only the outer (tunnel header)
- addresses of IPsec SAs, and the addresses and other traffic selectors
- used inside the tunnel stay unchanged. Thus, mobility can be
- (mostly) invisible to applications and their connections using the
- VPN.
- Eronen Standards Track [Page 3]
- RFC 4555 MOBIKE Protocol June 2006
- MOBIKE also supports more complex scenarios where the VPN gateway
- also has several network interfaces: these interfaces could be
- connected to different networks or ISPs, they may be a mix of IPv4
- and IPv6 addresses, and the addresses may change over time.
- Furthermore, both parties could be VPN gateways relaying traffic for
- other parties.
- 1.2. Scope and Limitations
- This document focuses on the main scenario outlined above and
- supports only tunnel mode IPsec SAs.
- The mobility support in MOBIKE allows both parties to move, but does
- not provide a "rendezvous" mechanism that would allow simultaneous
- movement of both parties or discovery of the addresses when the
- IKE_SA is first established. Therefore, MOBIKE is best suited for
- situations where the address of at least one endpoint is relatively
- stable and can be discovered using existing mechanisms such as DNS
- (see Section 3.1).
- MOBIKE allows both parties to be multihomed; however, only one pair
- of addresses is used for an SA at a time. In particular, load
- balancing is beyond the scope of this specification.
- MOBIKE follows the IKEv2 practice where a response message is sent to
- the same address and port from which the request was received. This
- implies that MOBIKE does not work over address pairs that provide
- only unidirectional connectivity.
- Network Address Translators (NATs) introduce additional limitations
- beyond those listed above. For details, refer to Section 2.3.
- The base version of the MOBIKE protocol does not cover all potential
- future use scenarios, such as transport mode, application to securing
- SCTP, or optimizations desirable in specific circumstances. Future
- extensions may be defined later to support additional requirements.
- Please consult the MOBIKE design document [Design] for further
- information and rationale behind these limitations.
- 1.3. Terminology and Notation
- When messages containing IKEv2 payloads are described, optional
- payloads are shown in brackets (for instance, "[FOO]"), and a plus
- sign indicates that a payload can be repeated one or more times (for
- instance, "FOO+"). To provide context, some diagrams also show what
- existing IKEv2 payloads would typically be included in the exchanges.
- These payloads are shown for illustrative purposes only; see [IKEv2]
- for an authoritative description.
- Eronen Standards Track [Page 4]
- RFC 4555 MOBIKE Protocol June 2006
- When this document describes updating the source/destination
- addresses of an IPsec SA, it means updating IPsec-related state so
- that outgoing Encapsulating Security Payload (ESP)/Authentication
- Header (AH) packets use those addresses in the tunnel header.
- Depending on how the nominal divisions between Security Association
- Database (SAD), Security Policy Database (SPD), and Peer
- Authorization Database (PAD) described in [IPsecArch] are actually
- implemented, an implementation can have several different places that
- have to be updated.
- In this document, the term "initiator" means the party who originally
- initiated the first IKE_SA (in a series of possibly several rekeyed
- IKE_SAs); "responder" is the other peer. During the lifetime of the
- IKE_SA, both parties may initiate INFORMATIONAL or CREATE_CHILD_SA
- exchanges; in this case, the terms "exchange initiator" and "exchange
- responder" are used. The term "original initiator" (which in [IKEv2]
- refers to the party who started the latest IKE_SA rekeying) is not
- 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 [KEYWORDS].
- 2. Protocol Overview
- 2.1. Basic Operation
- MOBIKE allows both parties to have several addresses, and there are
- up to N*M pairs of IP addresses that could potentially be used. The
- decision of which of these pairs to use has to take into account
- several factors. First, the parties may have preferences about which
- interface should be used due to, for instance, performance and cost
- reasons. Second, the decision is constrained by the fact that some
- of the pairs may not work at all due to incompatible IP versions,
- outages in the network, problems at the local link at either end, and
- so on.
- MOBIKE solves this problem by taking a simple approach: the party
- that initiated the IKE_SA (the "client" in a remote access VPN
- scenario) is responsible for deciding which address pair is used for
- the IPsec SAs and for collecting the information it needs to make
- this decision (such as determining which address pairs work or do not
- work). The other party (the "gateway" in a remote access VPN
- scenario) simply tells the initiator what addresses it has, but does
- not update the IPsec SAs until it receives a message from the
- initiator to do so. This approach applies to the addresses in the
- IPsec SAs; in the IKE_SA case, the exchange initiator can decide
- which addresses are used.
- Eronen Standards Track [Page 5]
- RFC 4555 MOBIKE Protocol June 2006
- Making the decision at the initiator is consistent with how normal
- IKEv2 works: the initiator decides which addresses it uses when
- contacting the responder. It also makes sense, especially when the
- initiator is a mobile node: it is in a better position to decide
- which of its network interfaces should be used for both upstream and
- downstream traffic.
- The details of exactly how the initiator makes the decision, what
- information is used in making it, how the information is collected,
- how preferences affect the decision, and when a decision needs to be
- changed are largely beyond the scope of MOBIKE. This does not mean
- that these details are unimportant: on the contrary, they are likely
- to be crucial in any real system. However, MOBIKE is concerned with
- these details only to the extent that they are visible in IKEv2/IPsec
- messages exchanged between the peers (and thus need to be
- standardized to ensure interoperability).
- Many of these issues are not specific to MOBIKE, but are common with
- the use of existing hosts in dynamic environments or with mobility
- protocols such as Mobile IP [MIP4] [MIP6]. A number of mechanisms
- already exist or are being developed to deal with these issues. For
- instance, link-layer and IP-layer mechanisms can be used to track the
- status of connectivity within the local link [RFC2461]; movement
- detection is being specified for both IPv4 and IPv6 in [DNA4],
- [DNA6], and so on.
- Naturally, updating the addresses of IPsec SAs has to take into
- account several security considerations. MOBIKE includes two
- features designed to address these considerations. First, a "return
- routability" check can be used to verify the addresses provided by
- the peer. This makes it more difficult to flood third parties with
- large amounts of traffic. Second, a "NAT prohibition" feature
- ensures that IP addresses have not been modified by NATs, IPv4/IPv6
- translation agents, or other similar devices. This feature is
- enabled only when NAT Traversal is not used.
- 2.2. Example Protocol Exchanges
- A simple MOBIKE exchange in a mobile scenario is illustrated below.
- The notation is based on [IKEv2], Section 1.2. In addition, the
- source/destination IP addresses and ports are shown for each packet:
- here IP_I1, IP_I2, IP_R1, and IP_R2 represent IP addresses used by
- the initiator and the responder.
- Eronen Standards Track [Page 6]
- RFC 4555 MOBIKE Protocol June 2006
- Initiator Responder
- ----------- -----------
- 1) (IP_I1:500 -> IP_R1:500)
- HDR, SAi1, KEi, Ni,
- N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP) -->
- <-- (IP_R1:500 -> IP_I1:500)
- HDR, SAr1, KEr, Nr,
- N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP)
- 2) (IP_I1:4500 -> IP_R1:4500)
- HDR, SK { IDi, CERT, AUTH,
- CP(CFG_REQUEST),
- SAi2, TSi, TSr,
- N(MOBIKE_SUPPORTED) } -->
- <-- (IP_R1:4500 -> IP_I1:4500)
- HDR, SK { IDr, CERT, AUTH,
- CP(CFG_REPLY),
- SAr2, TSi, TSr,
- N(MOBIKE_SUPPORTED) }
- (Initiator gets information from lower layers that its attachment
- point and address have changed.)
- 3) (IP_I2:4500 -> IP_R1:4500)
- HDR, SK { N(UPDATE_SA_ADDRESSES),
- N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP) } -->
- <-- (IP_R1:4500 -> IP_I2:4500)
- HDR, SK { N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP) }
- (Responder verifies that the initiator has given it a correct IP
- address.)
- 4) <-- (IP_R1:4500 -> IP_I2:4500)
- HDR, SK { N(COOKIE2) }
- (IP_I2:4500 -> IP_R1:4500)
- HDR, SK { N(COOKIE2) } -->
- Step 1 is the normal IKE_INIT exchange. In step 2, the peers inform
- each other that they support MOBIKE. In step 3, the initiator
- notices a change in its own address, and informs the responder about
- Eronen Standards Track [Page 7]
- RFC 4555 MOBIKE Protocol June 2006
- this by sending an INFORMATIONAL request containing the
- UPDATE_SA_ADDRESSES notification. The request is sent using the new
- IP address. At this point, it also starts to use the new address as
- a source address in its own outgoing ESP traffic. Upon receiving the
- UPDATE_SA_ADDRESSES notification, the responder records the new
- address and, if it is required by policy, performs a return
- routability check of the address. When this check (step 4)
- completes, the responder starts to use the new address as the
- destination for its outgoing ESP traffic.
- Another protocol run in a multihoming scenario is illustrated below.
- In this scenario, the initiator has one address but the responder has
- two.
- Initiator Responder
- ----------- -----------
- 1) (IP_I1:500 -> IP_R1:500)
- HDR, SAi1, KEi, Ni,
- N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP) -->
- <-- (IP_R1:500 -> IP_I1:500)
- HDR, SAr1, KEr, Nr,
- N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP)
- 2) (IP_I1:4500 -> IP_R1:4500)
- HDR, SK { IDi, CERT, AUTH,
- CP(CFG_REQUEST),
- SAi2, TSi, TSr,
- N(MOBIKE_SUPPORTED) } -->
- <-- (IP_R1:4500 -> IP_I1:4500)
- HDR, SK { IDr, CERT, AUTH,
- CP(CFG_REPLY),
- SAr2, TSi, TSr,
- N(MOBIKE_SUPPORTED),
- N(ADDITIONAL_IP4_ADDRESS) }
- (The initiator suspects a problem in the currently used address pair
- and probes its liveness.)
- Eronen Standards Track [Page 8]
- RFC 4555 MOBIKE Protocol June 2006
- 3) (IP_I1:4500 -> IP_R1:4500)
- HDR, SK { N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP) } -->
- (IP_I1:4500 -> IP_R1:4500)
- HDR, SK { N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP) } -->
- ...
- (Eventually, the initiator gives up on the current address pair and
- tests the other available address pair.)
- 4) (IP_I1:4500 -> IP_R2:4500)
- HDR, SK { N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP) }
- <-- (IP_R2:4500 -> IP_I1:4500)
- HDR, SK { N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP) }
- (This worked, and the initiator requests the peer to switch to new
- addresses.)
- 5) (IP_I1:4500 -> IP_R2:4500)
- HDR, SK { N(UPDATE_SA_ADDRESSES),
- N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP),
- N(COOKIE2) } -->
- <-- (IP_R2:4500 -> IP_I1:4500)
- HDR, SK { N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP),
- N(COOKIE2) }
- 2.3. MOBIKE and Network Address Translation (NAT)
- In some MOBIKE scenarios, the network may contain NATs or stateful
- packet filters (for brevity, the rest of this document simply
- describes NATs). The NAT Traversal feature specified in [IKEv2]
- allows IKEv2 to work through NATs in many cases, and MOBIKE can
- leverage this functionality: when the addresses used for IPsec SAs
- are changed, MOBIKE can enable or disable IKEv2 NAT Traversal, as
- needed.
- Nevertheless, there are some limitations because NATs usually
- introduce an asymmetry into the network: only packets coming from the
- "inside" cause state to be created. This asymmetry leads to
- Eronen Standards Track [Page 9]
- RFC 4555 MOBIKE Protocol June 2006
- restrictions on what MOBIKE can do. To give a concrete example,
- consider a situation where both peers have only a single address, and
- the initiator is behind a NAT. If the responder's address now
- changes, it needs to send a packet to the initiator using its new
- address. However, if the NAT is, for instance, of the common
- "restricted cone" type (see [STUN] for one description of different
- NAT types), this is not possible. The NAT will drop packets sent
- from the new address (unless the initiator has previously sent a
- packet to that address -- which it cannot do until it knows the
- address).
- For simplicity, MOBIKE does not attempt to handle all possible NAT-
- related scenarios. Instead, MOBIKE assumes that if NATs are present,
- the initiator is the party "behind" the NAT, and the case where the
- responder's addresses change is not fully supported (meaning that no
- special effort is made to support this functionality). Responders
- may also be unaware of NATs or specific types of NATs they are
- behind. However, when a change has occurred that will cause a loss
- of connectivity, MOBIKE responders will still attempt to inform the
- initiator of the change. Depending on, for instance, the exact type
- of NAT, it may or may not succeed. However, analyzing the exact
- circumstances when this will or will not work is not done in this
- document.
- 3. Protocol Exchanges
- 3.1. Initial IKE Exchange
- The initiator is responsible for finding a working pair of addresses
- so that the initial IKE exchange can be carried out. Any information
- from MOBIKE extensions will only be available later, when the
- exchange has progressed far enough. Exactly how the addresses used
- for the initial exchange are discovered is beyond the scope of this
- specification; typical sources of information include local
- configuration and DNS.
- If either or both of the peers have multiple addresses, some
- combinations may not work. Thus, the initiator SHOULD try various
- source and destination address combinations when retransmitting the
- IKE_SA_INIT request.
- 3.2. Signaling Support for MOBIKE
- Implementations that wish to use MOBIKE for a particular IKE_SA MUST
- include a MOBIKE_SUPPORTED notification in the IKE_AUTH exchange (in
- case of multiple IKE_AUTH exchanges, in the message containing the SA
- payload).
- Eronen Standards Track [Page 10]
- RFC 4555 MOBIKE Protocol June 2006
- The format of the MOBIKE_SUPPORTED notification is described in
- Section 4.
- 3.3. Initial Tunnel Header Addresses
- When an IPsec SA is created, the tunnel header IP addresses (and
- port, if doing UDP encapsulation) are taken from the IKE_SA, not the
- IP header of the IKEv2 message requesting the IPsec SA. The
- addresses in the IKE_SA are initialized from the IP header of the
- first IKE_AUTH request.
- The addresses are taken from the IKE_AUTH request because IKEv2
- requires changing from port 500 to 4500 if a NAT is discovered. To
- simplify things, implementations that support both this specification
- and NAT Traversal MUST change to port 4500 if the correspondent also
- supports both, even if no NAT was detected between them (this way,
- there is no need to change the ports later if a NAT is detected on
- some other path).
- 3.4. Additional Addresses
- Both the initiator and responder MAY include one or more
- ADDITIONAL_IP4_ADDRESS and/or ADDITIONAL_IP6_ADDRESS notifications in
- the IKE_AUTH exchange (in case of multiple IKE_AUTH exchanges, in the
- message containing the SA payload). Here "ADDITIONAL_*_ADDRESS"
- means either an ADDITIONAL_IP4_ADDRESS or an ADDITIONAL_IP6_ADDRESS
- notification.
- Initiator Responder
- ----------- -----------
- HDR, SK { IDi, [CERT], [IDr], AUTH,
- [CP(CFG_REQUEST)]
- SAi2, TSi, TSr,
- N(MOBIKE_SUPPORTED),
- [N(ADDITIONAL_*_ADDRESS)+] } -->
- <-- HDR, SK { IDr, [CERT], AUTH,
- [CP(CFG_REPLY)],
- SAr2, TSi, TSr,
- N(MOBIKE_SUPPORTED)
- [N(ADDITIONAL_*_ADDRESS)+] }
- The recipient stores this information, but no other action is taken
- at this time.
- Although both the initiator and responder maintain a set of peer
- addresses (logically associated with the IKE_SA), it is important to
- note that they use this information for slightly different purposes.
- Eronen Standards Track [Page 11]
- RFC 4555 MOBIKE Protocol June 2006
- The initiator uses the set of responder addresses as an input to its
- address selection policy; it may, at some later point, decide to move
- the IPsec traffic to one of these addresses using the procedure
- described in Section 3.5. The responder normally does not use the
- set of initiator addresses for anything: the addresses are used only
- when the responder's own addresses change (see Section 3.6).
- The set of addresses available to the peers can change during the
- lifetime of the IKE_SA. The procedure for updating this information
- is described in Section 3.6.
- Note that if some of the initiator's interfaces are behind a NAT
- (from the responder's point of view), the addresses received by the
- responder will be incorrect. This means the procedure for changing
- responder addresses described in Section 3.6 does not fully work when
- the initiator is behind a NAT. For the same reason, the peers also
- SHOULD NOT use this information for any other purpose than what is
- explicitly described either in this document or a future
- specification updating it.
- 3.5. Changing Addresses in IPsec SAs
- In MOBIKE, the initiator decides what addresses are used in the IPsec
- SAs. That is, the responder does not normally update any IPsec SAs
- without receiving an explicit UPDATE_SA_ADDRESSES request from the
- initiator. (As described below, the responder can, however, update
- the IKE_SA in some circumstances.)
- The reasons why the initiator wishes to change the addresses are
- largely beyond the scope of MOBIKE. Typically, triggers include
- information received from lower layers, such as changes in IP
- addresses or link-down indications. Some of this information can be
- unreliable: for instance, ICMP messages could be spoofed by an
- attacker. Unreliable information SHOULD be treated only as a hint
- that there might be a problem, and the initiator SHOULD trigger Dead
- Peer Detection (that is, send an INFORMATIONAL request) to determine
- if the current path is still usable.
- Changing addresses can also be triggered by events within IKEv2. At
- least the following events can cause the initiator to re-evaluate its
- local address selection policy, possibly leading to changing the
- addresses.
- o An IKEv2 request has been re-transmitted several times, but no
- valid reply has been received. This suggests the current path is
- no longer working.
- Eronen Standards Track [Page 12]
- RFC 4555 MOBIKE Protocol June 2006
- o An INFORMATIONAL request containing an ADDITIONAL_IP4_ADDRESS,
- ADDITIONAL_IP6_ADDRESS, or NO_ADDITIONAL_ADDRESSES notification is
- received. This means the peer's addresses may have changed. This
- is particularly important if the announced set of addresses no
- longer contains the currently used address.
- o An UNACCEPTABLE_ADDRESSES notification is received as a response
- to address update request (described below).
- o The initiator receives a NAT_DETECTION_DESTINATION_IP notification
- that does not match the previous UPDATE_SA_ADDRESSES response (see
- Section 3.8 for a more detailed description).
- The description in the rest of this section assumes that the
- initiator has already decided what the new addresses should be. When
- this decision has been made, the initiator:
- o Updates the IKE_SA with the new addresses, and sets the
- "pending_update" flag in the IKE_SA.
- o Updates the IPsec SAs associated with this IKE_SA with the new
- addresses (unless the initiator's policy requires a return
- routability check before updating the IPsec SAs, and the check has
- not been done for this responder address yet).
- o If the IPsec SAs were updated in the previous step: If NAT
- Traversal is not enabled, and the responder supports NAT Traversal
- (as indicated by NAT detection payloads in the IKE_SA_INIT
- exchange), and the initiator either suspects or knows that a NAT
- is likely to be present, enables NAT Traversal (that is, enables
- UDP encapsulation of outgoing ESP packets and sending of NAT-
- Keepalive packets).
- o If there are outstanding IKEv2 requests (requests for which the
- initiator has not yet received a reply), continues retransmitting
- them using the addresses in the IKE_SA (the new addresses).
- o When the window size allows, sends an INFORMATIONAL request
- containing the UPDATE_SA_ADDRESSES notification (which does not
- contain any data), and clears the "pending_update" flag. The
- request will be as follows:
- Eronen Standards Track [Page 13]
- RFC 4555 MOBIKE Protocol June 2006
- Initiator Responder
- ----------- -----------
- HDR, SK { N(UPDATE_SA_ADDRESSES),
- [N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP)],
- [N(NO_NATS_ALLOWED)],
- [N(COOKIE2)] } -->
- o If a new address change occurs while waiting for the response,
- starts again from the first step (and ignores responses to this
- UPDATE_SA_ADDRESSES request).
- When processing an INFORMATIONAL request containing the
- UPDATE_SA_ADDRESSES notification, the responder:
- o Determines whether it has already received a newer
- UPDATE_SA_ADDRESSES request than this one (if the responder uses a
- window size greater than one, it is possible that requests are
- received out of order). If it has, a normal response message
- (described below) is sent, but no other action is taken.
- o If the NO_NATS_ALLOWED notification is present, processes it as
- described in Section 3.9.
- o Checks that the (source IP address, destination IP address) pair
- in the IP header is acceptable according to local policy. If it
- is not, replies with a message containing the
- UNACCEPTABLE_ADDRESSES notification (and possibly COOKIE2).
- o Updates the IP addresses in the IKE_SA with the values from the IP
- header. (Using the address from the IP header is consistent with
- normal IKEv2, and allows IKEv2 to work with NATs without needing
- unilateral self-address fixing [UNSAF].)
- o Replies with an INFORMATIONAL response:
- Initiator Responder
- ----------- -----------
- <-- HDR, SK { [N(NAT_DETECTION_SOURCE_IP),
- N(NAT_DETECTION_DESTINATION_IP)],
- [N(COOKIE2)] }
- o If necessary, initiates a return routability check for the new
- initiator address (see Section 3.7) and waits until the check is
- completed.
- o Updates the IPsec SAs associated with this IKE_SA with the new
- addresses.
- Eronen Standards Track [Page 14]
- RFC 4555 MOBIKE Protocol June 2006
- o If NAT Traversal is supported and NAT detection payloads were
- included, enables or disables NAT Traversal.
- When the initiator receives the reply:
- o If an address change has occurred after the request was first
- sent, no MOBIKE processing is done for the reply message because a
- new UPDATE_SA_ADDRESSES is going to be sent (or has already been
- sent, if window size greater than one is in use).
- o If the response contains the UNEXPECTED_NAT_DETECTED notification,
- the initiator processes the response as described in Section 3.9.
- o If the response contains an UNACCEPTABLE_ADDRESSES notification,
- the initiator MAY select another addresses and retry the exchange,
- keep on using the previously used addresses, or disconnect.
- o It updates the IPsec SAs associated with this IKE_SA with the new
- addresses (unless this was already done earlier before sending the
- request; this is the case when no return routability check was
- required).
- o If NAT Traversal is supported and NAT detection payloads were
- included, the initiator enables or disables NAT Traversal.
- There is one exception to the rule that the responder never updates
- any IPsec SAs without receiving an UPDATE_SA_ADDRESSES request. If
- the source address that the responder is currently using becomes
- unavailable (i.e., sending packets using that source address is no
- longer possible), the responder is allowed to update the IPsec SAs to
- use some other address (in addition to initiating the procedure
- described in the next section).
- 3.6. Updating Additional Addresses
- As described in Section 3.4, both the initiator and responder can
- send a list of additional addresses in the IKE_AUTH exchange. This
- information can be updated by sending an INFORMATIONAL exchange
- request message that contains either one or more
- ADDITIONAL_IP4_ADDRESS/ADDITIONAL_IP6_ADDRESS notifications or the
- NO_ADDITIONAL_ADDRESSES notification.
- If the exchange initiator has only a single IP address, it is placed
- in the IP header, and the message contains the
- NO_ADDITIONAL_ADDRESSES notification. If the exchange initiator has
- several addresses, one of them is placed in the IP header, and the
- rest in ADDITIONAL_IP4_ADDRESS/ADDITIONAL_IP6_ADDRESS notifications.
- Eronen Standards Track [Page 15]
- RFC 4555 MOBIKE Protocol June 2006
- The new list of addresses replaces the old information (in other
- words, there are no separate add/delete operations; instead, the
- complete list is sent every time these notifications are used).
- The message exchange will look as follows:
- Initiator Responder
- ----------- -----------
- HDR, SK { [N(ADDITIONAL_*_ADDRESS)+],
- [N(NO_ADDITIONAL_ADDRESSES)],
- [N(NO_NATS_ALLOWED)],
- [N(COOKIE2)] } -->
- <-- HDR, SK { [N(COOKIE2)] }
- When a request containing an ADDITIONAL_IP4_ADDRESS,
- ADDITIONAL_IP6_ADDRESS, or NO_ADDITIONAL_ADDRESSES notification is
- received, the exchange responder:
- o Determines whether it has already received a newer request to
- update the addresses (if a window size greater than one is used,
- it is possible that the requests are received out of order). If
- it has, a response message is sent, but the address set is not
- updated.
- o If the NO_NATS_ALLOWED notification is present, processes it as
- described in Section 3.9.
- o Updates the set of peer addresses based on the IP header and the
- ADDITIONAL_IP4_ADDRESS, ADDITIONAL_IP6_ADDRESS, and
- NO_ADDITIONAL_ADDRESSES notifications.
- o Sends a response.
- The initiator MAY include these notifications in the same request as
- UPDATE_SA_ADDRESSES.
- If the request to update the addresses is retransmitted using several
- different source addresses, a new INFORMATIONAL request MUST be sent.
- There is one additional complication: when the responder wants to
- update the address set, the currently used addresses may no longer
- work. In this case, the responder uses the additional address list
- received from the initiator, and the list of its own addresses, to
- determine which addresses to use for sending the INFORMATIONAL
- request. This is the only time the responder uses the additional
- address list received from the initiator.
- Eronen Standards Track [Page 16]
- RFC 4555 MOBIKE Protocol June 2006
- Note that both peers can have their own policies about what addresses
- are acceptable to use, and certain types of policies may simplify
- implementation. For instance, if the responder has a single fixed
- address, it does not need to process the ADDITIONAL_IP4_ADDRESS and
- ADDITIONAL_IP6_ADDRESS notifications it receives (beyond ignoring
- unrecognized status notifications, as already required in [IKEv2]).
- Furthermore, if the initiator has a policy saying that only the
- responder address specified in local configuration is acceptable, it
- does not have to send its own additional addresses to the responder
- (since the responder does not need them except when changing its own
- address).
- 3.7. Return Routability Check
- Both parties can optionally verify that the other party can actually
- receive packets at the claimed address. By default, this "return
- routability check" SHOULD be performed. In environments where the
- peer is expected to be well-behaved (many corporate VPNs, for
- instance), or the address can be verified by some other means (e.g.,
- a certificate issued by an authority trusted for this purpose), the
- return routability check MAY be omitted.
- The check can be done before updating the IPsec SAs, immediately
- after updating them, or continuously during the connection. By
- default, the return routability check SHOULD be done before updating
- the IPsec SAs, but in some environments it MAY be postponed until
- after the IPsec SAs have been updated.
- Any INFORMATIONAL exchange can be used for return routability
- purposes, with one exception (described later in this section): when
- a valid response is received, we know the other party can receive
- packets at the claimed address.
- To ensure that the peer cannot generate the correct INFORMATIONAL
- response without seeing the request, a new payload is added to
- INFORMATIONAL messages. The sender of an INFORMATIONAL request MAY
- include a COOKIE2 notification, and if included, the recipient of an
- INFORMATIONAL request MUST copy the notification as-is to the
- response. When processing the response, the original sender MUST
- verify that the value is the same one as sent. If the values do not
- match, the IKE_SA MUST be closed. (See also Section 4.2.5 for the
- format of the COOKIE2 notification.)
- Eronen Standards Track [Page 17]
- RFC 4555 MOBIKE Protocol June 2006
- The exception mentioned earlier is as follows: If the same
- INFORMATIONAL request has been sent to several different addresses
- (i.e., the destination address in the IKE_SA has been updated after
- the request was first sent), receiving the INFORMATIONAL response
- does not tell which address is the working one. In this case, a new
- INFORMATIONAL request needs to be sent to check return routability.
- 3.8. Changes in NAT Mappings
- IKEv2 performs Dead Peer Detection (DPD) if there has recently been
- only outgoing traffic on all of the SAs associated with the IKE_SA.
- In MOBIKE, these messages can also be used to detect if NAT mappings
- have changed (for example, if the keepalive interval is too long, or
- the NAT box is rebooted). More specifically, if both peers support
- both this specification and NAT Traversal, the
- NAT_DETECTION_SOURCE_IP and NAT_DETECTION_DESTINATION_IP
- notifications MAY be included in any INFORMATIONAL request; if the
- request includes them, the responder MUST also include them in the
- response (but no other action is taken, unless otherwise specified).
- When the initiator is behind a NAT (as detected earlier using the
- NAT_DETECTION_SOURCE_IP and NAT_DETECTION_DESTINATION_IP
- notifications), it SHOULD include these notifications in DPD messages
- and compare the received NAT_DETECTION_DESTINATION_IP notifications
- with the value from the previous UPDATE_SA_ADDRESSES response (or the
- IKE_SA_INIT response). If the values do not match, the IP address
- and/or port seen by the responder has changed, and the initiator
- SHOULD send UPDATE_SA_ADDRESSES as described in Section 3.5. If the
- initiator suspects that the NAT mapping has changed, it MAY also skip
- the detection step and send UPDATE_SA_ADDRESSES immediately. This
- saves one roundtrip if the NAT mapping has indeed changed.
- Note that this approach to detecting NAT mapping changes may cause an
- extra address update when the IKE_SA is rekeyed. This is because the
- NAT_DETECTION_DESTINATION_IP hash also includes the IKE Security
- Parameter Indexes (SPIs), which change when performing rekeying.
- This unnecessary update is harmless, however.
- When MOBIKE is in use, the dynamic updates (specified in [IKEv2],
- Section 2.23), where the peer address and port are updated from the
- last valid authenticated packet, work in a slightly different
- fashion. The host not behind a NAT MUST NOT use these dynamic
- updates for IKEv2 packets, but MAY use them for ESP packets. This
- ensures that an INFORMATIONAL exchange that does not contain
- UPDATE_SA_ADDRESSES does not cause any changes, allowing it to be
- used for, e.g., testing whether a particular path works.
- Eronen Standards Track [Page 18]
- RFC 4555 MOBIKE Protocol June 2006
- 3.9. NAT Prohibition
- Basic IKEv2/IPsec without NAT Traversal support may work across some
- types of one-to-one "basic" NATs and IPv4/IPv6 translation agents in
- tunnel mode. This is because the IKEv2 integrity checksum does not
- cover the addresses in the IP header. This may be considered a
- problem in some circumstances, because in some sense any modification
- of the IP addresses can be considered an attack.
- This specification addresses the issue by protecting the IP addresses
- when NAT Traversal has not been explicitly enabled. This means that
- MOBIKE without NAT Traversal support will not work if the paths
- contain NATs, IPv4/IPv6 translation agents, or other nodes that
- modify the addresses in the IP header. This feature is mainly
- intended for IPv6 and site-to-site VPN cases, where the
- administrators may know beforehand that NATs are not present, and
- thus any modification to the packet can be considered an attack.
- More specifically, when NAT Traversal is not enabled, all messages
- that can update the addresses associated with the IKE_SA and/or IPsec
- SAs (the first IKE_AUTH request and all INFORMATIONAL requests that
- contain any of the following notifications: UPDATE_SA_ADDRESSES,
- ADDITIONAL_IP4_ADDRESS, ADDITIONAL_IP6_ADDRESS,
- NO_ADDITIONAL_ADDRESSES) MUST also include a NO_NATS_ALLOWED
- notification. The exchange responder MUST verify that the contents
- of the NO_NATS_ALLOWED notification match the addresses in the IP
- header. If they do not match, a response containing an
- UNEXPECTED_NAT_DETECTED notification is sent. The response message
- is sent to the address and port that the corresponding request came
- from, not to the address contained in the NO_NATS_ALLOWED
- notification.
- If the exchange initiator receives an UNEXPECTED_NAT_DETECTED
- notification in response to its INFORMATIONAL request, it SHOULD
- retry the operation several times using new INFORMATIONAL requests.
- Similarly, if the initiator receives UNEXPECTED_NAT_DETECTED in the
- IKE_AUTH exchange, it SHOULD retry IKE_SA establishment several
- times, starting from a new IKE_SA_INIT request. This ensures that an
- attacker who is able to modify only a single packet does not
- unnecessarily cause a path to remain unused. The exact number of
- retries is not specified in this document because it does not affect
- interoperability. However, because the IKE message will also be
- rejected if the attacker modifies the integrity checksum field, a
- reasonable number here would be the number of retries that is being
- used for normal retransmissions.
- Eronen Standards Track [Page 19]
- RFC 4555 MOBIKE Protocol June 2006
- If an UNEXPECTED_NAT_DETECTED notification is sent, the exchange
- responder MUST NOT use the contents of the NO_NATS_ALLOWED
- notification for any other purpose than possibly logging the
- information for troubleshooting purposes.
- 3.10. Path Testing
- IKEv2 Dead Peer Detection allows the peers to detect if the currently
- used path has stopped working. However, if either of the peers has
- several addresses, Dead Peer Detection alone does not tell which of
- the other paths might work.
- If required by its address selection policy, the initiator can use
- normal IKEv2 INFORMATIONAL request/response messages to test whether
- a certain path works. Implementations MAY do path testing even if
- the path currently being used is working to, for example, detect when
- a better (but previously unavailable) path becomes available.
- 3.11. Failure Recovery and Timeouts
- In MOBIKE, the initiator is responsible for detecting and recovering
- from most failures.
- To give the initiator enough time to detect the error, the responder
- SHOULD use relatively long timeout intervals when, for instance,
- retransmitting IKEv2 requests or deciding whether to initiate Dead
- Peer Detection. While no specific timeout lengths are required, it
- is suggested that responders continue retransmitting IKEv2 requests
- for at least five minutes before giving up.
- 3.12. Dead Peer Detection
- MOBIKE uses the same Dead Peer Detection method as normal IKEv2, but
- as addresses may change, it is not sufficient to just verify that the
- peer is alive, but also that it is synchronized with the address
- updates and has not, for instance, ignored an address update due to
- failure to complete return routability test. This means that when
- there are incoming IPsec packets, MOBIKE nodes SHOULD inspect the
- addresses used in those packets and determine that they correspond to
- those that should be employed. If they do not, such packets SHOULD
- NOT be used as evidence that the peer is able to communicate with
- this node and or that the peer has received all address updates.
- Eronen Standards Track [Page 20]
- RFC 4555 MOBIKE Protocol June 2006
- 4. Payload Formats
- This specification defines several new IKEv2 Notify payload types.
- See [IKEv2], Section 3.10, for a general description of the Notify
- payload.
- 4.1. Notify Messages - Error Types
- 4.1.1. UNACCEPTABLE_ADDRESSES Notify Payload
- The responder can include this notification in an INFORMATIONAL
- exchange response to indicate that the address change in the
- corresponding request message (which contained an UPDATE_SA_ADDRESSES
- notification) was not carried out.
- The Notify Message Type for UNACCEPTABLE_ADDRESSES is 40. The
- Protocol ID and SPI Size fields are set to zero. There is no data
- associated with this Notify type.
- 4.1.2. UNEXPECTED_NAT_DETECTED Notify Payload
- See Section 3.9 for a description of this notification.
- The Notify Message Type for UNEXPECTED_NAT_DETECTED is 41. The
- Protocol ID and SPI Size fields are set to zero. There is no data
- associated with this Notify type.
- 4.2. Notify Messages - Status Types
- 4.2.1. MOBIKE_SUPPORTED Notify Payload
- The MOBIKE_SUPPORTED notification is included in the IKE_AUTH
- exchange to indicate that the implementation supports this
- specification.
- The Notify Message Type for MOBIKE_SUPPORTED is 16396. The Protocol
- ID and SPI Size fields are set to zero. The notification data field
- MUST be left empty (zero-length) when sending, and its contents (if
- any) MUST be ignored when this notification is received. This allows
- the field to be used by future versions of this protocol.
- 4.2.2. ADDITIONAL_IP4_ADDRESS and ADDITIONAL_IP6_ADDRESS Notify
- Payloads
- Both parties can include ADDITIONAL_IP4_ADDRESS and/or
- ADDITIONAL_IP6_ADDRESS notifications in the IKE_AUTH exchange and
- INFORMATIONAL exchange request messages; see Section 3.4 and
- Section 3.6 for more detailed description.
- Eronen Standards Track [Page 21]
- RFC 4555 MOBIKE Protocol June 2006
- The Notify Message Types for ADDITIONAL_IP4_ADDRESS and
- ADDITIONAL_IP6_ADDRESS are 16397 and 16398, respectively. The
- Protocol ID and SPI Size fields are set to zero. The data associated
- with these Notify types is either a four-octet IPv4 address or a
- 16-octet IPv6 address.
- 4.2.3. NO_ADDITIONAL_ADDRESSES Notify Payload
- The NO_ADDITIONAL_ADDRESSES notification can be included in an
- INFORMATIONAL exchange request message to indicate that the exchange
- initiator does not have addresses beyond the one used in the exchange
- (see Section 3.6 for more detailed description).
- The Notify Message Type for NO_ADDITIONAL_ADDRESSES is 16399. The
- Protocol ID and SPI Size fields are set to zero. There is no data
- associated with this Notify type.
- 4.2.4. UPDATE_SA_ADDRESSES Notify Payload
- This notification is included in INFORMATIONAL exchange requests sent
- by the initiator to update addresses of the IKE_SA and IPsec SAs (see
- Section 3.5).
- The Notify Message Type for UPDATE_SA_ADDRESSES is 16400. The
- Protocol ID and SPI Size fields are set to zero. There is no data
- associated with this Notify type.
- 4.2.5. COOKIE2 Notify Payload
- This notification MAY be included in any INFORMATIONAL request for
- return routability check purposes (see Section 3.7). If the
- INFORMATIONAL request includes COOKIE2, the exchange responder MUST
- copy the notification to the response message.
- The data associated with this notification MUST be between 8 and 64
- octets in length (inclusive), and MUST be chosen by the exchange
- initiator in a way that is unpredictable to the exchange responder.
- The Notify Message Type for this message is 16401. The Protocol ID
- and SPI Size fields are set to zero.
- 4.2.6. NO_NATS_ALLOWED Notify Payload
- See Section 3.9 for a description of this notification.
- The Notify Message Type for this message is 16402. The notification
- data contains the IP addresses and ports from/to which the packet was
- sent. For IPv4, the notification data is 12 octets long and is
- defined as follows:
- Eronen Standards Track [Page 22]
- RFC 4555 MOBIKE Protocol June 2006
- 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
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! Source IPv4 address !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! Destination IPv4 address !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! Source port ! Destination port !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- For IPv6, the notification data is 36 octets long and is defined as
- follows:
- 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! !
- ! Source IPv6 address !
- ! !
- ! !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! !
- ! Destination IPv6 address !
- ! !
- ! !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! Source port ! Destination port !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- The Protocol ID and SPI Size fields are set to zero.
- Eronen Standards Track [Page 23]
- RFC 4555 MOBIKE Protocol June 2006
- 5. Security Considerations
- The main goals of this specification are to maintain the security
- offered by usual IKEv2 procedures and to counter mobility-related
- threats in an appropriate manner. This section describes new
- security considerations introduced by MOBIKE. See [IKEv2] for
- security considerations for IKEv2 in general.
- 5.1. Traffic Redirection and Hijacking
- MOBIKE payloads relating to updating addresses are encrypted,
- integrity protected, and replay protected using the IKE_SA. This
- assures that no one except the participants can, for instance, give a
- control message to change the addresses.
- However, as with normal IKEv2, the actual IP addresses in the IP
- header are not covered by the integrity protection. This means that
- a NAT between the parties (or an attacker acting as a NAT) can modify
- the addresses and cause incorrect tunnel header (outer) IP addresses
- to be used for IPsec SAs. The scope of this attack is limited mainly
- to denial of service because all traffic is protected using IPsec.
- This attack can only be launched by on-path attackers that are
- capable of modifying IKEv2 messages carrying NAT detection payloads
- (such as Dead Peer Detection messages). By modifying the IP header
- of these packets, the attackers can lead the peers to believe a new
- NAT or a changed NAT binding exists between them. The attack can
- continue as long as the attacker is on the path, modifying the IKEv2
- messages. If this is no longer the case, IKEv2 and MOBIKE mechanisms
- designed to detect NAT mapping changes will eventually recognize that
- the intended traffic is not getting through, and will update the
- addresses appropriately.
- MOBIKE introduces the NO_NATS_ALLOWED notification that is used to
- detect modification, by outsiders, of the addresses in the IP header.
- When this notification is used, communication through NATs and other
- address translators is impossible, so it is sent only when not doing
- NAT Traversal. This feature is mainly intended for IPv6 and site-to-
- site VPN cases, where the administrators may know beforehand that
- NATs are not present.
- 5.2. IPsec Payload Protection
- The use of IPsec protection on payload traffic protects the
- participants against disclosure of the contents of the traffic,
- should the traffic end up in an incorrect destination or be subject
- to eavesdropping.
- Eronen Standards Track [Page 24]
- RFC 4555 MOBIKE Protocol June 2006
- However, security associations originally created for the protection
- of a specific flow between specific addresses may be updated by
- MOBIKE later on. This has to be taken into account if the (outer) IP
- address of the peer was used when deciding what kind of IPsec SAs the
- peer is allowed to create.
- For instance, the level of required protection might depend on the
- current location of the VPN client, or access might be allowed only
- from certain IP addresses.
- It is recommended that security policies, for peers that are allowed
- to use MOBIKE, are configured in a manner that takes into account
- that a single security association can be used at different times
- through paths of varying security properties.
- This is especially critical for traffic selector authorization. The
- (logical) Peer Authorization Database (PAD) contains the information
- used by IKEv2 when determining what kind of IPsec SAs a peer is
- allowed to create. This process is described in [IPsecArch], Section
- 4.4.3. When a peer requests the creation of an IPsec SA with some
- traffic selectors, the PAD must contain "Child SA Authorization Data"
- linking the identity authenticated by IKEv2 and the addresses
- permitted for traffic selectors. See also [Clarifications] for a
- more extensive discussion.
- It is important to note that simply sending IKEv2 packets using some
- particular address does not automatically imply a permission to
- create IPsec SAs with that address in the traffic selectors.
- However, some implementations are known to use policies where simply
- being reachable at some address X implies a temporary permission to
- create IPsec SAs for address X. Here "being reachable" usually means
- the ability to send (or spoof) IP packets with source address X and
- receive (or eavesdrop) packets sent to X.
- Using this kind of policies or extensions with MOBIKE may need
- special care to enforce the temporary nature of the permission. For
- example, when the peer moves to some other address Y (and is no
- longer reachable at X), it might be necessary to close IPsec SAs with
- traffic selectors matching X. However, these interactions are beyond
- the scope of this document.
- 5.3. Denial-of-Service Attacks against Third Parties
- Traffic redirection may be performed not just to gain access to the
- traffic or to deny service to the peers, but also to cause a denial-
- of-service attack on a third party. For instance, a high-speed TCP
- session or a multimedia stream may be redirected towards a victim
- host, causing its communications capabilities to suffer.
- Eronen Standards Track [Page 25]
- RFC 4555 MOBIKE Protocol June 2006
- The attackers in this threat can be either outsiders or even one of
- the IKEv2 peers. In usual VPN usage scenarios, attacks by the peers
- can be easily dealt with if the authentication performed in the
- initial IKEv2 negotiation can be traced to persons who can be held
- responsible for the attack. This may not be the case in all
- scenarios, particularly with opportunistic approaches to security.
- If the attack is launched by an outsider, the traffic flow would
- normally stop soon due to the lack of responses (such as transport
- layer acknowledgements). However, if the original recipient of the
- flow is malicious, it could maintain the traffic flow for an extended
- period of time, since it often would be able to send the required
- acknowledgements (see [Aura02] for more discussion).
- It should also be noted, as shown in [Bombing], that without ingress
- filtering in the attacker's network, such attacks are already
- possible simply by sending spoofed packets from the attacker to the
- victim directly. Furthermore, if the attacker's network has ingress
- filtering, this attack is largely prevented for MOBIKE as well.
- Consequently, it makes little sense to protect against attacks of
- similar nature in MOBIKE. However, it still makes sense to limit the
- amplification capabilities provided to attackers, so that they cannot
- use stream redirection to send a large number of packets to the
- victim by sending just a few packets themselves.
- This specification includes return routability tests to limit the
- duration of any "third party bombing" attacks by off-path (relative
- to the victim) attackers. The tests are authenticated messages that
- the peer has to respond to, and can be performed before the address
- change takes effect, immediately afterwards, or even periodically
- during the session. The tests contain unpredictable data, and only
- someone who has the keys associated with the IKE SA and has seen the
- request packet can properly respond to the test.
- The duration of the attack can also be limited if the victim reports
- the unwanted traffic to the originating IPsec tunnel endpoint using
- ICMP error messages or INVALID_SPI notifications. As described in
- [IKEv2], Section 2.21, this SHOULD trigger a liveness test, which
- also doubles as a return routability check if the COOKIE2
- notification is included.
- 5.4. Spoofing Network Connectivity Indications
- Attackers may spoof various indications from lower layers and the
- network in an effort to confuse the peers about which addresses are
- or are not working. For example, attackers may spoof link-layer
- error messages in an effort to cause the parties to move their
- traffic elsewhere or even to disconnect. Attackers may also spoof
- Eronen Standards Track [Page 26]
- RFC 4555 MOBIKE Protocol June 2006
- information related to network attachments, router discovery, and
- address assignments in an effort to make the parties believe they
- have Internet connectivity when, in reality, they do not.
- This may cause use of non-preferred addresses or even denial of
- service.
- MOBIKE does not provide any protection of its own for indications
- from other parts of the protocol stack. These vulnerabilities can be
- mitigated through the use of techniques specific to the other parts
- of the stack, such as validation of ICMP errors [ICMPAttacks], link
- layer security, or the use of [SEND] to protect IPv6 Router and
- Neighbor Discovery.
- Ultimately, MOBIKE depends on the delivery of IKEv2 messages to
- determine which paths can be used. If IKEv2 messages sent using a
- particular source and destination addresses reach the recipient and a
- reply is received, MOBIKE will usually consider the path working; if
- no reply is received even after retransmissions, MOBIKE will suspect
- the path is broken. An attacker who can consistently control the
- delivery or non-delivery of the IKEv2 messages in the network can
- thus influence which addresses actually get used.
- 5.5. Address and Topology Disclosure
- MOBIKE address updates and the ADDITIONAL_IP4_ADDRESS/
- ADDITIONAL_IP6_ADDRESS notifications reveal information about which
- networks the peers are connected to.
- For example, consider a host A with two network interfaces: a
- cellular connection and a wired Ethernet connection to a company LAN.
- If host A now contacts host B using IKEv2 and sends
- ADDITIONAL_IP4_ADDRESS/ADDITIONAL_IP6_ADDRESS notifications, host B
- receives additional information it might not otherwise know. If host
- A used the cellular connection for the IKEv2 traffic, host B can also
- see the company LAN address (and perhaps further guess that host A is
- used by an employee of that company). If host A used the company LAN
- to make the connection, host B can see that host A has a subscription
- from this particular cellular operator.
- These additional addresses can also disclose more accurate location
- information than just a single address. Suppose that host A uses its
- cellular connection for IKEv2 traffic, but also sends an
- ADDITIONAL_IP4_ADDRESS notification containing an IP address
- corresponding to, say, a wireless LAN at a particular coffee shop
- location. It is likely that host B can now make a much better guess
- at A's location than would be possible based on the cellular IP
- address alone.
- Eronen Standards Track [Page 27]
- RFC 4555 MOBIKE Protocol June 2006
- Furthermore, as described in Section 3.4, some of the addresses could
- also be private addresses behind a NAT.
- In many environments, disclosing address information is not a problem
- (and indeed it cannot be avoided if the hosts wish to use those
- addresses for IPsec traffic). For instance, a remote access VPN
- client could consider the corporate VPN gateway sufficiently
- trustworthy for this purpose. Furthermore, the
- ADDITIONAL_IP4_ADDRESS and ADDITIONAL_IP6_ADDRESS notifications are
- sent encrypted, so the addresses are not visible to eavesdroppers
- (unless, of course, they are later used for sending IKEv2/IPsec
- traffic).
- However, if MOBIKE is used in some more opportunistic approach, it
- can be desirable to limit the information that is sent. Naturally,
- the peers do not have to disclose any addresses they do not want to
- use for IPsec traffic. Also, as noted in Section 3.6, an initiator
- whose policy is to always use the locally configured responder
- address does not have to send any ADDITIONAL_IP4_ADDRESS/
- ADDITIONAL_IP6_ADDRESS payloads.
- 6. IANA Considerations
- This document does not create any new namespaces to be maintained by
- IANA, but it requires new values in namespaces that have been defined
- in the IKEv2 base specification [IKEv2].
- This document defines several new IKEv2 notifications whose values
- have been allocated from the "IKEv2 Notify Message Types" namespace.
- Notify Messages - Error Types Value
- ----------------------------- -----
- UNACCEPTABLE_ADDRESSES 40
- UNEXPECTED_NAT_DETECTED 41
- Notify Messages - Status Types Value
- ------------------------------ -----
- MOBIKE_SUPPORTED 16396
- ADDITIONAL_IP4_ADDRESS 16397
- ADDITIONAL_IP6_ADDRESS 16398
- NO_ADDITIONAL_ADDRESSES 16399
- UPDATE_SA_ADDRESSES 16400
- COOKIE2 16401
- NO_NATS_ALLOWED 16402
- These notifications are described in Section 4.
- Eronen Standards Track [Page 28]
- RFC 4555 MOBIKE Protocol June 2006
- 7. Acknowledgements
- This document is a collaborative effort of the entire MOBIKE WG. We
- would particularly like to thank Jari Arkko, Tuomas Aura, Marcelo
- Bagnulo, Stephane Beaulieu, Elwyn Davies, Lakshminath Dondeti,
- Francis Dupont, Paul Hoffman, James Kempf, Tero Kivinen, Pete McCann,
- Erik Nordmark, Mohan Parthasarathy, Pekka Savola, Bill Sommerfeld,
- Maureen Stillman, Shinta Sugimoto, Hannes Tschofenig, and Sami
- Vaarala. This document also incorporates ideas and text from earlier
- MOBIKE-like protocol proposals, including [AddrMgmt], [Kivinen],
- [MOPO], and [SMOBIKE], and the MOBIKE design document [Design].
- 8. References
- 8.1. Normative References
- [IKEv2] Kaufman, C., "Internet Key Exchange (IKEv2)
- Protocol", RFC 4306, December 2005.
- [IPsecArch] Kent, S. and K. Seo, "Security Architecture for the
- Internet Protocol", RFC 4301, December 2005.
- [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
- Requirement Levels", RFC 2119, March 1997.
- 8.2. Informative References
- [AddrMgmt] Dupont, F., "Address Management for IKE version 2",
- Work in Progress, November 2005.
- [Aura02] Aura, T., Roe, M., and J. Arkko, "Security of
- Internet Location Management", Proc. 18th Annual
- Computer Security Applications Conference (ACSAC),
- December 2002.
- [Bombing] Dupont, F., "A note about 3rd party bombing in
- Mobile IPv6", Work in Progress, December 2005.
- [Clarifications] Eronen, P. and P. Hoffman, "IKEv2 Clarifications
- and Implementation Guidelines", Work in Progress,
- February 2006.
- [DNA4] Aboba, B., Carlson, J., and S. Cheshire, "Detecting
- Network Attachment in IPv4 (DNAv4)", RFC 4436,
- March 2006.
- Eronen Standards Track [Page 29]
- RFC 4555 MOBIKE Protocol June 2006
- [DNA6] Narayanan, S., Daley, G., and N. Montavont,
- "Detecting Network Attachment in IPv6 - Best
- Current Practices for hosts", Work in Progress,
- October 2005.
- [Design] Kivinen, T. and H. Tschofenig, "Design of the
- MOBIKE protocol", Work in Progress, January 2006.
- [ICMPAttacks] Gont, F., "ICMP attacks against TCP", Work in
- Progress, October 2005.
- [Kivinen] Kivinen, T., "MOBIKE protocol", Work in Progress,
- February 2004.
- [MIP4] Perkins, C., "IP Mobility Support for IPv4",
- RFC 3344, August 2002.
- [MIP6] Johnson, D., Perkins, C., and J. Arkko, "Mobility
- Support in IPv6", RFC 3775, June 2004.
- [MOPO] Eronen, P., "Mobility Protocol Options for IKEv2
- (MOPO-IKE)", Work in Progress, February 2005.
- [RFC2461] Narten, T., Nordmark, E., and W. Simpson, "Neighbor
- Discovery for IP Version 6 (IPv6)", RFC 2461,
- December 1998.
- [SEND] Arkko, J., Kempf, J., Zill, B., and P. Nikander,
- "SEcure Neighbor Discovery (SEND)", RFC 3971,
- March 2005.
- [SMOBIKE] Eronen, P. and H. Tschofenig, "Simple Mobility and
- Multihoming Extensions for IKEv2 (SMOBIKE)",
- Work in Progress, March 2004.
- [STUN] Rosenberg, J., Weinberger, J., Huitema, C., and R.
- Mahy, "STUN - Simple Traversal of User Datagram
- Protocol (UDP) Through Network Address Translators
- (NATs)", RFC 3489, March 2003.
- [UNSAF] Daigle, L., "IAB Considerations for UNilateral
- Self-Address Fixing (UNSAF) Across Network Address
- Translation", RFC 3424, November 2002.
- Eronen Standards Track [Page 30]
- RFC 4555 MOBIKE Protocol June 2006
- Appendix A. Implementation Considerations
- A.1. Links from SPD Cache to Outbound SAD Entries
- [IPsecArch], Section 4.4.2, says that "For outbound processing, each
- SAD entry is pointed to by entries in the SPD-S part of the SPD
- cache". The document does not specify how exactly this "pointing" is
- done, since this is an implementation detail that does not have to be
- standardized.
- However, it is clear that the links between the SPD cache and the SAD
- have to be done correctly to ensure that outbound packets are sent
- over the right SA. Some implementations are known to have problems
- in this area.
- In particular, simply storing the (remote tunnel header IP address,
- remote SPI) pair in the SPD cache is not sufficient, since the pair
- does not always uniquely identify a single SAD entry. For instance,
- two hosts behind the same NAT can accidentally happen to choose the
- same SPI value. The situation can also occur when a host is assigned
- an IP address previously used by some other host, and the SAs
- associated with the old host have not yet been deleted by Dead Peer
- Detection. This may lead to packets being sent over the wrong SA or,
- if the key management daemon ensures the pair is unique, denying the
- creation of otherwise valid SAs.
- Storing the remote tunnel header IP address in the SPD cache may also
- complicate the implementation of MOBIKE, since the address can change
- during the lifetime of the SA. Thus, we recommend implementing the
- links between the SPD cache and the SAD in a way that does not
- require modification when the tunnel header IP address is updated by
- MOBIKE.
- A.2. Creating Outbound SAs
- When an outbound packet requires IPsec processing but no suitable SA
- exists, a new SA will be created. In this case, the host has to
- determine (1) who is the right peer for this SA, (2) whether the host
- already has an IKE_SA with this peer, and (3) if no IKE_SA exists,
- the IP address(es) of the peer for contacting it.
- Neither [IPsecArch] nor MOBIKE specifies how exactly these three
- steps are carried out. [IPsecArch], Section 4.4.3.4, says:
- Eronen Standards Track [Page 31]
- RFC 4555 MOBIKE Protocol June 2006
- For example, assume that IKE A receives an outbound packet
- destined for IP address X, a host served by a security gateway.
- RFC 2401 [RFC2401] and this document do not specify how A
- determines the address of the IKE peer serving X. However, any
- peer contacted by A as the presumed representative for X must be
- registered in the PAD in order to allow the IKE exchange to be
- authenticated. Moreover, when the authenticated peer asserts that
- it represents X in its traffic selector exchange, the PAD will be
- consulted to determine if the peer in question is authorized to
- represent X.
- In step 1, there may be more than one possible peer (e.g., several
- security gateways that are allowed to represent X). In step 3, the
- host may need to consult a directory such as DNS to determine the
- peer IP address(es).
- When performing these steps, implementations may use information
- contained in the SPD, the PAD, and possibly some other
- implementation-specific databases. Regardless of how exactly the
- steps are implemented, it is important to remember that IP addresses
- can change, and that an IP address alone does not always uniquely
- identify a single IKE peer (for the same reasons as why the
- combination of the remote IP address and SPI does not uniquely
- identify an outbound IPsec SA; see Appendix A.1). Thus, in steps 1
- and 2 it may be easier to identify the "right peer" using its
- authenticated identity instead of its current IP address. However,
- these implementation details are beyond the scope of this
- specification.
- Author's Address
- Pasi Eronen (editor)
- Nokia Research Center
- P.O. Box 407
- FIN-00045 Nokia Group
- Finland
- EMail: pasi.eronen@nokia.com
- Eronen Standards Track [Page 32]
- RFC 4555 MOBIKE Protocol June 2006
- Full Copyright Statement
- Copyright (C) The Internet Society (2006).
- This document is subject to the rights, licenses and restrictions
- contained in BCP 78, and except as set forth therein, the authors
- retain all their rights.
- This document and the information contained herein are provided on an
- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
- OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
- ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
- INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
- INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- Intellectual Property
- The IETF takes no position regarding the validity or scope of any
- Intellectual Property Rights or other rights that might be claimed to
- pertain to the implementation or use of the technology described in
- this document or the extent to which any license under such rights
- might or might not be available; nor does it represent that it has
- made any independent effort to identify any such rights. Information
- on the procedures with respect to rights in RFC documents can be
- found in BCP 78 and BCP 79.
- Copies of IPR disclosures made to the IETF Secretariat and any
- assurances of licenses to be made available, or the result of an
- attempt made to obtain a general license or permission for the use of
- such proprietary rights by implementers or users of this
- specification can be obtained from the IETF on-line IPR repository at
- http://www.ietf.org/ipr.
- The IETF invites any interested party to bring to its attention any
- copyrights, patents or patent applications, or other proprietary
- rights that may cover technology that may be required to implement
- this standard. Please address the information to the IETF at
- ietf-ipr@ietf.org.
- Acknowledgement
- Funding for the RFC Editor function is provided by the IETF
- Administrative Support Activity (IASA).
- Eronen Standards Track [Page 33]
|