// security and authentication

EAP Methods

802.1X authentication for enterprise Wi-Fi

EAP is a framework, not a protocol. It defines how authentication data moves between a supplicant (client) and an authentication server (RADIUS), tunnelled through an authenticator (AP or switch). The actual security depends entirely on which EAP method runs inside the framework. Choosing the wrong method leaves your network open to credential theft, Evil Twin attacks, and MITM.

EAP-TLS
Most Secure
Mutual cert auth
PEAP
Most Common
Server cert + password
EAP-TTLS
Flexible
Server cert + any inner
EAP-FAST
Legacy Cisco
PAC-based, no cert required
// RFC 3748 - Extensible Authentication Protocol

Three roles, one handshake

802.1X authentication involves three entities. The EAP framework runs between supplicant and authentication server. The authenticator (AP) transports EAP messages but does not participate in the authentication decision.

01
Supplicant

The client device. Runs the EAP peer (client-side) software. On Wi-Fi: the STA (station). Examples: Windows 802.1X supplicant, iOS native supplicant, wpa_supplicant on Linux.

EAPoL (EAP over LAN) on the air interface
02
Authenticator

The AP or switch. Passes EAP messages between supplicant and RADIUS server. Makes port access decision based on RADIUS Access-Accept or Access-Reject. Does not see credentials.

RADIUS on the wired backend
03
Authentication Server

RADIUS server (FreeRADIUS, Cisco ISE, Microsoft NPS, Aruba ClearPass). Runs EAP server logic, validates credentials or certificates, returns Access-Accept with MPPE keys for PMK derivation.

RFC 2865 - RADIUS protocol
// the authentication sequence

802.1X - EAPOL exchange

01
Association

Client associates to AP. RSNA begins. Port is blocked for all traffic except EAPoL.

02
EAPOL-Start

Client sends EAPOL-Start (optional) or AP sends EAP-Request/Identity to trigger the exchange.

03
EAP-Response/Identity

Client sends its identity (username or anonymous outer identity for tunnel methods). AP forwards to RADIUS in Access-Request.

04
EAP Method Negotiation

RADIUS responds with EAP-Request specifying the method type (TLS, PEAP, TTLS, FAST). Client must support that method to continue.

05
Method-specific exchange

TLS handshake, certificate exchange, inner authentication - depends on EAP method. Multiple RADIUS Access-Challenge / EAP-Response pairs.

06
EAP-Success + MSK

RADIUS sends Access-Accept with EAP-Success and Master Session Key (MSK). AP derives PMK from MSK. 4-Way Handshake begins to derive PTK.

07
Port unblocked

AP unblocks the controlled port. Client has network access. Total time: 200-500ms for PEAP, under 100ms for EAP-TLS with session resumption.

IEEE 802.11-2020 §12.4 - RSNA authentication using 802.1X | RFC 3748 - EAP framework
// RFC 5216 - EAP-TLS

EAP-TLS - Certificate on both sides

EAP-TLS is the most secure EAP method and the hardest to roll out. Both the client and the RADIUS server present X.509 certificates. No passwords cross the wire. The certificate chain is what enforces mutual auth - a rogue AP cannot impersonate your RADIUS server without the CA private key. A stolen password does nothing without the client cert to go with it.

What is required

PKI on both sides

  • Certificate Authority (CA) - internal PKI (Microsoft ADCS, EJBCA, etc.) or cloud PKI
  • Server certificate on RADIUS - signed by the CA, presented to all clients
  • Client certificate on every device - issued per device or per user, enrolled via SCEP, EST, or MDM
  • CA certificate distributed to all clients - clients must trust the CA to validate the server cert
  • CRL or OCSP - certificate revocation mechanism to invalidate stolen device certs
Largest deployment barrier: client certificate enrollment at scale
Why it is the gold standard

What EAP-TLS prevents

  • No password to steal - certificate private key never leaves the device (TPM-bound on modern devices)
  • No Evil Twin risk - client validates server certificate; rogue AP cannot present a valid cert without the CA private key
  • No credential stuffing - compromised username/password has no attack surface
  • No MITM - TLS mutual auth prevents any interception of the session
  • Session resumption - TLS session tickets allow re-authentication in under 50ms (critical for FT roaming)
WPA3-Enterprise 192-bit mandates EAP-TLS with GCMP-256
// wire-level exchange

EAP-TLS message sequence

