802.1x协议详解,802协议工作原理/认证过程、MAB认证、EAP报文格式

news2024/11/28 5:28:25

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

802.1x协议

  • 1、什么是802.1x协议
  • 2、802.1x架构
  • 3、触发认证
  • 4、工作原理/认证过程
  • 5、认证方式
    • 5.1、MAB认证
  • 6、EAPOL协议报文格式
  • 7、EAP协议报文格式

在以前的IEEE802LAN协议中,只要用户可以「接入局域网」,就能「访问」局域网中的资源,比如我拿根网线插到交换机上,就能访问网络了,这是存在「安全隐患」的。

为了解决安全问题,802.1x协议出现了。

1、什么是802.1x协议

802.1x协议是基于端口的「访问控制和认证协议」,工作在数据链路层,用来限制未授权的用户/设备通过接入端口访问LAN/WLAN。
这样一来,我直接拿网线插到交换机上,就不能访问网络,而是要先认证/授权。

802.1x协议将每个物理接入端口划分为可控和不可控两个「逻辑端口」,从而实现业务与认证的分离。

  • 「不可控端口」始终处于双向连通状态,只接收EAP报文,保证客户端可以发送/接收「认证消息」。通过认证结果(Accept/Reject)控制可控端口的授权状态。
  • 「可控端口」默认不接收任何报文,只有认证通过后,才用来传递「业务报文」

2、802.1x架构

802.1x协议采用C/S架构,由「客户端」「接入设备」「认证服务器」三个部分组成。

在这里插入图片描述

  • 「客户端」(Supplicant System):用户终端设备,安装802.1x客户端,发起802.1x认证。
  • 「接入设备」(Network Access System ):交换机等网络设备,为客户端提供接入网络的端口(物理端口/逻辑端口)。
  • 「认证服务器」(Authentication Server System):radius服务器,保存用户的认证信息,对用户进行认证。

扩展:

  • 认证系统(Authenticator System)也叫NAS(Network Access System,即网络接入系统),为了便于理解,文章中使用接入设备来代替。

3、触发认证

用户上网时,打开802.1x客户端,输入用户名和口令进行认证,认证通过才能访问网络,认证不通过则不能访问。

802.1x的认证可以由「客户端主动发起」,也可以由「接入设备主动发起」

  • 「客户端主动发起」:使用客户端软件向接入设备发送 EAPOL-Start 报文触发认证。
  • 「接入设备主动发起」:用于客户端不能主动发送EAP报文的场景。

「接入设备主动发起」又有两种具体的触发方式:

  • DHCP报文触发:接入设备在收到客户端的DHCP请求后,主动对用户发起802.1x认证,仅适用于客户端采用DHCP自动分配IP地址的场景。因为DHCP请求报文是以广播的形式发送的,同一网段的设备都可以收到,所以接入设备不一定就是DHCP服务器。
  • 源MAC地址未知报文触发:接入设备收到源MAC地址未知的报文时,主动对用户发起802.1x认证,如果在规定时间内没有收到客户端的响应,就重发这个报文。

无论哪种触发方式,都会使用EAP协议来交换认证信息。

4、工作原理/认证过程


在这里插入图片描述

触发认证后,802.1x协议开始认证,这里以ERP中继方式解释一下认证流程(为了方便理解,接入设备用交换机来代替;认证服务器用radius服务器来代替):

1)用户访问网络时,客户端向交换机发送( EAPOL-Start ),开启802.1x认证。

2)交换机收到请求后,向客户端发送( EAP-Request/Identity )请求,要求客户端把用户名发过来。

3)客户端收到请求后,向交换机发送( EAP-Response/Identity )响应,同时把用户名传给交换机。

4)交换机把客户端响应的报文(原封不动的)封装成radius报文( RADIUS Access-Request ),发送给radius服务器。

5)认证服务器收到后,取出里面的用户名,到数据库的用户名列表查询对应的密码,并随机生成一个加密字(MD5 Challenge)加密这个密码,然后把加密字封装成radius报文( RADIUS Access-Challenge )发送给交换机。

6)交换机收到后,把里面的加密字发送给客户端( EAP-Request/MD5 Challenge )。

7)客户端收到加密字后,用加密字对密码进行MD5加密,然后把加密后的密码( EAP-Response/MD5 Challenge )发送给交换机。

8)交换机再封装成radius报文( RADIUS Access-Request )发送给radius服务器。

9)radius服务器把收到的加密密码和自己生成的加密密码做对比,如果相同,就给交换机发送认证通过的报文( RADIUS Access-Accept )。

10)交换机把收到的radius报文解封后,发给客户端( EAP-Success ),并把端口授权改为已授权状态,允许用户通过这个端口访问网络。认证通过后,DHCP分配IP地址。

11)交换机会定期向客户端发送「握手」报文,以检测用户的在线情况。客户端发送应答报文则表示在线;如果连续两次握手报文没有应答,就会让用户下线。

12)客户端可以主动要求「下线」,发送( EAPOL-Logoff )帧。交换机收到后,把端口状态改成未授权,并向客户端发送( EAP-Failure )报文,确认客户端下线。

