5

我用 scapy 构建了一个脚本,以在 monitornig wi-fi 接口中捕获探测请求。我成功捕获了请求,以及其中包含的一些 SSID。但是存储在手机中的大多数网络都不会被广播。并且没有明确的模式说明为什么会发生这种情况。有些手机根本不广播 ssid。

我试图找到这种行为背后的原因的解释,但没有找到任何解释,除了应该广播隐藏的网络以便电话连接到它们,但即使这样也不是真的,而且大多数广播的是可见的。

另一种行为是 iPhone,它似乎只广播它们所连接的网络,而不是其他任何东西。(没有网络 -> 没有 SSID)。

我试过把接口放在各个频道,结果在广播网络上有所不同,但设备中保存的绝大多数仍然没有广播。

这背后有什么原因吗?或者一种强制设备广播它们的方法?

4

1 回答 1

7

您似乎假设电话会永久地对每个已知网络进行探测请求。

情况并非如此 - 不仅适用于电话,而且一般而言。引用 Wi-Fi 联盟[*]:

什么是被动扫描和主动扫描?

客户端扫描的原因是确定客户端现在或将来可能[强调我的] 需要漫游到的合适 AP。客户端可以使用两种扫描方法:主动和被动。在主动扫描期间,客户端无线电发送探测请求并监听来自 AP [强调我的] 的探测响应。通过被动扫描,客户端无线电在每个信道上侦听AP 定期发送的信标 [再次强调我的]。被动扫描通常需要更多时间,因为客户端必须侦听并等待信标而不是主动探测以找到 AP。被动扫描的另一个限制是,如果客户端在信道上等待的时间不够长,则客户端可能会错过 AP 信标。

所以这完全取决于应用程序/操作系统,如果

  • 电话 STA 进行主动扫描,发送探测请求,

  • 或者只是坐在那里听信标(或什么都不做)。

在我的记忆中 - 我已经有几年没有工作/查看 Android 代码了,所以它可能会发生变化 - Android不会进行主动扫描,因此不会向已知 SSID 发送探测请求,除非你在Wi-Fi 网络设置屏幕。它只会听信标。

这背后有一些 Wi-Fi 802.11 设计原理:

  • STA应该是移动的。毕竟,如果您不时不时搬家,那么使用 Wi-Fi 没有多大意义(除了营销或懒惰,当然智能手机改变了这一点),您还不如连线。

  • ...如果您是移动设备,那么认为您正在使用电池运行是合理的,

  • 所以你想节省电池寿命:所以你宁愿被动扫描监听信标而不是主动扫描发送探测请求,因为这样消耗的电量更少。

当您是 STA 时,这种节能替代功能的想法在 802.11 设计中传播到所有其他地方,隐藏在地毯下。

因此,它完全依赖于 STA 的操作系统堆栈/应用程序 1/ 仅监听信标/2 为每个已知 AP 主动发送探测请求 3/ 发送广播探测请求,并且如果它以连续方式这样做,或定期,或取决于它是否处于已知状态(例如屏幕打开,用户进入 Wi-Fi 网络设置屏幕)。

现在可能还有其他一些考虑因素,例如某些地区法规要求您首先收听信标来决定您是否可以使用某些频道。但重点在上面。

*:

http://www.wi-fi.org/knowledge-center/faq/what-are-passive-and-active-scanning

编辑:

在编程方面:

1 /您似乎遇到的是 IOP(互操作性)问题,因为您期望 STA 的特定行为涉及扫描主动与被动以及所涉及的探测请求,这不是它在现实世界中的工作方式。根据您的应用程序的最终主要目标,这可能是设计中的一个缺陷 - 或者只是一个小麻烦。您可能希望将自己限制在某些特定设备的品牌上,或者尝试涵盖所有情况,这会产生开发成本。

2/ ...或者你只是对你的观察感到惊讶,并寻找解释。在这种令人惊讶的结果的情况下,不用说:直接去wireshark检查你的程序观察(如果你的程序是一个数据包嗅探器)或行为(如果你的程序是一个客户端/服务器/层XYZ协议实现)。

关于主动与被动扫描和节能的 802.11 策略:

摘自“802.11 无线网络:权威指南,第 2 版”,作者:Matthew S. Gast(“IEEE 802.11 工作组成员,并担任 802.11 Task Group M 主席。Wi-Fi 联盟无线网络管理主席营销任务组,他正在领导对节能、性能优化以及定位和定时服务的认证要求的调查”——来自他的出版商简历)。我可以强烈推荐的一本书。

页。171:

ScanType(主动或被动)

主动扫描使用探测请求帧的传输来识别该区域中的网络。被动扫描通过侦听信标帧来节省电池电量。

页。172:

被动扫描

被动扫描可以节省电池电量,因为它不需要传输。在被动扫描中,站点移动到频道列表中的每个频道并等待信标帧。

此外,有点老(2003 年),但这些人知道他们关于网络的知识。关于扫描策略:

来自思科“802.11 无线 LAN 基础”,第 5 章“移动性”。

第 153 页:

漫游算法

确定何时漫游的机制并未由 IEEE 802.11 规范定义,因此留给供应商实施。[...] 算法留给供应商实施的事实为供应商提供了一个机会,通过创建比竞争对手更好的新算法来区分自己。漫游算法成为供应商的“秘密武器”,因此是保密的。

第 154 页“确定漫游位置”:

没有理想的扫描技术。被动扫描的好处是不需要客户端传输探测请求,但存在潜在丢失 AP 的风险,因为它可能在扫描期间收不到信标。主动扫描的好处是主动寻找要关联的 AP,但需要客户端主动传输探测。根据 802.11 客户端的实现,一个可能比另一个更适合。例如,许多嵌入式系统使用被动扫描作为首选方法[强调我的] [...]

第 155 页上的其他有趣内容,“抢先式 AP 发现”。

于 2016-03-28T18:20:23.157 回答