STA: Allow PTK rekeying without Ext KeyID to be disabled as a workaround

Rekeying a pairwise key using only keyid 0 (PTK0 rekey) has many broken
implementations and should be avoided when using or interacting with
one. The effects can be triggered by either end of the connection and
range from hardly noticeable disconnects over long connection freezes up
to leaking clear text MPDUs.

To allow affected users to mitigate the issues, add a new configuration
option "wpa_deny_ptk0_rekey" to replace all PTK0 rekeys with fast
reconnects.

Signed-off-by: Alexander Wetzel <alexander@wetzel-home.de>
This commit is contained in:
Alexander Wetzel 2020-01-10 23:19:09 +01:00 committed by Jouni Malinen
parent 1a7963e36f
commit 1f90a49d02
18 changed files with 174 additions and 8 deletions

View file

@ -553,6 +553,19 @@ struct wpa_ssid {
*/
int wpa_ptk_rekey;
/** wpa_deny_ptk0_rekey - Control PTK0 rekeying
*
* Rekeying a pairwise key using only keyid 0 (PTK0 rekey) has many
* broken implementations and should be avoided when using or
* interacting with one.
*
* 0 = always rekey when configured/instructed
* 1 = only rekey when the local driver is explicitly indicating it can
* perform this operation without issues
* 2 = never allow PTK0 rekeys
*/
enum ptk0_rekey_handling wpa_deny_ptk0_rekey;
/**
* group_rekey - Group rekeying time in seconds
*