802.1x协议认证流程
802.1x 的认证中,端口的状态决定了客户端是否能接入网络,在启用802.1x 认证时端口初始状态一般为非授权(unauthorized),在该状态下,除802.1X 报文和广播报文外不允许任何业务输入、输出通讯。当客户通过认证后,则端口状态切换到授权状态(authorized),允许客户端通过端口进行正常通讯。
基于802.1x 的认证系统在客户端和认证系统之间使用EAPOL 格式封装EAP 协议传送认证信息,认证系统与认证服务器之间通过RADIUS 协议传送认证信息。由于EAP 协议的可扩展性,基于EAP 协议的认证系统可以使用多种不同的认证算法,如EAP-MD5,EAP-TLS,EAP-SIM,EAP-TTLS 以及EAP-AKA 等认证方法。以EAP-MD5为例,描述802.1x的认证流程。EAP-MD5是一种单向认证机制,可以完成网络对用户的认证,但认证过程不支持加密密钥的生成。基于EAP-MD5的802.1x认证系统功能实体协议栈如图2所示。基于EAP-MD5的802.1x认证流程如图3所示,认证流程包括以下步骤:
(1)客户端向接人设备发送一个EAPOL-Start 报文,开始802.1x 认证接人;
(2)接人设备向客户端发送EAP-Request/Identity 报文,要求客户端将用户名送上来;
(3)客户端回应一个EAP-Response/Identity 给接人设备的请求,其中包括用户名;
(4)接人设备将EAP-Response/Identity 报文封装到RADIUSAccess.Request 报文中,发送给认证服务器;
(5)认证服务器产生一个Challenge,通过接人设备将RA DIUSAccess—Challenge 报文发送给客户端,其中包含有EAP-Request/MD5-Challenge;
(6)接入设备通过EAP-Request/MD5-Challenge 发送给客户端,要求客户端进行认证;
(7)客户端收到EAP-Request/MD5-Challenge 报文后,将密码和Challenge 做MD5 算法后的Challenged-Password,在EAP-Response/MD5-Challenge 回应给接入设备;
(8)接入设备将Challenge,Challenged Password 和用户名一起送到RADIUS 服务器, 由RADIUS 服务器进行认证;
(9)RADIUS 服务器根据用户信息,做MD5 算法,判断用户是否合法,然后回应认证成功/失败报文到接入设备。如果成功,携带协商参数,以及用户的相关业务属性给用户授权。如果认证失败,则流程到此结束;
(10)如果认证通过,用户通过标准的DHCP 协议(可以是DHCPRelay),通过接入设备获取规划的IP 地址;
(11)如果认证通过,接入设备发起计费开始请求给RADIUS 用户认证服务器;
(12)RADIUS 用户认证服务器回应计费开始请求报文。用户上线完毕。
认证通过之后的保持:认证端Authenticator 可以定时要求Client 重新认证,时间可设。重新认证的过程对User 是透明的(应该是User 不需要重新输入密码)。
下线方式:物理端口Down;重新认证不通过或者超时;客户端发起EAP_Logoff 帧;网管控制导致下线;
现在的设备(switch)端口有三种认证方式:
(1)ForceAuthorized:端口一直维持授权状态,switch 的 Authenticator 不主动发起认证;
(2)ForceUnauthorized:端口一直维持非授权状态,忽略所有客户端发起的认证请求;
(3)Auto:激活802.1X,设置端口为非授权状态,同时通知设备管理模块要求进行端口认证控制,使端口仅允许EAPOL 报文收发,当发生UP 事件或接收到EAPOL-start 报文,开始认证流程,请求客户端Identify,并中继客户和认证服务器间的报文。认证通过后端口切换到授权状态,在退出前可以进行重认证。
802.1x 协议的认证端口
受控端口:在通过认证前,只允许认证报文EAPOL 报文和广播报文(DHCP、ARP)通过端口,不允许任何其他业务数据流通过;
逻辑受控端口:多个Supplicant 共用一个物理端口,当某个Supplicant 没有通过认证前,只允许认证报文通过该物理端口,不允许业务数据,但其他已通过认证的Supplicant 业务不受影响。
现在在使用中有下面三种情况:
(1)仅对使用同一物理端口的任何一个用户进行认证(仅对一个用户进行认证,认证过程中忽略其他用户的认证请求),认证通过后其他用户也就可以利用该物理端口访问网络服务。
(2)对共用同一个物理端口的多个用户分别进行认证控制,限制同时使用同一个物理端口的用户数目(限制MAC 地址数目),但不指定MAC 地址,让系统根据先到先得原则进行MAC 地址学习,系统将拒绝超过限制数目的请求,若有用户退出,则可以覆盖已退出的MAC 地址。
(3)对利用不同物理端口的用户进行VLAN 认证控制,即只允许访问指定VLAN,限制用户访问非授权VLAN;用户可以利用受控端口,访问指定VLAN,同一用户可以在不同的端口访问相同的VLAN。
转载于:https://blog.51cto.com/justsoso/454188