802.11协议、WiFi连接交互过程

本周主要任务是更深入的了解WiFi连接过程中AP与STA之间的交互过程,深入理解802.11标准,为以后协议的修改做准备。

802.11基本介绍

简介

802.11为IEEE(美国电气和电子工程师协会,The Institute of Electrical and Electronics Engineers)于1997年公告的无线区域网路标准,适用于有线站台与无线用户或无线用户之间的沟通连结。

规格一览

  • 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,维护标准;互斥及极限。
  • IEEE 802.11n,更高传输速率的改善,支持多输入多输出技术(Multi-Input Multi-Output,MIMO)。 提供标准速度300M,最高速度600M的连接速度
  • IEEE 802.11k,该协议规范规定了无线局域网络频谱测量规范。该规范的制订体现了无线局域网络对频谱资源智能化使用的需求。

802.11协议的发展过程中安全、加密相关的技术

  1. WEP,Wired Equivalent Privacy: 802.11中最早期的加密标准
  2. WPA(Wi-Fi Protected Access)
  3. WPA2(Wi-Fi Protected Access 2)

802.11数据包种类

  1. 数据: 数据数据包的作用是用来携带更高层次的数据(如IP数据包,ISO7层协议)。
    它负责在工作站之间传输数据
  2. 管理: 管理数据包控制网络的管理功能
    • 信标帧(Beacons): 在无线设备中,定时依次按指定间隔发送的有规律的无线信号(类似心跳包),主要用于定位和同步使用
    • 解除认证(Deauthentication)数据包
    • Probe(request and response)
    • Authenticate(request and response)
    • Associate(request and response)
    • Reassociate(request and response)
    • Dissassociate(notify)
      管理帧负责监督,主要用来加入或退出无线网络,以及处理接入点之间连接的转移事宜
  3. 控制: 控制数据包得名于术语”媒体接入控制(Media Access Control, MAC)”,是用来控制对共享媒体(即物理媒介,如光缆)的访问
    • 请求发送(Request To Send,RTS)数据包
    • 清除发送(Clear To Send,CTS)数据包
    • ACK确认(RTS/CTS)
    • PS-Poll: 当一部移动工作站从省电模式中苏醒,便会发送一个 PS-Poll 帧给基站,以取得任何暂存帧
      控制帧通常与数据帧搭配使用,负责区域的清空、信道的取得以及载波监听的维护,并于收到数据时予以正面的应答,借此促进工作站间数据传输的可靠性

802.11基本元素

  • 基本服务集(Basic Service Set,简称BSS)是802.11网络的基本组件,由一组相互通信的工作站所构成。工作站之间的通信在某个模糊地带进行着,称为基本服务区域 (Basic service area),此区域受限于所使用的无线媒介的传播特性。只要位于基本 服务区域,工作站就可以跟同一个BSS的其他成员通信。

  • BSA:BSS的覆盖范围称为基本服务区。

  • ESS(Extended Service Set)是采用相同的SSID的多个BSS形成的更大规模的虚拟 BSS。

  • SSID是Service Set Identifier的缩写,意思是:服务集标识。SSID技术可以将一个无线 局域网分为几个需要不同身份验证的子网络,每一个子网络都需要独立的身份验证,只 有通过身份验证的用户才可以进入相应的子网络,防止未被授权的用户进入本网络。
  • BSSID实际上就是AP的MAC地址,用来标识AP管理的BSS,在同一个AP内BSSID和 SSID一一映射。在一个ESS内SSID是相同的,但对于ESS内的每个AP与之对应的 BSSID是不相同的。如果一个AP可以同时支持多个SSID的话,则AP会分配不同的 BSSID来对应这些SSID。

802.11协议格式

我们知道数据链路层是一个很靠近底层的通信协议,它使用Bit来表示信息(也使用Bit来标识数据包的开始和结束),所以数据链路层的协议格式并没有强制要求一个固定的长度,即802.11协议长度是可变的。不同功能的数据帧长度会不一样。这一特性说明mac802.11数据帧显得更加灵活,然而,也会更加复杂。

