摘 要: 通过分析无线局域网的安全协议,发现密钥协商机制——四次握手协议在第一次握手时未对消息进行任何处理,导致该协议存在拒绝服务攻击的安全隐患,就此提出加密管理帧的方法来消除该安全隐患,并对该方法加以论证。
关键词: 网络安全存取;四次握手;客户端加密伪随机数;管理帧
近年来,无线网络得到了飞速的发展,然而无线网络的安全未能跟上使用的步伐。目前,无线网络还无法阻止黑客监听等网络攻击,由于无线网络安全存在的缺陷,导致许多使用无线的用户在无线网络安全上耗资巨大。其中,伪造MAC地址是目前无线局域网仍未解决的安全威胁之一。攻击者利用多种工具截获数据包并获取已授权的MAC地址,例如AirJack、WireShark等工具。黑客伪装成一个已授权的客户端就能发起攻击[1]导致网络服务失败。
目前,IEEE802.11i是无线网络安全的标准协议,它采用802.1X+EAP与AES结合的认证方式与数据加密方式。无线网络安全标准主要有有线等效加密协议WEP、网络安全存取协议WPA、WPA2和IEEE802.11i (WPA2改进版的标准化,在下层的数据链路机密机制比WPA2多一个无线强壮认证协议WRAP)。本文对比了目前主流的无线网络安全标准,详细分析了目前广泛使用的无线网络安全标准IEEE802.11协议的四次握手协议,分析四次握手协议的优缺点并提出改进方案加以论证。
1 无线局域网安全机制分析
WEP使用RC4算法加密,给有线局域网的双方通信提供安全保护。ICFCC2009会议总结了WEP存在的问题:WEP不能预防伪造包、不能抵制重放攻击、错误地使用RC4、初始化向量可重复使用、黑客篡改信息、RC4算法本身的缺陷、密钥管理更新功能较弱、容易伪造认证信息等缺陷[2]。
WPA对WEP协议做了改进,提供了暂时密钥完整性协议/信息完整性检查加密算法TKIP/MIC, 避免了WEP中IV(向量初始化)和MIC的错误,但它们仍只是临时性的安全协议,并没有形成正式的标准。WPA/WPA2身份认证加密对比如表1所示。
在2004年6月由IEEE正式颁布的(WPA2)IEEE 802.11i标准是真正的WLAN安全标准。802.11i基于强大的高速加密标准-计数器模式和密码块链消息认证码协议加密算法AES-CCMP/CBC-MAC,通过使用AES-CCMP,802.11i不仅能加密数据包的有效负载,还可以保护被选中数据包的头字段。因此,WLAN使用802.1X+EAP与EAP加密结合的方式进行身份认证与数据加密。
作为802.11i协议的重要组成部分,四次握手协议用来进行密钥管理,确保移动请求者和认证者之间的无线传输的安全。因此,在现有四次握手的基础上,更好地研究它的安全性、性能,提高它的可靠性、效能是非常必要的也是非常重要的[3]。
2 分析四次握手及改进方案
2.1 四次握手过程分析
四次握手协议是密钥管理机制中最主要的组成部分,在四次握手中STA和AP之间在数据链路层发送和接收4条消息,主要目的是确定STA和AP得到的PMK是相同且是最新的,它们基于双方共有的PMK和握手过程中的参数利用函数PRF分别在各自一端生成暂时对等传输密钥PTK(Pairwise Transient Key)。PTK包含数据加密密钥,数据完整性密钥,EAPOL-KEY加密密钥和EAPOL-KEY完整性密钥。前两个密钥进行数据保护,后两个密钥在无线设备与接入点之间进行初始化握手时,保护通信[4]。同时,通过第4次握手的结果通知STA是否可以加载加密/整体性校验机制。其中,PMK、PTK计算公式如下:
PMK=pbkdf2_SHA1(passphrase,SSID,SSIDlength,
4096)(SOHO应用模式,PMK=PSK)
PTK=MIN(AP_MAC,STA_MAC)||Max(AP_MAC,
STA_MAC)||(Min(ANonce,SNonce))||Max(ANonce,
SNonce)
其中PTK各个字段值如图1所示。

