前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Wi-Fi 总结

Wi-Fi 总结

作者头像
iOSDevLog
发布2020-06-09 10:52:58
1.8K0
发布2020-06-09 10:52:58
举报
文章被收录于专栏:iOSDevLogiOSDevLog

术语

术语

英文

中文

WLAN

Wireless Local Area Networks

无线局域网络

Wi-Fi

无意义(Hi-Fi 双关)

无线网络

WPA

Wi-Fi Protected Access

Wi-Fi 网络安全存取

Wi-Fi Alliance

Wi-Fi Alliance

Wi-Fi 联盟

MAC

media access control

-

WPS(AOSS/QSS)

Wi-Fi Protected Setup

Wi-Fi 保护设置

PBC

Push Button Configuration

按钮配置

PIN

Personal Information Number

PIN 码

UFD

USB Flash Device

存储在USB接口的闪存设备上的信息

NFC

Near Field Communication

近距离无线通信(通过刷卡)

AP

Access Point

(无线)接入点 / 基站

STA

Station

站点 / 工作站

Wi-Fi P2P

Wi-Fi peer-to-peer

点对点()

Wi-Fi Direct

Wi-Fi 直连

SSID

Service Set Identifier

服务集标识(无线网络名字)

[wpa_supplicant

wpa_supplicant 后端

wpa 请求者(ap, p2p)

wpa_cli

wpa_supplicant 前端

wpa 客户端面

Beacon

Beacon

信标帧

WEP

Wired Equivalent Privacy

有线等效保密

WEP:

Wired Equivalency Protection,一种Wi-Fi连接的安全标准,类似的安全标准还包括下面的WPA,WPA2。它可以使用64/128bit的ASCII/HEX(0-9,A-F)的Password,它的密钥是由Password和一个IV(初始化向量)组成,加密算法是stream cipher RC4,并使用 CRC-32校验和确保完整性。加密解密过程如下:AP发送的数据包(包括IV和加密过的数据)–>无线客户端收到此数据包–>提取其中的IV,用于和本地的Password形成密钥–>解密数据包。它有两种鉴权方式:Open System, Shared Key.

Open System:

这种鉴权方式不需要客户端提供任何credentials,因此,实际上任何客户端都可以尝试与AP进行鉴权和连接,这其中并不存在实际意义上的鉴权。鉴权连接结束,AP用WEP密钥加密数据,这时,客户端就需要正确的Password形成密钥来解密

Shared Key:

通过四次握手并使用WEP加密来完成鉴权。详细区别请参阅:opensystem_vs_sharedkey.txt

WPA:

Wi-Fi Protected Access,实现了802.11i的大部分标准,它和下面的WPA2有两种鉴权方式,一是使用802.1x,一种是使用Pre-Shared Key

WPA2:

Wi-Fi Protected Access,完全实现802.11i标准

WPA个人版/WPA-PSK:

使用Pre-Shared Key鉴权方式的WPA,设计给负担不起 802.1X 验证服务器的成本和复杂度的家庭和小型公司网络使用。同WPA2个人版/WPA2-PSK

WPA企业版:

使用802.1x鉴权方式给WPA。同WPA2企业版

802.1X:

802.1协议族中的一部分,它是一种基于端口的网络接入控制机制,它给希望接入LAN的设备提供了一种鉴权机制,它是基于EAP的.扩展阅读:http://en.wikipedia.org/wiki/802.1x

EAP:

Extensible Authentication Protocol,一种普遍使用的认证机制,它是一个认证框架,并不是一种特殊的认证机制。EAP提供一些公共的功能,并且允许协商所希望的认证机制。这些机制被叫做EAP方法,现在大约有40种不同的方法。当EAP被基于802.1x的网络接入设备(诸如802.11a/b/g ,无线接入点)调用时,现代的EAP方法可以提供一个安全认证机制,并且在用户和网络接入服务器之间协商一个安全的PMK(Pairwise Master Key)。该PMK可以用于使用TKIP和AES加密的无线会话。在Pre-Shared Key验证方式中,PMK=PSK。

PMKSA:

PMK Security Association,参考:pmksa.txt

TKIP:

Temporal Key Integrity Protocol,数据传输加密算法(类似于WEP加密的 RC4 算法)

AES:

Advanced Encryption Standard,数据传输加密算法(类似于WEP加密的 RC4 算法)

CCMP: Counter Mode with Cipher Block Chaining Message Authentication Code Protocol,数据完整性编码校验算法(类似于WEP中 CRC32 算法)

MIC:

数据完整性编码校验算法(类似于WEP中 CRC32 算法)

总结Wifi连接过程大致如下: 客户端与AP的鉴权,与AP建立连接,若使用加密,AP发送并加密数据包,无线客户端接收并解密数据包。密码学中有两个概念:加密算法和密钥,通过这两个东西来解加密过的数据包。 密钥,对于WEP,WPA/WPA2个人版来说,总是由一个Pre-Shared Key,加上其他元素,经过一系列过程产生而来,这个Pre-shared Key就是我们平时接入Wi-Fi时需要输入的密码。对于WPA/WPA2企业版,这个Pre-Shared Key叫做PMK,形成密钥的过程原理相似。 目前,EAP方法基本上是与802.1x一起使用

image.png

目前Wi-Fi的加密模式主要有:WEP,WPA,WPA2-PSK。

2.4G 与 5G

随着无线设备数的增加. 2.4GWi-Fi 已满足不了人们的日常需求, 5GWi-Fi应运而生, 先看下标准定义

IEEE802.11协议对2.4GHz频段的规定:

频率范围:2.4GHz~2.4835GHz;14个信道,信道带宽20M(相邻多个信道频率重叠)。下面你看到的频率范围包含22M,是因为有2M被用作强制隔离频带,不参与数据传输。

在中国,2.4G这条高速公路上一共有13条车道(信道)。

虽然一共有13条车道,但由于资源有限。所以,不同车道之间,便会存在共用“路面”的问题。13条车道中,最多只有3条车道可以不相互影响,例如1、6、11车道互不相互干扰。

IEEE802.11协议对5GHz频段的规定:

频率范围:5.150-5.250GHz、5.250-5.350GHz、5.470-5.725GHz、5.745-5.825GHz;共201个信道,信道带宽40M/80M/160M(可选择,相邻多个信道频率重叠)。

虽然中国5G车道只有 4 个,但每个相邻的车道间距有20MHz(2.4G车道间距是5MHz),在20MHz时,车道之间不会有干扰。如果为了提升速率,把两个20MHz的车道合在一起,就形成了40MHz。以此类推,中国5G频段最多可以提供80MHz的超大车道,所以5G的速率自然快乐。

wpa_supplicant

wpa_supplicant本是开源项目源码,被谷歌修改后加入android移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令wpa_supplicant调动驱动来对WiFi芯片操作。

简单的说,wpa_supplicant就是WiFi驱动和用户的中转站外加对协议和加密认证的支持。

wpa_supplicant是支持WPA和WPA2(IEEE 802.11i / RSN)的Linux,BSD,Mac OS X和Windows的WPA请求者。它适用于台式机/笔记本电脑和嵌入式系统。请求者是在客户站中使用的IEEE 802.1X / WPA组件。

它实现与WPA身份验证器的密钥协商,并控制WLAN驱动程序的漫游和IEEE 802.11身份验证/关联。wpa_supplicant被设计成一个在后台运行的“守护程序”程序,并作为控制无线连接的后端组件。

wpa_supplicant支持单独的前端程序,包含基于文本的前端(wpa_cli)和GUI(wpa_gui)。

wifi 的 concurrent mode

所谓wifi的共存模式,有以下几种:

  1. station mode + station mode
  2. station mode + ap mode
  3. station mode + p2p mode
  4. p2p mode + ap mode

目前android自从JB version后,就开始支持station + p2p的共存,但其他的共存模式目前在android上都还未支持。现在市面上的wifi驱动主要是支持前三种共存,目前第四种共存模式,暂未见到;而station+ap mode,目前我们有在BXXX项目中使用,使用场景就是:

做Ap供其他的mid或phone来连接,同时自己又做station mode来连接外面可以上网的路由器,这样在mid或phone上,就可以在访问BXXX的同时,还可以上网。BXXX自己当然也可以上网了。

但需要主要的是,以上各模式中的station,ap,p2p在驱动中都需要对应的网络接口的,所以如果要支持concurrent mode,你的驱动insmod后,必须吐出两个网络接口才行,如果只有一个网络接口,那肯定是不支持concurrent mode的,见下图,加载驱动后就会出现wlan0,p2p0两个网络接口。

image.png

另外需要注意,这两个网络接口,都是在驱动中虚拟出来的,共享同一个物理硬件,因此他们也共享物理硬件所能达到的throughput,由于他们共同一个物理硬件,所以wlan0和p2p0必须在同一个channel上,因此跟wlan0和p2p0连接的网络都在同一个channel上,这样这个大网络里所有的设备共同参与这个信道的载波侦听/冲突检测,即同一时间只能有一个站在空气中发送无线包。如果刚开始出现ap/p2p跟wlan0的channel不一致的情况,那一般都是ap/p2p断开之前的链接,重新调频到wlan0的信道建立新的链接。

wlan0,p2p0都是在linux下的wifi驱动中创建的,譬如进来一个数据包是根据什么标准来判断,该路由到wlan0还是该路由到p2p0,

这是一个很趣的问题;另外wlan0接口和p2p0接口他们的发送数据包是如何调度和管理的,也是一个值得关注的问题。

image.png

2:station mode + ap mode 本节介绍station+ap的concurrent mode是如何建立的。先上一张整体的框架图:

image.png

在调试阶段,为了验证ap+sta是否正常工作,我们最好是step by step的先验证sta mode是ok的,然后验证ap

mode是ok的,最后才是sta+ap mode是否ok。

代码语言:javascript
复制
#define WPA_DRIVER_FLAGS_P2P_CONCURRENT    0x00000200 //Wifi驱动支持STA和P2P的并发运行
  1. https://w1.fi/wpa_supplicant/
  2. https://w1.fi/wpa_supplicant/devel/
  3. https://blog.csdn.net/kissinger_1984/java/article/details/83113056
  4. https://blog.csdn.net/xiaojsj111/article/details/30482001
  5. https://blog.csdn.net/ztguang/article/details/51015976
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 术语
    • WEP:
      • Open System:
        • Shared Key:
          • WPA:
            • WPA2:
              • WPA个人版/WPA-PSK:
                • WPA企业版:
                  • 802.1X:
                    • EAP:
                      • PMKSA:
                        • TKIP:
                          • AES:
                            • MIC:
                            • 2.4G 与 5G
                              • IEEE802.11协议对2.4GHz频段的规定:
                                • IEEE802.11协议对5GHz频段的规定:
                                • wpa_supplicant
                                  • wifi 的 concurrent mode
                                  相关产品与服务
                                  多因子身份认证
                                  多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档