wpa_supplicant - sharmasadhna/mylearnings GitHub Wiki

https://github.com/sharmasadhna/mylearnings/wiki/Improved-Wifi-Roaming-Behavior and https://github.com/sharmasadhna/mylearnings/wiki/WIFi-Roaming-terminologies-and-project-problem-statement

WPA supplicant : supplicant supports WEP,WPA,WPA2 security, runs on client station, responsible for:

  1. key negotiation with Authenticator
  2. Handles roaming
  3. Authentication/association of WLAN Driver

WPA steps when associating with AP:

  1. wpa_supplicant request kernel driver to scan of neighboring BSS'es
  2. wpa_supplicant selects a BSS based on its configuration
  3. wpa_supplicant request kernel driver to associate with chosen BSS
  4. If WPA-EAP type (Enterprise) : wpa_supplicant completes authentication with EAP server, receives master key
  5. If WPA-PSK type (Pre-shared Key) : wpa_supplicant uses PSK as master session key
  6. wpa_supplicant completes handshake with authenticator (AP)
  7. wpa_supplicant configure encryption keys for group unicast and broadcast
  8. normal data packets can now be transmitted and recieved

Check external/wpa_supplicant/README for all details on how to build wpa supplicant,

wpa_supplicant build can be configured to choose what:

  1. driver will be used (vendor driver, NL_DRIVER etc...),
  2. Authentication method : EAP-TLS, EAP-PEAP etc...

/etc/wpa_supplicant.conf : wpa_supplicant configured for:

  1. ctrl_interface = wlan0
  2. fast_reauth = 1
  3. update_config = 1 //when n/w config is changed/added new n/w from GUI/wpa_cli, it allows wpa_supp to update its config
  4. p2p_disabled = 1 etc...