wpa_supplicant EAP状态机分析

RFC4137协议

RFC4137:“State Machine for Extensible Authentication Protocol(EAP)Peer and Authenticator”,它描述了Peer端(即Supplicant端)和Authenticator端通过状态机(State Machine)这种方式来实现EAP处理流程的具体步骤和相关细节。
英文文档地址链接: link
中文文档地址链接: link

状态机设计原理

模块划分

在这里插入图片描述

1.最底层Lower Layer(LL)层,作用是接收和发送EAP包。
2.中间层SUPP SM层,实现了Supplican状态机。
3.最上层EAP Method(EM)层,实现具体的EAP方法。

SM状态定义

SM共定义了13种状态
在这里插入图片描述

SM状态转换

如图所示为RF437描述的EAP Peer State Machine
在这里插入图片描述
查看方法:
1.每个状态用一个框表示,叫做“状态框”。
2.状态框顶部所示为“状态名”。对应SM定义的13种状态。
3.状态框中状态名下边的伪代码表示进入该状态后需要执行的动作“Entry Action(EA)“。
4.箭头中描述的是一些“判断条件”。
5.UCT代表Unconditional Transition,即“无条件状态转换”。
举例:SUPP SM在DISCARD状态中执行完其EA后,将直接转换到IDLE状态

SM使用到的变量及函数定义

变量

1.SM与LL交互使用到的变量列表

LL层暴露给SUPP SM层的变量如下表:
在这里插入图片描述
其中“altAccept和altReject”用于通知LL层Success或Failure信息。
当supplicant收到Disassociate帧或者Deauthenticate帧时,表示altReject。
当收到4-Way Handshake第一个Message时,表示altAccept。

SUPP SM层暴露给LL层的变量如下表:
在这里插入图片描述

2.SM与EM交互使用到的变量

在这里插入图片描述
在这里插入图片描述
methodState和decision的值由具体的认证方法(即Method)来确定

3.SM内部使用的变量

在这里插入图片描述

函数

在这里插入图片描述

wpas代码

变量数据结构
在这里插入图片描述
状态类型和处理函数
在这里插入图片描述
eap_method最重要的是其处理函数,process函数实际上完成了m.check、m.process和m.buildResp的功能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值