[PATCH 0/2] Client Taxonomy

Denton Gentry dgentry at google.com
Wed Aug 10 15:52:31 PDT 2016

This set of patches contains an implementation of the mechanism
described in "Passive Taxonomy of Wifi Clients using MLME Frame Contents"
by Denton Gentry and Avery Pennarun, at:

http://research.google.com/pubs/pub45429.html and

It allows an AP to identify the type of client connecting to it
by extracting a concise text signature from the Probe Request and
Association Request MLME frames the client sends.

Patch #1 contains the basic mechanism. src/ap/taxonomy.c is the
code which, given a copy of the Probe Request and Association
Request, will return the text signature string. src/ap/taxonomy.c
has been in use for some time in developing the mechanism.

Patch #1 also adds a "signature qq:rr:ss:tt:uu:vv" command in
hostapd_cli to retrieve the signature for a station. This code has
not been in use nearly so long, previously we had hostapd writing
signatures directly to files.

Patch #2 is an enhancement, much more recently developed. Storing
the Probe Request and Association Request in the sta_info_t means
that the Probe sent prior to association has nowhere to be stored
and is lost. There has to be another Probe, after association, before
the signature is available.

Patch #2 stores the Probe Request in the hostapd_sta_info, and makes
it available when the station later associates. This is done in a
separate patch because of concern about memory leaks. hostapd_sta_info
did not have dedicated alloc/free routines, it used malloc() and
free() directly. I've added dedicated alloc/free routines in this

Signed-off-by: dgentry at google.com (Denton Gentry)
Signed-off-by: denny at geekhold.com (Denton Gentry)

Denton Gentry (2):
  Client Taxonomy
  taxonomy: store probes in hostapd_sta_info.

 hostapd/Makefile       |   1 +
 hostapd/config_file.c  |   2 +
 hostapd/ctrl_iface.c   |   3 +
 hostapd/hostapd.conf   |   7 ++
 hostapd/hostapd_cli.c  |  16 +++
 src/ap/ap_config.h     |   2 +
 src/ap/beacon.c        |  42 ++++++-
 src/ap/beacon.h        |   3 +
 src/ap/ctrl_iface_ap.c |  33 +++++
 src/ap/ctrl_iface_ap.h |   3 +
 src/ap/hostapd.c       |   2 +-
 src/ap/hostapd.h       |   2 +
 src/ap/ieee802_11.c    |   3 +
 src/ap/sta_info.c      |  14 +++
 src/ap/sta_info.h      |   5 +
 src/ap/taxonomy.c      | 317 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/ap/taxonomy.h      |  21 ++++
 17 files changed, 474 insertions(+), 2 deletions(-)
 create mode 100644 src/ap/taxonomy.c
 create mode 100644 src/ap/taxonomy.h


More information about the Hostap mailing list