linux下使用wpa_supplicant實現802.1x認證功能


學習linux有些段時間了,初次嘗試寫博客,記錄下個人學習的點點滴滴,請大家多多指教。

原文地址:https://www.cnblogs.com/24kCode/p/11890634.html

轉載請注明出處!

 

一.什么是wpa_spplicant

WPA是WiFi Protected Access的縮寫,中文含義為“WiFi網絡安全存取”。WPA是一種基於標准的可互操作的WLAN安全性增強解決方案,可大大增強現有以及未來無線局域網絡的數據保護和訪問控制水平。
wpa_supplicant是一個開源項目,已經被移植到Linux,Windows以及很多嵌入式系統上。它是WPA的應用層認證客戶端,負責完成認證相關的登錄、加密等工作。
wpa_supplicant是一個獨立運行的守護進程,其核心是一個消息循環,在消息循環中處理WPA狀態機、控制命令、驅動事件、配置信息等。

 

二.獲取wpa_spplicant

進入官網下載最新版本即可,目前最新版本是2.9:

wget http://w1.fi/releases/wpa_supplicant-2.9.tar.gz

tar -xzf wpa_supplicant-2.9.tar.gz

mv wpa_supplicant-2.9 wpa_supplicant

編譯wpa_supplicant步驟省略...

 

三.添加wpa_supplicant源碼到工程

將下載的源碼放到工程中,包含wpa_ctrl.h頭文件即可

#include "wpa_supplicant/src/common/wpa_ctrl.h"

 

四.802.1x認證流程

該認證流程可以參考源碼中qt工程中的若干函數實現:

wpa_supplicant\wpa_supplicant\wpa_gui-qt4\wpa_gui.pro

 

1.打開wpa_supplicant程序:

wpa_supplicant -B -i ens33 -f/tmp/wpa.log -c/etc/wpa_supplicant.wired.conf -Dwired

 

2.打開wpa_supplicant控制端口:

m_CtrlConn = wpa_ctrl_open(strFile);

m_MonitorCtrlConn = wpa_ctrl_open(strFile);

wpa_ctrl_attach(m_MonitorCtrlConn)

 

3.發送認證消息給wpa_supplicant程序:

CtrlRequest("SET_NETWORK ens33 identity user", reply, &reply_len);

CtrlRequest("SET_NETWORK ens33 password password", reply, &reply_len);

CtrlRequest("ENABLE_NETWORK ens33", reply, &reply_len);

CtrlRequest("LOGON", reply, &reply_len);

 

4.注銷登錄:

CtrlRequest("LOGOFF", reply, &reply_len);

 

wpa_supplicant源碼下載地址:

http://w1.fi/releases/wpa_supplicant-2.9.tar.gz

wpa_supplicant開發文檔:

http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf

參考網站:

https://w1.fi/wpa_supplicant/devel/ctrl_iface_page.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM