rfc-9478

Labeled IPsec Traffic Selector Support for the Internet Key Exchange Protocol Version 2 (IKEv2)

P. Wouters, S. Prasad
date2023-10 streamIETF areasec wgipsecme statusPROPOSED STANDARD pages7 canonicalhttps://www.rfc-editor.org/rfc/rfc9478 doi10.17487/RFC9478
This document defines a new Traffic Selector Type (TS Type) for the Internet Key Exchange Protocol version 2 (IKEv2) to add support for negotiating Mandatory Access Control (MAC) security labels as a Traffic Selector of the Security Policy Database (SPD). Security Labels for IPsec are also known as "Labeled IPsec". The new TS Type, TS_SECLABEL, consists of a variable length opaque field that specifies the security label.

Extracted elements (17)

design-rationale §2.2

The Security Label contents are intentionally opaque to the IKE implementation. The IKE implementation may have no knowledge of the label's meaning other than recognizing it as a type and opaque value to pass to the SPD, allowing MAC policy enforcement to remain in the OS/policy layer rather than the IKE layer.

ipsec, security

design-rationale §3.2

The specification allows TSi and TSr to carry different Security Labels, even though this would be uncommon. Initiators that do not support different labels per direction should negotiate Child SAs serially with one label at a time rather than combining them.

ipsec, security

design-rationale §1.3

TS_SECLABEL is defined as a complementary selector that must accompany an IP address TS Type, rather than being standalone, because a security label alone is insufficient to define an IPsec traffic selector — it must narrow traffic already selected by IP address range.

ipsec, security

interoperability-note §1.3

The TS_SECLABEL type complements but does not replace existing TS Types. Implementations must continue to handle TS_IPV4_ADDR_RANGE and TS_IPV6_ADDR_RANGE per RFC 7296, and TS_SECLABEL is only valid alongside these types.

ipsec, security

normative-requirement §2.2 MUST

A responder that selected a TS with TS_SECLABEL MUST use the Security Label for all selector operations on the resulting TS. It MUST NOT select a TS_SECLABEL without using the specified Security Label, even if it deems the Security Label optional.

ipsec, security

normative-requirement §2.2 MUST NOT

A zero-length Security Label MUST NOT be used. If a received TS payload contains a TS_SECLABEL with a zero-length Security Label, that TS payload MUST be ignored. A zero-length Security Label MUST NOT be interpreted as a wildcard.

ipsec, security

normative-requirement §3.2 MUST NOT

If different IP ranges can only use different specific Security Labels, these MUST NOT be combined into one Child SA negotiation; each combination must be negotiated in a separate Child SA negotiation.

ipsec, security

normative-requirement §3 MUST NOT

If the Security Label TS Type is optional and the responder did not include TS_SECLABEL in its response, the initiator installs the Child SA without a Security Label. If the initiator required TS_SECLABEL, it MUST NOT install the Child SA and MUST send a Delete notification so the responder can uninstall its Child SA.

ipsec, security

normative-requirement §3 MUST

If the TSi payload contains a TS_SECLABEL, the responder MUST create each TS response for the other TS Types using its normal rules and then add exactly one TS_SECLABEL to the TS payload(s). If this is not possible, it MUST return a TS_UNACCEPTABLE Error Notify payload.

ipsec, security

normative-requirement §2.2 MUST

TS_SECLABEL does not support narrowing or wildcards and MUST be used as an exact match value.

ipsec, security

normative-requirement §1.3 MUST

TS_SECLABEL MUST NOT be the only TS Type present in a TS payload; it MUST be accompanied by an IP address Traffic Selector Type (TS_IPV4_ADDR_RANGE and/or TS_IPV6_ADDR_RANGE). If a TS payload is received with only TS_SECLABEL TS Types, the exchange MUST be aborted with a TS_UNACCEPTABLE Error Notify message.

ipsec, security

normative-requirement §2.2 MUST

When multiple Security Labels are offered by the initiator, the responder MUST select exactly one of the Security Labels.

ipsec, security

protocol-element §1.2

A TS payload is a set of one or more Traffic Selectors of the same or different TS Types. The TSi/TSr payloads MUST contain at least one TS Type per RFC 7296 Section 2.9; this document adds TS_SECLABEL as a valid additional TS Type requiring a companion IP address TS Type.

ipsec, security

protocol-element §2

TS_SECLABEL is a new IKEv2 Traffic Selector Type (value 10) that carries a single opaque security label for use in Mandatory Access Control (MAC) environments. It enables negotiating security labels as additional selectors for the Security Policy Database (SPD) to restrict traffic allowed over an IPsec SA.

ipsec, security

registry §5

IANA has added TS_SECLABEL (value 10) to the 'IKEv2 Traffic Selector Types' registry defined in RFC 7296, with RFC 9478 as the reference.

ipsec, registry, security

security-consideration §4

A packet matching an SPD entry for all components except the Security Label is treated as 'not matching'. If no other SPD entries match, mislabeled traffic might be transmitted in the clear. The specification presumes that other MAC methods prevent mislabeled traffic from reaching the IPsec subsystem, or that the IPsec subsystem installs a REJECT/DISCARD rule to prevent unlabeled traffic from being transmitted without IPsec protection.

ipsec, security

wire-format §2.1

The TS_SECLABEL payload consists of a one-octet TS Type field (set to 10), a one-octet Reserved field, a two-octet unsigned integer Selector Length field (including the header), and a variable-length opaque Security Label field of at least one octet.

ipsec, security