KCK用于4-Way Handshake中对数据原始性进行保障,即MIC Key; KEK用于4-Way Handshake和Group Key Handshake中的EAPOL-Key帧的加解密;TEK也就是TK,用于数据帧的加密;TMK是TKIP中的MIC校验Key。
四次握手过程如图2所示。

(1)第1次握手
认证者发送消息帧1(其中包含AP的随机数ANonce和AP的MAC地址AP_MAC )到STA。
(2)第2次握手
STA收到消息帧1后提取ANonce和AP_MAC,连同自己的随机数SNonce和MAC地址STA_MAC,计算PTK。然后发送消息帧2,该帧中包含SNonce,STA_MAC 及RSN信息元素RSNIE,并且该帧使用了已经计算出的PTK中KCK部分对消息帧2进行MIC完整性认证,然后放入EAPOL-Key帧中一同发送。
(3)第3次握手
AP收到信息帧2后,得到SNonce和STA_MAC,计算出PTK,根据该PTK中的KCK进行MIC验证,与消息帧2中的MIC进行比较,若不同则丢弃消息帧2;相同则向STA发送消息帧3。消息帧3中包含AP的RSN信息元素RSNIE和GTK,用KEK加密GTK,再用KCK进行MIC认证,最后发送。
(4)第4次握手
STA收到消息帧3后装入PTK,并发送空信息(EAPOL-
Key帧的Key Data字段无任何数据),表示已经装入PTK。AP在收到消息帧4后就装入PTK。四次握手完成,至此PTK产生并装载完成,双方的密钥协商完成。
2.2 四次握手缺陷分析
第1次握手时,认证者AP发送消息帧1的同时启动超时装置,如果在计时器规定的时间内,认证者AP没有收到客户端STA的消息帧2,那么认证者AP重新发送消息帧1并启动超时装置。四次握手的这种机制,造成客户端STA可以多次接收消息帧1。
应注意,在使用WEP或WPA机制时,包含MAC地址的管理帧并未加密[1]。因此攻击者可以通过嗅探,截获包含合法用户MAC地址的数据帧,将自己的MAC地址伪装成合法AP的MAC地址。在认证者AP发送消息帧1之后发送消息帧3之前,攻击者可以不断地向客户端发送伪消息帧1,客户端在收到伪消息帧1后,由于不能识别该消息是伪造的,于是仍然启动计算PTK的值进行MIC校验的过程。
根据分析,得出:四次握手协议易受Dos攻击。攻击示意图如图3所示。

