802.1x认证方式(EAP中继认证与EAP终结认证)

news2024/10/5 15:22:46

文章目录

    • 1、前言
    • 2、协议说明
    • 3、报文分析
      • EAP中继模式:MD5-challenge
      • EAP终结模式:MD5-challenge
      • Radius CHAP认证原理
      • 参考资料:

1、前言

802.1x协议是基于Client/Server的访问控制和认证协议。
它可以限制未经授权的用户/设备通过接入端口(access port)访问LAN/WLAN。在获得交换机或LAN提供的各种业务之前,802.1x对连接到交换机端口上的用户/设备进行认证。在认证通过之前,802.1x只允许EAPOL(基于局域网的扩展认证协议)数据通过设备连接的交换机端口;认证通过以后,正常的数据可以顺利地通过以太网端口。

客户端:局域网用户终端设备,但必须是支持EAPOL(Extensible Authentication Protocol over LAN,局域网可扩展认证协议)的设备(如PC机),可通过启动客户端设备上安装的802.1x客户端软件发起802.1x认证。

设备端:支持802.1x协议的网络设备(如交换机),对所连接的客户端进行认证。它为客户端提供接入局域网的端口,可以是物理端口,也可以是逻辑端口(如Eth-Trunk口)。

认证服务器:为设备端802.1x协议提供认证服务的设备,是真正进行认证的设备,实现对用户进行认证、授权和计费,通常为RADIUS服务器。

认证方式定义优势劣势
EAP中继认证也叫EAP透传认证,由网络接入设备直接把802.1X用户的认证信息以及EAP报文直接封装到RADIUS报文的属性字段中,发送给RADIUS服务器,而无须将EAP报文转换成标准的RADIUS报文后再发给RADIUS服务器来完成认证。优势:MD5-Challenge:例如基于Linux操作系统的Xsupplicant客户端和FreeRadius服务器之间可以采用MD5-Challenge认证。服务器需要配置MD5策略属性。EAP-MD5认证方式简单。EAP-TLS:例如基于Symantec Endpoint的客户端和基于Symantec Enforcer 6100的RADIUS服务器之间可以采用不带证书的EAP-TLS认证方式。EAP-TLS认证方式安全性较好。EAP-PEAP:例如Windows XP操作系统自带的客户端和Windows Server 2003自带的RADIUS服务器之间可以采用EAP-PEAP认证方式。EAP-PEAP认证方式安全性较好。要求RADIUS服务器支持相应的认证方法。
EAP终结认证由网络接入设备终结用户的EAP报文,解析出用户名和密码,并对密码进行加密,再将EAP报文转换成标准的RADIUS报文后发给RADIUS服务器来完成认证。由网络接入设备终结用户的EAP报文,解析出用户名和密码,并对密码进行加密,再将EAP报文转换成标准的RADIUS报文后发给RADIUS服务器来完成认证。RADIUS服务器并不需要支持EAP认证,减轻了服务器压力。设备端处理较为复杂。

EAP中继模式:
在这里插入图片描述
EAP终结模式
在这里插入图片描述

2、协议说明

在这里插入图片描述
Code:EAP报文的类型,包括Request(1)、Response(2)、Success(3)和Failure(4)。
Identifier:用于匹配Request消息和Response消息的标识符。
Length:EAP报文的长度,包含Code、Identifier、Length和Data域,单位为字节。
Data:EAP报文的内容,该字段仅在EAP报文的类型为Request和Response时存在,它由类型域和类型数据两部分组成,例如,类型域为1表示Identity类型,类型域为4表示MD5 challenge类型。
Type:指出EAP的认证类型。其中,值为1时,代表ldentity,用来查询对方的身份;值为4时,代表MD5-Challenge,类似于PPP CHAP协议,包含质询消息;值为18时,代表eap-sim认证;值为25时,代表PEAP认证。

