1. 无线通信技术发展史

趣闻:

  • 1912年,泰坦尼克号撞上冰山沉没,马可尼的无线电发报机帮助拯救了船上的711名乘客。
  • 3G泡沫。2000年至2001年间,全球对3G的发展期望过高,导致电信公司在购买牌照、建议基站上投入过高,但由于市场需求和终端设备跟不上等原因,3G未能普及和盈利,导致许多电信公司出现亏损和债务危机,甚至破产和倒闭。
  • WiMAX。WiMAXIntel主导的无线通信技术,美国政府动用自己的影响力在2007年强行将其纳入到3G标准中,成为第四个3G标准,但该标准不受其他几个3G标准联盟待见,导致推广失败,反而是坑了不少的运营商,比如台湾(台湾在2018年就终止了3G业务)。
  • 中国3G牌照于2009年发放,4G牌照于2013年发放,5G牌照于2019年发放。中国1G通信网于2001年12月31号完成全面退网。

2. Wi-Fi发展史

趣闻:

  • IEEE 802标准委员会。IEEE(Institute of Electrical and Electronics Engineers,电气电子工程师学会是世界上最大的技术专业协会,其下辖的802标准委员会负责制定局域网和城域网的一系列标准,生活中和网络相关的标准几乎都是由这家制定的,802.11只是其中的一个,其他的有以太网标准802.3,无线个人网标准802.15(包括蓝牙、Zigbee等)。
  • Wi-Fi与IEEE 802.11的关系。IEEE 802.11是一种无线局域网标准,而Wi-FiIEEE 802.11标准的一种技术实现。IEEE 802.11原始标准其实还定义了基于跳频和红外线传输的方式,但未能流行。
  • WAPI黑历史,感兴趣的可以自己去查找相关资料。

3. 电磁波谱

小知识:

  1. 无线电通信受天线尺寸限制,天线的长短必须和电磁波波长在同一个数量级,一般是波长的1/4,最短也不能短过1/10,信号才能有效的辐射和接收。反过来说,如果要通过电磁波来通信,就必须将信号(比如音频信号)调制到高频载波上,才能从天线上辐射出去。
  2. 电磁波频率越高,方向性越好,越接近于直线传播。
  3. 电磁波频率越高,穿透力越强,但穿透物体损失的能量也越大,这反而会让高频率的电磁波表现为穿透性差。(X射线、γ射线穿透性强是因为能量高,所谓抛开剂量谈毒性就是耍流氓)。
  4. 低频的电磁波除了穿透物体时损失能量小,还可以通过衍射绕过障碍物传播,综合作用下使得2.4G Wi-Fi穿墙性要比5G Wi-Fi好。
  5. 低频的电磁波由振荡电路产测,到可见光的级别由电子跃迁产生,γ射线级别由原子核内部裂变衰变产生。

3.1. 常用频段

  • 长波:频率300KHz以下,波长为1000m~10000m,发射能力最强,功率极大(兆瓦级别),通过天波和地波传输,传输距离极远,甚至能环绕地球传播,用于长程预警,潜艇通信。
  • 中波:频率300KHz3MHz,波长为100m~1000m,主要靠地波传输,主要用于广播和导航。
  • 短波:频率3MHz30MHz,波长为10m~100m,主要靠电离层反射进行传输,传输距离远,但容易受电离层变化影响,国际广播通常使用短波进行传输。
  • 校园广播:76MHz~87MHz
  • 调频广播:88MHz~108MHz
  • 民航频段:108MHz~137MHz

2G/3G/4G对应频段:

3.2. ISM频段

ISM频段是国际电信联盟(ITU)定义的一些无线电频段,ISM指工业的(Industrial)、科学的(Scientific)和医学的(Medical),因此顾名思义ISM频段就是各国挪出某一段频段主要开放给工业、科学和医学机构使用。使用这些频段无需许可证或费用,只需要遵守一定的发射功率(一般低于1W),并且不要对其它频段造成干扰即可。

ISM频段在各国的规定并不统一,但有一个共同的ISM频段是2.4GHz,这个频段被很多无线网络设备使用,如无线局域网 (WiFi)、蓝牙、ZigBee等。除了2.4GHz,还有一些其他的ISM频段,如13.56MHz433.92MHz915MHz5.8GHz24.125GHz等。

我国典型的ISM频段有以下:

  • 13.553MHz~13.567MHz: NFC频段,比如RFID刷卡。
  • 433.05MHz~434.79MHz:对讲机、遥控发射器等,433门铃指的就是这个频段。
  • 2.4GHz~2.4835GHz:蓝牙、Zigbee、Wi-Fi等无线局域网技术使用该频段,另外,微波炉也使用2.4G频段(没想到吧)。
  • 5.150GHz~5.350GHz和5.725GHz-5.825GHz5G Wi-Fi使用。

小知识:

  • 我国的5G Wi-Fi频段刚开始只开放了5.8G频段,一共100MHz的带宽,802.11ac标准出来后,无线路由器在5G频段可以支持160M带宽,这样就导致了整个5.8G频段凑不出一个160M带宽的尴尬局面,所以后来国家就开放了5.2G频段的200MHz带宽,这样就至少可以凑出一个160M带宽的频段了。随着管制逐步开放,后续5.470GHz~5.725GHz也有可能开放,这样就有更多的带宽和频段可以使用了。
  • 市面上有些路由器会宣称自己是三频路由器,这里的三频即是指2.4G、5.2G、5.8G三个频段。
  • SRRC认证。SRRC认证是中国信息产业部国家无线电管理委员会要求的强制的认证。所有在中国境内销售及使用的无线电产品,必须首先取得无线电型号的核准认证。该认证会测试设备的频率容限、功率控制、频谱、最大平均功率、突发功率等参数,以判断是否符合要求。除SRRC认证,各个国家都有自己的同类认证,比如美国的FCC认证,欧盟的CE认证,韩国KCC认证等,产品出口到这些国家时都需要先取得相关认证。

4. 通信原理相关

4.1. 香农第二定理

在有随机热噪声的信道上传输数据信号时,信道容量C(传输速率上限)与信道带宽B、信噪比S/N关系为: C=B*log2(1+S/N) 。这个公式可以衍生出以下结论:

  1. 带宽一定的情况下,信噪比越高(代表传输干扰小),信道容量越高。
  2. 当噪声很大时,信噪比接近于0,信道容量也为0,也就是噪声太大时没法传输任何信号。
  3. 信噪比一定时,可以通过增大带宽来提升信道容量。
  4. 适当增大信号功率S可提升信道容量,但噪声功率N也会随信号功率增大,不能通过无限增大信号功率来提高传输速率。

结合香农第二定理可以解释以下现象:

  • 为什么光纤的速率那么高:
    • 光纤使用光作为载波进行传输,光的频率远高于无线电波,在整个电磁波谱中,频率越高的地方越空闲,使用光作为载波可以轻松占据非常大的带宽进行传输。
    • 光纤由石英等材料制成并且有外部材料包裹,传输过程能量损失很少,也不会受到外部环境的干扰,因此可以做到即使是远距离通信时也能有很高的信噪比。
  • 为什么Wi-Fi要使用扩频:
    • 扩频意味着带宽增大,这样一方面可以提升信道容量,一方面也可以减少发射功率,或是提升抵抗传输噪声的能力。
  • 为什么路由器的带宽要从20MHz往40M、80M、160M不断扩大:
    • 带宽越大,信道容量越大。

4.2. 模拟调制与数字调制

用于将低频信号叠加到高频的电磁波载波上,实现信号的无线传输,分为模拟调制和数字调试。

4.2.1. 模拟调制

用于传输模拟信号,无线电通信早期使用模拟调制。模拟调制包含幅度调制(AM)、频率调制(FM)、相位调制(PM)三种。以下是AMFM的示例:

4.2.2. 数字调制

用于传输数字信号,也就是二进制的01值。

有三种基本的数字调制方式:幅移键控ASKAmplitude-Skfit-Keying)、频移键控FSK、相移键空PSK,其他各种调制方法都是以上方法的改进或组合。

