802.11标准将全部的数据包分为3种:算法
1. 数据: 数据数据包的做用是用来携带更高层次的数据(如IP数据包,ISO7层协议)。数组
它负责在工做站之间传输数据缓存
2. 管理: 管理数据包控制网络的管理功能sass
1) 信标帧(Beacons): 在无线设备中,定时依次按指定间隔发送的有规律的无线信号(相似心跳包),主要用于定位和同步使用安全
2) 解除认证(Deauthentication)数据包网络
3) Probe(request and response)分布式
4) Authenticate(request and response)性能
5) Associate(request and response)ui
6) Reassociate(request and response)atom
7) Dissassociate(notify)
管理帧负责监督,主要用来加入或退出无线网络,以及处理接入点之间链接的转移事宜
3. 控制: 控制数据包得名于术语"媒体接入控制(Media Access Control, MAC)",是用来控制对共享媒体(即物理媒介,如光缆)的访问
1) 请求发送(Request To Send,RTS)数据包
2) 清除发送(Clear To Send,CTS)数据包
3) ACK确认(RTS/CTS)
4) PS-Poll: 当一部移动工做站从省电模式中苏醒,便会发送一个 PS-Poll 帧给基站,以取得任何暂存帧
控制帧一般与数据帧搭配使用,负责区域的清空、信道的取得以及载波监听的维护,并于收到数据时予以正面的应答,借此促进工做站间数据传输的可靠性
这些不一样类别的数据包被统称为"数据包类型"。
802.11的两类服务:
1. 站点服务SS(每一个STA都要有的服务)
1) 认证(Authentication)
2) 解除认证(Deauthentication)
3) 加密(Privacy)
4) MSDU传递(MSDU delivery)
2. 分布式系统服务DSS(DS特有服务)
1) 关联(Association)
2) 解除关联(Deassociation)
3) 分布(Distribution)
4) 集成(Integration)
5) 重关联(Ressociation)
管理帧协议格式
(Beacon(信标)帧)
(Probe Request(探测请求)帧)
(Probe Response(探测响应)帧)
(ATIM帧)
(Disassociation(解除关联)与Deauthentication(解除认证)帧)
(Association Request(关联请求)帧)
(Reassociation Request(从新关联请求)帧)
(Authentication(身份认证)帧)
1. 帧控制结构(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 2. Duration/ID(持续时间/标识) 代表该帧和它的确认帧将会占用信道多长时间,Duration 值用于网络分配向量(NAV)计算 3. Address Fields(地址域): 1) Destination Address 2) Source Address 3) BSS ID 4. Sequence Control(序列控制域): 用于过滤重复帧 1) MSDU(MAC Server Data Unit), 12位序列号(Sequence Number) 2) MMSDU(MAC Management Server Data Unit), 4位片断号(Fragment Number)组成 5. 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 (质询口令)信息元素 6. FCS(CRC): 包括32位的循环冗余校验(CRC),用于检错,注意是检错不是纠错
数据帧协议格式
数据帧的形式取决于网络的形式。帧究竟属于哪一种类型,彻底取决于subtype(子类型)位,而与其余位是否出如今帧中无关。
(IBSS 数据帧的一种)
(接入点发送(From AP)的帧,数据帧的一种)
(发送至接入点(To AP)的帧,数据帧的一种)
(WDS帧,数据帧的一种)
1. 帧控制结构(Frame Control) 1) Protocol Version: (协议版本)一般为0 2) Type: 帧类型,数据帧: 10 3) Subtype: 进一步判断帧的子类型,不一样类型的数据帧这个字段的格式是不一样的 3.1) IBSS帧 3.1.1) 0000: Data 3.1.2) 0010: Null 3.2) From AP帧 3.2.1) 0000: Data 3.2.2) 1000: Data+CF+ASK 3.2.3) 0100: Data+CF+Poll 3.2.4) 1100: Data+CF+ACK+CF+Poll 3.2.5) 1010: CF+ACK 3.2.6) 0110: CF+Poll 3.2.7) 1110: ACK+CF+Poll 3.3) To AP帧 3.3.1) 0000: Data 3.3.2) 1000: Data+CF+ACK 3.3.3) 0010: Null 3.3.4) 1010: CF+ACK(no data) 3.4) WDS帧 null 4) To DS: 代表该帧是不是BSS向DS发送的帧时 4.1) IBSS: 设置为0 4.2) To AP: 设置为1 4.3) From AP: 设置为0 4.4) WDS: 设置为1 5) From DS: 代表该帧是不是DS向BSS发送的帧时 5.1) IBSS: 设置为0 5.2) To AP: 设置为0 5.3) From AP: 设置为1 5.4) WDS: 设置为1 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 2. Duration/ID(持续时间/标识) 代表该帧和它的确认帧将会占用信道多长时间,Duration 值用于网络分配向量(NAV)计算 3. Address Fields(地址域): 这个域的具体格式和控制帧的子类型有关,不一样的子类型会有一些微小的差异 1) IBSS 1.1) Destination Address 1.2) Source Address 1.3) BSSID 每一个BSS都会被赋予一个BSSID,它是一个长度为48个bit的二进制识别码,用来辨识不一样的BSS 2) From AP 2.1) Destination Address 2.2) BSSID 2.3) Source Address 3) To AP 3.1) BSSID 3.2) Source Address 3.3) Destination Address 4) WDS 4.1) BSSID 4.2) Source Address 4.3) Destination Address 4. Sequence Control(序列控制域): 用于过滤重复帧 1) MSDU(MAC Server Data Unit), 12位序列号(Sequence Number) 2) MMSDU(MAC Management Server Data Unit), 4位片断号(Fragment Number)组成 [SA,只有WDS中的帧有这个字段] 5. Frame Body(Data): 发送或接收的信息。 6. FCS(CRC): 包括32位的循环冗余校验(CRC),用于检错,注意是检错不是纠错
控制帧协议格式
(RTS帧,控制帧的一种)
(CTS帧,控制帧的一种)
(ACK帧,控制帧的一种)
(PS-Poll帧)
1. 帧控制结构(Frame Control) 1) Protocol Version: (协议版本)一般为0 2) Type: 帧类型,控制帧: 01 3) Subtype: 进一步判断帧的子类型: 控制帧 3.1) 请求发送(Request To Send,RTS)数据包 3.2) 清除发送(Clear To Send,CTS)数据包 数据帧 3.3) ACK确认(RTS/CTS) 3.4) PS-Poll: 当一部移动工做站从省电模式中苏醒,便会发送一个 PS-Poll 帧给基站,以取得任何暂存帧 4) To DS: 代表该帧是BSS向DS发送的帧时,该值设置为1 5) From DS: 代表该帧是DS向BSS发送的帧时,该值设置为1 控制帧负责处理无线介质的访问,所以只可以由无线工做站产生。传输系统并不会收送控制帧,所以这两个Bit必然为0 6) More Fragment: 用于说明长帧被分段的状况,是否还有其它的帧,若是有则该值设置为1。 控制帧不可能被切割,这个Bit必然为0 7) Retry(重传域): 表示该分段是先前传输分段的重发帧。 控制帧不像管理或数据帧那样,必须在序列中等候重送,所以这个 Bit必然为0 8) Power Management: 表示传输帧之后,站所采用的电源管理模式 8.1) 为1: STA处于power_save模式 8.2) 为0: STA处于active模式 9) More Data: 表示有不少帧缓存到站中。即至少还有一个数据帧要发送给STA是设置为1。 More Data bit只用于管理数据帧,在控制帧中此Bit必然为0 10) Protected Frame: 表示根据WEP(Wired Equivalent Privacy)算法对帧主体进行加密。若是帧体部分包含被密钥套处理过的数据,则设置为1,不然设置为0。 控制帧不会通过加密。所以对控制帧而言,Protected Frame bit必然为0。 11) Order(序号域): 在长帧分段传送时,该域设置为1表示接受者应该严格按照顺序处理该帧,不然设置为0。 控制帧是基本帧交换程序(atomic frame exchange operation)的组成要件,所以必须依序发送。因此这个Bit必然为0 2. Duration/ID(持续时间/标识) 代表该帧和它的确认帧将会占用信道多长时间,Duration 值用于网络分配向量(NAV)计算。 注意: 在PS-Poll帧中不包含Duration/ID这个字段 3. Address Fields(地址域): 这个域的具体格式和控制帧的子类型有关,不一样的子类型会有一些微小的差异 3.1) RTS(请求发送帧) 3.1.1) Receiver Address(接收端地址) 接收大型帧的工做站的地址 3.1.2) Transmitter Address(发送端地址) RTS帧的发送端的地址 3.2) CTS(容许发送) 3.2.1) Receiver Address(接收端地址) 3.3) ACK(应答) 3.3.1) Receiver Address(接收端地址) 3.4) PS-Poll(省电模式一轮询) 3.4.1) AID(链接识别码 association ID) 链接识别码是接入点所指定的一个数值,用以区别各个链接。将此识别码置入帧,可以让接入点找出为其(移动工做站)所暂存的帧 3.4.2) BSSID 此位包含发送端目前所在 BSS(AP)的BSSID ,此BSS 创建自目前所链接的AP 3.4.3) Transmitter Address(发送端地址) 此为PS-Poll帧之发送端的 MAC地址 4. FCS(CRC): 包括32位的循环冗余校验(CRC),用于检错,注意是检错不是纠错
3. Wi-Fi认证过程
有了802.11协议的基本格式以后,咱们可使用wireshark进行抓包实验,验证一下咱们的理论
ifconfig -a ifconfig wlan1 up airmon-ng start wlan1 启动wireshark,选择mon0网卡(开启了Monotor模式的虚拟网卡
0x1: 普通无加密链接过程
1. AP发送Beacon广播管理帧
由于AP发送的这个Beacon管理帧数据包是广播地址,因此咱们的PCMIA内置网卡、或者USB外界网卡会接收到这个数据包,而后在咱们的"无线链接列表"中显示出来
2. 客户端向承载指定SSID的AP发送Probe Request(探测请求)帧
当咱们点击"链接"的时候,无线网卡就会发送一个Prob数据帧,用来向AP请求链接
3. AP接入点对客户端的SSID链接请求进行应答
AP对客户端的链接做出了回应,并表示不接受任何形式的"帧有效负载加密(frame-payload-encryption)"
4. 客户端对目标AP请求进行身份认证(Authentication)
5. AP对客户端的身份认证(Authentication)请求做出回应
AP回应,表示接收身份认证
6. 客户端向AP发送链接(Association)请求
身份认证经过以后,全部的准备工做都作完了,客户端这个时候能够向WLAN AP发起正式的链接请求,请求接入WLAN
7. AP对链接(Association)请求进行回应
AP对客户端的链接请求(Association)予以了回应(包括SSID、性能、加密设置等)。至此,Wi-Fi的链接身份认证交互就所有结束了,以后就能够正常进行数据发送了
8. 客户端向AP请求断开链接(Disassociation)
当咱们点击"断开链接"的时候,网卡会向AP发送一个断开链接的管理数据帧,请求进行断开链接
由此,咱们能够发现,基于对数据帧格式的了解,黑客能够发起一些针对协议的攻击。
1. Deanthentication攻击 2. Disassociation攻击
黑客能够利用这种方式加快对WEP/WPS-PSK保护的无线局域网的攻击,迫使客户端从新链接而且产生ARP流量(基于WEP的攻击)、或捕获从新进行WPA链接的四次握手,而后能够对密码进行离线字典或彩虹表破解攻击
0x2: 基于WEP加密的链接过程
0x3: 基于WPA-PSK加密的链接过程
这两种链接交互过程原理上和无加密方式(开放系统方式)相同,
4. 802.11标准中的数据安全加密协议
在IEEE 802.11协议中的加密算法有以下几个
1. WEP,Wired Equivalent Privacy: 802.11中最先期的加密标准 http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy 2. CCMP(CTR with CBC-MAC Protocol): 基于AES的全新加密协议,在IEEE 802.11i中提出 http://en.wikipedia.org/wiki/CCMP 3. WPA(Wi-Fi Protected Access) http://en.wikipedia.org/wiki/WPA 4. TKIP(Temporal Key Integrity Protocol) http://en.wikipedia.org/wiki/Temporal_Key_Integrity_Protocol 5. WPA2(Wi-Fi Protected Access 2) http://en.wikipedia.org/wiki/WPA2