在这里插入图片描述
EAP-Packet(值为00),认证报文数据,用于承载认证信息;
EAPOL-Start(值为01),认证开始报文,用于主动发起认证过程;
EAPOL-Logoff(值为02),下线请求报文,用于用户主动发起下线请求;
EAPOL-Key(值为03),密钥信息报文;
EAPOL-Encapsulated-ASF-Alert(值为04),用于支持ASF(Alerting Standards Forum)的Alerting消息。

其中,EAPOL-Start,EAPOL-Logoff和EAPOL-Key仅在客户端和设备端之间存在;在设备端和认证服务器之间,EAP-Packet报文会被重新封装承载于RADIUS协议上,我们称之为EAPoR,以便穿越复杂的网络到达认证服务器;EAPOL-Encapsulated-ASF-Alert封装与网管相关的信息,例如各种警告信息,由设备端终结。
注意,当是EAPOL-Start或EAPOL-Logoff类型报文时,并不需要PacketBody有具体的内容。

3、报文分析

EAP中继模式:MD5-challenge

1.当用户有上网需求时打开802.1X客户端程序,输入用户名和口令,发起连接请求。此时客户端程序将发出请求认证的报文给交换机,启动一次认证过程。

  •   	Ethernet II, Src:00:e0:4c:d7:65: cd, Dst:01:80:c2:00:00:03
      	Destination:01:80:c2:00:00:03(Spanning-tree-(for-bridges)_03)
      	Source:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Type:802.1X Authentication (0x888e)
      	Frame check sequence:0xa5a5a5a5(incorrect, should be0xcc6d5b40)
      	802.1x Authentication 
      	Version:1
      	Type: Start(1)
      	Length:0
    

2.交换机在收到请求认证的数据帧后,将发出一个EAP-Request/Identitybaowe 请求帧要求客户端程序发送用户输入的用户名。

  •   	Ethernet II, Src:00:03:0f:01:3a:5a, Dst:00:e0:4c:d7:65:cd
      	Destination:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Source:00:03:0f:01:3a:5a(DigitalC_01:3a:5a)
      	Type:802.1X Authentication (0x888e)
      	802.1xAuthentication 
      	Version:1
      	Type: EAP Packet(0)
      	Length:5
      	Extensible Authentication Protocol 
      	Code: Request(1)
      	Id:1
      	Length:5
      	Type: Identity [ RFC3748](1)
    

3.客户端程序响应交换机的请求,将包含用户名信息的一个EAP-Response/Identity 送给交换机,

  •   	Ethernet II, Src:38:22:d6:de:f0:e1, Dst:01:80:c2:00:00:03
      	Destination:01:80:c2:00:00:03(Spanning-tree-(for-bridges)_03)
      	Source:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Type:802.1X Authentication (0x888e)
      	802.1xAuthentication 
      	Version:1
      	Type: EAP Packet(0)
      	Length:59
      	Extensible Authentication Protocol Code: Response(2)
      	1d:1
      	Length:13
      	Type: Identity [ RFC3748](1) 
      	Identity(8 bytes):03051020
    
    交换机将客户端送来的数据帧经过封包处理后生成RADIUS Access-Request报文送给认证服务器进行处理
    在这里插入图片描述

4.认证服务器收到交换机转发上来的用户名信息后,将该信息与数据库中的用户名表相比对,找到该用户名对应的口令信息,用随机生成的一个加密字Challenge对它进行加密处理(MD5),
在这里插入图片描述

通过接入设备将 RADIUS Access-Challenge报文发送给客户端,其中包含有EAP-Request/MD5-Challenge。

  •   	Ethernet II, Src:38:22:d6:de:f0:e1, Dst:00:e0:4c:d7:65:cd
      	Destination:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Source:00:03:0f:01:3a:5a(DigitalC_01:3a:5a)
      	Type:802.1X Authentication (0x888e)
      	802.1xAuthentication 
      	Version:1
      	Type: EAP Packet(0)
      	Length:22
      	Extensible Authentication Protocol 
      	Code: Request(1)
      	Id:2
      	Length:22
      	Type: MD5-Challenge [ RFC3748](4)
      	Value-Size:16
      	Value:393430646134323936537623634616434
    