参考链接:

采用更高阶的调制方式可以获得更高的传输速度,但相应的对射频器件的性能要求越高,所以出现的时间得也越晚。

4.3. 发射功率、信号强度、天线增益

发射功率对应发射天线的辐射功率,也就是天线上电压和电流的乘积。信号强度对应接收天线的接收功率,也就是电磁波通过电磁感应在接收方天线上产生的电压和电流的乘积。

功率的单位是瓦特(W),但衡量发射功率和信号强度的单位并不是瓦特,而是dBm。dBm表示分贝毫瓦,是一个表示功率绝对值的单位,任意功率PmW)和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)x0.001mW

设备信号强度大于-30dBm就属于极好了,-30dBm~-40dBm属于正常范围,小于-70dBm时表示信号较差。


关于天线增益,天线没法凭空产生能量,也就是1dBm的发射功率,天线没法辐射出2dBm的电磁波能量。天线增益实际指的是天线在信号最强的方向上的辐射功率密度与理想的各向同性天线(Isotropic Antenna)辐射功率密度的比值。

天线增益越高,天线的指向性就越高,穿墙能力也就越强,但也越容易出现信号死角。家用路由器的天线增益通常是3dBi到5dBi,少数主打穿墙的路由器会使用7dBi的天线。

国内对无线路由器的功率限制是天线增益小于10dBi时功率不超过100mW,天线增益大于10dBi时不超过500mW。由于家用路由器的天线增益通常是3dBi到5dBi,所以路由器发射功率最大也只能达到100mW。

