当前位置: 首页 > news >正文

全面解析802.1x认证原理

以下内容摘自正在当当网、京东网、卓越网、互动出版网等各书店火热销售《华为交换机学习指南一书(全书930多页)。本书是由华为官方直接授权,国内第一本,也是唯一一本华为交换机权威学习指南,是华为ICT认证培训指定教材

当当网链接:http://product.dangdang.com/23372225.html
京东网链接:http://item.jd.com/11355972.html

卓越网上的链接:http://www.amazon.cn/dp/B00GT743ME/ref=sr_1_1

互动出版网上的链接:http://product.china-pub.com/3768908#ml


18.1.1  802.1x认证系统基础

    IEEE 802.1X是由IEEE制定的关于用户接入网络的认证标准,全称是“基于端口的网络接入控制”。它于2001年正式颁布,最初是为有线网络设计,之后为了配合无线网络的接入进行修订改版,并于2004年完成。

   802.1x协议是一种基于端口的网络接入控制协议,所以具体的802.1x认证功能必须在设备端口上进行配置,对端口上接入的用户设备通过认证来控制对网络资源的访问。802.1x认证系统采用网络应用系统典型的Client/Server(C/S)结构,包括三个部分:客户端(Client)、设备端(Device)和认证服务器(Server),如图18-2所示。它与图18-1中的NAC模型结构一一对应。

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

图18-2 802.1x认证系统结构

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

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

1. 802.1x认证受控/非受控端口

   在设备端为客户端提供的接入端口被划分为两个逻辑端口:受控端口和非受控端口。“非受控端口”可看成为EAP(可扩展认证协议)端口,不进行认证控制,始终处于双向连通状态,主要用来传递在通过认证前必需的EAPOL协议帧,保证客户端始终能够发出或接收认证报文。

   “受控端口”可以看作为普通业务端口,是需要进行认证控制的。它有“授权”和“非授权”两种状态(相当于在该端口上有一个控制开关):在授权状态下处于双向连通状态(控制开关闭合),可进行正常的业务报文传递;在非授权状态下处于打开状态(控制开关打开),禁止任何业务报文的传递。设备端利用认证服务器对客户端进行认证的结果(AcceptReject)来实现对受控端口的授权/非授权状态进行控制。

2. 802.1x认证的触发方式

    在华为S系列交换机中,802.1x的认证过程可以由客户端主动发起,也可以由设备端主动发起。在“客户端主动触发方式”中,由客户端主动向设备端发送EAPOL-Start(EAPOL开始)报文来触发认证;而“设备端主动触发方式”中用于支持不能主动发送EAPOL-Start报文的客户端,例如Windows XP自带的802.1x客户端。

     在设备端主动触发方式中又有两种以下具体的触发方式:

l  DHCP报文触发:设备在收到用户的DHCP请求报文后主动触发对用户的802.1x认证,仅适用于客户端采用DHCP方式自动分配IP地址的情形因为DHCP请求报文是以广播方式发送的,所以在同一网段中的设备都可以收到,故设备端不一定就是担当DHCP服务器的设备

l  源MAC地址未知报文触发:当设备收到源MAC地址未知的报文时主动触发对用户的802.1x认证。若设备端在设置的时长内没有收到客户端的响应,则重发该报文。

  3. 802.1x的认证方式

   无论是哪种触发方式,802.1x认证系统都是使用EAP协议来实现客户端、设备端和认证服务器之间认证信息的交换。在客户端与设备端之间使用的是基于以太局域网的EAPOL格式封装EAP报文,然后承载于以太网数据帧中进行交互;而设备端与RADIUS服务器之间的EAP报文可以使用以下两种方式进行交互:

l  EAP中继:来自客户端的EAP报文到达设备端后,直接使用EAPOR(EAP over RADIUS)格式封装在RADIUS报文中,再发送给RADIUS服务器,则RADIUS服务器来从封装的EAP报文中获取客户端认证信息,然后再对客户端进行认证。

   这种认证方式的优点是设备端的工作很简单,不需要对来自客户端的EAP报文进行任何处理,只需要用EAPOR对EAP报文进行封装即可,根本不管客户端的认证信息。同时在这种认证方式中,设备端与RADIUS服务器之间可支持多种EAP认证方法,例如MD5-Challenge、EAP-TLS、PEAP等,但要求服务器端也支持相应的认证方法。

l  EAP终结:来自客户端的EAP报文在设备端进行终结,然后由设备端将从EAP报文中提取的客户端认证信息封装在标准的RADIUS报文(不再是EAPOR格式)中,与RADIUS服务器之间采用PAP(Password Authentication Protocol,密码验证协议)或CHAP(Challenge Handshake Authentication Protocal,质询握手验证协议)方式对客户端进行认证(当然在RAIUDS服务器端必须配置合法用户的用户名和密码信息)。

      这种认证方式的优点是现有的RADIUS服务器基本均可支持PAP和CHAP认证,无需升级服务器,但设备端的工作比较繁重,因为在这种认证方式中,设备端不仅要从来自客户端的EAP报文中提取客户端认证信息,还要通过标准的RAIUDS协议对这些信息进行封装,且不能支持除MD5-Challenge之外的其它EAP认证方法。