5、认证方式


802.1x协议的认证方式除了上面提到的 「ERP中继」,还有 「ERP终结」。两种方式的区别在于:加密口令的位置不同。
  • 「ERP中继」:由认证(radius)服务器生成加密字(MD5 Challenge)并加密口令,交换机只充当中介的角色转发报文。
  • 「ERP终结」:由接入设备(交换机)生成加密字(MD5 Challenge)并加密口令,之后把用户名、加密字、加密后的口令一起发送给认证服务器,进行认证处理。

在这里插入图片描述

5.1、MAB认证

MAB(Mac Address Bypass)也叫MAB地址认证,或者Mac地址白名单。
因为802.1x认证需要终端输入账号密码,但打印机这类「哑终端」没法输账号密码,就用Mac地址作为用户名和密码来认证。

1、先收集设备的「Mac地址」,存到Radius服务器里。

2、设备入网的时候,通过交换机将Mac地址转发给Radius服务器。如果有,就入网;如果没有,就禁止入网。

扩展:

  • 「MAB哑终端」是指无法输入账号密码、没有交互接口的设备,比如打印机、扫描仪、IP电话。

6、EAPOL协议报文格式

EAPOL(EAP over LANs)是802.1X协议定义的一种报文封装格式,可以在客户端和NAS之间传递用户信息,也就是说允许EAP协议报文直接在LAN环境中传递。

在这里插入图片描述

字段解析:

  • PAE Ethernet Type:2字节,以太网协议类型,802.1x为其分配的协议类型为0x888E。
  • Protocol Version:1字节,发送方所使用的协议版本号。
  • Packet Type:1字节,EAPOL数据帧类型。
  • Packet Body Length:2字节,数据域(Packet Body)的长度。当 Packet Type 为 EAPOL-Start或EAPOL-Logoff时,该字段值为0。
  • Packet Body:数据内容。

EAPOL数据帧类型(Packet Type):

  • EAP-Packet(值为0x00):认证信息帧,该帧在接入设备重新封装成Radius报文,发送给radius服务器。
  • EAPOL-Start(值为0x01):认证发起帧,只在客户端和接入设备之间存在。
  • EAPOL-Logoff(值为0x02):退出请求帧,只在客户端和接入设备之间存在。
  • EAPOL-Key(值为0x03):密钥信息帧,对EAP报文加密(无线接入专用)。

7、EAP协议报文格式

802.1X协议使用EAP(Extensible Authentication Protocol,可扩展认证协议)来实现客户端、NAS和认证服务器之间认证信息的传递。

当 EAPOL 报文的 Packet Type 字段值为0000 0000时,表明Packet Body字段封装的是一个EAP 数据包。

在这里插入图片描述
字段解析:

  • Code:1字节,EAP帧类型,(Request、Response、Success、Failure)
  • Identifier:1字节,匹配Request消息和Response消息
  • Length:2字节,EAP帧的总长度(Code + Identifier + Length + Data域)
  • Data:0或更多字节,EAP包的内容

当 Code 字段的值为 Success、Failure 时,Data的值为空。
当 Code 字段的值为 Request、Response 时,Data才有值,值包含 Type、Type data 两部分;其中 Type 的类型有:

  • Type=1 -Identifier(要求客户端程序发送用户输入的用户名信息)
  • Type=2 -Notification(非必须的一个消息,传送一些警告消息)
  • Type=3 -Response Only(Request报文中的认证类型不可接受时回应该类型的报文)
  • Type=4 -MD5-Challenge(类似于CHAP中的MD5-Challenge)
  • Type=5 -One-Time Password (OTP)(一种密码交互的方式)
  • Type=6 -Generic Token Card(支持Challenge和Response时使用令牌)
  • Type=254 -Expanded Types(支持厂商自己扩展的类型)
  • Type=255 -Experimental use(实验新的类型时做测试用的类型)

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

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

相关文章

【LeetCode热题100】-- 45.跳跃游戏II

45.跳跃游戏II 方法:贪心 在具体的实现中,维护当前能够到达的最大下标的位置,记为边界。从左到右遍历数组,到达边界时,更新边界并将跳跃次数加一 在遍历数组时,不访问最后一个元素,因为在访问…

命令的历史管理

查看历史命令 cat ~/.bash_history history 清除历史命令 history -c >~/.bash_history 指定命令清除历史命令 history -d 55 vim /etc/profile 修改source /etc/profile (保存修改内容)

麒零8000S到底是7纳米还是14纳米?一切都因台积电玩坏了工艺命名

日本分析机构在拆解了国产5G手机对5G芯片进行扫描后,认为它的工艺只有14纳米,而一些专家则认为这是7纳米,导致如此混乱的原因在于台积电玩坏了芯片工艺的命名规则。 在16纳米之前,芯片制造企业是以栅极间距来认定芯片工艺的&#…

车联网场景中 JT/T 808 协议终端免开发快速接入阿里云 IoT 物联网平台实战

车联网场景中 JT/T 808协议 是一种在中国广泛应用的车载终端通信协议,用于车辆与监控中心之间的数据通信。 01 JT/T808 协议 JT/T808 协议是指交通部颁布的《道路运输车辆卫星定位系统终端通讯协议及数据格式》,广泛应用于车辆远程监管、物流管理、车辆安…

