802.11头和无线通信过程
kali网卡相关命令
dmesg -T:查看系统硬件的变化
iwconfig:查看网卡的基本信息
查看所以详细信息
iw list 查看所以详细信息
![]()
![]()
![]()
查看信道频率
查看信道频率
1 | iwlist 网卡名 frequency |
演示
1 | >>>>>>> iwlist wlan1 frequency |
扫描附近的AP
命令
1 | iw dev 网卡名 scan |
演示
1 | iw dev 网卡名 scan |
![]()
IEEE协会
IEEE是国际性的电子技术与 信息科学 工程师的协会
这个IEEE专门定义标准的,这样才能统一
其中802负责
- 以太网
- 令牌环网
- 无线局域网
- 网桥
802标准
下面这个是我列出一点802的定义的标准更多可以查看https://baike.baidu.com/item/IEEE%20802/6808672?fromtitle=IEEE802%E5%8D%8F%E8%AE%AE&fromid=3311171
| 标准列表 | 应放置文件内容 |
|---|---|
| IEEE 802.1 | 通用网络概念及网桥等 |
| IEEE 802.2 | 逻辑链路控制等 |
| IEEE 802.3 | CSMA/CD访问方法及物理层规定 |
| IEEE 802.4 | ARCnet总线结构及访问方法,物理层规定 |
| IEEE 802.5 | Token Ring访问方法及物理层规定等 |
| IEEE 802.6 | 城域网的访问方法及物理层规定 |
| IEEE 802.7 | 宽带局域网 |
| IEEE 802.8 | 光纤局域网(FDDI) |
| IEEE 802.9 | ISDN局域网 |
| IEEE 802.10 | 网络的安全 |
| IEEE 802.11 | 无线局域网 |
802.11无线局域网介绍
802.11他只工作在数据链路层和物理层
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 逻辑链路控制子层LLC
- 媒体访问控制子层MAC
- 物理层
802.11标准
看一下他定义的标准,在下面这个都是小写的小写的都是在原来的基础之上修正的,下面这个大写的才是真正的标准
更多查看https://baike.baidu.com/item/IEEE%20802.11/8447947
| 标准列表 | 应放置文件内容 |
|---|---|
| IEEE 802.11 | 1997年,原始标准(2Mbit/s,播在2.4GHz) |
| IEEE 802.11a | 1999年,物理层补充(54Mbit/s,播在5GHz) |
| IEEE 802.11b | 1999年,物理层补充(11Mbit/s播在2.4GHz) |
| IEEE 802.11c | 符合802.1D的媒体接入控制层桥接(MAC Layer Bridging) |
| IEEE 802.11d | 根据各国无线电规定做的调整 |
| IEEE 802.11e | 对服务等级(Quality of Service, QoS)的支持 |
| IEEE 802.11F | 基站的互连性(IAPP,Inter-Access Point Protocol),2006年2月被IEEE批准撤 |
| IEEE 802.11g | 2003年,物理层补充(54Mbit/s,播在2.4GHz) |
| IEEE 802.11h | 2004年,无线覆盖半径的调整,室内(indoor)和室外(outdoor)信道(5GHz频段) |
| IEEE 802.11i | 2004年,无线网络的安全方面的补充 |
| IEEE 802.11j | 2004年,根据日本规定做的升级 |
| IEEE 802.11l | 预留及准备不使用 |
| IEEE 802.11m | 维护标准;互斥及极限 |
常用的标准
wifi是在其实是802.11b其他的严格不能是wifi
| 标准列表 | 应放置文件内容 |
|---|---|
| IEEE 802.11 | 1997年,原始标准(2Mbit/s,工作在播在2.4GHz) |
| IEEE 802.11a | 1999年,物理层补充(54Mbit/s,工作在播在5GHz) |
| IEEE 802.11b | 1999年,物理层补充(11Mbit/s工作在播在2.4GHz) |
| IEEE 802.11g | 2003年,物理层补充(54Mbit/s,工作在播在2.4GHz) |
| IEEE 802.11i | 2004年,无线网络的安全方面的补充 |
| IEEE 802.11h | 2004年,无线覆盖半径的调整,室内(indoor)和室外(outdoor)信道(5GHz频段) |
详细
| 标准 | 工作频段 | 理想速率 | 信道带宽 |
|---|---|---|---|
| 802.11b | 2.4 GHz | 11Mbps | 20MHz |
| 802.11a | 5GHz | 54Mbps | 20MHz |
| 802.11g | 2.4 GHz | 54Mbps | 20MHz |
| 802.11n | 2.4 GHz或5 GHz | 72Mbps(1×1, 20MHz)150Mbps(1×1, 40MHz)288Mbps(4×4,20MHz)600Mbps(4×4, 40MHz) | 20MHz/40MHz(信道绑定) |
| 802.11ac | 5 GHz | 433Mbps(1×1, 80MHz)867Mbps(1×1,160MHz)6.77Gbps(8×8,160MHz) | 40MHz/80MHz/160MHz |
802.11
发布于1997年
速率1Mbps或2Mbps
红外线传输介质(未实现)
无线射频信号编码(调制)(radio frequencies)
- Direct-Sequence Spread-Spectrum (DSSS)—–直序扩频
- Frequency Hopping Spread-Spectrum (FHSS)—–跳频扩频
媒体访问方式—–CSMA/CA c=b+log2 (1+s/n)
在传输前先侦探看网络是否有人在用这个频宽,在网络空闲的时候在发送,避免发送冲突
- 根据算法侦听一定时长
- 发送数据前发包声明
Request to Send/Clear to Send (RTS/CTS)
802.11b
802.11b在802.11上增加了cck补充代码键,提升了5.5或11 Mbit/s
802.11a
802.11A几乎与802.11b同时发布
802.11A开始使用了5Ghz带宽,应为2.4G真的是干扰的东西太多了微波炉、蓝牙、无绳电话都是在2.4Ghz上
802.11n
他也是工作在2.4GHz,用的OFDM(Orthogonal Frequency-Division Multiplexing )信号调制方法与802.11a速率相同传输的速率,他也向后兼容802.11b并切换为CCK信号调制方法
如果这个网络里面有不支持802.11g他就会自动降到802.11b,这样速度就降下来了
802.11n
他可以工作在2.4Ghz或者5Ghz速度可以达到300Mbps最高600Mbps
为了达到这个传输速度MIMO翻译(多进多出通信技术)技术,就是用多个天线来实现的,可以收多个无线电波每个都是独立发送的
如果这个网络里面有不支持802.11g他就会自动降到802.11b,这样速度就降下来了
2.4GHz频段介绍
美国 -1 to 11 (2.412 GHz - 2.462 GHz)
欧洲 -1 to 13 (2.412 GHz - 2.472 GHz)
日本 -1 to 14 (2.412 GHz - 2.482 GHz)
802.11规定了每个信道要分22Mhz不够分只能重叠, 只有三个完全不重叠的信道
![]()
802.11头术语
DU (Data Unit)即数据单元:信息传输的最小数据集合
传递过程逐层封装 (Encapsulation)
- 这个逐层封装就是每一层都进行封装
SDU:就是上一层封装好的包给下一层接收的包叫SDU对于下层来说
PDU:就是对于SDU上层来说就叫做PDU
数据链路层可以细分为2层
- 逻辑链路子层(LLC)
- 媒体访问子层(MAC)
MPDU和MSDU
MSDU:逻辑链路子层封装后传给MAC 对于MAC而言就成为MSDU、
MPDU:下面是MAC的处理过程
- MSDU→MIC →分帧→添加IV→加密→添加MAC头部→MPDU
- 整个过程叫做MPDU