4. 802.1x认证支持的Guest VLANRestrict VLANCritical VLAN

   为了使那些不支持802.1x的客户端通过安装或者升级802.1x客户端软件来支持802.1x认证,也为那些在认证过程中认证失败,或认证服务器无响应时提供一些基本的访问资源,华为S系列交换机的802.1x认证功能提供了以下三种不同的特殊VLAN功能(当然,这些都是可选配置的)。

l  Guest VLAN

    Guest VLAN(来宾VLAN)功能开启后,当用户不响应802.1x认证请求时(如未安装客户端软件),设备端会将用户所在端口加入到Guest VLAN中,以便这些用户可以访问Guest VLAN,获取客户端软件,升级客户端或执行其他一些用户升级程序等操作。

l  Restrict VLAN

    Restrict VLAN(限制VLAN)功能开启后,当用户认证失败时(如输入了错误的用户名和密码),设备端会将用户所在端口加入到Restrict VLAN中。Restrict VLAN和Guest VLAN的功能相似,都是满足用户在通过认证前可以访问有限的网络资源。但通常在Restrict VLAN中部署的网络资源比Guest VLAN中更少,从而更严格的限制未通过认证的用户对网络资源的访问。

l  Critical VLAN

    Critical VLAN(严格VLAN)功能开启后,当认证服务器无响应时(如设备端与认证服务器之间的网络断开或者认证服务器出现故障),设备端会将用户所在端口加入到Critical VLAN中进而能够访问Critical VLAN中的资源。

5. 802.1x快速部署

     在实际的应用中,如果网络规模比较大,且有大量不能很好支持802.1x功能的客户端,这时客户端的部署工作量可能很大。为此华为S系列交换机提供了802.1x认证快速部署功能。它可引导这些用户自助下载安装客户端,实现客户端的快速部署。

   802.1x认证快速部署功能通过以下两个功能实现:

l  用户受限访问

   802.1x认证成功之前,通过ACL限制终端用户只能访问一个特定的IP地址段(免认证IP网段),或是特定服务器,在特定服务器上提供客户端的下载升级或者动态地址分配等服务。

l  用户HTTP访问URL重定向功能

    用户在未进行802.1x认证前或者认证失败后,使用浏览器访问网络时,设备会将用户访问的URL重定向到配置好的URL,供这些用户从这个网页中下载客户端软件。

  6. 用户组授权功能

   设备支持根据用户组对用户进行授权控制(就相当于Windows系统中的用户组一样)。在用户认证成功后,认证服务器为该用户下发到对应的用户组,使该用户具备该用户组中的访问权限。每个用户组可以关联不同的ACL规则,通过用户组和ACL规则的关联,实现对每类用户进行ACL授权信息控制,即同类用户采用同样的授权信息。

18.1.2 802.1x认证原理

    前面说了,在802.1x认证过程中,设备端与RADIUS服务器之间支持EAP中继和EAP终结两种认证方式。下面均以客户端主动发起认证为例进行介绍这两种认证方式的工作原理。

1. EAP中继认证原理

   在EAP中继认证的过程中,设备端起一个中继代理的角色,用于通过EAPOR封装和解封装的过程转发客户端和认证服务器之间的交互报文。整个认证过程是先进行用户名认证,然后再进行对应的密码认证,具体如下(对应图18-3中的序号):

