参考:

WiFi基础(四):WiFi工作原理及WiFi接入过程 - liwen01 - 博客园 (cnblogs)

WiFi基础(五):802.11帧结构与WiFi控制帧、管理帧、数据帧 - liwen01 - 博客园 (cnblogs)

WiFi是一种基于IEEE 802.11标准系列的无线局域网技术,使设备能够在特定范围内(通常几十米到几百米)通过无线信号进行通信。

再次强调一点,wifi工作在物理层和链路层,是一种局域网。

wifi的mac帧

802.11 无线 WiFi 网有三类帧:管理帧、控制帧、数据帧。与有线网相比,无线 WiFi 网会复杂很多。大部分应用软件开发对 WiFi 的控制帧和管理帧了解得并不多,因为它们在物理层和数据链路层就已经被处理了,上层应用很少能感知到。

一般是在设备出现 WiFi 连接不上,或者是工作不稳定的情况下,才会去分析 WiFi 驱动工作情况以及抓 WiFi 空口包数据来分析。

有抓过 WiFi 空口包的同学应该清楚,无线 WiFi 网的网络包不管是从包类型还是包信息内容来看,都会比有线网的包复杂很多。

管理帧

管理帧有:Beacon 信标帧、Probe Request 检测请求帧、Probe Response 检测应答帧、Authentication 认证帧、De-Authentication 解除认证帧、Association Request 连接请求帧、Re-Association Request 重新连接请求、Association Response 连接应答帧


Beacon 帧

Beacon 的 Subtype 为1000,所以整个帧类型为:001000b,也就是 0x08。

使用过滤条件为:wlan.fc.type_subtype == 0x08 可以刷选出所有的 beacon 帧。

Beacon 由无线接入点 (AP)定期广播,用于宣布无线网络的存在,并向附近的客户端设备提供必要的网络信息,以便它们能够加入和管理连接。

(a) Beacon帧的功能:

网络发现:Beacon 帧包含了无线网络的SSID (Service Set Identifier),帮助客户端设备发现和识别无线网络。

同步:Beacon 帧携带时间戳,客户端设备通过接收 Beacon 帧可以同步其时钟与AP的时钟,这对于协调设备的定时和节能至关重要。

传递网络配置信息:Beacon 帧包含网络的配置信息,如支持的速率、加密方法、信道信息等,帮助客户端设备配置和优化其连接。

信号广播:Beacon 帧还帮助客户端设备确定信号强度,从而选择合适的 AP 进行连接。

(b) Beacon帧的工作原理

定期广播: AP按照设定的 Beacon 间隔 (通常为100 TU,即102.4毫秒)定期发送Beacon帧,以宣布其存在和提供网络信息。

客户端扫描: 无线客户端设备定期扫描信道,接收不同 AP 发送的 Beacon 帧,通过这些帧中的信息来选择合适的 A P进行连接。

网络加入和管理: 客户端设备一旦选择了合适的 AP,便通过 Beacon 帧中的信息来配置连接参数,例如信道、速率、加密方法等。

节能管理: 当设备进入节能模式时,它会依赖 Beacon 帧中的 TIM 字段来判断何时需要唤醒接收数据,减少不必要的能耗。


sta被动监听ap的beacon帧sta主动探测ap的信息有什么区别?

在 Wi-Fi 网络中,STA(Station,如手机、笔记本电脑)可以通过 被动监听 Beacon 帧主动发送 Probe 帧 两种方式获取 AP(Access Point,如路由器)的信息。它们的核心区别如下:

被动监听 Beacon 帧

工作原理

AP 周期性广播 Beacon 帧(默认间隔约 100ms),包含网络基本信息(如 SSID、支持速率、信道等)。

STA 无需主动请求,只需在信道中监听即可获取信息。

特点

说明
触发方式由 AP 主动广播,STA 被动接收。
功耗低(STA 只需监听,无需发送数据)。
实时性依赖 Beacon 间隔(默认 100ms,可能延迟)。
隐蔽性高(STA 不暴露自身 MAC 地址,适合隐私场景)。
适用场景STA 初次扫描网络、节能模式(如 IoT 设备)、隐藏 SSID 网络(需监听 Beacon)。