PPDU:
MPDU/PSDU +物理头 =PPDU →RF发射
添加完物理头整个过程就叫做PPDU

802.11,MAC头部
![]()
Data和FCS介绍
![]()
Data
Frame Body 会变长度
数据字段,未加密的最大MSDU长度为2304字节(其中包含最大256字节的上层信息,和可被传递的数据2048字节)。
不同的加密方法增加一定的内容长度
WEP加密,增加8字节=最大2312字节
WPA1加密,增加20字节=最大2324字节
WPA2加密,增加16字节=2320字节
控制帧是没有这个Frame Body的
FCS
发送端对全部的Header(MAC头部)和Frame Body内容进行CRC计算即为叫FCS
计算完成后打成一个数据包叫这个数据包发送给接收方,接收方会叫不算后4位的FCS叫前面的也进行CRC的计算,计算完成后给后4位的FCS进行比较,比较不一致就叫个包给丢弃掉,一致回发一个ACK,
注意:只有单播帧才会进行比较,广播帧和多播帧可能会接收但是不会被比较
802.11 Header(MAC头)
![]()
![]()
这个就是
![]()
下面说的就是这个
![]()
他一共有30个字节分7段
- 1段.Frame Control:
- 帧控制结构,包含MAC帧的类型信息和其他控制信息;
- 2段.Duration/ID:
- 持续时间/标识,表示下一个要发送的帧要等待的时间
- ap发送换 还有在客户端发送的是PS Poll帧的时候表示这个就是AID了不是时间了
- 所有的控制帧都会使用到Association ID。TSA是省电模式的时候AP进行唤醒会发送一个唤醒帧然后,STA唤醒后会发送给AP PS-Poll 帧(type是1,type的子类型是10)就问AP要AP里面缓存的原本要发给我的帧给取回来这时Association ID就不是时间了里面是AID(Association ID)了。AP会按照AID(Association ID)叫应该给谁的缓存的数据包发送给谁。
- 还有当STA连接AP的时候,AP会给STA发送一个AID(Association ID)就是一个关连的ID
- ap发送换 还有在客户端发送的是PS Poll帧的时候表示这个就是AID了不是时间了
- 持续时间/标识,表示下一个要发送的帧要等待的时间
- 3和4和5和7段.Address Fields:
- 地址域,包括源地址、目的地址、发送方地址和接收方地址,每个地址的含义取决于控制域中的To DS位和From DS位;
- 6段.Sequence Control:
- 序列控制域,由12位序列号(Sequence Number)和4位片段号(Fragment Number)组成,用于标识帧的序号;
- Frame Body:MAC帧的负载,用于发送或接收的信息
802.11 Frame Control(帧控制域)
![]()
下面主要说的是上面圈主的
1段.Protocol Version(协议版本)
有四种可能01,10,00,11
- Protocol Version:协议版本,通常为0

