rfc-7183

Integrity Protection for the Neighborhood Discovery Protocol (NHDP) and Optimized Link State Routing Protocol Version 2 (OLSRv2)

U. Herberg, C. Dearlove, T. Clausen
date2014-04 streamIETF areartg wgmanet statusPROPOSED STANDARD pages15 canonicalhttps://www.rfc-editor.org/rfc/rfc7183 doi10.17487/RFC7183 errataview
This document specifies integrity and replay protection for the Mobile Ad Hoc Network (MANET) Neighborhood Discovery Protocol (NHDP) and the Optimized Link State Routing Protocol version 2 (OLSRv2). This protection is achieved by using an HMAC-SHA-256 Integrity Check Value (ICV) TLV and a Timestamp TLV based on Portable Operating System Interface (POSIX) time. The mechanism in this specification can also be used for other protocols that use the generalized packet/message format described in RFC 5444. This document updates RFC 6130 and RFC 7181 by mandating the implementation of this integrity and replay protection in NHDP and OLSRv2.

updates

Extracted elements (24)

design-rationale §1

Different ICV TLV type extensions are used for HELLO messages (type-extension 2) versus TC messages (type-extension 1) because HELLO message ICVs also protect the IP datagram source address, which NHDP uses to determine neighbor interface addresses and which is not necessarily contained in the HELLO message itself. TC messages are forwarded in new packets and thus have no single IP datagram source address.

security, routing

design-rationale §4

ICV Packet TLVs MAY be used instead of or in addition to message-level protection. For OLSRv2, packet protection has different properties than message protection; when packets contain multiple messages, packet protection has lower overhead in space and computation time.

security, routing

design-rationale §7

No key management mechanism is specified; Section 23.6 of RFC 7181 provides a rationale based on BCP107 explaining why automated key management requirements do not apply for OLSRv2 and NHDP.

security, routing, crypto

design-rationale §5

POSIX time (1-second resolution) is chosen for the timestamp because many MANET use cases cannot achieve sub-second time synchronization due to unreliable and high-delay channels, mobility, and resource limitations. A finer granularity is RECOMMENDED only when message validity times fall below 1 second.

security, routing

interoperability-note §4

Routers whose implementation of NHDP and/or OLSRv2 does not include this integrity protection will be ignored by routers using it, and the two sets of routers will form disjoint MANETs by design. The unsecured MANET retains some information about the secured MANET but cannot use it due to lack of recognized symmetric links.

routing, security

normative-requirement §6.3 MUST

A message MUST be considered invalid for processing if: it lacks exactly one TIMESTAMP TLV of the selected version, lacks exactly one ICV TLV using the selected algorithm and key identifier, or if validation of either the TIMESTAMP TLV or the ICV TLV fails.

security, routing

normative-requirement §4 MUST NOT

An implementation of RFC 6130 and RFC 7181 MAY use more than one ICV TLV in a message, but multiple ICV TLVs MUST each use different keys or a different algorithm to calculate the ICV.

security, crypto, routing

normative-requirement §4 MUST NOT

An implementation using this mechanism MUST NOT use the same type extension for more than one TIMESTAMP TLV in a message.

security, routing

normative-requirement §7 MUST

Before generating ICVs or validating messages, a router MUST acquire shared secret key(s) to be used by all participating routers; this specification does not define how keys are acquired.

security, crypto, routing

normative-requirement §6.2 MUST

During ICV generation, all existing ICV TLVs MUST be temporarily removed and msg-hop-count and msg-hop-limit MUST be temporarily set to 0; all TIMESTAMP TLVs MUST be inserted before adding ICV TLVs.

security, routing

normative-requirement §6.3.2 MUST

During ICV validation, all ICV Message TLVs are temporarily removed and msg-hop-count and msg-hop-limit are set to 0; if the recalculated ICV differs from the TLV value, message validation fails.

security, crypto, routing

normative-requirement §6.1 MUST

For TC messages, the ICV TLV MUST use type-extension 1; for HELLO messages, type-extension 2; with hash-function 3 (SHA-256) and cryptographic-function 3 (HMAC).

security, crypto, routing

normative-requirement §5 MUST

If the current POSIX time minus the timestamp in a TC message's TIMESTAMP TLV is greater than MAX_TC_TIMESTAMP_DIFF, the TC message MUST be silently discarded.

security, routing

normative-requirement §3 MUST

Implementations of RFC 6130 and RFC 7181 MUST support an HMAC-SHA-256 ICV TLV, and deployments SHOULD use it except when use of a different algorithm is more appropriate.

security, crypto, routing

normative-requirement §3 MUST

Implementations of RFC 6130 and RFC 7181 using this mechanism MUST support a TIMESTAMP TLV based on POSIX time, and deployments SHOULD use it if clocks in all routers can be synchronized with sufficient precision.

security, routing

normative-requirement §3 MUST

Implementations of RFC 6130 (NHDP) and RFC 7181 (OLSRv2) MUST include this integrity and replay protection mechanism, and deployments SHOULD use it except when a different security mechanism is more appropriate.

security, routing

normative-requirement §5 MUST

MAX_HELLO_TIMESTAMP_DIFF and MAX_TC_TIMESTAMP_DIFF MUST be at least as great as the maximum expected age of a message (time between sending and receipt by all intended destinations), and SHOULD be as large as required but not significantly larger.

security, routing

normative-requirement §6.1 MUST

Messages conforming to this mechanism MUST contain at least one ICV Message TLV and at least one TIMESTAMP Message TLV, added after message generation and before transmission.

security, routing

protocol-element §5

MAX_HELLO_TIMESTAMP_DIFF and MAX_TC_TIMESTAMP_DIFF are router parameters controlling the maximum acceptable age of HELLO and TC messages respectively for replay protection. MAX_TC_TIMESTAMP_DIFF MAY be made dependent on the number of hops a TC message has traveled.

security, routing

protocol-element §4

The mechanism uses two TLV types defined in RFC 7182: an ICV Message TLV (carrying an HMAC-SHA-256 integrity check value) and a TIMESTAMP Message TLV (carrying POSIX time). These are inserted into NHDP HELLO and OLSRv2 TC messages between RFC 5444 parsing/generation and NHDP/OLSRv2 processing.

security, routing

security-consideration §8.1.1

Identity spoofing is countered because only routers possessing the shared secret key can generate a valid ICV TLV. However, when using shared keys, individual routers cannot be distinguished, so a compromised router with valid keys may still spoof another router's identity.

security, routing

security-consideration §8.1.2

Link spoofing is countered by the same mechanism as identity spoofing: only routers possessing the shared secret key can generate valid ICV TLVs, preventing falsification of link existence or state.

security, routing

security-consideration §8.1.3

Replay attacks are partly countered by timestamp validation: an attacker can only replay messages within the configured time window (MAX_HELLO_TIMESTAMP_DIFF or MAX_TC_TIMESTAMP_DIFF). If no synchronized clocks are available, replay attacks cannot be countered by this mechanism; an alternative TIMESTAMP TLV with monotonic sequence numbers may provide partial mitigation but requires storing observed sequence numbers.

security, routing

security-consideration §8.2

This mechanism does not detect or prevent security attacks by routers that possess the shared secret key (e.g., compromised routers), does not provide key management, and relies on an out-of-band mechanism for distributing shared secret keys.

security, routing, crypto