上世纪90年代后期,为了解决无线局域网(WLAN)接入控制的问题(包括安全问题,信息资源盗用的问题),IEEE提出了802.1x协议族,采用基于端口的控制方法来实现接入端认证。后来,由于802.1x的成功,有线接入的局域网也开始广泛使用该协议来进行接入认证和计费。
EAP最早是用于点到点传输的扩展认证协议,它本身并不提供认证功能,而只是提供了一种客户端同认证服务器之间的信息交换协议。认证服务器(通常为AP或者是接入交换机)本身的认证功能是通过后台的RADIUS服务器来完成。
目前,使用802.1x认证的系统,几乎都是使用EAP来做信息交换。
EAP认证的过程包括:
1. 认证请求端(supplicant)发起认证请求(有的交换机设备也支持自动对接入端发起身份查询)
2. 认证服务器向认证请求端发出CODE为IDENTITY的身份请求
3. 认证请求端响应请求,并发送用户名
4. 认证服务器向认证请求端发出CODE为MD5CHALLENGE的认证请求
5. 认证请求端响应请求,并发送加密后的认证密码(通常采用MD5加密)
6. RADIUS服务器认证后,通过认证服务器转发成功或者失败的报文,如果是成功报文,认证服务器会同时打开认证请求端端口.
在基于802.1X的有线接入网络中,EAP报文直接封装在数据链路层上(以太帧),我们可以定义数据帧如下:
typedef struct _EAP_FRAME{
unsigned char desmac[6]; // 目的MAC(会话发起时是多播地址)
uns
EAP最早是用于点到点传输的扩展认证协议,它本身并不提供认证功能,而只是提供了一种客户端同认证服务器之间的信息交换协议。认证服务器(通常为AP或者是接入交换机)本身的认证功能是通过后台的RADIUS服务器来完成。
目前,使用802.1x认证的系统,几乎都是使用EAP来做信息交换。
EAP认证的过程包括:
1. 认证请求端(supplicant)发起认证请求(有的交换机设备也支持自动对接入端发起身份查询)
2. 认证服务器向认证请求端发出CODE为IDENTITY的身份请求
3. 认证请求端响应请求,并发送用户名
4. 认证服务器向认证请求端发出CODE为MD5CHALLENGE的认证请求
5. 认证请求端响应请求,并发送加密后的认证密码(通常采用MD5加密)
6. RADIUS服务器认证后,通过认证服务器转发成功或者失败的报文,如果是成功报文,认证服务器会同时打开认证请求端端口.
在基于802.1X的有线接入网络中,EAP报文直接封装在数据链路层上(以太帧),我们可以定义数据帧如下:
typedef struct _EAP_FRAME{
unsigned char desmac[6]; // 目的MAC(会话发起时是多播地址)
uns