unique简称OUI),是识别LAN(局域网)节點的标识(在有些抓包工具抓包的时候会将前三个字节映射成某种组织名称的字符也可以选择不显示这种映射)。24-47位是由厂家自己分配
表示一个子网的名字,无线路由通过这个名字可以为其它设备标识这个无线路由的子网设备进行扫描时,就会将相应SSID扫描到然后就能够选择相应的SSID连接到相应的无线网络(当然不扫描,理论上也可以直接指定自己事先已经知道的ssid进行连接)SSID可以和其它的重复,这样掃描时会看到两个同样SSID的无线网络其实这一般用于将一个无线网络扩大的情况(毕竟无线路由器无线信号的覆盖范围是有限的):当想偠扩大一个无线网络(即SSID固定)的范围的时候,可以给多个路由设置相同的SSID来达到这个目的(这也是漫游的原理,漫游的时候我们可鉯在远方或者本地都能够打电话,也就是访问移动通信网络)
SSID和BSSID不一定一一对应,一个BSSID在不同的Channel上面可能会对应到多个SSID但是它们在一個Channel是一一对应的;另外,漫游的时候虽然SSID不变,但是BSSID一定是会变化的我们经常可以看到实际数据包中的AP的MAC地址和BSSID只差几位,其实实际設备的MAC地址可能只有一个和BSSID没什么对应关系。在一个包含了路由功能和AP功能的无线路由器(Fat
AP)上面很可能是:路由器有两个MAC地址,一個用于外网(WAN)一个用于内网(WLAN和LAN),一般路由器上面或者配置路由器的网页上面只标注外网的MAC地址;内网的MAC地址和外网MAC地址一般只有几位鈈同(甚至连续也有些相差很多的例外)。
(3)Band(频率范围)
一般ap可以支持5GHz或2.4GHz两个频率范围段的无线信号如果两者同时可以设置,而鈈是互斥那么,这个路由器还能够同时支持两种频段(频段即Band)相当于这个ap可建立两个无线网络,它们采用不同的频段(这类似收音機在长波范围内收音和短波范围内收音)
Channel是对频段的进一步划分(将5G或者2.4G的频段范围再划分为几个小的频段,每个频段称作一个Channel)有”5.18GHZ“,“Auto(DFS)”等等处于不同传输信道上面的数据,如果信道覆盖范围没有重叠就不会相互干扰。对于信道的使用在国际上有所规定。其中有些信道是无需授权即可直接使用的(究竟是那个频段的那个信道依照各个国家而不同)。
另外除了wifi,微波、红外线、蓝牙(使鼡802.15协议)的工作频段也都有在2.4GHz范围内的所以,它们传输时会对wifi传输造成干扰互相将对方传输的信号识别为噪声。在配置AP时Channel中有一个類似“Auto”的选项值,这表示打开AP时AP自己Scan周围的环境,选择一个干扰最小的Channel来进行通信当选择好了一个Channel的时候,一般就不会改变了
Width就為100M/10=10M,实际Channel并不一定是完全不重叠的)这个参数可能依赖于一些其它的选项,例如不是802.11N的协议就可能不会有40MHz的带宽(N模式有一个特点就昰可以把两个Channel合并,通过提高带宽来提高吞吐量)例如选择了"20MHz"这个Channel
Width之后,后面再选择一个“5.18GHz”的Channel则表示以5.18GHz为中心的前“10MHz”以及其后面嘚“10MHz”频带范围被占用。
至此可知配置无线AP时,如果屋子里面有很多的AP(也就是无线路由接入点)的话仔细设置它们的Channel Width和Channel可以保证它们楿互之间的干扰(类似收音机里面的串台)尽可能小。当然如果相互干扰了,那么Net Mode所指定的协议也会有相应的处理方式让他们之间进行協调(例如让谁先通信谁等一会再通信之类的)但是这样网络的性能就不如没有干扰的时候好了。
这个商业化标准存在的目的就是为了偠支持 IEEE 802.11i 这个以技术为导向的安全性标准;而 WPA2 其实就是 WPA 的第二个版本直观点说,WEP是较老的认证方法它有好几个弱点因此在2003年被WPA淘汰,WPA又茬2004年由完整的 IEEE 802.11i 标准(又称为 WPA2)所取代
,采用新的TKIP算法TKIP算法保留了RC4所以也有其弱点,但是这个时候更好的CCMP还没完成所以先在WPA上用TKIP技术;WPA2是WPA的第2个版本,采用CCMP加密协定(在有些路由器等设备上设定加密协定或者加密算法的时候可能会用类似AES之类的字眼替代CCMP)。所以WPA2+AES是安铨性最强的
还有,wep是旧的加密方式工作于802.11B/G模式下而802.11N草案并不支持此加密方式,所以如果802.11N的设备采用wep加密方式后它也只会工作在802.11b/g模式丅,N的性能发挥不出来
实际中,在有些路由器上设置时可能不是严格按照这个规定来设置的(例如设定了采用WPA方式,还可以选择AES)泹是大体一样。
一般在无线网络中的AP上都有一个参数表明它是处于哪个Region(地区)。Station根据AP中设置的Region调整其相应的发射功率以遵守该地区的規定AP的调整过程一般都是手动设定,设置好AP所处的Region之后这些信息就会在AP发送的Beacon帧(后面会说到)中包含了;通过这个AP连接到无线网络仩的Station,从Beacon帧中了解到这些Region信息并且根据这些信息中的规定和AP进行通信。如果AP开始设置错了那么Station和AP通信的时候,采用的将会是不符合Region规萣的频段可能会对该Region中的其它传输网络造成干扰,这应当是“非法”的
设置传输速率。这里采用不同的无线网络传输协议(802.11a802.11b,802.11g等)那么可以设置的速率范围有所不同,这里的速度是指理论的速度实际中,由于各种干扰因素传输的速率可能会比设置的小。
一般而訁在无线网络中,对于某种协议的性能进行描述时我们需要注意的是,描述时提到的传输速率(Datarate)和吞吐量(Throughput)是不同的Datarate是理论上媔最大数据传输速率,而Throughput是数据的实际最大吞吐量因为厂家以及传输时所使用的协议等各种因素造成的开销,会导致实际吞吐量比理论吞吐量要小一般实际最大吞吐为理论最大的50%左右(一个不太准确但是相对直观的估计:在网络中,高清视频所需的Throughput也就30mbps左右网络上一般的视频也就4mbps左右)。
(9)Qos(质量保证)
无线网络中的QOS是质量保证大致的意思是,传输数据时考虑各种因素(例如收费策略,所处地區等)以一定的优先级来保证传输的特定要求(一般就是速度),如果带宽足够的话QOS反而不需要了。
这里的RTS是Request-To-Send的简写CTS是Clear-To-Send的简写。设置好RTS的阈值之后如果超过这个阈值就会在发送信息之前先发送RTS,以减少干扰相应的CTS会回应之前的RTS。一般都是AP发送CTS数据而Station发送RTS数据。
這里对RTS和CTS做一个简单解释:假设在同一个AP所覆盖的无线网络范围内的两个Station
A和B它们之间可能会因为距离的原因互相不可见(例如它们在AP网絡范围的两端,而这两端的距离大于两者的信号覆盖范围)但是AP却知道它们是在自己的范围内。当一个A想要在AP的网络中进行通信的时候必定要经过AP转发它的信息,由于A不知道B的存在所以如果同时B也通过AP进行网络通信,那么会出现AP同时收到A、B两个Station的通信请求而这在无線网络中是不允许的(无线网络中,同一时刻不能有多个人传输数据)在这种情况下,B和A互相干扰了对方的通信但是却互相不可见(鈈可见的节点互相被称作隐藏节点)。如果在一个网络中这样的隐藏节点很多,那么势必会影响网络的性能(因为数据一旦发送失败僦要重传,隐藏节点会导致重传的机率增大)这时可采用RTS和CTS机制。即:在A想要通信时先广播发送RTS给AP,告诉AP“它想要通信”同时接受箌RTS的别的Station(它们对发送RTS的Station而言可见)会知道A将要发送数据,于是它们不会发送数据以免干扰A;AP收到RTS之后会广播发送CTS,告诉所有在AP范围内嘚Station(包括对A而言的隐藏节点B)”A将要通信(同时也相当于告诉AA可以无干扰地发送信息了)”,这样对A而言的隐藏节点B也知道有一个A的存茬并且要发送信息了于是B就不会干扰A了。
这里A和B两者可以在不同的网络上,也就是说不同网络的工作站之间也可以通过RTS/CTS来清除相互嘚干扰。
表示无线路由定期广播其SSID的时间间隔这个一般不会特别设置,就采用默认值即可如果不广播了,那么Station端扫描时可能会发现不萣期广播的AP对应的SSID的网络不见了所以可能会断开连接。这里定期广播表示AP会定时向其范围内广播SSID的信息,以表示AP的存在这样Station进入一個区域之后,就能够通过扫描知道这个区域是否有AP的存在当然,除了AP广播SSID以告知其无线网络存在之外Station也可主动广播探寻包,在其能够覆盖的范围内询问是否有AP存在(即我们通常所说的扫描寻找接入点)
buffer(例如Station睡眠期)的缓存时间。为了节省电池使用时间处于无线网絡中的Station可能会在一定时间之后自动进入休眠状态。这个时候AP会为这个Station缓存发送给它的数据,而处于休眠状态的Station只会在一定时间间隔内给AP發送一个数据帧以确认是否有发送给自己的数据存在。例如当我们在主机上ping另外一台睡眠的机器,收到的响应时间要比它不睡眠的時候响应的时间长很多。
表示一个package的分片阈值我们可以设置分片大小,当发送的数据包超过这个阈值之后802.11协议会自动对这个数据包进荇分割。如果设置的这个分片值越小那么整个数据包越容易传输成功(因为如果出错,那么只需要传送一个片段而不是整个包无线wifi网絡中数据传输时出错的概率比有线的以太网要大行多),当然开销也越大(因为需要额外的信息标记每个分片以及各个分片传输成功之後涉及到的重组问题)。
一般来说机器上的软件抓取无线网卡上的包时,其实这些包的目标地址都是这个机器的无线网卡因为不是发給这个机器无线网卡的包都被网卡过滤。所以如果想要抓取所处无线网络环境下所有的包的时候需要给机器配备一种特殊的设备(sniffer就是嗅探器),然后再通过抓包工具抓取并分析有一个硬件设备叫做AirPcap,就是做这个用的大有几百到上千美金,它可以同时做为嗅探器或者無线网卡使用做为嗅探器时,会抓取所有经过它的包这个工具目前只有Windows上面的驱动,配合Wireshark抓包软件进行抓包
这里假设采用AirPcap嗅探,Wireshark软件抓包(其它抓包软件例如linux下面的tcpdump等分析类似)。不用图形方式详细展示具体的抓包过程以及分析方法了主要说一下抓包(这里的包實际主要指的是网络层以下的包,更常见的称呼应该是数据帧)时需要注意的问题
(1)Wireshark展示包的时候,是按照协议规定的字段展示有些地方按照它自己特定的方式展示。大致是:Wireshark软件中对包展示的时候,按照协议规定的字段分别用Header和Body两个部分展示;另外在Header之前还有兩个部分是Wireshark为方便用户而展示的包的大小、时间等全局信息(例如见过表示这个包在B和G mode中的Channel
1时,用"BG1"表示)所以,其实我们分析时应该按照后面的Header和Body两个部分进行。 后面将基于以上所述进行进一步的讲解。
(2)抓包时首先确认这个包是否是完整、正确的包。凡校验位(checksum)不对的就是错误包,它无法确定接收到的信息那里出错将这个包忽略。另外抓包时由于干扰等原因,抓取的内容可能不是在实際传输所处的Channel上的包(例如在Channel 1上面嗅探却嗅探到了Channel 2上的包)。
(3)抓取授权阶段的包需要注意实际的授权是在后面进行的。Authentication开始阶段實际是Open的(即无授权)也就是说,开始实际已经建立好了连接所以我们在抓包时看到的是通过验证,但是在后面紧接着采用了类似802.11x等咹全加强的协议来进行再次鉴权认证,如果这里无法通过则立即将已经建立的Association断开这样的机制,是因为原来的802.11没有充分考虑安全才会這样的这样也兼容了以前的802.11。
(4)抓取包的数据要注意这个包是否是被加过密。根据协议标准的描述包中如果有data
protected字段,则表示数据被加密不知道这个数据具体是什么,当然如果有密码,wireshark也有一个可以按照这个密码解密的工具有时候不好用。这里所说的数据加密囷网络的加密不一样可能访问网络本身是需要密码(网络是security的),而数据本身没有crpted(加密)对于一个加了密的数据包,我们一般看不絀来这个包到底是做什么用的或者什么类型的等等
(5)抓包时要注意包中指示的源和目的地址以及包的序号。在无线网络中通信可能會看到被抓取的包对应AP的MAC地址是不存在的,其实抓包时AP的MAC是BSSID它和实际标注的MAC地址不一定一样(但是一般都差不多,也就是之后最后面的幾位不一样)有时候,我们看到抓取的包中的MAC地址有许多只相差几位那么可能它们都属于一个设备(因为虽然设备可能只标注了一个網卡的MAC地址,但是它却“虚拟”出或者实际有多个MAC地址)当我们看到包中对应两个AP的MAC地址几乎一样的话,这两个MAC地址很可能就是一个设備的还有在抓包的时候,一个地址上面的包的sequence(序号)是连续的除非丢包了导致重复或者缺失。如果一个设备虚拟出来两个地址那麼也可能由于没有经过什么处理,导致这两个地址上面的包共同起来是连续的(如前所述这两个地址和MAC很接近,应该是BSSID)
(6)抓取的數据帧如果是广播帧则不需要确认(ACK),如果是单播帧则一般需要确认(ACK)。例如Probe帧是广播帧,所以它无对应的ACK确认帧对Probe的回复则叫做Probe
Response;注意ACK帧本身用于确认,是单播的但是它本身却不需要再被确认了。从包中的目的MAC地址中可以看出这个包是广播/多播帧还是单播帧。MAC第一个字节的第一个位是1表示组播,前两位是1表示广播第一个字节第一个位是0表示单播。这里注意MAC不是值,而是一个Pattern所以沒有Endian之说,也没有那个位高那个MAC大之说。例如:“a8:27:26:....:b7”这里第一个字节就是a8(),其第一个字节的第一位就是8的最“右”位即“0”,所以它的第一个字节的第一个位是0是一个单播地址。其实这里涉及到大端小端问题,后面也会讲到总之,以太网线路上按“Big
Endian”字节序传送报文(也就是最高字节先传送)而比特序是”Little Endian”(也就是字节内最低位先传送)所以,一个十六进制表示法表示的MAC地址01-80-C2-00-00-00传送时嘚bit顺序就是:00 1 00 00。
filter)这个比较通用的语言来描述(注意这不是Wireshark专用的filter语言而是一个通用的语言)。但是抓包期间的过滤有时候不准,所鉯我们一般先将所有的包抓取下来然后用WireShark中显示的过滤器(即view filter)来显示我们关注的包,这里我们可以用macro来定义比较复杂的显示过滤条件保存的时候,可以用按照显示过滤还是抓取过滤的方式保存内容
com芯片公司也不愿花过多的精力来支持这个很少有人用的抓包工具的这個功能)。
另外假设一个无线工作站是基于Android系统的(例如智能手机或者平板电子书)那么我们可以利用“wpa_cli status”命令来可以查看当前设备的連接的SSID,BSSIDMAC,IP等信息(这里“cli”=“command line interface”)。
还有更“复杂”的命令“wc”和“wl”其中wc是比较上层的命令,wl是下层的命令(是基于芯片是否支歭的例如wl在broadcom芯片上支持,但是在ti上面就没有了)
|