802.11无线网络

WEP加密的无线网络相关知识点——关于WEP、RC4、CRC32

2017-04-28  本文已影响176人  atnc

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加密等。

套件中包含:

我们需要使用其中的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位密钥。

WepWorkImgWepWorkImg

注意:

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校验程序使用的一份开源的代码

注意:

上一篇下一篇

猜你喜欢

热点阅读