Client
Message
RADIUS
EAP-Response/Identity (anonymous@domain)
EAP-Request/TLS (Start)
EAP-Response/TLS (ClientHello)
EAP-Request/TLS (ServerHello + ServerCert + CertRequest)
EAP-Response/TLS (ClientCert + ClientKeyExchange + CertVerify)
EAP-Request/TLS (Finished)
EAP-Response/TLS (Finished)
EAP-Success (+ MSK in RADIUS Access-Accept)
RFC 5216 - EAP-TLS Authentication Protocol
// Cisco + Microsoft + RSA - IETF draft

PEAP - Server certificate, client password

PEAP wraps an inner EAP method inside a TLS tunnel built with only a server-side certificate. The client authenticates with a username and password - MSCHAPv2 in almost every deployment. No client certificate required. That's why it's in most enterprise Wi-Fi networks: AD credentials work straight away, no PKI rollout needed.

Outer tunnel

TLS with server certificate

PEAP first establishes a TLS tunnel using only the RADIUS server's certificate. The outer identity (sent before the tunnel) is typically anonymous@domain to hide the real username from passive observers.

// Outer PEAP exchange visible on wire: Identity: anonymous@contoso.com TLS Tunnel: Established with server cert // Inner identity hidden inside tunnel
Inner method - MSCHAPv2

PEAP-MSCHAPv2 (default)

Inside the TLS tunnel, the client authenticates using MSCHAPv2: a challenge-response protocol that uses the user's password (hashed as NT hash). The password is never sent in plaintext - the hash is used to respond to a server challenge.

// security gap

PEAP-MSCHAPv2 is vulnerable if the client does not validate the server certificate. A rogue AP can present any certificate and downgrade the session. Clients must be configured to validate the server cert and pin the CA. Without this, Evil Twin attacks can capture MSCHAPv2 handshakes and crack NT password hashes offline.

// what to configure on the client

Client configuration - the critical steps

REQUIRED
Validate server certificate

Enable certificate validation and pin the specific CA root certificate. Without this, the client accepts any RADIUS server certificate - the fundamental PEAP vulnerability.

REQUIRED
Specify trusted server name

Configure the RADIUS server FQDN (e.g., radius.contoso.com) that the client expects in the server certificate CN or SAN. Prevents certificate substitution attacks.

RECOMMENDED
Use anonymous outer identity

Set outer identity to anonymous@domain to protect the username from passive capture before the TLS tunnel is established.

OPTIONAL
Enable session resumption

TLS session tickets reduce re-authentication time during roaming. Requires RADIUS server support for EAP session caching. Useful for 802.11r FT environments.

// RFC 5281 - EAP-TTLS

EAP-TTLS

Tunneled Transport Layer Security. Architecturally identical to PEAP: server certificate establishes TLS tunnel, inner method runs inside. The key difference is inner method flexibility.

PEAP vs EAP-TTLS inner methods
PEAP
PEAP-MSCHAPv2 (dominant), PEAP-TLS, PEAP-GTC
EAP-TTLS
MSCHAPv2, PAP, CHAP, MD5, EAP-GTC, EAP-TLS, or any EAP method

EAP-TTLS is common in Linux and Android environments where PEAP-MSCHAPv2 compatibility with Active Directory is not required. It supports PAP inner authentication, which allows RADIUS to forward credentials to any backend (LDAP, SQL, OTP) without requiring NT hash storage.

  • Native support on Linux (wpa_supplicant), macOS, and Android
  • Requires Microsoft supplicant add-on or third-party on Windows
  • PAP inner method: simpler backend integration, credentials sent in plaintext inside the TLS tunnel
  • Preferred for non-Windows environments or mixed directory infrastructure
RFC 5281 - EAP Tunneled TLS Authentication Protocol
// RFC 5422 - EAP-FAST (Cisco)

EAP-FAST

Flexible Authentication via Secure Tunneling. Cisco's replacement for LEAP. Designed for environments that cannot deploy certificates but need stronger security than LEAP. Uses Protected Access Credentials (PACs) instead of certificates.

PAC-based authentication flow
Phase 0PAC provisioning - server sends PAC to client (in-band or out-of-band). PAC is a shared secret specific to this client-server pair.
Phase 1Client uses PAC to establish TLS tunnel (no server certificate required).
Phase 2Inner authentication inside tunnel - MSCHAPv2, GTC, or EAP-TLS.
  • No server certificate required - reduces PKI overhead
  • PAC must be securely distributed - provisioning complexity trades off against cert management
  • Vulnerable if PAC is compromised - similar risk profile to PEAP without cert validation
  • Cisco-specific - limited support on non-Cisco infrastructure
  • Declining use - most environments prefer PEAP or EAP-TLS over EAP-FAST today
