读书频道 > 网站 > 网页设计 > 黑客大曝光:无线网络安全(原书第2版)
3.5 针对WEP的密钥流恢复攻击
12-08-19    叶孤城
收藏    我要投稿   
随着无线技术及其应用的发展,无线网络的安全越来越受到人们的关注。《黑客大曝光:无线网络安全(原书第2版)》通过详尽的案例分析,深入展现802.11无线网络、802.11无线网络客户端、蓝牙、zigbee和dect等的安全威...立即去当当网订购
下面两个针对WEP的攻击是用来为给定的初始化向量恢复密钥流。虽然恢复一个单独的密钥流看起来可能不会像恢复密钥一样有用,但是这些攻击可在一个平静的网络上,非常有效地产生数据通信流,最终导致恢复密钥。
 
WEP的工作原理是使用RC4生成随机字节流。生成随机字节,然后与明文数据包进行“异或”(XOR)操作,结果被称为密文。随机字节生成之前,RC4必须与一个私有密钥进行初始化。如果两个用户都使用相同的私有密钥,那么他们会产生相同的随机字节。收到消息的用户可以和随机字节“异或”操作,并生成加密的消息和重新创建原始值。图3-3的上半部分显示了如何将对包含“hi bob!”的数据包使用WEP进行加密。
 
让我们想象一下,如果攻击者知道由单一的明文组成的数据包在加密前的明文内容,将会发生什么。一旦她看到传输中的加密数据包,她就可能用明文与观察到的密文进行“异或”操作,并因此获取密钥流。这部分显示在图3-3的下半部分。
 
 
图3-3 WEP加密的例子
假设数据包为100字节,那么攻击者最少需要读取相同的初始化向量的加密数据包的前100个字节。假定有224个初始化向量,但这不是一个决定性的因素。更麻烦的是,攻击者现在可以注入100字节数据包或更少以便使用这个初始化向量。
 
既然知道了密钥流被破解后的潜在用途,让我们看看帮助攻击者检索密钥流的两种攻击。第一种攻击是碎片攻击,它允许攻击者在几秒钟内将已知明文的几个字节转换成1500字节的密钥流。另一种攻击是ChopChop攻击,它更进一步,它允许攻击者从一个完全未知的数据包中同时恢复明文和密钥流。虽然ChopChop攻击更强大(因为它不依赖于任何已知明文),但其速度很慢,平均要运行时间为数分钟。
 
碎片攻击
 
流行性5
 
难易度5
 
影响力8
 
危险级6
 
2005年,Sorbo(Andrea Bittau)发表了一篇论文讲述了他称为碎片攻击的攻击方式。在论文中,他介绍了可以在几秒钟内将一些密钥流的字节转换成1500字节的密钥流多个优化算法(1500字节长度是以太网上的最大传输单元(Maximum Transmission Unit,MTU),这样做是为了在802.11中生成最大的典型数据包)。碎片攻击最终被并入Aircrack-ng代码库中。
 
碎片攻击可以通过在每一轮中使用一个高达16的因子用来加倍攻击者的密钥流数量。并且可以反复使用。允许三个已知的密钥流字节增加到1500个,并在三次迭代以后,使其呈现指数级增长。最常见的初始密钥流的源是SNAP头。SNAP头是802.11数据包(加密或以其他方式)中的第一层封装域,只有少数值可以使用。实事求是地讲,SNAP头的前3字节总是0xAA、0xAA和0x03。这3字节可以用来获得密钥流的3字节,这对于让碎片攻击开始工作已足够了。
 
下面是攻击的基本步骤:
 
1) 首先,等待要发送的数据包。即使没有连接客户端的AP,也会产生几个数据包。
 
2) 将一个SNAP头的前3字节(0xAA、0xAA、0x03)与捕获的数据包的前3字节进行“异或”操作。你现在就有了密钥流的3字节。
 
3) 下一步,加工广播ARP数据包(总共36字节的有效载荷)。分成12个3字节一组的碎片数据包,利用上一步中所观察到的初始化向量和密钥流加密和传输这些碎片数据包。每个碎片可以重复使用密钥流的相同3字节。
 
4) 一旦完成传送碎片,就查找一个36字节的数据包,该数据包由带有设置FromDS位和源地址的AP数据包传送。这是从AP转发的ARP数据包。因为你加工的数据包放在首位,所以你知道整个36字节的明文。将加密的数据包与明文数据包进行“异或”操作,你就可以恢复密钥流的36字节。
 
5) 接下来,加工超长的ARP数据包,长度达384字节(可以用NULL填充ARP包)。将这个数据包作为12个32字节的碎片发送,利用在上一步中恢复的初始化向量和密钥流。等待AP转发;你现在有了密钥流的384字节。
 
6) 最后,加工一个1500字节的ARP(再次,用NULL填充)。作为5个300字节的碎片传送。当数据包被AP转发时,从数据包中恢复密钥流。现在,你已经在数秒钟恢复了全部1500字节的密钥流。
 
此时,你已经在一个名为fragmentxxxx-yyyy.xor(xxxx和yyyy只是当前的时间戳)的文件中保存了初始化向量和密钥流。正如你在前面所看到的,你可以利用这个伪造分组的密钥流和aireplay产生大量的通信数据包。
 
ChopChop攻击
 
流行性4
 
难易度4
 
影响力7
 
危险级5
 
ChopChop攻击方式通过系统地一次修改加密数据包的一个字节进行工作,并重放到AP,同时监控AP是否接收这些修改后的数据包,ChopChop可以在不考虑密钥或密钥大小的前提下,慢慢破解WEP所保护的数据包。它是通过下列方式实现的:
 
1) 首先,等待要发送的数据包。即使是没有连接客户端的AP,也将会产生几个数据包。
 
2) 从数据包中删除最后一个字节;在假设删除字节的值为0的前提下重新计算校验和。将它重新传送给一个多播地址。看看AP是否会转发这个数据包。
 
3) 如果你看到AP转发了这个数据包,那么说明校验和是正确的,并因此可知上一步猜测的明文值是正确的。你只是破解了明文中的一个字节和密钥流中的一个字节。
 
4) 如果AP没有转发这个数据包,这就说明上一步所猜测的明文值不正确。将所猜测的值加1,继续上述步骤,直到猜的值正确为止(一个字节最多需要进行256次)。
 
5) 按上述办法重复对数据包的每个字节依次进行猜测,直到按你的方式开始工作为止。
 
上述步骤结束时,你将同时破解数据包中的明文和密钥流。数据包中的明文保存在一个名为replay_dec-xxxx-yyyyyy.cap的文件中,密钥流保存在一个名为replay_dec-xxxx-yyyyyy.xor的文件中。
 
如果一个ChopChop攻击在执行中看上去像是被中断了,可以试着不断运行aireplay中的认证欺骗。
 
F.ex aireplay-ng --fakeauth 10
防御密钥流恢复攻击
 
防御这些攻击的最好技术是使用带CCMP(不是TKIP)的WPA2方法。正如你将在第4章中看到的,TKIP对受害者进行基于ChopChop的高级攻击。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站