mac 802.11的数据帧长度不定主要是由于以下几点决定的:

  1. mac地址数目不定,根据帧类型不同,mac 802.11的mac地址数会不一样。比如说 ACK帧仅有一个mac地址,而数据帧有3个mac地址,在WDS模式下,帧头有4个mac地址。
  2. 802.11的管理帧所携带的信息长度不定,在管理帧中,不仅仅只有一些类似于mac地址,分片标志之类的这些信息,而且另外还会包括一些其它的信息,这些信息有关于安全设置的,有关于物理
    通信的,比如说我们的SSID名称就是通过管理帧获得的。AP会根据不同的情况发送包含有不同信息的管理帧。
  3. 加密(wep,wpa等)信息,QOS(quality of service)信息,若有加密的数据帧格式和没有加密的数据帧格式还不一样,加密数据帧格式还多了个加密头,用于解密用。

管理帧协议格式

  1. Beacon(信标)帧

  2. Probe Request(探测请求)帧
    ![](/images/Probe Request.jpg)

  3. Probe Response(探测响应)帧
    ![](/images/Probe Response.jpg)

  4. ATIM帧

  5. Disassociation(解除关联)与Deauthentication(解除认证)帧

  6. Association Request(关联请求)帧

  7. Reassociation Request(重新关联请求)帧

  8. Authentication(身份认证)帧

  9. 帧控制结构(Frame Control)

  1. Protocol Version: (协议版本)通常为0
  2. Type: 帧类型,管理帧: 00
  3. Subtype: 进一步判断帧的子类型
    3.1) Beacon(信标)帧
    3.2) Probe Request(探测请求)帧
    3.3) Probe Response(探测响应)帧
    3.4) ATIM帧
    3.5) Disassociation(解除关联)
    3.6) Deauthentication(解除认证)帧
    3.7) Association Request(关联请求)帧
    3.8) Reassociation Request(重新关联请求)帧
    3.9) Authentication(身份认证)帧
  4. To DS: 表明该帧是否是BSS向DS发送的帧
  5. From DS: 表明该帧是否是DS向BSS发送的帧
  6. More Fragment: 用于说明长帧被分段的情况,是否还有其它的帧,如果有则该值设置为1
  7. Retry(重传域): 表示该分段是先前传输分段的重发帧。
  8. Power Management: 表示传输帧以后,站所采用的电源管理模式
    8.1) 为1: STA处于power_save模式
    8.2) 为0: STA处于active模式
  9. More Data: 表示有很多帧缓存到站中。即至少还有一个数据帧要发送给STA是设置为1。
  10. Protected Frame: 表示根据WEP(Wired Equivalent Privacy)算法对帧主体进行加密。如果帧体部分包含被密钥套处理过的数据,则设置为1,否则设置为0
  11. Order(序号域): 在长帧分段传送时,该域设置为1表示接受者应该严格按照顺序处理该帧,否则设置为0
  1. Duration/ID(持续时间/标识)
    表明该帧和它的确认帧将会占用信道多长时间,Duration 值用于网络分配向量(NAV)计算

  2. Address Fields(地址域):

    1. Destination Address
    2. Source Address
    3. BSS ID
  3. Sequence Control(序列控制域): 用于过滤重复帧

    1. MSDU(MAC Server Data Unit), 12位序列号(Sequence Number)
    2. MMSDU(MAC Management Server Data Unit), 4位片段号(Fragment Number)组成
  4. Frame Body(Data): 发送或接收的信息。对于不同类型的数据帧来说,这个域的格式差别较大

  1. Beacon(信标)帧
    1.1) Timestamp(时戳)位: 可用来同步 BSS 中的工作站 BSS 的主计时器会定期发送目前已作用的微秒数。当计数器到达最大值时,便会从头开始计数
    1.2) Beacon interval位: AP点每隔一段时间就会发出的Beacon(信标)信号,用来宣布 802.11网络的存在。我们打开无线连接的时候之所以能看到很多Wi-Fi点就是因为它
    1.3) Capability information位: 发送Beacon信号的时候,它被用来通知各方,该网络具备哪种性能
    1.4) SSID服务集标识(Service Set Identity): 由字节所形成的字串,用来标示所属网络的BSSID,即我们在Wi-Fi连接前看到的接入点名称
    1.5) 跳频参数组合(PH Parameter Set): 包含了加入 802.11跳频(frequency-hopping)网络所需要的参数
    1.6) 直接序列参数集合(DS Parameter Set): 指明网络所使用的信道数
    1.7) 免竞争参数集合(CF Parameter Set): 出现在支持免竞争接入点所发送的 Beacon帧中,并非必须
    1.8) IBSS 参数集合(IBSS Parameter Set): 指明ATIM window (数据待传指示通知信息间隔期间)
    1.9) TIM数据待传信息(Traffic Indication Map): 指示有哪些工作站需要接收待传数据
    1.10) Country: 国家识别码
    1.11) 功率限制(Power Constraint): 让网络得以向工作站传达其所允许的最大传输功率
    1.12) 信道切换宣告(Channel Switch Announcement): 为了警告网络中的工作站即将变换信道
    1.13) 禁声(Quiet): 为了避免与特定的军事雷达技术彼此干扰
    1.14) 发射功率控制报告(TPC Report): 指明链路的衰减情况,可以帮助工作站了解该如何调整传输功率
    1.15) 扩展物理层(ERP)
    1.16) 支持速率(Supported Rates): 无线局域网络支持数种标准速率。当移动工作站试图加入网络,会先检视该网络所使用的数据速率。有些速率是强制性的,每部工作站都必须支持,有些则是选择性的
    1.17) RSN强健安全网络(Robust Security Network)
  2. Probe Request(探测请求)帧
    2.1) SSID服务集标识(Service Set Identity): 由字节所形成的字串,用来标示所属网络的BSSID,即我们在Wi-Fi连接前看到的接入点名称
    2.2) Supported Rate(支持速率)
    2.3) 扩展支持速率(Extended Supported Rate)
  3. Probe Response(探测响应)帧
    3.1) Timestamp(时戳)位: 可用来同步 BSS 中的工作站 BSS 的主计时器会定期发送目前已作用的微秒数。当计数器到达最大值时,便会从头开始计数
    3.2) Beacon interval位: AP点每隔一段时间就会发出的Beacon(信标)信号,用来宣布 802.11网络的存在。我们打开无线连接的时候之所以能看到很多Wi-Fi点就是因为它
    3.3) Capability information位: 发送Beacon信号的时候,它被用来通知各方,该网络具备哪种性能
    3.4) SSID服务集标识(Service Set Identity): 由字节所形成的字串,用来标示所属网络的BSSID,即我们在Wi-Fi连接前看到的接入点名称
    3.5) 支持速率(Supported Rates): 无线局域网络支持数种标准速率。当移动工作站试图加入网络,会先检视该网络所使用的数据速率
    3.6) 跳频参数组合(PH Parameter Set): 包含了加入 802.11跳频(frequency-hopping)网络所需要的参数
    3.7) 直接序列参数集合(DS Parameter Set): 指明网络所使用的信道数
    3.8) 免竞争参数集合(CF Parameter Set): 出现在支持免竞争接入点所发送的 Beacon帧中,并非必须
    3.9) IBSS 参数集合(IBSS Parameter Set): 指明ATIM window (数据待传指示通知信息间隔期间)
    3.10) Country: 国家识别码
    3.11) FH Hopping Parameters
    3.12) FH Pattern Table
    3.13) 功率限制(Power Constraint): 让网络得以向工作站传达其所允许的最大传输功率
    3.13) 信道切换宣告(Channel Switch Announcement): 为了警告网络中的工作站即将变换信道
    3.14) 禁声(Quiet): 为了避免与特定的军事雷达技术彼此干扰
    3.15) IBSS 动态选项(IBSS DFS):在 IBSS 中负责动态选频的工作站可以在管理帧中传递 IBSS DFS 信息元素
    3.16) 发射功率控制报告(TPC Report): 指明链路的衰减情况,可以帮助工作站了解该如何调整传输功率
    3.17) 扩展物理层(ERP)
    3.18) 扩展支持速率(Extended Supported Rate)
    3.19) RSN强健安全网络(Robust Security Network)
  4. ATIM帧
  5. Disassociation(解除关联)
    5.1) Beacon Code
  6. Deauthentication(解除认证)帧
    6.1) Beacon Code
  7. Association Request(关联请求)帧
    7.1) Capability information位: 发送Beacon信号的时候,它被用来通知各方,该网络具备哪种性能
    7.2) Listen interval位: 为了节省电池的电力,工作站可以暂时关闭 802.11网络接口的天线。当工作站处于休眠状态,接入点必须为之暂存帧
    7.3) SSID服务集标识(Service Set Identity): 由字节所形成的字串,用来标示所属网络的BSSID,即我们在Wi-Fi连接前看到的接入点名称
    7.4) Supported Rate(支持速率)
  8. Reassociation Request(重新关联请求)帧
    8.1) Capability information位: 发送Beacon信号的时候,它被用来通知各方,该网络具备哪种性能
    8.2) Listen interval位: 为了节省电池的电力,工作站可以暂时关闭 802.11网络接口的天线。当工作站处于休眠状态,接入点必须为之暂存帧
    8.3) Current AP Address位: 使用Current AP Address(目前接入点的地址)位来表明目前所连接的接入点的 MAC地址
    8.4) SSID服务集标识(Service Set Identity): 由字节所形成的字串,用来标示所属网络的BSSID,即我们在Wi-Fi连接前看到的接入点名称
    8.5) Supported Rate(支持速率)
  9. Authentication(身份认证)帧
    9.1) Authentication Algorithm Number: 指明认证程序所使用的认证类型
    9.2) Authentication Transaction Sequence Number: 用以追踪身份认证的进度
    9.3) Status Code: 状态代码用来表示某项过程成功或失败
    9.4) 质询口令(Challenge Text): 802.11所定义的共享密钥身份认证系统。会要求移动工作站必须成功解码一段加密过的质询口令。这段质询口令的发送系通过 Challenge Text(质询口令)信息元素
  1. FCS(CRC): 包括32位的循环冗余校验(CRC),用于检错,注意是检错不是纠错

