802.11之WEP

来源:互联网 发布:为什么凌晨五点醒 知乎 编辑:程序博客网 时间:2024/06/14 17:29

1、相关背景

    WEP是一种可选的链路层安全机制,用来提供访问控制、数据加密和安全性检验等。其使用了RC4加密算法进行加解密,CRC进行校验。但随着技术的进步,WEP协议的缺陷逐渐暴露,出现了多种针对该协议的分析方法,FMS是重要的攻击方法之一。

    起初,WEP标准被视为无线安全的解决方案。不过在802.11问世的前4年(1997年问世),研究人员发现WEP并不安全。但因为有时某些特殊的设备只支持WEP,且WEP设计相当容易实现,加密协议简单,不要求强大的计算能力。一些老的设备,特别是手持应用方面的设备,因其缺乏足够的处理能力,WEP就成为其最佳选择了。此外,TKIP用到了WEP的帧处理操作,因此了解WEP十分重要。

    WEP采用RC4加密算法,RC4密码属于对称性流密码(stream cipher)。流密码会用到称为密钥流(key stream)的位流。密钥流随后与信息结合,产生密文(cipher text)。接收端会以相同的密钥流处理密文,从而还原原始信息。RC4会利用异或(exclusive or,XOR)运算结合密钥流和密文。

    流密码通常的运作方式:先选一把较短的密钥,将之展开为与信息等长的伪随机数密钥流。伪随机数生成器(pseudo random number generator,PRNG)是一组用来将密钥展开为密钥流的规则。为了还原数据,双方必须拥有相同的秘钥(secret key),并且使用相同的算法将密钥展开为伪随机数序列。由此可见,流密码的安全性完全取决于密钥流的随机程度,因此如何将密钥展开为密钥流在设计上极为重要。

2、流密码的安全性

    一个完全随机的密钥流通常称为一次性密码本(one-time pad),它是经过数学证明的目前已知的唯一可以防范任何攻击的加密方式。一次性密码本所具备的完全随机性以及绝对安全性虽然吸引人,但考虑到实际的困难及产生与传递解密文件的成本,若非要求绝对安全的信息实际上它并不值得采用。流密码使用密钥流的随机程度虽较低,但已足以应付绝大多数的应用。

3、WEP的加密操作

    通信安全有三个主要目的:

1)机密性:保护数据不受未授权的第三者拦截;

2)完整性:确保数据没有被修改;

3)真实性:所有安全策略的基础。

    WEP本身提供了一些不太强健的机制用于实现上述目的:帧主体机密机制-->提供机密性,完整性校验序列-->在传送中保护数据。WEP在这些领域中还用所欠缺,它还需一些额外的补强措施。

4、WEP的数据处理

WEP的帧格式:

+-------------------------------------------------------------------------------+

|  Frame header  |  WEP header(4B)  |  Frame body  |  ICV(4B)  |  FCS  |

+-------------------------------------------------------------------------------+

其中:

Frame header为802.11 MAC帧头。

WEP header依次包括3个字节的IV、6bits的Pad和2bits的Key ID(WEP允许同时存储4中密钥)。6个填充位必须为0。使用默认密钥时,Key ID字段可用来识别加密帧默认密钥。如果选择使用密钥映射关系,则Key ID字段的值为0。

IV是随机产生的数据,由于在加解密过程中使用固定的密钥容易遭受破解,因此加入了一个24bits长度的初始向量,借此打乱加密密钥的组合。密钥可以保持不变而IV定期改变,但是24bit长度的IV会造成加密用的密钥有重复使用的机会。IV可以对每个数据单元使用不同的值,因为它会同信息一同传送到接收方,而接收方可以根据收到的IV和自己的密钥能够解出任何密文。IV应该以明文的形式传送,因为它必须能被接收方识别以完成解密工作,而且IV不会给攻击者提供任何有关密钥的信息。

Frame body主要为需要保护的有效载荷,这些数据来自上层协议堆栈。

ICV(完整性校验值)是在加密之前帧通过完整性校验算法产生的散列值,用于提供完整性检查,被RC4保护,不会被攻击者随意拉出去枪毙几回。FCS(帧校验序列)用于保护加密过的数据。