5G频段下无线路由器的发射功率限制是200mW。

无线网卡的发射功率通常是36mW,对应15.56dBm。

5. Wi-Fi基础知识

5.1. Wi-Fi介绍

正式名称Wi-Fi,一种无线局域网技术,使用IEEE 802.11系列标准(协议),提供移动接入功能,支持便携设备联网。

关于WLAN、802.11、Wi-Fi的区别:

  • WLANWireless Local Area Network,表示无线局域网。
  • IEEE 802.11是一种无线局域网标准,而Wi-Fi是IEEE 802.11标准的一种实现。IEEE 802.11标准中制定了多个物理层(PHY)规范,产品实现除了Wi-Fi,还有WiGig,其工作在60GHz频段,对应802.11ad标准。

Wi-Fi通信特点:

  • 覆盖范围100m以内。
  • 支持移动接入和便携设备联网。
  • 成本低,建网速度快。

Wi-Fi世代列表:

Wi-Fi+数字的命名方式是在2018年才引入的,为的是让消费者更容易理解版本的更新(数字越大,表示技术越先进)。Wi-Fi联盟的这这种改动有利于厂商营销,算是一种比较聪明的方式,相反的,另一项技术的命名就不是那么聪明了,这就是USB,感兴趣的可以用“命名鬼才 USB-IF”为关键字搜索一下,看看“USB命名部”是怎么作妖的。当然,考虑到这两者出现的时间,也很难让人不认为Wi-Fi是吸取了USB命名的经验教训。

5.2. Wi-Fi频段与信道

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频段。

5.2.1. 2.4G频段

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信道)。

  • 中国/欧洲使用第1~13信道,日本使用第1~14信道,美国使用第1~11信道。
  • 第14信道是军用卫星通讯频道,只有日本允许民用产品使用第14信道,但一般也会以旧的802.11b速度运行。

某些基站套包类产品可能会工作在36信道(2380)、38信道(2504) 这两个非标信道上,对应的Wi-Fi设备SDK一般默认不支持这两个信道,需要找原厂提供patch。

关于邻频干扰

每个信道占用的带宽是20MHz,但信道之间只隔了5MHz,这样就导致相邻信道会有频率重叠,设备无法独占信道进行通信。如果想让设备独占整个20M信道,那么就必须让设备使用的信道隔离得足够远,这样才不会有重叠。

如果只有1台设备,那么用哪个信道都行,如果有2台设备,那么这两台设备使用的信道必须间隔5以上才不会互相影响,比如使用1信道和6信道,或者使用2信道和10信道。如果有3台设备,那么只能使用1、6、11这三个信道才不会产生重叠。4台或以上的设备无论怎么排布信道都会有重叠。

关于40M带宽模式

40M带宽模式是802.11n中新增的一种模式,称为HT40(High Throughput),之前的20M带宽模式称为HT20。

802.11n的HT40是指使用40MHz的频宽模式,相比于HT20的20MHz的频宽模式,可以提高数据传输速率,但也会增加信道间的干扰:

  • HT40是将两个相邻的20MHz信道捆绑在一起形成一个40MHz的信道,一个是主,一个是辅。主信道发送beacon报文和数据报文,辅信道发送其他报文。若捆绑两个相邻的20MHz信道时,辅助20MHz带宽的中心频率低于主信道的中心频率,则为plus,反之则为minus。
  • HT40相当于增加了道路的宽度,可以同时跑更多的数据,提高了速度。但是无线网的“道路”是大家共享的,一共就这么宽,你占用的道路宽了,跑得数据多了,当然也就容易跟别人撞车,一旦撞车大家就都会慢下来,比你在窄路上走还要慢。
  • HT40使用的时候需要注意信道间的干扰和兼容性问题。在2.4G使用HT40,则有效通道有3~13,非重叠的只有3,11。所以在使用802.11n时,不建议使用40MHz的频宽,使用默认的20MHz频宽即可。在5G使用HT40时,可以选择更多的不重叠信道,但需要考虑其他设备是否支持。
  • HT40模式占用两个信道,使用的信道用a+b来表示,a和b相差4,比如1+5信道。

