APP下载

802.11i4-步握手安全性分析

2017-12-25许国祥李天昀吴中超

网络安全技术与应用 2017年12期
关键词:序列号实例消息

◆许国祥 李天昀 吴中超

(清华大学网络与信息安全实验室 北京 100871)

802.11i4-步握手安全性分析

◆许国祥 李天昀 吴中超

(清华大学网络与信息安全实验室 北京 100871)

本文简要分析了4步握手协议的漏洞,指出4步握手协议在面对DoS攻击时是脆弱的,提出了消息1认证机制和STA主动保护机制这两种握手方法。前者将明文的消息1进行了单独认证,使得入侵者无法伪造消息1进行DoS攻击;后者会在收到合法消息1之后主动关闭端口,并开启计时器验证认证过程完整性。用这两种方法与已知的两种方法(Nonce重利用和增强的2-步握手协议)进行比较,比较结果表明了这两种方法在应对DoS攻击和DoS溢出攻击时表现稳定,并对硬件部分和软件部分改动较少。

IEEE802.11i;4-步握手;认证;DoS攻击

1 802.11i 4-步握手简介和安全性分析

2004年IEEE发布了最新版本的WLAN安全协议802.11i,这种协议是建立强健安全网络(robust security network RSN)的基础,被称为WPA2协议。在数据加密方面,802.11i协议采用AES加密算法,相对于 RC4算法具有更高的安全性。在接入认证方面,802.11i采用 802.1x基于端口的扩展认证(EAP)协议,该协议包括三个认证实体,认证服务器(authentication server AS)、站点(station STA)和接入点(access point AP),在认证过程中AP起到传递认证数据包的作用,具体的认证工作在AS和 STA间完成,也可以近似认为是AP和STA之间的认证过程。

1.1 4-步握手协议简介

四步握手协议是密钥管理机制中最主要的组成部分,主要目的是确定STA和AP得到的PMK是相同且最新的,以保证可以产生最新的PTK,其中PMK在认证结束时由STA和AP协商生成。密钥协商过程均用 EAPOL-KEY 帧格式封装。过程如图 1所示。

图1 4-步握手过程

消息1:AP生成ANonce,采用局域网扩展认证(EAPOL-key)帧发送消息1,消息1包含随机数ANonce,序列号sn等,消息1明文传输。STA收到消息1后,检验消息1是否为重放消息。检测通过后产生 SNonce,由 ANonce,SNonce,PMK,AP_mac和STA_mac等用PRF函数生成PTK,公式为:

PTK = PRF - X (PMK,min(AP_ MAC,STA_ MAC)

P max(AP_ MAC,STA_ MAC ) P min(SNonce,ANonce)

P max(SNonce,ANonce) ),进而生成MIC,构造消息 2,消息2用EAPOL-key帧发送,包含网络安全元素(RSN IE)相关信息,MIC 用于消息2完整性保护,sn用于防止重放攻击。

消息2:AP收到消息2后检查序列号sn是否大于消息1的序列号sn,如果成立则检测通过,否侧丢弃。由ANonce,SNonce,PMK,STA_mac,AP_mac等相关信息生成PTK,用于消息 2的完整性MIC值检测,MIC不同则丢弃。检测通过后,提取并核对网络安全信息相关元素,进而构建并发送消息3,消息3 同样用EAPOL-key帧发送用MIC值进行保护。

消息3:STA收到消息3后,首先检测消息3的sn值是否比消息 2的 sn值大,检测通过后核对 ANonce是否和消息 1的ANonce值一致,如有不成立、则丢弃该帧,检测通过后进行后续操作。核对网络安全元素和检测MIC值是否与用EAPOL-key帧发送的一致,如有不成立则丢弃,检测通过后进行后续操作。提取RSNIE,安装PTK至STA_mac,激活数据加密机制,序列号sn加1,构建并发送消息4。

消息4:AP收到消息4后,检测序列号sn和MIC值,检测不通过则丢弃、检测通过后,继续后续步骤。安装PTK至AP_mac,激活数据加密机制,同时更新序列号sn。

