黄光裕 企业家爱问:如何在一分钟内 干掉WiFi WPA

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 11:21:38
如何在一分钟内干掉WiFi WPA作者:Toshihiro Ohigashi,广岛大学Masakatu Morii,神户大学编译:邹铮审校:挨踢李@IT专家网IT 专家网安全子站——www. security.ctocio.com.cnIT 专家网版权所有,转载请注明出处及作者! 2 / 111导言WPA(无线网络保护Wi-Fi Protected Access)/TKIP(临时密钥完整性协议Temporal Key Integrity Protocol)是专为保护无线局域网络通信机密性和完整性的安全协议。WPA的出现旨在弥补WEP(有线对等加密协议)存在的缺陷,WEP一直是用于很多无线LAN产品的安全保护协议。WPA主要使用两种形式的密钥,包括64位信息完整性检查(MIC)密钥和128位加密密钥。前者主要用于检查伪造/虚假信息,而后者主要用于加密和解密数据包。这些密钥都是从共有的主密钥(master key)中生成的。很多安全研究人员一直都在潜心研究WPA的安全性,Moskowitz就发现了WPA中抵御字典攻击的弱点,不过他可以通过绕开这个弱点来从任意长度的字符组中生成主密钥。多数其他分析师都对WPA的组件进行了分析,而这些对于WPA都不能构成威胁。在2008年的时候,Beck和Tews对那些支持IEEE802.11e QoS功能的WPA部署发动了实质性的攻击,他们的攻击(被称为Beck-Tews攻击)可以从加密的小数据包中(如APR数据包和DNS数据包)中修复MIC密钥和纯文本,并且使用修复的MIC密钥对其加密数据包进行伪造。这种攻击的执行时间大约是12到15分钟。由于Beck-Tews攻击是一种基于应答式攻击的方法,攻击目标必须支持IEEE802.11e QoS功能。因此,他们的成果也是有限的。在本文中,我们将提出一种针对任何WPA部署的根本性的攻击。首先,为了突破攻击目标无线LAN产品的限制,我们采用Beck-Tews攻击用于中间人攻击(MITM)。配合中间人攻击的Beck-Tews攻击并不需要目标能够支持IEEE802.11e QoS功能,这意味着我们的攻击可以攻击任何类型的WPA部署。另外,我们将探讨如何对无线局域网络实施有效的MITM攻击。在MITM攻击中,用户的通信被攻击者拦截,直到攻击结束才会解除拦截状态,这意味着当攻击时间比较长时用户可能检查到我们的攻击。因此,第三个,我们提供了几种缩短攻击执行时间的方法,正如标题所说,我们最终可以实现一分钟内干掉WPA。2 无线网络保护WPA在WPA中,主密钥是在访问接入点和客户端间共享的,主密钥会生成两种类型的密码,64位的MIC密钥K_和128位的密钥K。64位的MIC是从一个MIC密钥和数据中生成的,该密钥主要用于检测伪造/虚假信息,加密密钥用于加密解密数据包。2.1 发送器的过程发送者通过使用Micheal来计算(来自MIC密钥和MSDU的)MIC,该MIC被添加到MSDU,如下所示:IT 专家网安全子站——www. security.ctocio.com.cnIT 专家网版权所有,转载请注明出处及作者! 3 / 11MSDUjjmicheal(K_;MSDU); (1)其中micheal(K_;MSDU)是64位MIC,而jj是连接,附有MIC的MSDU被分割到MAC Protocol Date Units (MPDUs)中,通过使用CRC32从每个MPDU中计算出一个32位的校验和,并添加到MPDU,如下所示:MPDUjjCRC32(MPDU); (2)其中CRC32(MPDU)是32位的校验和(checksum),对每个附有校验和的MPDU执行WPA的加密。数据包密钥PK是从48位的IV中生成的,这是通过使用WPA hash()的专门hash功能key K和MAC地址。每个MPDU的IV都是不同的,当新的IV生成时IV的值都会增加。图1.WPA中发送器的过程在WPA中,IV也被称为TKIP序列计数器(TSC)。WPA使用了流密码RC4来作为加密算法,RC4从数据包密钥和IV中生成一组伪随机序列(成为密钥流)Z = (Z1;Z2; : : : ;ZL),其中Zi是字节变量,而L是纯文本的长度。密钥流是使用纯文本P = (P1; P2; : : : ; PL)进行XOR运算过的以获取密码文本C = (C1;C2; : : : ;CL),如下所示:Ci = Pi _ Zi (i = 1; 2; : : : ;L); (3)其中 Ci和Pi是字节变量,那么对WPA的加密可以写为:IT 专家网安全子站——www. security.ctocio.com.cnIT 专家网版权所有,转载请注明出处及作者! 4 / 11C = (MPDUjjCRC32(MPDU)) _ RC4(PK; IV ): (4)加密的MPDU和IV将被发送给发送器。2.2 接收器的过程接收器接受加密的MPDU和IV,IV将与TSC计数器(与最常接收的加密MPDU对应的IV的值)进行比较。如果接收器IV小于或者等于TSC计数器,接收到的加密MPDU将被丢弃。在WPA的解密过程中,接收器会从接收的IV和数据包密钥PK中生成密钥流ˆ Z。密钥流ˆ Z是与发送器Z相同的,通过使用ˆ Z = Z来获取纯文本,如下所示:Pi = Pi _ Zi _ Zi = Ci _ Zi (i = 1; 2; : : : ;L):然后,WPA的解密写法如下:(MPDUjjCRC32(MPDU)) = C _ RC4(PK; IV ):接收器从接收的MPDU中计算出校验和,然后校验和将与接收的校验和进行比较。如果这些校验和不相同,接收的MPDU将会被弃用。请注意,接收器并不能够向发送器发送关于校验和错误的信息。当所有的MPDU被获取后,这些将被重新集合到MSDU中。接收器从接收的MSDU和MIC密钥中使用Micheal来计算MIC,然后这个MIC与接收的MIC进行比较。如果这些MIC不相同,所有接收的与MSDU相对应的MPDU都会被禁用,并且接收器向发送器发送IT 专家网安全子站——www. security.ctocio.com.cnIT 专家网版权所有,转载请注明出处及作者! 5 / 11MIC的错误信息(MIC失败报告)。在WPA中,如果一分钟内发送给发送器两次以上的MIC报错信息的话,MIC密钥将会被改变。当MSDU被接受后,TSC计算器将会更新到与所有MPDU相对应的IV的最大值。3 Beck-Tews攻击Beck-Tews这种攻击方法利用了对WEP的chopchop攻击对WPA进行攻击,这种攻击从加密的小数据包中恢复MIC密钥和纯文本,并且伪造其数据包。3.1对WEP的Chopchop攻击对WEP的chopchop攻击的目的在于从特定的密码文本中获取纯文本的信息,请注意这种攻击不能获取WEP的加密密钥。WEP与WPA主要有以下不同:1. IV的值没有进行检查2.没有添加MIC的过程3. 发送器向接收器发送关于校验和的错误信息从之前接受的加密数据包中生成的虚假加密数据包并不会被禁用,因为IV的值没有进行检查。对信息的整体性检查只能由校验和来执行,而如果校验和不正确的话,接收器就会向发送器发送校验和的错误信息。Chopchop攻击集中在CRC32的属性上,P是附有校验和的MPDU,而R成为P的最不重要的字数(LSB),也就是说R是校验和的LSB。另外,P0是消减1字节的P,即满足P0jjR = P。P0极有可能有不正确的校验和。在CRC32中,我们可以修改P0的校验和,通过使用f(R)对P0进行XOR处理将P0的校验和修改为正确,其中f()是1对1的字节排列。如果使用f(R)对P0的校验和进行XOR,修改的校验和就是错误的,其中R_是除R(正确的)字节变量。这意味着正确的R可以通过检查已修改的P0的校验和的错误信息,从R的256个候选值中判断出来。假设攻击者想要知道R,那么攻击者就会为每个R的候选值制造修改的P0,并且将其发送给访问端点或者客户端。如果被猜测的R是正确的,那么修改的P0校验和的错误信息就不会被发送给攻击者。在最多猜测256次(平均128次)后,攻击者猜测出R的正确值。上述的操作也可以在加密数据包中进行,因为XOR操作对纯文本的修改很容易在流加密的加密中执行。当chopchop攻击执行时,攻击者可以从密码文本获取P的LSB,也就是R。然后,IT 专家网安全子站——www. security.ctocio.com.cnIT 专家网版权所有,转载请注明出处及作者! 6 / 11我们同样可以获取C0,也就是消减一个字节的C,并且有正确的校验和。当攻击者为C0执行chopchop攻击时,将会从较低的P获取第二个字节。与刚才有些类似的是,可以通过执行x次chopchop攻击来获取低价位x字节的P。另外,攻击者可以获取与获取的P信息的密码流字节。3.2对WPA的chopchop攻击在WPA中,从之前接受的加密数据包中生成的虚假加密数据包会被禁用,因为IV的值进行了检查。Beck和Tews已经证明了chopchop攻击可以在那些支持IEEE802.11e QoS功能的WPA部署中执行,IEEE802.11e QoS功能允许每种不同的数据流有8个不同的渠道,每种渠道有各自的TSC计数器。假设攻击者获取了渠道0并且IV=15的加密数据包,那么攻击者不能在渠道0执行chopchop攻击,因为渠道0的TSC计数器已经被更新到15.但是,如果该渠道的TSC计数器小于15,攻击者就可以在其他渠道执行chopchop攻击。当MIC的错误信息被发送时,所有MPDU的校验和都是正确的,因此,对WPA的chopchop攻击检查了猜测R的正确性(通过使用MIC错误信息)。然而,执行这种攻击是很困难的,因为MPDU的数量很庞大,于是,Beck和Tews集中在小数据包上(例如ARP数据包和DNS数据包)。这些数据包不会导致破裂,而MPDU是数据包头/数据、MIC以及校验和的结合。当攻击者执行chopchop攻击x次后,攻击的执行时间至少是x-1分钟,因为如果在一分钟内向发送器发送两次以上MIC错误信息的话,IT 专家网安全子站——www. security.ctocio.com.cnIT 专家网版权所有,转载请注明出处及作者! 7 / 11MIC密钥就会更改。我们把这个事件成为MIC错误等待时间。3.3 攻击情况和执行时间我们描述一下Beck-Tews攻击,Beck-Tews攻击的目的不仅仅是获取纯文本,而且还要恢复MIC密钥并且伪造其数据包。Beck和Tews集中在ARP请求/响应来作为攻击目标,他们讨论的攻击方式是,假设ARP数据包的字节是固定的或者已知的值,除了源和目的IP地址的最后字节。也就是说,ARP数据包的未知字节数量为2.我们在本文中将采用相同的假设。首先Beck-Tews攻击从加密ARP数据包恢复了一个纯文本。纯文本的未知字节数量为14字节,也就是包括ARP数据包的2字节,MIC的8字节以及校验和的4字节。攻击者通过执行12次chopchop攻击来恢复MIC以及校验和,这个过程要求至少11分钟的MIC错误等待时间。ARP数据包的未知字节可以在没有chopchop攻击的情况下被恢复,而ARP数据包的未知字节的候选字节数量是216,攻击者可以为该ARP数据包制造216个候选字节。对于ARP数据包的每个候选字节,校验和都是使用MIC进行计算的。攻击者讲计算出来的校验和与从chopchop攻击中恢复的校验和进行比较。如果这些校验和不是相同的,ARP数据包的候选字节就会移除。通过这个过程,最终ARP数据包的候选字节缩减为1,这样就能从加密ARP数据包中恢复所有的纯文本信息。另外,与纯文本想对应的密码流也会被修复。其次,Beck-Tews攻击能够伪造加密ARP数据包。要伪造数据包,攻击者需要获取MIX密钥。由于Micheal是一个可逆函数,MIC密钥可以很容易从ARP数据包以及MIC中恢复。攻击者制造一个虚假的ARP数据包,并使用恢复的MIC密钥以及伪造ARP数据包来计算MIC。然后,可以从伪造ARP数据包以及MIC中计算出校验和。最后,攻击者可以使用Beck-Tews攻击恢复的密钥流来制造伪造的加密ARP数据包。Beck-Tews攻击的执行时间为12-15分钟,Beck-Tews攻击的大部分执行时间都是MIC错误等待时间。Beck和Tews也实现了在获取MIC密钥的情况下进行攻击,然后MIC可以使用MIC密钥从ARP数据包中计算出来。攻击者只需要执行4次chopchop攻击就可以恢复校验和,这个过程至少需要3分钟的MIC错误等待时间。攻击者制造ARP的216个候选字节,并且可以使用每个候选中的MIC密钥来计算MIC。对于ARP数据包的每个候选,校验和都可以使用MIC被计算出来。攻击者讲计算出来的校验和与从chopchop攻击中恢复的校验和进行比较。与不需要MIC密钥的Beck-Tews攻击方式类似,纯文本的所有信息都可以从加密ARP数据包中恢复,并能制造加密的伪造ARP数据包。该攻击的执行时间大约需要4分钟。IT 专家网安全子站——www. security.ctocio.com.cnIT 专家网版权所有,转载请注明出处及作者! 8 / 114 我们的攻击Beck-Tews攻击不能够攻击那些不支持IEEE802.11e QoS功能的WPA部署,现在我们将探讨的是如何对所有类型的WPA部署进行实质性的信息伪造攻击。首先,我们将采用Beck- Tews攻击来进行中间人攻击以实现攻击任何类型WPA部署的目的,然后,我们将研究如何缩短攻击执行时间的方法。4.1 中间人攻击在WPA上执行chopchop攻击的条件是,获取IV比使用的TSC计数器大的加密数据包。而满足这个条件的环境就是IEEE802.11e QoS功能,但是这样就减少了攻击目标的范围。因此,我们采用基于中间人攻击的方法来解决这个问题。在中间人攻击中,攻击者将拦截访问点或者客户端的加密数据包。另外,攻击者会伪造加密数据包,并将其发送给接收器,也就是客户端/访问接入点。该攻击可以获取IV比(在截获的数据包还没有到达接收器前使用的)TSC计数器要大的加密数据包。因此,chopchop攻击可以通过中间人攻击来执行。图四展示的是在无线局域网络中实现MITM攻击的方法,由于访问接入点与客户端之间的间隔很大,这两者不能够直接通信。攻击者作为中继器,即所有包含SSID的数据包都会在没有修改的情况下重新传递到接收器中,并且访问接入点/客户端的数据包传递给客户IT 专家网安全子站——www. security.ctocio.com.cnIT 专家网版权所有,转载请注明出处及作者! 9 / 11端/访问接入点。如果攻击者想要伪造加密数据包,攻击者需要传递伪造的数据包。这种方法很难被用户发现。我们在图5中提供了一种更为有效的MITM攻击模式。在这种模式中,攻击者使用定向天线来发送数据包。由于攻击者的数据包不能到达发送器,攻击者不是那么容易能够被发送器察觉。4.2 策略在MITM攻击中,用户的通信被攻击者截获,直到chopchop攻击结束为止。假设攻击者使用加密数据包(IV = x)来执行chopchop攻击。如果加密数据包(IV=x+1)被传递给接收器,那么使用加密数据包(IV=x)实施的chopchop攻击就会失效,因为TSC计数器已经更新至x+1。为了减少通信停止的影响,我们采用了三种以下的方式进行攻击:中继器模式(Repeater mode):攻击者将所有包含SSID信标的数据包(未做修改)传递给接收器,并且访问接入点/客户端的数据包传递给客户端/访问接入点。MIC密钥恢复模式:这种模式的目的在于获取MIC密钥。MIC和校验和可以通过基于MITM攻击的chopchop来恢复,并且MIC密钥也随之被恢复。这种模式的执行时间大约为12-15分钟。信息伪造模式:这种模式的目的在于使用MIC密钥伪造加密数据包。当目标是ARP数据包时,这种方法的执行时间为4分钟(3.3提到过),我们将在4.3中讨论如何减少这种模式执行时间的方法。当攻击者不能执行chopchop攻击,攻击者就会执行中继器模式。在这种模式中,通信的中断并不会发生。当通信中断的影响很小时,MIC密钥恢复模式就会被执行,例如无线局域网络的大部分数据包都是ARP数据包。当重要的数据包(例如交互应用程序的数据包等)通过MIC密钥恢复模式的方式被发送,这种模式就会被中断,攻击者就会执行中继器模式。当MIC密钥通过MIC密钥恢复模式恢复后,信息伪造模式就会执行,来在短时间内伪造加密数据包。4.3 缩短攻击执行时间使用这三种攻击模式,攻击造成通信中断的时间最好减少到4分钟。在本节中,我们将讨论如何为信息伪造模式的通信中断时间缩短。IT 专家网安全子站——www. security.ctocio.com.cnIT 专家网版权所有,转载请注明出处及作者! 10 / 11首先,我们集中在从MIC密钥恢复模式恢复的信息上。当MIC密钥恢复模式攻击成功后,攻击者可以知道访问接入点的IP地址。一般来说,访问接入点的IP地址是固定的,那么ARP数据包的未知字节缩减为1字节。其次,我们将提供缩短MIC错误等待时间的执行时间。Beck-Tews攻击能够恢复所有校验和的4字节,并且校验和将会与从ARP数据包候选字节中计算出来的校验和进行比较。比较这些校验和的4字节能够有效提高攻击的成功率,但是MIC错误等待时间至少需要3分钟。因此,我们采用的方法只是对校验和的部分进行比较以缩短MIC错误等待时间。在我们的攻击中,我们通过chopchop攻击只是恢复了校验和的部分字节。这个过程并不需要MIC错误等待时间。因此,我们的信息伪造攻击模式的执行时间就比Beck-Tews攻击的时间少了3分钟,也就是说我们的攻击执行时间只需要1分钟。我们还对我们的攻击成功率进行了评估。在我们的信息伪造攻击模式,ARP数据包的未知字节候选字节数量为28,而攻击者会做ARP数据包的28个候选字节。对于ARP数据包的每个候选,校验和都能够使用MIC计算出来。攻击者会将计算出来的校验和的最后字节与从chopchop攻击恢复的校验和的最后字节进行比较,假设ARP数据包的候选计算出来的8字节MIC与MIC密钥是统一分布的变量,那么这些校验和的最后字节不相同的可能性就是(28 - 1)/28。当所有的28 – 1个不争气的候选都被判断出来,我们的攻击就成功了。IT 专家网安全子站——www. security.ctocio.com.cnIT 专家网版权所有,转载请注明出处及作者! 11 / 11ARP数据包的28-1个不正确的候选字节的所有校验和不相同的可能几率如下:因此约37%的加密ARP数据包都能够在1分钟内通过我们的攻击被恢复。请注意,从我们的攻击中恢复的加密ARP数据包是可以区分的。5 结语本文提出了一种对所有WPA部署进行攻击的实质性信息伪造攻击方法。我们的攻击是将Beck-Tews应用到MITM攻击中,并且能够伪造加密小数据包(如ARP数据包)。我们提出了MITM攻击的策略以及减少攻击执行时间的方法。最终,我们的攻击执行时间最少只需要1分钟,并且我们的攻击可以在所有WPA部署中实施。接下来的工作将会是对我们的这种攻击进行实验以及对攻击执行时间进行更详细的评估(完)。注,本话题在IT专家网的讨论帖地址:http://bbs.ctocio.com.cn/viewthread.php?tid=7888523&extra=2009年9月2日星期三lisj@staff.chinabyte.com