WPA/WPA2-PSK的安全性分析与改进

2013-10-17 03:19吴一尘
计算机与现代化 2013年1期
关键词:明文申请者字段

吴一尘

(中国人民解放军电子工程学院网络系,安徽 合肥 230037)

0 引言

随着无线网络应用的蓬勃发展,无线网络的安全问题成为用户关心的焦点。WEP(Wired Equivalent Privacy)标准由于本身设计上的缺陷,导致攻击者只要能够收集到足够多的无线数据包,就一定能够破解获得WEP密钥。目前,已经有许多用于破解WEP密钥的黑客工具被公布,例如:Aircrack-ng、Cain&Abel、SpoonWEP2等[1]。为了克服这一问题,Wi-Fi联盟相继提出了WPA(Wi-Fi Privacy Access)和WPA2安全标准,WPA2被认为是无线网络安全问题的最终解决方案,但在实际应用中,WPA/WPA2仍然存在一些缺陷可以被攻击者利用。WPA/WPA2有两种模式,分别是:WPA/WPA2-Enterprise(企业版)和 WPA/WPA2-PSK(个人版)。WPA/WPA2-Enterprise具有很高的安全性,但其配置和维护费用昂贵,一般小型企业和个人用户难以负担。攻击者对于WPA/WPA2的攻击主要针对WPA/WPA2-PSK,在这种模式下,攻击者只需要截获几个特定的无线数据包,就可以利用字典破解的方式获得用户密码(passphrase)[1],目前有多种类型的黑客软件可以用于破解WPA/WPA2-PSK 用户密码,例如 Aircrack-ng、Cowpatty 等[2]。另外,随着计算机运算速度与存储容量的迅速提高,许多研究[3-4]都提出了加速破解WPA/WPA2-PSK用户密码的方法,严重威胁无线网络的安全。针对这一安全隐患,本文首先分析字典破解WPA/WPA2-PSK用户密码的原理,发现攻击者实现破解的原因在于能够从截获的特定无线数据包中获取用于生成WPA/WPA2-PSK会话密钥的明文密钥材料。根据这一分析结果,本文采用对称密钥加密技术对WPA/WPA2-PSK模式下动态协商会话密钥的四次握手过程进行改进,改进后的四次握手过程能够避免攻击者通过字典破解的方式获取WPA/WPA2-PSK用户密码,提高了WPA/WPA2-PSK模式的安全性。

1 字典破解WPA/WPA2-PSK

1.1 IEEE802.1X 认证

IEEE802.1X为认证会话过程定义了3个组件,分别是:申请者、认证者和认证服务器。对WLAN来说,申请者请求接入无线网络,通常为支持IEEE802.1X的工作站。认证者指需要访问控制的端口,一般为无线接入点。认证者在认证过程中只起到透明传输的作用,所有的认证工作都在申请者和认证服务器上完成。认证服务器实现具体的认证功能,并通知认证者是否允许用户访问端口所提供的服务。认证服务器通常是一台RADIUS(Remote Authentication Dialin User Service)服务器,该服务器存储了用户的相关信息,如用户名、密码、用户访问控制列表等。IEEE802.1X采用EAP协议作为认证信息交互机制,EAP消息封装在EAPOL分组中[5-6]。

一次完整的IEEE802.1X认证过程包括申请者和认证者之间的握手、认证者和认证服务器之间的握手以及申请者和认证服务器之间的握手(通过认证者转发)。通过这些握手过程,申请者和认证服务器彼此相互认证并生成一个共同的密钥,叫做主会话密钥(Master Session Key,MSK)。认证服务器将 MSK安全地传输给认证者,申请者和认证者利用MSK生成成对主密钥(Pairwise Master Key,PMK),用于接下来成对临时密钥(Pairwise Transient Key,PTK)的生成[7]。

IEEE802.1X认证具有很高的安全性,但这种认证模式需要架设一台专用的RADIUS服务器,对于小型企业和个人用户来说,代价过于昂贵,维护也很复杂,所以WPA-Enterprise主要应用于大型企业。针对小型企业和个人用户,WPA/WPA2提供了一种不需要RADIUS服务器的预共享(Pre-Shared Key,PSK)模式。在PSK模式下,申请者和认证者预先输入一个passphrase,然后根据式(1):

PSK=pbkdf 2(passphrase,ssid,ssidLength,4096,256)(1)

计算生成PSK,其中,ssid是认证者的服务集标识(Service Set Identifier,SSID)。计算得到的PSK用于替代PMK。该PSK被申请者和认证者存储起来用于同一个申请者和认证者之间多次重复关联,从而减少生成PSK的计算负载。

