802.11 - WNM Sleep Mode

WNM sleep mode

前言

WNM睡眠模式是non-AP STA的扩展省电模式,使得non-AP STA能够向AP发出信号,指示其可能睡眠指定的时间长度,期间无需在每个DTIM醒来侦听beacon,且不需要执行GTK/IGTK(group temporal key/integrity group temporal key)更新。从而STA能够在没有业务收发时降低功耗并保持关联。

WNM睡眠模式对于WNM STA是可选的功能。

WNM睡眠模式能力指示

实现了WNM 睡眠模式功能的STA有dot11WNMSleepModeImplemented=true,且同时满足dot11WirelessManagementImplemented=true。
而dot11WNMSleepModeActivated=true(同时dot11TFSActivated=true)则表示该STA支持WNM 睡眠模式,此时STA将Extended Capabilities element.WNM Sleep Mode字段设置为1。当dot11WNMSleepModeActivated为true时,dot11TFSActivated应为true。
WNM Sleep Mode
IBSS(STA直接通信无需AP,也称ad hoc)中不支持WNM Sleep mode

帧格式

WNM sleep mode request

WNM sleep mode request

主要看WNM Sleep Mode Element。

字段说明
Action Type在这里插入图片描述
WNM Sleep Mode Response Status只在response中有用,在request中预留
WNM Sleep Interval fieldAction Type=1(退出)时该字段为预留;否则该字段STA指示了STA醒来接收Beacon的间隔,单位:DTIM数;该字段为0表示STA does not wake up at any specific interval;

WNM sleep mode response

WNM sleep mode response

主要看WNM Sleep Mode Element。

字段说明
Action Type在这里插入图片描述
WNM Sleep Mode Response Status在这里插入图片描述
WNM Sleep Interval fieldAction Type=1(退出)时该字段为预留;否则该字段STA指示了STA醒来接收Beacon的间隔,单位:DTIM数;该字段为0表示STA does not wake up at any specific interval;

WNM Sleep流程

WNM sleep mode request and response exchange

non-AP STA operation

non-AP STA发送WNM Sleep Mode Request帧,其中Action Type字段设置为“Enter WNM sleep mode”,并且应包括WNM Sleep Interval字段,以请求进入WNM Sleep mode。WNM Sleep Interval应小于BSS max idle period。

non-AP STA发送WNM Sleep Mode Request帧,其中Action Type字段设置为“Exit WNM sleep mode”,以请求退出WNM Sleep mode。

在WNM Sleep Mode下,对于组寻址帧,non-AP STA不需要每DTIM间隔唤醒一次;non-AP STA不参与GTK/IGTK更新,以不长于WNM Sleep Interval的间隔醒来检查相应的TIM bit或者是否有组播缓存。

STA以不长于WNM Sleep Interval字段指示的值的间隔唤醒,以检查是否设置了相应的TIM位或组寻址的通信量处于挂起状态。非AP STA不参与GTK/IGTK更新。

STA可同时进行WNM Sleep mode和PS mode。
当STA处于WNM Sleep mode和PS mode时,AP根据在AP和STA之间建立的业务过滤协议(traffic filtering agreement)缓存单播帧。
当STA处于WNM Sleep mode但不处于PS mode时,AP和STA之间的业务过滤协议和用于WNM睡眠间隔的定时器保持在原位,并且AP排队以非缓冲传送所有目的地到STA的匹配帧(即,由业务过滤协议匹配)。

AP operation

AP发送WNM Sleep Mode Response帧,其中Action Type字段设置为“Enter WNM sleep mode”,来响应STA进入WNM Sleep mode的请求。

AP发送WNM Sleep Mode Response帧,其中WNM Sleep Mode Response status字段设置为“Exit WNM sleep mode Accept, GTK/IGTK update required”,来响应STA退出WNM Sleep mode的请求。

当关联的STA进入WNM Sleep Mode,AP停止向non-AP STA发送所有单独寻址的mpdu。

当非AP STA处于WNM睡眠模式时,AP可以在任何时候出于任何原因对STA进行disassociate和deauthenticate。

AP不应在WNM Sleep Mode下对STA执行GTK/IGTK更新。

其他

关于WNM Sleep Mode下GTK/IGTK和TFS的处理,详见协议,本文不展开介绍。

参考

《802.11-2020》