5.客户端收到EAP-Request/MD5-Challenge 报文后,用该加密字对口令部分进行加密处理(MD5)给交换机发送在EAP-Response/MD5-Challenge 回应

  •   	Ethernet II, Src:00:e0:4c:d7:65: cd, Dst:01:80:c2:00:00:03
      	Destination:01:80:c2:00:00:03(Spanning-tree-(for-bridges)_03)
      	Source:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Type:802.1X Authentication (0x888e)
      	802.1x Authentication 
      	Version:1
      	Type: EAP Packet(0)
      	Length:76
      	Extensible Authentication Protocol 
      	Code: Response(2)
      	Id:2
      	Length:30
      	Type: MD5-Challenge [ RFC3748](4)
      	Value-Size:16
      	Value: CBAC378ABB609123D2BB412840AEC614
      	Extra data(8 bytes):3033303531303230
    

交换机将Challenge,Challenged Password 和用户名一起送到RADIUS 服务器进行认证。
在这里插入图片描述
Authenticator,访问请求认证字,用于确认radius client和radius server之间消息认证的有效性和密码隐藏算法,也被用于访问回应认证字的MD5计算。

6.认证服务器将送上来的加密后的口令信息和其自己经过加密运算后的口令信息进行对比,判断用户是否合法,然后回应认证成功/失败报文到接入设备。如果认证成功,则向交换机发出打开端囗的指令,允许用户的业务流通过端口访问网络。否则,保持交换机端口的关闭状态,只允许认证信息数据通过。

  •   	Ethernet II, Src:38:22:d6:de:f0:e1, Dst:00:e0:4c:d7:65:cd
      	Destination:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Source:00:03:0f:01:3a:5a(DigitalC_01:3a:5a)
      	Type:802.1X Authentication (0x888e)
      	802.1xAuthent ication 
      	Version:1
      	Type: EAP Packet(0)
      	Length:225
      	Extensible Authentication Protocol
      	Code: Success (3)
      	Id:0
      	Length:4
    

EAP终结模式:MD5-challenge