Beacon 帧内容

SSID、支持的速率、加密方式、信道、QoS 能力等。

示例:

Beacon Frame:
  - SSID: "HomeWiFi"
  - Channel: 6
  - Supported Rates: 1, 2, 5.5, 11 Mbps (802.11b)
  - Security: WPA2-PSK

主动探测(Probe Request/Response)

工作原理

STA 主动发送 Probe Request 帧(可指定 SSID 或广播探测)。

目标 AP 收到后回复 Probe Response 帧(内容类似 Beacon 帧)。

特点

说明
触发方式由 STA 主动发起请求,AP 响应。
功耗较高(STA 需发送 Probe Request)。
实时性高(STA 可立即获取信息,无需等待 Beacon 间隔)。
隐蔽性低(STA 暴露自身 MAC 地址和探测行为)。
适用场景快速发现网络、连接隐藏 SSID 网络、主动切换 AP(如漫游优化)。

Probe 帧类型

广播 Probe Request

Probe Request (Broadcast):
  - SSID: "" (空或广播)
  - STA MAC: 00:11:22:33:44:55

定向 Probe Request(针对特定 SSID):

Probe Request (Directed):
  - SSID: "OfficeWiFi"
  - STA MAC: 00:11:22:33:44:55

手机发现wifi信息是通过监听beacon还是主动探测的?

手机发现 Wi-Fi 信息时,通常同时使用被动监听 Beacon 和主动探测(Probe Request/Response)两种方式,但具体行为取决于手机操作系统、网络环境和用户操作场景。以下是详细分析:

默认情况下:混合模式(监听 + 主动探测)

(1) 被动监听 Beacon(主要方式)

工作原理

AP(路由器)周期性广播 Beacon 帧(默认每 100ms 一次),包含 SSID、加密方式、信道等基本信息。

手机在后台扫描时,优先通过监听 Beacon passively 获取周围 Wi-Fi 列表。

优点

低功耗:手机无需发送数据,仅需接收。

隐蔽性:不暴露手机 MAC 地址(除非连接)。

适用场景

手机锁屏或未主动操作时的后台扫描。

显示“可用 Wi-Fi 列表”中的大部分网络。

(2) 主动探测(Probe Request)

工作原理

手机主动发送 Probe Request 帧(广播或定向指定 SSID),请求附近 AP 回复 Probe Response

触发条件

用户手动刷新 Wi-Fi 列表(如 iOS/Android 下拉刷新)。

尝试连接隐藏 SSID 网络(必须主动发送 Probe Request 指定 SSID)。

快速漫游时(如从卧室走到客厅,手机主动探测新 AP)。

优点

实时性高:立即获取 AP 信息,无需等待 Beacon 间隔(100ms)。

缺点

功耗较高:手机需发送数据包。

隐私风险:暴露手机 MAC 地址和探测行为(可通过随机 MAC 地址缓解)。

不同操作系统的行为差异

系统默认策略特殊优化
Android混合模式(监听 Beacon + 定时主动 Probe)Android 10+ 默认使用随机 MAC 地址探测。
iOS优先监听 Beacon,用户手动刷新时触发主动 Probe隐藏 SSID 网络需手动选择后触发定向 Probe。
Windows主动探测比例更高(尤其快速扫描模式)企业网络可能禁用广播 Probe 以提升安全性。

用户操作对发现方式的影响

(1) 手机锁屏/后台状态

主要依赖 Beacon 监听

每隔几秒扫描一次,更新 Wi-Fi 列表(不频繁发送 Probe)。

例:手机放在桌上,自动显示“HomeWiFi”和“CoffeeShop”等 Beacon 广播的网络。

(2) 用户主动刷新 Wi-Fi 列表

触发主动 Probe Request

手机会发送广播 Probe Request,快速获取最新 AP 信息。

例:在机场手动刷新 Wi-Fi 列表,立即显示所有可用网络。

(3) 连接隐藏 SSID 网络

必须发送定向 Probe Request

手机会明确发送包含目标 SSID 的 Probe Request(如 "MyHiddenNetwork")。

