ietf-corpus

rfc-7170

Tunnel Extensible Authentication Protocol (TEAP) Version 1

H. Zhou, N. Cam-Winget, J. Salowey, S. Hanna
date2014-05 streamIETF areasec wgemu statusPROPOSED STANDARD pages101 canonicalhttps://www.rfc-editor.org/rfc/rfc7170 doi10.17487/RFC7170 errataview
This document defines the Tunnel Extensible Authentication Protocol (TEAP) version 1. TEAP is a tunnel-based EAP method that enables secure communication between a peer and a server by using the Transport Layer Security (TLS) protocol to establish a mutually authenticated tunnel. Within the tunnel, TLV objects are used to convey authentication-related data between the EAP peer and the EAP server.

obsoleted by

updated by

Extracted elements (31)

design-rationale §2.2

Outer TLVs are restricted to the first two TEAP messages (before the TLS tunnel is established) so they can assist tunnel establishment without exposing unprotected data thereafter. All subsequent TLV exchanges occur as Inner TLVs within the protected tunnel.

tls, security

design-rationale §3.8.3

Server Unauthenticated Provisioning Mode was designed to bootstrap peers that cannot authenticate the TEAP server during Phase 1 (e.g., no trusted root certificate). The Crypto-Binding TLV exchange at Phase 2 completion still guards against man-in-the-middle because the inner method must provide mutual authentication and key derivation.

security

design-rationale §1

TEAP is based on EAP-FAST (RFC 4851) with minor changes to satisfy the RFC 6678 requirements for a standards-track tunnel-based EAP method. EAP-FAST was selected because it had already been widely adopted across devices and platforms, giving TEAP a proven deployment base.

security

interoperability-note §4.2

EAP implementations compliant with this specification MUST support TLV exchanges and correct mandatory/optional TLV processing. A NAK TLV MUST NOT be sent in response to a message containing a Result TLV; instead, a failure Result TLV accompanied by an Error TLV of Unexpected TLVs Exchanged should be used.

normative-requirement §3.7 MUST

A TEAP implementation MUST provide its own support for fragmentation and reassembly of TLS messages. A TEAP server implementing TLS conversation restart capability SHOULD impose a limit on the number of restarts to protect against denial-of-service attacks.

security

normative-requirement §3.2 REQUIRED

Anonymous ciphersuites are REQUIRED only when the inner authentication method provides mutual authentication, key generation, and resistance to man-in-the-middle and dictionary attacks. TLS renegotiation indications defined in RFC 5746 MUST be supported.

tls, security

normative-requirement §3.1 MUST

Implementations of TEAP version 1 MUST use a Version field set to 1. Because the TEAP version is not protected by TLS and can be modified in transit, peers MUST exchange the version number received during negotiation using the Crypto-Binding TLV, and the receiver MUST verify it matches the version the receiver sent.

tls, security

normative-requirement §3.3.3 MUST NOT

Peers implementing TEAP MUST NOT accept a cleartext EAP Success or EAP Failure packet prior to the peer and server reaching synchronized protected result indication through the inner Result TLV exchange.

security

normative-requirement §3.8.3 MUST

Phase 2 EAP methods used in Server Unauthenticated Provisioning Mode MUST provide mutual authentication, key generation, and resistance to dictionary attacks. Example qualifying inner methods include EAP-pwd (RFC 5931) and EAP-EKE (RFC 6124).

security

normative-requirement §3.3 MUST

Phase 2 MUST NOT occur if the Phase 1 TLS handshake fails, as that would mean the tunnel was not successfully established. Phase 2 MUST always end with a Crypto-Binding TLV exchange and a protected termination exchange.

tls, security

normative-requirement §2 MUST

TEAP implementations MUST support the RFC 5077 TLS SessionTicket mechanism for distributing a PAC-Opaque. It is RECOMMENDED that implementations also support distributing the PAC ticket and secret key within the TEAP Phase 2 tunnel.

tls, security

normative-requirement §3.8 MUST

TEAP peers MUST authenticate the server before using peer services such as PAC provisioning, certificate provisioning, or channel binding. Peers MUST have a configuration where authentication fails if server authentication cannot be achieved.

tls, security, pkix

normative-requirement §3.3.3 MUST

The Crypto-Binding TLV MUST be exchanged and verified before the final Result TLV exchange regardless of whether an inner EAP method was run. When multiple EAP methods are executed in sequence, an Intermediate-Result TLV MUST accompany the Crypto-Binding TLV after each successful method.

security, crypto

normative-requirement §3.2.2 MUST

The PAC-Key is a secret and MUST be treated accordingly; if leaked it could compromise user credentials transmitted inside a tunnel established using that PAC-Key. The PAC-Key MUST be stored securely by the peer and MUST have its confidentiality and integrity protected if provisioned by an out-of-band mechanism.

security, crypto

normative-requirement §3.2 MUST

The TLS version offered by the peer and server MUST be TLS 1.2 or later. Implementations MUST support TLS_RSA_WITH_AES_128_CBC_SHA and TLS_DHE_RSA_WITH_AES_128_CBC_SHA; SHOULD support TLS_RSA_WITH_AES_256_CBC_SHA. TLS ciphersuites that do not provide confidentiality MUST NOT be used.

