rfc4555.txt 77 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851
  1. Network Working Group P. Eronen, Ed.
  2. Request for Comments: 4555 Nokia
  3. Category: Standards Track June 2006
  4. IKEv2 Mobility and Multihoming Protocol (MOBIKE)
  5. Status of This Memo
  6. This document specifies an Internet standards track protocol for the
  7. Internet community, and requests discussion and suggestions for
  8. improvements. Please refer to the current edition of the "Internet
  9. Official Protocol Standards" (STD 1) for the standardization state
  10. and status of this protocol. Distribution of this memo is unlimited.
  11. Copyright Notice
  12. Copyright (C) The Internet Society (2006).
  13. Abstract
  14. This document describes the MOBIKE protocol, a mobility and
  15. multihoming extension to Internet Key Exchange (IKEv2). MOBIKE
  16. allows the IP addresses associated with IKEv2 and tunnel mode IPsec
  17. Security Associations to change. A mobile Virtual Private Network
  18. (VPN) client could use MOBIKE to keep the connection with the VPN
  19. gateway active while moving from one address to another. Similarly,
  20. a multihomed host could use MOBIKE to move the traffic to a different
  21. interface if, for instance, the one currently being used stops
  22. working.
  23. Eronen Standards Track [Page 1]
  24. RFC 4555 MOBIKE Protocol June 2006
  25. Table of Contents
  26. 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
  27. 1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . 3
  28. 1.2. Scope and Limitations . . . . . . . . . . . . . . . . . . 4
  29. 1.3. Terminology and Notation . . . . . . . . . . . . . . . . . 4
  30. 2. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 5
  31. 2.1. Basic Operation . . . . . . . . . . . . . . . . . . . . . 5
  32. 2.2. Example Protocol Exchanges . . . . . . . . . . . . . . . . 6
  33. 2.3. MOBIKE and Network Address Translation (NAT) . . . . . . . 9
  34. 3. Protocol Exchanges . . . . . . . . . . . . . . . . . . . . . . 10
  35. 3.1. Initial IKE Exchange . . . . . . . . . . . . . . . . . . . 10
  36. 3.2. Signaling Support for MOBIKE . . . . . . . . . . . . . . . 10
  37. 3.3. Initial Tunnel Header Addresses . . . . . . . . . . . . . 11
  38. 3.4. Additional Addresses . . . . . . . . . . . . . . . . . . . 11
  39. 3.5. Changing Addresses in IPsec SAs . . . . . . . . . . . . . 12
  40. 3.6. Updating Additional Addresses . . . . . . . . . . . . . . 15
  41. 3.7. Return Routability Check . . . . . . . . . . . . . . . . . 17
  42. 3.8. Changes in NAT Mappings . . . . . . . . . . . . . . . . . 18
  43. 3.9. NAT Prohibition . . . . . . . . . . . . . . . . . . . . . 19
  44. 3.10. Path Testing . . . . . . . . . . . . . . . . . . . . . . . 20
  45. 3.11. Failure Recovery and Timeouts . . . . . . . . . . . . . . 20
  46. 3.12. Dead Peer Detection . . . . . . . . . . . . . . . . . . . 20
  47. 4. Payload Formats . . . . . . . . . . . . . . . . . . . . . . . 21
  48. 4.1. Notify Messages - Error Types . . . . . . . . . . . . . . 21
  49. 4.2. Notify Messages - Status Types . . . . . . . . . . . . . . 21
  50. 5. Security Considerations . . . . . . . . . . . . . . . . . . . 24
  51. 5.1. Traffic Redirection and Hijacking . . . . . . . . . . . . 24
  52. 5.2. IPsec Payload Protection . . . . . . . . . . . . . . . . . 24
  53. 5.3. Denial-of-Service Attacks against Third Parties . . . . . 25
  54. 5.4. Spoofing Network Connectivity Indications . . . . . . . . 26
  55. 5.5. Address and Topology Disclosure . . . . . . . . . . . . . 27
  56. 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28
  57. 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 29
  58. 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29
  59. 8.1. Normative References . . . . . . . . . . . . . . . . . . . 29
  60. 8.2. Informative References . . . . . . . . . . . . . . . . . . 29
  61. Appendix A. Implementation Considerations . . . . . . . . . . . . 31
  62. A.1. Links from SPD Cache to Outbound SAD Entries . . . . . . . 31
  63. A.2. Creating Outbound SAs . . . . . . . . . . . . . . . . . . 31
  64. Eronen Standards Track [Page 2]
  65. RFC 4555 MOBIKE Protocol June 2006
  66. 1. Introduction
  67. 1.1. Motivation
  68. IKEv2 is used for performing mutual authentication, as well as
  69. establishing and maintaining IPsec Security Associations (SAs). In
  70. the base IKEv2 protocol [IKEv2], the IKE SAs and tunnel mode IPsec
  71. SAs are created implicitly between the IP addresses that are used
  72. when the IKE_SA is established. These IP addresses are then used as
  73. the outer (tunnel header) addresses for tunnel mode IPsec packets
  74. (transport mode IPsec SAs are beyond the scope of this document).
  75. Currently, it is not possible to change these addresses after the
  76. IKE_SA has been created.
  77. There are scenarios where these IP addresses might change. One
  78. example is mobility: a host changes its point of network attachment
  79. and receives a new IP address. Another example is a multihoming host
  80. that would like to change to a different interface if, for instance,
  81. the currently used interface stops working for some reason.
  82. Although the problem can be solved by creating new IKE and IPsec SAs
  83. when the addresses need to be changed, this may not be optimal for
  84. several reasons. In some cases, creating a new IKE_SA may require
  85. user interaction for authentication, such as entering a code from a
  86. token card. Creating new SAs often involves expensive calculations
  87. and possibly a large number of round-trips. For these reasons, a
  88. mechanism for updating the IP addresses of existing IKE and IPsec SAs
  89. is needed. The MOBIKE protocol described in this document provides
  90. such a mechanism.
  91. The main scenario for MOBIKE is enabling a remote access VPN user to
  92. move from one address to another without re-establishing all security
  93. associations with the VPN gateway. For instance, a user could start
  94. from fixed Ethernet in the office and then disconnect the laptop and
  95. move to the office's wireless LAN. When the user leaves the office,
  96. the laptop could start using General Packet Radio Service (GPRS);
  97. when the user arrives home, the laptop could switch to the home
  98. wireless LAN. MOBIKE updates only the outer (tunnel header)
  99. addresses of IPsec SAs, and the addresses and other traffic selectors
  100. used inside the tunnel stay unchanged. Thus, mobility can be
  101. (mostly) invisible to applications and their connections using the
  102. VPN.
  103. Eronen Standards Track [Page 3]
  104. RFC 4555 MOBIKE Protocol June 2006
  105. MOBIKE also supports more complex scenarios where the VPN gateway
  106. also has several network interfaces: these interfaces could be
  107. connected to different networks or ISPs, they may be a mix of IPv4
  108. and IPv6 addresses, and the addresses may change over time.
  109. Furthermore, both parties could be VPN gateways relaying traffic for
  110. other parties.
  111. 1.2. Scope and Limitations
  112. This document focuses on the main scenario outlined above and
  113. supports only tunnel mode IPsec SAs.
  114. The mobility support in MOBIKE allows both parties to move, but does
  115. not provide a "rendezvous" mechanism that would allow simultaneous
  116. movement of both parties or discovery of the addresses when the
  117. IKE_SA is first established. Therefore, MOBIKE is best suited for
  118. situations where the address of at least one endpoint is relatively
  119. stable and can be discovered using existing mechanisms such as DNS
  120. (see Section 3.1).
  121. MOBIKE allows both parties to be multihomed; however, only one pair
  122. of addresses is used for an SA at a time. In particular, load
  123. balancing is beyond the scope of this specification.
  124. MOBIKE follows the IKEv2 practice where a response message is sent to
  125. the same address and port from which the request was received. This
  126. implies that MOBIKE does not work over address pairs that provide
  127. only unidirectional connectivity.
  128. Network Address Translators (NATs) introduce additional limitations
  129. beyond those listed above. For details, refer to Section 2.3.
  130. The base version of the MOBIKE protocol does not cover all potential
  131. future use scenarios, such as transport mode, application to securing
  132. SCTP, or optimizations desirable in specific circumstances. Future
  133. extensions may be defined later to support additional requirements.
  134. Please consult the MOBIKE design document [Design] for further
  135. information and rationale behind these limitations.
  136. 1.3. Terminology and Notation
  137. When messages containing IKEv2 payloads are described, optional
  138. payloads are shown in brackets (for instance, "[FOO]"), and a plus
  139. sign indicates that a payload can be repeated one or more times (for
  140. instance, "FOO+"). To provide context, some diagrams also show what
  141. existing IKEv2 payloads would typically be included in the exchanges.
  142. These payloads are shown for illustrative purposes only; see [IKEv2]
  143. for an authoritative description.
  144. Eronen Standards Track [Page 4]
  145. RFC 4555 MOBIKE Protocol June 2006
  146. When this document describes updating the source/destination
  147. addresses of an IPsec SA, it means updating IPsec-related state so
  148. that outgoing Encapsulating Security Payload (ESP)/Authentication
  149. Header (AH) packets use those addresses in the tunnel header.
  150. Depending on how the nominal divisions between Security Association
  151. Database (SAD), Security Policy Database (SPD), and Peer
  152. Authorization Database (PAD) described in [IPsecArch] are actually
  153. implemented, an implementation can have several different places that
  154. have to be updated.
  155. In this document, the term "initiator" means the party who originally
  156. initiated the first IKE_SA (in a series of possibly several rekeyed
  157. IKE_SAs); "responder" is the other peer. During the lifetime of the
  158. IKE_SA, both parties may initiate INFORMATIONAL or CREATE_CHILD_SA
  159. exchanges; in this case, the terms "exchange initiator" and "exchange
  160. responder" are used. The term "original initiator" (which in [IKEv2]
  161. refers to the party who started the latest IKE_SA rekeying) is not
  162. used in this document.
  163. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  164. "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
  165. document are to be interpreted as described in [KEYWORDS].
  166. 2. Protocol Overview
  167. 2.1. Basic Operation
  168. MOBIKE allows both parties to have several addresses, and there are
  169. up to N*M pairs of IP addresses that could potentially be used. The
  170. decision of which of these pairs to use has to take into account
  171. several factors. First, the parties may have preferences about which
  172. interface should be used due to, for instance, performance and cost
  173. reasons. Second, the decision is constrained by the fact that some
  174. of the pairs may not work at all due to incompatible IP versions,
  175. outages in the network, problems at the local link at either end, and
  176. so on.
  177. MOBIKE solves this problem by taking a simple approach: the party
  178. that initiated the IKE_SA (the "client" in a remote access VPN
  179. scenario) is responsible for deciding which address pair is used for
  180. the IPsec SAs and for collecting the information it needs to make
  181. this decision (such as determining which address pairs work or do not
  182. work). The other party (the "gateway" in a remote access VPN
  183. scenario) simply tells the initiator what addresses it has, but does
  184. not update the IPsec SAs until it receives a message from the
  185. initiator to do so. This approach applies to the addresses in the
  186. IPsec SAs; in the IKE_SA case, the exchange initiator can decide
  187. which addresses are used.
  188. Eronen Standards Track [Page 5]
  189. RFC 4555 MOBIKE Protocol June 2006
  190. Making the decision at the initiator is consistent with how normal
  191. IKEv2 works: the initiator decides which addresses it uses when
  192. contacting the responder. It also makes sense, especially when the
  193. initiator is a mobile node: it is in a better position to decide
  194. which of its network interfaces should be used for both upstream and
  195. downstream traffic.
  196. The details of exactly how the initiator makes the decision, what
  197. information is used in making it, how the information is collected,
  198. how preferences affect the decision, and when a decision needs to be
  199. changed are largely beyond the scope of MOBIKE. This does not mean
  200. that these details are unimportant: on the contrary, they are likely
  201. to be crucial in any real system. However, MOBIKE is concerned with
  202. these details only to the extent that they are visible in IKEv2/IPsec
  203. messages exchanged between the peers (and thus need to be
  204. standardized to ensure interoperability).
  205. Many of these issues are not specific to MOBIKE, but are common with
  206. the use of existing hosts in dynamic environments or with mobility
  207. protocols such as Mobile IP [MIP4] [MIP6]. A number of mechanisms
  208. already exist or are being developed to deal with these issues. For
  209. instance, link-layer and IP-layer mechanisms can be used to track the
  210. status of connectivity within the local link [RFC2461]; movement
  211. detection is being specified for both IPv4 and IPv6 in [DNA4],
  212. [DNA6], and so on.
  213. Naturally, updating the addresses of IPsec SAs has to take into
  214. account several security considerations. MOBIKE includes two
  215. features designed to address these considerations. First, a "return
  216. routability" check can be used to verify the addresses provided by
  217. the peer. This makes it more difficult to flood third parties with
  218. large amounts of traffic. Second, a "NAT prohibition" feature
  219. ensures that IP addresses have not been modified by NATs, IPv4/IPv6
  220. translation agents, or other similar devices. This feature is
  221. enabled only when NAT Traversal is not used.
  222. 2.2. Example Protocol Exchanges
  223. A simple MOBIKE exchange in a mobile scenario is illustrated below.
  224. The notation is based on [IKEv2], Section 1.2. In addition, the
  225. source/destination IP addresses and ports are shown for each packet:
  226. here IP_I1, IP_I2, IP_R1, and IP_R2 represent IP addresses used by
  227. the initiator and the responder.
  228. Eronen Standards Track [Page 6]
  229. RFC 4555 MOBIKE Protocol June 2006
  230. Initiator Responder
  231. ----------- -----------
  232. 1) (IP_I1:500 -> IP_R1:500)
  233. HDR, SAi1, KEi, Ni,
  234. N(NAT_DETECTION_SOURCE_IP),
  235. N(NAT_DETECTION_DESTINATION_IP) -->
  236. <-- (IP_R1:500 -> IP_I1:500)
  237. HDR, SAr1, KEr, Nr,
  238. N(NAT_DETECTION_SOURCE_IP),
  239. N(NAT_DETECTION_DESTINATION_IP)
  240. 2) (IP_I1:4500 -> IP_R1:4500)
  241. HDR, SK { IDi, CERT, AUTH,
  242. CP(CFG_REQUEST),
  243. SAi2, TSi, TSr,
  244. N(MOBIKE_SUPPORTED) } -->
  245. <-- (IP_R1:4500 -> IP_I1:4500)
  246. HDR, SK { IDr, CERT, AUTH,
  247. CP(CFG_REPLY),
  248. SAr2, TSi, TSr,
  249. N(MOBIKE_SUPPORTED) }
  250. (Initiator gets information from lower layers that its attachment
  251. point and address have changed.)
  252. 3) (IP_I2:4500 -> IP_R1:4500)
  253. HDR, SK { N(UPDATE_SA_ADDRESSES),
  254. N(NAT_DETECTION_SOURCE_IP),
  255. N(NAT_DETECTION_DESTINATION_IP) } -->
  256. <-- (IP_R1:4500 -> IP_I2:4500)
  257. HDR, SK { N(NAT_DETECTION_SOURCE_IP),
  258. N(NAT_DETECTION_DESTINATION_IP) }
  259. (Responder verifies that the initiator has given it a correct IP
  260. address.)
  261. 4) <-- (IP_R1:4500 -> IP_I2:4500)
  262. HDR, SK { N(COOKIE2) }
  263. (IP_I2:4500 -> IP_R1:4500)
  264. HDR, SK { N(COOKIE2) } -->
  265. Step 1 is the normal IKE_INIT exchange. In step 2, the peers inform
  266. each other that they support MOBIKE. In step 3, the initiator
  267. notices a change in its own address, and informs the responder about
  268. Eronen Standards Track [Page 7]
  269. RFC 4555 MOBIKE Protocol June 2006
  270. this by sending an INFORMATIONAL request containing the
  271. UPDATE_SA_ADDRESSES notification. The request is sent using the new
  272. IP address. At this point, it also starts to use the new address as
  273. a source address in its own outgoing ESP traffic. Upon receiving the
  274. UPDATE_SA_ADDRESSES notification, the responder records the new
  275. address and, if it is required by policy, performs a return
  276. routability check of the address. When this check (step 4)
  277. completes, the responder starts to use the new address as the
  278. destination for its outgoing ESP traffic.
  279. Another protocol run in a multihoming scenario is illustrated below.
  280. In this scenario, the initiator has one address but the responder has
  281. two.
  282. Initiator Responder
  283. ----------- -----------
  284. 1) (IP_I1:500 -> IP_R1:500)
  285. HDR, SAi1, KEi, Ni,
  286. N(NAT_DETECTION_SOURCE_IP),
  287. N(NAT_DETECTION_DESTINATION_IP) -->
  288. <-- (IP_R1:500 -> IP_I1:500)
  289. HDR, SAr1, KEr, Nr,
  290. N(NAT_DETECTION_SOURCE_IP),
  291. N(NAT_DETECTION_DESTINATION_IP)
  292. 2) (IP_I1:4500 -> IP_R1:4500)
  293. HDR, SK { IDi, CERT, AUTH,
  294. CP(CFG_REQUEST),
  295. SAi2, TSi, TSr,
  296. N(MOBIKE_SUPPORTED) } -->
  297. <-- (IP_R1:4500 -> IP_I1:4500)
  298. HDR, SK { IDr, CERT, AUTH,
  299. CP(CFG_REPLY),
  300. SAr2, TSi, TSr,
  301. N(MOBIKE_SUPPORTED),
  302. N(ADDITIONAL_IP4_ADDRESS) }
  303. (The initiator suspects a problem in the currently used address pair
  304. and probes its liveness.)
  305. Eronen Standards Track [Page 8]
  306. RFC 4555 MOBIKE Protocol June 2006
  307. 3) (IP_I1:4500 -> IP_R1:4500)
  308. HDR, SK { N(NAT_DETECTION_SOURCE_IP),
  309. N(NAT_DETECTION_DESTINATION_IP) } -->
  310. (IP_I1:4500 -> IP_R1:4500)
  311. HDR, SK { N(NAT_DETECTION_SOURCE_IP),
  312. N(NAT_DETECTION_DESTINATION_IP) } -->
  313. ...
  314. (Eventually, the initiator gives up on the current address pair and
  315. tests the other available address pair.)
  316. 4) (IP_I1:4500 -> IP_R2:4500)
  317. HDR, SK { N(NAT_DETECTION_SOURCE_IP),
  318. N(NAT_DETECTION_DESTINATION_IP) }
  319. <-- (IP_R2:4500 -> IP_I1:4500)
  320. HDR, SK { N(NAT_DETECTION_SOURCE_IP),
  321. N(NAT_DETECTION_DESTINATION_IP) }
  322. (This worked, and the initiator requests the peer to switch to new
  323. addresses.)
  324. 5) (IP_I1:4500 -> IP_R2:4500)
  325. HDR, SK { N(UPDATE_SA_ADDRESSES),
  326. N(NAT_DETECTION_SOURCE_IP),
  327. N(NAT_DETECTION_DESTINATION_IP),
  328. N(COOKIE2) } -->
  329. <-- (IP_R2:4500 -> IP_I1:4500)
  330. HDR, SK { N(NAT_DETECTION_SOURCE_IP),
  331. N(NAT_DETECTION_DESTINATION_IP),
  332. N(COOKIE2) }
  333. 2.3. MOBIKE and Network Address Translation (NAT)
  334. In some MOBIKE scenarios, the network may contain NATs or stateful
  335. packet filters (for brevity, the rest of this document simply
  336. describes NATs). The NAT Traversal feature specified in [IKEv2]
  337. allows IKEv2 to work through NATs in many cases, and MOBIKE can
  338. leverage this functionality: when the addresses used for IPsec SAs
  339. are changed, MOBIKE can enable or disable IKEv2 NAT Traversal, as
  340. needed.
  341. Nevertheless, there are some limitations because NATs usually
  342. introduce an asymmetry into the network: only packets coming from the
  343. "inside" cause state to be created. This asymmetry leads to
  344. Eronen Standards Track [Page 9]
  345. RFC 4555 MOBIKE Protocol June 2006
  346. restrictions on what MOBIKE can do. To give a concrete example,
  347. consider a situation where both peers have only a single address, and
  348. the initiator is behind a NAT. If the responder's address now
  349. changes, it needs to send a packet to the initiator using its new
  350. address. However, if the NAT is, for instance, of the common
  351. "restricted cone" type (see [STUN] for one description of different
  352. NAT types), this is not possible. The NAT will drop packets sent
  353. from the new address (unless the initiator has previously sent a
  354. packet to that address -- which it cannot do until it knows the
  355. address).
  356. For simplicity, MOBIKE does not attempt to handle all possible NAT-
  357. related scenarios. Instead, MOBIKE assumes that if NATs are present,
  358. the initiator is the party "behind" the NAT, and the case where the
  359. responder's addresses change is not fully supported (meaning that no
  360. special effort is made to support this functionality). Responders
  361. may also be unaware of NATs or specific types of NATs they are
  362. behind. However, when a change has occurred that will cause a loss
  363. of connectivity, MOBIKE responders will still attempt to inform the
  364. initiator of the change. Depending on, for instance, the exact type
  365. of NAT, it may or may not succeed. However, analyzing the exact
  366. circumstances when this will or will not work is not done in this
  367. document.
  368. 3. Protocol Exchanges
  369. 3.1. Initial IKE Exchange
  370. The initiator is responsible for finding a working pair of addresses
  371. so that the initial IKE exchange can be carried out. Any information
  372. from MOBIKE extensions will only be available later, when the
  373. exchange has progressed far enough. Exactly how the addresses used
  374. for the initial exchange are discovered is beyond the scope of this
  375. specification; typical sources of information include local
  376. configuration and DNS.
  377. If either or both of the peers have multiple addresses, some
  378. combinations may not work. Thus, the initiator SHOULD try various
  379. source and destination address combinations when retransmitting the
  380. IKE_SA_INIT request.
  381. 3.2. Signaling Support for MOBIKE
  382. Implementations that wish to use MOBIKE for a particular IKE_SA MUST
  383. include a MOBIKE_SUPPORTED notification in the IKE_AUTH exchange (in
  384. case of multiple IKE_AUTH exchanges, in the message containing the SA
  385. payload).
  386. Eronen Standards Track [Page 10]
  387. RFC 4555 MOBIKE Protocol June 2006
  388. The format of the MOBIKE_SUPPORTED notification is described in
  389. Section 4.
  390. 3.3. Initial Tunnel Header Addresses
  391. When an IPsec SA is created, the tunnel header IP addresses (and
  392. port, if doing UDP encapsulation) are taken from the IKE_SA, not the
  393. IP header of the IKEv2 message requesting the IPsec SA. The
  394. addresses in the IKE_SA are initialized from the IP header of the
  395. first IKE_AUTH request.
  396. The addresses are taken from the IKE_AUTH request because IKEv2
  397. requires changing from port 500 to 4500 if a NAT is discovered. To
  398. simplify things, implementations that support both this specification
  399. and NAT Traversal MUST change to port 4500 if the correspondent also
  400. supports both, even if no NAT was detected between them (this way,
  401. there is no need to change the ports later if a NAT is detected on
  402. some other path).
  403. 3.4. Additional Addresses
  404. Both the initiator and responder MAY include one or more
  405. ADDITIONAL_IP4_ADDRESS and/or ADDITIONAL_IP6_ADDRESS notifications in
  406. the IKE_AUTH exchange (in case of multiple IKE_AUTH exchanges, in the
  407. message containing the SA payload). Here "ADDITIONAL_*_ADDRESS"
  408. means either an ADDITIONAL_IP4_ADDRESS or an ADDITIONAL_IP6_ADDRESS
  409. notification.
  410. Initiator Responder
  411. ----------- -----------
  412. HDR, SK { IDi, [CERT], [IDr], AUTH,
  413. [CP(CFG_REQUEST)]
  414. SAi2, TSi, TSr,
  415. N(MOBIKE_SUPPORTED),
  416. [N(ADDITIONAL_*_ADDRESS)+] } -->
  417. <-- HDR, SK { IDr, [CERT], AUTH,
  418. [CP(CFG_REPLY)],
  419. SAr2, TSi, TSr,
  420. N(MOBIKE_SUPPORTED)
  421. [N(ADDITIONAL_*_ADDRESS)+] }
  422. The recipient stores this information, but no other action is taken
  423. at this time.
  424. Although both the initiator and responder maintain a set of peer
  425. addresses (logically associated with the IKE_SA), it is important to
  426. note that they use this information for slightly different purposes.
  427. Eronen Standards Track [Page 11]
  428. RFC 4555 MOBIKE Protocol June 2006
  429. The initiator uses the set of responder addresses as an input to its
  430. address selection policy; it may, at some later point, decide to move
  431. the IPsec traffic to one of these addresses using the procedure
  432. described in Section 3.5. The responder normally does not use the
  433. set of initiator addresses for anything: the addresses are used only
  434. when the responder's own addresses change (see Section 3.6).
  435. The set of addresses available to the peers can change during the
  436. lifetime of the IKE_SA. The procedure for updating this information
  437. is described in Section 3.6.
  438. Note that if some of the initiator's interfaces are behind a NAT
  439. (from the responder's point of view), the addresses received by the
  440. responder will be incorrect. This means the procedure for changing
  441. responder addresses described in Section 3.6 does not fully work when
  442. the initiator is behind a NAT. For the same reason, the peers also
  443. SHOULD NOT use this information for any other purpose than what is
  444. explicitly described either in this document or a future
  445. specification updating it.
  446. 3.5. Changing Addresses in IPsec SAs
  447. In MOBIKE, the initiator decides what addresses are used in the IPsec
  448. SAs. That is, the responder does not normally update any IPsec SAs
  449. without receiving an explicit UPDATE_SA_ADDRESSES request from the
  450. initiator. (As described below, the responder can, however, update
  451. the IKE_SA in some circumstances.)
  452. The reasons why the initiator wishes to change the addresses are
  453. largely beyond the scope of MOBIKE. Typically, triggers include
  454. information received from lower layers, such as changes in IP
  455. addresses or link-down indications. Some of this information can be
  456. unreliable: for instance, ICMP messages could be spoofed by an
  457. attacker. Unreliable information SHOULD be treated only as a hint
  458. that there might be a problem, and the initiator SHOULD trigger Dead
  459. Peer Detection (that is, send an INFORMATIONAL request) to determine
  460. if the current path is still usable.
  461. Changing addresses can also be triggered by events within IKEv2. At
  462. least the following events can cause the initiator to re-evaluate its
  463. local address selection policy, possibly leading to changing the
  464. addresses.
  465. o An IKEv2 request has been re-transmitted several times, but no
  466. valid reply has been received. This suggests the current path is
  467. no longer working.
  468. Eronen Standards Track [Page 12]
  469. RFC 4555 MOBIKE Protocol June 2006
  470. o An INFORMATIONAL request containing an ADDITIONAL_IP4_ADDRESS,
  471. ADDITIONAL_IP6_ADDRESS, or NO_ADDITIONAL_ADDRESSES notification is
  472. received. This means the peer's addresses may have changed. This
  473. is particularly important if the announced set of addresses no
  474. longer contains the currently used address.
  475. o An UNACCEPTABLE_ADDRESSES notification is received as a response
  476. to address update request (described below).
  477. o The initiator receives a NAT_DETECTION_DESTINATION_IP notification
  478. that does not match the previous UPDATE_SA_ADDRESSES response (see
  479. Section 3.8 for a more detailed description).
  480. The description in the rest of this section assumes that the
  481. initiator has already decided what the new addresses should be. When
  482. this decision has been made, the initiator:
  483. o Updates the IKE_SA with the new addresses, and sets the
  484. "pending_update" flag in the IKE_SA.
  485. o Updates the IPsec SAs associated with this IKE_SA with the new
  486. addresses (unless the initiator's policy requires a return
  487. routability check before updating the IPsec SAs, and the check has
  488. not been done for this responder address yet).
  489. o If the IPsec SAs were updated in the previous step: If NAT
  490. Traversal is not enabled, and the responder supports NAT Traversal
  491. (as indicated by NAT detection payloads in the IKE_SA_INIT
  492. exchange), and the initiator either suspects or knows that a NAT
  493. is likely to be present, enables NAT Traversal (that is, enables
  494. UDP encapsulation of outgoing ESP packets and sending of NAT-
  495. Keepalive packets).
  496. o If there are outstanding IKEv2 requests (requests for which the
  497. initiator has not yet received a reply), continues retransmitting
  498. them using the addresses in the IKE_SA (the new addresses).
  499. o When the window size allows, sends an INFORMATIONAL request
  500. containing the UPDATE_SA_ADDRESSES notification (which does not
  501. contain any data), and clears the "pending_update" flag. The
  502. request will be as follows:
  503. Eronen Standards Track [Page 13]
  504. RFC 4555 MOBIKE Protocol June 2006
  505. Initiator Responder
  506. ----------- -----------
  507. HDR, SK { N(UPDATE_SA_ADDRESSES),
  508. [N(NAT_DETECTION_SOURCE_IP),
  509. N(NAT_DETECTION_DESTINATION_IP)],
  510. [N(NO_NATS_ALLOWED)],
  511. [N(COOKIE2)] } -->
  512. o If a new address change occurs while waiting for the response,
  513. starts again from the first step (and ignores responses to this
  514. UPDATE_SA_ADDRESSES request).
  515. When processing an INFORMATIONAL request containing the
  516. UPDATE_SA_ADDRESSES notification, the responder:
  517. o Determines whether it has already received a newer
  518. UPDATE_SA_ADDRESSES request than this one (if the responder uses a
  519. window size greater than one, it is possible that requests are
  520. received out of order). If it has, a normal response message
  521. (described below) is sent, but no other action is taken.
  522. o If the NO_NATS_ALLOWED notification is present, processes it as
  523. described in Section 3.9.
  524. o Checks that the (source IP address, destination IP address) pair
  525. in the IP header is acceptable according to local policy. If it
  526. is not, replies with a message containing the
  527. UNACCEPTABLE_ADDRESSES notification (and possibly COOKIE2).
  528. o Updates the IP addresses in the IKE_SA with the values from the IP
  529. header. (Using the address from the IP header is consistent with
  530. normal IKEv2, and allows IKEv2 to work with NATs without needing
  531. unilateral self-address fixing [UNSAF].)
  532. o Replies with an INFORMATIONAL response:
  533. Initiator Responder
  534. ----------- -----------
  535. <-- HDR, SK { [N(NAT_DETECTION_SOURCE_IP),
  536. N(NAT_DETECTION_DESTINATION_IP)],
  537. [N(COOKIE2)] }
  538. o If necessary, initiates a return routability check for the new
  539. initiator address (see Section 3.7) and waits until the check is
  540. completed.
  541. o Updates the IPsec SAs associated with this IKE_SA with the new
  542. addresses.
  543. Eronen Standards Track [Page 14]
  544. RFC 4555 MOBIKE Protocol June 2006
  545. o If NAT Traversal is supported and NAT detection payloads were
  546. included, enables or disables NAT Traversal.
  547. When the initiator receives the reply:
  548. o If an address change has occurred after the request was first
  549. sent, no MOBIKE processing is done for the reply message because a
  550. new UPDATE_SA_ADDRESSES is going to be sent (or has already been
  551. sent, if window size greater than one is in use).
  552. o If the response contains the UNEXPECTED_NAT_DETECTED notification,
  553. the initiator processes the response as described in Section 3.9.
  554. o If the response contains an UNACCEPTABLE_ADDRESSES notification,
  555. the initiator MAY select another addresses and retry the exchange,
  556. keep on using the previously used addresses, or disconnect.
  557. o It updates the IPsec SAs associated with this IKE_SA with the new
  558. addresses (unless this was already done earlier before sending the
  559. request; this is the case when no return routability check was
  560. required).
  561. o If NAT Traversal is supported and NAT detection payloads were
  562. included, the initiator enables or disables NAT Traversal.
  563. There is one exception to the rule that the responder never updates
  564. any IPsec SAs without receiving an UPDATE_SA_ADDRESSES request. If
  565. the source address that the responder is currently using becomes
  566. unavailable (i.e., sending packets using that source address is no
  567. longer possible), the responder is allowed to update the IPsec SAs to
  568. use some other address (in addition to initiating the procedure
  569. described in the next section).
  570. 3.6. Updating Additional Addresses
  571. As described in Section 3.4, both the initiator and responder can
  572. send a list of additional addresses in the IKE_AUTH exchange. This
  573. information can be updated by sending an INFORMATIONAL exchange
  574. request message that contains either one or more
  575. ADDITIONAL_IP4_ADDRESS/ADDITIONAL_IP6_ADDRESS notifications or the
  576. NO_ADDITIONAL_ADDRESSES notification.
  577. If the exchange initiator has only a single IP address, it is placed
  578. in the IP header, and the message contains the
  579. NO_ADDITIONAL_ADDRESSES notification. If the exchange initiator has
  580. several addresses, one of them is placed in the IP header, and the
  581. rest in ADDITIONAL_IP4_ADDRESS/ADDITIONAL_IP6_ADDRESS notifications.
  582. Eronen Standards Track [Page 15]
  583. RFC 4555 MOBIKE Protocol June 2006
  584. The new list of addresses replaces the old information (in other
  585. words, there are no separate add/delete operations; instead, the
  586. complete list is sent every time these notifications are used).
  587. The message exchange will look as follows:
  588. Initiator Responder
  589. ----------- -----------
  590. HDR, SK { [N(ADDITIONAL_*_ADDRESS)+],
  591. [N(NO_ADDITIONAL_ADDRESSES)],
  592. [N(NO_NATS_ALLOWED)],
  593. [N(COOKIE2)] } -->
  594. <-- HDR, SK { [N(COOKIE2)] }
  595. When a request containing an ADDITIONAL_IP4_ADDRESS,
  596. ADDITIONAL_IP6_ADDRESS, or NO_ADDITIONAL_ADDRESSES notification is
  597. received, the exchange responder:
  598. o Determines whether it has already received a newer request to
  599. update the addresses (if a window size greater than one is used,
  600. it is possible that the requests are received out of order). If
  601. it has, a response message is sent, but the address set is not
  602. updated.
  603. o If the NO_NATS_ALLOWED notification is present, processes it as
  604. described in Section 3.9.
  605. o Updates the set of peer addresses based on the IP header and the
  606. ADDITIONAL_IP4_ADDRESS, ADDITIONAL_IP6_ADDRESS, and
  607. NO_ADDITIONAL_ADDRESSES notifications.
  608. o Sends a response.
  609. The initiator MAY include these notifications in the same request as
  610. UPDATE_SA_ADDRESSES.
  611. If the request to update the addresses is retransmitted using several
  612. different source addresses, a new INFORMATIONAL request MUST be sent.
  613. There is one additional complication: when the responder wants to
  614. update the address set, the currently used addresses may no longer
  615. work. In this case, the responder uses the additional address list
  616. received from the initiator, and the list of its own addresses, to
  617. determine which addresses to use for sending the INFORMATIONAL
  618. request. This is the only time the responder uses the additional
  619. address list received from the initiator.
  620. Eronen Standards Track [Page 16]
  621. RFC 4555 MOBIKE Protocol June 2006
  622. Note that both peers can have their own policies about what addresses
  623. are acceptable to use, and certain types of policies may simplify
  624. implementation. For instance, if the responder has a single fixed
  625. address, it does not need to process the ADDITIONAL_IP4_ADDRESS and
  626. ADDITIONAL_IP6_ADDRESS notifications it receives (beyond ignoring
  627. unrecognized status notifications, as already required in [IKEv2]).
  628. Furthermore, if the initiator has a policy saying that only the
  629. responder address specified in local configuration is acceptable, it
  630. does not have to send its own additional addresses to the responder
  631. (since the responder does not need them except when changing its own
  632. address).
  633. 3.7. Return Routability Check
  634. Both parties can optionally verify that the other party can actually
  635. receive packets at the claimed address. By default, this "return
  636. routability check" SHOULD be performed. In environments where the
  637. peer is expected to be well-behaved (many corporate VPNs, for
  638. instance), or the address can be verified by some other means (e.g.,
  639. a certificate issued by an authority trusted for this purpose), the
  640. return routability check MAY be omitted.
  641. The check can be done before updating the IPsec SAs, immediately
  642. after updating them, or continuously during the connection. By
  643. default, the return routability check SHOULD be done before updating
  644. the IPsec SAs, but in some environments it MAY be postponed until
  645. after the IPsec SAs have been updated.
  646. Any INFORMATIONAL exchange can be used for return routability
  647. purposes, with one exception (described later in this section): when
  648. a valid response is received, we know the other party can receive
  649. packets at the claimed address.
  650. To ensure that the peer cannot generate the correct INFORMATIONAL
  651. response without seeing the request, a new payload is added to
  652. INFORMATIONAL messages. The sender of an INFORMATIONAL request MAY
  653. include a COOKIE2 notification, and if included, the recipient of an
  654. INFORMATIONAL request MUST copy the notification as-is to the
  655. response. When processing the response, the original sender MUST
  656. verify that the value is the same one as sent. If the values do not
  657. match, the IKE_SA MUST be closed. (See also Section 4.2.5 for the
  658. format of the COOKIE2 notification.)
  659. Eronen Standards Track [Page 17]
  660. RFC 4555 MOBIKE Protocol June 2006
  661. The exception mentioned earlier is as follows: If the same
  662. INFORMATIONAL request has been sent to several different addresses
  663. (i.e., the destination address in the IKE_SA has been updated after
  664. the request was first sent), receiving the INFORMATIONAL response
  665. does not tell which address is the working one. In this case, a new
  666. INFORMATIONAL request needs to be sent to check return routability.
  667. 3.8. Changes in NAT Mappings
  668. IKEv2 performs Dead Peer Detection (DPD) if there has recently been
  669. only outgoing traffic on all of the SAs associated with the IKE_SA.
  670. In MOBIKE, these messages can also be used to detect if NAT mappings
  671. have changed (for example, if the keepalive interval is too long, or
  672. the NAT box is rebooted). More specifically, if both peers support
  673. both this specification and NAT Traversal, the
  674. NAT_DETECTION_SOURCE_IP and NAT_DETECTION_DESTINATION_IP
  675. notifications MAY be included in any INFORMATIONAL request; if the
  676. request includes them, the responder MUST also include them in the
  677. response (but no other action is taken, unless otherwise specified).
  678. When the initiator is behind a NAT (as detected earlier using the
  679. NAT_DETECTION_SOURCE_IP and NAT_DETECTION_DESTINATION_IP
  680. notifications), it SHOULD include these notifications in DPD messages
  681. and compare the received NAT_DETECTION_DESTINATION_IP notifications
  682. with the value from the previous UPDATE_SA_ADDRESSES response (or the
  683. IKE_SA_INIT response). If the values do not match, the IP address
  684. and/or port seen by the responder has changed, and the initiator
  685. SHOULD send UPDATE_SA_ADDRESSES as described in Section 3.5. If the
  686. initiator suspects that the NAT mapping has changed, it MAY also skip
  687. the detection step and send UPDATE_SA_ADDRESSES immediately. This
  688. saves one roundtrip if the NAT mapping has indeed changed.
  689. Note that this approach to detecting NAT mapping changes may cause an
  690. extra address update when the IKE_SA is rekeyed. This is because the
  691. NAT_DETECTION_DESTINATION_IP hash also includes the IKE Security
  692. Parameter Indexes (SPIs), which change when performing rekeying.
  693. This unnecessary update is harmless, however.
  694. When MOBIKE is in use, the dynamic updates (specified in [IKEv2],
  695. Section 2.23), where the peer address and port are updated from the
  696. last valid authenticated packet, work in a slightly different
  697. fashion. The host not behind a NAT MUST NOT use these dynamic
  698. updates for IKEv2 packets, but MAY use them for ESP packets. This
  699. ensures that an INFORMATIONAL exchange that does not contain
  700. UPDATE_SA_ADDRESSES does not cause any changes, allowing it to be
  701. used for, e.g., testing whether a particular path works.
  702. Eronen Standards Track [Page 18]
  703. RFC 4555 MOBIKE Protocol June 2006
  704. 3.9. NAT Prohibition
  705. Basic IKEv2/IPsec without NAT Traversal support may work across some
  706. types of one-to-one "basic" NATs and IPv4/IPv6 translation agents in
  707. tunnel mode. This is because the IKEv2 integrity checksum does not
  708. cover the addresses in the IP header. This may be considered a
  709. problem in some circumstances, because in some sense any modification
  710. of the IP addresses can be considered an attack.
  711. This specification addresses the issue by protecting the IP addresses
  712. when NAT Traversal has not been explicitly enabled. This means that
  713. MOBIKE without NAT Traversal support will not work if the paths
  714. contain NATs, IPv4/IPv6 translation agents, or other nodes that
  715. modify the addresses in the IP header. This feature is mainly
  716. intended for IPv6 and site-to-site VPN cases, where the
  717. administrators may know beforehand that NATs are not present, and
  718. thus any modification to the packet can be considered an attack.
  719. More specifically, when NAT Traversal is not enabled, all messages
  720. that can update the addresses associated with the IKE_SA and/or IPsec
  721. SAs (the first IKE_AUTH request and all INFORMATIONAL requests that
  722. contain any of the following notifications: UPDATE_SA_ADDRESSES,
  723. ADDITIONAL_IP4_ADDRESS, ADDITIONAL_IP6_ADDRESS,
  724. NO_ADDITIONAL_ADDRESSES) MUST also include a NO_NATS_ALLOWED
  725. notification. The exchange responder MUST verify that the contents
  726. of the NO_NATS_ALLOWED notification match the addresses in the IP
  727. header. If they do not match, a response containing an
  728. UNEXPECTED_NAT_DETECTED notification is sent. The response message
  729. is sent to the address and port that the corresponding request came
  730. from, not to the address contained in the NO_NATS_ALLOWED
  731. notification.
  732. If the exchange initiator receives an UNEXPECTED_NAT_DETECTED
  733. notification in response to its INFORMATIONAL request, it SHOULD
  734. retry the operation several times using new INFORMATIONAL requests.
  735. Similarly, if the initiator receives UNEXPECTED_NAT_DETECTED in the
  736. IKE_AUTH exchange, it SHOULD retry IKE_SA establishment several
  737. times, starting from a new IKE_SA_INIT request. This ensures that an
  738. attacker who is able to modify only a single packet does not
  739. unnecessarily cause a path to remain unused. The exact number of
  740. retries is not specified in this document because it does not affect
  741. interoperability. However, because the IKE message will also be
  742. rejected if the attacker modifies the integrity checksum field, a
  743. reasonable number here would be the number of retries that is being
  744. used for normal retransmissions.
  745. Eronen Standards Track [Page 19]
  746. RFC 4555 MOBIKE Protocol June 2006
  747. If an UNEXPECTED_NAT_DETECTED notification is sent, the exchange
  748. responder MUST NOT use the contents of the NO_NATS_ALLOWED
  749. notification for any other purpose than possibly logging the
  750. information for troubleshooting purposes.
  751. 3.10. Path Testing
  752. IKEv2 Dead Peer Detection allows the peers to detect if the currently
  753. used path has stopped working. However, if either of the peers has
  754. several addresses, Dead Peer Detection alone does not tell which of
  755. the other paths might work.
  756. If required by its address selection policy, the initiator can use
  757. normal IKEv2 INFORMATIONAL request/response messages to test whether
  758. a certain path works. Implementations MAY do path testing even if
  759. the path currently being used is working to, for example, detect when
  760. a better (but previously unavailable) path becomes available.
  761. 3.11. Failure Recovery and Timeouts
  762. In MOBIKE, the initiator is responsible for detecting and recovering
  763. from most failures.
  764. To give the initiator enough time to detect the error, the responder
  765. SHOULD use relatively long timeout intervals when, for instance,
  766. retransmitting IKEv2 requests or deciding whether to initiate Dead
  767. Peer Detection. While no specific timeout lengths are required, it
  768. is suggested that responders continue retransmitting IKEv2 requests
  769. for at least five minutes before giving up.
  770. 3.12. Dead Peer Detection
  771. MOBIKE uses the same Dead Peer Detection method as normal IKEv2, but
  772. as addresses may change, it is not sufficient to just verify that the
  773. peer is alive, but also that it is synchronized with the address
  774. updates and has not, for instance, ignored an address update due to
  775. failure to complete return routability test. This means that when
  776. there are incoming IPsec packets, MOBIKE nodes SHOULD inspect the
  777. addresses used in those packets and determine that they correspond to
  778. those that should be employed. If they do not, such packets SHOULD
  779. NOT be used as evidence that the peer is able to communicate with
  780. this node and or that the peer has received all address updates.
  781. Eronen Standards Track [Page 20]
  782. RFC 4555 MOBIKE Protocol June 2006
  783. 4. Payload Formats
  784. This specification defines several new IKEv2 Notify payload types.
  785. See [IKEv2], Section 3.10, for a general description of the Notify
  786. payload.
  787. 4.1. Notify Messages - Error Types
  788. 4.1.1. UNACCEPTABLE_ADDRESSES Notify Payload
  789. The responder can include this notification in an INFORMATIONAL
  790. exchange response to indicate that the address change in the
  791. corresponding request message (which contained an UPDATE_SA_ADDRESSES
  792. notification) was not carried out.
  793. The Notify Message Type for UNACCEPTABLE_ADDRESSES is 40. The
  794. Protocol ID and SPI Size fields are set to zero. There is no data
  795. associated with this Notify type.
  796. 4.1.2. UNEXPECTED_NAT_DETECTED Notify Payload
  797. See Section 3.9 for a description of this notification.
  798. The Notify Message Type for UNEXPECTED_NAT_DETECTED is 41. The
  799. Protocol ID and SPI Size fields are set to zero. There is no data
  800. associated with this Notify type.
  801. 4.2. Notify Messages - Status Types
  802. 4.2.1. MOBIKE_SUPPORTED Notify Payload
  803. The MOBIKE_SUPPORTED notification is included in the IKE_AUTH
  804. exchange to indicate that the implementation supports this
  805. specification.
  806. The Notify Message Type for MOBIKE_SUPPORTED is 16396. The Protocol
  807. ID and SPI Size fields are set to zero. The notification data field
  808. MUST be left empty (zero-length) when sending, and its contents (if
  809. any) MUST be ignored when this notification is received. This allows
  810. the field to be used by future versions of this protocol.
  811. 4.2.2. ADDITIONAL_IP4_ADDRESS and ADDITIONAL_IP6_ADDRESS Notify
  812. Payloads
  813. Both parties can include ADDITIONAL_IP4_ADDRESS and/or
  814. ADDITIONAL_IP6_ADDRESS notifications in the IKE_AUTH exchange and
  815. INFORMATIONAL exchange request messages; see Section 3.4 and
  816. Section 3.6 for more detailed description.
  817. Eronen Standards Track [Page 21]
  818. RFC 4555 MOBIKE Protocol June 2006
  819. The Notify Message Types for ADDITIONAL_IP4_ADDRESS and
  820. ADDITIONAL_IP6_ADDRESS are 16397 and 16398, respectively. The
  821. Protocol ID and SPI Size fields are set to zero. The data associated
  822. with these Notify types is either a four-octet IPv4 address or a
  823. 16-octet IPv6 address.
  824. 4.2.3. NO_ADDITIONAL_ADDRESSES Notify Payload
  825. The NO_ADDITIONAL_ADDRESSES notification can be included in an
  826. INFORMATIONAL exchange request message to indicate that the exchange
  827. initiator does not have addresses beyond the one used in the exchange
  828. (see Section 3.6 for more detailed description).
  829. The Notify Message Type for NO_ADDITIONAL_ADDRESSES is 16399. The
  830. Protocol ID and SPI Size fields are set to zero. There is no data
  831. associated with this Notify type.
  832. 4.2.4. UPDATE_SA_ADDRESSES Notify Payload
  833. This notification is included in INFORMATIONAL exchange requests sent
  834. by the initiator to update addresses of the IKE_SA and IPsec SAs (see
  835. Section 3.5).
  836. The Notify Message Type for UPDATE_SA_ADDRESSES is 16400. The
  837. Protocol ID and SPI Size fields are set to zero. There is no data
  838. associated with this Notify type.
  839. 4.2.5. COOKIE2 Notify Payload
  840. This notification MAY be included in any INFORMATIONAL request for
  841. return routability check purposes (see Section 3.7). If the
  842. INFORMATIONAL request includes COOKIE2, the exchange responder MUST
  843. copy the notification to the response message.
  844. The data associated with this notification MUST be between 8 and 64
  845. octets in length (inclusive), and MUST be chosen by the exchange
  846. initiator in a way that is unpredictable to the exchange responder.
  847. The Notify Message Type for this message is 16401. The Protocol ID
  848. and SPI Size fields are set to zero.
  849. 4.2.6. NO_NATS_ALLOWED Notify Payload
  850. See Section 3.9 for a description of this notification.
  851. The Notify Message Type for this message is 16402. The notification
  852. data contains the IP addresses and ports from/to which the packet was
  853. sent. For IPv4, the notification data is 12 octets long and is
  854. defined as follows:
  855. Eronen Standards Track [Page 22]
  856. RFC 4555 MOBIKE Protocol June 2006
  857. 1 2 3
  858. 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
  859. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  860. ! Source IPv4 address !
  861. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  862. ! Destination IPv4 address !
  863. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  864. ! Source port ! Destination port !
  865. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  866. For IPv6, the notification data is 36 octets long and is defined as
  867. follows:
  868. 1 2 3
  869. 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
  870. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  871. ! !
  872. ! Source IPv6 address !
  873. ! !
  874. ! !
  875. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  876. ! !
  877. ! Destination IPv6 address !
  878. ! !
  879. ! !
  880. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  881. ! Source port ! Destination port !
  882. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  883. The Protocol ID and SPI Size fields are set to zero.
  884. Eronen Standards Track [Page 23]
  885. RFC 4555 MOBIKE Protocol June 2006
  886. 5. Security Considerations
  887. The main goals of this specification are to maintain the security
  888. offered by usual IKEv2 procedures and to counter mobility-related
  889. threats in an appropriate manner. This section describes new
  890. security considerations introduced by MOBIKE. See [IKEv2] for
  891. security considerations for IKEv2 in general.
  892. 5.1. Traffic Redirection and Hijacking
  893. MOBIKE payloads relating to updating addresses are encrypted,
  894. integrity protected, and replay protected using the IKE_SA. This
  895. assures that no one except the participants can, for instance, give a
  896. control message to change the addresses.
  897. However, as with normal IKEv2, the actual IP addresses in the IP
  898. header are not covered by the integrity protection. This means that
  899. a NAT between the parties (or an attacker acting as a NAT) can modify
  900. the addresses and cause incorrect tunnel header (outer) IP addresses
  901. to be used for IPsec SAs. The scope of this attack is limited mainly
  902. to denial of service because all traffic is protected using IPsec.
  903. This attack can only be launched by on-path attackers that are
  904. capable of modifying IKEv2 messages carrying NAT detection payloads
  905. (such as Dead Peer Detection messages). By modifying the IP header
  906. of these packets, the attackers can lead the peers to believe a new
  907. NAT or a changed NAT binding exists between them. The attack can
  908. continue as long as the attacker is on the path, modifying the IKEv2
  909. messages. If this is no longer the case, IKEv2 and MOBIKE mechanisms
  910. designed to detect NAT mapping changes will eventually recognize that
  911. the intended traffic is not getting through, and will update the
  912. addresses appropriately.
  913. MOBIKE introduces the NO_NATS_ALLOWED notification that is used to
  914. detect modification, by outsiders, of the addresses in the IP header.
  915. When this notification is used, communication through NATs and other
  916. address translators is impossible, so it is sent only when not doing
  917. NAT Traversal. This feature is mainly intended for IPv6 and site-to-
  918. site VPN cases, where the administrators may know beforehand that
  919. NATs are not present.
  920. 5.2. IPsec Payload Protection
  921. The use of IPsec protection on payload traffic protects the
  922. participants against disclosure of the contents of the traffic,
  923. should the traffic end up in an incorrect destination or be subject
  924. to eavesdropping.
  925. Eronen Standards Track [Page 24]
  926. RFC 4555 MOBIKE Protocol June 2006
  927. However, security associations originally created for the protection
  928. of a specific flow between specific addresses may be updated by
  929. MOBIKE later on. This has to be taken into account if the (outer) IP
  930. address of the peer was used when deciding what kind of IPsec SAs the
  931. peer is allowed to create.
  932. For instance, the level of required protection might depend on the
  933. current location of the VPN client, or access might be allowed only
  934. from certain IP addresses.
  935. It is recommended that security policies, for peers that are allowed
  936. to use MOBIKE, are configured in a manner that takes into account
  937. that a single security association can be used at different times
  938. through paths of varying security properties.
  939. This is especially critical for traffic selector authorization. The
  940. (logical) Peer Authorization Database (PAD) contains the information
  941. used by IKEv2 when determining what kind of IPsec SAs a peer is
  942. allowed to create. This process is described in [IPsecArch], Section
  943. 4.4.3. When a peer requests the creation of an IPsec SA with some
  944. traffic selectors, the PAD must contain "Child SA Authorization Data"
  945. linking the identity authenticated by IKEv2 and the addresses
  946. permitted for traffic selectors. See also [Clarifications] for a
  947. more extensive discussion.
  948. It is important to note that simply sending IKEv2 packets using some
  949. particular address does not automatically imply a permission to
  950. create IPsec SAs with that address in the traffic selectors.
  951. However, some implementations are known to use policies where simply
  952. being reachable at some address X implies a temporary permission to
  953. create IPsec SAs for address X. Here "being reachable" usually means
  954. the ability to send (or spoof) IP packets with source address X and
  955. receive (or eavesdrop) packets sent to X.
  956. Using this kind of policies or extensions with MOBIKE may need
  957. special care to enforce the temporary nature of the permission. For
  958. example, when the peer moves to some other address Y (and is no
  959. longer reachable at X), it might be necessary to close IPsec SAs with
  960. traffic selectors matching X. However, these interactions are beyond
  961. the scope of this document.
  962. 5.3. Denial-of-Service Attacks against Third Parties
  963. Traffic redirection may be performed not just to gain access to the
  964. traffic or to deny service to the peers, but also to cause a denial-
  965. of-service attack on a third party. For instance, a high-speed TCP
  966. session or a multimedia stream may be redirected towards a victim
  967. host, causing its communications capabilities to suffer.
  968. Eronen Standards Track [Page 25]
  969. RFC 4555 MOBIKE Protocol June 2006
  970. The attackers in this threat can be either outsiders or even one of
  971. the IKEv2 peers. In usual VPN usage scenarios, attacks by the peers
  972. can be easily dealt with if the authentication performed in the
  973. initial IKEv2 negotiation can be traced to persons who can be held
  974. responsible for the attack. This may not be the case in all
  975. scenarios, particularly with opportunistic approaches to security.
  976. If the attack is launched by an outsider, the traffic flow would
  977. normally stop soon due to the lack of responses (such as transport
  978. layer acknowledgements). However, if the original recipient of the
  979. flow is malicious, it could maintain the traffic flow for an extended
  980. period of time, since it often would be able to send the required
  981. acknowledgements (see [Aura02] for more discussion).
  982. It should also be noted, as shown in [Bombing], that without ingress
  983. filtering in the attacker's network, such attacks are already
  984. possible simply by sending spoofed packets from the attacker to the
  985. victim directly. Furthermore, if the attacker's network has ingress
  986. filtering, this attack is largely prevented for MOBIKE as well.
  987. Consequently, it makes little sense to protect against attacks of
  988. similar nature in MOBIKE. However, it still makes sense to limit the
  989. amplification capabilities provided to attackers, so that they cannot
  990. use stream redirection to send a large number of packets to the
  991. victim by sending just a few packets themselves.
  992. This specification includes return routability tests to limit the
  993. duration of any "third party bombing" attacks by off-path (relative
  994. to the victim) attackers. The tests are authenticated messages that
  995. the peer has to respond to, and can be performed before the address
  996. change takes effect, immediately afterwards, or even periodically
  997. during the session. The tests contain unpredictable data, and only
  998. someone who has the keys associated with the IKE SA and has seen the
  999. request packet can properly respond to the test.
  1000. The duration of the attack can also be limited if the victim reports
  1001. the unwanted traffic to the originating IPsec tunnel endpoint using
  1002. ICMP error messages or INVALID_SPI notifications. As described in
  1003. [IKEv2], Section 2.21, this SHOULD trigger a liveness test, which
  1004. also doubles as a return routability check if the COOKIE2
  1005. notification is included.
  1006. 5.4. Spoofing Network Connectivity Indications
  1007. Attackers may spoof various indications from lower layers and the
  1008. network in an effort to confuse the peers about which addresses are
  1009. or are not working. For example, attackers may spoof link-layer
  1010. error messages in an effort to cause the parties to move their
  1011. traffic elsewhere or even to disconnect. Attackers may also spoof
  1012. Eronen Standards Track [Page 26]
  1013. RFC 4555 MOBIKE Protocol June 2006
  1014. information related to network attachments, router discovery, and
  1015. address assignments in an effort to make the parties believe they
  1016. have Internet connectivity when, in reality, they do not.
  1017. This may cause use of non-preferred addresses or even denial of
  1018. service.
  1019. MOBIKE does not provide any protection of its own for indications
  1020. from other parts of the protocol stack. These vulnerabilities can be
  1021. mitigated through the use of techniques specific to the other parts
  1022. of the stack, such as validation of ICMP errors [ICMPAttacks], link
  1023. layer security, or the use of [SEND] to protect IPv6 Router and
  1024. Neighbor Discovery.
  1025. Ultimately, MOBIKE depends on the delivery of IKEv2 messages to
  1026. determine which paths can be used. If IKEv2 messages sent using a
  1027. particular source and destination addresses reach the recipient and a
  1028. reply is received, MOBIKE will usually consider the path working; if
  1029. no reply is received even after retransmissions, MOBIKE will suspect
  1030. the path is broken. An attacker who can consistently control the
  1031. delivery or non-delivery of the IKEv2 messages in the network can
  1032. thus influence which addresses actually get used.
  1033. 5.5. Address and Topology Disclosure
  1034. MOBIKE address updates and the ADDITIONAL_IP4_ADDRESS/
  1035. ADDITIONAL_IP6_ADDRESS notifications reveal information about which
  1036. networks the peers are connected to.
  1037. For example, consider a host A with two network interfaces: a
  1038. cellular connection and a wired Ethernet connection to a company LAN.
  1039. If host A now contacts host B using IKEv2 and sends
  1040. ADDITIONAL_IP4_ADDRESS/ADDITIONAL_IP6_ADDRESS notifications, host B
  1041. receives additional information it might not otherwise know. If host
  1042. A used the cellular connection for the IKEv2 traffic, host B can also
  1043. see the company LAN address (and perhaps further guess that host A is
  1044. used by an employee of that company). If host A used the company LAN
  1045. to make the connection, host B can see that host A has a subscription
  1046. from this particular cellular operator.
  1047. These additional addresses can also disclose more accurate location
  1048. information than just a single address. Suppose that host A uses its
  1049. cellular connection for IKEv2 traffic, but also sends an
  1050. ADDITIONAL_IP4_ADDRESS notification containing an IP address
  1051. corresponding to, say, a wireless LAN at a particular coffee shop
  1052. location. It is likely that host B can now make a much better guess
  1053. at A's location than would be possible based on the cellular IP
  1054. address alone.
  1055. Eronen Standards Track [Page 27]
  1056. RFC 4555 MOBIKE Protocol June 2006
  1057. Furthermore, as described in Section 3.4, some of the addresses could
  1058. also be private addresses behind a NAT.
  1059. In many environments, disclosing address information is not a problem
  1060. (and indeed it cannot be avoided if the hosts wish to use those
  1061. addresses for IPsec traffic). For instance, a remote access VPN
  1062. client could consider the corporate VPN gateway sufficiently
  1063. trustworthy for this purpose. Furthermore, the
  1064. ADDITIONAL_IP4_ADDRESS and ADDITIONAL_IP6_ADDRESS notifications are
  1065. sent encrypted, so the addresses are not visible to eavesdroppers
  1066. (unless, of course, they are later used for sending IKEv2/IPsec
  1067. traffic).
  1068. However, if MOBIKE is used in some more opportunistic approach, it
  1069. can be desirable to limit the information that is sent. Naturally,
  1070. the peers do not have to disclose any addresses they do not want to
  1071. use for IPsec traffic. Also, as noted in Section 3.6, an initiator
  1072. whose policy is to always use the locally configured responder
  1073. address does not have to send any ADDITIONAL_IP4_ADDRESS/
  1074. ADDITIONAL_IP6_ADDRESS payloads.
  1075. 6. IANA Considerations
  1076. This document does not create any new namespaces to be maintained by
  1077. IANA, but it requires new values in namespaces that have been defined
  1078. in the IKEv2 base specification [IKEv2].
  1079. This document defines several new IKEv2 notifications whose values
  1080. have been allocated from the "IKEv2 Notify Message Types" namespace.
  1081. Notify Messages - Error Types Value
  1082. ----------------------------- -----
  1083. UNACCEPTABLE_ADDRESSES 40
  1084. UNEXPECTED_NAT_DETECTED 41
  1085. Notify Messages - Status Types Value
  1086. ------------------------------ -----
  1087. MOBIKE_SUPPORTED 16396
  1088. ADDITIONAL_IP4_ADDRESS 16397
  1089. ADDITIONAL_IP6_ADDRESS 16398
  1090. NO_ADDITIONAL_ADDRESSES 16399
  1091. UPDATE_SA_ADDRESSES 16400
  1092. COOKIE2 16401
  1093. NO_NATS_ALLOWED 16402
  1094. These notifications are described in Section 4.
  1095. Eronen Standards Track [Page 28]
  1096. RFC 4555 MOBIKE Protocol June 2006
  1097. 7. Acknowledgements
  1098. This document is a collaborative effort of the entire MOBIKE WG. We
  1099. would particularly like to thank Jari Arkko, Tuomas Aura, Marcelo
  1100. Bagnulo, Stephane Beaulieu, Elwyn Davies, Lakshminath Dondeti,
  1101. Francis Dupont, Paul Hoffman, James Kempf, Tero Kivinen, Pete McCann,
  1102. Erik Nordmark, Mohan Parthasarathy, Pekka Savola, Bill Sommerfeld,
  1103. Maureen Stillman, Shinta Sugimoto, Hannes Tschofenig, and Sami
  1104. Vaarala. This document also incorporates ideas and text from earlier
  1105. MOBIKE-like protocol proposals, including [AddrMgmt], [Kivinen],
  1106. [MOPO], and [SMOBIKE], and the MOBIKE design document [Design].
  1107. 8. References
  1108. 8.1. Normative References
  1109. [IKEv2] Kaufman, C., "Internet Key Exchange (IKEv2)
  1110. Protocol", RFC 4306, December 2005.
  1111. [IPsecArch] Kent, S. and K. Seo, "Security Architecture for the
  1112. Internet Protocol", RFC 4301, December 2005.
  1113. [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
  1114. Requirement Levels", RFC 2119, March 1997.
  1115. 8.2. Informative References
  1116. [AddrMgmt] Dupont, F., "Address Management for IKE version 2",
  1117. Work in Progress, November 2005.
  1118. [Aura02] Aura, T., Roe, M., and J. Arkko, "Security of
  1119. Internet Location Management", Proc. 18th Annual
  1120. Computer Security Applications Conference (ACSAC),
  1121. December 2002.
  1122. [Bombing] Dupont, F., "A note about 3rd party bombing in
  1123. Mobile IPv6", Work in Progress, December 2005.
  1124. [Clarifications] Eronen, P. and P. Hoffman, "IKEv2 Clarifications
  1125. and Implementation Guidelines", Work in Progress,
  1126. February 2006.
  1127. [DNA4] Aboba, B., Carlson, J., and S. Cheshire, "Detecting
  1128. Network Attachment in IPv4 (DNAv4)", RFC 4436,
  1129. March 2006.
  1130. Eronen Standards Track [Page 29]
  1131. RFC 4555 MOBIKE Protocol June 2006
  1132. [DNA6] Narayanan, S., Daley, G., and N. Montavont,
  1133. "Detecting Network Attachment in IPv6 - Best
  1134. Current Practices for hosts", Work in Progress,
  1135. October 2005.
  1136. [Design] Kivinen, T. and H. Tschofenig, "Design of the
  1137. MOBIKE protocol", Work in Progress, January 2006.
  1138. [ICMPAttacks] Gont, F., "ICMP attacks against TCP", Work in
  1139. Progress, October 2005.
  1140. [Kivinen] Kivinen, T., "MOBIKE protocol", Work in Progress,
  1141. February 2004.
  1142. [MIP4] Perkins, C., "IP Mobility Support for IPv4",
  1143. RFC 3344, August 2002.
  1144. [MIP6] Johnson, D., Perkins, C., and J. Arkko, "Mobility
  1145. Support in IPv6", RFC 3775, June 2004.
  1146. [MOPO] Eronen, P., "Mobility Protocol Options for IKEv2
  1147. (MOPO-IKE)", Work in Progress, February 2005.
  1148. [RFC2461] Narten, T., Nordmark, E., and W. Simpson, "Neighbor
  1149. Discovery for IP Version 6 (IPv6)", RFC 2461,
  1150. December 1998.
  1151. [SEND] Arkko, J., Kempf, J., Zill, B., and P. Nikander,
  1152. "SEcure Neighbor Discovery (SEND)", RFC 3971,
  1153. March 2005.
  1154. [SMOBIKE] Eronen, P. and H. Tschofenig, "Simple Mobility and
  1155. Multihoming Extensions for IKEv2 (SMOBIKE)",
  1156. Work in Progress, March 2004.
  1157. [STUN] Rosenberg, J., Weinberger, J., Huitema, C., and R.
  1158. Mahy, "STUN - Simple Traversal of User Datagram
  1159. Protocol (UDP) Through Network Address Translators
  1160. (NATs)", RFC 3489, March 2003.
  1161. [UNSAF] Daigle, L., "IAB Considerations for UNilateral
  1162. Self-Address Fixing (UNSAF) Across Network Address
  1163. Translation", RFC 3424, November 2002.
  1164. Eronen Standards Track [Page 30]
  1165. RFC 4555 MOBIKE Protocol June 2006
  1166. Appendix A. Implementation Considerations
  1167. A.1. Links from SPD Cache to Outbound SAD Entries
  1168. [IPsecArch], Section 4.4.2, says that "For outbound processing, each
  1169. SAD entry is pointed to by entries in the SPD-S part of the SPD
  1170. cache". The document does not specify how exactly this "pointing" is
  1171. done, since this is an implementation detail that does not have to be
  1172. standardized.
  1173. However, it is clear that the links between the SPD cache and the SAD
  1174. have to be done correctly to ensure that outbound packets are sent
  1175. over the right SA. Some implementations are known to have problems
  1176. in this area.
  1177. In particular, simply storing the (remote tunnel header IP address,
  1178. remote SPI) pair in the SPD cache is not sufficient, since the pair
  1179. does not always uniquely identify a single SAD entry. For instance,
  1180. two hosts behind the same NAT can accidentally happen to choose the
  1181. same SPI value. The situation can also occur when a host is assigned
  1182. an IP address previously used by some other host, and the SAs
  1183. associated with the old host have not yet been deleted by Dead Peer
  1184. Detection. This may lead to packets being sent over the wrong SA or,
  1185. if the key management daemon ensures the pair is unique, denying the
  1186. creation of otherwise valid SAs.
  1187. Storing the remote tunnel header IP address in the SPD cache may also
  1188. complicate the implementation of MOBIKE, since the address can change
  1189. during the lifetime of the SA. Thus, we recommend implementing the
  1190. links between the SPD cache and the SAD in a way that does not
  1191. require modification when the tunnel header IP address is updated by
  1192. MOBIKE.
  1193. A.2. Creating Outbound SAs
  1194. When an outbound packet requires IPsec processing but no suitable SA
  1195. exists, a new SA will be created. In this case, the host has to
  1196. determine (1) who is the right peer for this SA, (2) whether the host
  1197. already has an IKE_SA with this peer, and (3) if no IKE_SA exists,
  1198. the IP address(es) of the peer for contacting it.
  1199. Neither [IPsecArch] nor MOBIKE specifies how exactly these three
  1200. steps are carried out. [IPsecArch], Section 4.4.3.4, says:
  1201. Eronen Standards Track [Page 31]
  1202. RFC 4555 MOBIKE Protocol June 2006
  1203. For example, assume that IKE A receives an outbound packet
  1204. destined for IP address X, a host served by a security gateway.
  1205. RFC 2401 [RFC2401] and this document do not specify how A
  1206. determines the address of the IKE peer serving X. However, any
  1207. peer contacted by A as the presumed representative for X must be
  1208. registered in the PAD in order to allow the IKE exchange to be
  1209. authenticated. Moreover, when the authenticated peer asserts that
  1210. it represents X in its traffic selector exchange, the PAD will be
  1211. consulted to determine if the peer in question is authorized to
  1212. represent X.
  1213. In step 1, there may be more than one possible peer (e.g., several
  1214. security gateways that are allowed to represent X). In step 3, the
  1215. host may need to consult a directory such as DNS to determine the
  1216. peer IP address(es).
  1217. When performing these steps, implementations may use information
  1218. contained in the SPD, the PAD, and possibly some other
  1219. implementation-specific databases. Regardless of how exactly the
  1220. steps are implemented, it is important to remember that IP addresses
  1221. can change, and that an IP address alone does not always uniquely
  1222. identify a single IKE peer (for the same reasons as why the
  1223. combination of the remote IP address and SPI does not uniquely
  1224. identify an outbound IPsec SA; see Appendix A.1). Thus, in steps 1
  1225. and 2 it may be easier to identify the "right peer" using its
  1226. authenticated identity instead of its current IP address. However,
  1227. these implementation details are beyond the scope of this
  1228. specification.
  1229. Author's Address
  1230. Pasi Eronen (editor)
  1231. Nokia Research Center
  1232. P.O. Box 407
  1233. FIN-00045 Nokia Group
  1234. Finland
  1235. EMail: pasi.eronen@nokia.com
  1236. Eronen Standards Track [Page 32]
  1237. RFC 4555 MOBIKE Protocol June 2006
  1238. Full Copyright Statement
  1239. Copyright (C) The Internet Society (2006).
  1240. This document is subject to the rights, licenses and restrictions
  1241. contained in BCP 78, and except as set forth therein, the authors
  1242. retain all their rights.
  1243. This document and the information contained herein are provided on an
  1244. "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
  1245. OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
  1246. ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
  1247. INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
  1248. INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
  1249. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  1250. Intellectual Property
  1251. The IETF takes no position regarding the validity or scope of any
  1252. Intellectual Property Rights or other rights that might be claimed to
  1253. pertain to the implementation or use of the technology described in
  1254. this document or the extent to which any license under such rights
  1255. might or might not be available; nor does it represent that it has
  1256. made any independent effort to identify any such rights. Information
  1257. on the procedures with respect to rights in RFC documents can be
  1258. found in BCP 78 and BCP 79.
  1259. Copies of IPR disclosures made to the IETF Secretariat and any
  1260. assurances of licenses to be made available, or the result of an
  1261. attempt made to obtain a general license or permission for the use of
  1262. such proprietary rights by implementers or users of this
  1263. specification can be obtained from the IETF on-line IPR repository at
  1264. http://www.ietf.org/ipr.
  1265. The IETF invites any interested party to bring to its attention any
  1266. copyrights, patents or patent applications, or other proprietary
  1267. rights that may cover technology that may be required to implement
  1268. this standard. Please address the information to the IETF at
  1269. ietf-ipr@ietf.org.
  1270. Acknowledgement
  1271. Funding for the RFC Editor function is provided by the IETF
  1272. Administrative Support Activity (IASA).
  1273. Eronen Standards Track [Page 33]