例:企业网络隐藏 SSID 时,需手动输入名称后手机才会探测。

隐私与安全考量

随机 MAC 地址

Android/iOS 在发送 Probe Request 时默认使用随机 MAC,避免真实 MAC 暴露。

例外:连接已知网络时可能切换回真实 MAC。

Beacon 监听更隐蔽

仅接收数据,不暴露设备身份,适合公共场合(如商场、机场)。

如何验证手机的行为?

(1) 抓包分析(Wireshark)

过滤条件:

wlan.fc.type_subtype == 0x08 (Beacon 帧)

wlan.fc.type_subtype == 0x04 (Probe Request)

结果示例

锁屏状态:仅见 Beacon 帧。

手动刷新:出现大量 Probe Request/Response。

(2) 手机开发者选项

Android

启用 Wi-Fi 详细日志(开发者选项 → Wi-Fi 扫描限速)。

iOS

需使用 Apple 私有工具(如 Airport 日志)。

总结

被动监听 Beacon

主要方式,低功耗,隐蔽,但更新延迟(依赖 Beacon 间隔)。

主动探测 Probe

辅助方式,实时性强,但功耗高,隐私风险略高。

用户行为决定主导机制

后台静默 → Beacon 监听。

主动操作 → Probe 探测。

优化建议

公共场合建议关闭 Wi-Fi 自动连接,减少 Probe 暴露。

企业网络可禁用 Beacon 广播 SSID,强制终端主动探测以提升安全性。


隐藏网络是否会广播 Beacon 帧?

会广播 Beacon 帧,但隐藏了 SSID 字段

隐藏网络(Hidden Network)的 AP 仍会周期性发送 Beacon 帧,但其中的 SSID 字段被置空(长度为 0)。

其他信息(如支持的速率、信道、加密方式等)仍正常广播。

抓包示例

Beacon Frame:
  - SSID: "" (空)
  - Channel: 6
  - Security: WPA2-PSK

为什么设计隐藏 SSID?

初衷:降低网络被发现的概率(避免普通设备自动扫描到)。

实际效果

安全性极低:隐藏 SSID 无法防止黑客探测(专业工具可捕获定向 Probe Request)。

增加连接复杂度:用户需手动输入 SSID。

如何连接隐藏网络?

(1) 手动输入 SSID(必备步骤)

手机/电脑需主动指定 SSID,无法通过扫描列表发现。

示例(Android/iOS):

进入 Wi-Fi 设置 → 选择“添加网络”或“其他网络”。

输入准确的 SSID加密类型(如 WPA2)和 密码

(2) 连接时的底层交互

STA 发送定向 Probe Request

手机会主动发送包含目标 SSID 的 Probe Request(即使 SSID 隐藏):

Probe Request:
  - SSID: "MyHiddenNet" (明文)
  - STA MAC: 00:11:22:33:44:55

隐私风险:此过程会暴露隐藏的 SSID 和手机 MAC 地址(可通过随机 MAC 缓解)。

AP 回复 Probe Response

目标 AP 验证 SSID 匹配后,回复 Probe Response(内容类似 Beacon 帧):

Probe Response:
  - SSID: "MyHiddenNet" (明文)
  - Channel: 6
  - Security: WPA2-PSK

后续流程

认证(Authentication)→ 关联(Association)→ DHCP 获取 IP(与普通网络相同)。

(3) 抓包验证

使用 Wireshark 过滤:

wlan.fc.type_subtype == 0x04 (Probe Request)  
wlan.fc.type_subtype == 0x05 (Probe Response)  
wlan.ssid == "MyHiddenNet"  

隐藏网络的优缺点

优点缺点
减少普通设备自动扫描干扰安全性无实质提升(SSID 仍可被嗅探)
降低无关用户连接尝试连接步骤繁琐(需手动输入)
增加手机功耗(需主动探测)

更多待补充。


手机选择wifi列表里的wifi连接时,还需要先探测吗还是直接连?

当手机从 Wi-Fi 列表中选择一个网络并尝试连接时,其具体行为取决于 网络类型(开放/加密、隐藏/非隐藏)历史连接记录。以下是详细流程分析:

