hostapd/src/eap_peer
Jouni Malinen 8e6485a1bc PEAP client: Update Phase 2 authentication requirements
The previous PEAP client behavior allowed the server to skip Phase 2
authentication with the expectation that the server was authenticated
during Phase 1 through TLS server certificate validation. Various PEAP
specifications are not exactly clear on what the behavior on this front
is supposed to be and as such, this ended up being more flexible than
the TTLS/FAST/TEAP cases. However, this is not really ideal when
unfortunately common misconfiguration of PEAP is used in deployed
devices where the server trust root (ca_cert) is not configured or the
user has an easy option for allowing this validation step to be skipped.

Change the default PEAP client behavior to be to require Phase 2
authentication to be successfully completed for cases where TLS session
resumption is not used and the client certificate has not been
configured. Those two exceptions are the main cases where a deployed
authentication server might skip Phase 2 and as such, where a more
strict default behavior could result in undesired interoperability
issues. Requiring Phase 2 authentication will end up disabling TLS
session resumption automatically to avoid interoperability issues.

Allow Phase 2 authentication behavior to be configured with a new phase1
configuration parameter option:
'phase2_auth' option can be used to control Phase 2 (i.e., within TLS
tunnel) behavior for PEAP:
 * 0 = do not require Phase 2 authentication
 * 1 = require Phase 2 authentication when client certificate
   (private_key/client_cert) is no used and TLS session resumption was
   not used (default)
 * 2 = require Phase 2 authentication in all cases

Signed-off-by: Jouni Malinen <j@w1.fi>
2023-07-17 21:09:26 +03:00
..
.gitignore eap_peer: Add .gitignore with *.so 2020-10-16 12:34:16 +03:00
eap.c EAP-FAST: Move EAP-MSCHAPv2 special MSK handling into MSCHAPv2 2022-12-01 17:53:05 +02:00
eap.h EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_aka.c EAP-SIM/AKA peer: IMSI privacy attribute 2022-05-25 20:18:40 +03:00
eap_config.h PEAP client: Update Phase 2 authentication requirements 2023-07-17 21:09:26 +03:00
eap_eke.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_fast.c EAP-FAST: Move EAP-MSCHAPv2 special MSK handling into MSCHAPv2 2022-12-01 17:53:05 +02:00
eap_fast_pac.c Use os_memdup() 2017-03-07 13:19:10 +02:00
eap_fast_pac.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
eap_gpsk.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_gtc.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_i.h EAP-FAST: Move EAP-MSCHAPv2 special MSK handling into MSCHAPv2 2022-12-01 17:53:05 +02:00
eap_ikev2.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_leap.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_md5.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_methods.c Replace EapType typedef with enum eap_type 2019-08-17 11:36:20 +03:00
eap_methods.h Replace EapType typedef with enum eap_type 2019-08-17 11:36:20 +03:00
eap_mschapv2.c EAP-FAST: Move EAP-MSCHAPv2 special MSK handling into MSCHAPv2 2022-12-01 17:53:05 +02:00
eap_otp.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_pax.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_peap.c PEAP client: Update Phase 2 authentication requirements 2023-07-17 21:09:26 +03:00
eap_proxy.h eap_proxy: Support multiple SIMs in get_imsi() 2017-06-06 03:42:32 +03:00
eap_proxy_dummy.c Replace "dummy" with "stub" in comments/documentation 2021-10-11 20:52:50 +03:00
eap_psk.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_pwd.c crypto: Check if crypto_bignum_to_bin() is successful 2022-12-17 12:11:13 +02:00
eap_sake.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_sim.c EAP-SIM/AKA peer: IMSI privacy attribute 2022-05-25 20:18:40 +03:00
eap_teap.c EAP-TEAP peer: Process Crypto-Binding TLV before EAP Payload TLV 2022-12-01 17:53:05 +02:00
eap_teap_pac.c EAP-TEAP server and peer implementation (RFC 7170) 2019-07-09 16:56:02 +03:00
eap_teap_pac.h EAP-TEAP server and peer implementation (RFC 7170) 2019-07-09 16:56:02 +03:00
eap_tls.c EAP-TLS peer: Fix protected success indication check for resumed session 2022-05-02 17:16:44 +03:00
eap_tls_common.c PEAP client: Update Phase 2 authentication requirements 2023-07-17 21:09:26 +03:00
eap_tls_common.h PEAP client: Update Phase 2 authentication requirements 2023-07-17 21:09:26 +03:00
eap_tnc.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_ttls.c EAP-TLS: Replace the Commitment Message term with RFC 9190 language 2022-04-05 23:05:45 +03:00
eap_vendor_test.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_wsc.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
ikev2.c EAP-IKEv2: Try to make transform parser simpler to understand 2020-11-03 21:03:30 +02:00
ikev2.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
Makefile Fix dynamic EAP library building 2021-02-27 23:42:21 +02:00
mschapv2.c EAP-MSCHAPv2: Use os_memcmp_const() for hash/password comparisons 2014-07-02 12:38:48 +03:00
mschapv2.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
tncc.c Clean up base64_{encode,decode} pointer types 2019-11-28 16:39:09 +02:00
tncc.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00