由于客户端每次收到的消息帧1中,由认证者产生的伪随机数ANonce′的值不同,由式(2)可知:
ANonce′≠ANonce?圯
PTK′≠PTK?圯
MIC′≠MIC
客户端计算所得PTK的值不同,当消息帧3到达客户端时PTK′≠PTK,造成了PTK混乱,数据完整性校验失败,四次握手终止,攻击者Dos攻击成功。
2.3 改进方案及效果
认证者与客户端之间共享密钥PMK,针对Dos攻击的问题产生的原因是未对第1次握手进行加密,因此在消息1中增加加密管理帧EANonce,就能防止攻击者伪造消息1。如果PMK是由802.1X认证动态生成的,那么本文提出的方案就能解决Dos攻击问题。然而,当使用预共享密钥方式时,由表1可知,PMK=PSK,由于PSK一般很长时间不会修改,因而当攻击者获得PSK后,造成了消息1的MIC失效。这种方式需要对四次握手协议进行较多修改,这里暂不予讨论。
802.11i的建议草案提出:为了防止在请求方通过发送伪消息1改变PTK的值,现有一种称为TPTK暂时对称暂时密钥的机制,在消息3到达并验证之前只改变TPTK的值。这就表示,请求者在收到消息1后会产生两个值PTK和TPTK,在收到并验证消息3之前只更改TPTK的值。直到收到并验证消息3之后才更改PTK的值。
然而在这种情况下,这种机制并不能阻当Dos攻击,因为这种机制只能阻挡当请求者安装并更新了PTK之后,又发送的伪消息1。如果伪消息1是在请求者收到并验证消息3之后发送的,那么TPTK机制就可行,因为伪消息1′通不过伪消息3′的验证。但是在这种攻击时,伪消息1′是在请求者收到消息3之前发送的,因此TPTK是根据收到的伪随机数ANonce′来更新的。并且更新的TPTK′会用来对合法的消息3进行验证,如果MIC校验失败,则会话终止。总之,这种单消息攻击会在四次握手中成功实行,并阻塞请求者与认证者的会话[5]。
针对上述分析,客户端极易遭受Dos攻击,是由于IEEE802.11i协议中四次握手协议的第1次握手过程未对管理帧进行加密造成的。本文提出的解决方案如下:
在第1次握手过程中,对管理帧进行加密操作,确认消息1是由AP发送的而不是由攻击者伪造的,将攻击者发送的伪消息1丢弃并断开与之的通信过程,可以避免拒绝服务攻击。其实现方法为:在消息1中增加字段值EANonce(加密伪随机数),改进后的四次握手过程如图4所示。

该方案中,在认证者发送的消息1中添加了加密随伪机数EANnoce字段,当STA收到消息1后,首先将EANonce解密与未加密的ANonce进行比较,如果一致则认为是合法AP发送的消息,STA会用该ANonce计算新的PTK,否则,客户端STA认为该消息1是由攻击者伪造的,丢弃该消息1断开通信。其后的过程和80211i标准中的四次握手协议完全相同。方案改进前后的效果对比如表2所示。

改进方案通过加密管理帧对消息1进行保护,有效避免了上文中提到的缺陷。解密后的EANonce与未加密的ANonce的比较结果用来侦别消息1的合法性,因此改进方案在客户端收到消息1后就能判断该连接的合法性,若校验失败则将非法通信切断,这可以避免之后过程PTK重复计算,防止客户端在收到消息3时发生PTK混乱,从而达到消除拒绝服务攻击隐患的目的。
IEEE802.11i协议中四次握手协议为客户端STA和认证者AP之间提供暂时密钥协商机制,为每次会话提供安全保证,但是协议本身存在的缺陷未对第1次握手进行加密,导致客户端存在Dos安全威胁。本文提供的改进方案是在四次握手协议的消息1字段中增加加密伪随机数EANonce字段值,能有效避免PTK重复计算消除拒绝服务安全隐患,防止客户端受到Dos攻击,从而使无线网络安全性能大大增强。
参考文献
[1] NANGARAJAN V,ARASAN V,HUANG Di Jiang.Using power hopping to counter MAC spoof attacks in WLAN[C]: Consumer Communications and Networking Conference (CCNC),2010.
[2] LASHKARI A H,DANESH M M S,SAMADI B.A survey on wireless security protocols(WEP,WPA and WPA2/802.11i)[C].2009 2nd IEEE International Conference on Computer Science and Information Technology,2009.
[3] Liu Jing,Ye Xingming,Zhang Jun.Security verification of 802.11i 4-way handshake protocol[C].ICC′08.IEEE International Conference on Communications,2008.
[4] Duan Qi,VIRENDRA M.Server based PMK generation with identity protection for wireless networks[C].2008 4th Workshop on Secure Network Protocols,2008.
[5] Wang Li,SRINIVASAN B.Analysis and Improvements over DoS Attacks against IEEE 802.11i Standard[J].Networks Security Wireless Communications and Trusted Computing (NSWCTC),2010,2(251):109-113.