1.2 四步握手漏洞和缺陷分析

(1)消息1明文传输漏洞分析

STA在进行4步握手时必须同时保持几个握手实例,以便顺利完成握手过程。理由如下:AP向STA发送消息1后启动定时装置,等待STA回复消息2,假设消息2在传输过程中丢失AP没有收到消息2,定时器到期后AP将重新发送消息1,如果仅保持一个握手实例,这时STA希望收到消息3,信息1无法通过检测将被丢弃,所以握手过程到此结束不能顺利完成,因此为了顺利完成握手实例STA必须允许多个握手实例同时进行,随时能接收消息1。

STA采用多个握手实例以便于顺利完成4步握手的同时也引入了安全隐患。分析如下:AP向 STA发送第一个消息 1,STA收到消息 1后生成随机数 SNonce由 ANonce,SNonce,PMK,AP_mac和STA_mac生成PTK,进而生成MIC等,发送消息2并存储ANonce,SNonce和PTK。由于STA允许同时运行多个握手实例,则当第二个消息1到来时,STA做同样的处理,但这时存储的ANonce,SNonce和PTK是最新收到的第二个消息1所对应的,第一个消息相关信息被覆盖了。当第一个消息1对应的消息3到来时STA检测其MIC值,发现MIC值不相同于是丢弃,只有当最后一个消息1对应的消息3到来时握手才可以继续进行。当恶意攻击者不停的向STA发送伪造的消息1时(对于攻击者来说这是很容易做到的,消息1是明文传输的,且没有保护措施),那么4步握手过程将一直不能完成,形成了针对STA的DoS攻击。

为了解决上述缺陷,802.11i建议除了存储PTK外再存储一个TPTK(temporary PTK),每次STA收到消息1时产生不同的SNonce,计算PTK并存储ANonce,SNonce和PTK形成一个列表,当收到正确的消息3时查找列表对应的ANonce,SNonce和PTK,并清空列表。

上述建议的解决方案也有一个重大缺陷,当恶意攻击者不停地向STA发送伪造的消息1时,STA要不停地计算PTK,并分配内存存储ANonce,SNonce和PTK,消耗STA的资源。由于PRF算法不是很复杂运算量不大,不易形成CPU耗尽的DOS攻击,更容易耗尽STA 的内存、造成内存耗尽的DOS攻击。

由上面的分析可知,造成针对STA攻击的原因在于:

①STA必须允许同时运行多个握手实例,给攻击者提供了机会。

②消息1容易伪造且没有方法确认消息来源或完整性检测机制,是造成DOS 攻击的原因。

(2)消息4丢失缺陷分析

STA收到消息3后,检测sn,ANonce和MIC值等参数,检测通过后,STA安装PTK至STA_mac,构造并发送消息4,同时激活数据加密机制。消息4用于通知AP,STA准备就绪,请AP安装PTK并激活数据加密机制。现在假设消息4在传输过程中丢失,AP没有收到消息4,则定时器超时后AP会重新发送消息3,以便4步握手可以继续完成。但是此时STA处于准备接受加密数据阶段,对AP发送来的消息3将给予丢弃,于是AP还是没有收到消息4,定时器继续超时。AP由于没有收到消息4,没有安装PTK并激活数据加密机制,重复到一定次数后,AP放弃重发消息3,则握手过程中断。

2 4-步握手协议的改进措施

我们知道在 4-步握手协议中的每个握手实例都要生成和存储不同的SNonce来导出PTK,有人于是提出Nonce重利用的解决方案。但这种提案核心思想是STA重复利用最初SNonce的值,直到完成合法的握手过程。但是,在这个方法中要分别在接收信息1和信息3时计算一次PTK,从而在STA端可能造成CPU耗尽攻击。而且,这种方法还对当前软件部分改动较多。

还有人提出增强的 2-步握手协议,这一方案的核心思想是在消息1中加入认证信息。但这一方案也有缺点:

