WEP加密的无线网络相关知识点——关于WEP、RC4、CRC32及具体实现

WEP & MAC

目录

  1. 安装libpcap
  2. 安装aircrak-ng
  3. 安装wireshark
  4. 802.11管理帧格式
  5. WEP加密原理
  6. WEP中RC4加密算法
  7. WEP中CRC32校验
  8. 抓取包并分析

运行环境

操作系统:Ubuntu 16.04 64

无线网卡:Netgear NETGEAR wg111 v2 RTL8187


1.安装libpcap

libpcap是unix/linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。Windows平台对应的为winpcap

安装libpcap后,我们可以自己写一个网络嗅探器。

<<libpcap使用>> CSDN BLOG
[更详细的介绍及C语言例程]

    $ wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz
    $ tar xzvf libpcap-1.8.1.tar.gz
    $ cd libpcap-1.8.1
    $ ./configure
    $ make
    $ sudo make install

# 如果执行 ./configure 报错:
# configure: error: Neither flex nor lex was found.
# configure: error: yacc is insufficient to compile libpcap.
# 执行 $ sudo apt-get install flex bison 继续操作 

2.安装aircrack-ng

aircrack-ng是一套完整的跨平台WiFI网络安全评估工具,能够进行
监控网络数据包、网络攻击、
测试和破解WEP与WPA-PSK加密等。

套件中包含:

  • airodump-ng 用于捕获破解WEP密钥的802.11帧
  • aircrack-ng 用于破解基于802.11协议的WEP以及WPA-PSK密钥
  • aireplay-ng 用于强行向目标AP发送数据包
  • airmon-ng 用于为整个套件配置一个网卡,开启无线网卡的monitor mode
  • airbase-ng 用于建立Soft AP

我们需要使用其中的airmon-ng、airbase-ng两个工具

如何使用 Airbase-ng

    $ sudo apt-get install aircrack-ng

3.安装wireshark

Wireshark(前称Ethereal)是一款跨平台的网络封包分析软件。网络
封包分析软件的功能是抓取网络封包,并尽可能显示出最为详细的网络
封包资料。在分析802.11无线数据格式及编写相关程序时需要利用到
wireshark软件

    $ sudo apt-get install wireshark

#在使用wireshark抓包时建议使用 sudo wireshark

4. 802.11管理帧格式

推荐书目

  • 《深入理解Android:Wi-Fi、NFC和GPS卷》(邓凡平,机械工业出版社)

    管理帧格式部分教程
  • 《802.11无线网络权威指南(第二版)》(Matthew S.Gast,O’Reilly)

5. WEP加密原理

《How 802.11 Wireless Works》
[一篇非常详细地解释了802.11无线网络工作原理的文章,涉及到WEP的加密解密介绍]

基础的密码学

    一串随机的文本[RandomText] xor 等长的明文[PlainText] ==> 密文[CipherText]
    同一串随机的文本[RandomText] xor 密文[CipherText] ==> 明文[PlainText]

    eg:
        01100011 ^ 01010101 = 00110110
        01100011 ^ 00110110 = 01010101

在802.11 无线网络中,WEP加密最重要的一点就是利用了该原理,但是其漏洞也是因为RandomText的生成
并不能保证一直不重复,并且采用的是伪随机方式生成。

5.1 WEP密码设定:

支持WEP加密的设备通常支持多种长度的密钥,常见的有64bit,伪128bit,128bit甚至256bit。

不过,本项目中我们采用的为airbase-ng 创建共享密钥方式下(shared key mode)默认的64位密钥。

WepWorkImg
WepWorkImg

注意:

  • 1 当我们在此模式下设置密码时,比如设定密钥为:1112223334
    则对应的64位"WEP seed"为:

    24bit IV(初始化向量) + 0x11 + 0x12 + 0x22 + 0x33 + 0x34

    IV(24bit)+0001 0001 0001 0010 0010 0010 0011 0011 0011 0100

  • 2 WEP seed 通过RC4算法计算得出RC4 Key

    <1>. RC4 key 的产生过程则是WEP加密中伪随机数产生器工作的过程

    <2>. 由于 IV 由AP产生,并且不同的厂家生成方式不一致,但是IV仅有24bit,在复杂并且流量大的网络环境下很容易在短时间内使用重复的
    IV进行生成WEP seed

  • 3 Payload为要发送的数据,Payload与Header共同经过CRC32循环校验得到32bit ICV

    Payload + ICV 用RC4加密算法进行加密处理

6. WEP中RC4加密算法

RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。
RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采用的算法之一。 ——wikipedia

本项目中采用的RC4加密算法使用的一份开源的代码,需要注意的是在有的平台上面RC4代码中的char型数据需要更改为unsigned char

7. WEP中CRC32校验

循环冗余校验(英语:Cyclic redundancy check,通称“CRC”)是一种根据网络数据包或电脑文件等数据产生简短
固定位数校验码的一种散列函數,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者存
储之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。一般来说,循环冗余校验的值都是32位的整数。
——wikipedia

本项目中采用的CRC32校验程序使用的一份开源的代码

注意:

  • 1 在WEP中CRC计算的是Header + 初始Payload

    eg:在WEP共享密钥认证方式(shared key mode)的过程中会向客户端发送一份ChallengeText(假设为128位明文)。

           Payload (140bytes)= header (8bytes) + ChallengeText (128bytes) + ICV[CRC32] (4bytes)
    ```<br>
    此140Bytes数据将会被RC4加密算法进行加密,而密钥则是64bit WEP seed 产生的RC4 key。<br>
    最后,该数据包将发给AP进行验证。
    
    
  • 2 当AP收到发来的数据包时,会将数据包中明文的IV与自己存储的Key结合作为WEP seed 对140bytes 的数据进行解密

    解密之后有 140bytes 数据,仅需要对1-136bytes 的数据进行循环校验,得出的校验值与 137-140bytes 的ICV进行对比,若相同,则该数据包是正确的。

  • 3 正因为如此,我们可以利用验证的这个过程,额外的传递一些信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容