80211无线网络权限指南(五)之有线等效加密

WEP的密码学背景

有线等效加密(WEP)被视为无线安全的解决方案,但是在802.11问世的前四年,研究人员发现WEP并不安全,但是某些特殊设备只支持WEP,且WEP的设计非常简单,一些较老的设备缺乏足够的处理能力来运行流畅,因此WEP已经是最佳选择了,此外一些新的技术如TKIP也会用到WEP的帧来处理操作,因此有必要了解WEP。

在了解WEP之前需要先了解密码学相关的知识。首先WEP是用来保护数据的RC4密码,属于对称性(密钥)流密码,RC4具有所有流密码的共同特性,一般而言,流密码会用到称为密钥流(keystream)的位流。密钥流随后会与信息结合,产生密文(cipher text)。为了还原原始信息,接收端会以相同的密钥流处理密文。RC4会利用异或(exclusive OR,简称XOR,异或运算:相同得0,不同得1)运算结合密钥流与密文。下图说明了整个过程。

流密码的运作方式通常是会先选用一把较短的密钥,然后将之展开为与信息等长的伪随机数密钥流。伪随机数生成器(pseudorandom number generator,简称PRNG)是一组用来将密钥展开为密钥流(keystream)的规则。为了还原数据,双方必须拥有相同的密钥(secret key),并且使用相同的算法将密钥展开为伪随机数序列(pseudorandom sequence)。因此整个数据传输的安全性完全取决于密钥流的随机程度,因此在设计时也十分关键,RC4在起初投入WEP安全引擎中并未发现安全隐患,但后来通过研究发现了它的弊端。

WEP的数据处理

通信安全有以下三个目的:

  1. 机密性:防止数据不受未授权的第三者拦截;
  2. 完整性:确保数据没有被修改
  3. 真实性:所有安全策略的基础,因为数据的可信度部分取决于数据源的可靠性

为了实现以上三种目的,WEP提供了一些机制,帧主体加密机制主要用来提供机密性,完整性校验序列用来在传送过程中保护数据。

下图展示了WEP处理数据的过程:             

WEP需要以下三个输入项:

·需要保护的有效载荷(payload),这些数据来自上层协议堆栈(protocol stack)。

·密钥(secret key),用来加密帧。依实现方式的不同,可以用密钥位字符串(string of key bits)或者密钥编号(key number)来指定密钥。WEP允许同时存储4种密钥。

·初始向量(initialization vector,简称IV),和密钥(secret key)一起在传送帧时使用。

以上几个输入项经过处理后就会产生一个单一的输出项——加密过的帧,它可以通过不安全的网络加以传输,包含的信息足够对方解密

驱动程序以及接口硬件负责处理数据,然后送出加密过的封包,顺序如下:

1、802.11帧被放在队列中等待传送。帧由标头(header)和有效载荷(payload)组成,WEP只保护802.11 MAC的有效载荷。

  1. 根据802.11 MAC帧的有效载荷计算出完整性校验值。由于此校验值是针对帧的有效载荷来计算的,因此计算所涵盖的范围始于SNAP标头的第一位,直到帧主体的最后一个数据位。此时,802.11帧校验值尚未计算出来,因此并未包含在ICV的计算当中。WEP所使用的ICV属于循环冗余校验(Cyclic Redundancy Check简称CRC)码,稍后有更进一步的说明。
  2. 帧加密密钥(或称WEP种子)随后组装完成。WEP密钥分为两部分:密钥(secretkey)以及初始向量(IV)。如果使用同-个密钥,流密码会产生相同密钥流,因此另以初始向量为每个帧产生不同的流密码。为了避免出现使用相同密钥流进行加密的情况,传送帧的工作站会将IV附加在密钥之前。802.11并未限制选取IV时非得使用何种算法﹔有些产品使用流水号作为IV值﹐有些则会使用伪随机散列算法。如何选择IⅣ具有重要的安全含义,选得不好就可能危及密钥。
  3. 帧加密密钥被当成RC4密钥,用以加密来自步骤1的802.11 MAC有效载荷以及来自步骤2的ICV。整个加密过程通常通过网卡上的RC4专用电路来协助完成。
  4. 将有效载荷加密之后,工作站就会开始组装待传的帧。802.11标头本身维持不变,802.11 MAC标头与加密过的有效载荷之间则插入了WEP标头。除了IV,WEP标头中还包含密钥编号。WEP最多允许定义4个密钥,因此发送端必须分辨目前使用的是哪一个密钥。一旦附加上最后的标头,就可以针对整个MAC帧,即从标头算起,直到(加密过的)ICV结束,计算出802.11帧校验(FCS)码。

解密的过程与上述过程正好相反,接收端在接收到帧之后会先校验FCS,确保接收到的帧未在传送过程中损毁,解读受保护的payload部分时会使用密钥生成密钥流,确保无误后递交给上层。

密钥的长度和类型

理论上,WEP可以搭配任意长度的密钥,因为RC4并未要求非得使用特定长度的密钥。但是大多数产品只支持一种或两种长度的密钥,唯一出现在标准中的密钥长度是64位的WEP种子(seed),另外一种是采用较长的密钥,通常是使用128位的种子(seed)。其实设计密钥时,使用较长的密钥会得到更高的安全性,密钥每增加一位也会让密钥的数量翻倍。

根据密钥的用途可以分为可两种类型的密钥,映射密钥和默认密钥。映射密钥有时也称为单播密钥,顾名思义它适合用来保护单播数据;默认密钥有时也称为广播密钥,因此它适用于广播或组播帧。

根据密钥的分配方式可以分为手动(静态)和自动(动态)的WEP。

静态密钥就是网管人员必须将一个密钥分配到他所管理的网络中的所有sta,这个过程是手动完成的,其实大部分的网络都会在长时间内使用同一个密钥,因为更新密钥对于网管人员来说工作量是巨大的。因此不具备分配密钥机制的WEP被称为静态WEP或手动WEP。静态WEP的使用并不方便,虽然可以制止散弹型的攻击,但无法防御集中火力的攻击,可是由于当今部分设备如802.11电话、条形码扫描器等,这些设备还只支持静态WEP,但是还无法淘汰它们,所以在某些设备中依旧使用静态WEP。

比较好的解决方案是动态WEP。在动态WEP中,每个工作站会使用两个密钥,而不是所有工作站共享一个密钥。其中一个密钥是经过映射的密钥,为工作站与接入点所共享,用来保护单播帧。另外一个密钥是默认密钥,为同一服务集中所有工作站所共享,用来保护广播与组播帧。工作站所使用的加密密钥是通过密钥加密密钥( key encryption key)来分配,至于用来衍生密钥加密密钥的认证协议。动态WEP的安全性较高,在受到攻击的时候提供的密钥线索很少并且每隔一段时间就会更改一次密钥,只要每次更改的间隔足够短,那么安全性也就更高。在动态WEP的解决方案中,每个sta会收到来自AP的两个密钥,编号0代表映射秘钥,编号1代表默认密钥。

WEP的帧结构

一旦使用WEP加密,帧就会多了8个字节,前面四个代表帧主体的IV标头,另外四个作为ICV的标尾,结构如图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值