IEEE 802.1x协议认证方案的改进

时间:2022-10-28 12:58:46

IEEE 802.1x协议认证方案的改进

摘要:无线局域网作为一种无线接入技术得到了迅速的发展,但是它的安全机制却存在很大的安全隐患。如何保证无线局域网的安全性已成为目前重要的研究课题。其中,认证机制是安全机制的重要内容。无线局域网采用IEEE 802.1x协议认证。本文针对IEEE802.1x协议容易受到中间人攻击和会话截取的缺陷,提出了协议的改进方案。主要在现有的IEEE802.1x协议的基础上增加客户端和接入点AP之间的相互认证。

关键词:无线局域网;IEEE 802.1x;EAP;双向认证

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)08-00ppp-0c

1 IEEE802.1x协议的缺陷

无线局域网(Wireless Local Area Network,WLAN)是计算机网络与无线通信技术相结合的产物,是在不采用传统电缆线的同时,提供传统有线局域网的所有功能。无线局域网在为用户带来方便的同时,也存在着许多安全上的问题,主要是易受窃听。

无线局域网的安全威胁除了系统问题外,一般是通过认证、加密技术来提高其安全性。而认证方面是采用IEEE802.1x标准下的共享密钥认证方式,但这种认证方式的主要缺陷是客户端和AP接入点之间缺乏相互认证。

图1所示的示意图说明了攻击者是如何利用IEEE802.1缺陷,通过假装合法请求用户来访问网络的。

图1 IEEE802.1x协议缺陷示意图

从图中1可以看到,当攻击者等待合法客户端成功地完成认证之后,他将伪造连接的管理帧向合法用户端发送断开关联消息(disassociate message )。当合法客户端收到此消息,进入断开关联状态时,而接入点AP仍然处于认证状态,攻击者这时就可以利用合法客户端的MAC地址来获得对网络的访问权。

本文针对IEEE802.1x协议的这种缺陷,提出了一种新的改进方案,即通过使用一个RADIUS服务器来实现客户端和AP之间的相互认证。

2 IEEE802.1x协议认证改进方案的参数设置

2.1 IEEE802.1x协议认证工作流程

IEEE802.1x协议认证工作过程分为六个步骤:

第一步:客户端向AP接入点发送连接请求消息EAP-start,开始启动认证过程。

第二步:AP接入点收到客户端的连接请求消息EAP-start后,回复EAP-request消息,要求客户端提供身份信息。

第三步:客户端把用户的身份信息通过EAP-response消息告知AP接入点。

第四步:AP接入点把客户端送上来的EAP-response消息经过封包处理成Access-Request消息后转发给认证服务器(这里通常是RADIUS服务器)。

第五步:RADIUS认证服务器根据特定的上层认证方式(如EAP-TLS,EAP-PEAP等等)回复Access-Challenge(里边包含了EAP-request)消息给AP接入点,AP接入点把这个消息转发给客户端。

第六步:如果客户端收到认证服务器经过AP接入点转发的认证成功的EAP-success消息,此时AP接入点会将其受控逻辑端口打开,这样客户端就可以正常接入网络,发送有关的消息。

2.2 IEEE802.1x协议认证改进方案的参数设置

本文的改进方案是在上述IEEE802.1x认证步骤的基础上,对其中的第二步和第六步进行相应的改进,并添加新的第七步。

第二步骤的改进方案为:AP接入点收到客户端的连接请求消息EAP-start后,回复EAP-Request/Identity消息,要求客户端提供身份信息,标准的EAP-Request/Identity消息的Type-Data域是空的。在本文的改进方案里,Type-Data域将捎带两个信息:一是AP接入点的序列号,用于标识AP接入点的唯一逻辑标识;二是Lasttime ,即AP接入点最后一次发送给请求连接的客户端断开连接的时间。改进后的Type-Data域如表1所示:

表1 改进后的Type-Data域

其中AP Serial ID域为3个字节(Octets),Lasttime域是标准的时间戳,为8个字节(Octets),这样就同时可以保持该消息的32位对齐。

同样,经改进后的EAP-Request/Identity消息格式如表2所示:

表2 改进后的EAP-Request/Identity消息格式

客户端收到AP接入点改进后的EAP-Request/Identity消息后,将AP接入点信息保存到AP信息表。

第六步骤的改进方案为:如果客户端已经在RADIUS认证服务器上通过之前的认证,RADIUS服务器并不立刻发送认证成功的EAP-success消息给AP接入点,而是产生一个128位的伪随机数发给AP接入点,此时AP接入点也不将其受控逻辑端口打开,而是继续进行再次认证。经过一系列的交互步骤,实现了客户端对AP接入点的身份认证。因而修改后的第六步骤可以有效阻止EAP上层协议采用单向认证的中间人攻击。