常规情况(非隐藏网络,且已保存凭证)

步骤说明

直接发起认证

如果手机之前成功连接过该网络(密码已保存),无需重新探测,直接发送 Authentication + Association Request(认证+关联请求)。

[手机] -- Authentication Request --> [AP]  
[手机] <-- Authentication Response -- [AP]  
[手机] -- Association Request --> [AP]  
[手机] <-- Association Response -- [AP]  
[手机] -- DHCP Request --> [AP]  

快速漫游优化

在已连接过的网络中切换(如从客厅 AP 到卧室 AP),手机会直接使用保存的信息发起快速重关联(802.11r 或 OKC 优化)。

抓包验证

使用 Wireshark 过滤:

wlan.fc.type_subtype == 0x0b (Authentication)  
wlan.fc.type_subtype == 0x00 (Association Request)  

无 Probe 帧:表明手机跳过了探测阶段。

特殊情况需主动探测

(1) 隐藏 SSID 网络

必须发送定向 Probe Request

隐藏网络不会广播 Beacon 帧,手机需主动发送包含 SSID 的 Probe Request 确认 AP 存在。

[手机] -- Probe Request (SSID="MyHiddenNet") --> [AP]  
[手机] <-- Probe Response -- [AP]  
[手机] -- Authentication Request --> [AP]  

(2) 首次连接新网络

可能触发探测

即使 SSID 公开,部分手机(如 Android)会先发送 Probe Request 验证 AP 信号强度,再决定是否连接。

目的:避免尝试连接已失效的 AP(如路由器已关机但 Beacon 缓存未过期)。

(3) 网络配置变更

重新探测

如果 AP 的加密方式或信道发生变化(如从 WPA2 升级到 WPA3),手机可能先探测再连接。

不同操作系统的行为差异

系统行为特点
Android倾向保守:首次连接或信号弱时可能主动 Probe,验证 AP 可用性后再认证。
iOS更直接:若 SSID 和加密方式匹配保存记录,通常跳过探测,直接发起认证。
Windows类似 Android,但企业网络可能强制探测以检查 802.1X 认证服务器状态。

隐私与安全影响

随机 MAC 地址

首次连接时,Android/iOS 默认使用随机 MAC 发送 Probe/Authentication,连接成功后可能切换为真实 MAC。

探测暴露风险

定向 Probe Request 会泄露目标 SSID(即使未连接),隐藏网络仍需谨慎。

总结

大多数情况

选择已保存的非隐藏网络 → 直接认证,无需探测。

需要探测的情况

隐藏 SSID、首次连接、信号不稳定或配置变更时。

优化建议

企业网络可禁用 Beacon 广播 SSID,强制终端主动探测以增强安全性。

公共网络建议关闭自动连接,减少 Probe 暴露风险。

抓包验证 Tip

若连接过程出现 Probe Request/Response,说明触发了探测;若直接出现 Authentication,则跳过了探测。

更多直接查阅上方参考文章或者相关资料。

待补充。

控制帧

待补充。

数据帧

待补充。

WIFI扫描方式

WIFI扫描方式分为主动扫描和被动扫描两种,主动扫描是指STA主动去探测搜索无线网络;被动扫描则是指STA只会被动的接收AP发送的无线信号。下面分别对两种扫描方式进行简要介绍。

主动扫描

主动扫描情况下,STA会主动在其所支持的信道上依次发送探测信号,用于探测周围存在的无线网络,STA发送的探测信号称为探测请求帧(Probe Request)。探测请求帧又可以分为两类,一类是未指定任何SSID,一类是指定了SSID的。(注意:Probe Request帧发送方式是广播)

1) 探测请求帧不指定SSID

探测请求帧里面如果没有指定SSID,就是意味着这个探测请求想要获取到周围所有能够获取到的无线网络信号。所有收到这个广播探测请求帧的AP都会回应STA,并表明自己的SSID是什么,这样STA就能够搜索到周围的所有无线网络了。(注意:如果AP的无线网络中配置了Beacon帧中隐藏SSID的功能,此时AP是不会回应STA的广播型探测请求帧的,STA也就无法通过这种方式获取到SSID信息。)

