WEP 协议__<无线局域网安全务实:WPA与802.11i〉读书笔记

1 WEP
1.1 认证(Authentication)
        WEP 标准中,WEP安全措施包括两部分:先是认证阶段,然后是加密。认证的大意是:当一个新的设备想加入到接入点,它必须先证明自己的身份。情况下,移动设备也是希望接入点同样也证明自己的身份的,这一阶段被认为是相互认证阶段。
       认证的目的是双方证明自己是所宣称的那一个。在局域网中,每个设备都有唯一的MAC地址来证明自己的身份。局域网上所有设备发出的每个信息都含有该设备的MAC地址,因此能够检查出发送者的身份。但你怎么知道不会有人用假MAC地址来伪造信息呢?解决的办法是,当设备第一次加入到局域网时就认证该设备,约定一个密码来保护以后的每条消息。因为只有真的设备和AP知道这个密码,这样的认证才是有效的。
      在WEP的认证中,没有交换任何秘密标记,所以没有办法证明后续的消息是来自己被信任的设备还是来自冒牌货。虽然在IEEE 802.11标准中有些认证过程,但在Wi-Fi规范里已完全被删除了
       最初IEEE 802.11标准中的认证过程如下:
  • 开放系统中的认证(Open system)
 
首先STA向AP发送认证(Authentication)请求,AP回复一个成功消息。在开放系统中,原则上,AP总会接受认证请求。但有些系统提供MAC地址过滤。AP有一个Allow Access MAC list, 如果STA不在这个列表中,就会拒绝该STA 。
  • WEP 认证
 
WEP认证中规定STA要向AP证明该STA知道密钥。当STA发送认证请求时,AP发出一个随机数,叫做质询文本,是一个任意的128位数,STA用WEP把该数字与密钥加密,发回给AP。但是质询里含有明文,而应答是用密文, 这样就会给攻击者提供了匹配样本,所以Wi-Fi联盟完全删除了这一交换过程。多数Wi-Fi系统使用开放认证,接入后对数据进行加密, 这样就有效的跳过了认证阶段,没有给敌人任何好处。因为,虽然他不经过质询文本也能加入网络,但没有加密用的密钥,他不能收发任何数据。
  • 认证消息的结构
 
算法号表明使用的认证类型:0表示开放系统 ; 1表示共享密钥(WEP)
传输序号表明这是认证序列中的第几个消息,第一个消息是1,第二个消息是2,第三个(只用于WEP)j 3
状态码在最后一个消息里发送,表明认证请求成功还是失败
质询文本用于WEP认证。
 
1.2 私密性
 
     安全系统可以基于字节流加密或块加密。 字节流加密是指输入普通的数据序列(明文),输出已加密的数据序列(密文)。块加密一次只处理一块数据。首先对于数据,需要形成固定的长度(8,16,32位)的数据块。每块进入加密算法,生成长度相同而内容不同的数据块。两者的一个重要区别是:字节流加密的内在状态随着数据的产生而不断发生变化,而块加密的状态在每块处理之前要预先设置。
       WEP是使用RC4加密数据。RC4是一种对称算法,解密是加密的逆过程,使用相同的密钥。RC4是字节流加密算法。对于WEP,每个数据包都有初始化阶段和加密阶段,每个包都像新的字节流一样对待,这样可以保证如果一个包丢失,后面的包仍然可以解密。
 1.3 WEP算法加密原理
 1.3.1 IV
 
     对于同样的数据,经过固定密钥的RC4算法加密,加密后的数据总是一样的,这样就可能给攻击者提供信息:数据包在重复一样的数据。为了避免这种情况的发生,WEP的密钥是初始化矢量(IV)和固定密钥组合在一起,代替固定密钥,由于每个数据包的IV都不一样,所以即使是相同的数据,经过这种方式的加密,加密后的数据也是不一样的。IV是24位长,所以104位密钥经过所IV组合就变成了128位,但是IV是放在加密帧里公开传送的,根本不保密。
      IV只有24位长,大约有1700万个不同的值。一个11Mb/s的AP每秒能收发大约700个一般大小的数据包。如果每包都用不同的IV值,不到7小时就就会把全部了IV值用光,由于很少有人每天都更换密钥,所以IV值必定会重复。
 
1.3.2 WEP密钥
特征:
  • 固定长度:通常为40bit或104bit
  • 静态:一般密钥值不改变
  • 共享:AP和STA使用相同密钥
  • 对称:加密和解密使用相同密钥
802.11 WEP标准里有两种密钥标准:
  • Default key (也叫共享密钥,组密钥,多播密钥,广播密钥,都是生产厂商取的便于用户理解的名称),所有移动设备和AP都使用一套密钥
  • Key mapping keys (也叫个人密钥,独享密钥),每个移动设备有一个独特的密钥
 
1.3.3 ICV完整性校验值
        消息中全部字节合成一个结果,叫CRC(循环冗余校验码)。这个4个字节的值被加即将进行传输预处理的帧的末尾。当消息传送到接收者时,它会检测所收到数据的CRC,如果与接收到的CRC值不符,意味着该数据在传输过程中遭到了破坏,接收者就会丢弃。
        ICV与CRC相似,但是它是在加密前计算并添加的。CRC是在加密后添加。理论上,由于ICV加密了,攻击者在试图修改消息时不能重复计算它,因此具有防篡改性。ICV是通过全部数据,生成一个4个字节检验而计算出来的,然后加在末尾。由于用于计算ICV的CRC法是一种线性方法,如果只改变消息中的一位,可以预测ICV中的哪些位将被改变。所以不需要知道数据的明文值,只需知道如果反转了数据中的一位,同时反转ICV的某些位就能维持ICV有效
1.3.4 帧的传输预处理
数据后面添加了ICV后,就准备加密了。
  • 系统选取一个IV值,与WEP密钥进行组合
  • 初始化RC4加密机
  • 数据与ICV的组合数据投入到加密机中,随着每个字节进入,加密后的字节逐步生成,直到处理完所有字节,这就是一个字节流加密。
  • 在加密的数据前添加IV值和密钥KeyID
  • 最后附上MAC头和CRC值。MAC头里有一位表示该帧经过了WEP加密。
 
posted @ 2017-06-05 18:42  sun sun  阅读(675)  评论(0编辑  收藏  举报