生成PMK(或PSK)之后,申请者和认证者发起四次握手过程,动态协商用于此次会话的PTK。

1.2 四次握手过程

四次握手过程[8-9]的消息均由EAPOL-Key帧格式封装,消息交换过程如图1所示,其中,STA和AP分别表示申请者和认证者,SNonce和ANonce是STA和AP生成的随机值,STA_MAC和AP_MAC分别表示STA和AP的MAC地址,RSN IE(Robust Security Network Information Element)是健壮安全网络信息元素,MIC(Message Integrity Code)是消息完整性校验值,GTK(Group Temporal Key)是WLAN目前正在使用的组临时密钥。

图1 四次握手过程

(1)消息1:AP生成并向STA发送ANonce。

(2)消息2:STA收到ANonce之后,生成SNonce,根据式(2)计算得到PTK,其中,“‖”表示连接操作。

PTK=prf- x(PSK,"pairwise key expansion",min(STA_MAC,AP_MAC)‖max(STA_MAC,AP_MAC)‖min(ANonce,SNonce)‖max(ANonce,SNonce)) (2)

PTK包含3个部分,分别是:EAPOL密钥确认密钥(EAPOL Key Confirmation Key,KCK)、EAPOL 密钥加密密钥(EAPOL Key Encryption Key,KEK)、临时密钥(Temporal Key,TK)。其中,KCK 用于计 算EAPOL-Key帧的校验和,KEK用来加密EAPOL-Key帧的数据,TK用以加解密STA与AP之间的单播数据。STA向AP发送SNonce和STA的RSN IE,并且利用KCK对整个消息2进行MIC校验。

(3)消息3:AP得到SNonce之后,利用同样的方法计算出PTK并且对消息2进行MIC校验,如果校验失败则丢弃消息2,成功则向STA发送ANonce(和消息1中的ANonce相同)、AP的RSN IE、MIC、是否安装PTK、用KEK加密的GTK。

(4)消息4:STA收到消息3并校验正确后即装入PTK和GTK,然后向AP发送消息4,表示已经装入PTK和GTK。AP收到消息4并校验正确后也装入PTK。至此,四次握手过程完成。

1.3 对WPA/WPA2-PSK的破解

WPA/WPA2-Enterprise的安全性非常高,破解难度极大,但目前已经有多种黑客软件可以破解WPA/WPA2-PSK模式下的用户密码,例如 Aircrack-ng、Cowpatty等。这些软件都是采用字典破解的方式获得PSK模式下的用户密码。

从对四次握手过程的描述可知,WPA/WPA2-PSK的认证实际上是对MIC的认证。MIC由KCK计算生成,而KCK是由PTK分解得到的。计算PTK需要 ANonce、SNonce、AP 的 MAC 地址 AP_MAC、STA的MAC地址STA_MAC以及PSK,在四次握手过程中,消息1和消息2中的ANonce、SNonce没有经过加密,是明文传送的,攻击者只要捕获到这两个消息,就能得到ANonce和SNonce,而PSK是由passphrase和AP的SSID计算得出的,根据这些已知的数据,攻击者可以利用先假设再验证的思想,试探得到passphrase,这种破解方式被称为字典破解。

字典破解中的字典是事先已经获取的passphrase的集合。攻击者利用假设的思想,从字典中取出一条passphrase,联合AP的SSID,计算得到PSK’,然后根据截获到的消息1和消息2中的ANonce、SNonce、AP_MAC和STA_MAC,计算得到PTK’,再将PTK’分离得到KCK’,用KCK’对消息2进行MIC校验,如果之前假设的passphrase是正确的,那么,MIC校验的结果必然和截获到的消息2中的MIC值一致,否则说明之前假设的passphrase不正确,继续从字典中取出下一条passphrase,重复以上过程,直到找到正确的passphrase为止[10]。由此可以看出,字典破解的成功率依赖于字典的大小,如果字典中不包含正确的用户密码,就不可能破解成功。