1、EOPAL start
该数据包的前14字节是MAC帧的头部信息,1-6 字节内容为目标的 MAC 地址, 7-12 字节为源 MAC地址,13-14字节为该数据帧类型。从第15字节开始为 MAC层封装的实际通信内容。从MAC帧的头部信息可以看出,EAPOL-Start消息发向了FF-FF-FF-FF-FF-FF 这个广播(broadcast)地址,源地址则将请求者的位置告诉验证者。MAC帧头的Type字段的值为0x888e,表示了该帧封装了802 .1X Authentication数据,以下各包的Type字段均是 0x888e。从第15字节开始是802 .1X Authentication内容。第15字节为Version字段,值为1;第16字节为Type字段,表示了该 802.1X Authentication 的类型,这个包值为1 ,表示 Start(开始认证过程);第17- 18字节为 Length字段,它表示的是802.1X Authentication 封装的 EA P消息的长度,由于EAPOL-Start没有包含EAP消息,所以此处为 0。以下各包的802.1X Authentication 格式和这个包是一样的,Type和Length值有变化。
在这里插入图片描述
2、EAP-Request Identity
当认证者接收到刚才的请求者发送的 EA POL-Start 消息后, 将开始整个认证流程。认证者向请求者发送 EAP-Request Identity消息,请求其身份。从第19 字节开始是EAP消息。第19字节为Code字段,值为1表示Request ,值为2表示Response,显然这个包的Code值为1 ;第20字节为Id字段,表示EAP消息序号,该消息的Id为1;第21-22字节为Length字段,它表示EAP消息的长度,和802.1X Authentication的Length字段代表相同的语意。这个消息长度为 5 字节,所以此处值为5;第23字节为Type字段,表示EAP消息的类型,该消息Type值为0,表示 Identity。在802.1X Authentication部分,Type字段为0,表示EAP Packet; Length字段值为5 ,表示EAP消息长度为5。
在这里插入图片描述
3、EAP-Response Identity
我们主要看EAP消息部分。第19字节的Code字段值为2表示Response;第20字节为Id字段值为1,对应EAP-Request Identity的Id,表示对Id为1的 Request的回应;第21-22字节的Length字段值为10;第23字节的Type字段值仍为1, 表示Identity;第24字节开始是Identity的内容,长度为5字节。也就是用户名。
在这里插入图片描述
4、EAP-Request MD5-Challenge
认证者收到了EAP- Response Identity消息后,得到了请求者的身份信息,接着向请求者发出EAP-Request MD5-Challenge,质询密码之类的认证信息。第20字节为Id字段值为2;第21-22字节的Length字段值为22 ;第23字节的 Type字段值为4,表示MD5-Challenge;第24字节是Value -Size字段,表示Val ue字段的长度。此处值为16 ,Value也是使用MD5生成;第25-40字节为 Value 字段内容,提供给请求者在后面的MD5计算中使用
0387c01542dec1444322fc9626a6c56d。
在这里插入图片描述
5、EAP-Response MD5-Challenge
请求者收到了 EAP-Request MD5-Challenge 消息后,将消息的 Id 、自己的密码和消息的Value组合成16进制串,计算MD5值 ,填入EAP-Response MD5-Challenge,发送给认证者。 第20字节为Id字段值为2,对应Request;第21-22字节的Length字段值为27 ;第23字节的Type字段值仍为4;第24字节的Value-Size字段值仍为16,因为MD5算法得到的结果长度为 16个字节;第25-40字节为Value字段内容。这个串是由Request的Id+密码的16进制ASCII码+Request的Value组合成的16进制串经过MD5算法计算而成;第41-53字节为Extradata,长度为5字节,内容仍为16进制ASCII码表示的用户身份,也就是用户名。
在这里插入图片描述
6、EAP-Success
验证者收到请求者回应的EAP-Response MD5-Challenge消息后, 将该消息重新封装如RADIUS数据包,发送给后面的认证服务器。认证服务器确认用户名/密码正确后,发送EAP -Success,认证者再将该消息重新封装发送给请求者,表明认证已经通过,进入授权状态。EAP-Success消息很简单。第19字节的Code字段值为3表示Success;第20字节为Id字段值仍然为2,表明是之前Id为2的Challenge的结果 ;第21-22字节的Length字段值为4。

Radius CHAP认证原理

CHAP(Challenge Handshake Authentication Protocol)验证协议为三次握手(交互)验证协议
chap并不会直接在认证过程传递用户密码,而是传递 md5 ( chapID + 密码 + challenge ), 服务端通过比较md5值判断用户密码是否在正确, client 和 server 之前存在一个 challenge “协商”过程

但在radius 协议中, NAS(交换机)与radius服务器的交互,并不需要三次交互, NAS会将认证信息 “打包”给radius 服务器校验

radius服务器 chap 用户名/密码 校验原理
(1)radius 服务器通过用户名(明文), 找出对应的密码,此时密码为pass
(2)计算 md5 ( chapID + 密码 + challenge ) , 并判断 是否与 chap-password (从第2字节开始比较) 一致,如果一致, 则认为密码正确

截图中, md5 ( chapID + 密码 + challenge ) 与 chap string 一致, 由此可知,用户密码正确
在这里插入图片描述

0x0a 是chapID
0x70 0x61 0x73 0x73 是密码,转换便是:pass
剩下的十六字节便是MD5-challenge,组成后进行 md5 ( chapID + 密码 + challenge ) 得到的值与CHAP String相等。

参考资料:

802.1x认证基础
802.1X协议及Radius协议

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/350944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

element-ui日期控件el-canlender学习笔记