2) 探测请求帧指定SSID

探测请求帧中指定了SSID,这就表示STA只想找到特定的SSID,不需要除指定SSID之外的其它无线网络。AP收到了请求帧后,只有发现请求帧中的SSID和自己的SSID是相同的情况下,才会回应STA。

被动扫描

被动扫描情况下,STA是不会主动发送探测请求报文的,STA只是被动的接收AP定期发送的信标帧(Beacon帧)。(注意:Beacon帧是AP周期性发送的)

AP的Beacon帧中,会包含有AP的SSID和支持速率等信息,AP会定期的向外广播发送Beacon帧。例如AP发送Beacon帧的默认周期为100ms,即AP每100ms都会广播发送一次Beacon帧。STA通过在其支持的每个信道上侦听Beacon帧,来获知周围存在的无线网络。(注意如果无线网络中配置了Beacon帧中隐藏SSID的功能,此时AP发送的Beacon帧中携带的SSID是空字符串,这样STA是无法从Beacon帧中获取到SSID信息的。即,STA要通过主动扫描来获取网络信息)

手机或电脑的无线网卡,一般来说这两种扫描方式都会支持;(例如,宿舍某位同学的WiFi信号被其隐藏,你要使用网络,那么你会先向他询问SSID,然后进行主动扫描并连接),一般VoIP语音终端通常会使用被动扫描方式,其目的是可以节省电量。

WIFI帧结构

IEEE802.11系列标准定义了WLAN无线网络数据帧的帧结构,和基本的物理层、MAC层通信标准。与802.3定义的以太网数据帧格式及通信方式不同,802.11定义的WLAN无线局域网由于通信介质和通信质量的问题,不能直接采用802.3的通信方式。在WLAN中,数据链路层面上的通信模式要比802.3以太网中的通信要复杂的多,因此802.11的帧格式也要相对复杂。

802.11无线帧最大长度为2346个字节,基本结构如下:

802.11帧中各个字段含义如下:

l Frame Control: 帧控制字段,含有许多标识位,表示本帧的类型等信息。

l Duration ID: 本字段一共有16bit,根据第14bit和15bit的取值,本字段有以下三种类型的含义:

(1)当第15bit被设置为0时,该字段表示该数据帧所传输要使用的时间,单位为微秒。(表明该帧和它的确认帧将会占用信道多长时间,Duration 值用于网络分配向量(NAV)计算)

(2)当第15bit被设置为1,第14bit也为0时,该字段用于让没有收到Beacon新标帧(管理帧的一种)公告免竞争时间。

(3)当第15bit被设置为1,第14bit为1时,该字段主要用于STA告知AP其关闭天线,将要处于休眠状态,并委托AP暂时存储发往该STA的数据帧。此时该字段为一种标识符,以便在STA接触休眠后从AP中获得为其暂存的帧。

l Address: 802.11与802.3以太网传输机制不同,802.11无线局域网数据帧一共可以有4个MAC地址,这些地址根据帧的不同而又不同的含义,但是基本上第一个地址表示接收端MAC地址,第二个地址表示发送端MAC地址,第三个地址表示过滤地址。

l Seq-ctl: 顺序控制位,该字段用于数据帧分片时重组数据帧片段以及丢弃重复帧。

l Frame Body: 帧所包含的数据包。

l FCS 帧校验和:主要用于检查帧的完整性。

连接过程

连接三步骤

  1. 扫描(Probe Request、Probe Response)

  2. 认证(Authentication)

  3. 关联(Association Request、Association Response)

具体参考:WiFi 基础(四)—— 连接过程_wifi连接流程-CSDN博客

认证和加密

认证和加密

WiFi 连接过程其实主要就做了两件事:身份认证和密钥交换

为什么要进行身份认证

为了只让特定(合法)用户使用当前网络

为什么要进行密钥交换

为了使用加密的方式进行通信,防止通信信息被第三方截获破解导致隐私泄露

如何进行身份认证

