Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ScanResult capabilities interpretation

I want to analyze the capabilities string of a ScanResult. However, the names ther are grouped in up to four square brackets e.g.

[WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP-CCMP][WPS][ESS]

Is there some kind of documentation describing which bracket relates to what, considering that some names may apear in various brackets. It would be great if there was a list of all possible capabilities somewhere as well.

like image 796
hubert Avatar asked Aug 14 '12 16:08

hubert


3 Answers

This string is generated by wpa_supplicant. Unfortunately there is little documentation on this, but at least we can look at the precise code! There are three main functions reponsible for creating the string we see in Android:

  • wpa_supplicant_ctrl_iface_scan_result: This takes a struct wpa_bss as argument, which contains the information about one networks, and converts it to a string. You can see tags such as [ESS] and WPA2 being added. It also (indirectly) calls the following two functions. So this function add the general capabilities of the network.
  • wpa_supplicant_ie_txt: This add the [PSK] and/or [EAP] tags. In other words the type of handshake being used.
  • wpa_write_ciphers: Adds the type of WPA1 or WPA2 encryption being used. So TKIP or CCMP. It's only called if the network is WPA1 or WPA2.

By reading these three functions you will know exactly what kind of parameters in the string that you can expect. You can always confirm your understanding by creating your own network and confirming the string corresponding to your own network!

like image 168
Omega Avatar answered Nov 09 '22 19:11

Omega


Last year there was a topic about this issue. You can find some help in this stackoverflow answer. In fact, there is little Android documentation about WiFi access points capabilities. Even in the offical Javadoc, regarding the signal level, the attribute level is only documented with:

The detected signal level in dBm. At least those are the units used by the TI driver.

It seems this is a very volatile information about the WiFi handling in Android.

like image 4
João Dias Amaro Avatar answered Nov 09 '22 19:11

João Dias Amaro


i found this topic :

How do I connect to a WiFi Network with an unknown encryption algorithm in Android?

the user who asked the question seems to know what does it mean :

I have assumed, based on some research, that these are bracket-separated capabilities, and the first item for each of these is a - separated String showing:

[Authentication Algorithm - Key Management Algorithm - Pairwise Cipher]

like image 1
younes zeboudj Avatar answered Nov 09 '22 20:11

younes zeboudj