另外,传统的WPA/WPA2-PSK字典破解工具一般采用单机单核进行破解,破解速度有限,加之密钥的定时自动更新机制,往往因为破解速度过慢,在PSK更新周期内未完成密钥空间的搜索而失效。目前,已有许多研究针对如何提高WPA/WPA2-PSK的破解速度进行了探索和尝试。文献[3]提出一种分布式多核CPU加GPU的WPA/WPA2-PSK高速暴力破解器,文献[4]提出了利用彩虹表和GPU破解对称密码的技术。同时,也已经有相关的商业软件和开源软件被发布。俄罗斯软件公司ElcomSoft推出了一款商业单机软件Wireless Security Auditor,利用GPU的运算性能提升WPA/WPA2-PSK的破解速度,开源Pyrit是专门的WPA/WPA2-PSK破解工具,支持多核心CPU和GPU,基于Python语言开发,该破解工具的最新版本引入了网络核心概念,将网络上的协作破解机器作为本机外的另一个计算核心。这些研究的提出和相关软件的发布,大大提高了WPA/WPA2-PSK的破解速度,也进一步威胁到WPA/WPA2-PSK模式的安全性。

2 一种对WPA/WPA2-PSK的改进方法

通过上述对字典破解的描述可以看出,攻击者需要获取几个关键信息,才能够进行PSK的猜测和验证。如果能够将这些关键信息至少隐藏起一部分,使得攻击者无法获取其明文,那么字典破解就不能进行下去。在字典破解中,攻击者首先根据假设的passphrase以及AP的SSID计算得到PSK’,然后需要截获四次握手过程中的消息1和消息2(或者消息2和消息3),从中获取明文 ANonce和 SNonce,联合AP的MAC地址AP_MAC、STA的MAC地址STA_MAC以及PSK’,计算得到PTK’。由此可见,在字典破解中,攻击者必须要获得的关键信息包括:AP的SSID、AP_MAC、STA_MAC、ANonce和 SNonce。其中,AP 的SSID、AP_MAC、STA_MAC在 AP的 Beacon帧、STA的Probe request帧以及AP的Probe response帧中都是明文出现的,很容易获得且无法被隐藏,因此,唯一能够隐藏的关键信息就是ANonce和SNonce。如果AP能够对消息1中的ANonce进行加密而STA能够正确解密,那么,由于攻击者不知道加解密的密钥,即使截获了消息1,也无法得到正确的明文ANonce,同理,可以对消息2中的SNonce和消息3中的ANonce进行相同的处理,经过这一改进后,由于攻击者无法获取明文ANonce和SNonce,字典破解将无法进行。

根据以上分析,本文提出一种基于对称密钥加密技术[11-12]的 WPA/WPA2-PSK改进方法。由于在消息1的传递过程中,AP和STA共享的密钥只有PSK,同时,为了保护PSK的安全,根据式(3)将PSK展开成PEK,作为加解密ANonce和SNonce的对称密钥。

PEK=PRF - X(PSK,″Pairwise Encryption Key″,Min(STA_MAC,AP_MAC)||Max(STA_MAC,AP_MAC)) (3)

在这种改进方法中,AP与STA之间的四次握手过程如图2所示。

图2 WPA/WPA2-PSK改进方法

(1)消息1:AP根据式(3)计算得到PEK,生成随机数 ANonce并用 PEK加密,加密采用 AES(Advanced Encryption Standard)算法[13-14],AP 向 STA 发送加密后的ANonce。

(2)消息2:STA按照同样的方法计算得到PEK,利用PEK对收到的消息1解密获得ANonce,STA生成SNonce并根据式(2)计算得到PTK,然后向AP发送用PEK加密的SNonce、STA的RSN IE以及用KCK计算得到的MIC值。

(3)消息3:AP收到消息2,解密得到SNonce并计算PTK,然后利用KCK对消息2进行MIC校验,如果校验失败,则丢弃消息2,如果校验成功,则向STA发送用PEK加密后的ANonce、AP的RSN IE、是否安装PTK、用KEK加密的GTK,整个消息3用KCK进行MIC校验。

(4)消息4:STA收到消息3并校验正确后即装入PTK和GTK,然后向AP发送消息4,表示已经装入PTK和GTK。AP收到消息4并校验正确后也装入PTK。

由于攻击者不知道 PEK,对密文 ANonce和SNonce解密后必然会有某些不可读的符号和字符,无法获得正确的明文ANonce和SNonce,因此字典破解无法继续进行。

在WPA/WPA2的四次握手过程中,AP和STA之间的消息都是通过EAPOL-Key帧格式封装的。为了尽可能减少对协议的修改,应该保证改进方法中所产生的新的数据传递能够封装在EAPOL-Key帧中,同时不会打乱已有数据在该帧格式中存放的位置。EAPOL-Key帧格式如图3所示。

图3 EAPOL-Key帧格式