只要让 AP 知道 STA 中储存的密码是否和自己的密码相等就可以了。最简单的办法:拿到 STA 的密码。AP 将其和自己的密码进行比对,相等则代表该 STA 是合法用户,应当准许接入网络,否则,应当拒绝接入。

AP 怎样拿到 STA 的密码呢?1:STA 将密码明文传输,2:STA 将密码加密传输。第 1 种方法:密码明文发送给 AP,AP 收到后确实可以验证 STA 的身份合法性,但是由于密码是明文传输的,相当于向当前空间区域广播了此网络的密码,这样别的 STA 也可以轻松地收到密码并加入当前网络。这样其它本来非法的用户也变得合法了,显然这种方式是不可取的。那第 2 种方法呢:将密码加密传输。那试问 STA 将密码加密了,它们俩之间又实现没有同步密钥,AP 拿到数据也解不出密码呀,这种方案显然也是不可取的。

那能在不泄露密码的情况下达到身份认证的目的吗?

具体参考:WiFi 基础(六)—— 认证和加密原理_无线认证和加密原理-CSDN博客

暂且就了解这么多吧,实际Linux应用开发中,wifi协议栈都是已经写好的,我们只要调用相关接口就可以了。

又看到一个比较不错的wifi专栏,可以看看

WiFi_浮云流响的博客-CSDN博客

wifi连接流程

参考:

WiFi基本知识总结 --- 通信框架及基础概念说明_wifi基础知识-CSDN博客

和其他通信方式相似,在进行通信前,通信双方需要进行连接。在进行WiFi通信时也是一样,接下来我们仪器看下WiFi中的连接管理功能。 我将连接管理的流程进行了简化,目的是为了读者更好的理解这些流程。下面给出的一个标准化的WiFi连接管理流程。

注:probe探测

wifi的密码就是用来加密使用的,如果无加密,那就不需要设置密码了。

WiFi连接流程主要分为:扫描、认证、关联、四次握手四个步骤,其中四次握手并非必须的步骤。它根据系统的认证方式不同,决定是否进行四次握手这一步骤。一般,前面三步即扫描、认证、关联为WiFi建立连接所必须的步骤。

扫描(Scan)

802.11MAC通过使用Scanning功能来完成Discovery,其目的是:

寻找一个网络;

当STA漫游时寻找一个新的AP;

1. 主动扫描(active scan)

在每一个信道上针对特定的网络发送Probe request报文,从收到的Probe Response中获取BSS的基本信息以及AP的能力集,如BSSID、SSID、支持的速率、加密算法等 ,Probe Response包含的信息和Beacon帧类似的。

优点:速度快

缺点:耗电

2. 被动扫描(passive scan)

通过在每个信道上侦听AP定期发送的Beacon帧来发现网络,Beacon帧中包含的该AP所属的BSS的基本信息以及AP的基本能力级,包括:BSSID、SSID、支持的速率、支持的认证方式,加密算法、Beacon帧发送间隔等。STA在收到对应的Beacon帧后就会进行判断,此AP是否是我们要找的AP以及对应的能力是否匹配以支持连接。

优点:省电

缺点:耗时长

认证(Authentication)

在扫描成功完成后,需要进行无线网络的认证,目的是:

防止未授权的STA访问网络,在访问AP之前,需要先进行身份认证。

根据认证的网络类型的不同,又可以分为以下两种:

1. 开放系统认证(Open-System Authentication)

等同于不需要认证,没有任何安全防护能力。允许任何用户加入到无线网络中来。所有请求认证的STA都可以通过认证。类似于我们家里的路由器不设定密码的情况。

STA发送包含station ID(typically the MAC address)的authentication request。

AP回复包含成功或失败的authentication response。

2. 共享密钥认证(Shared-Key Authentication)

这里的秘钥就是我们通俗说的wifi密码,它是怎么起作用的呢?AP随机产生一个challenge包(即一个字符串)发送给STA,STA将接收到的字符串拷贝到新的消息中,用密钥加密后再发送给AP。AP接收到该消息后,用密钥将该消息解密,然后对解密后的字符串和最初给STA的字符串进行比较。相同则通过认证,不相同则认证失败。

关联(Association)