5.2.2. 5G频段

WLAN标准协议将整个5G频段分为了24个20MHz宽的信道,且每个信道都为独立信道,如下图所示:

上图中,黑色的半圆表示独立信道,红色的半圆表示标准协议推荐的信道绑定。

  • 上面的24个信道并未全部开放,中国只开放36、40、44、48、52、56、60、64、149、153、157、161、165这几个信道,关于每个信道的频率范围可参考5G Wifi频段及信道介绍
  • 5G频段的每个信道都是独立的(独占20M带宽),与相邻的信道不存在重叠。
  • 可通过信道绑定的方式来获得HT40,HT80,HT160模式的带宽。
  • 简单来说,电磁波谱上频率越高的地方越空闲,5G频段可用的带宽相比2.4G多得多,带宽多了就可以为所卻为。

许多军用、气象用雷达也都使用5 GHz的频段,当中有些频段与5G Wi-Fi的频率有重叠,比如我国使用的雷达环境中会与52、56、60、64信道冲突,实际上,针对5G wifi路由器有个DFS认证,DFS表示动态频率选择(dynamic frequency selection,DFS),DFS认证会要求使用5GHz频段的Wi-Fi产品,当侦测到同频段雷达信号时,要自动切换到其他频道。

5.3. Wi-Fi拓扑结构

5.3.1. 设备角色

  • AP,Access Point,表示接入点,一般指无线路由器。
  • STA,Station,工作站,指接入无线网的设备。

5.3.2. 工作模式

Wi-Fi包括两种工作模式,一种是基础架构模式(Infrastructure mode),也就是我们常见的无线路由器模式,包含STA和AP,STA需要先连接到AP,STA与STA之间的通信需要通过AP中转。另一种是无基础架构模式,也称为Ad Hoc模式,代表的是移动自组网模式,这种模式下只有STA,无线设备之间不需要借助AP就可以直接通信。

5.3.3. 拓扑结构

  • 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的触达范围,支持漫游,支持转发,当某一节点掉线时,数据包可通过其他节点转发。

  • 桥接模式

    也称为中继模式,路由器和路由器之间通过无线进行中继,以实现将信号传达到更远的区域。

5.4. Wi-Fi术语和名词解释

术语名词解释备注
APAccess Point,接入点,也称为基站,比如无线路由器。
Station工作站,指连接到无线网络的设备,比如手机、笔记本电脑、无线摄像头等。
BSSBasic Service Set,基本服务集,指构成无线网络的最小集合,比如一个路由器和下面连接的设备就构成了一个BSS,或者是几个STA通过Ad Hoc模式形成的自组网也是一个BSS。BSS大部分情况下是指基础架构模式的BSS,也就是AP+STA模式,而不是Ad Hoc模式,Ad Hoc模式的BSS单独称为IBSS。
IBSSIndependent BSS,独立基本服务集,几个STA通过Ad Hoc模式形成的自组网就是一个IBSS。
ESSExtended 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。
SSIDService Set Identfier,服务集标识符,本质一个文本字符串,由用户定义,用来标识一个BSS或EBSS的无线网络名称。

SSID最大长度为32字节。

路由器密码最大长度为64字节。

ESSID扩展服务集标识符,指的是ESS下的多个BSS共同使用的SSID,以实现设备在多个BSS之间漫游。

ESSID和SSID是等价的,在Linux上用iwlist工具查询出的网络列表,其中的ESSID字段指的就是AP的SSID,如下:

DSDistribution System,分配系统,为设备分配网络服务的系统。

在BSS中,可以简单地将无线路由器视作分配系统,因为所有的网络服务都是由无线路由器提供的。

5.5. Wi-Fi安全标准

