can't get wpasupplicant to authenticate against router using wpa-psk

Brian Bender bbender
Wed Feb 15 09:11:26 PST 2006


Jason, I'm working on a vendor-supplied proprietary driver  
[disclaimer: not using hostap] for an embedded product, and I see  
something in your logs (selectively snipped to point it out) that is  
similar to a situation I'm currently fighting with.

On Feb 14, 2006, at 10:38 PM, Jason Carr wrote:

> Feb 14 21:58:52.374089: Selecting BSS from priority group 0
> Feb 14 21:58:52.374105: 0: 00:13:10:68:b7:d2 ssid='flacid.org'
> wpa_ie_len=30 rsn_ie_len=26 caps=0x11
                              ^^^^^^^^^^
> Feb 14 21:58:52.374126:    selected based on RSN IE
> Feb 14 21:58:52.374145: Trying to associate with 00:13:10:68:b7:d2
> (SSID='flacid.org' freq=0 MHz)
> Feb 14 21:58:52.374162: CTRL_IFACE monitor send - hexdump(len=23):  
> 2f 74
> 6d 70 2f 77 70 61 5f 63 74 72 6c 5f 32 39 37 32 2d 30 00 00 00
> Feb 14 21:58:52.374194: Cancelling scan request
> Feb 14 21:58:52.374211: WPA: clearing own WPA/RSN IE
> Feb 14 21:58:52.374226: Automatic auth_alg selection: 0x1
> Feb 14 21:58:52.374246: RSN: using IEEE 802.11i/D9.0
> Feb 14 21:58:52.374261: WPA: Selected cipher suites: group 8  
> pairwise 24
> key_mgmt 1
> Feb 14 21:58:52.374277: WPA: set AP WPA IE - hexdump(len=30): dd 1c 00
> 50 f2 01 01 00 00 50 f2 02 02 00 00 50 f2 04 00 50 f2 02 01 00 00  
> 50 f2
> 01 01 00
> Feb 14 21:58:52.374302: WPA: set AP RSN IE - hexdump(len=26): 30 18 01
> 00 00 0f ac 02 02 00 00 0f ac 04 00 0f ac 02 01 00 00 0f ac 01 01 00
> Feb 14 21:58:52.374326: WPA: using GTK TKIP
> Feb 14 21:58:52.374342: WPA: using PTK CCMP
> Feb 14 21:58:52.374358: WPA: using KEY_MGMT 802.1X
> Feb 14 21:58:52.374373: WPA: Set own WPA IE default - hexdump(len=22):
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 30 14 01 00 00 0f ac 02 01 00 00 0f ac 04 01 00 00 0f ac 01 00 00
<snip>
> Feb 14 21:58:53.358609: Wireless event: cmd=0x8b15 len=20
> Feb 14 21:58:53.358654: Wireless event: new AP: 00:00:00:00:00:00
> Feb 14 21:58:53.358674: Setting scan request: 0 sec 100000 usec
> Feb 14 21:58:53.358695: BSSID 00:13:10:68:b7:d2 blacklist count
> incremented to 2
> Feb 14 21:58:53.358712: State: ASSOCIATED -> DISCONNECTED
<snip>

With newer Cisco APs (yours looks to be a Cisco-Linksys, so I assume  
it's a Linksys after the Cisco buyout?), they've started including  
the "RSN capabilities" field in the WPA_IE. The WPA_IE in the  
association request needs to match the one in the 3/4 key message in  
the 802.1X 4-way handshake, where you've selected the features you're  
going to use. Notice the line that says "Set own WPA IE default -  
hexdump(len=22)"? That doesn't have the rsn caps element in it. See  
my question below as to why I think that's important. As to the "used  
to work, now it doesn't, was the firmware on that AP by any chance  
updated from a version that was merely WPA-capable to one that was  
802.11i-capable? I have one 1200-series Cisco AP that only does WPA,  
and it only sends/requires the len==22 version of the WPA_IE, while  
the newer ones we have use the longer one, so it seems that they  
changed at some point, and it probably has something to do with code  
reuse between WPA and WPA2 cases. *shrug*

Question for the group: from what I can tell in testing, I'm not able  
to authenticate with the newer Cisco APs _unless_ I include that RSN  
Caps element in my WPA_IEs. It seems that even if my WPA_IE's match  
like they're supposed to (that was an earlier bug I had to fix <g>),  
if they're the len==22 variety, with no RSN Caps field, the AP  
disassociates me immediately after the 4-way handshake.

The WPA spec is a little vague; it says that "Clause 7.3.2.25.3?RSN  
Capabilities, the GTKSA and PTKSA Replay counter flags are not used  
in WPA." (incidentally, Cisco _is_ sending data in those flags within  
the capabilities field, so in that sense, they look like they're  
slightly wrong in their implementation) It doesn't address, though,  
whether that whole field is absolutely required. Their sample code  
illustrates conditionally looking for successive elements in the  
variable IEs based on IELen; I'd expect that the APs _should_ be able  
to tell from the length that that RSN Caps field isn't there, and the  
IE is still technically valid for a WPA session. At least I think so. :)

Has anyone else run into this situation?

Thanks,

Brian

-- 
Brian Bender
Principal Software Engineer
Vocollect, Inc.
Pittsburgh, PA, USA
[Apologies for the following "disclaimer" -- it's corporate policy.]

-CONFIDENTIAL, PRIVILEGED COMMUNICATION-
This e-mail transmission is private and intended for the addressee(s)  
only.  It may contain information that is privileged and/or  
confidential.  If you have received this transmission in error, you  
are not authorized to read, copy, disclose or disseminate it in any  
manner. If you have received it in error, please delete it and all  
copies (including backup copies) that have been made, and transmit a  
reply message informing the sender that it was misdirected.







More information about the Hostap mailing list