一次Dot1x认证/EAP认证/RADIUS交互-报文解析

个人认为,理解报文就理解了协议。通过报文中的字段可以理解协议在交互过程中相关传递的信息,更加便于理解协议。

此处在于记录一次dot1x认证/EAP认证/RADIUS交互过程。

在这里插入图片描述


关于EAP协议实现上还存在大量其他相关资料,这里仅提供一点参考资料。

Note:这次仅提供一点关于报文交互的说明。协议的实际实现可能存在差异。
个人能力有限,敬请各位指导。

目录

1.背景介绍

1.1.基本内容

802.1X认证,又称Dot1x认证(省略802后的“点1x”读法),是一种基于端口的 Port based networkaccess control protocol网络接入控制协议。

通常在局域网接入设备时验证用户身份并控制其访问权限。也即,在认证通过之前,802.1x只允许终端进行EAPOL(Extensible Authentication Protocol Over LAN)数据交互;在认证通过以后,终端才可以正常访问提供的业务。

EAP认证模式
EAP中继认证
来自终端的EAP报文(反映用户信息)不经修改的被 BAS/NAS/BRAS 直接封装到RADIUS报文中(EAP over RADIUS,简称为EAPoR)。BAS/NAS/BRAS 以类似代理的方式穿越复杂的三层网络与 RADIUS Server 进行认证信息交互。

EAP终结认证
来自终端的 EAP 报文终结于 BAS/NAS/BRAS 设备上。BAS/NAS/BRAS 重新封装入 RADIUS 报文中后,利用标准RADIUS协议完成认证、授权和计费。

@:BAS/BRAS/NAS 分别指宽带接入服务器/宽带远程接入服务器/网络接入服务器,是一种网络角色。这三种概念在网络模型中往往是重叠的。详细介绍可参考博客-RADIUS协议原理介绍+报文分析+配置指导-RFC2865/RFC2866
@:Dot1x认证系统使用认证系统使用EAP协议进行信息交互。EAP协议可以运行在各种底层,包括数据链路层和上层协议(如UDP、TCP等),而不需要IP地址。因此使用EAP协议的Dot1x认证具有良好的灵活性。
@:本次交互以EAP中继认证为例进行介绍。
在这里插入图片描述//dot1x authentication-method用来配置802.1X用户的认证方式。
eap通常指EAP中继模式,chap和pap通常指EAP终结模式。区别在于pap方式下 RADIUS Access-Request 报文中包含了 RADIUS AVP2=User-Password,而chap方式下 RADIUS Access-Request 报文中包含了 RADIUS AVP3=CHAP-Password。

1.2.相关协议

此处重点介绍EAP协议的相关信息,关于RADIUS协议的详细介绍可参考博客-RADIUS协议原理介绍+报文分析+配置指导-RFC2865/RFC2866

EAP协议:自报文数据链路层开始介绍。
在这里插入图片描述1@Ethernet Type:整个 802.1X 认证信息直接位于数据链路层之上,Ethernet Type=0x888e
2@802.1X Version:常用 802.1X Version有 802.1X-2001(Version=0x01)、802.1X-2004(Version=0x02)和 802.1X-2010(Version=0x03)。此处协议使用 802.1X-2001(Version=0x01)。
3@802.1X Type:EAP/EAPoL数据帧类型数据帧类型。

0x00=EAP-Packet:表示认证报文数据,用于承载认证信息;
0x01=EAPoL-Start:表示认证开始报文,用于用户主动发起认证过程;
0x02=EAPoL-Logoff:表示EAPoL-Logoff,用于用户主动发起下线请求;
0x03=EAPoL-Key:表示EAPoL-Key,密钥信息报文。

4@EAP Code:标识 EAP 消息类型。目前RFC标准化了6种 EAP Packet Codes。

0x01=Request:表示EAP请求开始。定义于RFC3748。
0x02=Response:表示EAP请求响应。定义于RFC3748。
0x03=Success:表示通知终端获得访问许可。定义于RFC3748。
0x04=Failure:表示通知终端获得访问拒绝。定义于RFC3748。
0x05=Initiate:本交互不涉及。定义于RFC6696。
0x06=Finish:本交互不涉及。定义于RFC6696。