这一节讨论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支持以下几种认证方式:

  • 开放系统认证(Open System Authentication),最基本的认证方式,不涉及任何密钥或密码,只需要客户端发送认证请求,接入点即可回复认证成功。
  • 共享密钥认证(Shared Key Authentication),WEP标准使用的认证方式,客户端和接入点共享一个静态的密钥(说白了就是设备要先知道路由器的密码),通过加密和解密质询来验证身份,但已被发现有安全漏洞。
  • 预共享密钥认证,即PSK(Pre-Shared Key Authentication),WPA和WPA2个人版使用的认证方式,客户端和接入点预先共享一个密码短语(还是设备要先知道路由器的密码),然后通过四次握手来更新共享密钥。每轮会话使用的密钥都不一样。
  • 802.1X认证(802.1X Authentication),WPA和WPA2企业版使用的认证方式,客户端和接入点通过一个RADIUS服务器进行身份验证,并使用EAP协议来协商EAP认证方式。

开放认证:不需要输入SSID和密码。

共享密钥&预共享密钥认证:要输入SSID和密码,共享密钥:密码即是密钥,所有用户所有会话的密钥都一样,预共享密钥:密码只用于握手,握手完之后生成本次会话的临时密钥,不同用户不同会话的密钥都不一样。

802.1X认证:一般不需要输入SSID和密码,但连上后会弹网页要求输入用户名和密码才可以上网,比如典型的ChinaNat,802.1X关注的更多是对用户的认证,而不是设备的认证。

Wi-Fi支持以下几种加密类型,注意这里的加密类型同时包含了加密算法和数据完整性算法:

  • WEP加密,使用RC4算法对数据进行异或运算,生成密文,使用CRC进行完整性校验。RC4算法存在很多弱点,容易被破解。
  • TKIP加密,使用TKIP算法(本质是一种改进的RC算法)进行加密,使用MIC算法进行数据完整性校验。
  • CCMP加密,使用AES算法进行加密,使用CCMP算法进行数据完整性校验。


认证方式+加密类型构成了Wi-Fi的安全策略,这个安全策略就是我们接触最多的,比如我们在设置路由器的时候,勾选的WEP、WPA2PSK、WPAPSK/WPA2PSK、WPA3PSK、WPA3-SAE这些就是安全策略,也可以称为加密方式、加密协议、安全模式等。确定了安全策略,就确定了支持哪些认证方式和加密类型。有的安全策略支持多种加密类型,所以还可以勾选使用哪种加密类型,比如TKIP或AES。

以下介绍一些常见的安全策略:

5.5.1. WEP

有线等效加密(Wired Equivalent Privacy),是第一代Wi-Fi安全标准,支持开放系统认证和共享密钥认证,使用RC算法对数据进行异常运算生成密文,使用CRC算法进行完整性校验。WEP本质是在无线介质上模拟有线的一对一通信,AP和STA只要设定相同的密钥就可以互相传递数据,由于密钥是固定的,并且CRC算法也很容易篡改,所以WEP并不安全,容易遭受破解。

5.5.2. WPA

由于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设备。

5.5.3. WPA2

WPA的加强版,是IEEE 802.11i无线网络标准的实现。同样有个人版的PSK版本与企业版的IEEE 802.1x版本。WPA2与WPA的差别在于,它使用更安全的加密技术AES (Advanced Encryption Standard),因此比WPA更难被破解、更安全。

5.5.4. WPA3

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认证下,虽然用户仍然不需要输入密码就可以接入网络,但传输的数据是加密的。

参考链接:

5.6. 关于WPA企业版

关于WPA企业版架构,可参考无线网络WPA企业模式的安全性和部署 - 安全内参 | 决策者的网络安全知识库


6. Wi-Fi帧结构与帧类型

7. Wi-Fi通信过程

7.1. Wi-Fi通信特点

  1. 大喇叭模式,一个站点发出的数据,附点的站点都可以收到。
  2. 使用MAC地址区进行通信,而不是IP地址。
  3. STA之间的通信数据要经过AP中转,一次通信最少需要3个地址,即发送地址,中转路由器地址(BSSID),接收地址。(拓展:3地址模式&4地址模式)
  4. 单播数据帧有确认和重传机制,没确认之前不可以发送下一帧,但组播和广播帧不需要确认,也没有重传。
  5. 除开放认证外,数据帧的内容都是加密过的,作为对比,在有线网络抓到的包都是未加密的,可以直接看到原文。

7.2. Wi-Fi信道竞争问题

7.2.1. 信道竞争的原因

