郭思娟
摘 要:802.11i是最新版本的WLAN安全协议,提供机密性、完整性检测和相互认证机制。但期在四步握手协议认证过程可能会出现漏洞。对此本文提出了两种改进的方法,即.ANonce加密方法与消息1完整性检测方法,最后对改进机制的安全性进行了分析。
关键词:无线局域网;IEEE802.11i;四步握手协议
WLAN由于其可移动性、方便的接入方式和低廉的价格在普通家庭和企业办公室间快速的普及。802.11协议是IEEE为WLAN制定的协议标准。WPA协议分为家庭和企业两个版本,企业版本的WPA认证协议在相当长的一段时间内被认为是安全的认证方式,直到四步握手协议的漏洞被发现1-2。802.11i安全协议的提出正是基于此,802.11i采用CCMP协议的AES加密算法,具有更高的安全性。
1 802.11i简介
在数据加密方面,802.11i协议采用AES加密算法。在接入认证方面,802.11i采用802.1x基于端口的扩展认证协议,该协议包括三个认证实体,认证服务器,站点和认证者,在认证过程中AP起到传递认证数据包的作用,具体的认证工作在AS和STA间完成,当认证完成后生成主密钥,AS将PMK发送到AP,以便AP和STA完成4步握手协议。
802.11i采用双向认证方式,即站点和接入点相互认证。在密钥管理方面,80.11i的密钥管理机制中最重要的是四次握手协议和组密钥更新协议。四次握手的目的是确保STA和AP均拥有在认证期间产生相同的PMK,从而获得最新的临时会话密钥。
2 四步握手协议
四次握手协议是密钥管理机制中最主要的组成部分,主要目的是确定STA和AP得到的PMK是相同且最新的,以保证可以产生最新的PTK,其中PMK在认证结束时由STA和AP协商生成。密钥协商过程均用EAPOL-KEY帧格式封装。过程如图1。
注释:msg为消息,sn为序列号,MIC为PTK对应的消息完整性检测值
⑴消息l:AP产生随机数ANonce,ANonce通过EAPOL-Key帧发送,其中包括ANonce大随机数,时戳和序列号等,Msg1采用明文传输。序列号字段为密钥重放计数,在建立连接和重连接时初始化为0,序列号可以防止重放攻击。
⑵消息2:当STA接收到msg1后首先检测该帧是否为冲重放帧,如果不是则产生SNonce,由ANonce、SNonce和PMK等使用伪随机函数PRF生产384bit的PTK,通过EAPOL-Key帧发送消息2。Msg2包含sn、SNonce和MIC等,同时存储ANonce、SNonce和PTK。PTK计算公式1
⑶消息3:AP接受到消息2后通过sn检测是否为重放帧,如果不是,通过MIC值检测msg2的完整性,MIC检测通过后提取网络安全元素相关信息,构造并发送msg3相关信息msg3,sn,MIC等。
⑷消息4::当STA收到msg3后校验sn和MIC值,当sn和MIC值检测都通过后,提取RSNIE相关信息,并安装PTK。发送确认msg4 STA的PTK已经安装。
3 四步握手安全性分析
在分析4步握手协议安全性之前先说明一事实。STA在进行4步握手时必须同时保持几个握手实例,以便顺利完成握手实例。
STA采用多个握手实例以便于顺利完成4步握手的同时也引入了安全隐患。分析如下:AP向STA发送第一个消息1,STA收到消息1后生成随机数SNonce,由ANonce,SNonce,PMK,AA和SPA生成PTK和MIC等,发送消息2并存储ANonce,SNonce和PTK。由于STA允许同时运行多个握手实例,则当第二个消息1到来时,STA作同样的处理,但这时存储的ANonce,SNonce和PTK是最新收到的第二个消息1所对应的,第一个消息相关信息被覆盖了。当恶意攻击者不停的向STA发送伪造的消息1时(对于攻击者来说这是很容易做到的,消息1是明文传输的,且没有保护措施),那么4步握手过程将一直不能完成,形成了针对STA的攻击。
为了解决上述缺陷,802.11i建议除了存储PTK外再存储一个TPTK,每次STA收到消息1时产生不同的SNonce,计算PTK并存储ANonce,SNonce和PTK形成一个列表,当收到正确的消息3时查找列表对应的ANonce,SNonce和PTK,并清空列表。
上述建议的解决方案也有一个缺陷,由于PRF算法不是很复杂运算量不大,不易形成CPU耗尽的DOS攻击,更容易耗尽STA的内存造成内存耗尽的DOS攻击。
4 解决方案
⑴解决方案1:ANonce加密方案。AP同时产生ANonce和BNonce利用对称加密算法,用PMK作为密钥加密,加密后称为ANonce,随后用EAPOL-key帧发送加密随机数ANonce,ANonce,序列号和时戳等,ANonce包含在msg1中。
STA收到消息1后,首先检查sn查看消息1是否重放,检查通过后,用已知的PMK解密ANonce,查找解密ANonce的前半部分是否和ANonce一直,如果一致则认为数据合法,从msg1中提取ANonce作为AP发送的Nonce保存、BNonce丢弃。如果检测前部分和ANonce不同则丢弃该帧。STA接受到的消息1中即使有部分元素被篡改,AP接收到对应的消息2后也会将其丢弃,不会影响握手进程。STA收到消息1后产生随机数SNonce,由ANonce、SNonce、AA、SPA和PMK等生成PTK,进而生成MIC,发送信息2并存储ANonce,SNonce和MIC。接下来同原协议一样顺序执行。
对于方案1,由于引入了PMK作为密钥的加密方案,攻击者并不知道PMK和BNonce,无法伪造加密的ANonce从而可以有效的避免恶意攻击行为。该方案只需对随机数产生部分做一定的改进,加密算法可以采用AES算法加密,对软件更改要求较少,并不涉及硬件部分。
⑵解决方案2:消息1完整性检测方案。注释:AP的PMK由AS和STA在认证完成后有AS发送到AP的,此方案需要在AS向AP发送PMK时一并发送STA的MAC地址SPA.
AP同时产生ANonce和BNonce,其中ANonce包含在msg1中,AP此时已知SPA,利用ANonce,BNonce,AA,SPA和PMK利用PRF函数生成PTK和对应的MIC值用以保护消息1的完整性,最后将ANonce,BNonce,sn,msg1和MIC等一起发送至STA。
STA收到消息1后,首先检查sn查看消息1是否重放,检查通过后,利用ANonce,BNonce等生成PTK,用以检验MIC值,当MIC相同时接受消息1,同时提取出ANonce作为AP的Nonce,当MIC不同时则丢弃该帧。此后STA产生SNonce,并和提取到的ANonce,AA,SPA,PMK等生成PTK,进而生成MIC,发送msg2,sn,SNonce等并存储ANonce,SNonce,MIC等。此后过程同原协议。
对方案2的改进方案原理是模仿消息2,3,4引入消息1的完整性检测机制,使得攻击者无法伪造消息1,具有很高的安全性,可以起到保护STA免于攻击的目的。该方案对软件部分改动很少,对硬件部分没有改变,具有很强的可行性。
结论:IEEE 802.11具有很好的安全性,在数据加密和认证接入都有不错的表现,仅在4步握手过程中存在漏洞,使其易受到攻击。本文从改进消息1明文传输和消息来源认证出发,对4步握手协议作了部分改进,使得STA免受DOS攻击,提高了网络的安全性。
[参考文献]
[1]曹利,黄海斌.基于802.11i的四次握手協议的攻击分析[J].计算机工程,2009年5月第35卷第10期.
[2]杨哲.无线网络安全攻防实战进阶[M].北京:电子工业出版社,2011.