当设备认证流程验证通过后,设备会再发起连接请求以关联AP设备。AP将用户信息添加到数据库,向用户回复关联响应,此过程也常被称为注册。

关联的具体步骤为:

STA发送Association request帧给到AP,AP检查通过后会回复Association Response给到STA。STA在正确收到AP回复的Association Response后,两个设备就关联上了。

那么此时会根据安全方式的不同,有两种处理方式:

如果AP采用的Open-system方式,则到这里STA已经连上AP了。

如果AP采用的WPA-PSK/WPA2-PSK/WPA3等加密方式,那么此时设备还无法正常通信。设备还需要进行四次握手,以获取加密密钥。再正确获取加密密钥后,STA才能正常使用WiFi网络。

四次握手(Four-way handshake)

当AP采用WPA-PSK、WPA2-PSK、WPA3等加密方式的情况下,当STA在成功收到AP的Association Response后。会继续进行四次握手流程,以获取用于单播帧加密的PTK,基于组播/广播帧加密的GTK。

四次握手更详细的内容参考:

Wifi_认证 、关联 和 四次握手(WPA/WPA2)_无线四次握手-CSDN博客

注意,不是TCP的那个三次握手四次挥手,完全不是一个东西。

先上图,后解释。

先说一下图中出现的 “名词”吧。

STA:就是客户端,最常见的一个实例就是——“手机”

AP:接入点,无线局域网构建者,通常情况下就是——“路由器”

PSK:STA 与 AP 直接约定的 “暗语” ,用于认证(Authentication)的,通常情况下就是 WIFI密码。

SNonce:STA 生成的随机数。

ANonce:AP生成的随机数。

PMK:PMK 是由 ESSID + PSK(通俗的密码) 通过 SHA-1 (一个Hash 算法) 计算出来的。

PTK:Pairwise Transit Key,用来加密 AP 和 STA 通讯的单播数据包,AP 与每个 STA 通讯的PTK都是唯一的。

MIC:Message Integrity Check,PTK 的前 16 位通过Hash算法得出,用于校验消息的完整性。

为什么说“各自已知的ssid和psk”?

重点理解这一点:wifi的密码是在ap上设置的,然后在station上要输入的,所以,双方都知道这个信息。

注意,以上是wifi的建立连接的过程,相当于插上了一根网线。如果有DHCP,也是连接之后的事情。插上网线,和能上网是两回事。上网需要ip,但是插上网线并不需要。

无线安全

与有线网络不同,理论上无线电波范围内的任何一个站点都可以监听并登录无线网络,所有发送或接收的数据、都有可能被截取。

为了使授权站点可以访问网络而非法用户无法截取网络通信,无线网络安全就显得至关重要。

安全性主要包括访问控制和加密两大部分

  1. 访问控制:保证只有授权用户才能访问敏感数据。
  2. 加密:保证只有正确的接收方才能理解数据。

下面是WiFi技术中常见的一些加密方式。

Wired Equivalent Privacy (WEP)

WEP是最早的,最常用的,也是最脆弱的安全保证;

使用共享秘钥RC4加密算法;

有64位密钥和128位密钥两种加密方式;

密钥长度最初为40位(5个字符),后来增加到104位(13个字符),有些设备可以支持152位加密。创建一个IV与秘钥共同加密数据包;

缺点:

WEP Key 长度太小;

WEP不提供自动修改密钥的方法;

IV 空间太小并且IV 重复使用(平均大约每 5 小时重复一次);

如果不是share认证,即使WEP密码错误,站点端显示的还是连接上,只是不能正常数据通信;

WPA(Wi-Fi Protected Access,WiFi接入保护)

遵循802.11i的草案,在802.11i未完成之前的过渡方案,对WEP的改进;

WPA 利用TKIP(Temporal Key Integrity Protocol,临时密钥完整性协议) 来代替WEP;

TKIP 仍用RC4加密算法, 但是每个包的RC4 key是不同的;

WPA 引入4个新算法;

48位初始化向量(IV),IV顺序规则(IV Sequencing Rules);

每包密钥构建(Per-Packet Key Construction);