Wi-Fi使用共享信道进行通信,同一信道在同一时间点只能有一个设备发送数据,不能两个设备同时发送数据。如何协调各个设备对信道的占用,以尽量减少冲突,且尽量公平地让各个设备都能使用信道,是信道竞争首要解决的问题。

7.2.2. 信道竞争中天线的影响

  1. 同一频段上,一根天线不能同时发送和接收,只能发送和接收交替进行,比如发送完数据后,立刻切换到接收模式等待对方的ACK确认。从发送模式切换到接收模式需要一定的时间。
  2. 天线可以感知当前信道是否空闲。

7.2.3. 信道竞争解决办法

Wi-Fi在解决信道竞争问题时设计了两种办法,一种是CSMA/CA,另一种是信道预约(RTS/CTS)。概括地说,这两种方式前一种是全凭自觉式,由各个STA之间凭自觉使用信道和避免冲突,后一种是家长控制式,使用信道之前先向路由器申请,路由器允许后,其他设备静音,等信道空闲后完再重新竞争信道。


CSMA/CA:

Carrier Sense Multiple Access with Collision Avoidance,即基于碰撞避免的载波监听多路访问。

CSMA/CD

在了解CSMA/CA之前,先了解一下CSMA/CD,这是用于在以太网上解决信道竞争的办法,以下是来自Bing AI搜索对CSMA/CD的描述:

CSMA/CD是一种用于以太网的介质访问控制协议,它的全称是载波监听多路访问/冲突检测。它的基本思想是:所有节点都共享网络传输信道,节点在发送数据之前,首先检测信道是否空闲,如果信道空闲则发送,否则就等待;在发送出信息后,再对冲突进行检测,当发现冲突时,则取消发送。它的工作流程可以用以下七步来说明:

  1. 载波监听,想发送信息包的节点要确保没有其他节点在使用共享介质,所以该节点首先要监听信道上的动静(即先听后说)。
  2. 如果信道在一定时段内寂静无声(称为帧间缝隙IFG),则该节点就开始传输(无声则讲)。
  3. 如果信道一直很忙碌,就一直监视信道,直到出现最小的IFG时段时,该节点才开始发送它的数据(有空就说)。
  4. 冲突检测,如果两个节点或更多的节点都在监听和等待发送,然后在信道空时同时决定立即(几乎同时)开始发送数据,此时就发生碰撞。这一事件会导致冲突,并使双方信息包都受到损坏。以太网在传输过程中不断地监听信道,以检测碰撞冲突(边听边说)。
  5. 如果一个节点在传输期间检测出碰撞冲突,则立即停止该次传输,并向信道发出一个“拥挤”信号,以确保其他所有节点也发现该冲突,从而摒弃可能一直在接收的受损的信息包(冲突停止)。
  6. 多路存取,在等待一段时间(称为后退)后,想发送的节点试图进行新的发送。这时采用一种叫二进制指数退避策略(Binary Exponential Back off Policy)的算法来决定不同的节点在试图再次发送数据前要等待一段时间(随机延迟)。
  7. 返回到第一步。

CSMA/CD的关键点是发送的同时监听信道是否出现碰撞,一旦出现碰撞,则通过“拥挤”信号通知其他所有节点,以重置整个信道竞争,然后各节点随机延时一段时间后重新尝试竞争信道。

参考:CSMA/CD的基本工作过程_tung 、的博客-CSDN博客

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博客

7.3. Wi-Fi探测-认证-关联-断开过程

这是STA向AP发起连接和断开连接的过程,步骤如下:

  1. STA向指定SSID的AP发起探测请求(Probe Request)。
  2. AP对STA返回探测响应(Probe Response)。
  3. STA向AP发起认证请求(Authentication)。
  4. AP对STA的认证请求做出回应。
  5. STA向AP发起关联请求(Association Request)。
  6. AP对STA返回(Association Response),到这一步表示连接成功。
  7. STA向AP发起断开连接(Disassociation),连接断开。

参考链接:WiFi认证—分析从连接WiFi到上网的全过程(一) - 墨天轮

7.4. WPA四次握手过程

四次握手是在关联成功后用于STA和AP之间生成及交换密钥的四次通信过程,四次握手的数据帧不是管理帧或控制帧,只是普通的数据帧。

参考:WiFi 四次握手分析 - Think && Act

7.5. Wi-Fi低功耗保活过程

参考:

8. Wi-Fi抓包