(1)由于要将一段新的加密字段取代MIC字段插入原消息中,这个方案需要对消息格式进行较大修改。

(2)将4-步握手协议从4个消息减少到2个消息对当前已安装的硬件部分改动较多。

(3)当有DoS溢出攻击时,可能会有CPU耗尽情况,因为STA在接收消息1时必须逐条检查加密字段。

2.1 改进方案1——消息1认证机制

虽然增强的2-步握手协议可以有效的防止DoS攻击,但它对现有的协议格式和硬件要求的改动太多。为了克服这些缺点而受到启发,可以设计一种基于消息1认证机制的改进方案,不仅和增强的 2-步握手协议功能相近,而且可以大大减少涉及对当前协议格式和硬件的改动。2-步握手协议将一段新的加密字段取代 MIC字段插入原消息,而这个方案是将认证字段--MIC部分重利用,由于MIC字段在其他三个消息中都能应用,所以能防止未经授权的更改信息1。

由于AP在接收消息2后只能访问SNonce部分,我对TPTK(temporary PTK)值的计算方法做了如下修改:

Temp_PTK = PRF - X (PMK, || Min(AP_ MAC ,STA_ MAC)|| Max(AP_ MAC , STA_ MAC) || ANonce || ANonce), 而 TPTK用于计算消息1的MIC字段。

对协议的修改细节如下:

(1)AP端消息1的生成过程

首先,AP和原始协议一样生成随机数ANonce,之后AP 提取 STA_ MAC值,该值在认证过程前期已被认证服务器传送至AP。最后,AP通过修改的PTK计算公式计算出TPTK的值,并计算出用于消息1认证的MIC。

(2)STA端消息1的接收过程

(2)桥梁伸缩缝设计。由于桥梁的混凝土建筑材料会受温度影响,从而出现收缩情况,影响桥梁的伸缩量。面对这种情况,工程师一般采用对伸缩缝装置进行重新设置来解决问题。为确保这一方法的有效性,就要在设计过程中从桥梁实际长度的基础上出发,对伸缩量进行综合性计算,从而确定伸缩缝具体形式。另外在曲线桥梁的设计中,伸缩量由内外侧的梁长所决定,直线桥通常会小于伸缩量,这就需要综合桥梁的纵向变形和横向变形情况,并与矢量结合在一起进行综合考虑。

当从AP接收到信息1之后,STA必须按照AP端的流程用存储的PMK的值重新计算消息1的MIC字段。如果认证成功,STA继续用接收到的SNonce和其他信息生成PTK。紧接着发出消息3。

图2 消息1认证机制

由于消息1被加密,入侵者无法伪造消息1来进行DoS攻击。而且,只要 DoS溢出攻击不是很严重,该方案是可以有效防止DoS溢出攻击的。

2.2 改进方案2——STA主动保护机制

所有上述提案在DoS溢出攻击下的表现情况都不是很好,因为STA要么要储存太多nonce值,要么要执行MIC值的大量运算,前者能导致内存耗尽,后者能导致 CPU耗尽。为了弥补这种缺陷,我提出了“STA主动保护机制”,具体过程如下:

(1)在接收到具有有效PMKID的消息1之后,STA必须执行以下流程:

①阻止端口再接收任何其他的消息1;

②生成并存储SNonce;

④创建和发送消息2。

(2)在发送消息2之后,STA会开启定时器并希望在定时器到期之前接收到消息3:

①如果在时间结束之前收到消息 3,会继续使用 Message 4作为原始协议。

②否则它会重新打开端口来接收消息1并回到第一步。

(3)如果STA在数次尝试了第一步和第二步之后,依然不能成功进行握手,会终止该AP的认证并重启认证进程。

由于PMKID只存在于合法的消息1中,所以到达STA的第一条消息1一定是来自合法的AP。在收到来自AP的消息1之后,STA会拒绝之后的其他消息1。