RFC 5422 - Dynamic Provisioning Using Flexible Authentication via Secure Tunneling
// avoid these methods

Deprecated and insecure EAP methods

LEAP
DO NOT USE

Cisco proprietary, no TLS tunnel, MS-CHAPv1. Vulnerable to dictionary attacks and ASLEAP tool. Deprecated since 2003. Found in legacy Cisco deployments only.

EAP-MD5
DO NOT USE

No TLS tunnel, one-way auth only (server not authenticated), no key derivation. Defined in RFC 3748 as a baseline - universally considered insufficient for Wi-Fi.

PEAP without cert validation
HIGH RISK

PEAP is sound but clients that skip server certificate validation are open to Evil Twin. Common misconfiguration in BYOD deployments. Audit client profiles.

EAP-SIM / EAP-AKA
LIMITED USE

SIM card-based authentication. Used in carrier Wi-Fi offload and Passpoint (802.11u) environments. Not common in enterprise deployments. Secure but infrastructure-heavy.

// which method to use

EAP method selection matrix

Method
Client cert
Server cert
Security
Complexity
Best for
EAP-TLS
Required
Required
Highest
Highest
Managed devices, WPA3-Ent 192-bit, zero-trust
PEAP-MSCHAPv2
None
Required
Medium
Low
Windows/AD environments, BYOD, quick deployment
EAP-TTLS/PAP
None
Required
Medium
Medium
Linux/Android, non-AD backends, LDAP/OTP integration
EAP-FAST
None
Optional
Medium
Medium
Legacy Cisco, no-PKI environments (declining use)
LEAP
None
None
Broken
Low
Never. Migrate immediately.
// wpa3 and eap

WPA3-Enterprise and EAP-TLS

WPA3-Enterprise in standard mode supports the same EAP methods as WPA2-Enterprise. WPA3-Enterprise 192-bit mode mandates EAP-TLS with specific cryptographic requirements:

EAP method
EAP-TLS only. No PEAP or EAP-TTLS.
Certificate signature
RSA-3072+ or ECDSA P-384
Cipher suite
GCMP-256 (AES-256 GCM). CCMP-128 not permitted.
Key exchange
ECDHE P-384 or FFDHE-3072
AKM suite selector
00-0F-AC:12 (192-bit GCMP suite)
PMF
Required (MFPR=1). No legacy clients without PMF.
IEEE 802.11-2020 §12.7.1.6 - GCMP-256 suite requirements | WFA WPA3 Specification v3.1
// cwna-109 quick reference

CWNA exam - what to know

EAP-TLS
Mutual cert auth. Most secure. Requires PKI on client and server. Session resumption for roaming.
PEAP
Server cert + MSCHAPv2 inside tunnel. Most common. Vulnerable without server cert validation.
EAP-TTLS
Server cert + flexible inner (PAP, CHAP, MSCHAPv2). Preferred in Linux/Android environments.
EAP-FAST
Cisco LEAP replacement. PAC-based. No mandatory server cert. RFC 5422.
Supplicant
Client-side 802.1X software. Negotiates EAP method with RADIUS via AP.
RADIUS port
UDP/1812 (auth), UDP/1813 (accounting). Legacy: UDP/1645, UDP/1646.
// governing references
RFC 3748Extensible Authentication Protocol (EAP) - framework definition, method negotiation, identity exchange
RFC 5216EAP-TLS Authentication Protocol - certificate exchange, TLS handshake within EAP, MSK derivation
RFC 5281EAP Tunneled TLS Authentication Protocol (EAP-TTLS)
RFC 5422Dynamic Provisioning Using Flexible Authentication via Secure Tunneling (EAP-FAST)
RFC 2759Microsoft PPP CHAP Extensions, Version 2 (MSCHAPv2) - inner method for PEAP
IEEE 802.11-2020§12.4 - RSNA authentication using 802.1X | §12.7.1.6 - 192-bit suite requirements
WFA WPA3 SpecWPA3-Enterprise 192-bit mode - EAP-TLS mandatory, GCMP-256, PMF required