hostap/src/ap
Denton Gentry 04059ab844 Passive Client Taxonomy
Implement the signature mechanism described in the paper
"Passive Taxonomy of Wifi Clients using MLME Frame Contents"
published by Denton Gentry and Avery Pennarun.

http://research.google.com/pubs/pub45429.html
https://arxiv.org/abs/1608.01725

This involves:
1. Add a CONFIG_TAXONOMY compile option. Enabling taxonomy incurs
   a memory overhead of up to several kilobytes per associated
   station.
2. If enabled, store the Probe Request and (Re)Associate Request frame in
   struct sta_info.
3. Implement code to extract the ID of each Information Element,
   plus selected fields and bitmasks from certain IEs, into a
   descriptive text string. This is done in a new source file,
   src/ap/taxonomy.c.
4. Implement a "signature qq:rr:ss:tt:uu:vv" command
   in hostapd_cli to retrieve the signature.

Signatures take the form of a text string. For example, a signature
for the Nexus 5X is:
  wifi4|probe:0,1,127,45,191,htcap:01ef,htagg:03,htmcs:0000ffff,vhtcap:338061b2,
  vhtrxmcs:030cfffa,vhttxmcs:030cfffa,extcap:00000a0201000040|assoc:0,1,48,45,
  221(0050f2,2),191,127,htcap:01ef,htagg:03,htmcs:0000ffff,vhtcap:339071b2,
  vhtrxmcs:030cfffa,vhttxmcs:030cfffa,extcap:0000000000000040

