hostap/src/rsn_supp
Jouni Malinen 17d4b77472 RSN: Do not replace existing Suite B PMKSA on 4-way handshake
PMKID derivation with the Suite B AKMs is a special case compared to
other AKMs since that derivation uses KCK instead of PMK as an input.
This means that the PMKSA cache entry can be added only after KCK has
been derived during 4-way handshake. This also means that PMKID would
change every time 4-way handshake is repeated even when maintaining the
same PMK (i.e., during PTK rekeying and new associations even if they
use PMKSA caching).

wpa_supplicant was previously replacing the PMKSA cache entry whenever a
new PMKID was derived. This did not match hostapd expectations on the AP
side since hostapd did not update the PMKSA cache entry after it was
created. Consequently, PMKSA caching could be used only once (assuming
no PTK rekeying happened before that). Fix this by making wpa_supplicant
behave consistently with hostapd, i.e., by adding the Suite B PMKSA
cache entries with the PMKID from the very first 4-way handshake
following PMK derivation and then not updating the PMKID.

IEEE Std 802.11-2016 is somewhat vague in this area and it seems to
allow both cases to be used (initial PMKID or any consecutive PMKID
derived from the same PMK). While both cases could be supported that
would result in significantly more complex implementation and need to
store multiple PMKID values. It looks better to clarify the standard to
explicitly note that only the first PMKID derived after PMK derivation
is used (i.e., match the existing hostapd implementation).

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
2018-09-27 11:37:19 +03:00
..
Makefile Remove all PeerKey functionality 2017-10-16 02:03:47 +03:00
pmksa_cache.c SAE: Only allow SAE AKMP for PMKSA caching attempts 2018-04-09 19:34:44 +03:00
pmksa_cache.h Fix wpa_supplicant build with CONFIG_NO_WPA 2018-04-13 11:43:57 +03:00
preauth.c SAE: Only allow SAE AKMP for PMKSA caching attempts 2018-04-09 19:34:44 +03:00
preauth.h Fix wpa_supplicant build with IEEE8021X_EAPOL=y and CONFIG_NO_WPA=y 2016-01-15 20:04:41 +02:00
tdls.c TDLS: Add testing capability to send TPK M2 twice 2017-11-21 00:48:52 +02:00
wpa.c RSN: Do not replace existing Suite B PMKSA on 4-way handshake 2018-09-27 11:37:19 +03:00
wpa.h FT: Add MDE to assoc request IEs in connect params 2018-04-20 00:32:49 +03:00
wpa_ft.c FT: Support BIP-CMAC-256, BIP-GMAC-128, BIP-GMAC-256 in STA case 2018-06-05 21:50:36 +03:00
wpa_i.h FT: Support variable length keys 2018-06-05 19:29:52 +03:00
wpa_ie.c FT: SHA384-based AKM in RSNE processing 2018-06-05 01:11:41 +03:00
wpa_ie.h Remove all PeerKey functionality 2017-10-16 02:03:47 +03:00