马秋贤 郑扬驰
摘要:本文简单阐述了WAP加密认证的体系结构和认证整个流程,同时指出了WAP加密中存在的不安全问题,即可以利用中间人攻击达到对WLAN的威胁,并提出了改进的有效措施和建议。
关键词:WAP;WLAN;IEEE;802.111引言
随着各种各样移动设备的大范围使用,这些设备连接互联网已经越来越频繁。而移动设备连接互联网是通过无线连接。无线与有线连接方式在物理上存在很大的差别,因为无线是通过无线电波连接,任何在该无线覆盖范围内的用户都可以通过不同的途径连接,其方便了很多合法的用户,特别对应移动性较强的用户。但另一方面对于安全性方面更具有挑战性。
众所周知,前期的IEEE 802.11协议是无线连接的标准协议,该协议是为了方便移动用户连接无线网络,但在安全性方面没有做太多的要求,但随着无线网络的普及和无线技术的发展,无线网络这一致命的弱点很容易被非法的用户利用,并对无线网络安全造成很大的威胁。IEEE802.11i所使用的加密技术是基于WEP(有线等效加密)协议,该协议设计目标是为WLAN提供与有线网络相同级别的安全性,它可以防止明文数据在无线传输中被窃听,并不足以对抗具有专门知识、充足计算资源的黑客对使用WEP加密的数据进行攻击。
2WAP加密技术工作流程
WPA采用了802.1x和TKIP来实现WLAN的访问控制、密钥管理与数据加密。802.1x是一种基于端口的访问控制标准,用户必须通过了认证并获得授权之后,才能通过端口使用网络资源。TKIP虽然与WEP同样都是基于RC4加密算法,但同时引入了4个新算法:
⑴扩展的48位初始化向量(IV)和IV顺序规则(IV Sequencing Rules);
⑵每包密钥构建机制(per-packet key construction);
⑶Michael(Message Integrity Code,MIC)消息完整性代码;
⑷密钥重新获取和分发机制。
WPA系统在工作的时候,先由AP向外公布自身对WPA的支持,在Beacons、Probe Response等报文中使用新定义的WPA信息元素(Information Element),这些信息元素中包含了AP的安全配置信息(包括加密算法和安全配置等信息)。STA根据收到的信息选择相应的安全配置,并将所选择的安全配置表示在其发出的Association Request和Re-Association Request报文中。WPA通过这种方式来实现STA与AP之间的加密算法以及密钥管理方式的协商。
STA通过了802.1x身份验证之后,AP会得到一个与STA相同的Session Key, AP与STA将该Session Key作为PMK(Pairwise Master Key,對于使用预共享密钥的方式来说,PSK就是PMK)。随后AP与STA通过EAPOL-KEY进行WPA的四次握手(4-Way Handshake)过程。(如图1所示)
四次握手协议执行过程如下:
⑴AP发送EAPOL-Key消息1给STA,其中包含Anonce,STA接收后进行重放攻击检查,若通过就利用Anonce和自己产生的Snonce调用PRF函数计算生成PTK。
⑵STA发送EAPOL-Key消息2给AP,其中包含Snonce,并在KeyData字段中放入STA的RSNIE,并用计算出的MIC对此消息进行数据完整性保护。
⑶AP收到消息2后把得到的STA的随机数Snonce和自己的Anonce采用PRF函数计算PTK,再使用计算出PTK(Pairwise Transient Key)中的MK对消息2进行数据完整性校验。如校验失败就放弃消息2,如成功,AP会将STA发来的RSNIE和在前一阶段建立关联时发送的RSNIE进行比较,如不同则说明该STA可能为假冒者,中断STA的关联,若相同则EAPOL-Key消息3给STA。其中包含Anonce、KeyRSC、RSNIE和MIC(Message Integrity Code)。
⑷STA发送EAPOL-Key消息4给AP,AP收到后进行重放攻击检查。若通过就验证MIC,验证通过就装载PTK,而STA在发送完消息4后也装载相应的PTK,四次握手过程到次完成。
四次握手成功后,AP要生成一个256位的GTK(Group Transient Key),GTK是一组全局加密密钥,所有与该AP建立关联的STA均使用相同的GTK,AP用这个GTK来加密所有与它建立关联的STA的通信报文, STA则使用这个GTK来解密由AP发送的报文并检验其MIC。该密钥可以分解为三种不同用途的密钥, 最前面的128位作为构造全局“每报文密钥”(Per-packet Encryption Key)的基础密钥(Base Key),后面的两个64位的密钥分别作为计算和检验WPA数据报文的MIC的密钥。AP使用EAPOL-KEY加密密钥将GTK加密并发送给STA,并指明该GTK是否允许STA用作发送报文所使用,STA成功接收到该报文,将GTK解密后,向AP发送应答报文,并根据AP所指示的Key Index将其安装无线网卡的相应位置,如果AP使用GTK作为向某一STA单播传输的密钥,则该STA也需要使用GTK作为向AP发送单播报文的密钥。WAP并不直接使用由PTK/GTK分解出来的密钥作为加密报文的密钥,而是将该密钥作为基础密钥(Base Key),经过两个阶段的密钥混合过程,从而生成一个新的每一次报文传输都不一样的密钥,该密钥才是用做直接加密的密钥。
3WAP加密技术存在的安全问题
在WPA中,AP支持WPA和WEP无线客户端的混合接入。在STA与AP建立关联时,AP可以根据STA的Association Request中是否带有WPA信息元素来确定哪些客户端支持使用WPA。但是在混合接入的时候,所有WPA客户端所使用的加密算法都得使用WEP,这就降低了无线局域网的整体安全性。
此外,通过对整个握手过程的分析可以了解到,恶意的攻击者可以在四次握手的过程中消息2发送后,冒充AP向STA发送伪造的msg1。STA将根据新的msg1中的Anonce和本身产生新的Snonce,重新计算PTK,而PTK与认证者收到msg2后产生的PTK显然是不一致的,这样STA收到msg3后无法正确校验,就会导致四次握手过程被终止,造成了DOS攻击。(如图3所示)
4解决WAP加密技术安全问题的方法
对于以上存在的安全问题,可以在当前的四次握手协议上做一部分改动,使STA保存所有可能的PTK,这样可以适用这些PTK对msg3的MIC进行认证,从而可以防止上面提到的攻击行为。
其次,当STA加入或者离开的时候必须更新组密钥,在四次握手结束后,就可通过组密钥握手协议更新GTK,更新的基本思路是AP选择一个具有密码性质的256bit随机数作为组密钥,接着由GMK、AP的MAC地址直接推导出256bit的组临时密钥GTK,将GTK包含在EAPOL-Key消息中加密传送。
[参考文献]
[1]马建峰,吴振强.无线局域网安全体系结构.北京:高等教育出版社,2008.
[2]杨哲.无线网络安全攻防实战进阶.北京:电子工业出版社,2011.
[3]姚琳,王雷.无线网络安全技术.北京:清华大学出版社,2013.