WiFi连接交互过程

有了802.11协议的基本格式之后,我们可以使用wireshark进行抓包实验,验证一下我们的理论
启动无线网卡的Monotor模式,前面文章里面有讲过,然后启动wireshark,选择wlan0mon网卡即可。

AP发送Beacon广播管理帧

因为AP发送的这个Beacon管理帧数据包是广播地址,所以我们的PCMIA内置网卡、或者USB外界网卡会接收到这个数据包,然后在我们的”无线连接列表”中显示出来:

客户端向承载指定SSID的AP发送Probe Request(探测请求)帧

当我们点击”连接”的时候,无线网卡就会发送一个Prob数据帧,用来向AP请求连接

AP接入点对客户端的SSID连接请求进行应答

AP对客户端的连接作出了回应。

客户端对目标AP请求进行身份认证(Authentication)

这个包没有抓到……

AP对客户端的身份认证(Authentication)请求作出回应

客户端向AP发送连接(Association)请求

AP对连接(Association)请求进行回应

这个包也没有抓到……

AP对客户端的连接请求(Association)予以了回应(包括SSID、性能、加密设置等)。至此,Wi-Fi的连接身份认证交互就全部结束了,之后就可以正常进行数据发送了

客户端向AP请求断开连接(Disassociation)

这个也没抓到对应数据报。

**由此,我们可以发现,基于对数据帧格式的了解,黑客可以发起一些针对协议的攻击 **前面几篇文章介绍过几种无线DoS的攻击,其中Deanthentication攻击,Disassociation攻击基于协议的攻击。


802.11协议、WiFi连接交互过程
https://chujian521.github.io/blog/2018/11/11/802-11协议、WiFi连接交互过程/
作者
Encounter
发布于
2018年11月11日
许可协议