5@EAP ID:用于匹配同一次交互的 Request 和 Response。
6@EAP Method Types:与 EAP Code 相匹配的认证信息。目前约有50种标准定义。
在这里插入图片描述此处仅介绍常用取值,详细字段可参考IANA发布的Extensible Authentication Protocol (EAP) Registry–Method Types

2.协议交互

2.1.典型网络结构

在这里插入图片描述其典型网络结构如上图所示。

报文交互总体流程
1@:首先安装了Dot1x客户端的终端发起EAP认证。
2@:终端与接入设备(BAS/NAS/BRAS)交互信息后,接入设备携带用户认证信息与 RADIUS Server 进行交互。
3@:接入设备(BAS/NAS/BRAS)获取到来自 RADIUS Server 的认证结果后,向终端设备发送相应的结果并授权。

在这里插入图片描述//随后将以上图为例进行报文交互的解析示例。

2.2.报文交互流程

1@终端发起EAP报文,提示交互开始PC—>>NAS
在这里插入图片描述EAP 的 Start 消息仅用于提示接入设备开始EAP交互过程,因此无实际用户信息字段。

2@接入设备发起EAP报文,提示交互开始PC<<—NAS
在这里插入图片描述Type:Identity,标识要求客户端发送用户输入的用户名信息。

在这里插入图片描述//dot1x retry用来配置向客户端发送认证请求报文的重传次数。在这里插入图片描述//dot1x timer tx-period用来配置周期发送认证请求的时间间隔。

3@终端发起EAP报文,传递认证所需用户信息PC—>>NAS
在这里插入图片描述客户端将用户输入的认证信息传递给接入设备。

4@接入设备以EAP中继模式与RADIUS Server进行认证交互NAS—>>RADIUS Server
在这里插入图片描述NAS将客户端发送的EAP信息不经修改的直接封装于 RADIUS 的79号=EAP-Massage 属性中。同时必须包含80号=Message-Authenticator 属性,以用于防止使用 CHAP、ARAP 或 EAP 身份验证方法欺骗 RADIUS Access-request访问请求。这两个属性往往同时存在。

此外,RADIUS Access-request 消息中还包含了其他用于标识终端、用户接入、NAS设备标识、等、的 RADIUS AVP 属性,用于为 RADIUS Server 提供丰富的认证信息。

在这里插入图片描述//dot1x reauthenticate和dot1x timer reauthenticate-period用于开启dot1x重认证功能。此时NAS会将已上线的用户周期发送给RADIUS Server进行认证,可用于实现类似保活的效果。并且如果用户信息改变,则用户将会被下线。

5@RADIUS Server向接入设备回应MD5 Challenge要求进一步提供用户验证信息NAS<<—RADIUS Server
在这里插入图片描述RADIUS Server回应一个随机MD5 Challenge以及经MD5 Challenge加密用户信息的字符串。该信息封装于 RADIUS Access-challenge 信息中发送给接入设备。

6@接入设备向客户端转发RADIUS需要的进一步验证信息PC<<—NAS
在这里插入图片描述此处相应的Type字段未在标准定义中。

7@客户端向接入设备/RADIUS回应进一步验证的信息PC—>>NAS
在这里插入图片描述客户端收到由NAS传来的MD5 Challenge后,用该Challenge对密码部分进行加密处理,生成EAP-Response/MD5 Challenge报文,并发送给NAS。

8@接入设备将认证信息发送给RADIUS ServerNAS—>>RADIUS Server
在这里插入图片描述NAS将此EAP-Response/MD5 Challenge报文封装 RADIUS Access-Request 中发送给 RADIUS Server。

9@RADIUS Server向接入设备回应认证结果NAS<<—RADIUS Server
在这里插入图片描述RADIUS Server 将收到的已加密的密码信息和本地经过加密运算后的密码信息进行对比,并根据结果回应 RADIUS Success 或 RADIUS Reject。此处认证失败。

10@接入设备向客户端转发相应的结果PC<<—NAS在这里插入图片描述接入设备向客户端转发相应的结果,并为端口授予相应的权限。

点击此处回到目录

更新

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值