Wi-Fi是Wi-Fi联盟制造商的商标做为产品的品牌认证,是一个创建于IEEE 802.11标准的无线局域网技术。基于两套系统的密切相关,也常有人把Wi-Fi当做IEEE 802.11标准的同义术语。“Wi-Fi”常被写成“WiFi”或“Wifi”,但是它们并没有被Wi-Fi联盟认可。
Wifi相关概念
- Wi-Fi:是Wi-Fi联盟制造商的商标作为产品的品牌认证,是一个创建于IEEE802.11标准的无线局域网技术,主要用于短距离的无线互联网传输。
- Wlan:(Wireless Local Area Networks)无线局域网络,利用射频技术,使用电磁波,在空中进行通信连接,用于弥补有线局域网的不足。Wlan并不是一种具体的网络标准,而是一种网络类型。Wifi是实现Wlan的一种技术,还有蓝牙,wimax等
- 802.11系列协议:IEEE802.11系列协议定义了设备之间的访问规则。无线局域网第一个版本(802.11)发表于1997年,其中定义了介质访问层和物理层。物理层定义了工作在2.4GHz的ISM频段上的两种无线调频方式和一种红外传输的方式。1999年加上了两个补充版本:802.11a定义了一个在5GHz ISM频段上的数据传输速率可达54Mbit/s的物理层,802.11b定义了一个在2.4GHz的ISM频段上但传输速率高达11Mbit/s的物理层。由于2.4GHz的ISM频段为世界上绝大多数国家通用,因此802.11b得到最广泛的应用。802.11协议又做了各种补充,尤其2003年的802.11g协议定义了一个工作在2.4GHz的ISM频段上且传输速率高达54Mbit/s的物理层。
- IEEE802:IEEE802是指IEEE标准中关于局域网和城域网的一些列标准。IEEE802中定义的服务和协议限定在OSI模型的最低两层(即物理层和数据链路层)。事实上,IEEE802将OSI的数据链路层分为两个子层,分别是逻辑链路控制(LLC,Logical Link Control)和介质访问控制(MAC,Media Access Control)。Ethernet以802.3协议作为其网络层以下的协议,而Wifi则以802.11作为其网络层以下的协议。目前LLC的作用已经消失了,很多厂商的适配器上就只有MAC协议
无线网的一些缺点
- 通信之前需要建立连接,有线网络直接利用线缆连接
- 通信双方采用半双工的方式通信,有线网络可以采用全双工
- 网络层以下出错的概率非常高,帧的重传概率很大,需要在网络层之下的协议添加重传机制。
- 容易抓包,存在安全隐患
Wifi相关知识
由于802.11g是现阶段普及范围最广的,因此以802.11g协议标准为例进行讲解。
主要实体原件
- 工作站(Station):具有无线接入功能的电子设备(以下简称STA)
- 基站(Access Point):802.11网络所使用的帧必须经过转换才能传到其它不同类型的网络,具有无线至有线桥接功能的设备称为基站(Access Point,AP)
- 频谱
802.11g标准工作在2.4GHz频段,频率范围为2.400-2.4835GHz,划分为14个信道,相邻的多个信道存在频率重叠,整个频段内只有3个(1,6,11)互不干扰。 服务集
服务集(Service Set)是用以描述802.11无线网络的构成单位(一组互相有联系的无线设备),使用服务集标识(SSID)作为识别。可以分为独立基本服务集(IBSS)、基本服务集(BSS)和扩展服务集(ESS)三类。服务集标识(Service Set Identifier,SSID)是一个或一组基础架构模式中无线网络的标识,依照标识方式可细分为基本服务集标识和扩展服务集标识两种:
- 基本服务集标识(BSSID):表示AP数据链路层的MAC地址。
- 扩展服务集标识(ESSID):一个最长32字节且区分大小写的字符串,表示无线网络的名称。AP可以选择在信标中暴露自己的ESSID(称为SSID广播),也可以选择隐藏。多个AP可以拥有同一个ESSID,以实现客户端在AP之间漫游的能力。但BSSID必须唯一,因为数据链路层中MAC地址是唯一的。
在基础架构模式下,所有客户端和一个(BSS)或多个(ESS)访问点关联,各客户端间不直接互相通信。
- 基本服务集:即使两个AP采用相同的ESSID,设备也无法在这两个AP之间进行漫游。可类比于现实生活中各独立的AP之间是独立的。
- 扩展服务集:多个AP采用相同的ESSID,且AP之间的信号会有一定的重合,AP之间会有设备进行互联,从而可以让连接到AP的设备在多个AP中互相漫游(AP间采用的加密方式一致),AP需要设置不同的频段以防止干扰。可类比于现实生活中胖瘦AP的架构模式。
802.11帧
管理帧(Management Frame):用于STA与AP之间的协商、关系的控制
- Beacon Frame(wlan.fc.type_subtype==0x08): 信标帧,提供服务的AP会定时发送Beacon Frame以告知BSS的存在,并提供了BSS的一些基本信息,如BSSID,SSID(ESSID),Channel等。可以利用该信息来查看附近的AP信息。
- Probe Request/Probe Response(wlan.fc.type_subtype==0x04/wlan.fc.type_subtype==0x05):探测请求/探测响应。Probe Request由STA发出,用于探测周围的BSS。如果指定了SSID(ESSID),则只有与之一致的BSS(BSS内的AP)会通过Probe Response进行响应。如果未指定,则所有BSS都会响应。与Beancon Frame一样,Probe Response提供了BSS的基本信息。(扫描AP)
- Authentication(wlan.fc.type_subtype==0x0B):包含认证类型(Authentication Algorithm)、认证进度(Authentication SEQ)和认证状态(status code)AP可以根据相关信息决定接收还是拒绝某个STA的加入(一般通过MAC地址进行认证,后面还有认证的环节)。在第一次连接(输入用户名密码)时未抓到该数据包)
- Deauthentication(wlan.fc.type_subtype==0x0C):解除认证,用来终结认证关系
- Association Request/Association Response(wlan.fc.type_subtype==0x00/wlan.fc.type_subtype==0x01):STA找到网络并通过认证,就会发送Association Request请求AP进行关联,AP以Association Response进行回应。
- Reassociation Request/Reassociation Response(wlan.fc.type_subtype==0x02/wlan.fc.type_subtype==0x03):STA远离原AP,在ESS中发现信号更强的AP时,发送该请求。
- Disassociation(wlan.fc.type_subtype==0x0A):接触关联,STA向AP发送该数据帧,AP收到该请求后,释放为STA分配的资源。
控制帧(Control Frame):用于竞争期间的握手通信和正向确认等,为数据帧的发送提供辅助。
- Power Save Poll (wlan.fc.type_subtype==0x0A):省电,轮询,休眠的AP定期发送该帧
- Request To Send(wlan.fc.type_subtype==0x0B):请求发送,表明A要向B发送数据
数据帧(Data Frame):用于竞争期间和非竞争期间的数据传输。
- Data(wlan.fc.type_subtype==0x00):基本数据帧,包含了通信的基本数据。
- Null(wlan.fc.type_subtype==0x04):没有数据的空帧。
利用WireShark抓取这些帧时,需要将网卡设置为监听模式(Windows下会WinCap不支持,Linux下若命令行不支持,可采用手动的形式)。这是因为无线网卡会根据MAC过滤其捕捉到的数据包(网卡不过滤,网卡驱动也会过滤),而且网卡还会将802.11数据包的头转换成Ethernet的数据包头.
无线的接入过程
STA(工作站)启动初始化、正式开始使用AP传输数据帧之前,需要经过三个阶段才能够接入AP(802.11 MAC层负责客户端与AP间的通讯,功能包括扫描、接入、认证、加密、漫游和同步等功能):
扫描阶段
- 主动扫描:STA依次在支持的信道发出Probe Request帧,从STA的存储的SSID记录中寻找相同SSID的AP,若找不到AP,则一致扫描下去。Wifi探针——通过监听该请求可以知道是否有某个设备进入BSS的范围(MAC地址)
- 被动扫描:通过侦听AP定期发送的Beancon帧来发现网络(可以不设置SSID)。是否可以设置AP不发送该帧?直接获取到路由的信息,WPS信息也可以由该帧获取。
认证
STA找到一个AP的SSID(ESSID)与其所属有的SSID相同之后,根据收到的AP信号强度,选择一个信号最强的AP,然后进入认证阶段。- 开放系统认证(open-system authentication)
- 共享密钥认证(shared-key authentication,WEP)
- WPA(2) PSK认证(Pre-shared key,WPA/WPA2)
- 802.1x EAP认证
连接
AP向STA返回认证响应信息,身份证获得通过后,进入关联阶段。- STA向AP发送关联请求
- AP向STA返回关联响应
首先客户端发送请求的广播(扫描),AP A 和AP B发送响应请求。客户端检查是否存有AP A和AP B的SSID,然后再查看存有SSID的AP的信号强度。确认选择AP A,客户端向AP A发送认证请求(认证)(Authentication Request),AP A确认认证信息并返回(Authentication Response),客户端向AP A发送关联请求(Assiociation Request),AP A确认关联请求(Association Response)。
认证与加密
Wifi中的认证算法通常有四种,开放认证、共享密钥认证、802.1x认证、psk认证。加密算法有三种:WEB加密(RC4)、TKIP加密(RC4)、CCMP加密(AES)。Wifi采用的安全策略就是认证+加密。
WEP 认证:WEP 认证有两种,一种为Open System和Shared Key。
- Open System:开放系统认证,任何STA可接入该系统
- Shared Key:共享密钥方式。认证时服务端向客户端发送一个128bits的随机数。然后STA用密钥加密后返回到AP端。AP验证成功后则返回。WEP加密机制并不安全,可以采用通过收集数据包等方式破解WEP的Shared Key。
WPA 认证:WPA认证有两个认证方法分别为WPA-psk和WPA2-psk(802.11i)(PSK:Pre share key)。
- WPA-psk:PSK认证算法+TKIP加密算法
- WPA2-pks:PSK认证算法+TKIP加密算法/CCMP加密算法。
STA以WPA模式与AP建立关联后,如果网络中有RADIUS服务器做为认证服务器,那么STA就使用802.1x方式进行认证;如果网络中没有RADIUS,STA与AP就会采用预共享密钥(PSK,Pre-Shared Key)的方式进行认证。
- WPA-PSK/WPA2-PSK认证过程:AP首先会生成一个随机数ANonce,STA生成一个随机数SNonce。AP将其生成的随机数ANonce传送给STA(1)。STA利用收到ANonce生成PMK(PMK=PSK=PBKDF2(PASS,SSID,SSIDLENGTH,4096,256))。然后利用PMK计算PTK,之后对PTK进行计算获取到MIC。STA将SNonce和MIC传送给AP(2)。AP根据SNonce等信息生成PTK,即MIC,然后验证生成的MIC与STA传入的MIC是否一致。若一致AP通知STA是否使用一对一密钥,带有MIC(3)。STA响应(4)。
用airmon-ng套件去攻击WPA-PSK/WPA2-PSK的原理就是利用字典中的密码生成PSK(PMK),然后依次计算出PTK和MIC,最后对比MIC是否相同。MIC的生成需要SNonce、ANonce等信息,因此需要抓取4次握手包。 802.1x 认证:主要用于解决局域网用户的接入认证问题。是一种基于端口的网络接入控制协议,对端口上接入的用户设备通过认证来控制对网络资源的访问。(端口可以是物理端口也可以是VLAN一样的逻辑端口。相对于无线局域网,“端口”就是一条信道)。
802.1x认证系统采用网络应用系统典型的C/S结构,包括三个部分:客户端、设备端和认证服务器(Radius)。- 客户端:局域网用户终端设备
- 设备端:对所连接的客户端进行认证,为客户端提供接入局域网的端口(物理端口/逻辑端口)。设备端还起一个中继代理的作用,用于接收客户端发送的EAP报文,然后再将EAP报文经过整理或封装转换成RADIUS识别的报文,向RADIUS服务器发送,从而实现认证。
- 认证服务器:为设备端提供认证服务的设备,是真正进行认证的设备,实现对用户进行认证、授权和计费,通常为RADIUS服务器。
设备的认证触发有多种方式,通常可以由客户端主动发起,也可以由设备端主动发起。“客户端主动发起”时,由客户端主动向设备端发送EAPOL-Start报文触发认证。而“设备端主动发起”用于支持不能主动发送EAPOL-Start报文的客户端,有多种触发方式:
- DHCP报文触发:设备在收到用户的DHCP请求报文后会主动触发对用户的802.1x认证,仅适用于客户端采用DHCP方式自动分配IP的情形。(客户端有没有获取到IP?,直接使用静态IP会不会被绕过?)
- 源MAC未知报文触发:当设备收到源MAC地址未知的报文时主动触发对用户的802.1x认证。若设备在设置好的时长内没有收到客户端的响应,则重新发送该报文。(源MAC未知,通过修改MAC地址是不是就可以绕过认证?)
还不快抢沙发