需求&#xff1a;点击日历控件中的某一天&#xff0c;弹出弹出框添加这一天的活动。 任务分析&#xff1a; 点击日历控件的某一天&#xff0c;获取当前日期信息 代码实现&#xff1a; <el-calendar v-model"nowDate" ><templateslot"dateCell"sl…

无文件攻击

无文件攻击是一种高级持续性威胁&#xff08;APT&#xff09;的攻击方式&#xff0c;它不会在目标系统的磁盘上留下可执行文件&#xff0c;而是利用系统内置的工具或脚本执行恶意代码&#xff0c;从而绕过传统的安全防护措施。无文件攻击的最大特点就是恶意代码直接在内存中运行…

ce认证机构如何选择?

CE认证想必大家都已经有所了解&#xff0c;它是产品进入欧盟销售的通行证&#xff0c;那么我们在办理CE认证时该怎么进行选择?带大家了解一下CE认证机构&#xff0c;以及该怎么去进行选择? 以下信息由证果果编辑整理&#xff0c;更多认证机构信息请到证果果网站查看。找机构…

Python版本的常见模板(二) 数论(一)

文章目录前言质数相关质数判断求约数求取区间质数埃氏筛法线性筛法分解质因数欧拉欧拉函数求取单个数线性筛法求取欧拉定理求逆元快速幂/幂取模欧几里得算法求最小公约数拓展欧几里得算法求解同余方程前言 本文主要是提供Python版本的常见的一些与数论相关的模板&#xff0c;例…

SQL中常见的数据类型

SQL中常见的数据类型 目录概述一、整型分类特点二、小数分类特点三、字符型四、日期型分类特点概述 数值型 整数&#xff1a;整型 小数&#xff1a;定点数、浮点数字符型 较短的文本&#xff1a;char、varchar 较长的文本&#xff1a;text、blob(用于保存较长的二进制数据&…

GEE学习笔记 八十二:湖北旱情分析(2019年8月-9月)

2019年8月1日至9月15日&#xff0c;湖北平均雨量为近53年来同期最少&#xff0c;仅69.4毫米。尤其是中东部地区降水异常偏少&#xff0c;一个半月里大多数地方的累计降水量均不足70毫米&#xff0c;其中洪湖、英山降水仅4毫米。鄂西东部一直到鄂东地区的降水量均比常年同期偏少…

IP协议相关特性

日升时奋斗&#xff0c;日落时自省 目录 1、地址管理 1.1、子网掩码 2、路由选择 针对网络层的IP协议理解 TCP/IP协议栈TCPIP 此处详细解析IPv4协议&#xff08;v4版本&#xff09; 4位版本&#xff1a;此处的取值只有两个v4 &#xff0c;v6 4位首部长度 &#xff1a;描…

【WPF】WindowChrome 自定义窗口完美实现

WindowChrome 自定义窗口完美实现简介效果图自定义最小化、最大化、关闭按钮布局实现结语简介 Microsoft官网关于 WindowChome 的介绍 截取Microsoft文章的一段话&#xff1a;   若要在保留其标准功能时自定义窗口&#xff0c;可以使用该 WindowChrome 类。 该 WindowChrome…

多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序)

多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序) 目录 多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序)预测结果评价指标基本介绍程序设计参考资料预测结果 评价指标 训练结束: 已完成最大轮…

新建一个完整的react项目和完善初始项目

一&#xff1a;新建一个完整的react项目 1.环境准备 目前我的环境是 node&#xff1a;16.17.1 npm&#xff1a; 8.15.0 查看环境&#xff1a;1)&#xff1a;打开命令提示符工具&#xff0c;利用node -v和npm -v 查看一下自己的环境&#xff0c;如果觉得重新卸载、安装node比较…

用记事本实现“HelloWorld”输出