tls, crypto, security

normative-requirement §3.3.2 RECOMMENDED

The use of EAP-FAST-GTC is NOT RECOMMENDED with TEAPv1 because it is not compliant with EAP-GTC (RFC 3748). Implementations should use the password authentication TLVs (Basic-Password-Auth-Req TLV and Basic-Password-Auth-Resp TLV) defined in this specification instead.

security

protocol-element §2

TEAP authentication occurs in two phases: Phase 1 uses TLS to establish an authenticated and protected tunnel; Phase 2 uses TLV objects within the tunnel to carry inner authentication, result indications, and channel-binding information between the EAP peer and server.

tls, security

protocol-element §4.2.14

The Basic-Password-Auth-Req TLV (type 13) and Basic-Password-Auth-Resp TLV (type 14) enable password-based authentication within the TEAP tunnel as an alternative to inner EAP methods. The peer may reject the request with a NAK TLV; the server uses an Intermediate-Result TLV to signal success or failure.

security

protocol-element §4.2.13

The Crypto-Binding TLV (type 12) cryptographically binds inner EAP method(s) to the outer TLS tunnel, proving that both peer and server participated in tunnel establishment and the inner authentication sequence. It also verifies the TEAP type, negotiated version, and Outer TLVs exchanged before tunnel establishment.

tls, security, crypto

protocol-element §3.5

The EAP Session-Id is constructed as: teap_type || tls-unique, where tls-unique is taken from the Phase 1 outer tunnel at the beginning of Phase 2 as defined by RFC 5929 Section 3.1.

tls, security

protocol-element §4.2.6

The Error TLV (type 5, mandatory) carries error codes: 1–999 are informative, 1000–1999 are warnings, and 2000–2999 are fatal. Fatal Error TLVs MUST accompany a failure Result TLV. Error code 1031 (User account credentials incorrect) usage is NOT RECOMMENDED as it enables username enumeration by attackers.

security

protocol-element §3.2.2

The Protected Access Credential (PAC) consists of: PAC-Key (a minimum 48-octet pre-shared key used as the TLS master secret), PAC-Opaque (a variable-length server-interpreted ticket derived from RFC 5077 SessionTicket semantics), and optional PAC-Info (authority identity and lifetime metadata). The PAC-Opaque may be presented in the clear but must not reveal useful information to attackers.

tls, security, crypto

protocol-element §4.2.4

The Result TLV (type 3, mandatory) carries acknowledged success or failure for protected termination. Status values are 1 (Success) and 2 (Failure). A failure Result TLV MUST NOT be accompanied by a NAK TLV, EAP-Payload TLV, or Crypto-Binding TLV.

security

registry §6

RFC 7170 establishes IANA registries for: TEAP TLV types (values 1–17 defined, expert review for new assignments), PAC attribute types, PAC-Type TLV values, and TEAP error codes (ranges 1–999 informative, 1000–1999 warning, 2000–2999 fatal). EAP Type 55 is assigned to TEAP.

registry, security

security-consideration §7.6

Server certificate validation is required: peers must validate the server certificate to a trust anchor and confirm that the entity named in the certificate is the intended server before trusting any peer services. Failure to validate the server certificate enables impersonation and PAC theft.

security, pkix, tls

security-consideration §7.4.3

TEAP mitigates man-in-the-middle attacks through the Crypto-Binding TLV, which cryptographically binds the inner EAP authentication to the outer TLS tunnel. An attacker who hijacks the outer tunnel cannot produce a valid Crypto-Binding TLV without access to the inner method keying material.

security, crypto

security-consideration §7.4.1

The TEAP tunnel protects peer identity from disclosure during Phase 2. Implementations wishing to provide identity privacy must carefully consider what is disclosed outside the tunnel prior to Phase 2, and SHOULD support TLS renegotiation to shield the peer's identity when TLS client authentication is used.

security, privacy, tls

state-machine §3.2.3

TLS session resumption transition: if ChangeCipherSpec follows the ServerHello, the server accepted abbreviated handshake; otherwise a full handshake proceeds. If session resumption fails, the server gracefully falls back to full TLS handshake. A peer SHOULD NOT request a new PAC after an abbreviated handshake.

tls

state-machine §3.1

Version negotiation: server sends its highest supported version; if peer supports it, that version is used; if peer supports only a lower version, it proposes its highest; if the server cannot support the peer's counter-proposal, it MUST terminate with EAP Failure or negotiate a different EAP type. The agreed version is later verified via the Crypto-Binding TLV.

wire-format §4.2.1

The general TLV format is: M bit (1=mandatory, 0=optional), R bit (reserved), TLV Type (14 bits, values 1–17 currently defined), Length (2 octets, length of Value field in octets), and variable-length Value. If a peer does not support a mandatory TLV, it MUST send a NAK TLV in response.

wire-format §4.1

The TEAP Request/Response packet contains: Code (1 octet), Identifier (1 octet), Length (2 octets), Type=55 (1 octet), Flags|Ver byte (L/M/S/O/R bits plus 3-bit version), optional Message Length (4 octets, if L set), optional Outer TLV Length (4 octets, if O set), TLS Data, and Outer TLVs.

tls