rfc-5386

Better-Than-Nothing Security: An Unauthenticated Mode of IPsec

N. Williams, M. Richardson
date2008-11 streamIETF areasec wgbtns statusPROPOSED STANDARD pages11 canonicalhttps://www.rfc-editor.org/rfc/rfc5386 doi10.17487/RFC5386 errataview
This document specifies how to use the Internet Key Exchange (IKE) protocols, such as IKEv1 and IKEv2, to setup "unauthenticated" security associations (SAs) for use with the IPsec Encapsulating Security Payload (ESP) and the IPsec Authentication Header (AH). No changes to IKEv2 bits-on-the-wire are required, but Peer Authorization Database (PAD) and Security Policy Database (SPD) extensions are specified. Unauthenticated IPsec is herein referred to by its popular acronym, "BTNS" (Better-Than-Nothing Security). [STANDARDS-TRACK]

Extracted elements (21)

design-rationale §2

BTNS PAD entries must logically follow all non-BTNS PAD entries to preserve standard IPsec access control semantics. This is implemented by searching the PAD twice: first with the peer-asserted ID, and if that fails, again with the peer's public key as a PUBLICKEY ID. A single-pass implementation that preserves these semantics is also allowed.

ipsec, security

design-rationale §4.2

Leap-of-faith (LoF) for BTNS mirrors the SSH model: on first contact, the peer's public key is accepted and recorded; subsequent communications verify against that stored key. This provides continuity-based trust without a PKI, but was still being designed at time of publication.

ipsec, security

design-rationale §1

No new on-the-wire protocol elements are added to IKEv2 for BTNS. The unauthenticated mode is achieved entirely through PAD and SPD extensions to the RFC 4301 processing model, making BTNS a policy-layer change rather than a protocol-layer change.

ipsec, security

design-rationale §2

The non-overlap requirement for the wildcard BTNS PAD entry is enforced by searching the PAD a second time when BTNS peers negotiate child SAs, ensuring BTNS peers cannot assert traffic selectors that conflict with non-BTNS PAD entries and thereby impersonate authenticated peers.

ipsec, security

interoperability-note §2

At the time of writing, only bare RSA public key CERT payloads are defined for BTNS, meaning BTNS operates only with RSA public keys. Suitable IKEv2 AUTH methods are RSA Digital Signature (method #1) and DSS Digital Signature (method #3).

ipsec, security

interoperability-note §1

BTNS is described in terms of IKEv2 and RFC 4301 concepts. IKEv1 (RFC 2408, RFC 2409) can in principle use the same methods, but those specifications do not include PAD concepts, making BTNS implementation on RFC 2401-compliant systems potentially infeasible.

ipsec, security

normative-requirement §2 MUST

At most one wildcard BTNS PAD entry may appear in the PAD, and if present it MUST be the last entry in the PAD (logically).

ipsec, security

normative-requirement §2 MUST

BTNS PAD entries MUST logically follow all non-BTNS PAD entries in the PAD. This ensures that a peer with a known identity is always matched against non-BTNS entries first before falling back to BTNS matching.

ipsec, security

normative-requirement §2 MUST

If no matching non-BTNS PAD entries are found for a peer, the peer's ID MUST be coerced to type 'PUBLICKEY' with the peer's public key as its value, and the PAD is then searched again for matching BTNS PAD entries.

ipsec, security

normative-requirement §2 MAY

Nodes MAY include any number of certificates that bind the same public key; these certificates do not need to be pre-shared with peers (e.g., they may be ephemeral or self-signed).

ipsec, security

normative-requirement §2 MUST

Nodes MUST reject IKE_SA proposals from peers that match non-BTNS PAD entries but fail to authenticate properly, preserving standard IPsec access control semantics.

ipsec, security

normative-requirement §2 MUST

Nodes wishing to be treated as BTNS nodes by their peers MUST include bare public key CERT payloads. Currently only bare RSA public key CERT payloads are defined.

ipsec, security

normative-requirement §2 MUST

The wildcard BTNS PAD entry MUST have ID constraints that do not logically overlap those of other PAD entries, preventing BTNS peers from impersonating non-BTNS peers via child SA traffic selector assertions.

ipsec, security

protocol-element §2

A new ID type 'PUBLICKEY' is introduced, whose values are public keys. This type is used internally in PAD processing and is not transmitted on the wire.

ipsec, security

protocol-element §2

A new SPD flag 'BTNS_OK' is defined. Traffic to/from peers matching a BTNS PAD entry will only match SPD entries with the BTNS_OK flag set, allowing fine-grained control over which traffic flows accept unauthenticated peers.

ipsec, security

protocol-element §2

BTNS PAD entries are PAD entries that match on PUBLICKEY IDs. A wildcard BTNS PAD entry matches all peer public keys and must be the last entry in the PAD. All other PAD entries are non-BTNS PAD entries.

ipsec, security

security-consideration §3.1

A rogue BTNS node can successfully establish an SA by asserting a BTNS peer's address (e.g., node C's address in Example #1) unless additional binding of the specific BTNS ID (public key) to traffic flows is performed via connection latching, channel binding, or leap-of-faith mechanisms.

ipsec, security

security-consideration §4.1

Connection latching binds discrete packet flows to sequences of similar SAs, mitigating MITM attacks subsequent to initial communications. It requires native IPsec implementations and cooperation between upper layer protocols and IPsec.

ipsec, security

security-consideration §4.1

MITMs can be detected by using application-layer authentication frameworks such as the GSS-API with channel binding (RFC 5056). IPsec 'channels' in this context are latched connections that upper-layer protocols can bind authentication to.

ipsec, security

security-consideration §4

The BTNS PAD entry must be last and its child SA ID constraints must be non-overlapping with any other PAD entry. This ensures that no BTNS peer can impersonate another IPsec non-BTNS peer by asserting that peer's addresses as traffic selectors.

ipsec, security

security-consideration §4

Unauthenticated SA negotiation is subject to man-in-the-middle (MITM) attacks. BTNS should be used with care; in environments lacking security infrastructure it may be better than transmitting in the clear, but MITM protection is not inherent.

ipsec, security