弱点:初始向量(IV,Initialization Vector)
40或64位编码可以填入4组键值;然而我们只使用了第一组。
WEP编码的弱点在于IV实作的基础过于薄弱。例如说,如果黑客将两个使用同样IV的封包记录起来,再施以互斥运算,就可以得到IV的值,然后算出RC4的值,最后得到整组数据。
如果我们使用的初始向量为24位,那我们就可以在繁忙的网络点上(例如以11Mbps的频宽,不断传送1500字节的封包),以不到5小时的时间算出结果。以这样的例子来说,总数据量为24GB。因此,要在几小时的时间内,记录所有传输的封包,并以笔记本计算机算出其结果,是绝对可行的事情。
由于该标准并没有规定IV所产生的相关事宜,所以并不是每家厂商都用到IV的24个位,并在短时间内就重复用到相同的IV,好让整个程序快一点。所以黑客所要记录的封包就更少了。以Lucent(朗讯)的无线网卡来说,每次激活时它就会将IV的初始值设为0,然后再往上递增。黑客只要记录无线网络上几个用户的数据内容,马上就可以找到使用同样IV的封包。
Fluhrer、Martin、Shamir三人也发现,设计不良的IV有可能会泄漏键值的内容(信心水准为5%),所以说只要记录400~600万个封包(顶多8.5 GB的数据量),就有可能以IV来算出所有的WEP键值。
更进一步探讨,如果WEP键值的组合不是从16进位表,而是从ASCII表而来,那么因为可用的字符数变少,组合也会变少。那么被黑客猜中的机率就会大增,只要一两百万个封包,就可以决定WEP的值。
网络上可找到的入侵工具
Adam Stubblefield在其论文中详尽的描述了整个过程,却仅限于理论;但现在网络上四处可见这些免费的入侵工具程序。与Stubblefield所提的类似,所有程序支持的几乎清一色是Prism-2芯片。使用这芯片的包括了Compaq(康柏)WL100、友讯(D-Link)DWL-650、Linksys WPC11、以及SMC 2632W等,都是市面上常见的产品。会选用这芯片的原因是因为其Linux驱动程序(WLAN-NG)不需要登入网络,即可监听封包。这程序会先搜寻设计不良、有漏洞的IV,然后记录500~1,000万不等的封包,最后在?那间将WEP键值算出来。
黑客可以采取主动式攻击
由于以上所说的被动式攻击(单纯的纪录封包)十分可靠、有效,所以主动式攻击反而失去了其重要性。不过毫无疑问的,黑客也可以主动的侵入网络,窃取数据。我们假设黑客知道了原始数据及加密后的数据,收讯方会将这些信息视为正确无误。接下来黑客就可以在不需要知道键值的情形下,将数据偷天换日,而收讯方仍然会将这些数据当成正确的结果