rfc-8046

Host Mobility with the Host Identity Protocol

T. Henderson (Editor), C. Vogt, J. Arkko
date2017-02 streamIETF areaint wghip statusPROPOSED STANDARD pages37 canonicalhttps://www.rfc-editor.org/rfc/rfc8046 doi10.17487/RFC8046
This document defines a mobility extension to the Host Identity Protocol (HIP). Specifically, this document defines a "LOCATOR_SET" parameter for HIP messages that allows for a HIP host to notify peers about alternate addresses at which it may be reached. This document also defines how the parameter can be used to preserve communications across a change to the IP address used by one or both peer hosts. The same LOCATOR_SET parameter can also be used to support end-host multihoming (as specified in RFC 8047). This document obsoletes RFC 5206.

obsoletes

Extracted elements (26)

design-rationale §3.3.2

CBA was chosen over strict return-routability checks because it allows ongoing data transfer to proceed with minimal interruption while address verification completes. Rather than eliminating malicious redirection entirely, CBA prevents amplification, making redirection-based flooding no more effective than direct flooding that the attacker could perform anyway.

security, ip, mobility

design-rationale §3.1.1

The locator concept generalizes beyond a plain IP address to include an ESP SPI (Locator Type 1) because in multihoming contexts certain IP addresses must be paired with specific SPIs to avoid violating the ESP anti-replay window. Plain IP addresses alone are insufficient to unambiguously describe packet handling below HIP when multiple SAs are in use.

ip, ipsec, mobility

interoperability-note §5.3

This specification only defines procedures for a single LOCATOR_SET and single ESP_INFO parameter per UPDATE packet; reception of multiple LOCATOR_SET parameters in one packet, or in HIP packets other than UPDATE, is outside the scope of this specification.

ip, mobility

normative-requirement §5.1 MUST NOT

A DEPRECATED address MUST NOT be changed to ACTIVE without first verifying its reachability.

ip, mobility, security

normative-requirement §5.4 MUST

A host MUST verify the reachability of any UNVERIFIED address. The status of a newly learned address MUST initially be set to UNVERIFIED unless it was advertised in an R1 packet as a new preferred locator.

ip, mobility, security

normative-requirement §3.2.3 MUST

A host receiving a UPDATE packet via an RVS MUST be prepared to process the FROM and RVS_HMAC parameters and MUST include a VIA_RVS parameter in the UPDATE reply that contains the ACK of the UPDATE SEQ.

ip, mobility

normative-requirement §3.2.3 MUST

An RVS supporting UPDATE forwarding MUST rewrite the UPDATE's IP source and destination addresses, recompute the IP checksum, and include FROM and RVS_HMAC parameters, mirroring how it handles I1 packets per RFC 8004.

ip, mobility

normative-requirement §4.3 SHOULD

Any UPDATE packet that includes a LOCATOR_SET parameter SHOULD include both an HMAC and a HIP_SIGNATURE parameter. If a HOST_ID parameter is also included, the receiving host MUST verify it matches the HOST_ID used to establish the association.

ip, security, mobility

normative-requirement §5.6 MUST

Credit-Based Authorization (CBA) MUST be used when a host sends data to an UNVERIFIED locator. If the credit counter is too low to cover the outbound packet size, the packet MUST be discarded or buffered; when sent to an UNVERIFIED locator, the credit counter MUST be reduced by the packet size.

ip, mobility, security

normative-requirement §4 MUST

Each Locator in a LOCATOR_SET MUST have a non-zero lifetime. A deprecated address SHOULD NOT be used as a destination if an alternate non-deprecated address is available.

ip, mobility

normative-requirement §5.2 MUST NOT

Hosts MUST NOT announce broadcast or multicast addresses in LOCATOR_SETs; each received address MUST be checked to be a legal unicast or anycast address before being added to the locator data structure.

ip, mobility

normative-requirement §3.2 SHOULD

Hosts using link-local addresses as source addresses in their HIP handshakes SHOULD provide a globally routable address either in the initial handshake or via the LOCATOR_SET parameter, because link-local addresses may not be reachable by a mobile peer.

ip, mobility, v6ops

normative-requirement §5.3 MUST

The host receiving a LOCATOR_SET MUST detect and avoid reprocessing a LOCATOR_SET parameter that is redundant with one recently received and processed, because the same UPDATE may be sent in parallel to multiple peer addresses including an RVS.

ip, mobility

normative-requirement §4 MUST

The LOCATOR_SET parameter is a critical parameter as defined in RFC 7401; it MUST be recognized and processed by the recipient.