在本文提出的WPA/WPA2-PSK改进方法中,消息1、2、3中的ANonce和SNonce需要加密传送,其余数据没有发生变动。在WPA/WPA2四次握手过程中,传递消息 1时,EAPOL-KEY帧中的 Key Data Length字段和Key Data字段没有被使用,所以,在改进方法中,消息1中加密的ANonce可以存放在Key Data字段,而密文的长度可以存放在Key Data Length字段。在WPA/WPA2四次握手过程传递消息2时,EAPOL-Key帧的Key Data字段已经被用于存放STA的RSN IE,但由于Key Data Length字段存放了该RSN IE的长度,所以,在改进方法中,可以接着该RSN IE之后,继续在Key Data字段存放加密后的SNonce,而密文的长度可以存放在EAPOL-Key帧的Reserved字段中,该字段在WPA/WPA2中一直没有被使用,作为保留字段。类似地,在WPA/WPA2四次握手过程传递消息3时,EAPOL-Key帧的Key Data字段已经存放了AP的RSN IE和用KEK加密后的GTK,同时Key Data Length字段存放了该RSN IE和GTK的长度,在改进方法中,仍然可以继续在 Key Data字段中接着存放加密后的Anonce,同时将密文长度存放在Reserved字段中。由此可见,本文所提出的WPA/WPA2-PSK改进方法不需要修改EAPOLKey帧的帧格式,并且不会打乱帧中已经存放的数据的位置。

3 结束语

针对WPA/WPA2-PSK容易遭受字典破解的安全隐患,本文提出了一种基于对称密钥加密技术的WPA/WPA2-PSK动态密钥协商过程改进方法,采用AES算法对字典破解所依赖的明文 ANonce和SNonce进行加密传输。攻击者由于不知道加解密密钥,因此无法获取正确的明文ANonce和SNonce,从而无法进行字典破解。

随着计算机运算能力的不断提高和存储器容量的不断增大,越来越多的研究采用分布式、多核CPU、GPU、彩虹表等技术对WPA/WPA2-PSK进行高速字典破解,虽然WPA/WPA2-Enterprise的安全性非常高,但面向小型企业和个人用户的WPA/WPA2-PSK却是无法被替代的,因此,进一步增强WPA/WPA2-PSK的安全性,将是未来研究的方向。

[1]杨哲.无线网络安全攻防实战进阶[M].北京:电子工业出版社,2011:63-98.

[2]杨哲.无线网络安全攻防实战[M].北京:电子工业出版社,2008.

[3]刘永磊,金志刚,陈喆,等.WPA/WPA2-PSK高速暴力破解器的设计和实现[J].计算机工程,2011,37(10):125-127.

[4]金铨.DES密码算法的彩虹攻击技术及其GPU实现[D].上海:上海交通大学,2010.

[5]王小军,陆建德.基于802.11i四次握手协议的攻击分析与改进[J].计算机工程,2007,33(3):169-171.

[6]王小军,陆建德.基于802.11i的四次握手协议的攻击[J].计算机与现代化,2006(5):72-75.

[7]梁峰,史杏荣,曲阜平.IEEE802.11i中四次握手过程的安全分析和改进[J].计算机工程,2007,33(3):149-150,179.

[8]IEEE 802.11i-2004,Amendment 6:Medium Access Control(MAC)Security Enhancements[S].

[9]Matthew S Gast.802.11无线网络权威指南[M].南京:东南大学出版社,2007:179-180.

[10]白珅,王轶骏,薛质.WPA/WPA2协议安全性研究[J].信息安全与通信保密,2012(1):106-108.

[11]王亚弟,束妮娜,韩继红,等.密码协议形式化分析[M].北京:机械工业出版社,2006:8-10.

[12]谢希仁.计算机网络[M].北京:电子工业出版社,2011:287-289.

[13]柯海清,冯启明.数据加密技术及网络应用[J].武汉理工大学学报:交通科学与工程版,2002,26(6):818-821.

[14]肖国镇,白恩健,刘晓娟.AES密码分析的若干新进展[J].电子学报,2003,31(10):1549-1554.

猜你喜欢
明文申请者字段
图书馆中文图书编目外包数据质量控制分析
德国2017—2018年难民庇护申请者的人口结构分析
Electroacupuncture and moxibustion promote regeneration of injured sciatic nerve through Schwann cell proliferation and nerve growth factor secretion
奇怪的处罚
德国接纳难民人数逾欧盟总接纳量的一半
奇怪的处罚
四部委明文反对垃圾焚烧低价竞争
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
关于CNMARC的3--字段改革的必要性与可行性研究