hostapd/src
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
..
ap Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
common Fix mistakes in definition of QCA vendor commands for indoor location 2016-09-06 23:38:47 +03:00
crypto OpenSSL: Fix OpenSSL 1.1.0 compatibility functions 2016-08-13 21:07:05 +03:00
drivers Revert "nl80211: Remove duplicated check in nl80211_setup_ap()" 2016-09-17 20:08:24 +03:00
eap_common TLS: Split tls_connection_prf() into two functions 2016-05-23 20:40:12 +03:00
eap_peer Fix typos in wpa_supplicant configuration parameter documentation 2016-09-10 21:09:52 +03:00
eap_server TNCS: Mark functions static 2016-06-24 19:02:47 +03:00
eapol_auth RADIUS: Share a single function for generating session IDs 2016-02-06 17:19:35 +02:00
eapol_supp Fix EAPOL reauth after FT protocol or offloaded PMKSA cache use 2015-11-19 21:16:18 +02:00
fst FST: Fix search for peer's "other" connection 2016-09-08 11:17:45 +03:00
l2_packet l2_packet: Extend bridge workaround RX processing to cover two frames 2016-01-07 13:30:59 +02:00
p2p P2Ps: Clear existing value when peer stops sending adv_service_instance 2016-07-23 20:55:52 +03:00
pae mka: Clean up key allocation 2016-08-28 22:24:33 +03:00
radius radius: Sanity check for NULL pointer segfault 2016-08-19 12:16:20 +03:00
rsn_supp TDLS: Declare tdls_testing as extern in a header file 2016-06-23 13:31:04 +03:00
tls TLS: Make tls_cert_chain_failure_event() more robust 2015-12-28 18:31:11 +02:00
utils utils: os_unix: Use access() for checking file existence 2016-08-08 00:24:07 +03:00
wps Share a single str_starts() implementation 2016-08-06 12:38:21 +03:00
lib.rules Add QUIET=1 option for make 2014-12-29 15:49:05 +02:00
Makefile FST: Add the Fast Session Transfer (FST) module 2015-07-16 18:26:15 +03:00