2段.Type(无线数据的类型)
![]()
有三种
- 1.叫管理
- 管理帧(Management):主要用于STA与AP之间协商、关系的控制,如关联、认证、同步等
- 2.叫控制
- 控制帧(Control):用于对设备的各种状态进行控制,相互之间传递状态信息;
- 3.叫数据
- 数据帧(Data):用于传输数据
这个是他和Subtype

- 1.叫管理
3.段.Subtype
![]()
无线数据的类型子类型
![]()
下面的可以点击去看
4和5段.To DS和From DS
![]()
To DS:表明该帧是BSS向DS发送的帧;
From DS:表明该帧是DS向BSS发送的帧
![]()
两个都是00表示为:出现在IBSS环境中也就是基本服务及,在这个网络里没有AP,这个网络中至少有两个STA进行通信 是不同过AP进行通信的
两个是10表示为:基础型网络中由工作站发出的数据,也就是STA发向AP的
两个是0表示为 : 基础型网络中由无线接入点AP发出的数据帧,也就是AP发向STA的
两个是11表示为:无线桥接模式中无线接入点AP之间交互的数据帧,这时才会用到Address4字段,也就是两个AP经典的WDS进行的
6段.More Fragment
![]()
用于说明长帧被分段的情况,如果经过分段处理该值设置为1;
是1的时候也就是数据没有传完分段穿的
7段 Retry
![]()
Retry:用于指示该帧是否需要重传,如果是重传帧该值设置为1;
比如我给目标发送请求对方没有回复ACK这就属于丢包了,然后就重传
8段Power Management
![]()
分为活动模式/省电模式:省电模式则该值是1;0是活动模式
AP是没有省电模式的他的值永远是0 STA有省电模式:省电模式会接收特点的AP信号,其他信号就不接收,AP可以发送唤醒数据帧唤醒STA为活动模式,唤醒后STA会为AP缓冲区要发给他的东西
无线通信设备里面有个放大器的组件在无线网卡里最耗电的一个组件,放大器叫计算机里面的二进制的电磁脉冲电信号放大成为无线电波
- 接收端接收到的微弱的电波用接收端的放大器进行放大你识别到是0还是1
9段More Data
![]()
为1的时候:当AP缓存了最少有一个MSDU时,就会向省电模式的STA发送1的帧,表示有数据要传输给STA,接收到此帧的STA唤醒自己并向AP发送PS-POLL帧,取回由AP为其缓存的数据
被用于AP他更多的广播/多播帧需要发送的情况:More Data:值也为1
多的一个
![]()
Protected Frame:如果帧体部分包含被密钥套处理过的数据,则设置为1,否则设置为0,被WPA加密过就为1
10段Order
![]()
长帧分段传送采用严格编号方式时设置为1,否则设置为0,就按顺序发是1不是俺顺序发送是0
管理帧(Management)
![]()
Beacon(信标帧)是有AP发出来的
注意:他会根据设备可以变长的
Beacon(信标帧)是有AP广播发送的,默认AP配置好后会发送一定范围的发送无线电波发送Beacon(信标帧)就是给别人说我无线网络的存在,里面有无线网络的BSSID和ESSID也就是AP的MAC地址个名称,1秒发送10个,1024毫秒发送1个
Beacon(信标帧)结构
![]()
![]()
probe request (探测请求帧) 和Probe Response(探测响应)
probe request (探测请求帧)
是STA发出来的
probe request (探测请求帧)是有STA发出来的,比如我们回家就自动连接到了WIFI,是STA自动发针对找连接过的AP
![]()
SSID字段
探测附近的SSID
![]()
探测附近的SSID有没有连接过的
![]()
Supported字段
支持多少速率
探测附近的SSID
![]()
探测附近的SSID有没有连接过的
![]()
Extended Spupported
探测附近的SSID
![]()
Probe Response(探测响应)
是AP发出来的
Probe Response(探测响应)如果发现连过的AP时,里面的配置速率和SSID相同的话AP才会响应
Probe Response(探测响应)结构
![]()
![]()
Association和Reassociation(关联帧)
身份验证成功后,STA执行关连操作成功就加入了无线网络
ASSOCIATION帧结构
![]()
时间周期
![]()
要关联那个SSID上
![]()
REASSOCIATION帧结构
他和ASSOCIATION就多一个
![]()
![]()
Disassociation(解除连接帧)和Deauthentication(解除认证帧)
帧结构
![]()
下面说的就是圈住的
![]()
![]()
ATIM(通知传输指示消息)
不常见
只工作在ad-boc网络环境下就是没有AP环境下,其中一个STA充当一部分AP功能,那个充当AP的STA唤醒STA就发送ATIM这个帧
帧的结构
![]()
控制帧(Control)
会说到ACK,PS-Poll,RTS,CTS无线渗透有管的
![]()
ACK 帧
ACK是进行确认的,只有单播帧需要ACK立即确认。组播帧和广播帧不需要ACK确认
接收端接收到一个数据返回给ACK进行确认,接收一个就会一个ACK进行确认收到了
ACK响应需要非常快,现在立即响应ACK都提升到硬件响应了,不是驱动层,都是硬件层进行响应的了,还不到驱动层都响应了
下面ACK的包结构
![]()
Receiver
![]()
PS-POLL帧
Association ID就是AID
AID:当一个STA连接一个AP的时候,AP会给发送STA发送一个Association ID,STA拿到以后会加这个ID保存到内存里面。当STA进入省电模式的时候有另外一个STA发送给他数据时,AP通过Beacon发送TIM(Traffic indication map)其中包含AID会发送所有在这个网络里面的STA,STA会比较里面的AID如果不符STA就不会接收这个包,STA符合里面的AID他就会接收就会从省电模式变成活动模式了,接收后STA就会给AP发送PS-POll帧了,AP接收后会发给STA包里面Frame是1如果是1就代表缓存里面还有,STA接收后看见Frame是1发送给AP ACK确认接收到了, STA在发送PS-POll帧领取下一个缓存的帧,AP接收到STA的ACK就知道了STA收到了包,然后AP又接收到了PS-Poll,叫第二个缓存的包发送给STA,STA在发送ACK在确认直到叫AP发送Frame是0缓存的帧拿完,在叫自己进入省电模式
![]()
PS-Poll帧结构
![]()
RTS/CTS
RTS和CTS是CSMA和CA的一种方法补充手段:为了降低冲突产生的可能性,应为无线传输冲突会造成很大的影响
RTS和CTS:AP发送给STA RTS,现在处于空闲状态接收端会响应CTS给发送端, 注意他发送大的包的时候才会使用RTS和CTS
CSMA和CA:的隐藏节点,就是有1和2访问同时访问3的时候,3可能就看不到其中一个,这个就叫隐藏节点
RTS/CTS传输过程
![]()
下面1-4这个对应的上面的
![]()
RTS帧长度20字节
![]()
![]()
CTS帧长度14字节
![]()
![]()
无线通信过程
连接到无线网络
Probe
STA向所有信道发出probe帧,发现AP
AP应答Response
Authentication
STA向AP发出验证请求
进行认证过程(步骤可变)
.AP响应STA的认证结果
Association
STA发出关联请求
AP响应关联请求
关联成功,开始通信
认证过程
WEP探测过程
STA和AP都采用的WEP加密实现过程
AP发送给STA一个Beacon里有标识使用WEP加密,就是给STA说你必须使用WEP加密进行给我通信 ,STA回AP一个普通一个Probe帧,AP收到STA发的AP在给STA回一个Probe Response
![]()
WEP加密用OPEN(开放身份认证)认证过程
WEP加密用OPEN(开放身份认证)认证方式和OPEN(开放身份认证)认证通信基本是相同的
WEP OPEN: 认证后通信数据用WEP加密的
是OP EN认证如果STA输入密码,认证是接受的通过的,但是后面通信的时候就会出现问题,应为后续的解密过程会用到这个密码IV其实向量加密的一个密钥流,AP收到STA的包后用STA的密码解密发现里面不对AP就叫这个包给丢掉了
WPA探测过程
两个AP的Beacon包内容不同,但都声明了采用WPA加密,不同厂商对802.11标准的实现方式不同报头包含WPA1字段信息
![]()
![]()
WEP PSK认证过程
就是使用共享密钥用WEP加密
STA发送一个Authentication里面有密钥给AP,AP回STA一个Challeng里面128字节的字符串随机数,然后STA用共享密钥通过加密算法给128随机数加密,加密完后STA叫一串密文发过去,AP拿到这个密文AP也知道共享密钥给一串密文解密,然后解密后给他刚才发送给STA的随机数进行比较,如果比较结果相同AP就会身份认证成功,
大部分无线驱动首先尝试open验证,如果失败则尝试PSK
WEP 共享密钥认证过程和WEP PSK认证过程是一样的
隐藏AP
隐藏AP的话STA关连包里要有目标AP的ESSID
WEP加密 和RC4算法
WEP数据传输是用的RC4算法,RC4是对称加密来实现机密性
CRC32 算法检查数据的完整性
WEP一套算法使用的24位的其实向量(IV) 和用户输入的共享密码,一起生成key
受到美国加密技术的进行出口的法律,大于多少是禁止出过的
RC4加密
RC4算法是RSA实验室研究开发的
RC4算法本身简单而且速度快
加密:RC4是对称流加密,有块加密和流加密:块加密就是每次有一个数据块进行加密,流加密就是数据流来一个加密一个,
他叫明文的数据流和密钥流进行异或(XOR)计算
他进行进行加密的时候有两个过程来完成的,下面是计算过程
第一个过程每次通信产生的其实向量(IV),是有STA随机的其实向量(IV),也是24位的伪随机数和我们设置的WEP AP的密钥把他们两个给合并成一个字符串,然后用KSA计算,计算后生成起始状态表,然后在用RPGA算法计算最终生成密钥流,要是直接给他不进行KSA和RPGA的加密过只有几个字符是不够的,应为数据流都是很大的,他要给数据流个密钥进行一对一对的异或运算,密钥流要和他的数据流每一个位进行异或运算
自己画的下面是据流和密钥流进行异或(XOR)计算
![]()
下面是RC4算法加密流过程和解密流程
加密发送给AP
![]()
AP收到数据包
![]()
WPA系统
WEP有安全隐患,收集多和IV就可以破解
WPA1和WAP2安全都差不多的,WPA2比较安全
为什么还要用WPA1应为WPA1支持老的硬件
WPA1:使用加密套件是TKIP(临时密钥完整性协议),里面有数据对称加密RC4流加密 ,完整性使用的是Michael进行验证
使用的是48位IV(其实向量)
WPA2:使用的加密套件是CCMP,数据加密使用的是AES
WPA加密两个类型
WPA个人:我们应该很熟悉使用的是共享密钥身份验证
WPA企业:使用802.1x和Radius服务器来来实现的认证是EAP框架他叫多个认证通信协议组合到一起
密钥交换
多个设备连接一个AP形成一个无线网络,就可以进行共享信道进行数据传输,分两种,
第一个叫单播:STA和AP这两端之间进行通信,需要一个单独的密钥进行加密叫做对偶密钥PTK,
第二还叫广播:发送给AP所有的设备,还有一个组播,发送给一组叫组播,要发送给这个组里的一个人。组密钥(GTK)
这两个都是临时的
PMK
企业环境下,
MK进行TLS-PRF加密算法,算出一个摘钥值就是叫PMK,基于PMK可以算出PTK,然后才进行STA到AP的私聊的信息
PSK共享密钥下也就是个人
网络名称(SSID)加上wifi密钥(PSK)加上迭代次数4096进行计算生成PMK,基于PMK可以算出PTK然后才进行STA到AP的私聊的信息
PMK大小256位32个字节
PTK不管是企业还是个人都不会在AP和STA之间传输,都是PTK加上随机数,AP那边也是PTK加上同样的随机数,取得同意的信息后,用同样的计算方法取得同样的结果
PTK的生成过程
画的一个简单的图
![]()
四步握手
AP发送给STA包里面有随机数1,然后STA在生成随机数2就有5个PMK,随机数1,随机数2,STA的MAC和APMAC了,可以生成PTK了
STA叫第二个随机数2发送给AP里面随机数是,可以嗅探到的防止被修改,加上了完整性校验(MIC),这个完整性校验值(MIC),就是STA的PTK用哈希计算生成出来的完整性校验(MIC)值
AP收到STA发的随机数2就也有5个PMK,随机数1,随机数2,STA的MAC和APMAC了,可以生成PTK了,在 进行哈希计算生成自己的完整性校验值(MIC)进行STA发过来的完整性校验值(MIC)比较一样就是没有修改过的
然后AP在发送GRK-MIC然后STA在会一个ACK确定
画的一个简单的图
![]()



