802.1X认证原理

IEEE802 LAN/WAN委员会为解决无线局域网网络安全问题,提出了802.1X协议。后来,802.1X协议作为局域网接口的一个普通接入控制机制在以太网中被广泛应用,主要解决以太网内认证和安全方面的问题。

802.1X协议是一种基于接口的网络接入控制协议。“基于接口的网络接入控制”是指,在局域网接入设备的接口这一级,接入设备通过认证来控制用户对网络资源的访问。

如图1所示,802.1X系统为典型的Client/Server结构,包括三个实体:客户端、接入设备和认证服务器。

图1 802.1X认证系统示意图

  • 客户端是位于局域网段一端的一个实体,由该链路另一端的接入设备对其进行认证。客户端一般为一个用户终端设备,用户可以通过启动客户端软件发起802.1X认证。客户端必须支持局域网上的可扩展认证协议EAPOL(Extensible Authentication Protocol over LAN)。
  • 接入设备是位于局域网段一端的另一个实体,对所连接的客户端进行认证。接入设备通常为支持802.1X协议的网络设备,它为客户端提供接入局域网的接口。
  • 认证服务器是为接入设备提供认证服务的实体。认证服务器用于对用户进行认证、授权和计费,通常为RADIUS服务器。
认证触发方式

802.1X的认证过程可以由客户端主动发起,也可以由接入设备发起。设备支持的认证触发方式包括以下两种。

  1. 客户端主动触发方式:用户主动开启客户端输用户名和密码向接入设备发送EAP报文来触发认证。
  2. 接入设备主动触发方式:接入设备在接收到用户终端发送的DHCP/ARP报文后,主动触发用户终端自动弹出客户端界面,用户输入用户名和密码即可启动认证。
认证方式

802.1X认证系统使用可扩展认证协议EAP(Extensible Authentication Protocol)来实现客户端、接入设备和认证服务器之间认证信息的交换,各实体之间EAP协议报文的交互形式如下。

  1. 在客户端与接入设备之间,EAP协议报文使用EAPOL封装格式,并直接承载于LAN环境中。
  2. 在接入设备与认证服务器(以RADIUS服务器为例)之间,EAP协议报文可以使用以下两种方式进行交互。
    • EAP中继:EAP协议报文由接入设备进行中继,设备将EAP报文使用EAPOR(EAP over RADIUS)封装格式承载于RADIUS协议中,发送给RADIUS服务器进行认证。该认证方式的优点是:设备处理简单,可支持多种类型的EAP认证方法,例如MD5-Challenge、EAP-TLS、PEAP等,但要求RADIUS服务器端支持相应的认证方法。
    • EAP终结:EAP协议报文由接入设备进行终结,设备将客户端认证信息封装在标准RADIUS报文中,与服务器之间采用密码验证协议PAP(Password Authentication Protocol)或质询握手验证协议CHAP(Challenge Handshake Authentication Protocol)方式进行认证。该认证方式的优点是:现有的RADIUS服务器基本均可支持PAP和CHAP认证,无需升级服务器,但设备处理较为复杂,且不能支持除MD5-Challenge之外的其它EAP认证方法。

认证流程

对于EAP中继方式,802.1X认证流程如图2所示。

