第二章 EAP协议的研究
2.1 引言
随着无线网络技术的发展,WEP中使用的访问控制机制不够完善, 不如何通过端口认证来快速并安全的实现对用户接入控制就成为一项非常现实的问题。IEEE802.lx正是基于这一需求而出现的一种认证技术。IEEE802.lx协议于2001年6月由IEEE正式公布,它是基于端口的访问控制方案[27]。IEEE802.lx协议在无线网络认证中已经得到了广泛的应用。
EAP协议是IEEE802.1x协议的核心和具体认证方式,相比于传统的认证方法,EAP协议支持更多、更灵活、更广泛的认证机制[28]。认证者可向请求者询问更多的认证信息,并依此来协商选用何种认证机制。而在目前的各类EAP认证机制中,有的过于简单,不能提供双向认证,安全性很低,有的虽然能够提供双向认证,但过于复杂,并不适用于在我国的无线网络环境当中。
2.2 IEEE802.lx认证协议
IEEE802.lx协议它不仅提供访问控制功能,还提供用户认证和计费的能力。
IEEE802.lx协议并非专门针对WLAN设计,它适用于符合IEEE802标准系列的各种网络(如以太网)。它的核心是扩展认证协议EAP(Extensible Authentication Protocol),主要有3个实体:申请者(Supplicant)、认证者(Authentication )和认证服务器(Authentication Server)。
1) 对于WLAN来说,申请者请求接入无线网络,通常为装有802.lx客户端软
件支持EAP的站点Station。
2) 认证者一般都是无线接入点AP(Access Point),它有两个逻辑端口:受控
端口(Controlled Port)和非受控端口(Uncontrolled Port)。非受控端口过滤所有的网络数据流,只允许EAP帧通过。在认证时用户通过非受控端口和AP交互数据,若用户通过认证,则AP为用户打开一个受控端口,用户可以通过受控端口传输各种类型的数据帧(如HTTP,POP3)。
3) 认证服务器在通常情况下为RADIUS服务器(Remote Authentication Dial In
6
Server),用户帐户信息在该服务器中。扩展认证协议EAP只是一种封装协议,在具体应用中用户可以选择EAP-TLS、Kerbeors等任一种认证协议。802.1x协议的协议栈如图2-1所示。
TLS CHAP Kerberors 验证层 扩展认证协议 EAPOverLAN(EAPOL) EAP层 PPP 802.3 802.5 802.11 MAC
图2-1 802.1x协议的协议栈 Fig.2-1 The Protocol stack of 802.1x Protocol
802.1x协议的认证过程如下:
(1) 用户通过AP的非受控端口向AP发送一个EAP-Start帧。 (2) AP发送一个回应帧,要求用户提供身份信息。 (3) 用户将自己的身份信息提交给用户。 (4) AP将用户身份信息转交给认证服务器。
(5) 认证服务器通过查询用户身份数据库或使用其他认证算法验证用户身份的
合法性,在此期间它可能通过AP与用户多次交互需要的信息。
(6) 认证服务器向AP发送(EAP Success)或拒绝访问(EAP Failure)信息。 (7) AP向用户发送允许访问或拒绝访问的EAP帧。如果认证服务器告知AP可
以允许用户接入,AP将为用户开放一个受控端口,接下来用户将使用该端口传输数据。
7
整个认证过程如图2-2所示。
Station EAP-Start EAP-Request/ID EAP-Response/ID RADUIS Accept Request(EAP ID) RADUIS Accept Challenge(EAP Request) AP RADIUS EAP Request 1 EAP Response 1 RADUIS Accept Request(EAP Response 1) …EAP Response N EAP Success/Failure N EAPoL-Key(Optional) …RADUIS Accept Request(EAP Response N) RADUIS Accept(EAP Success) or RADUIS Accept(EAP Failure)
图2-2 802.1x认证过程
Fig.2-2 The Process of 802.1x Authentication
EAP封装的具体协认证议是可选的,因此802.1x在实现上具有较大的灵活性,但是该协议用于无线环境也有不足之处。美国Maryland大学的学者提出了两种针对该协议的攻击方法。 (1) 插入中间人攻击方法
插入中间人(Man in the Middle)攻击方法,即在用户请求接入时,攻击者在用户一方假冒AP,而在真实的AP一方假冒用户,就可以绕过认证机制, 如图2-3所示。通过在AP与Station之间使用双向认证可以阻止这种攻击。例如在使用EAP-TLS协议时使用时选择强制使用双向认证选项(在使用EAP-TLS协议中使用单向还是双向是可选的)。
8
接入点AP 802.11 攻击者 802.11 请求者 802.3 LAN 验证服务器
图2-3插入中间人攻击方法 Fig.2-2 Man in the Middle
(2)会话欺诈攻击方法
会话欺诈攻击(Session Haijacking)攻击方法,即在用户成功通过EAP认证以后,攻击者窃取AP的MAC地址,利用它伪造一个“解除联系”(Disassiociate)帧,假冒AP将此帧法上发送给用户,而用户认为该帧是AP发过来,将断开与AP的连接。但此时AP并不知道用户已经断开了连接,这样攻击者就可以在AP面前假扮用户来继续使用该合法连接,如图2-4所示。
攻击者 请求者 1.EAP-Start 2.EAP-Request 3.EAP-Response 接入点
…4.EAP-Success 用户已被认证 5.802.11 MAC Disassociate 6.Newwork Traffic
图2-4会话欺诈攻击 Fig.2-4 Session Haijacking
导致该攻击的根源在于用户认证结束和开始传输正常业务流的两个时刻之间,用户的状态转换与认证者的状态不同步,同时,802.1x协议没有要求对管理帧的传输进行加密。
9
除了以上两种攻击方法以外,无线网络还将面临拒绝服务式DoS(Denial of Service)攻击的威胁。DoS攻击利用了IP/TCP在设计上的缺陷,又具有极佳的隐蔽性,致使到目前为止都没有找到一个比较完美的解决方案。现在已经有一些在无线环境下可能的DoS攻击方式,如EAP协议在标志每一对连接时使用一个8位长的标记符Identifier,也就是说一个AP在同一时刻只能维持256个不同的连接。我们可以假想攻击者通过软件编程的方法使一个Station向AP发送出具有多个不同MAC地址的连接请求,既在AP面前扮演多个不同Station的角色。这样就可以使AP无法响应其它合法Station的接入请求。DoS攻击将会给无线网络未来的发展带来长久的危害。
2.3 EAP协议
802.1x使用EAP协议来完成认证,但EAP本身不是一个认证协议,而是一个通用架构用来传输实际的认证协议,为其它高层协议提供承载。EAP协议本身具有良好的可扩展性,当一个新的认证协议发展出来的时候,基础的EAP协议不需要随着改变,添加新的认证方法时丝毫不会影响现有协议实现的继续使用。
EAP协议的帧格式如图2-5所示。
编码 标识符 长度 数据 图2-5 EAP协议帧格式 Fig.2-5 The format of EAP frame
(1) 编码字段用于识别EAP包的类型,包括:request(请求)、response(响应)、
success(成功)和failure(失败),每个请求包对应一个响应包。 (2) 标识符用于帮助匹配request和response包。 (3) 长度字段指出整个EAP协议包的长度。
(4) 数据字段包括与认证机制相关的信息,其格式为“type(类型),type-data(类型数据)”,已定义的部分type如下: 1. Identity 2. Notification
10