Dot1X 认证过程分析(抓包)

前文介绍:
EAP中继方式有多种认证方法:EAP-MD5、EAP-TLS(Transport Layer Security,传输层安全)、EAP-TTLS(Tunneled Transport Layer Security,隧道传输层安全)和PEAP(Protected Extensible Authentication Protocol,受保护的扩展认证协议):
EAP-MD5:验证客户端的身份,RADIUS服务器发送MD5加密字(EAP-Request/MD5 Challenge报文)给客户端,客户端用该加密字对口令部分进行加密处理。
EAP-TLS:客户端和RADIUS服务器端通过EAP-TLS认证方法检查彼此的安全证书,验证对方身份,保证通信目的端的正确性,防止网络数据被窃听。
EAP-TTLS:是对EAP-TLS的一种扩展。在EAP TLS中,实现对客户端和认证服务器的双向认证。EAP-TTLS扩展了这种实现,它使用TLS建立起来的安全隧道传递信息。
PEAP:首先创建和使用TLS安全通道来进行完整性保护,然后进行新的EAP协商,从而完成对客户端的身份验证。
本文介绍IEEE802.1X认证的 MD5-Challenge认证方式,是带有radius服务器的EAP中继认证 ,IEEE802.1X认证是使用EAP报文格式在申请者和认证者之间交换信息。带有radius服务器,即认证者不对申请者发送的数据进行解析处理,而是封装后直接转发给radius服务器。由radius服务器进行处理。
认证三要素:
1、客户机:PC机器
2、NAS:交换机
3、认证服务器:Radius
下面将根据把整个802.1X认证过程分为六部分
(1.当用户有上网需求时打开802.1X客户端程序,输入已经申请、登记过的用户名和口令,发起连接请求。此时,客户端程序将发出请求认证的报文给交换机,开始启动一次认证过程。
(2.交换机收到请求认证的数据帧后,将发出一个请求帧要求用户的客户端程序将输入的用户名送上来。
(3.客户端程序响应交换机发出的请求,将用户名信息通过数据帧送给交换机。交换机将客户端送上来的数据帧经过封包处理后送给认证服务器进行处理。
(4.认证服务器收到交换机转发上来的用户名信息后,将该信息与数据库中的用户名表相比对,找到该用户名对应的口令信息,用随机生成的一个加密字对它进行加密处理,同时也将此加密字传送给交换机,由交换机传给客户端程序。
(5.客户端程序收到由交换机传来的加密字后,用该加密字对口令部分进行加密处理(此种加密算法通常是不可逆的),并通过交换机传给认证服务器。
(6.认证服务器将送上来的加密后的口令信息和其自己经过加密运算后的口令信息进行对比,如果相同,则认为该用户为合法用户,反馈认证通过的消息,并向交换机发出打开端口的指令,允许用户的业务流通过端口访问网络。否则,反馈认证失败的消息,并保持交换机端口的关闭状态,只允许认证信息数据通过而不允许业务数据通过。
过程报文介绍
一、认证的发起:PC客户机——>交换机——>Radius认证服务器
1、申请者向认证者发送EAPOL-start报文,开始802.1X接入的开始
Dot1X 认证过程分析(抓包)_第1张图片
分析:在启动阶段,客户端没有收到交换机发送的EAP-Request/Identity报文,PC客户端可以通过主动发起EAPOL-Start报文,来发起连接请求,要求交换机发出EAP-Request/Identity报文。通过抓包获悉该Start报文为EAPOL报文,承载于局域网-以太网二层封装,源mac地址-f4:4d:30?1b:99为客户机PC的网卡mac地址,目的mac地址:01:80:c2:00:00:03为组播地址,图中802.1X的报文内容中可以获悉802.1X的版本号、报文类型(Start)、长度等信息。
2、交换机初始化或收到请求认证的数据帧后,将发出一个请求帧(EAP-Request/Identity报文)要求用户的客户端程序发送输入的用户名。
Dot1X 认证过程分析(抓包)_第2张图片
分析:
二层包头,源地址为锐捷交换机的mac地址,目的地址为PC客户机的mac地址;
二层数据部分,定义了802.1X的版本、类型(EAP Packet)和长度,通过EAP内容可知悉该EAP包为Identity的Request报文。
3、客户端程序响应交换机发出的请求,将用户名信息通过数据帧(EAP-Response/Identity报文)送给交换机。
Dot1X 认证过程分析(抓包)_第3张图片
分析:
二层包头,源地址为PC客户机的mac地址,目的地址为组播mac地址;
二层数据部分,显示了802.1X的版本、类型(EAP Packet)和长度,通过EAP内容可知悉该EAP包为Identity的Response报文,客户发送的用户名为24xxx。
4、交换机将客户端送上来的数据帧经过封包处理后(RADIUS Access-Request报文)送给RADIUS服务器进行处理。
Dot1X 认证过程分析(抓包)_第4张图片
分析:
二层包头,源mac地址为交换机管理VLAN的mac地址,目的mac地址为交换机管理VLAN所指向的默认路由(网关)mac地址。
三层包头,源IP地址为交换机管理VLAN的IP地址,目的IP地址为radius认证服务器IP地址。
四层包头,可以看出该四层用的是UDP协议,源端口32768,目的端口为1812
四层Udp的数据部分为radius协议报文-RADIUS Protocol,radius报文内容如下图。
Dot1X 认证过程分析(抓包)_第5张图片
radius报文分析:
radius Code类型为Access-Request,说明该Radius报文类型为Access-Request。
radius报文中EAP-Message属性用来封装EAP数据包,该EAP数据包是PC客户机给交换机发送的Identity的Response报文,其中包括客户提交验证的用户名24xxx。
radius报文中 Message-Authenticator属性,主要用于在EAP认证过程中验证携带了EAP-Message属性的Radius报文的完整性,避免接入请求包被窜改。在含有EAP-Message属性的数据包中,必须同时也包含Message-Authenticator,否则该数据包会被认为无效而被丢弃。此外,若接收端对接收到的Radius报文计算出的完整性校验值与报文中携带的Message-Authenticator属性的Value值不一致,该数据包也会被认为无效而丢弃。
二、认证挑战的发起:Radius认证服务器——>交换机——>PC客户端
1、Radius认证服务器收到交换机转发上来的用户名信息后,将该信息与数据库中的用户名表相比对,找到该用户名对应的密码信息,用随机生成的一个加密字对它进行加密处理,同时也将此加密字通过RADIUS Access-Challenge报文传送给交换机,由交换机传给客户端程序。
Dot1X 认证过程分析(抓包)_第6张图片
分析:
二层包头,源mac地址为交换机管理VLAN所指向的默认路由(网关)mac地址,目的mac地址为交换机管理VLAN的mac地址。
三层包头,源IP地址为radius认证服务器IP地址。,目的地址为交换机管理VLAN的IP地址。
四层包头,可以看出该四层用的是UDP协议,源端口为1812,目的端口为32768。
四层Udp的数据部分为radius协议报文-RADIUS Protocol,radius报文内容如下图。
Dot1X 认证过程分析(抓包)_第7张图片
radius报文分析:
radius Code类型为Access-Challenge,说明该Radius报文类型为Access-Challenge
radius报文中EAP-Message属性用来封装EAP数据包,该EAP数据包是Radius认证服务器发送给客户端的认证挑战请求。EAP帧类型为Request,Type为Unknown,EAP数据部分为加密字1004010641524353316300000000000000········。
2、交换机把Radius认证服务器发来的 Access-Challenge信息封装于二层数据包中,然后发送给PC客户端
Dot1X 认证过程分析(抓包)_第8张图片
分析:
二层包头,源mac地址为交换机mac地址,目的mac地址为PC客户机mac地址。
二层报文数据部分,为Radius认证服务器发送给PC客户机的加密字1004010641524353316300000000000000········
三、PC客户机应对挑战:PC客户端——>交换机——>Radius认证服务器
1、 PC客户端收到由交换机传来的加密字(EAP-Request/MD5 Challenge报文)后,用该加密字对口令部分进行加密处理(此种加密算法通常是不可逆的),生成EAP-Response/MD5 Challenge报文。
Dot1X 认证过程分析(抓包)_第9张图片
分析:
二层包头,源mac地址为PC客户机mac地址,目的mac地址为交换机mac地址。
二层报文数据部分,EAP帧类型为response,EAP DATA部分为客户端程序使用收到的加密字对用户名的密码md5加密后的数字串。
2、 交换机把从PC客户端发送来的 EAP-Response/MD5 Challenge报文, 封装为RADIUS Access-Request报文传给Radius认证服务器。
Dot1X 认证过程分析(抓包)_第10张图片
分析:
二层包头,源mac地址为交换机管理VLAN的mac地址,目的mac地址为交换机管理VLAN所指向的默认路由(网关)mac地址。
三层包头,源IP地址为交换机管理VLAN的IP地址,目的IP地址为radius认证服务器IP地址。
四层包头,可以看出该四层用的是UDP协议,源端口32768,目的端口为1812
四层Udp的数据部分为radius协议报文-RADIUS Protocol,radius报文内容如下图。
Dot1X 认证过程分析(抓包)_第11张图片

radius报文分析:radius Code类型为Access-Request,说明该Radius报文类型为Access-Request。
radius报文中EAP-Message属性用来封装EAP数据包,该EAP数据包是PC客户机给交换机发送的Response报文,EAP DATA部分为客户端程序使用收到的加密字对用户名的密码md5加密后的数字串。
四、Radius认证服务器给PC客户端授权通过: Radius认证服务器——>交换机——>PC客户端
1、 Radius认证服务器将收到的已加密的密码信息(RADIUS Access-Request报文)和本地经过加密运算后的密码信息进行对比,结果相同,认为该用户为合法用户,反馈认证通过的消息(RADIUS Access-Accept报文和EAP-Success报文),并向交换机发出打开端口的指令,允许用户的业务流通过端口访问网络。
Dot1X 认证过程分析(抓包)_第12张图片
分析:
二层包头,源mac地址为交换机管理VLAN所指向的默认路由(网关)mac地址,目的mac地址为交换机管理VLAN的mac地址。
三层包头,源IP地址为radius认证服务器IP地址。,目的地址为交换机管理VLAN的IP地址。
四层包头,可以看出该四层用的是UDP协议,源端口为1812,目的端口为32768。
四层Udp的数据部分为radius协议报文-RADIUS Protocol,radius报文内容如下图。
Dot1X 认证过程分析(抓包)_第13张图片
radius报文分析:
radius Code类型为Access-Accept,说明该Radius报文类型为Access-Accept
radius报文中EAP-Message属性用来封装EAP数据包,该EAP数据包是Radius认证服务器发送给客户端的认证通过报文。EAP帧类型为Success。
2、交换机接收Radius认证服务器认证通过报文,并转发给PC客户端,至此,认证完成,客户端可以访问网络资源。
Dot1X 认证过程分析(抓包)_第14张图片
分析:
二层包头,源地址为锐捷交换机的mac地址,目的地址为PC客户机的mac地址;
二层数据部分,定义了802.1X的版本、类型(EAP Packet)和长度,通过EAP内容可知悉该EAP包为Success授权成功报文。
五、PC客户端认证的注销: PC客户端——>交换机——>PC客户端
1、 客户端发送EAPOL-Logoff报文给交换机,主动要求下线。
Dot1X 认证过程分析(抓包)_第15张图片
分析:二层包头,源mac地址为PC客户机mac地址,目的mac地址为组播mac地址。
二层帧数据部分,定义了802.1X版本,802.1X类型为logoff请求。
2、交换机把端口状态从授权状态改变成未授权状态,并向客户端发送EAP-Failure报文。
Dot1X 认证过程分析(抓包)_第16张图片
分析:
二层包头,源mac地址为交换机mac地址,目的mac地址为客户机mac地址。
二层帧数据部分,定义了802.1X版本,802.1X类型为EAP。 EAP报文内容类型为Failure
总结
本文介绍的是EAP中继方式,优点是交换机设备处理更简单,支持更多的认证方式,缺点则是Radius认证服务器必须支持EAP;能够读懂Radius报文中EAP字段的信息。

你可能感兴趣的:(Dot1X 认证过程分析(抓包))