添加新的第七步骤方案为:当上述改进后的认证步骤完成后,AP接入点将发送EAP-success消息给客户端,该消息必须包括AP接入点的序列号(AP Serial ID)和Lasttime。当客户端收到EAP-Success消息后,首先判断AP MAC地址和AP序列号是否与保存在AP 信息记录表中相应的AP MAC地址和AP序列号是否相同,如果不同则继续发起认证请求并告知AP接入点连接异常。如果相同,再判断Lasttime是否与AP信息表中的信息相同,如果不同则说明此时的AP接入点是攻击者。如果相同则可判断此消息是真实可信的,继而进行正常的通信。一旦AP接入点收到连接异常消息,它就在一段时间间隔内拒绝客户端的连接请求。通过上述修改后的第二步骤和新添加的第七步骤方案,可以使客户端有能力判断EAP-Success消息的真实性,从而有效地阻止EAP上层协议采用双向认证的中间人攻击。

表3列出了改进方案中使用的相关参数及其说明。

表3 改进方案的相关参数及说明

3 IEEE802.1x协议认证改进方案的软件实现

由上面的讨论可知,本改进方案的实现是由客户端、AP接入点,RADIUS认证服务器三个部分组成。重点是在Linux操作系统环境下,在客户端和AP接入点之间软件的实现。

3.1 AP接入点的软件实现

3.1.1 主函数设计

主函数设计顺序如图2所示。

图2 主函数设计顺序

主函数初始从用户界面读入认证信息,然后等待请求,同时打开链路层接收包线程,并进行如下处理:如果是未经认证用户发送的请求EAP-Start,则进入用户认证模块;如果收到的数据包是EAP-Logoff类型,表示用户想退出网络;如果用户通过标准的IEEE802.1x认证,则进入改进方案的第六步实现客户端和AP之间的双向认证。通过认证后则发送带上AP序列号、Lasttime等EAP-Success消息,经客户端确认后完成认证,客户端就可以成功登录网络。

3.1.2 认证模块的实现

在标准的IEEE802.1x认证方式中,AP接入点不需要了解EAP上层协议,只需简单作为后端服务器的透明传输,将客户端数据包传递给RADIUS服务器即可,只有在本改进方案的第二步骤和第七步骤中,需要带上AP接入点自己的序列号和Lasttime时间戳。

最后,参照IEEE802.1x协议中认证系统状态机来进行程序设计。

3.2 客户端的实现

由于本文提出的改进方案是基于IEEE802.1x的认证机制,所以程序主要工作在认证机制这一块。主控模块进行模式选择,参数设置。接着调用认证模块,实现IEEE802.1x的状态机,其中对应状态机中的各个状态的功能分别用函数实现, EXIT过程包含了收包线程的关闭,返回认证结果给主控模块;认证成功,则进入安全连接阶段。客户端的主函数顺序图3所示:

图3 客户端顺序图

AP接入点和客户端程序都是在linux环境下用C语言实现。由于freeradius是开放的源代码,并带有很多功能函数,如radius.c、rbtree. c、 md5.c、filters.c, hmac.c等等,大大提高了程序的开发效率。由于篇幅有限,本文省略了源代码。

4 IEEE802.1x认证协议改进方案的优缺点

IEEE802.1x认证协议改进方案的实现,解决了客户端和AP接入点之间的相互认证问题,有效地阻止中间人攻击和会话截取攻击。与原有EEE802.1x协议比较,它具有以下特点:

(1)由于采用了强制认证方式,故提高了认证安全性。

(2)过程简单,没有使用EAP-TLS,在客户端和访问控制点之间没有公共密钥认证。

(3)兼容性高,降低实现难度。

1)改进方案是建立在原有的IEEE802.1x认证协议基础之上的,能够和原来的IEEE802.1x很好地兼容;

2)AP接入点的序列号和时间戳Lasttime是捎带在AP接入点发给客户端的EAP-Request消息中的,充分利用了原来的消息流程,没有添加额外的开销,提高了效率,同时也增强了兼容性。

该改进方案也有以下不足之处:

(1)由于增加了协议的交互步骤,也就相应地增加了一定的时间开销和复杂度。

(2)要求在AP接入点和客户端分别与RADIUS服务器拥有一个共享的密钥k1和k2,这些共享密钥的来源必须安全可靠。

(3)要实现本改进方案,客户端、AP接入点和RADIUS服务器都必须支持加密/解密算法AES-CBC和单向哈希(HASH)算法MD5,而且都能够产生128位的伪随机数,对这些设备都提出了一定的要求。

(4)需要在客户端软件添加新的数据结构AP信息表。

参考文献:

[1]刘蕾,张建军.无线局域网的安全[J].互联网世界,2002,(2).

[2]亨区峰,曾奖亨,刘乃安.无线局域网[M].北京:电子工业出版社,1996.

[3]曹秀英,耿嘉,沈平.无线局域网安全系统[M].北京:电子工业出版社,2004.

[4]吉建峰.基于802. 1 x的无线局域网的接入认证研究与应用[D].南京:河海大学,2004.

上一篇:面向创新应用型人才培养的实验实践教学改革 下一篇:网络可靠性安全性设计和容错