图18-3 EAP中继认证流程

   (1)当用户访问网络时自动打开802.1x客户端程序,根据提示输入已经在RADIUS服务器中创建的用户名和密码,发起连接请求。因为端口最初的状态是未授权状态,所以此时端口除了IEEE 802.1x协议包外不能接收和发送任何包。此时,客户端程序将向设备端发出认证请求帧(EAPOL-Start),启动认证过程。

    (2)设备端在收到客户端的认证请求帧后,将发出一个Identity(标识)类型的EAP请求帧(EAP-Request/Identity),要求用户的客户端程序发送上一步用户所输入的用户名。

   (3)客户端程序在收到设备端的Identity请求帧后,将用户名信息通过Identity类型的EAP响应帧(EAP-Response/Identity)发送给设备端,响应设备端发出的请求。

   (4)设备端将客户端发送的Identity响应帧中的EAP报文原封不动地使用EAPOR格式封装在RADIUS报文( RADIUS Access-Request)中,发送给认证服务器进行处理。

   (5RADIUS服务器收到设备端发来的RADIUS报文后从中提取用户名信息后,将该信息与数据库中的用户名列表中对比,找到该用户名对应的密码信息,并用随机生成的一个MD5 Challenge消息对密码进行加密处理,然后将此MD5 Challenge消息同样通过EAPOR格式封装以RADIUS Access-Challenge报文发送给设备端。

   (6)设备端在收到来自RADIUS服务器的EAPOR格式的Access-Challenge报文后,通过解封装,将其中的MD5 Challenge消息转发给客户端。

   (7)客户端在收到由设备端传来的MD5 Challenge消息后,用该Challenge消息对密码部分进行加密处理,然后生成EAP-Response/MD5 Challenge报文,并发送给设备端。

   (8)设备端又将此EAP-Response/MD5 Challenge报文以EAPOR格式封装在RADIUS报文( RADIUS Access-Request)中发送给RADIUS服务器。

   (9RADIUS服务器将收到的已加密的密码信息后,与第(5)步在本地经过加密运算后的密码信息进行对比,如果相同则认为为合法用户,并向设备端发送认证通过报文(RADIUS Access-Accept)。

   (10)设备收到RADIUS Access-Accept报文后,经过EAPOR解封装再以EAP-Success报文向客户端发送,并将端口改为授权状态,允许用户通过端口访问网络。

   (11)用户在线期间设备端会通过向客户端定期发送握手报文,对用户的在线情况进行监测。

   (12)客户端收到握手报文后向设备发送应答报文,表示用户仍然在线。缺省情况下,若设备端发送的两次握手请求报文都未得到客户端应答,设备端就会让用户下线,防止用户因为异常原因下线而设备无法感知。

   (13)客户端可以发送EAPOL-Logoff帧给设备端,主动要求下线。

    (14)在设备端收到客户端发来的EAPOL-Logoff帧后,把端口状态从授权状态改变成未授权状态,并向客户端发送EAP-Failure报文,确认对应客户端下线。

2. EAP终结认证原理

    EAP终结方式与EAP中继方式的认证流程相比,主要不同在于步骤(4)中用来对用户密码信息进行加密处理的MD5 challenge是由设备端生成(而不是由RADIUS服务器生成),之后设备端会把用户名、MD5 challenge和客户端加密后的密码信息一起送给RADIUS服务器,进行相关的认证处理。具体流程如图18-4所示。

图18-4 EAP终结认证流程

3. MAC旁路认证

     在802.1x认证过程中,设备端会首先触发用户采用802.1x认证方式,但若用户长时间内没有进行802.1x认证(如图18-5所示),则以用户的MAC地址作为用户名和密码上送认证服务器进行认证。MAC旁路认证可使802.1x认证系统中无法安装和使用802.1x客户端软件的终端,例如打印机等,以自身MAC地址作为用户名和密码进行认证。

图18-5  MAC旁路认证流程

相关文章:

  • 全面了解华为VRP系统
  • 两个QoS综合配置案例
  • 华为MSTP负载均衡配置示例
  • “零基础圆梦华为RS HCNP”视频课程规划
  • 从零开始,一年实现你的专业网工梦!
  • 我的两个月“讲师”之路回首
  • 《华为路由器学习指南》终审目录首度曝光
  • 华为交换机VRP用户界面配置及Telnet登录实验
  • 史上最通俗的海明码编码计算、检错和纠错原理解析
  • RIP协议两个版本对不连续子网的支持情况实验
  • 终身会员卡上线三重大优惠!
  • 学技术无法碎片化
  • 华为Basic NAT和NAPT实现原理
  • 华为Easy IP和NAT Server实现原理
  • 实验:华为MUX VLAN配置与管理
  • (三)从jvm层面了解线程的启动和停止
  • 《深入 React 技术栈》
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Joomla 2.x, 3.x useful code cheatsheet
  • js面向对象
  • LintCode 31. partitionArray 数组划分
  • python docx文档转html页面
  • Python 基础起步 (十) 什么叫函数?
  • Spring Cloud Feign的两种使用姿势
  • Vue实战(四)登录/注册页的实现
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 爱情 北京女病人
  • 测试如何在敏捷团队中工作?
  • 关于 Cirru Editor 存储格式
  • 蓝海存储开关机注意事项总结
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 我是如何设计 Upload 上传组件的
  • 在Mac OS X上安装 Ruby运行环境
  • ionic入门之数据绑定显示-1
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ###STL(标准模板库)
  • #微信小程序:微信小程序常见的配置传值
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (二)springcloud实战之config配置中心
  • (二)WCF的Binding模型
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转) 深度模型优化性能 调参
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .apk 成为历史!
  • .htaccess配置重写url引擎
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net快速开发框架源码分享
  • /etc/sudoer文件配置简析
  • ::前边啥也没有