图2 EAP中继方式业务流程

  1. 当用户需要访问外部网络时打开802.1X客户端程序,输入已经申请、登记过的用户名和密码,发起连接请求。此时,客户端程序将向接入设备发出认证请求报文,开始启动一次认证过程。

  2. 接入设备收到认证请求报文后,向用户发出用户名请求报文,要求用户的客户端程序发送输入的用户名。

  3. 客户端程序响应接入设备发出的请求,将用户名信息发送给接入设备。

  4. 接入设备将客户端发送的用户名信息发送给认证服务器进行处理。

  5. 认证服务器收到接入设备转发的用户名信息后,按照如下方式对其密码进行验证。

    1. 认证服务器将用户名信息与数据库中的用户名列表进行对比,找到该用户名对应的密码信息。
    2. 认证服务器用随机生成的一个MD5 Challenge对密码进行加密处理,并将此MD5 Challenge通过接入设备发送给客户端。
    3. 客户端收到由接入设备转发的MD5 Challenge后,用该Challenge对密码部分进行加密处理,之后将加密后的密码通过接入设备发送到认证服务器。
    4. 认证服务器将收到的已加密的密码信息和本地经过加密运算后的密码信息进行对比。如果相同,则认为该用户为合法用户;如果不同,则认为该用户为非法用户。
  6. 密码验证成功后,认证服务器向接入设备发送认证成功报文。

  7. 设备收到认证成功报文后向客户端发送认证成功报文,并将接口改为授权状态,允许用户通过接口访问网络。

  8. 客户端可以发送下线报文给接入设备,主动要求下线。

  9. 接入设备把接口状态从授权状态改变成未授权状态,并向客户端发送认证失败报文同时删除用户上线信息。

EAP终结方式与EAP中继方式的认证流程相比,不同之处在于步骤4和5。对于EAP终结方式,当接入设备将客户端发送的用户名信息发送给认证服务器时,会随机生成一个MD5 Challenge并发送给客户端(MD5 Challenge由接入设备生成而非认证服务器生成)。之后接入设备会把用户名、MD5 Challenge和客户端加密后的密码信息一起送给认证服务器,进行相关的认证处理。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python的算术运算符

python常用算术运算符代码如下: #算术运算符操作 x 10 y 20 z 30 #加法运算 a x y print("a的值为:", a) #减法运算 a x - y print("a的值为:", a) #乘法运算 a x*y print("a的值为:", a) …

FFmpeg: 自实现ijkplayer播放器--06封装打开和关闭stream