<think>好的,我现在需要处理用户关于hostapd配置参数`wnm_sleep_mode_no_keys=0`的问题。首先,用户之前询问过`ignore_replay_failure`,现在转向另一个相关配置,可能他们在配置无线网络时遇到了安全问题,特别是与WNM睡眠模式和密钥更新相关的问题。 用户提供的注释详细说明了这个参数的作用,我需要确认自己对这个参数的理解是否正确。根据描述,`wnm_sleep_mode_no_keys`是用来避免某些客户端在WNM睡眠模式退出时因重放攻击而重新安装GTK和IGTK的问题。这涉及到CVE-2017-13087和CVE-2017-13088,这两个漏洞与密钥重安装有关,类似于KRACK攻击。 我需要验证这个参数在hostapd中的实际存在和默认值。查阅官方文档或源码,确认默认值是否为0,即不禁用WNM响应帧中的密钥。用户提供的注释提到设置为1可以禁用此行为,转而使用EAPOL-Key帧来更新密钥,这可能需要配合`wpa_disable_eapol_key_retries=1`使用。 接下来,要解释参数的作用机制。当WNM睡眠模式退出时,AP通常会通过管理帧(WNM响应帧)发送新密钥,但存在漏洞的客户端可能被诱骗重放旧帧,导致密钥重安装。设置`wnm_sleep_mode_no_keys=1`后,AP不再通过管理帧发送密钥,而是使用更安全的EAPOL-Key帧,减少被重放攻击的风险。 需要说明启用此参数的场景,例如当客户端存在已知漏洞时,或者在高安全需求环境中。同时,要提到可能的兼容性问题,因为旧客户端可能依赖管理帧进行密钥更新,禁用后可能导致连接问题。 用户可能是在处理特定漏洞的修复,需要建议他们在必要时启用该参数,并测试客户端兼容性。同时提醒他们结合其他配置,如禁用EAPOL-Key重试,以全面防范攻击。 最后,确保回答结构清晰,分点解释参数含义、漏洞背景、配置建议和注意事项,帮助用户全面理解并正确配置。</think>--- ### **参数解析:`wnm_sleep_mode_no_keys=0`** #### **1. 参数定义与功能** - **参数名称**:`wnm_sleep_mode_no_keys` - **默认值**:`0`(即默认禁用该功能) - **作用**:此参数用于控制 **AP(无线接入点)在WNM-Sleep Mode退出时是否通过管理帧(WNM响应帧)携带GTK/IGTK密钥**。 - **GTK(Group Temporal Key)**:组播/广播数据加密密钥。 - **IGTK(Integrity Group Temporal Key)**:组播/广播数据完整性校验密钥。 #### **2. 漏洞背景** - **相关CVE**:CVE-2017-13087、CVE-2017-13088(影响客户端侧的密钥重安装漏洞,类似KRACK攻击)。 - **问题根源**: 某些客户端在收到WNM-Sleep Mode响应帧时,可能因未正确处理帧的防重放机制,**错误地重新安装旧的GTK/IGTK**,导致攻击者可通过重放旧帧触发密钥回滚,进而解密或篡改通信数据。 #### **3. 参数工作原理** - **默认行为(`wnm_sleep_mode_no_keys=0`)**: AP在WNM-Sleep Mode退出时,**通过WNM响应帧直接分发新的GTK/IGTK**。此方式效率高,但对存在漏洞的客户端存在安全风险。 - **启用保护(`wnm_sleep_mode_no_keys=1`)**: AP将**禁止在WNM响应帧中携带密钥**,转而通过**EAPOL-Key帧**更新GTK/IGTK。EAPOL-Key帧具备更强的重放攻击防护机制(如序列号校验),可规避密钥重安装漏洞。 #### **4. 典型应用场景** - **客户端存在已知漏洞**:当连接的设备(如旧手机、IoT设备)未修复CVE-2017-13087/13088漏洞时,需启用此参数。 - **高安全需求网络**:在金融、医疗等敏感场景中,强制使用更安全的密钥更新机制。 - **与`wpa_disable_eapol_key_retries=1`配合**: 若同时禁用EAPOL-Key重传(避免攻击者利用重试机制注入密钥),需确保客户端能正确处理单次EAPOL-Key帧。 #### **5. 配置建议** - **启用条件**: ```ini # hostapd.conf wnm_sleep_mode_no_keys=1 wpa_disable_eapol_key_retries=1 # 可选,需测试客户端兼容性 ``` - **注意事项**: - **兼容性风险**:部分旧客户端可能依赖WNM响应帧更新密钥,禁用后可能导致连接失败。 - **性能影响**:EAPOL-Key更新可能增加密钥协商延迟,但对多数网络影响可忽略。 #### **6. 技术验证** - **调试日志**:启用hostapd调试模式(`-dd`),观察密钥更新流程: ```bash hostapd -dd /etc/hostapd.conf ``` - 正常模式下会输出 `WNM-Sleep Mode Response sent with GTK/IGTK`。 - 启用`wnm_sleep_mode_no_keys=1`后,密钥更新日志会指向EAPOL-Key流程。 --- ### **总结** `wnm_sleep_mode_no_keys=0` 表示 **允许通过WNM-Sleep Mode响应帧分发密钥**,这是默认行为。若需防御客户端侧的密钥重安装漏洞(CVE-2017-13087/13088),应设置为 `1`,并评估客户端兼容性。此配置是AP侧的安全增强措施,适用于对安全要求严格的无线网络环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值