WPA_supplicant身份验证实施

时间:2015-09-30 09:37:28

标签: wpa-supplicant

我需要那些在使用wpa_supplicant代码方面有一定经验的人的帮助。

我的理解是wpa_supplicant将一切都用于让请求者连接到AP(如果那就是你的东西)。因此步骤如下:

  1. 扫描
  2. 获取扫描结果
  3. AUTH
  4. ASSOC
  5. 4手摇
  6. 数据交换
  7. 据我所知,前4个步骤仅由wpa_supplicant管理。也就是说,wpa_supplicant只是调用欠铺设驱动程序来执行这些步骤,并在主事件循环接收到EVENT_ASSOC消息之后。它开始了4次握手。

    就我而言,前两个步骤在驱动程序中执行是很好的,即,wpa_supplicant发送扫描请求,驱动程序执行扫描并提供扫描结果。

    我的问题是,wpa_supplicant无法生成必要的数据包并使用例如第2层(rawsocket)向AP发送身份验证请求是否正确?然后是一个关联请求?...应该只是从驱动程序层提供这些句柄吗?

    我可以从wpa_supplicant.c中的代码中看到 (void wpa_supplicant_associate(struct wpa_supplicant * wpa_s,                   struct wpa_bss * bss,struct wpa_ssid * ssid))

    该函数调用指向所选驱动程序的函数指针,例如。 “.associate = wpa_driver_nl80211_associate”,然后驱动程序将其发送到udnerlaying nl80211驱动程序代码? ....所以wpa_supplicant不能自己生成这些数据包?

    我希望这有任何意义,如果不是请问:)

1 个答案:

答案 0 :(得分:1)

是的,您的理解是正确的。要发送auth / assoc req,wpa_supplicant应在以下不同场景中构造相应的NL80211命令: a)如果SME维护在wpa_supplicant

  • NL80211_CMD_AUTHENTICATE
  • NL80211_CMD_ASSOCIATE

b)如果SME由司机维护

  • NL80211_CMD_CONNECT

这些命令将触发由wifi驱动程序注册的相应cfg80211_ops挂钩(.auth,.assoc,。connect)以构建帧然后发送帧。