idnits 2.17.1 draft-ietf-hip-over-hip-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 144 has weird spacing: '... Length leng...' -- The document date (January 18, 2011) is 4848 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 5201 (Obsoleted by RFC 7401) ** Obsolete normative reference: RFC 5202 (Obsoleted by RFC 7402) ** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126) -- Obsolete informational reference (is this intentional?): RFC 5204 (Obsoleted by RFC 8004) -- Obsolete informational reference (is this intentional?): RFC 5206 (Obsoleted by RFC 8046) == Outdated reference: A later version (-12) exists of draft-ietf-hip-cert-08 Summary: 3 errors (**), 0 flaws (~~), 3 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 HIP Working Group A. Keranen 3 Internet-Draft Ericsson 4 Intended status: Experimental January 18, 2011 5 Expires: July 22, 2011 7 Host Identity Protocol Signaling Message Transport Modes 8 draft-ietf-hip-over-hip-05 10 Abstract 12 This document specifies two transport modes for Host Identity 13 Protocol (HIP) signaling messages that allow conveying them over 14 encrypted connections initiated with the Host Identity Protocol. 16 Status of this Memo 18 This Internet-Draft is submitted in full conformance with the 19 provisions of BCP 78 and BCP 79. 21 Internet-Drafts are working documents of the Internet Engineering 22 Task Force (IETF). Note that other groups may also distribute 23 working documents as Internet-Drafts. The list of current Internet- 24 Drafts is at http://datatracker.ietf.org/drafts/current/. 26 Internet-Drafts are draft documents valid for a maximum of six months 27 and may be updated, replaced, or obsoleted by other documents at any 28 time. It is inappropriate to use Internet-Drafts as reference 29 material or to cite them other than as "work in progress." 31 This Internet-Draft will expire on July 22, 2011. 33 Copyright Notice 35 Copyright (c) 2011 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal 39 Provisions Relating to IETF Documents 40 (http://trustee.ietf.org/license-info) in effect on the date of 41 publication of this document. Please review these documents 42 carefully, as they describe your rights and restrictions with respect 43 to this document. Code Components extracted from this document must 44 include Simplified BSD License text as described in Section 4.e of 45 the Trust Legal Provisions and are provided without warranty as 46 described in the Simplified BSD License. 48 Table of Contents 50 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 51 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 52 3. Transport Mode Negotiation . . . . . . . . . . . . . . . . . . 3 53 3.1. Mode Negotiation in the HIP Base Exchange . . . . . . . . 3 54 3.2. Mode Negotiation After the HIP Base Exchange . . . . . . . 5 55 3.3. Error Notifications . . . . . . . . . . . . . . . . . . . 5 56 4. HIP Messages on Encrypted Connections . . . . . . . . . . . . 5 57 4.1. ESP mode . . . . . . . . . . . . . . . . . . . . . . . . . 6 58 4.2. ESP-TCP mode . . . . . . . . . . . . . . . . . . . . . . . 6 59 5. Recovering from Failed Encrypted Connections . . . . . . . . . 7 60 6. Host Mobility and Multihoming . . . . . . . . . . . . . . . . 7 61 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 62 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8 63 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 64 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 65 10.1. Normative References . . . . . . . . . . . . . . . . . . . 9 66 10.2. Informational References . . . . . . . . . . . . . . . . . 9 67 Appendix A. Mobility and Multihoming Examples . . . . . . . . . . 10 68 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 12 70 1. Introduction 72 Host Identity Protocol (HIP) [RFC5201] signaling messages can be 73 exchanged over plain IP using the protocol number reserved for this 74 purpose, or over UDP using the UDP port reserved for HIP NAT 75 traversal [RFC5770]. When two hosts perform a HIP base exchange, 76 they set up an encrypted connection between them for data traffic, 77 but continue to use plain IP or UDP for HIP signaling messages. 79 This document defines how the encrypted connection can be used also 80 for HIP signaling messages. Two different modes are defined: HIP 81 over Encapsulating Security Payload (ESP) and HIP over TCP. The 82 benefit of sending HIP messages over ESP is that all signaling 83 traffic (including HIP headers) will be encrypted. If HIP messages 84 are sent over TCP (which in turn is transported over ESP), TCP can 85 handle also message fragmentation where needed. 87 2. Terminology 89 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 90 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 91 document are to be interpreted as described in RFC 2119 [RFC2119]. 93 3. Transport Mode Negotiation 95 This section defines how support for different HIP signaling message 96 transport modes is indicated and how the use of different modes is 97 negotiated. 99 3.1. Mode Negotiation in the HIP Base Exchange 101 A HIP host implementing this specification SHOULD indicate the modes 102 it supports, and is willing to use, in the base exchange. The HIP 103 signaling message transport mode negotiation is similar to HIP NAT 104 traversal mode negotiation: first the Responder lists the supported 105 modes in a HIP_TRANSPORT_MODE parameter (see Figure 1) in the R1 106 packet. The modes are listed in priority order; the more preferred 107 mode(s) first. If the Initiator supports, and is willing to use, any 108 of the modes proposed by the Responder, it selects one of the modes 109 by adding a HIP_TRANSPORT_MODE parameter containing the selected mode 110 to the I2 packet. Finally, if the Initiator selected one of the 111 modes and the base exchange succeeds, hosts MUST use the selected 112 mode for the following HIP signaling messages sent between them for 113 the duration of the HIP association or until another mode is 114 negotiated. 116 If the Initiator cannot, or will not, use any of the modes proposed 117 by the Responder, the Initiator SHOULD include an empty 118 HIP_TRANSPORT_MODE parameter to the I2 packet to signal that it 119 supports this extension but will not use any of the proposed modes. 120 Depending on local policy, the Responder MAY either abort the base 121 exchange or continue HIP signaling without using an encrypted 122 connection, if there was no HIP_TRANSPORT_MODE parameter in I2 or the 123 parameter was empty. If the Initiator selects a mode that the 124 Responder does not support (and hence was not included in R1), the 125 Responder MUST abort the base exchange. If the base exchange is 126 aborted due to (possibly lack of) HIP_TRANSPORT_PARAMETER, the 127 Responder SHOULD send a NO_VALID_HIP_TRANSPORT_MODE notification (see 128 Section 3.3) to the Initiator. 130 0 1 2 3 131 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 132 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 133 | Type | Length | 134 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 135 | Port | Mode ID #1 | 136 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 137 | Mode ID #2 | Mode ID #3 | 138 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 139 | Mode ID #n | Padding | 140 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 142 Type [ TBD by IANA; 7680 ] 143 Port transport layer port number (or zero if not used) 144 Length length in octets, excluding Type, Length, and Padding 145 Mode ID defines the proposed or selected transport mode(s) 147 The following Mode IDs are defined: 149 ID name Value 150 RESERVED 0 151 DEFAULT 1 152 ESP 2 153 ESP-TCP 3 155 Figure 1: Format of the HIP_TRANSPORT_MODE parameter 157 The mode DEFAULT indicates that the same transport mode (e.g., plain 158 IP or UDP) that was used for the base exchange should be used for 159 subsequent HIP signaling messages. In the ESP mode the messages are 160 sent as such on the encrypted ESP connection and in the ESP-TCP mode 161 TCP is used within the ESP tunnel. If a mode that uses a transport 162 layer connection (e.g., ESP-TCP) is offered, the Port field MUST 163 contain the local port number the host will use for the connection. 164 If none of the modes utilize a transport layer protocol, the Port 165 field SHOULD be set to zero when the parameter is sent and ignored 166 when received. The Port and Mode ID fields are encoded as unsigned 167 integers using network byte order. 169 3.2. Mode Negotiation After the HIP Base Exchange 171 If a HIP hosts wants to change to a different transport mode (or 172 start using a transport mode) some time after the base exchange, it 173 sends a HIP UPDATE packet with a HIP_TRANSPORT_MODE parameter 174 containing the mode(s) it would prefer to use. The host receiving 175 the UPDATE SHOULD respond with an UPDATE packet containing the mode 176 that is selected as in the negotiation during the base exchange. If 177 the receiving host does not support, or is not willing to use, any of 178 the listed modes, it SHOULD respond with an UPDATE packet where the 179 HIP_TRANSPORT_MODE parameter contains only the currently used 180 transport mode (even if that was not included in the previous UPDATE 181 packet) and continue using that mode. 183 Since the HIP_TRANSPORT_MODE parameter's type is not critical (as 184 defined in Section 5.2.1 of [RFC5201]), a host not supporting this 185 extension would simply reply with an acknowledgement UPDATE packet 186 without a HIP_TRANSPORT_MODE parameter. In such a case, depending on 187 local policy as in mode negotiation during the base exchange, the 188 host that requested the new transport mode MAY close the HIP 189 association. If the association is closed, the host closing the 190 association SHOULD send a NO_VALID_HIP_TRANSPORT_MODE NOTIFY packet 191 to the other host before closing the association. 193 3.3. Error Notifications 195 During a HIP signaling transport mode negotiation, if a 196 HIP_TRANSPORT_MODE parameter does not contain any mode the receiving 197 host is willing to use, or a HIP_TRANSPORT_MODE parameter does not 198 exist in a HIP packet where the receiving host expected to see it, 199 the receiving host may send back a NOTIFY packet with a NOTIFICATION 200 parameter [RFC5201] error type NO_VALID_HIP_TRANSPORT_MODE (value 201 [TBD by IANA; 100]). The Notification Data field for the error 202 notifications SHOULD contain the HIP header of the rejected packet. 204 4. HIP Messages on Encrypted Connections 206 This specification defines two different transport modes for sending 207 HIP packets over encrypted ESP connections. These modes require that 208 the ESP transport format [RFC5202] is negotiated to be used between 209 the hosts. If the ESP transport format is not used, these modes MUST 210 NOT be offered in the HIP_TRANSPORT_MODE parameter. If a 211 HIP_TRANSPORT_MODE parameter containing an ESP transport mode is 212 received but the ESP transport format is not used, a host MUST NOT 213 select such a mode but act as specified in Section 3.1 (if performing 214 a base exchange) or Section 3.2 (if performing an UPDATE) when no 215 valid mode is offered. 217 The ESP mode provides simple protection for all the signaling traffic 218 and can be used as a generic replacement for the DEFAULT mode in 219 cases where all signaling traffic should be encrypted. If the HIP 220 messages may become so large that they would need to be fragmented, 221 e.g., because of HIP certificates [I-D.ietf-hip-cert] or DATA 222 messages [I-D.ietf-hip-hiccups], it is RECOMMENDED to use the ESP-TCP 223 mode which can handle message fragmentation at TCP level instead of 224 relying on IP level fragmentation. 226 HIP messages that result in changing or generating new keying 227 material, i.e., the base exchange and re-keying UPDATE messages, MUST 228 NOT be sent over the encrypted connection that is created using the 229 keying material that is being changed, nor over an encrypted 230 connection using the newly created keying material. 232 It should be noted that when HIP messages are sent using an encrypted 233 connection, on-path network elements (e.g., firewalls) that would 234 normally see the HIP headers and contents of the un-encrypted 235 parameters, cannot see any part of the messages unless they have 236 access to the encryption keying material. 238 4.1. ESP mode 240 If the ESP mode is selected in the base exchange, both hosts MUST 241 listen for incoming HIP signaling messages and send outgoing messages 242 on the encrypted connection. The ESP header's next header value for 243 HIP messages sent over ESP MUST be set to HIP (139). 245 4.2. ESP-TCP mode 247 If the ESP-TCP mode is selected, the host with the larger HIT 248 (calculated as defined in Section 6.5 of [RFC5201]) MUST start to 249 listen for an incoming TCP connection on the encrypted connection on 250 the port it used in the Port field of the transport mode parameter. 251 The other host MUST create a TCP connection to that port and the host 252 SHOULD use the port it sent in the transport mode parameter as the 253 source port for the TCP connection. Once the TCP connection is 254 established, both hosts MUST listen for incoming HIP signaling 255 messages and send the outgoing messages using the TCP connection. 256 The ESP next header value for messages sent using the ESP-TCP mode 257 TCP connections MUST be set to TCP (6). 259 If the hosts are unable to create the TCP connection, the host that 260 initiated the mode negotiation MUST restart the negotiation with 261 UPDATE message and SHOULD NOT propose the ESP-TCP mode. If local 262 policy does not allow using any other mode than ESP-TCP, the HIP 263 association SHOULD be closed. The UPDATE or CLOSE message MUST be 264 sent using the same transport mode that was used for negotiating the 265 use of the ESP-TCP mode. 267 Since TCP provides reliable transport, the HIP messages sent over TCP 268 MUST NOT be retransmitted for the purpose of achieving reliable 269 transmission. Instead, a host SHOULD wait to detect that the TCP 270 connection has failed to retransmit the packet successfully in a 271 timely manner (such detection is platform- and policy-specific) 272 before concluding that there is no response. 274 5. Recovering from Failed Encrypted Connections 276 If the encrypted connection fails for some reason, it can no longer 277 be used for HIP signaling and the hosts SHOULD re-establish the 278 connection using HIP messages that are sent outside of the encrypted 279 connection. Hence, while listening for incoming HIP messages on the 280 encrypted connection, hosts MUST still accept incoming HIP messages 281 using the same transport method (e.g., UDP or plain IP) that was used 282 for the base exchange. When responding to a HIP message sent outside 283 of the encrypted connection, the response MUST be sent using the same 284 transport method as the original message used. If encryption was 285 previously used, hosts SHOULD send outside of the encrypted 286 connection only HIP messages that are used to re-establish the 287 encrypted connection. Especially, messages that are intended to be 288 sent only encrypted (e.g., DATA messages using an encrypted transport 289 mode) MUST be sent only using the encrypted connection. 291 The UPDATE messages used for re-establishing the encrypted connection 292 MUST contain a HIP_TRANSPORT_MODE parameter and the negotiation 293 proceeds as described in Section 3.2. 295 6. Host Mobility and Multihoming 297 If a host obtains a new address, a new Security Association (SA) pair 298 may be created for (or an existing SA pair may be moved to) the new 299 address, as described in [RFC5206]. If the ESP or ESP-TCP transport 300 mode is used, HIP signaling continues using the (new) SA pair and the 301 same transport mode as before. 303 With the ESP mode, the first mobility UPDATE message SHOULD be sent 304 using the old SA and the following messages, including the response 305 to the first UPDATE, SHOULD be sent using the new SAs. 306 Retransmissions of the UPDATE messages use the same SA as the 307 original message. If the ESP-TCP mode is used, the HIP signaling TCP 308 connection is moved to the new SA pair like any other TCP connection. 309 However, the mobility UPDATE messages SHOULD NOT be sent over the TCP 310 connection, but using plain ESP like in the ESP mode, and 311 consequently hosts MUST be prepared to receive UPDATE messages over 312 plain ESP even if the ESP-TCP mode is used. 314 In some cases the host may not be able to send the mobility UPDATE 315 messages using the encrypted connection before it breaks. This 316 results in a similar situation as if the encrypted connection had 317 failed and the hosts need to re-negotiate the new addresses using un- 318 encrypted UPDATE messages and possibly rendezvous [RFC5204] or HIP 319 relay [RFC5770] servers. Also these UPDATE messages MUST contain the 320 HIP_TRANSPORT_MODE parameter and perform the transport mode 321 negotiation. 323 Examples of the signaling flows with mobility and multihoming are 324 shown in Appendix A. 326 7. Security Considerations 328 By exchanging the HIP messages over ESP connection, all HIP signaling 329 data (after the base exchange but excluding keying material 330 (re)negotiation and some of the mobility UPDATE messages) will be 331 encrypted, but only if NULL encryption is not used. Thus, a host 332 requiring confidentiality for the HIP signaling messages must check 333 that encryption is negotiated to be used on the ESP connection. 334 Moreover, the level of protection provided by the ESP transport modes 335 depends on the selected ESP transform; see [RFC5202] and [RFC4303] 336 for security considerations of the different ESP transforms. 338 8. Acknowledgements 340 Thanks to Gonzalo Camarillo, Kristian Slavov, Tom Henderson, Miika 341 Komu, Jan Melen, and Tobias Heer for comments on the draft. 343 9. IANA Considerations 345 This section is to be interpreted according to [RFC5226]. 347 This document updates the IANA Registry for HIP Parameter Types 348 [RFC5201] by assigning new HIP Parameter Type value for the 349 HIP_TRANSPORT_MODE parameter (defined in Section 3.1). 351 The HIP_TRANSPORT_MODE parameter has 16-bit unsigned integer fields 352 for different modes, for which IANA is to create and maintain a new 353 sub-registry entitled "HIP Transport Modes" under the "Host Identity 354 Protocol (HIP) Parameters" registry. Initial values for the 355 transport mode registry are given in Section 3.1; future assignments 356 are to be made through IETF Review [RFC5226]. Assignments consist of 357 a transport mode identifier name and its associated value. 359 This document also defines new HIP NOTIFICATION message type 360 [RFC5201] NO_VALID_HIP_TRANSPORT_MODE in Section 3.3. 362 10. References 364 10.1. Normative References 366 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 367 Requirement Levels", BCP 14, RFC 2119, March 1997. 369 [RFC5201] Moskowitz, R., Nikander, P., Jokela, P., and T. Henderson, 370 "Host Identity Protocol", RFC 5201, April 2008. 372 [RFC5202] Jokela, P., Moskowitz, R., and P. Nikander, "Using the 373 Encapsulating Security Payload (ESP) Transport Format with 374 the Host Identity Protocol (HIP)", RFC 5202, April 2008. 376 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 377 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 378 May 2008. 380 10.2. Informational References 382 [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", 383 RFC 4303, December 2005. 385 [RFC5204] Laganier, J. and L. Eggert, "Host Identity Protocol (HIP) 386 Rendezvous Extension", RFC 5204, April 2008. 388 [RFC5206] Nikander, P., Henderson, T., Vogt, C., and J. Arkko, "End- 389 Host Mobility and Multihoming with the Host Identity 390 Protocol", RFC 5206, April 2008. 392 [RFC5770] Komu, M., Henderson, T., Tschofenig, H., Melen, J., and A. 393 Keranen, "Basic Host Identity Protocol (HIP) Extensions 394 for Traversal of Network Address Translators", RFC 5770, 395 April 2010. 397 [I-D.ietf-hip-cert] 398 Heer, T. and S. Varjonen, "Host Identity Protocol 399 Certificates", draft-ietf-hip-cert-08 (work in progress), 400 January 2011. 402 [I-D.ietf-hip-hiccups] 403 Camarillo, G. and J. Melen, "HIP (Host Identity Protocol) 404 Immediate Carriage and Conveyance of Upper- layer Protocol 405 Signaling (HICCUPS)", draft-ietf-hip-hiccups-05 (work in 406 progress), July 2010. 408 Appendix A. Mobility and Multihoming Examples 410 When changing interfaces due to mobility or multihoming, the hosts 411 use HIP messages to notify the other host about the new address and 412 to check that the host with the new address is still reachable. The 413 following examples show the signaling performed during the address 414 change in two different scenarios. Note that not all HIP parameters 415 nor all the content of the parameters is shown in the examples. This 416 section and the examples are not normative; for normative behavior, 417 see previous sections. 419 In the examples, the host A uses two different addresses (a1 and a2) 420 while the host B has just a single address (b1). In the first 421 example, make before break (Figure 2), host A starts to use the new 422 address but can still use the old address (due to multihoming) for 423 signaling. In the second example, break before make (Figure 3), host 424 A loses the first address before obtaining the second address (e.g., 425 due to mobility) and the mobility HIP signaling is done without the 426 encrypted connection. 428 The following notations are used in the examples: 430 o ESPx(y): data y sent encapsulated in ESP with SA x; if ESP 431 encapsulation is not used, the data is sent over plain IP or UDP 432 o UPDATE(x,y,z): HIP UPDATE message [RFC5201] with parameters x,y,z 433 o LOCATOR(x): HIP LOCATOR parameter [RFC5206] with locator x 434 o ESP_INFO(x,y): HIP ESP_INFO parameter [RFC5202] with "old SPI" 435 value x and "new SPI" value y 436 o ACK, ECHO_REQ, and ECHO_RSP: HIP ACK, ECHO_REQUEST, and 437 ECHO_RESPONSE parameters [RFC5201] 438 A B 439 ESP1(...) 440 a1 <----------------------------------------------> b1 442 ESP1(UPDATE(LOCATOR(a2), ESP_INFO(0,SPI2a))) 443 a1 -----------------------------------------------> b1 445 (A and B create SAs a2 <-> b1 (ESP2) 446 retransmissions of the first UPDATE 447 happen over ESP1) 449 ESP2(UPDATE(ACK, ESP_INFO(0,SPI2b), ECHO_REQ))) 450 a2 <----------------------------------------------- b1 452 ESP2(UPDATE(ACK, ECHO_RSP)) 453 a2 -----------------------------------------------> b1 455 ESP2(...) 456 a2 <----------------------------------------------> b1 458 Figure 2: Make Before Break 460 A B 461 ESP1(...) 462 a1 <----------------------------------------------> b1 463 (A moves from a1 to a2) 465 UPDATE(LOCATOR(a2), ESP_INFO(SPI1a, SPI1a)) 466 a2 -----------------------------------------------> b1 468 UPDATE(ACK, ECHO_REQ, ESP_INFO(SPI1b,SPI1b)) 469 a2 <----------------------------------------------- b1 471 UPDATE(ACK, ECHO_RSP) 472 a2 -----------------------------------------------> b1 473 (A and B move ESP1 SAs to a2 <-> b1) 475 ESP1(...) 476 a2 <----------------------------------------------> b1 478 Figure 3: Break Before Make 480 When the ESP-TCP mode is used, the signaling flows are similar since 481 TCP is not used for the mobility UPDATE messages as described in 482 Section 6. 484 Author's Address 486 Ari Keranen 487 Ericsson 488 Hirsalantie 11 489 02420 Jorvas 490 Finland 492 Email: ari.keranen@ericsson.com