基于SpringBoot+vue的汽车销售管理系统

文章目录 项目介绍主要功能截图:登录首页新订单客户管理添加库存车辆库存管理报表管理员工管理 部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简…

LLM Tech Map 大模型技术图谱

LLM Tech Map 大模型技术图谱 从基础设施、大模型、Agent、AI 编程、工具和平台,以及算力几个方面,为开发者整理了当前 LLM 中最为热门和硬核的技术领域以及相关的软件产品和开源项目。 核心价值:帮助技术人快速了解 LLM 的核心技术和关键方向…

Java毕业设计基于springboot+vue的影视信息网站

项目介绍 影城管理系统的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管理、电影类型管理、放映厅管理、电影信息管理、购票统计管理、系统管理、订单管理,用户前台:首页、电影信息、电影资讯、个人中心…

块链串的实现(c语言)

串有三种三种顺序串,链式串和块链式串 常用的是第一种顺序串 前两者我在这就不进行讲解了,因为就是普通的顺序表和链式表只是其中的值必须是字符而已 为啥需要引入块链式串,我们之前分析过链表的优点是操作方便,而缺点是&#x…

USB协议学习(一)帧格式以及协议抓取

USB协议学习(一)帧格式以及协议抓取 笔者来聊聊MPU的理解 这里写自定义目录标题 USB协议学习(一)帧格式以及协议抓取MPU的概念以及作用MPU的配置新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式…

数据挖掘(5)分类数据挖掘:基于距离的分类方法

一、分类挖掘的基本流程 最常用的就是客户评估 1.1分类器概念 1.2分类方法 基于距离的分类方法决策树分类方法贝叶斯分类方法 1.3分类的基本流程 步骤 建立分类模型 通过分类算法对训练集训练,得到有指导的学习、有监督的学习预定义的类:类标号属性确定…

【UE4 材质编辑篇】1.0 shader编译逻辑

UE4新手,学起来()文章仅记录自己的思考。 参考:虚幻4渲染编程(材质编辑器篇)【第一卷:开篇基础】 - 知乎 (zhihu.com) 开篇基础就摸不着头脑,原因是此前完全没有摸过UE4,一点一点记录吧&#x…

18 | 生产环境多数据源的处理方法有哪些

工作中我们时常会遇到跨数据库操作的情况,这时候就需要配置多数据源,那么如何配置呢?常用的方式及其背后的原理支撑是什么呢?我们下面来了解一下。 首先看看两种常见的配置方式,分别为通过多个 Configuration 文件、利…

绘制多个子图fig.add_subplot函数

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 绘制多个子图 fig.add_subplot函数 下列代码创建的子图网格大小是? import matplotlib.pyplot as plt fig plt.figure() ax fig.add_subplot(121) ax.plot([1, 2, 3, 4, 5], [1…

做情绪识别,有必要用LLM吗?

卷友们好,我是尚霖。 情绪识别在各种对话场景中具有广泛的应用价值。例如,在社交媒体中,可以通过对评论进行情感分析来了解用户的情绪态度;在人工客服中,可以对客户的情绪进行分析,以更好地满足其需求。 此…

堆与堆排序

一.什么是堆? 1.堆是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满。 2.堆分为两类,大根堆和小根堆。 大根堆每个结点都大于…

C++位图,布隆过滤器

本期我们来学习位图,布隆过滤器等相关知识,以及模拟实现,需求前置知识 C-哈希Hash-CSDN博客 C-封装unordered_KLZUQ的博客-CSDN博客 目录 位图 布隆过滤器 海量数据面试题 全部代码 位图 我们先来看一道面试题 给 40 亿个不重复的无符号…

scratch时间游戏 2023年9月中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析

目录 scratch时间游戏 一、题目要求 1、准备工作 2、功能实现 二、案例分析

EtherCAT报文-FPWR(配置地址写)抓包分析

0.工具准备 1.EtherCAT主站 2.EtherCAT从站(本文使用步进电机驱动器) 3.Wireshark1.EtherCAT报文帧结构 EtherCAT使用标准的IEEE802.3 Ethernet帧结构,帧类型为0x88A4。EtherCAT数据包括2个字节的数据头和44-1498字节的数据。数据区由一个或…

芯片学习记录TLP184

TLP184 芯片介绍 TLP184是一款光耦隔离器,它的主要特点包括:高电压耐受能力、高传输速度、高共模隔离能力、低功耗等。它可以用于工业自动化、通信设备、家用电器等领域的电气隔离应用。由一个光电晶体管组成,光学耦合到两个红外发射二极管…

[初始java]——规范你的命名规则,变量的使用和注意事项,隐式转化和强制转化

目录 一、标识符是么 二、命名规则 三、变量 1.定义变量的完整格式: 2.变量的分类 3.变量在内存中的位置 4.注意事项: 四、隐式转化和强制转化 五、表达式和语句的概念 一、标识符是么? 就是给类、变量、方法起名字的,用于标识它们。…