首页 理论教育WEP缺陷分析与防范措施

WEP缺陷分析与防范措施

【摘要】:一些研究人员所做的工作和报告表明,WEP存在安全缺陷。WEP的设计者已经认识到了这些缺陷,并且制定了相应对策来提高WEP的安全性。

一些研究人员所做的工作和报告表明,WEP存在安全缺陷。根据加州大学伯克利分校ISAAC组织(http://www.isaac.cs.berkeley.edu/)发表的研究结果,WEP使用流密码的操作容易受到很多种类型的攻击。

如果密文在发送到接收端的过程中受到攻击,并造成了一些比特位的改变,解密后的明文中相应的比特位也将会发生改变。同样,如果攻击者捕获了两条使用相同密钥流进行加密的密文,并将这两个密文进行异或运算,结果将会变为两个相应明文的异或结果。在获取并收集了这一信息后,攻击者就可以使用统计学的攻击来恢复出明文。加密时某一密码流使用得越频繁并被攻击者截获,攻击者就越容易通过统计学的方法进行攻击获取明文。当攻击者恢复出其中的一个明文时,也可以恢复出其他的明文。

WEP的设计者已经认识到了这些缺陷,并且制定了相应对策来提高WEP的安全性。为了解决传输中数据包的完整性问题,他们在数据包的包头中加入了完整性检查字段。为了避免使用相同的密钥流进行加密,他们使用初始矢量部分来生成不同的加密密钥(见图15-4)。然而,这些方法无法完全解决WEP的安全问题。

978-7-111-34574-9-Part02-109.jpg

图15-4 WEP包格式

以上所提到的完整性校验字段是32bit CRC码的校验和,同时此字段也被加密。然而研究表明,由于CRC-32是线性的,有可能根据获取的消息之间的比特差分来计算两个CRC码之间的比特差分。这就意味着,如果攻击者改变了原始消息中的某一比特,他们也可以通过某种方式计算出CRC码中相应被改变的比特位,使得校验和的结果依然正确。通过使用这种技术,使得WEP创建者们保证消息完整性的努力变成了徒劳。

另一个提高WEP安全性的努力是使用24bit的初始矢量来生成不同的密钥流。然而,研究结果表明,只使用24bit来区分密钥流是不够的,因为这种方式只能生成大约1600万个密钥。在负载较重的网络中,传输1600万个数据包只需要很短的时间。这就意味着,用不了很长时间,网络中就会出现使用相同密钥流加密的两个数据包。这同样会导致前面提到过的统计学攻击。

以下列出的是由加州大学伯克利分校ISAAC组织报告指出的几种攻击(http://www.isaac.cs.berkeley.edu/)。

15.2.2.1 被动攻击解密信息流

在这种攻击中,被动窃听者可以截获所有无线信息流,直到发生初始矢量冲突。通过将使用相同初始矢量的两个数据包进行异或运算,攻击者可以获得两个明文进行异或运算后的结果。异或运算的结果可以用来推测两条消息中的数据内容。

由于IP数据流通常是可预测的,同时包含很多冗余信息,攻击者可以消除消息内容中的很多可能性。对于其中一个或者两个数据包内容的进一步有根据的猜测,可以用于统计学的方法来缩小可能的消息空间。在某些情况下,就有可能得到准确的消息内容。

当仅基于两个消息的上述统计学分析不确定时,攻击者可以寻找更多使用相同初始矢量而产生的冲突。仅仅是所需时间的一小部分,就有可能恢复出一部分使用相同密钥流加密的消息,而统计分析的成功率会快速增长。一旦可能恢复出其中的一条消息的整个明文,其他所有使用相同初始矢量加密的消息明文就都能直接得到,这是因为所有成对的异或值已知。

这种攻击的一种扩展形式是利用因特网上的处于无线网络之外的某一主机,向无线网络内的某一主机发送数据流。这些数据流的内容对于攻击者来说是已知的,产生已知明文。当攻击者截取了他通过IEEE 802.11发送的加密消息之后,他就可以对所有使用相同初始矢量的数据包进行解密。

15.2.2.2 主动攻击注入数据流

假设攻击者知道某个已经加密消息的确切明文。基于RC4(x)⊕xy=RC4(y)这样一个性质,这里xy是两个相互独立的比特流,攻击者可能使用这一知识加密其他数据包。这一过程包括构造一个新的消息,计算CRC-32码以及为了将明文转换为新消息而进行的对原始加密消息的逐比特转换。这个数据包就可以被发送到接入点或者移动基站,并且将作为合法数据包而被接受。

对这种攻击的一个小小的改动将使得这种攻击更加危险。即使没有获得对数据包的完整知识,有可能对消息中所选择的比特进行翻转并且成功地调整加密的CRC码,得到对被修改过的数据包依然正确的加密形式。如果攻击者拥有数据包内容的部分信息,他就可以截取数据包,并对其进行选择性地修改。例如,有可能修改发送到远程登录会话或者与文件服务器交互的shell指令。

15.2.2.3 来自通信两端的主动攻击

前面提到的攻击可以进一步扩展用于破解任意的信息流。在这种情况下,攻击者对数据包头进行猜测,而不猜测数据包的内容。这一信息通常很容易获取或者猜测;特别地,所有必须猜测的对象是目的IP地址。知道了这一知识,攻击者可以适当地转换某几位比特值来改变目的IP地址,使数据包被送到攻击者所控制的机器,并通过流氓移动基站传送这个数据包。大多数的无线装置具有因特网连通性,数据包将会被接入点成功解密,并在非加密的状态下通过适当的网关和路由器转发到攻击者的机器中,攻击者将直接得到明文。如果可以猜测TCP数据包的包头内容,攻击者甚至可以将TCP数据包的目的端口改为80端口,这将使得数据包可以直接通过大多数防火墙

15.2.2.4 基于表的攻击

初始矢量空间允许攻击者建立一个译码表。一旦攻击者得到了某些数据包的明文,他就可以计算通过初始矢量生成的RC4密钥流。这一密钥流就可以用于解密其他所有使用相同初始矢量的数据包。久而久之,也许通过使用以上的技术,攻击者就可以构造出一张初始矢量表以及与其相对应的密钥流表。这张表所需要的存储空间不大(15 GB);一旦表建成,攻击者就可以解密所有经由无线链路传输的数据包。

15.2.2.5 监控

不管解码一个2.4GHz数字信号的难度,攻击者可以很轻易地从消费者支持IEEE 802.11的硬件产品中监听IEEE 802.11协议的传输。这些产品可以实现所有的必要监控功能,而给攻击者留下的问题是确信这些产品为他们工作。虽然支持IEEE 802.11标准的设备在设计时忽略了不知道密钥的加密内容,但是攻击者却能够通过改变硬件驱动的配置,成功地截获加密的WEP传输信息。他们就可以成功地迷惑计算机固件(Firmware),这样带有无法识别数据包的密文将被送回给他们进行进一步的检查和分析。

主动攻击(需要传输信息而不只是监控)看似更难实现,但是并非不可能实现。很多支持IEEE 802.11协议的产品使用可编程的固件,这些固件可以被逆向工程或修改来用于为攻击者提供注入信息流的能力。的确,这类逆向工程是值得花时间进行的工作,但是,需要强调的是,这种行为是一种一次性投入。一群有能力的人可以投入努力,然后在秘密的圈子里分发这种流氓固件,或者将它卖给感兴趣的企业间谍。后者是一项高利润的买卖,因此时间上的投入很容易得到回报。