ip, mobility

normative-requirement §5.3 SHOULD

When processing an UPDATE containing both ESP_INFO and LOCATOR_SET, a host SHOULD process the ESP_INFO before the LOCATOR_SET, since the ESP_INFO may introduce a new SPI value that Locator Type 1 entries reference.

ip, ipsec, mobility

privacy-consideration §6.4

Advertising IP addresses in LOCATOR_SET parameters may expose a host's location even when the host uses a VPN or virtual interface for privacy. Implementations SHOULD provide a mechanism for the administrator to block exposure of selected addresses or address ranges.

privacy, ip, mobility

protocol-element §5.6

Credit-Based Authorization allows a host to send data to a peer's newly announced but UNVERIFIED locator, bounded by a credit counter that is incremented by inbound packet sizes and decremented by outbound packet sizes sent to the UNVERIFIED address. Credit aging periodically multiplies counters by CreditAgingFactor (7/8) every CreditAgingInterval (5 seconds) to prevent slow credit buildup for time-shifting attacks.

ip, mobility, security

protocol-element §3.2.1

The basic mobility exchange (without rekeying) uses three UPDATE messages: mobile host sends UPDATE(ESP_INFO, LOCATOR_SET, SEQ); peer replies with UPDATE(ESP_INFO, SEQ, ACK, ECHO_REQUEST) containing a nonce challenge sent to the new address; mobile host completes with UPDATE(ACK, ECHO_RESPONSE) echoing the nonce.

ip, mobility

protocol-element §3.3.3

The preferred locator is indicated by the P bit in the LOCATOR_SET Locator sub-parameter. By default, the IP addresses used in the HIP base exchange are the preferred locators for both signaling and user data. Multiple preferred locators of different Traffic Types may coexist; the more specific Traffic Type takes precedence.

ip, mobility

protocol-element §4.1

Three Traffic Type values are defined: 0 for both HIP signaling and user data, 1 for signaling packets only, and 2 for data packets only. The P bit's scope is restricted to the corresponding Traffic Type; the more specific Traffic Type rule takes precedence when conflicts arise.

ip

protocol-element §4.2

Two Locator Type values are defined: Type 0 is a 128-bit IPv6 address or IPv4-in-IPv6 format address (for non-ESP usage), and Type 1 is a 32-bit ESP SPI concatenated with a 128-bit IPv6 or IPv4-in-IPv6 address (for ESP-based usage).

ip, ipsec

registry §7

IANA has renamed the LOCATOR parameter (type 193) to LOCATOR_SET in the HIP Parameter Types subregistry and updated the reference from RFC 5206 to this document. IANA has also updated the reference for the LOCATOR_TYPE_UNSUPPORTED Notify Message Type (value 46) from RFC 5206 to this document.

registry, ip

security-consideration §6.1

Impersonation attacks via forged LOCATOR_SET redirection are prevented by HIP UPDATE authentication: UPDATE packets use HMAC and carry a signature, so an attacker cannot create an accepted UPDATE without the target host's secret keys. Replay attacks on UPDATE are also prevented as described in RFC 7401.

security, ip, mobility

security-consideration §6.2

Redirection-based flooding attacks are mitigated by the combination of address reachability checks and CBA. CBA prevents amplification by bounding redirected traffic to the volume recently received from the peer, lowering a redirection-based flood to the level of direct flooding. A HIP association SHOULD also limit the number of IP addresses associatable with any HI to prevent memory/computational exhaustion via crafted UPDATEs.

security, ip, mobility

state-machine §5.1

Each learned locator has one of three states: UNVERIFIED (reachability not yet confirmed), ACTIVE (reachability verified and not deprecated), or DEPRECATED (lifetime expired). Allowed transitions are UNVERIFIED→ACTIVE (reachability verified), UNVERIFIED→DEPRECATED (lifetime expires), ACTIVE→DEPRECATED (lifetime expires), ACTIVE→UNVERIFIED (local policy re-verification), and DEPRECATED→UNVERIFIED (new lifetime received). A DEPRECATED address MUST NOT transition directly to ACTIVE.

ip, mobility

wire-format §4

The LOCATOR_SET parameter (Type 193) encodes zero or more Locator sub-parameters, each containing an 8-bit Traffic Type, 8-bit Locator Type, 8-bit Locator Length (in 4-byte words), 7-bit Reserved field, 1-bit P (preferred) flag, a 32-bit Locator Lifetime in seconds, and a variable-length Locator field whose length is Locator Length × 4 octets.

mpls, ip, security