8.1. 关于Wi-Fi抓包

  1. 需要专门的抓包网卡和抓包驱动,驱动安装时需要禁用数字签名,网卡一般也比较老旧,比如不支持WPA3。
  2. 搞懂原理比会用软件重要,比如帧类型,地址类型,toDs,fromDs等,以及上面的Wi-Fi通信过程。
  3. 大喇叭模式,包多且杂,比如beacon包正常每100ms发一次,需要设置过滤条件才能抓到想要的包。
  4. 数据带加密,看不到明文。
  5. STA发送一次数据会抓到两个包,STA发送一次,AP转发一次。
  6. 特别容易丢包,哪怕是在热点比较少的环境下,都很容易漏包。

抓包时注意选择正确的信道,比如2.4G的40M信道,分为主信道和从信道,主信道和从信道又分为minus和plus形式,抓包时要从主信道抓取,才能抓到控制帧和管理帧。5G频段也是一样的,并且信道绑定更为复杂,需要研究清楚。

参考链接:


8.2. Ominipeek软件安装

参考“Omnipeek 无线抓包资料 v5.0”文件夹。

重点:

  1. Wi-Fi抓包要使用专门的抓包网卡和驱动,普通网卡不具备抓包功能。
  2. 安装抓包网卡的驱动时要禁用驱动数字签名功能,参考:https://blog.csdn.net/weixin_44168516/article/details/125932827
  3. 安装成功后,打开Omnipeek软件并创建新的捕获时,有以下标志表示该网卡支持抓包:

8.3. Ominipeek抓包操作

8.3.1. 启动抓包

起始页面 -> New Capture,设置名称,选择抓包网卡,选择信道,设置过滤选项之后点确定,然后在界面右上角点击Start Capture启动抓包,点击Stop Capture停止抓包。

设置信道和过滤选项时,可以使用Wi-Fi分析仪之类的APP查看路由器BSSID和工作信道。

8.3.2. 设置抓包过滤选项

在抓包前设置过滤选项,这种情况下只会抓过已经过滤后的包,Omnipeek预设了很多抓包过滤选项,可以直接勾选,比如Wireless -> No Beacons,可以过滤掉Beacon包,也可以添加自定义的过滤选项,比如只抓取某个热点下的包。过滤选项支持与、或、非三种操作,也就是抓取符合任一条件的包、抓取符合全部条件的包、不抓取符合过滤选项的包。

设置过滤选项时要了解Wi-Fi数据帧和通信过程,以避免设置出不合理的过滤选项,比如不想抓beacon包,但是勾选了抓取广播包,那么在抓取符合任一条件的包时,beacon包仍然会被抓到,因为beacon包是广播包。

8.3.3. 抓包后过滤数据包

这一步是抓包结束后,针对已经抓到的包设置过滤选项,以便于筛选出想要的包。

点击All Packets可取消所有的过滤选项。

8.3.4. 解密802.11数据

WPA加密下必须抓到关联成功之后的四次握手才可以解密数据包,因为这四次握手会生成一个临时密钥,后面的会话都是用这个临时密钥加密的。

Tools -> Decrypt WLAN Packets,先添加预设热点和密码,再选择对应的热点和密码进行解密:

8.3.5. 抓包示例文件

探测-认证与关联-四次握手-DHCP成功-断开连接.pkt

路由器BSSID  FC:34:97:56:7F:08
设备MAC地址  C0:11:31:20:38:92
路由器SSID   APTEST
路由器密码   12345678
加密方式     WPA2PSK

8.4. 一个稍微复杂点的抓包过滤条件

描述:抓取路由器34:7E:00:E9:D9:48发出的beacon包或者与设备00:12:16:2e:83:73 或 00:12:30:b7:6d:21 交互的包。

注意点:抓取发往设备的包,条件要设置成下面这样,这里Address2不能用路由器的BSSID,否则会抓不到加密数据,因为加密数据的交互地址不是路由器BSSID。

8.5. 抓包显示绝对时间

一般设备在抓空口包时也会同步抓取串口日志,且串口日志是带时间戳的,如果需要把某段时间的抓包过程和串口日志对应起来,则可以打开Omnipeek的绝对时间选项,效果如下:

8.6. 过滤关联包

这个功能类似于Wireshark的“追踪流”功能,可以把一路会话的全部包单独提取出来,比如抓空口包时如果有TCP包,则可以把TCP包提取成一路会话。




  • 无标签