一、在任意文件夹中创建一个新的文本文档文件并写入以下代码 public class Hello{public static void main (String[] args){System.out.print("Hello,World!");} } 二、修改文件名称及文件类型为 Hello.java 特别注意&#xff1a;文件命名必须与代码中类的名称相同…

为什么伟大的产品只专注做一件事

uber 不允许你预订出租车。亚马逊一开始只是卖书。谷歌只是一个搜索引擎。麦当劳没有餐具。不知为什么&#xff0c;我们仍然相信一个产品要想成功&#xff0c;它必须做很多事情。这通常发生在两种情况下&#xff1a;当新产品试图让市场相信它们是值得的&#xff0c;或者当公司提…

儿童蜡笔出口美国CPC认证CPSIA+ASTM963测试

蜡笔是将颜料掺在蜡里制成的笔&#xff0c;可有数十种颜色&#xff0c;画画用。蜡笔没有渗透性&#xff0c;是靠附着力固定在画面上&#xff0c;不适宜用过于光滑的纸、板&#xff0c;亦不能通过色彩的反复叠加求得复合色。它是儿童学习色彩画的理想工具&#xff0c;一些画家用…

【Spark分布式内存计算框架——Spark SQL】5. DataFrame(下)

3.3 Row DataFrame中每条数据封装在Row中&#xff0c;Row表示每行数据&#xff0c;具体哪些字段位置&#xff0c;获取DataFrame中第一条数据。 如何构建Row对象&#xff1a;要么是传递value&#xff0c;要么传递Seq&#xff0c;官方实例代码&#xff1a; import org.apache.…

百分点科技宣布接入百度文心一言能力

2月16日&#xff0c; 百分点科技宣布成为百度文心一言&#xff08;英文名&#xff1a;ERNIE Bot&#xff09;首批生态合作伙伴。后续&#xff0c;百分点科技将全面体验并接入文心一言的能力。百分点科技专注于数据科学理论和技术的创新实践&#xff0c;长期坚持基础技术和行业应…

初始QML

Qt Quick的介绍 &#xff1a; Qt Quick是QML的标准类型和功能库。它包括视觉类型&#xff0c;交互类型&#xff0c;动画&#xff0c;模型和视图&#xff0c;粒子效果和着色器效果。QML 应用程序开发人员可以通过单个导入语句访问所有这些功能&#xff0c;简单来说Qt Quick是一…

使用 Hashnode API、Typescript 和 GraphQL 将博客文章添加到您的 React 站点

在本文中&#xff0c;我们将&#xff1a;使用 Next.js 引导一个 React.js Typescript 项目。设置 Apollo GraphQL 客户端并将其集成到我们的项目中。设置 GraphQL Codegen 以生成我们可以在整个应用程序中使用的类型、类型安全查询和自定义挂钩。创建一个索引页面&#xff0c;其…

Failed at the node-sass@4.14.1 postinstall script

vue项目启动&#xff0c;安装node14.18.0版本&#xff0c;构建时报错&#xff1a; Failed at the node-sass4.14.1 postinstall script 其实在构建过程中&#xff0c;还出现了其他组件的各种报错&#xff0c;最后反思了一下&#xff0c;觉得是nodeJs的版本问题&#xff0c;最…

BIM技巧 | Revit中如何给房间填充颜色?就5步

大家在Revit平面创建好房间后&#xff0c;有没有觉得各房间因为没有着色而区分不明显、视觉效果一般呢&#xff1f; 一、今天就教给大家如何给房间填充上颜色。 01 第一步 首先&#xff0c;将各个房间创建好&#xff1b; 02 第二步 在【建筑】-【房间和面积】单击下拉菜单…

深入理解vue2.x中Object.defineproperty()和vue3.x中Proxy

前言 vue2.x中数据的双向绑定主要通过Object.defineproperty()方法实现&#xff0c;data中的数据改变通过Object.defineProperty()对属性设置set属性&#xff0c;获取通过get属性&#xff0c;Object.defineProperty的作用就是劫持一个对象的属性,通常我们对属性的getter和sett…