zoukankan      html  css  js  c++  java
  • 5.有线等效加密

    参考

    1.简介

    有线等效加密(WEP)

    2.WEP密码学背景

    流密码的运作方通常是会通过选用一把较短的密钥,然后将之展开为与之等长的伪随机数密钥流。伪随机数生成器(pseudorandom number generator,简称PRNG)是一组用来将密钥展开为密钥流(keystream)的规则。为了还原数据,双方必须拥有相同的密钥(secret key),并且使用相同的算法将密钥展开为伪随机数序列。

    3.WEP的加密操作

    通信安全的三个主要目的:机密性(confidentiality),完整性(intergrity),真实性(authentication)
    为了实现上述目的,WEP本身提供了一些机制。帧主体加密机制(frame body encryption)主要用来提供机密性(confidentiality)。完整性校验序列(intergrity check sequence)用来传送过程中保护数据,让接受者能够验证收到的数据在传送过程中未被更改过。

    4.WEP的数据处理

    机密性与完整性的操作同时进行,加密之前帧会通过完整性校验算法。产生一个称为完整性校验值(integrity check value,简称ICV)的散列值(hash)。ICV可确保帧在传送过程中未被改变。帧本身与ICV两者均经过加密。

    WEP需要以下三个输入项

    需要保护的有效载荷(payload),这些数据来自上层协议堆栈(protocol stack)
    秘钥(secret key),用来加密帧。WEP允许同时存储4中秘钥。
    初始向量(initialization vector,简称IV)
    

    5.WEP的数据传送

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

    1.根据802.11MAC帧的有效载荷计算出完整性校验值。由于校验值是针对帧的有效载荷来计算的,因此计算所涵盖的范围始于SNAP标头的第一位,直到帧主体的最后一个数据。此时,802.11帧校验值尚未计算出来,因此并未包含在ICV的计算中。
    2.帧加密秘钥(或称WEP种子)随后组装完成。WEP密钥分为两部分:秘钥(secret key)以及初始向量(IV)。
    3.帧加密密钥(或称为WEP种子)随后组装完成。WEP密钥分为两部分:密钥(secret key)以及初始化向量(IV)。为了避免出现使用相同密钥流进行加密的情况,传送帧的工作站会将IV附加在密钥之前。
    4.帧加密密钥被当成RC4密钥,用以加密来自步骤1的802.11MAC有效载荷以及来自步骤2的ICV。整个加密过程通常通过网卡上的RC4专用电路来协助完成。
    5.将有效载荷加密之后,工作站将会开始组装待传帧。802.11标头本身维持不变,802.11MAC标头与加密过的有效载荷之间则插入了WEP标头。除了IV,WEP标头中还包含了密钥编号。因此发送端必须分辨目前使用的是哪一个密钥。
    

    解密过程刚好相反。与任何无线网络的传送过程中,首先验证FCS,确保所接收到的帧在传送过程中未被损毁。解读帧受保护的部分时,接收端会使用密钥,加上IV,然后产生密钥流。得到解密过的数据后,接下来则是验证ICV。如果ICV验证无误,就根据SNAP标头所记载的内容,将封包数据交给适当的上层协议。

    6.WEP密钥的类型

    映射密钥(工作站密钥)

    映射密钥(mapped key)用来保护流动于特定来源与接收端之间的数据。映射密钥有时也称为单播密钥(unicast key)或工作站密钥(station key),因为它们适合用来保护单播数据。在基础结构型网络里,数据是在工作站与接入点之间流动的。

    默认密钥(广播密钥)

    如果两个802.11工作站之间并不存在映射关系,就必须改用默认密钥(default key),有时也称为广播密钥(broadcast key)。

    7.手动(静态)与自动(动态)的WEP

    不具备密钥分配机制的WEP通常称为手动WEP或静态WEP。
    在动态WEP中,每个工作站都会使用两个密钥,而不是所有工作站共享一个密钥。其中一个密钥是经过映射的密钥,为工作站与接入点所共享,用来保护单播帧。另外一个密钥是默认密钥,为同一服务集中所有工作站所共享,用来保护广播与组播帧。

    8.WEP的帧格式

    一旦使用WEP进行加密,帧主体就会增加8个字节。其中4个字节作为帧主体的IV标头,另外4个字节则作为ICV标尾。

    IV标头使用3个字节来容纳长度为24位的IV,而第四个字节则包含填充为(padding bit)以密钥标识符(key ID)。使用默认密钥时,KEY ID子字段可用来识别加密帧的默认密钥。如果选择使用密钥映射关系(key mapping relationship),则Key ID子字段的值为0。最后一个字节中有6个填充为必须为0。

  • 相关阅读:
    java后端解决请求跨域
    在IDEA中找不到Mapper报错
    ES6拼接数组与小程序本地存储
    小程序云开发实现微信发说说
    SQLServer的操作以及一些概念
    数据依赖(决定),码,范式,规范化与反规范化
    Git的使用上传与下载github
    JS中Map和ForEach的区别
    进入React的世界
    Node的重要性
  • 原文地址:https://www.cnblogs.com/huangdengtao/p/12702335.html
Copyright © 2011-2022 走看看