Michael消息完整性代码Code,MIC以及密钥重获分发;

WPA2(Wi-Fi Protected Access 2,WiFi接入保护2)

基于完整的802.11i标准。

采用AES(Advanced Encryption Standard,高级加密协议)加密算法。

采用CCMP(Counter Mode with Cipher-Block Chaining Message Authentication Code Protocol,加密块链消息验证码协议的计数器模式)密钥管理协议。

支持缓存密钥和预认证。

WPA3(Wi-Fi Protected Access 3,WiFi接入保护3)

基于WPA2全面升级,目前最新也是WiFi最安全的加密方式

采用了更加安全的SAE(Simultaneous Authentication of Equals,对等实体同时验证)加密算法

使用192位的Suite-B安全套件,相较于WPA2采用的128位密钥长度,该模式将密钥长度增加至192位,进一步提升了密码防御强度。

密钥保护:使用更加安全的HMAC-SHA-384算法在四次握手阶段进行密钥导出和确认。

WPS(Wi-Fi Protected Setup)

类似的称呼:QSS/SES/AOSS/EZ-SETUP。

为解决无线安全设置比较繁琐、专业性强的问题。

如果你足够细心的话应该可以在,应该可以在家里面main路由器上找到标有WPS这个按钮,当然你家的路由器要支持这个功能的haul才可以使用。是不是突然发现这么多年终于知道那个按钮是干嘛了的感觉。

WPS有两种模式:PCB和PIN模式。因为本博客定位于科普,只介绍简单的基本知识。同样的,后面如有时间会更新一篇详细介绍该功能的文章。

关联过程

站点通过WPS协商过程获得AP当前的无线安全设置

(SSID,安全模式,密码)

正常接入到BSS。

2种常见的启动WPS协商的方式:

PIN:在AP上输入站点的PIN码;

PBC:2分钟内分别按下AP和站点上的按钮(你的STA上面也有该按钮才行)

同样的,还是盗个图来说明一下该模型

其实wifi想关的知识还有很多,一篇博客肯定是介绍不完,只在这里介绍些很基本的东西,算是一个科普吧。

wifi相关的知识如果要详细了解的话可能需要厚厚的一大本书,恰巧我看过这本书,并且打算把它推荐给你。Mattbew S. Gast写的《802.11无线网络权威指南》,由O’Reilly Taiwan公司编译 , 东南大学出版社出版的。好像O’Reilly Taiwan公司翻译了不少国外的技术类的书籍,而且质量都还不错,感兴趣的话可以找来看看。

虽然这本书比较旧了,但是对连接WiFi的一些基本知识来讲,本相当经典且并不过时。

倘若你熟读了本书,并了解了基本概念。如果想要进一步的研究WiFi,可以直接去IEEE 官网或者WFA官网找官方发布的最新的协议标准来看。

EAP

EAP(Extensible Authentication Protocol,可延伸身份认证协议)

平常我们见到最多的 wifi 安全模式都是 WAP2 PSK。由于 WEP 被发现了很多漏洞,WAP2 就出来了,它的安全性比 WEP 是高很多的,但是 WAP2 也不是绝对安全的,它的安全性有点依赖密码,也就是说当你的 wifi 密码泄露了它就变的不太安全了。

对于需要无线安全能力强的企业他们就不可以选用 wap2,wap2 可以暴力破解,以及利用一些社会工程学的一些软件进行破解,EAP 的出现就是为了满足对于安全要求高的企业。

参考:https://blog.csdn/hl1293348082/article/details/123888636

EAP 是什么? EAP 全称叫 802.1X/EAP,主要是三部分构成:

1 请求方:也就是需要链接网络的设备

2 认证方:也就是认证你这个设备是否可以进入这个网络里面

3 认证服务器 :对请求方进行身份验证,并将认证结果告诉认证方

这就是 802.1X/EAP 的认证过程。

总之,我们要知道,EAP是一种安全性很高的无线加密方式。

更多参考:无线网络 EAP 认证_eap认证-CSDN博客

Eapol,全称为 Extensible Authentication Protocol Over LAN,即 EAP Over Lan,也即基于局域网的扩展认证协议。