cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mac80211-auth-assoc-deauth.txt (2561B)


      1#
      2# This outlines the Linux authentication/association and
      3# deauthentication/disassociation flows.
      4#
      5# This can be converted into a diagram using the service
      6# at http://www.websequencediagrams.com/
      7#
      8
      9participant userspace
     10participant mac80211
     11participant driver
     12
     13alt authentication needed (not FT)
     14userspace->mac80211: authenticate
     15
     16alt authenticated/authenticating already
     17mac80211->driver: sta_state(AP, not-exists)
     18mac80211->driver: bss_info_changed(clear BSSID)
     19else associated
     20note over mac80211,driver
     21like deauth/disassoc, without sending the
     22BA session stop & deauth/disassoc frames
     23end note
     24end
     25
     26mac80211->driver: config(channel, channel type)
     27mac80211->driver: bss_info_changed(set BSSID, basic rate bitmap)
     28mac80211->driver: sta_state(AP, exists)
     29
     30alt no probe request data known
     31mac80211->driver: TX directed probe request
     32driver->mac80211: RX probe response
     33end
     34
     35mac80211->driver: TX auth frame
     36driver->mac80211: RX auth frame
     37
     38alt WEP shared key auth
     39mac80211->driver: TX auth frame
     40driver->mac80211: RX auth frame
     41end
     42
     43mac80211->driver: sta_state(AP, authenticated)
     44mac80211->userspace: RX auth frame
     45
     46end
     47
     48userspace->mac80211: associate
     49alt authenticated or associated
     50note over mac80211,driver: cleanup like for authenticate
     51end
     52
     53alt not previously authenticated (FT)
     54mac80211->driver: config(channel, channel type)
     55mac80211->driver: bss_info_changed(set BSSID, basic rate bitmap)
     56mac80211->driver: sta_state(AP, exists)
     57mac80211->driver: sta_state(AP, authenticated)
     58end
     59mac80211->driver: TX assoc
     60driver->mac80211: RX assoc response
     61note over mac80211: init rate control
     62mac80211->driver: sta_state(AP, associated)
     63
     64alt not using WPA
     65mac80211->driver: sta_state(AP, authorized)
     66end
     67
     68mac80211->driver: set up QoS parameters
     69
     70mac80211->driver: bss_info_changed(QoS, HT, associated with AID)
     71mac80211->userspace: associated
     72
     73note left of userspace: associated now
     74
     75alt using WPA
     76note over userspace
     77do 4-way-handshake
     78(data frames)
     79end note
     80userspace->mac80211: authorized
     81mac80211->driver: sta_state(AP, authorized)
     82end
     83
     84userspace->mac80211: deauthenticate/disassociate
     85mac80211->driver: stop BA sessions
     86mac80211->driver: TX deauth/disassoc
     87mac80211->driver: flush frames
     88mac80211->driver: sta_state(AP,associated)
     89mac80211->driver: sta_state(AP,authenticated)
     90mac80211->driver: sta_state(AP,exists)
     91mac80211->driver: sta_state(AP,not-exists)
     92mac80211->driver: turn off powersave
     93mac80211->driver: bss_info_changed(clear BSSID, not associated, no QoS, ...)
     94mac80211->driver: config(channel type to non-HT)
     95mac80211->userspace: disconnected