WiFi认证—分析从连接WiFi到上网的全过程(一) - 墨天轮
1
聊一聊网络分析那些事
在我们的业务当中,RPC为各个节点之间的交互提供了通信保障。节点间通信作为整个体系中至关重要的一环,对整体的业务具有不可忽视的影响;通信速率是影响业务直接因素,所以对节点之间的通信能有一个有力检测及分析方式非常重要。
此外,对通信业务进行分析可能并不仅仅针对网络通信的好坏。在分布式或者共享存储的条件下,业务处理性能的好坏也会直接在通信上有一个直观的反馈。通俗来讲,业务处理性能优秀,那么在网络条件良好的情况下,通信状态也会有较好的性能表现;反之,业务处理较慢,那么节点间的通信状况也不会满足我们的期待。
总的来说,对节点间的通信有针对性的检测和分析,有三个作用:一是分析当前测试环境的网络状态;二是分析各个节点的网络通信模块是否出现异常状况;三是从宏观上获得业务处理性能在通信上的直接反馈。基于此,本文将在这几个方面讲述如何使用WireShark
如何捕获及分析通信数据包。
2
本文的主要内容
本文的目的在于如何使用WireShark对网络环境和节点间通信状况进行检测与分析,故没有太多的关注与实际业务的耦合,着重点在于讲解WireShark的使用,让网络原理不再停留在概念和书本之上。
本文将使用一个简单的例子完成对网络通信流程、WireShark使用以及网络体系基本面貌的讲解。从连接至普通家用路由器开始,到浏览一个网页。分析期间发生了什么,什么设备工作了,运用了哪些路由协议,他的工作原理是什么,本文都会对其进行一一讲解。
在所有的实验环节当中,之所以选择使用无线WiFi作为讲解的第一步,主要的考虑是,单独的讲述由交换机作为网络中枢的有限局域网,大家可能都已经较为了解。使用无线WiFi来作为讲述的第一步,主要的目的就在于引入更多的元素。
3
涉及到的技术和协议原理
在普通家用路由器可以正常连接外网的时候,无线局域网内部的主机可以通过此路由器完成对外网访问,就浏览网页而言,这个过程做运行的协议,经过的设备将在后面部分分析。本章主要描述WiFi认证、DHCP等基础的网络协议。
3.1
WiFi认证过程
对于个人的 PC 来讲,我们所使用最多的就是所谓的“无线 WiFi”,这是一个目前运用广泛并且较为简单的概念。我们通过 AP(Access Point)接入点来接入网络。连接到家用路由器大致可以分为以下几个过程:
1)AP 发送 Beacon 广播管理帧(信标帧)
2)客户端向承载指定SSID
的 AP 发送 Probe Request(探测请求)帧
3)AP 接入点对客户端的 SSID 连接请求进行应答
4)客户端对目标 AP 请求进行身份认证
5)AP 对客户端的身份认证(Authentication)请求做出回应
6)客户端向 AP 发送连接(Association)请求
7)AP 对连接(Association)请求进行回应
8)数据交互
9)客户端向 AP 请求断开连接(Disassociation)
3.2
DHCP(动态主机配置)
动态主机配置协议是一个局域网的网络协议。指的是由服务器控制一段 IP 地址范围,客户机登陆服务器就可以自动获得一个服务器分配的 IP 地址和子网掩码。由于普通的家用路由器已经默认开启了 DHCP 服务,则当客户机完成身份认证之后,该 DHCP 服务将会从 IP 地址池中动态分配一个 IP 地址给客户机。在租用期内,客户机可以通过该 IP 地址完成与其他主机的通信。一般的,DHCP协议规定的几种报文类型如下:
1)Discover(发现)报文 广播发送,客户端发送给DHCP服务器(用来发现有哪些服务器)
2)Offer(提供)报文: 用来响应Discover报文 包含了各种配置信息(服务器发送自己的详细信息给客户端,看它用不用)
3)Request(请求)报文: 客户端请求配置确认,或续借租期
4)ACK(确认)报文: 服务器对Request报文进行确认
5)NAK报文: 服务器对Request报文拒绝响应。
6)Release: 客户端要释放地址时用来通知服务器。传输层使用UDP协议,端口为 6768
3.3
其他相关的基础网络协议
普通家用路由器可以正常连接外网的时候,无线局域网内部的主机可以通过此路由器完成对外网访问,就浏览网页而言,这个过程运行的协议(包括ARP、DNS、TCP等),经过的设备将在后面部分分析。
4
测试步骤
1.用户 PC 开机并打开 WireShark,开始监听指定网卡的数据包
2.连接家用无线路由器
3.访问网址 www.msftconnecttest.com, 获取页面数据
5
抓包分析相关的网络协议
3.3
802.11 数据帧分析
802.11和WiFi技术并不是同一个概念。WiFi标准是802.11标准的一个子集,并且是WiFi联盟负责管理。但是这并不妨碍我们使用802.11协议来分析其通信过程。802.11的帧控制结构有很多,它被基本的区分为控制帧和管理帧,本文仅对连接AP的过程进行分析,所以仅涉及管理帧的分析。
由于实验环境中有很多的 Beacon 广播信号的干扰,为保证在众多的数据中快速找到客户机路由器的 Mac地址 连接的过程,是事先记录相关的 Mac 地址,其中:
路由器的 Mac 地址为:dc:f0:92:9c:f9:a0
客户机的 Mac 地址为:70:1c:e7:c3:65:a9
-
AP发送Beacon广播管理帧(信标帧)
因为AP发送的Beacon管理帧数据包是以Broadecast(广播)的形式发送数据,所以当含有无线网络适配器的设备将会在无线连接列表中显示该SSID。
值得注意的是,包数据中的Type/Subtype
字段说明了这个帧的类型为Beacon Frame, 并且Destination address
字段描述了这个请求的域为Broadcast。Supported Rates
指示了该协议下支持的速率。Duration
表明该帧和它的确认帧将会占用信道多长时间,其值用于网络分配向量(NAV)计算。
-
客户端向承载指定SSID的AP发送Probe Request(探测请求)帧
当我们点击连接的时候,无线网卡就会发送一个探测请求帧,用来向AP请求连接。
可以注意到,Probe Request 用于主动扫描试图寻找网络,而不是听候网络宣告其本身的存在,此时的请求仍然使用广播的形式来探测指定SSID的AP是否存在,试图从该AP中获取所发现的所有 BSS 及其相关参数。
-
AP接入点对客户端的SSID连接请求进行应答
指定SSID的AP如果获知了Probe Request的内容,将会发送 Probe Response 回应对应的请求,并报告BSS相关的参数,这些参数决定了客户端能以何种方式及何种速率连接或通信。此时的响应使用的是单播的形式予以响应。
-
客户端对目标AP请求身份认证
假设客户端已经获知Probe Response提供的信息,那么它将以单播的形式请求身份的认证,从下图中可以看到Authentication gorithm 的标识为 0 ,表示使用开放系统认证方式,此时的Authentication SEQ 字段为1,表示该帧属于认证过程中的第一帧。
-
AP 对客户端的身份认证(Authentication) 作出回应
和上一个帧一样,AP 收到客户端发起的认证请求时,将会以单播的形式回复一个Authentication SEQ 为2的Response。在这两个Authentication帧中,都有一个status code字段用于表示身份认证请求的结果,为0时表示成功。此外,两个Authentication帧都使用了开放系统身份认证(open-system authentication),它是 802.11 唯一要求必须具备的认证方式。
-
客户端向AP发送连接(Association)请求
身份认证通过,这意味着连接到AP的准备工作已经完成,此时客户端可以向AP发送正式的连接请求。
此时该请求的Type/SubType已经变成Association Request
,802.11 wireless Lan management帧中的Capability Infomation字段描述了性能相关的信息。ESS/IBSS两位具有互斥关系,接入点会将ESS设置为1,而将IBSS字段设置为0,标识接入点属于基础结构型网络的一部分;IBSS中的工作站则会将ESS设置为0,而将IBSS设置为1。
-
AP对连接(Assocication)请求予以回应
AP 对客户端的连接请求(Association)予以回应,至此,WiFi 的连接认证交互就结束了之后就可以进行正常的数据交互了。之后的数据交互和客户端断开连接请求不再赘述。
6
小结
本文主要对从连接WiFi到上网的全过程中的相关协议进行了介绍,并通过WireShark抓包具体分析了其中的关键步骤。至此,整个过程就迈出了第一步。后面的章节将会具体描述终端连接到AP之后如何完成上网这一个过程。