hostapd: add support for client taxonomy in the full config

This can be used to fingerprint clients to try to identify the exact
model

Signed-off-by: Felix Fietkau <nbd@nbd.name>
master
Felix Fietkau 2018-04-30 13:40:42 +02:00
parent 29e2f9ea5b
commit 23c1827e34
2 changed files with 29 additions and 5 deletions

View File

@ -357,7 +357,7 @@ CONFIG_INTERNAL_LIBTOMMATH=y
# Has the AP retain the Probe Request and (Re)Association Request frames from # Has the AP retain the Probe Request and (Re)Association Request frames from
# a client, from which a signature can be produced which can identify the model # a client, from which a signature can be produced which can identify the model
# of client device like "Nexus 6P" or "iPhone 5s". # of client device like "Nexus 6P" or "iPhone 5s".
#CONFIG_TAXONOMY=y CONFIG_TAXONOMY=y
# Fast Initial Link Setup (FILS) (IEEE 802.11ai) # Fast Initial Link Setup (FILS) (IEEE 802.11ai)
# Note: This is an experimental and not yet complete implementation. This # Note: This is an experimental and not yet complete implementation. This

View File

@ -1,6 +1,22 @@
--- a/hostapd/hostapd_cli.c --- a/hostapd/hostapd_cli.c
+++ b/hostapd/hostapd_cli.c +++ b/hostapd/hostapd_cli.c
@@ -417,7 +417,6 @@ static int hostapd_cli_cmd_sa_query(stru @@ -385,7 +385,6 @@ static int hostapd_cli_cmd_disassociate(
}
-#ifdef CONFIG_TAXONOMY
static int hostapd_cli_cmd_signature(struct wpa_ctrl *ctrl, int argc,
char *argv[])
{
@@ -398,7 +397,6 @@ static int hostapd_cli_cmd_signature(str
os_snprintf(buf, sizeof(buf), "SIGNATURE %s", argv[0]);
return wpa_ctrl_command(ctrl, buf);
}
-#endif /* CONFIG_TAXONOMY */
#ifdef CONFIG_IEEE80211W
@@ -417,7 +415,6 @@ static int hostapd_cli_cmd_sa_query(stru
#endif /* CONFIG_IEEE80211W */ #endif /* CONFIG_IEEE80211W */
@ -8,7 +24,7 @@
static int hostapd_cli_cmd_wps_pin(struct wpa_ctrl *ctrl, int argc, static int hostapd_cli_cmd_wps_pin(struct wpa_ctrl *ctrl, int argc,
char *argv[]) char *argv[])
{ {
@@ -643,7 +642,6 @@ static int hostapd_cli_cmd_wps_config(st @@ -643,7 +640,6 @@ static int hostapd_cli_cmd_wps_config(st
ssid_hex, argv[1]); ssid_hex, argv[1]);
return wpa_ctrl_command(ctrl, buf); return wpa_ctrl_command(ctrl, buf);
} }
@ -16,7 +32,15 @@
static int hostapd_cli_cmd_disassoc_imminent(struct wpa_ctrl *ctrl, int argc, static int hostapd_cli_cmd_disassoc_imminent(struct wpa_ctrl *ctrl, int argc,
@@ -1518,7 +1516,6 @@ static const struct hostapd_cli_cmd host @@ -1510,15 +1506,12 @@ static const struct hostapd_cli_cmd host
{ "disassociate", hostapd_cli_cmd_disassociate,
hostapd_complete_stations,
"<addr> = disassociate a station" },
-#ifdef CONFIG_TAXONOMY
{ "signature", hostapd_cli_cmd_signature, hostapd_complete_stations,
"<addr> = get taxonomy signature for a station" },
-#endif /* CONFIG_TAXONOMY */
#ifdef CONFIG_IEEE80211W
{ "sa_query", hostapd_cli_cmd_sa_query, hostapd_complete_stations, { "sa_query", hostapd_cli_cmd_sa_query, hostapd_complete_stations,
"<addr> = send SA Query to a station" }, "<addr> = send SA Query to a station" },
#endif /* CONFIG_IEEE80211W */ #endif /* CONFIG_IEEE80211W */
@ -24,7 +48,7 @@
{ "wps_pin", hostapd_cli_cmd_wps_pin, NULL, { "wps_pin", hostapd_cli_cmd_wps_pin, NULL,
"<uuid> <pin> [timeout] [addr] = add WPS Enrollee PIN" }, "<uuid> <pin> [timeout] [addr] = add WPS Enrollee PIN" },
{ "wps_check_pin", hostapd_cli_cmd_wps_check_pin, NULL, { "wps_check_pin", hostapd_cli_cmd_wps_check_pin, NULL,
@@ -1543,7 +1540,6 @@ static const struct hostapd_cli_cmd host @@ -1543,7 +1536,6 @@ static const struct hostapd_cli_cmd host
"<SSID> <auth> <encr> <key> = configure AP" }, "<SSID> <auth> <encr> <key> = configure AP" },
{ "wps_get_status", hostapd_cli_cmd_wps_get_status, NULL, { "wps_get_status", hostapd_cli_cmd_wps_get_status, NULL,
"= show current WPS status" }, "= show current WPS status" },