亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1493 | 回復: 0
打印 上一主題 下一主題

wpa_supplicant學習 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-06-18 15:46 |只看該作者 |倒序瀏覽
本來以為這個東西只有在Atheros的平臺上用的,突然發(fā)現(xiàn)Ralink的平臺也可以用,甚至還看到還有老美把這個東西往android上移植?磥硎莻好東西,學習一下。
官方的模塊框圖


一般來說很多模塊可以根據(jù)需要選用的
EAP methods EAP state machine
如果你不需要支持wpa-enterprise那么這兩個模塊都不需要編譯。
wpa_cli和GUI
這兩個可以不要,直接寫個控制腳本,把用戶的參數(shù)變?yōu)榕渲梦募,重啟wpa_supplicant
driver event
driver event 無線驅動和本程序通訊的接口,一般高級的無線驅動都支持WEXT。就是驅動里面通過wireless_send_event把一些狀態(tài)信息發(fā)到本程序處理。
driver i/f
一些ioctl接口,同樣用于無線驅動和本程序之間傳遞信息。
EAPOL state machine
負責處理PTK 4-way HS和GTK 2-way HS
l2_package
EAPOL和pre auth都要通過這個接口收發(fā)包。
configuration
負責處理用戶配置文件的模塊
大致流程(For WPAPSK):
1           讀取配置文件
2           初始化配置參數(shù),驅動函數(shù)wrapper
3           讓驅動scan當前所有bssid(包括wpa AP和non-wpa AP)
4           檢查掃描的參數(shù)是否和用戶設置的相符
5           如果相符,設置associate request ie 通知驅動進行auth assoc步驟
4           Four-way handshake for PTK
5           Two-way handshake for GTK
6           接收AP發(fā)出的指令,定期更換GTK

這個程序和madwifi通信主要通過wirelessEXT,其實就是netlink,在madwifi驅動中會調用wireless_event_send這個函數(shù)把相關的東西發(fā)到wpa_supplicant

WPAPSK配置文件的寫法
一般這樣寫可以兼容WPA和WPA2 CCMP和TKIP
network={
    ssid="myssid "
    key_mgmt=WPA-PSK
    proto=WPA RSN
    pairwise=TKIP CCMP
    psk="myasciipsk"
}

編譯方法:
Makefile需要讀取一個.config文件,這個文件里面包含交叉編譯路徑設置,模塊配置選項。
參考配置文件For wpapsk madwifi
#*******************************************************
CROSS_COMPILE=/opt/mips-linux-
CC=${CROSS_COMPILE}gcc
CONFIG_DRIVER_MADWIFI=y
CFLAGS += -I../src/802_11/madwifi/madwifi
CONFIG_DRIVER_WIRED=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_BACKEND=file
#*******************************************************

啟動方法(Atheros Driver):
#創(chuàng)建無線interface模式設置為managed
wlaconfig ath create wlandev wifi0 wlanmode sta
#設置ath0到自動模式,這樣scan的時候會掃所有的頻道2.4g 5g 11nagb。
iwpriv ath0 mode auto
#設置好配置文件,啟動wpa_supplicant
wpa_supplicant –i ath0 –b br0 –c /tmp/supplicant.conf -B
主要參數(shù)含義:
ath0是無線interface,通過這個參數(shù),函數(shù)就可以通過iotcl調用無線驅動中的接口。
br0 是bridge interface,EAPOL L2 package都通過這個接口收發(fā)。
-c 表示配置文件
-B daemonlise

源碼關鍵函數(shù)
wpa_supplicant_add_iface
       wpa_supplicant_init_iface
wpa_supplicant_set_driver
              wpa_config_read
wpa_supplicant_init_iface2
       wpa_supplicant_init_eapol
       wpa_drv_init
       wpa_drv_set_param
       wpa_supplicant_init_wpa
       wpa_supplicant_driver_init
              wpa_supplicant_req_scan // trigger scan state

wpa_supplicant_scan

wpa_supplicant_set_suites
wpa_sm_set_assoc_wpa_ie_default  //add wpa rsn ie in associate req

有時候AP會被加到blackList中,主要原因可以參考下面的代碼。主要是收到deauth這個event和auth timeout

wpa_supplicant_event_disassoc
wpa_blacklist_add

wpa_supplicant_timeout
wpa_blacklist_add
何時會從黑名單中刪除。
               
               
               

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/96145/showart_1968852.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP