转自:http://zhaoxiaobu.blog.51cto.com/878176/407130/

不管是用WEP加密,还是用WPA,一般如果我们要和AP建立一个连接,要经过两个阶段认证(Authentic)和关联(Association)的过程,下面我只说说WEP加密的情况下,是如何和AP建立连接的(WPA的基本原理是差不多的,但加密算法比WEP的复杂)。
如果采用WEP加密,我们会有两种选择(开放式和共享式),如果选择开放式,那AP和客户端的认证过程是在关联过程之后的,也就是说,不需要正确的密码,就能连接上AP,但你无法传输数据(会显示连接受限,具体看我以前的帖子),所以这个我们也不讨论。
如果我们采用WEP加密,而且,又选择了共享式,那要想和AP建立连接,就会有四次握手(4-way-handshake)的过程:
 第一次握手:客户端发送认证请求给AP,如下图

我们图中的内容,前面的内容是帧(frame)控制头,里面记录了源地址,目的地址等信息,IEEE 802.11 wireless LAN management frame说明这是802.11的管理帧,下面有6个字节的参数,Authentication Algorithm是用来确定是开放式或者是共享式(1共享式,0开放式),我们这里是共享式,Authentication SEQ说明四次握手的步骤,现在是第一次握手,说以是1,最后的status code是状态码,现在是成功。

第二次握手:AP收到请求后,发送一个认证响应帧,里面包含一个128字节的随机数列,如下图

我们再看AP的请求响应帧,里面的Authentication  SEQ已经变成2了,状态也是成功,但帧的最后,我们发现了128字节的随机数列。
第三次握手:客户端收到AP的响应帧后,用自己的密钥加3个字节的IV,用RC4算法,产生加密流,用异或操作加密128字节的随机数列,然后发给AP,如下图

我们看到,这个帧比较特殊,我们看不到序列号,而是多了一个Initialization Vector(初始向量)这个就是我们经常说的IV(注意是明文的,没有加密),最后data中的内容就是加密后的随机数列
第四次握手:AP用自己的密钥加客户端发过来的IV,用RC4算法,产生加密流,用异或操作加密那段随机数列(challenge text),如果客户端的密钥和AP的密钥相同,那么,两端加密后的数据应该是相同的。如下图:

最后一次握手的序列号是4,状态是成功,到此,四次握手的过程就全部完成了。

看完上面的内容,我想大家发现了一个问题,在WEP加密方式下,AP和客户端认证的过程中,challenge text和加密后的数据都是可以得到的,而且3个字节的IV也是明文的,而WEP采用的,只是简单的异或运算:明文(异或)加密流=密文,而异或运算是可逆的,也就是说,密文(异或)明文=加密流。

本文出自 “赵小布的博客” 博客,请务必保留此出处http://zhaoxiaobu.blog.51cto.com/878176/407130

 

wifi 4次握手的更多相关文章

  1. bt和wifi的共存

    转自:http://bbs.52rd.com/Thread-291892-1-1.html 蓝牙和802.11b/g/n都可能工作在2.4GISM,可能互相干扰.干扰的典型应用之一是VOIP,用手机的 ...

  2. WiFi广告强推的基本技术原理和一些相关问题

    WiFi推原理(转) 本文地址:http://jb.tongxinmao.com/Article/Detail/id/412 WiFi广告强推的基本技术原理和一些相关问题 WiFi广告推送原理就是利用 ...

  3. 使用macbook破解WPA/WPA2 wifi密码

    文本仅供学习交流. 我使用的系统是macbook pro 15: 安装aircrack-ng 使用homebrew安装,命令: brew install aircrack-ng 抓包-抓取带密码的握手 ...

  4. wifi钓鱼

    无线网络的加密方式和破解方式 1.WEP加密及破解 1).WEP加密方式 有线等效保密(wired euivalent pricacy,WEP)协议的使用RC4(rivest cipher4)串流加密 ...

  5. kali由wifi握手包破解密码&&gnuplot使用

    1.kali密码破解(WiFi握手包) cap包密码破解,aircrack-ng wifi.cap -w psw.txt(你的字典文件) 2.画图工具gnuplot 1.txt中保存的是坐标,形式为: ...

  6. Android WiFi 日志记录(四次握手)

    记录一下四次握手的log. PMK: PMK(Pairwise Master Key,成对主密钥 STA和AP得到PMK后,将进行密匙派生以得到PTK.最后,PTK被设置到硬件中, 用于数据的加解密. ...

  7. Kali对wifi的破解记录

    好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...

  8. 实战-Fluxion与wifi热点伪造、钓鱼、中间人攻击、wifi破解

    原作者:PG     整理:玄魂工作室-荣杰 目录: 0x00-Fluxion是什么 0x01-Fluxion工作原理 0x02-Kali上安装fluxion 0x03-Fluxion工具使用说明+实 ...

  9. 运用Fluxion高效破解WiFi密码

    Fluxion是一个无线破解工具,这个工具有点像是Linset的翻版.但是与Linset比较起来,它有着更多有趣的功能.目前这个工具在Kali Linux上可以完美运行. 工作原理 1.扫描能够接收到 ...

随机推荐

  1. [POJ1328]Radar Installation

    [POJ1328]Radar Installation 试题描述 Assume the coasting is an infinite straight line. Land is in one si ...

  2. ios中二维码的使用之一: 二维码的生成

    iOS在7之后,具备了原生的二维码生成API; 生成二维码的准备:  #import <CoreImage/CoreImage.h> 导入框架: 开始生成: //1- 创建过滤器 CIFi ...

  3. 关闭MyEclipse Derby服务

    MyEclipse的Servers视图出现 MyEclipse Derby服务,一直想把它去掉在网上搜索了下,现已解决. 如下,MyEclipse菜单:window-->Preferences- ...

  4. Sqli-LABS通关笔录-6

    第六关跟第五关一样的是布尔型盲注技术. 只是在部分有出路 添加一个单引号.程序无反应.双引号和斜杠可使其报错. 这一关让我学到了 1.管他三七二十七报错看看语句再说. THE END

  5. OpenCv haar+SVM训练的xml检测人头位置

    注意:opencv-2.4.10 #include "stdio.h"#include "string.h"#include "iostream&qu ...

  6. Apache Thrift 环境配置

    在 Ubuntu 14.04 下Apache Thrift 的安装方法: 1安装依赖包 sudo apt-get install libboost-dev libboost-test-dev libb ...

  7. Linux Vsftpd 连接超时解决方法

    Linux Vsftpd 连接超时解决方法 2013-11-13 10:58:34|  分类: 默认分类|举报|字号 订阅     解决方法(http://www.lingdus.com/thread ...

  8. [20160731][转]JAVA当中变量什么时候需要初始化

    1. 对于类的成员变量,不管程序有没有显式的进行初始化,Java虚拟机都会先自动给它初始化为默认值. 默认值如下:             Boolean      false             ...

  9. jq鼠标隐藏显示的方法

    <div style="width:300px; float:left;">        <div onmouseover="testOnmouseO ...

  10. jq隐藏页面的一行

    <script type="text/javascript" src="http://files.cnblogs.com/914556495wxkj/jquery- ...