如果在传输过程中消息2或者消息3丢失,则STA不能在定时器结束之前接收到消息3,则STA会重启端口接收消息1。而如果有一些极端情况出现,比如由于消息2和消息3在传输过程中丢失导致第一个握手实例失败,或者入侵者发出的消息1导致后续严重的DoS溢出攻击,则STA会主动断开连接和认证并重启认证进程,防止被入侵者劫持。

图3 STA主动保护机制流程图

总之,这种方案能明显抵御DoS攻击,并将DoS溢出攻击降低到一个可接受的较低的程度。

2.3 四种改进方案的比较

基于以上分析,我们得出了四种方案的比较结果:

表1展示了在DoS攻击下四种方案的表现情况,很明显,方案3——消息1认证机制不仅能抵御DoS攻击,还对硬件部分和软件部分的改动都比较少,实用性更强。

表1 在DoS攻击下四种方案的定性评估

表2展示了在DoS溢出攻击下四种方案的表现情况,可以发现,方案4——STA主动保护机制性能要更优异,消耗更少的内存和更少的CPU计算功率。

2.4 小结

由以上分析可知,消息1认证机制和STA主动保护机制通过对四步握手协议认证机制的调整,不改变软件协议,不调整硬件设备,使得抵御DoS攻击和DoS溢出攻击的能力显著提升,实用性较强。

表2 在DoS溢出攻击下四种方案的定性评估

3 结束语

4步握手协议虽然安全性较强,但也只是相对的,由于它本身的设计漏洞,使得握手信息在认证传输过程中易泄露用户信息,当面对DoS攻击时显得无从招架。虽然有人提出一些改进措施,但这些措施涉及对802.11i协议的修改或者需要对硬件作出较大调整,代价较大。本文提出了消息1认证机制和STA主动保护机制,能够提高握手过程中信息传输的安全性,对DoS攻击和DoS溢出攻击具有较强抵御能力,有一定的实用价值。

[1](美)Jim Geier著,王群,李馥娟,叶清扬译.无线局域网[M].北京:人民邮电出版社,2001.

[2]曹秀英.无线局域网安全系统[M].北京:电子工业出版社,2004.

[3]IEEE Standard 802.11i:Institute of Eleetrical and Eleetronies Engineers.Information technology-Telecom mu-nications and information exchange between systems-Local and metropolitan area networks-Sp eeific requirements.Part11:Wireless LAN Medium Access Control(MAC)and Physical layer PHY)s Pecifieations Anlendment 6:Medium Aceess Control(MAC) Security Enhancements.IEEE Standard 802.11i,2004.

[4]T.C.Clancy,Secure handover in enterprise WLAN:CAPWAP,HOKEY,AND IEEE 802.11r,IEEE Wireless Communications 15 (2008).

[5]N.Manivannan,P.Neelameham,Alternative pairwi se key exchange protocols(IEEE 802.11i)in Wireless LANs,Proceedings of International Conference on Wireless and Mobile Communications,ICWMC '06,2006.

[6]钱进.无线局域网技术与应用[M].北京:电子工业出版社,2004.

[7]刘建伟,王育民.网络安全技术与实践[M].北京:清华大学出版社,2005.

[8]Yang Zhe.Advanced wireless network offensiv e& defensive technique[M].Beijing:Publishing House of Electronics Industry,2011.

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

[10]颜炳风.无线局域网的安全机制、漏洞破解以及解决方案[D].上海交通大学,2010.

[11]WANG Xiaojun,LU Jiande.Analysisand improvement against the attack on 4-way handshaking protocol of 802.11i[J].Computer Engineering,2007.

[12]王小军,陆建德.基于 802.11i四次握手协议的攻击分析与改进[J].计算机工程,2007.

猜你喜欢

序列号实例消息
一种离线电子钱包交易的双向容错控制方法
一张图看5G消息
关于《国家税务总局 工业和信息化部关于加强车辆配置序列号管理有关事项的公告》的解读
recALL
消息
消息
消息
完形填空Ⅱ
完形填空Ⅰ
PP助手教你辨别翻新iPhone5小白不再中招