hostapd/src
Jouni Malinen 8690374439 Discard unencrypted EAPOL/EAP when TK is set and PMF is enabled (AP)
RSN design is supposed to encrypt all Data frames, including EAPOL
frames, once the TK has been configured. However, there are deployed
implementations that do not really follow this design and there are
various examples from the older uses of EAPOL frame where those frames
were not encrypted. As such, strict filtering of unencrypted EAPOL
frames might results in undesired interoperation issues.

However, some of the most important cases of missing EAPOL frame
encryption should be possible to handle without causing too significant
issues. These are for cases where an attacker could potentially cause an
existing association to be dropped when PMF is used. EAPOL-Start and
EAPOL-Logoff are potential candidate for such attacks since those frames
could be used to terminate an authentication or initiate a new EAP
authentication. Such an attack could result in the station ending up
disconnecting or at minimum, getting into somewhat mismatching state
with the AP.

Drop EAPOL-Start/Logoff/EAP frames on the AP/Authenticator when it is
known that it was not encrypted but should have been and when PMF is
enabled. While it would be correct to drop this even without PMF, that
does not provide any significant benefit since it is trivial to force
disconnection in no-PMF cases. It should also be noted that not all
drivers provide information about the encryption status of the EAPOL
frames and this change has no impact with drivers that do not indicate
whether the frame was encrypted.

Signed-off-by: Jouni Malinen <j@w1.fi>
2022-05-07 21:37:08 +03:00
..
ap Discard unencrypted EAPOL/EAP when TK is set and PMF is enabled (AP) 2022-05-07 21:37:08 +03:00
common Provide information about the encryption status of received EAPOL frames 2022-05-07 21:37:03 +03:00
crypto OpenSSL: Fix build with old library versions that do not support TLS 1.3 2022-05-05 13:04:13 +03:00
drivers Provide information about the encryption status of received EAPOL frames 2022-05-07 21:37:03 +03:00
eap_common EAP-TLS: Update specification references to RFC 5216 and 9190 2022-04-05 22:57:51 +03:00
eap_peer EAP peer status notification for server not supporting RFC 5746 2022-05-05 00:21:46 +03:00
eap_server EAP-PEAP server: Fix TLS 1.3 move to Phase 2 without a new session ticket 2022-05-02 18:07:50 +03:00
eapol_auth EAP-TLS: Testing functionality to skip protected success indication 2022-04-07 00:43:12 +03:00
eapol_supp Discard unencrypted EAPOL-EAP when TK is set and PMF is enabled 2022-05-07 21:37:08 +03:00
fst FST: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
l2_packet Replace "dummy" with "stub" in comments/documentation 2021-10-11 20:52:50 +03:00
p2p P2P: Copy only valid opclasses while filtering out 6 GHz channels 2022-03-30 20:42:14 +03:00
pae MACsec: Support GCM-AES-256 cipher suite 2022-02-16 22:54:49 +02:00
radius RADIUS attributes for EAPOL-Key message details 2022-04-15 18:40:55 +03:00
rsn_supp Discard unencrypted EAPOL-Key msg 1/4 when TK is set and PMF is enabled 2022-05-07 21:37:08 +03:00
tls TLS: Fix highest TLS version disabling with internal TLS client 2021-03-14 13:08:04 +02:00
utils DPP: Allow a list of supported curves to be used in bootstrapping URI 2022-04-14 16:57:11 +03:00
wps Replace "dummy" with "stub" in comments/documentation 2021-10-11 20:52:50 +03:00
build.rules build: Rebuild libs all the time 2020-10-12 20:18:02 +03:00
lib.rules build: lib.rules: Add common-clean 2020-10-16 12:51:12 +03:00
Makefile build: Add a common-clean target 2020-10-10 12:48:41 +03:00
objs.mk build: Fix dependency file inclusion 2020-10-12 11:05:16 +03:00