wpa_supplicant EAPOL状态机分析

协议

EEE 802.1X-2004协议:基于端口的网络接入控制协议(port based network access control protocol)。在LAN口对所接入的用户设备进行认证和控制,如果通过认证则端口打开,可以访问局域网中的资源。

状态机设计原理

EAOPOL和EAP之间的关联

在这里插入图片描述
以sta侧为例,802.1X(EAPOL)是EAP SUPP的LL层。
其中两层之间交互的变量“eapResp”等释义可参考链接: link章节“SM与LL交互使用到的变量列表”

EAPOL定义5种状态机

peer和Authenticator定义的所有状态机统称:PACP(Port Access Control Protocol)State Machine

sta 使用的5种状态机
1.Port Timers SM:Port超时控制状态机。
2.The Key Receiver SM:处理EAPOL-Key帧相关流程。
3.Supplicant PAE(Port Access Entitiy) SM:维护Port状态。
4.Supplicant BE (Backend) SM:给Authenticator发送EAPOL回复消息。
5.The Supplicant Key Transmit SM:该状态机非必选项,所以WPAS未实现它。

1.Port Timers SM

功能:每一秒触发一次从ONE_SECOND状态进入TICK状态。
EA执行dec函数递减**while等多个变量的值。

状态迁移

在这里插入图片描述

变量

在这里插入图片描述

2.The Key Receiver SM

功能:EAPOL Key帧处理

状态迁移

在这里插入图片描述

变量

在这里插入图片描述

函数

processKey函数处理EAPOL Key消息

3.PAE(Port Access Entitiy)SM

功能:维护Port状态

状态迁移

在这里插入图片描述

变量

在这里插入图片描述

函数

txStart():发送EAPOL-Start消息给Authenticator。
txLogoff():发送EAPOL-Logoff消息给Authenticator。

4.BE (Backend) SM

功能:给Authenticator发送EAPOL回复消息

状态迁移

在这里插入图片描述

变量

默认初始值为30
在这里插入图片描述

函数

abortSupp:停止认证工作,释放相关的资源。
getSuppResp:获取EAP Response信息,然后用txSuppResp函数发送出去。但WPAS中,该函数没有包括任何有实质意义的内容。
txSuppResp:发送EAPOL-Packet包给Authenticator。

全局变量(Global Varaibles)

5种状态机共同使用的变量
在这里插入图片描述

WPAS代码梳理(待补充)

猜你喜欢

转载自blog.csdn.net/htt789/article/details/128805239