文章目录 流程图stream openstream close流程图 stream open 初始化SDL以允许⾳频输出;初始化帧Frame队列初始化包Packet队列初始化时钟Clock初始化音量创建解复用读取线程read_thread创建视频刷新线程video_refresh_threadint FFPlayer::stream_open(const char

LangChain简明讲义:从0到1构建LLM应用程序

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…

实习僧网站的实习岗位信息分析

目录 背景描述数据说明数据集来源问题描述分析目标以及导入模块1. 数据导入2. 数据基本信息和基本处理3. 数据处理3.1 新建data_clean数据框3.2 数值型数据处理3.2.1 “auth_capital”(注册资本)3.2.2 “day_per_week”(每周工作天数&#xf…

Open3D(C++) 0~1归一化到0~255

目录 一、算法原理二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 0-1归一化到0~255的计算原理如下: g ′ = 255 ∗

探索分布式技术--------------注册中心zookeeper

目录 一、ZooKeeper是什么 二、ZooKeeper的工作机制 三、ZooKeeper特点 四、ZooKeeper数据结构 五、ZooKeeper应用场景 5.1统一命名服务 5.2统一配置管理 5.3统一集群管理 5.4服务器动态上下线 5.5软负载均衡 六、ZooKeeper的选举机制 6.1第一次启动选举机制 6.2非…

火绒安全的用法

火绒安全软件是一款综合性的电脑安全防护工具,提供了病毒查杀、系统防护、网络安全等多种功能,以帮助用户保护电脑免受恶意软件和网络威胁的侵害。以下是火绒安全软件的一些主要用法: 病毒查杀:火绒安全软件提供全盘查杀、快速查杀…

Ubuntu20.04版本部署MySQL8.0关闭库名表名区分大小写和自定义数据目录(datadir)路径

本篇文章记录关闭数据库表名库名区分大小写和设置自定义数据目录,安装时建议一个一个步骤进行,这样比较容易成功,下面是设置关闭区分表名库名大小写的。 一、关闭库名表名区分大小写 1、先安装数据库 步骤如下: # 第一步:更新…

C++ 红黑树模拟实现

💓博主CSDN主页:麻辣韭菜💓   ⏩专栏分类:C知识分享⏪   🚚代码仓库:C高阶🚚   🌹关注我🫵带你学习更多C知识   🔝🔝 前言 前面我们实现了AVL树,发明AVL树…

通过腾讯云搭建电商demo的详细操作过程(建站系统 保姆级指导,巨详细)

前言:电商demo选择:使用了litemall。 litemall Spring Boot后端 Vue管理员前端 微信小程序用户前端 Vue用户移动端 代码地址可以是:https://gitee.com/linlinjava/litemall,网上也有许多其他人建的仓库,使用哪个都…

php弹幕播放器源码 支持对接苹果cms接口 蓝光json接口

弹幕播放器源码支持对接苹果cms接口蓝光json接口,里面已经有一条json付费接口,秒解腾讯爱奇艺等等各大平台的视频,弹幕系统可投放暂停广告,跑马灯广告等。 1.将播放器源码上传至服务器 2.你的域名/dmku/install/index.php进行安…

Redis入门到通关之Set命令

文章目录 ⛄ 概述⛄ Set类型的常见命令⛄RedisTemplate API❄️❄️ 添加Set缓存(值可以是一个,也可是多个)❄️❄️设置过期时间(单独设置)❄️❄️根据key获取Set中的所有值❄️❄️根据value从一个set中查询,是否存在❄️❄️获取Set缓存的长度❄️❄️移除指定的…

论文略读:ZipIt! Merging Models from Different Tasks without Training

iclr 2024 reviewer 评分 5666 在典型的深度视觉识别模型中,它们通常只能执行它们所训练的单一任务。这篇论文解决了一个极其困难的问题,即如何将具有不同初始化的、各自解决不同任务的独立模型合并成一个多任务模型,而无需任何额外训练。先…

使用 Python 实现复制粘贴的功能

pandas 里面有一个 pd.read_clipboard 函数,可以根据你复制的内容生成DataFrame。是的,就是我们平时选中,然后 CtrlC 时拷贝的内容。所以比较神奇,那么 pandas 到底是怎么做到的,它是怎么读出我们使用 Ctrl C 复制的内…

音乐文件逆向破解

背景 网易云等在线音乐文件的加密源码都按照一定的规则加密,通过对音乐文件的源码分析转化,有望实现对加密文件的解密 实现内容 实现对加密音乐文件的解密 实现对无版权的音乐文件的转化 实现环境 010editor 010 Editor是一个专业的文本编辑器和十六…

一起学习python——基础篇(21)

今天来说一下python中的如何编写get接口api、post接口api以及如何处理请求过来的key-value格式的参数。 1、get接口api,客户端请求参数通过key-value格式到服务端接口。代码如下: from flask import Flask,request app Flask(__name__) app.route(/…

展会邀请|4月24-26日成都工博会,ANDEAWELL邀您共赴蓉城!

2024年4月24-26日 中国西部国际博览城 欢迎您莅临ANDEAWELL展位 15H-D011! 一、诚挚邀请 尊敬的先生/女士您好: 2024成都国际工业博览会(简称“成都工博会”)将于4月24-26日在中国西部国际博览城举办,andeawell也将亮相此次展会,在此我们…

idea如何debug看springsecurity的过滤器顺序

idea如何debug看springsecurity的过滤器顺序 先配置一个Spring启动对象,后续需要根据这个对象来获取SpringSecurity的过滤器链 设置一个输出信息,需要在输出信息这里打上断点,才方便查看过滤器链 public static void main(String[] args) {//此时不…

蓝桥杯嵌入式模板(cubemxkeil5)

LED 引脚PC8~PC15,默认高电平(灭)。 此外还要配置PD2为输出引脚(控制LED锁存) ,默认低电平(锁住)!!! #include "led.h"void led_disp…

【Spring Boot 源码学习】SpringApplication 的 run 方法核心流程介绍

《Spring Boot 源码学习系列》 SpringApplication 的 run 方法核心流程介绍 一、引言二、往期内容三、主要内容3.1 run 方法源码初识3.2 引导上下文 BootstrapContext3.3 系统属性【java.awt.headless】3.4 早期启动阶段3.5 准备和配置应用环境3.6 打印 Banner 信息3.7 新建应用…