MENU

今日必玩-每日活动精选推送

WEP的安全缺陷

图五 首先,终端和AP之间通过交换探测请求和探测响应帧,完成信道和物理层标准同步过程,双方就通信使用的信道、物理层标准及数据传输速率达成一致。然后,由AP完成对终端的身份鉴别过程,图五中采用基于MAC地址的鉴别机制,只有MAC地址包含AP访问控制列表中的终端,才能和AP建立关联。终端通过身份鉴别后,向AP发送关联请求帧(Association Request),关联请求帧中除了需要给出终端的一些功能特性(如是否支持查询,是否进人AP的查询列表等)和终端支持的传输速率外,还需给出终端的服务集标识符(Service Set lentifer,SSID) 。SSID用于标识某个服务集,某个终端只有拥有该BSS的SSID,才拥有接人该BSS的权利。AP通过分析关联请求帧中的信息,确定是否拥有和该终端建立关联。如果AP确定和该终端建立关联,向该终端回送一个表示成功建立关联的关联响应帧(Association Response),关联响应帧中给出关联标识符。否则,向终端发送分离帧(Disassociation)。AP建立与该终端的关联后,在关联表中添加一项内容包含终端的 MAC 地址、身份鉴别方式、是否支持查询、支持的物理层标、数据传输速率和关联寿命等。关联寿命给出终端不活跃时间限制,只要终端持续不活跃时间超过关联寿命,终端和AP的关联自动分离。就像总线型以太网中只有连接到总上的终端才能进行数据传输样,BSS中只有 MAC地址包含在关联表中的终端才能和AP进行数据交换。

6.WEP的安全缺陷 11最初的应用是解决类似手持式条形码扫描仪这样的移动设备和后台服务器之间的通信问题,而手持式条形码扫描仪这样的移动设备的处理能力非常有限,无法进行复杂的加密解密计算,因此,只能采用WEP这样简单而有效的安全机制,这种安全机制在802.11最初的应用环境中也基本能够满足安全通信要求。但对于笔记本计算机通过无线局域网访问内部网络这样的应用环境,应用WEP这样简单的安全机制会产生严重的安全隐患,WEP的安全缺陷开始显现。 6.1 共享秘钥鉴别机制的安全缺陷 如图七所示,如果非授权终端(人侵终端)想通过AP的共享密钥鉴别过程,它可以一直侦听其他授权终端进行的共享密钥鉴别过程。因为无线通信的开放性,人侵终端可以侦听到授权终端和AP之间完成共享密钥鉴别过程中相互交换的所有鉴别请求、响应帧。由于密文是通过一次性密钥和明文异或操作后得到的结果,即Y=K⊕P(Y为密文,K为一次性密钥,P为明文),因此,用明文和密文异或操作后得到的结果即为一次性密钥K,即Y⊕P= K⊕P⊕P=K。由于人侵终端侦听到了AP以明文方式发送给授权终端的随机数P,以及授权终端发送给AP的对随机数P加密后的密文Y,人侵终端完全可以得出授权终端用于此次加密的一次性密钥K和对应的初始向量IV。当人侵终端希望通过AP的共享密钥鉴别过程时,它也发起监别过程,并用侦听到的一次性密钥K加密AP给出的随机数P',并将密文Y'(Y' = K⊕P')和对应的初始向量IV封装成如图六所示的加密后的MAC帧格式发送给AP。由于人侵终端使用的一次性密钥K和初始向量IV都是有效的,AP通过对人侵终端的身份鉴别。

图六 6.2 完整性检测缺陷 假定数据1= M1(X),数据2=M2(X),生成函数=G(X)。如果M1(X)和M2(X)的阶数相同,生成函数G(X)的阶数为K,且R1(X)是[X^k × M1(X)]/G(X)的余数,R1(X)是[X^K × M1(X)]/G(X)的余数,如果M3(X) = M1(X)⊕M2(X),则R3(X) = R1(X)⊕R2(X)就是[X^K × M3(X)]/G(X)的余数。由于ICV是数据除以生成函数后得到的余数,当数据=M1(X)时,ICV= R1(X),即R1(X)是X^k × M1(X)除以生成函数后得到的余数。WEP加密后生成的密文分别是Y1=M1(X)⊕K1,Y2= R1(X)⊕K2。如果密文Y1被篡改为Y'1 = Y1⊕M2(X),则只要将密文Y'2修改为Y'2=Y2⊕R2(X),其中,R2(X)是X^k × M2(X)除以生成函数后得到的余数。接收端仍然能够通过数据的完整性检测,即如果接收到的数据明文M3(X) = M1(X)⊕M2(X),则R3(X)=R1 (X)⊕R2(X)就是[X^K x M3(X)]/G(X)的余数,整个过程如图七所示。

如图七所示,假定发送端需要发送的数据M1(X)= 10101,G(X) = X^3 + X + 1(1011),根据数据M1(X)和生成函数G(X)计算ICV,ICV = R1(X)=(10101000)/(1011)的余数101。用一次性密钥11011101加密数据明文和ICV 后得到的密文为01110000。

图七 攻击者截获发送者发送的密文,如果他希望篡改密文,并且使接收端检测不出他对密文进行的篡改,攻击者构建数据M2(X)=11010,根据数据M2(X)和G(X)计算R2(X),R2(X)= (11010000)/(1011)的余数010。攻击者用和密文同样长度的数据序列11010 010和密文进行异或操作,得到篡改后的密文10100 010。

接收端接收到密文后,用和发送端相同的一次性密钥11011 101对具进行并或操作,得到明文01111 111,其中,01111=数据M3(X)=数据M1(X)⊕数据M2(X),111=R3(X)=R1(X)⊕R2(X)。接收端根据数据M3(X)和G(X)计算ICV,求得ICV= (01111000)/(1011)的余数111=R3(X)。由于接收端根据数据计算所得的ICV和MAC帧携带的ICV相同,认为密文在传输过程中未被篡改,将数据作为正确数据予以接收,ICV的完整性检测功能失去作用。这就是用根据数据和生成函数G(X)计算所得的循环冗余检验码作为数据完整性检验值的缺陷,攻击者很容易篡改密文,且不被完整性检验值检测出。

提示 订阅专刊

Copyright © 2022 今日必玩-每日活动精选推送 All Rights Reserved.