趣闻:
趣闻:
小知识:
2G/3G/4G对应频段:
ISM频段是国际电信联盟(ITU)定义的一些无线电频段,ISM指工业的(Industrial)、科学的(Scientific)和医学的(Medical),因此顾名思义ISM频段就是各国挪出某一段频段主要开放给工业、科学和医学机构使用。使用这些频段无需许可证或费用,只需要遵守一定的发射功率(一般低于1W),并且不要对其它频段造成干扰即可。
ISM频段在各国的规定并不统一,但有一个共同的ISM频段是2.4GHz,这个频段被很多无线网络设备使用,如无线局域网 (WiFi)、蓝牙、ZigBee等。除了2.4GHz,还有一些其他的ISM频段,如13.56MHz、433.92MHz、915MHz、5.8GHz、24.125GHz等。
我国典型的ISM频段有以下:
小知识:
在有随机热噪声的信道上传输数据信号时,信道容量C(传输速率上限)与信道带宽B、信噪比S/N关系为: C=B*log2(1+S/N) 。这个公式可以衍生出以下结论:
结合香农第二定理可以解释以下现象:
|
用于将低频信号叠加到高频的电磁波载波上,实现信号的无线传输,分为模拟调制和数字调试。
用于传输模拟信号,无线电通信早期使用模拟调制。模拟调制包含幅度调制(AM)、频率调制(FM)、相位调制(PM)三种。以下是AM和FM的示例:
用于传输数字信号,也就是二进制的01值。
有三种基本的数字调制方式:幅移键控ASK(Amplitude-Skfit-Keying)、频移键控FSK、相移键空PSK,其他各种调制方法都是以上方法的改进或组合。
参考链接:
采用更高阶的调制方式可以获得更高的传输速度,但相应的对射频器件的性能要求越高,所以出现的时间得也越晚。 |
发射功率对应发射天线的辐射功率,也就是天线上电压和电流的乘积。信号强度对应接收天线的接收功率,也就是电磁波通过电磁感应在接收方天线上产生的电压和电流的乘积。
功率的单位是瓦特(W),但衡量发射功率和信号强度的单位并不是瓦特,而是dBm。dBm表示分贝毫瓦,是一个表示功率绝对值的单位,任意功率P(mW)和x dBm的换算公式如下:
x = 10*log10(P/1mW)
P = (1mW)*10(x/10)
假设发射功率为50mW,则发射功率对应的dBm数为10*log10(50mW/1mW) = 17dBm。
假设信号强度为-30dBm,则接收功率x表示为 -30dBm = 10*log10(x/1mW),x为0.001mW。
设备信号强度大于-30dBm就属于极好了,-30dBm~-40dBm属于正常范围,小于-70dBm时表示信号较差。 |
关于天线增益,天线没法凭空产生能量,也就是1dBm的发射功率,天线没法辐射出2dBm的电磁波能量。天线增益实际指的是天线在信号最强的方向上的辐射功率密度与理想的各向同性天线(Isotropic Antenna)辐射功率密度的比值。
天线增益越高,天线的指向性就越高,穿墙能力也就越强,但也越容易出现信号死角。家用路由器的天线增益通常是3dBi到5dBi,少数主打穿墙的路由器会使用7dBi的天线。
国内对无线路由器的功率限制是天线增益小于10dBi时功率不超过100mW,天线增益大于10dBi时不超过500mW。由于家用路由器的天线增益通常是3dBi到5dBi,所以路由器发射功率最大也只能达到100mW。 5G频段下无线路由器的发射功率限制是200mW。 无线网卡的发射功率通常是36mW,对应15.56dBm。 |
正式名称Wi-Fi,一种无线局域网技术,使用IEEE 802.11系列标准(协议),提供移动接入功能,支持便携设备联网。
关于WLAN、802.11、Wi-Fi的区别:
|
Wi-Fi通信特点:
Wi-Fi世代列表:
Wi-Fi+数字的命名方式是在2018年才引入的,为的是让消费者更容易理解版本的更新(数字越大,表示技术越先进)。Wi-Fi联盟的这这种改动有利于厂商营销,算是一种比较聪明的方式,相反的,另一项技术的命名就不是那么聪明了,这就是USB,感兴趣的可以用“命名鬼才 USB-IF”为关键字搜索一下,看看“USB命名部”是怎么作妖的。当然,考虑到这两者出现的时间,也很难让人不认为Wi-Fi是吸取了USB命名的经验教训。 |
Wi-Fi的工作频段分为2.4 GHz和5 GHz。工作在2.4 GHz 频段的协议:IEEE 802.11b/g/n/ax。 工作在5 GHz 频段的协议:IEEE 802.11a/n/ac/ax。
802.11n和802.11ax同时支持2.4G频段和5G频段,802.11b和802.11g只支持2.4G频段,802.11ac只支持5G频段。 |
ISM定义的2.4G频率范围是2.4GHz~2.5GHz,Wi-Fi使用的2.4G频率范围是2.402GHz~2.4835GHz。
整个2.4G频段的频率分为14个信道,如下图所示, 每个信道的带宽为22MHz,各信道中心频点以5MHz的倍数增加,有效带宽为20MHz,剩余2MHz属于隔离保护带宽。 整个2.4GHz的频段中,只有1, 6,11三个信道不会相互覆盖(不考虑14信道)。
|
某些基站套包类产品可能会工作在36信道(2380)、38信道(2504) 这两个非标信道上,对应的Wi-Fi设备SDK一般默认不支持这两个信道,需要找原厂提供patch。 |
每个信道占用的带宽是20MHz,但信道之间只隔了5MHz,这样就导致相邻信道会有频率重叠,设备无法独占信道进行通信。如果想让设备独占整个20M信道,那么就必须让设备使用的信道隔离得足够远,这样才不会有重叠。 如果只有1台设备,那么用哪个信道都行,如果有2台设备,那么这两台设备使用的信道必须间隔5以上才不会互相影响,比如使用1信道和6信道,或者使用2信道和10信道。如果有3台设备,那么只能使用1、6、11这三个信道才不会产生重叠。4台或以上的设备无论怎么排布信道都会有重叠。 |
40M带宽模式是802.11n中新增的一种模式,称为HT40(High Throughput),之前的20M带宽模式称为HT20。 802.11n的HT40是指使用40MHz的频宽模式,相比于HT20的20MHz的频宽模式,可以提高数据传输速率,但也会增加信道间的干扰:
|
WLAN标准协议将整个5G频段分为了24个20MHz宽的信道,且每个信道都为独立信道,如下图所示:
上图中,黑色的半圆表示独立信道,红色的半圆表示标准协议推荐的信道绑定。
|
许多军用、气象用雷达也都使用5 GHz的频段,当中有些频段与5G Wi-Fi的频率有重叠,比如我国使用的雷达环境中会与52、56、60、64信道冲突,实际上,针对5G wifi路由器有个DFS认证,DFS表示动态频率选择(dynamic frequency selection,DFS),DFS认证会要求使用5GHz频段的Wi-Fi产品,当侦测到同频段雷达信号时,要自动切换到其他频道。 |
Wi-Fi包括两种工作模式,一种是基础架构模式(Infrastructure mode),也就是我们常见的无线路由器模式,包含STA和AP,STA需要先连接到AP,STA与STA之间的通信需要通过AP中转。另一种是无基础架构模式,也称为Ad Hoc模式,代表的是移动自组网模式,这种模式下只有STA,无线设备之间不需要借助AP就可以直接通信。
Ad Hoc模式
移动自组网模式,也称点对点模式,注意,Wi-Fi在Ad Hoc模式下各STA不具有路由和转发功能,STA只能点对点通信,不能通过其他STA中转。 Wi-Fi Ad Hoc模式的典型应用就是苹果的AirDrop,也就是隔空投送功能,该功能可使苹果设备在不连接无线路由器的情况下就可以互相发送文件,安卓手机上的WLAN直连也属于该模式,但用手机开热点的方式不属于Ad Hoc。 |
星形拓扑模式
路由器模式,日常生活中最常使用的模式。 |
AC+AP模式
用于大型网络覆盖的场所,比如大型商场,学校,公司,这里的AC指Access Control(接入控制)。AC与AP面板之间通过有线连接,AP面板通常支持POE供电,全部的AP都使用同一个热点名称,AP负责设备接入,AC负责认证和设备在各AP间的漫游(AC可配置各AP之间的漫游阈值,当STA进入新的AP范围内会自动断开与前一个AP的连接,并连接新的AP),还负责协调信道和功率控制,让整个无线网络处于最优状态。 |
Mesh模式
Mesh本身是网格的意思,Wi-Fi的Mesh模式相当于无线路由器之间的自组网,一般用于家用。Mesh模式下有一个主路由器和多个子路由器,这些路由器使用统一的热点名称,路由器之间既可以通过有线连接,也可以通过无线连接。Mesh支持的功能比AC+AP要弱,其主要的作用是拓展Wi-Fi的触达范围,支持漫游,支持转发,当某一节点掉线时,数据包可通过其他节点转发。 |
关于Mesh模式和AC+AP模式的对比可参考:Mesh分布式路由器和传统的AC+AP方案各有什么优缺点和适用的环境有什么区别? - 知乎。 |
桥接模式
也称为中继模式,路由器和路由器之间通过无线进行中继,以实现将信号传达到更远的区域。 |
术语名词 | 解释 | 备注 |
---|---|---|
AP | Access Point,接入点,也称为基站,比如无线路由器。 | |
Station | 工作站,指连接到无线网络的设备,比如手机、笔记本电脑、无线摄像头等。 | |
BSS | Basic Service Set,基本服务集,指构成无线网络的最小集合,比如一个路由器和下面连接的设备就构成了一个BSS,或者是几个STA通过Ad Hoc模式形成的自组网也是一个BSS。 | BSS大部分情况下是指基础架构模式的BSS,也就是AP+STA模式,而不是Ad Hoc模式,Ad Hoc模式的BSS单独称为IBSS。 |
IBSS | Independent BSS,独立基本服务集,几个STA通过Ad Hoc模式形成的自组网就是一个IBSS。 | |
ESS | Extended Service Set,扩展服务集,指将多个BSS组合在一起形成的一个扩展网络,比如用AC+AP模式构建出的覆盖整个商场的无线网络就是一个ESS,其中的每个AP面板和它下面连接的设备就是一个BSS。 | |
BSSID | 基本服务集标识符,用来标识一个BSS中的无线接入点,其实就是AP的MAC地址。 | 比如一个无线路由器的IP地址是192.168.0.1,那么在电脑上用打开命令提示符,输入arp -a 192.168.0.1 查询出的192.168.0.1对应的MAC地址就是无线路由器的BSSID。 |
SSID | Service Set Identfier,服务集标识符,本质一个文本字符串,由用户定义,用来标识一个BSS或EBSS的无线网络名称。 | SSID最大长度为32字节。 路由器密码最大长度为64字节。 |
ESSID | 扩展服务集标识符,指的是ESS下的多个BSS共同使用的SSID,以实现设备在多个BSS之间漫游。 | ESSID和SSID是等价的,在Linux上用iwlist工具查询出的网络列表,其中的ESSID字段指的就是AP的SSID,如下: |
DS | Distribution System,分配系统,为设备分配网络服务的系统。 | 在BSS中,可以简单地将无线路由器视作分配系统,因为所有的网络服务都是由无线路由器提供的。 |
这一节讨论Wi-Fi的安全标准,在Wi-Fi领域经常听到和Wi-Fi安全标准有关的名词,比如认证模式、加密方式、加密算法、加密协议、安全模式、加密标准等,以及WEP、WPA、WPA2、WPAPSK、WPA2PSK、WPA3等,还有AES、TKIP、CCMP、GCMP等,本节试图理清这些名词的概念、含义和关联。
首先,Wi-Fi的工作特性决定了其必须注重安全设计,因为Wi-Fi是通过电磁波来通信的,而电磁波不像有线那样可以一对一通信,从物理上直接屏蔽了第三方,使用电磁波通信时,通过天线发出去的数据包,附近所有的设备都可以收到。为了保证数据包不被破解,Wi-Fi在协议设计之初就必须制定安全标准。
Wi-Fi的安全标准算起来有三代,第一代是1997年随802.11-1997发布的WEP标准,第二代是为了规避WEP标准的缺陷而设计的过渡标准,也就是WPA标准,第三代则是802.11i协议,这个协议是2004年完成制定,这是专门规定无线网络安全标准的协议,用于淘汰WEP标准,后续的WPA2、WPA3都属于80.11i协议的实现。
标准即是协议,协议即是标准。 |
Wi-Fi的安全标准包括两部分内容,一是认证,二是加密。认证是指确认一个Wi-Fi设备的身份,以便为该设备分配网络权限。认证的目的是确保只有经过授权的设备才能够连接到 Wi-Fi 网络,保证网络的安全性。加密是在无线传输过程中,对数据进行加密处理和完整性校验,以保护数据的机密性和完整性,防止数据被窃听和篡改。
说得更直白一点,认证是让你可以加入到无线网,也就是给你分配身份证(关联ID)和密钥,加密则是用密钥进行加密通信(对称加密),防止数据被别人窃听或篡改,加密通信要能够支持数据完整性校验。 |
信息安全三要素:机密性、完整性、可用性。机密性(Confidentiality)指只有授权用户可以获取信息。完整性(Integrity)指信息在输入和传输的过程中,不被非法授权修改和破坏,保证数据的一致性。可用性(Availability)指保证合法用户对信息和资源的使用不会被不正当地拒绝。 |
Wi-Fi支持以下几种认证方式:
开放认证:不需要输入SSID和密码。 共享密钥&预共享密钥认证:要输入SSID和密码,共享密钥:密码即是密钥,所有用户所有会话的密钥都一样,预共享密钥:密码只用于握手,握手完之后生成本次会话的临时密钥,不同用户不同会话的密钥都不一样。 802.1X认证:一般不需要输入SSID和密码,但连上后会弹网页要求输入用户名和密码才可以上网,比如典型的ChinaNat,802.1X关注的更多是对用户的认证,而不是设备的认证。 |
Wi-Fi支持以下几种加密类型,注意这里的加密类型同时包含了加密算法和数据完整性算法:
认证方式+加密类型构成了Wi-Fi的安全策略,这个安全策略就是我们接触最多的,比如我们在设置路由器的时候,勾选的WEP、WPA2PSK、WPAPSK/WPA2PSK、WPA3PSK、WPA3-SAE这些就是安全策略,也可以称为加密方式、加密协议、安全模式等。确定了安全策略,就确定了支持哪些认证方式和加密类型。有的安全策略支持多种加密类型,所以还可以勾选使用哪种加密类型,比如TKIP或AES。
以下介绍一些常见的安全策略:
有线等效加密(Wired Equivalent Privacy),是第一代Wi-Fi安全标准,支持开放系统认证和共享密钥认证,使用RC算法对数据进行异常运算生成密文,使用CRC算法进行完整性校验。WEP本质是在无线介质上模拟有线的一对一通信,AP和STA只要设定相同的密钥就可以互相传递数据,由于密钥是固定的,并且CRC算法也很容易篡改,所以WEP并不安全,容易遭受破解。
由于WEP标准存在明显缺陷,为了解决WEP标准的安全问题,同时兼容已有的WEP设备硬件,提出了WPA标准,Wi-Fi Protected Access,即"Wi-Fi保护访问"。
WPA标准分为个人版和企业版,个人版使用预共享密钥认证,即WPA_PSK,企业版要用到一个802.1X认证服务器,接入设备需要提供凭据,比如用户名/密码,由认证服务器进行认证并分发密钥。
WPA相对WEP最大的改进就是使用了“临时密钥完整性协议”(Temporal Key Integrity Protocol,TKIP),TKIP是一种加密算法,它在RC算法的基础上实现了动态密钥功能,即每次会话使用的密钥都是动态的,通过认证阶段的四路握手来动态生成临时密钥。WPA_PSK除了支持TKIP加密,还支持AES加密。
除了认证和加密,WPA还对数据的完整性进行了改进,使用了MIC算法替代了WEP标准的CRC算法,并且增加了帧计数器,可有效避免数据被截取修改或是重新发送。
WPA标准推出于2003年,802.11i标准推出于2004年,但WPA实际上已经实现了802.11i的大部分功能,所以WPA其实是802.11i完备之前替代WEP的过渡方案,包括硬件兼容性,WPA标准使用的TKIP加密算法可以直接在老旧的WEP设备上运行,作为对比,后续的WPA2和WPA3使用的AES算法都不支持老版本的WEP设备。 |
WPA的加强版,是IEEE 802.11i无线网络标准的实现。同样有个人版的PSK版本与企业版的IEEE 802.1x版本。WPA2与WPA的差别在于,它使用更安全的加密技术AES (Advanced Encryption Standard),因此比WPA更难被破解、更安全。
WPA2的升级版,提供了更高级的安全性和隐私保护。同样有个人版的PSK版本与企业版的IEEE 802.1x版本,除此外WPA3还有针对个人版的SAE认证(Simultaneous Authentication of Equals,对等实体同时验证),以及针对开放网络的OWE认证(Opportunistic Wireless Encryption,机会性无线加密)。
SAE认证是在PSK认证的四次握手之前再增加一次对等的SAE握手(设备和AP任意一方都可以先发起握手,不需要一来一回交换消息),通过在SAE握手之前引入随机量,来对后面的四次握手进行加密,这样就可以防止四次握手被截获和破解。采用SAE认证的效果是即使使用弱Wi-Fi密码,也能够提供同样的安全防护。作为对比,在WPA或WPA2下,如果使用弱密码,那么四次握手的内容会比较容易破解。
配合SAE认证的还有防止离线字典或暴力破解攻击:首先SAE对于多次尝试连接设备的终端,会直接拒绝服务,断绝了采用穷举或者逐一尝试密码的行为。其次,SAE还提供了前向保密功能,即使攻击者通过某种方式获取了密码,由于每次建立连接时密钥都是随机的,攻击者尝试再次重新建立连接时密钥已经更换了,就不能破解获取到的数据流量。
使用WPA3时,设备不可以短时间重复连接路由器,否则会直接连不上,在嵌入式开发时要考虑这个问题,如果连接的是WPA3路由器,那么在重连路由器时,要适当增大重连的间隔。(实际测试遇到过,设备在已连接WPA3路由器的情况下重启,在启动后最长可达15s内,都连不上路由器。) |
OWE认证是针对开放性网络的,即用户不需要输入密码即可接入网络。在之前的开放网络中,Wi-Fi网络数据的传输都是未加密的,通过抓包就可以看到数据包的内容,但在OWE认证下,虽然用户仍然不需要输入密码就可以接入网络,但传输的数据是加密的。
参考链接:
关于WPA企业版架构,可参考无线网络WPA企业模式的安全性和部署 - 安全内参 | 决策者的网络安全知识库。
Wi-Fi使用共享信道进行通信,同一信道在同一时间点只能有一个设备发送数据,不能两个设备同时发送数据。如何协调各个设备对信道的占用,以尽量减少冲突,且尽量公平地让各个设备都能使用信道,是信道竞争首要解决的问题。
Wi-Fi在解决信道竞争问题时设计了两种办法,一种是CSMA/CA,另一种是信道预约(RTS/CTS)。概括地说,这两种方式前一种是全凭自觉式,由各个STA之间凭自觉使用信道和避免冲突,后一种是家长控制式,使用信道之前先向路由器申请,路由器允许后,其他设备静音,等信道空闲后完再重新竞争信道。
CSMA/CA:
Carrier Sense Multiple Access with Collision Avoidance,即基于碰撞避免的载波监听多路访问。
在了解CSMA/CA之前,先了解一下CSMA/CD,这是用于在以太网上解决信道竞争的办法,以下是来自Bing AI搜索对CSMA/CD的描述:
CSMA/CD的关键点是发送的同时监听信道是否出现碰撞,一旦出现碰撞,则通过“拥挤”信号通知其他所有节点,以重置整个信道竞争,然后各节点随机延时一段时间后重新尝试竞争信道。 |
CSMA/CA与CSMA/CD的最大区别是,天线在发送数据时无法检测信道是否出现碰撞,这就使得CSMA/CA只能提前尽量避免冲突,概括来说,CSMA/CA的冲突避免算法可以归纳为:所有设备在发送数据之前先监听信道是否空闲,等信道空闲超过一定时间(DIFS)后,再随机等待一段时间,如果信道依然空闲,那么就发送数据。
以下是CSMA/CA的流程图和示意图(参考:https://www.bilibili.com/video/BV14e4y1s7k5):
信道预约:
先发送一个很小的信道侦测帧RTS(Request To Send),如果收到最近的AP返回的CTS(Clear To Send)响应,就认为信道是空闲的,然后再发送数据帧。这样可以预约信道,告知其他设备自己要传输数据,并给出传输时间。这种方法可以解决隐蔽站和暴露站的问题。(关于隐蔽点和暴露站可参考:简述隐蔽站和暴露站_隐蔽站和暴露站问题_clever _boy的博客-CSDN博客)
这是STA向AP发起连接和断开连接的过程,步骤如下:
参考链接:WiFi认证—分析从连接WiFi到上网的全过程(一) - 墨天轮
四次握手是在关联成功后用于STA和AP之间生成及交换密钥的四次通信过程,四次握手的数据帧不是管理帧或控制帧,只是普通的数据帧。
参考:
抓包时注意选择正确的信道,比如2.4G的40M信道,分为主信道和从信道,主信道和从信道又分为minus和plus形式,抓包时要从主信道抓取,才能抓到控制帧和管理帧。5G频段也是一样的,并且信道绑定更为复杂,需要研究清楚。 参考链接: |
参考“Omnipeek 无线抓包资料 v5.0”文件夹。
重点:
起始页面 -> New Capture,设置名称,选择抓包网卡,选择信道,设置过滤选项之后点确定,然后在界面右上角点击Start Capture启动抓包,点击Stop Capture停止抓包。
设置信道和过滤选项时,可以使用Wi-Fi分析仪之类的APP查看路由器BSSID和工作信道。
在抓包前设置过滤选项,这种情况下只会抓过已经过滤后的包,Omnipeek预设了很多抓包过滤选项,可以直接勾选,比如Wireless -> No Beacons,可以过滤掉Beacon包,也可以添加自定义的过滤选项,比如只抓取某个热点下的包。过滤选项支持与、或、非三种操作,也就是抓取符合任一条件的包、抓取符合全部条件的包、不抓取符合过滤选项的包。
设置过滤选项时要了解Wi-Fi数据帧和通信过程,以避免设置出不合理的过滤选项,比如不想抓beacon包,但是勾选了抓取广播包,那么在抓取符合任一条件的包时,beacon包仍然会被抓到,因为beacon包是广播包。
这一步是抓包结束后,针对已经抓到的包设置过滤选项,以便于筛选出想要的包。
点击All Packets可取消所有的过滤选项。
WPA加密下必须抓到关联成功之后的四次握手才可以解密数据包,因为这四次握手会生成一个临时密钥,后面的会话都是用这个临时密钥加密的。 |
Tools -> Decrypt WLAN Packets,先添加预设热点和密码,再选择对应的热点和密码进行解密:
路由器BSSID FC:34:97:56:7F:08
设备MAC地址 C0:11:31:20:38:92
路由器SSID APTEST
路由器密码 12345678
加密方式 WPA2PSK
描述:抓取路由器34:7E:00:E9:D9:48发出的beacon包或者与设备00:12:16:2e:83:73 或 00:12:30:b7:6d:21 交互的包。
注意点:抓取发往设备的包,条件要设置成下面这样,这里Address2不能用路由器的BSSID,否则会抓不到加密数据,因为加密数据的交互地址不是路由器BSSID。
一般设备在抓空口包时也会同步抓取串口日志,且串口日志是带时间戳的,如果需要把某段时间的抓包过程和串口日志对应起来,则可以打开Omnipeek的绝对时间选项,效果如下:
这个功能类似于Wireshark的“追踪流”功能,可以把一路会话的全部包单独提取出来,比如抓空口包时如果有TCP包,则可以把TCP包提取成一路会话。