WEP帧的加密与解密:

    WEP密钥(WEP seed)分为两部分:IV和secret key。为避免出现使用相同密钥流进行加密的情况,传送帧的工作站会将IV附加在密钥之前。802.11并未限制选取IV时使用何种算法,如何选择IV非常重要,选得不好就肯能危及密钥。整个帧的加密过程通常通过网卡上的RC4专用电路协助完成。

    解密过程与加密恰好相反。首先是验证FCS,确保所接收到的帧未在传送过程中损毁。解读帧的受保护部分时,接收端会使用密钥,加上IV,然后产生密钥流。得到解密过的数据后,还需验证ICV,若ICV验证无误,就根据SNAP(子网访问协议)标头所记载的内容,将封包交给适当的上层协议。

5、WEP的密钥

WEP密钥的长度:

    因为RC4并未要求使用特定长度的密钥,所以理论上WEP可搭配任意长度的密钥。しかし,大多数的产品只支持一种或两种长度的密钥。唯一出现在标准中的密钥长度是64位的WEP seed,其中40位是两个工作站进行传送的共享秘钥(密钥=IV+秘钥)。

WEP密钥的类型:

    1)映射密钥:用于保护流动于特定来源和接收端之间的数据,也称为单播密钥或工作站密钥。

    2)默认密钥:用于保护广播帧与组播帧,也称为广播密钥。

静态与动态的WEP:

    1)静态WEP:不具备密钥分配机制的WEP,密钥的分配和更新必须通过手工方式。

    2)动态WEP:每个工作站会使用两个密钥,一个为经过映射的密钥,为工作站和接入点所共享,用来保护单播帧。另一个是默认密钥,为同一服务集中的所有工作站所共享,用于保护广播帧和组播帧。接入点每隔一段时间就更换密钥,如此一来,攻击者就不得不放弃已经搜集到的数据,另起炉灶,对其他密钥发起攻击。只要更新密钥的时间间隔足够短,就可以大幅减少密钥遭受到的攻击。

WEP密钥的编号与存储:

    802.11工作站最多可以指定4个密钥。起初,WEP密钥编号是为了协助更换网络密钥,指定好新的密钥后,工作站可以逐步切换,而不必让所有的工作站同时切换。

    为了帧的加密更有效率,许多802.11芯片组内含有一种称为密钥缓存的数据结构。密钥缓存由目的地址、密钥识别编号、密钥本身各个位的对应关系组成。大多数工作站的网卡的芯片组都有4个密钥槽。静态WEP使用其中一个密钥槽,动态WEP使用两个。当帧放在队列中传时,首先会在密钥缓存中查询目的地址,所查到的密钥就用来加密帧。动态密钥在功能上和静态WEP一样,不过密钥缓存的内容可能会被密钥管理软件取代。

6、针对WEP的密钥恢复攻击与防范

FMS攻击:攻击焦点锁定在IV(3Bytes)格式为 (B+3):FF:N 的弱密钥上。一般来说每个帧所用的IV不同,每个Weak IV用来攻击该RC4密钥的某个特殊字节。其中B为密钥字节编号,从0算起。

    每个Weak IV所泄露的信息和密钥的某个特定字节有关,破解第一个字节有助于破解第二个,依次类推,破解的字节越多,攻击的速度越快。总体而言,攻击是以线性时间进行的,将密钥长度加倍,攻克的时间也只是以等比的方式增加。

攻击防范:较长的密钥对防范密钥恢复攻击并无帮助。

    因为还原密钥所需的时间可以分为搜集攻击所需的足够的帧的搜集时间,以及运行程序得出密钥所需的计算时间,而计算花费的时间又很短,所以搜集足够的帧所花费的时间才是主导攻击的因素。较长的密钥需要稍微多一点的计算时间,但搜集时间维持不变。当密钥长度增加时,就可以捕获更多的Weak IV。

    有些厂商采用避免使用Weak IV的防范机制,遗憾的是,这样会缩小IV空间,将导致IV重复使用的情况更容易发生。

    网管人员可以使用比较牢靠的协议(如TKIP、CCMP等)来应对密钥恢复攻击。但是新的协议未必像动态WEP一样与现有的设备兼容。为了减少使用WEP,如果更新密钥对网络造成的负担在可接受的范围内,大多数网管人员都会将此时间间隔设定为5至15分钟。

0 0
原创粉丝点击