Signed-off-by: dgentry@google.com (Denton Gentry)
Signed-off-by: denny@geekhold.com (Denton Gentry)
Signed-off-by: rofrankel@google.com (Richard Frankel)
Signed-off-by: richard@frankel.tv (Richard Frankel)
2016-09-22 00:45:24 +03:00
..
accounting.c Remove unused generation of Request Authenticator in Account-Request 2016-09-22 00:34:19 +03:00
accounting.h RADIUS: Use more likely unique accounting Acct-{,Multi-}Session-Id 2016-02-06 17:10:19 +02:00
acs.c ACS: Remove unreachable case from a debug print 2016-01-07 16:50:53 +02:00
acs.h Move declaration of hostapd_acs_completed() into correct header file 2013-12-31 19:34:43 +02:00
ap_config.c AP: Disable VHT in WEP configuration 2016-08-02 17:31:48 +03:00
ap_config.h hostapd: Allow FTM functionality to be published 2016-09-05 21:23:07 +03:00
ap_drv_ops.c Check for driver initialization before doing driver operations 2016-08-19 16:08:00 +03:00
ap_drv_ops.h Check for driver initialization before doing driver operations 2016-08-19 16:08:00 +03:00
ap_list.c Move ap_list_timer() to use common AP periodic cleanup mechanism 2015-07-20 13:42:35 +03:00
ap_list.h Move ap_list_timer() to use common AP periodic cleanup mechanism 2015-07-20 13:42:35 +03:00
ap_mlme.c AP: Fix Deauth/Disassoc TX status timeout handling 2016-01-15 19:32:49 +02:00
ap_mlme.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
authsrv.c Server configuration for OCSP stapling with ocsp_multi (RFC 6961) 2015-12-22 19:42:07 +02:00
authsrv.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
beacon.c Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
beacon.h Add station tracking based on other management frame subtypes 2015-09-05 19:38:06 +03:00
bss_load.c AP: Add support for BSS load element (STA Count, Channel Utilization) 2014-10-21 23:25:48 +03:00
bss_load.h AP: Add support for BSS load element (STA Count, Channel Utilization) 2014-10-21 23:25:48 +03:00
ctrl_iface_ap.c Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
ctrl_iface_ap.h Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
dfs.c hostapd: Handle running out of DFS channels 2016-03-08 12:16:37 +02:00
dfs.h DFS offload: Add main DFS handler for offloaded case 2015-03-05 17:21:30 +02:00
dhcp_snoop.c dhcp_snoop: Silence a sparse warning 2016-06-24 19:02:58 +03:00
dhcp_snoop.h AP: Add support for Proxy ARP, DHCP snooping mechanism 2014-10-28 01:08:29 +02:00
drv_callbacks.c hostapd: Skip hostapd ACL check for drivers supporting ACL offload 2016-06-17 20:45:35 +03:00
eap_user_db.c Improve error messages related to EAP DB 2015-03-28 13:16:26 +02:00
gas_serv.c hostapd Make GAS Address3 field selection behavior configurable 2016-06-10 22:13:37 +03:00
gas_serv.h Interworking: Add support for configuring arbitrary ANQP-elements 2015-10-07 17:07:21 +03:00
hostapd.c Initialize iface->sta_seen on allocation 2016-09-22 00:45:24 +03:00
hostapd.h Initialize iface->sta_seen on allocation 2016-09-22 00:45:24 +03:00
hs20.c HS 2.0R2 AP: Add support for deauthentication request 2014-02-26 01:24:24 +02:00
hs20.h HS 2.0R2 AP: Add support for deauthentication request 2014-02-26 01:24:24 +02:00
hw_features.c Make fallback from HT40 to HT20 work 2016-02-05 17:52:47 +02:00
hw_features.h hostapd: Fix some compilation errors 2015-03-29 20:51:14 +03:00
iapp.c IAPP: Set SO_REUSEADDR on listening socket 2016-08-18 20:01:48 +03:00
iapp.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
ieee802_1x.c Do not include NAS-Port attribute with AID 0 2016-08-13 10:28:01 +03:00
ieee802_1x.h HS 2.0: Postpone WNM-Notification sending by 100 ms 2015-12-31 21:46:08 +02:00
ieee802_11.c Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
ieee802_11.h hostapd: Use stations nsts capability in (Re)Association Response frame 2016-09-05 21:14:40 +03:00
ieee802_11_auth.c RADIUS: Fix possible memory leak when parsing per-STA passphrase 2016-04-08 11:19:40 +03:00
ieee802_11_auth.h VLAN: Separate station grouping and uplink configuration 2016-02-17 11:46:11 +02:00
ieee802_11_ht.c Fix CSA related IEs order 2015-10-03 21:01:47 +03:00
ieee802_11_shared.c hostapd: Allow FTM functionality to be published 2016-09-05 21:23:07 +03:00
ieee802_11_vht.c hostapd: Use stations nsts capability in (Re)Association Response frame 2016-09-05 21:14:40 +03:00
Makefile tests: Add ap-mgmt-fuzzer 2015-04-22 11:44:19 +03:00
mbo_ap.c MBO: Parse non-preferred channel list on the AP 2016-02-22 21:17:38 +02:00
mbo_ap.h MBO: Parse non-preferred channel list on the AP 2016-02-22 21:17:38 +02:00
ndisc_snoop.c ndisc_snoop: Include ndisc_snoop.h to check prototypes 2016-06-24 19:02:58 +03:00
ndisc_snoop.h proxyarp: Use C library header files and CONFIG_IPV6 2014-11-25 16:58:21 +02:00
neighbor_db.c hostapd: Add FTM range request 2016-04-17 12:29:12 +03:00
neighbor_db.h hostapd: Add FTM range request 2016-04-17 12:29:12 +03:00
p2p_hostapd.c Use P2P_IE_VENDOR_TYPE more consistently 2014-03-05 23:36:54 +02:00
p2p_hostapd.h Remove the GPL notification from files contributed by Atheros 2012-02-11 19:39:36 +02:00
peerkey_auth.c PeerKey: Clean up EAPOL-Key Key Data processing on AP 2014-11-23 21:03:40 +02:00
pmksa_cache_auth.c wpa_supplicant: Fix CONFIG_IBSS_RSN=y build without CONFIG_AP=y 2016-03-21 21:12:20 +02:00
pmksa_cache_auth.h PMKSA: Flush AP/mesh PMKSA cache by PMKSA_FLUSH command 2016-03-20 17:37:53 +02:00
preauth_auth.c Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
preauth_auth.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
rrm.c hostapd: Add FTM range request 2016-04-17 12:29:12 +03:00
rrm.h hostapd: Add FTM range request 2016-04-17 12:29:12 +03:00
sta_info.c Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
sta_info.h Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
taxonomy.c Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
taxonomy.h Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
tkip_countermeasures.c AP: Use monotonic time for MMIC failure/TKIP countermeasures 2013-12-24 07:13:34 +02:00
tkip_countermeasures.h hostapd: Fix a regression in TKIP countermeasures processing 2012-11-18 13:06:03 +02:00
utils.c FST: Do not prune STAs belonging to the same FST 2015-07-16 18:26:15 +03:00
vlan.c VLAN: Fix vlan_compare() for tagged VLANs 2016-02-22 19:53:05 +02:00
vlan.h radius: Add tagged VLAN parsing 2016-02-17 11:46:13 +02:00
vlan_full.c Use a separate header file for Linux bridge interface definitions 2016-03-26 11:27:18 +02:00
vlan_ifconfig.c vlan: Move if_nametoindex() use out of vlan_init.c 2016-03-25 18:00:44 +02:00
vlan_init.c vlan: Move if_nametoindex() use out of vlan_init.c 2016-03-25 18:00:44 +02:00
vlan_init.h VLAN: Separate station grouping and uplink configuration 2016-02-17 11:46:11 +02:00
vlan_ioctl.c Use own header file for defining Linux VLAN kernel interface 2016-03-26 11:24:38 +02:00
vlan_util.c vlan: Remove unnecessary header includes from netlink implementation 2016-03-25 17:27:16 +02:00
vlan_util.h vlan: Move if_nametoindex() use out of vlan_init.c 2016-03-25 18:00:44 +02:00
wmm.c AP WMM: Fix integer underflow in WMM Action frame parser 2015-05-03 18:26:50 +03:00
wmm.h Remove obsolete license notifications 2013-12-24 22:59:52 +02:00
wnm_ap.c WNM: Fix a memory leak on AP error path 2016-02-22 19:53:05 +02:00
wnm_ap.h hostapd: Add MBO IE to BSS Transition Management Request frame 2016-02-22 19:53:04 +02:00
wpa_auth.c mesh: Simplify wpa_auth_pmksa_set_to_sm() 2016-03-22 20:38:44 +02:00
wpa_auth.h mesh: Add support for PMKSA caching 2016-03-20 17:56:38 +02:00
wpa_auth_ft.c FT: Fix sm->assoc_resp_ftie storing on the AP side 2015-12-10 00:14:35 +02:00
wpa_auth_glue.c FT: Fix RRB for FT over-the-air case 2016-04-19 00:57:17 +03:00
wpa_auth_glue.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
wpa_auth_i.h Fix Suite B 192-bit AKM to use proper PMK length 2015-10-14 18:43:26 +03:00
wpa_auth_ie.c radius: Add tagged VLAN parsing 2016-02-17 11:46:13 +02:00
wpa_auth_ie.h HS 2.0R2 AP: Add OSEN implementation 2014-02-26 01:24:24 +02:00
wps_hostapd.c Share a single str_starts() implementation 2016-08-06 12:38:21 +03:00
wps_hostapd.h WPS NFC: Add AP mode connection handover report 2014-01-27 21:10:55 +02:00
x_snoop.c AP: Enable multicast snooping on bridge if ProxyARP IPv6 is in use 2015-04-13 14:00:32 +03:00
x_snoop.h AP: Add multicast-to-unicast conversion send for "x_snoop" 2014-11-19 16:25:13 +02:00