Wi-Fi 安全协议 – 802.1X

802.1X 身份认证

  • EAP 是一种架构协议,允许协议设计人员打造自己的EAP 认证方式,EAP并未强制链路的协议。
  • 802.1X 协议讨论的是 EAP在局域网内的实现,即EAPOL (EAP Over LAN ),802.1X是基于局域网的扩展认证协议。
  • 802.1X 协议定义了报文封装格式,称为EAPOL报文,用于客户端和认证系统之间的EAP协议报文传输,以允许EAP协议报文在LAN上传送。

在这里插入图片描述

802.1X 架构

  • 802.1X 协议 提供了基于端口的访问控制机制,它负责传输认证信息,以客户端 与 访问控制服务器之间的加密密钥,如 RADIUS 服务器。
    802.1X 设备的连接端口只有两种状态:非处于授权状态(可用)和 未授权状态(不可用)。

  • 逻辑上,整个身份认证交换程序是通过申请者(Supplicant)与认证服务器(Authentication Server)完成的,认证者(Authenticator)只是扮演中介的角色。
    前端:Supplicant 与 Authenticator 间,使用由802.1X所定义的 EAP over LAN(EAPOL)协议。
    后端:通过RADIUS 数据报文传递EAP数据 – EAP over RADIUS。

在这里插入图片描述

申请者(supplicant)
  • 申请访问网络资源的设备,EAP验证阶段 由申请者发送验证申请 (EAPOL-Start) 后开始
认证者(authenticator)
  • 网路存取控制器 , 如有线网路中的交换器,无线网络中无线路由器。
  • 认证者只负责链路层的身份认证交换程序,并不维护任何使用者信息,任何认证请求均会被转送至认证服务器。
  • 在身份认证成功之前,除了验证的交换信息,申请者的其他信息都会被丢弃。
认证服务器 (Authentication Server, AS)
  • 认证服务器负责真正认证工作 。
  • 不管认证成功或失败 , 认证服务器都会通知认证者 , 认证者再根据结果决定是否允许申请者使用网络。
  • 在无线网络中 , 认证服务器在认证前 , 必须先向使用者发出身份证明 , 以证明自己是合法的认证服务器 , 并间接证明验是否合法的认证者。
端口认证实体(Port Authentication Entity,PAE)- 申请者与认证者的连接端口
  • 802.1X 协议是基于Client/Server的访问控制和认证协议。802.1X 可以限制未经授权的设备通过接入端口(Access Port)访问网络。

  • 802.1X 中,PAE (Port Access Entity)和PACP(Port Access Control Protocol)协议负责相关的算法及处理工作。

  • 802.1X 定义了:Controlled Port (受控端口) 和 UnControlled Port(非受控端口)。
    非受控端口:只允许少量类型的数据流通(如认证的EAPOL帧)。
    受控端口:在端口认证通过前(Unauthorized状态),不允许传输任何数据;802.1X 身份验证通过后,受控端口 变为(Authorized状态),可以传递任何数据。

  • 交换式络环境(以太网)
    用户和网络间采用点到点的物理连接,用户彼此之间通过VLAN隔离,网络管理控制的关键是用户接入控制,802.1x不需要提供过多的安全机制。

  • 共享式网络环境(无线网络)
    将PAE实体由物理端口扩展为多个互相独立的逻辑端口,逻辑端口和设备间形成一一对应关系,各逻辑端口之间的认证过程和结果相互独立。
    在共享式网络中,用户之间相互共享接入媒介,接入网络的管理控制必须兼顾用户接入控制和数据安全,需要对EAPOL和用户数据进行加密封装。

EAPOL 的帧格式

在这里插入图片描述

  • EAPOL帧 在802.3 / 802.11帧 的 Frame body中,添加了Ethernet Type,Version,Packet Type,Packet Body Length 4 个字段。
  • Ethernet Type:类型代码(type code), 长度为2 个字节,EAPOL 的类型代码为888e。
  • Version:版本, 0x03代表802.1X-2010,0x02表示802.1X-2004,0x01表示802.1X-2001。
  • Packet Body Length:计算Packet Body字段的长度。
  • Packet Body:数据包主体,包括:Descriptor Type(EAPOL RSN Key)和 DescriptorBody(身份认证所需的数据)
  • Packet Type:数据报文的类型,长度为2 个字节,具体定义如下:
Packet Type取值 名称 说明
0000-0000 EAPOL-Packet 携带EAP消息帧
0000-0001 EAPOL-Start Supplicant发起认证请求
0000-0011 EAPOL-Key 用于交换加密密钥信息
0000-0100 EAPOL-Encapsulated-ASF-Alert 通过此类帧,让警告信息传给未经授权的端口

EAPOL 认证流程

  • EAPOL 与EAP 认证流程的差别:,Supplicant 可以发送EAPOL-Start 帧触发EAP 认证流程,也可以在网络使用完毕后,发送EAPOL-Logoff 信息解除连接断开的授权。

在这里插入图片描述

  1. 申请者(Supplicant)通过Association帧,关联到 802.11 网络。

  2. Supplicant 发送EAPOL-Start 信息,启动进行802.1X 认证流程。

  3. 认证者(Authenticator)发送EAP-Request/Identity 帧,要求 Supplicant 输入用户名。
    由于EAPOL-Start消息不是必需的,一个未经验证的Supplicant发送了其他数据包,也将触发Authenticator发送EAP-Request/Identity消息。
    如果AP只为已经认证成功的STA转发帧,Request/Identity 帧之前可能就没有EAPOL-Start。

  4. Supplicant以EAP-Response/Identity 帧进行回复, Authenticator将它转换为Radius-Access-Request 数据包,然后发送给RADIUS 认证服务器(Authenticator Server,AS)进行处理。

  5. RADIUS 服务器收到用户名信息后,将其与数据库中的用户名表对比,确认该用户名对应的密码信息和身份认证方式,然后封装到Radius-Access-Challenge 数据包,并发送给Authenticator。

  6. Authenticator收到数据包后。将EAP-Request/Method 发送给者Supplicant,其中的Method 代表所使用的EAP 认证方式。

  7. Supplicant收到EAP-Request/Challenge消息后,结合自己的密码对Challenge数据包进行处理,处理结果通过EAP-Response/Challenge消息 由Authenticator返回给AS。
    Authenticator将它转换为Radius-Access-Request 数据包,针对Challenge 信息的回应则存放于数据字段。

  8. Authenticator Server将收到 RADIUS Access-Request 消息和本地经过加密运算后的密码信息进行对比。
    如果相同,则认为该Supplicant为合法用户。Authenticator Server会发送Radius-Access-Accept 数据包允许对方访问网络,

  9. Authenticator 收到Access-Accept 数据包后,会发出一个EAP-Success 帧,并且授权Supplicant使用连接端口,Supplicant会使用EAPOL-Key 信息将密钥传给申请者,EAPOL-Key 帧也可以定期用来动态更新密钥。
    有些 Authenticator 会定期向 Supplicant 发送握手消息以检测Supplicant的在线情况。如果Supplicant状态异常,Authenticator将禁止其上线。

  10. 当Supplicant安装好密钥,DHCP 配置会开发进行IP的分配。IP分配完成后,Supplicant可以开始访问网络。

  11. 当Supplicant不再需要访问网络,就会送出一个EAPOL-Logoff 信息,使连接端口恢复未授权状态。

在这里插入图片描述


版权声明:本文为xiaozy115原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。