WiFi基础(八):WiFi安全、认证与加密
liwen01 2024.11.17
前言
计算机网络在给人们带来便利的同时,也引入了安全风险,对于无线WiFi网络而言,风险更高。无线 WiFi 网络安全主要包括两大部分:
接入认证
和
数据加密
。
虽然现在网络安全事件远少于网络诈骗,网络认证与数据加密的方法及原理仍值得学习和借鉴。
(一) WiFi 安全威胁
我们看上面这个简单的网络结构图,一个路由器上连接着4台电脑、一台服务器,一台手机。
如果路由器的热点是开放未加密的,那连接到路由器上的所有设备的网络都会是不安全的。
(1) 数据安全
笔记本1、笔记本2、手机都是通过 WiFi 连接到路由器上,通过无线电波以空口包的形式进行数据交互。
如果非法攻击者位于路由器比较近的距离,它是可以直接使用空口包抓包工具将网络包抓取出来。然后对数据进行解密、分析,他就能找到他想要的数据信息。
数据的加密方式,决定了攻击者对数据解密的难易程度。WiFi中常用的加密方式有:
RC4、TKIP、AES、CCMP、GCMP
。
(2) 认证安全
最上面图中,路由器的有线与无线网络处于同一网段,如果非法攻击者连接上了路由器,它不但可以攻击无线设备,还能攻击处于同一个网络中的有线设备(台式电脑、服务器等)。
要解决链路安全问题,需要在连接无线网络时进行设备认证。
- 适用于个人和家庭版本的是:
WEP、WPA-PSK、WPA2-PSK、WPA3-PSK
; - 适用于企业的是:
WPA-802.1X、WPA2-802.1X、WPA3-802.1X
(3) 非法AP问题
有些非法AP,它将 SSID 设置成与合法 AP 一致,假装成合法的无线网络,诱使用户连接。一旦连接,攻击者可以拦截流量、进行数据窃取或传播恶意软件。
要解决非法 AP 问题,可以在网络中布置 WIDS(Wireless Intrusion Detection System)无线入侵检测系统。
(4) 认证与加密
(二) WEP 认证与加密
WEP (Wired Equivalent Privacy)
有线等效加密是 1997 年批准的原始802.11标准的一部分,可用于802.11a和802.11b设备的加密协议,旨在为 WiFi 提供与有线网络类似的安全性。
尽管 WEP 现在已经过时且存在多个安全漏洞,但其认证过程仍然值得学习,因为它是无线网络安全历史上的重要一步。
WEP 认证过程中主要有两种模式:
开放系统认证
和
共享密钥认证
。
(1) 开放系统认证(Open System Authentication)
这是 WEP 最简单的一种认证方式,实际上它并不涉及加密认证。在开放系统认证中,任何客户端都可以请求连接接入点 (AP),无论客户端是否知道 WEP 密钥。
尽管它被称为
认证
,但实际上它几乎没有安全性。
开放系统认证的步骤:
- 请求认证
:客户端向 AP 发送一个认证请求帧。这一帧只是表明客户端希望加入网络,不包含任何加密信息。 - 认证回应
:AP 接收到请求后,通常会直接回应一个认证应答帧,表示认证成功。由于开放系统认证并不涉及身份验证,即使客户端不知道正确的 WEP 密钥,AP 也会允许它进入网络。 - 发送关联请求
:认证完成后,客户端发送关联请求,表明它想加入网络。 - AP回应关联请求
:AP 会回应一个关联应答,表示客户端已成功加入网络。
(2) 共享密钥认证(Shared Key Authentication)
共享密钥认证使用 WEP 密钥进行身份验证,确保只有知道正确 WEP 密钥的客户端可以通过认证。
共享密钥认证的步骤:
- 请求认证
:客户端发送一个认证请求帧,表明它希望通过共享密钥认证加入网络。请求帧中包含客户端的 MAC 地址等信息,但不包含任何加密数据。 - 挑战帧(Challenge Frame):AP 接收到请求后,会生成一个随机数,称为挑战文本
(Challenge Text)。AP 将挑战文本以
明文
的形式发送给客户端,同时要求客户端使用 WEP 密钥对该挑战文本加密后再返回。 - 加密挑战并响应
:客户端使用其本地配置的 WEP 密钥对挑战文本进行 RC4 加密,然后将加密后的数据返回给 AP。 - AP验证
:AP 接收到加密后的挑战响应后,使用相同的 WEP 密钥对挑战文本加密,并将结果与客户端的响应进行对比。如果两者匹配,则说明客户端知道正确的 WEP 密钥,认证成功。否则,认证失败。 - 关联过程
:如果认证成功,客户端会发送关联请求帧,AP 则回复关联应答帧,表明客户端成功加入网络。
共享密钥认证的特点:
- 加密认证
:使用 WEP 密钥对挑战文本加密,表面上看起来比开放系统认证安全得多。 - 漏洞
:共享密钥认证本身存在严重的设计缺陷。由于挑战文本是明文发送的,而加密后的响应可被拦截,这意味着攻击者可以通过分析多个认证过程,逆向推算出 WEP 密钥。这种攻击被称为
加密文本选择攻击
。
(3) WEP工作原理与加密过程
1.数据载荷和 CRC 生成(无线设备)
- 数据载荷
(Payload)是准备要传输的数据。 - 计算数据载荷的 CRC(循环冗余校验)。CRC 用于确保数据的完整性,接收端可以通过 CRC 验证数据在传输过程中没有被篡改。
- 数据载荷 + CRC
被组合成一个数据包,它作为加密过程中的明文输入。
2. IV(初始化向量)和共享密钥
- 通过 IV 生成算法生成一个 初始化向量(IV)。IV 是一个 24 位的值,用于确保即使重用相同的共享密钥,不同数据包的加密结果也会不同。
- 这个 IV 和共享密钥的组合作为
RC4 算法
的输入。
3.RC4 加密
- RC4 算法
使用连接后的 IV 和共享密钥生成
密钥流
。 - 生成的密钥流与
明文输入
(数据载荷 + CRC)进行 异或运算(XOR),生成
密文
。 - IV 作为数据包的一部分与密文一起传输,因为接收端需要它来解密数据。
4.接收端(AP)
- 接入点(AP)接收到包含
IV
和
密文
的数据包。 - AP 将接收到的 IV 与
共享密钥
(与设备预先共享)连接,并输入
RC4 算法
以生成与加密时相同的
密钥流
。 - AP 将
密文
与生成的密钥流进行异或运算,得到原始的
明文输出
(数据载荷 + CRC)。 - 最后,AP 使用
CRC
验证数据的完整性,并提取
数据载荷
以供进一步处理。
关键点介绍:
- RC4 流密码
:该算法生成一个密钥流,与数据进行异或运算以生成密文。同样的密钥流用于解密数据。 - IV
:一个 24 位的值,用于防止在不同的数据包中重复使用相同的密钥流。 - 共享密钥
:设备与 AP 预先共享的密钥,是 RC4 加密的基础。 - 数据载荷保护
:CRC 用于确保数据完整性,而密钥流通过加密确保数据的机密性。
(4) WEP 加密的缺陷
- IV 碰撞
:IV 长度仅为 24 位,容易导致 IV 重复使用,使得 WEP 易受到分析攻击。 - RC4 的弱点
:RC4 自身存在已知的漏洞,因此与现代加密标准如 WPA 和 WPA2 相比,WEP 的安全性较低。
(三) WPA1/WPA2 的 PSK 认证
WEP 协议是最早的无线网络加密标准,但其设计存在严重缺陷,如容易被攻击者通过捕获足够多的数据包进行密钥还原。
因此,WiFi 联盟开发了 WPA(WPA1) 标准,作为 WEP 的过渡性替代方案,其中引入了 TKIP 来提高数据传输的安全性,同时也引入了PSK 认证方法。
Pre-Shared Key (PSK)
认证方法常用在
WPA-Personal
和
WPA2-Personal
模式下,它不需要企业级的认证服务器(如RADIUS),而是依赖于所有用户共享的同一个密码来进行认证。也就是我们现在连接家用路由器的方式。
(2) PSK 认证的整体流程
- 预共享密钥配置
:网络管理员在无线接入点(AP)上配置一个密码(即预共享密钥,PSK)。连接到此网络的设备也需要输入相同的密码。 - 连接请求
:当客户端设备(如手机或笔记本电脑)尝试连接到 WiFi 网络时,首先输入预共享密钥(即WiFi密码),然后发起连接请求。 - PSK 验证
:无线接入点接收到客户端的连接请求后,会检查客户端提供的 PSK 是否与其自身配置的 PSK 相匹配。如果 PSK 匹配,认证通过;如果 PSK 不匹配,则连接被拒绝。 - 四次握手协议
(Four-Way Handshake):为了防止 PSK 匹配时数据被窃听,双方需要通过握手协议生成独立的加密密钥(即
会话密钥
),用于加密无线数据传输。
四次握手过程:
- 第一步
:AP 生成一个随机数,称为
AP Nonce
(ANonce),并将其发送给客户端。这个随机数是用于生成最终加密密钥的关键材料之一。 - 第二步
:客户端收到 ANonce 后,结合预共享密钥(PSK)和客户端自身生成的随机数
SNonce
来计算出
PTK
(Pairwise Transient Key,成对瞬时密钥),这个密钥用于加密客户端和 AP 之间的通信。客户端随后将它的
SNonce
发送给 AP。 - 第三步
:AP 收到 SNonce 后,使用 AP 的 ANonce、客户端的 SNonce、双方的 MAC 地址,以及 PSK,生成与客户端相同的 PTK。同时,AP 还生成一个 GTK(Group Temporal Key,组临时密钥),用于加密网络中的广播和组播通信。AP 接着将加密后的 GTK 和消息完整性代码(
MIC
)发送给客户端,以确认握手数据的完整性。 - 第四步
:客户端收到加密的 GTK 和 MIC 后,使用之前生成的 PTK 进行解密和验证。如果验证通过,客户端会向 AP 发送一个确认消息,表示握手成功。此时,客户端和 AP 都拥有相同的 PTK 和 GTK,从而可以开始加密的通信
通过这个握手过程,客户端和AP最终拥有了相同的
会话密钥
(Session Key),而 PSK 只是参与了会话密钥的生成,并不会直接用于加密传输数据。
PSK 认证的关键元素:
- 预共享密钥
(PSK):由网络管理员设置的一个密码,必须在所有设备和AP上配置相同的 PSK。它参与了会话密钥的生成,但不会用于直接加密数据。 - 四次握手协议
:在验证 PSK 之后,客户端和 AP 通过四次握手协商出一个新的
临时密钥
(TK),即会话密钥,用来加密和保护无线通信数据。 - 会话密钥
(Session Key / PTK):握手协议生成的动态密钥,它是基于 PSK、AP 和客户端的 MAC 地址、以及生成的随机数计算而得的。这使得即便PSK相同,客户端和AP之间的通信也是独一无二的。 - Group Temporal Key
(GTK):用于加密在网络中所有设备之间的广播和组播消息。GTK 由 AP 生成并发送给每个已认证的客户端。
(4) PSK 认证的优点
- 简便易用
:PSK模式不需要复杂的基础设施(如认证服务器),只需在接入点和客户端之间共享密码,因此特别适合家庭和小型网络。 - 灵活性
:任何拥有正确PSK的设备都可以连接到WiFi网络,适合需要简单设置的场景。 - 加密数据传输
:在 PSK 验证通过后,四次握手协议生成的会话密钥(Session Key)确保每个数据包的加密是独一无二的,这有效地防止了窃听和篡改。
(5) PSK 认证的隐患
尽管 PSK 是一种简单且有效的认证方式,但它也存在一定的安全隐患:
- 密码强度
:如果 PSK 密码过于简单或常见,攻击者可以通过暴力破解或字典攻击来猜测密码。一旦PSK被破解,攻击者可以完全访问网络。 - 密钥共享风险
:所有用户共享相同的 PSK,这意味着如果 PSK 被泄露,网络的所有安全性都将被破坏。 - 设备移除的复杂性
:在 PSK 模式下,无法轻易从网络中移除单个设备。要取消某个设备的访问权限,必须更改网络密码,并在所有其他合法设备上重新输入新的密码。
(四) WAP 的 TKIP 加密
TKIP(Temporal Key Integrity Protocol) 是为了解决 WEP 中的静态密钥和容易被破解的问题而设计的,它主要的目标是
在不更改硬件的情况下,提高现有设备的安全性
。
(1) TKIP的主要功能与特性
TKIP 的工作原理与 WEP 类似,但它通过增强的密钥管理和数据包完整性检查来解决 WEP 的安全漏洞。其工作流程大致如下:
- 初始化
:TKIP 在开始时使用共享密钥和初始化向量(IV)来生成初始密钥。 - 密钥混合
:TKIP通过混合函数将共享密钥、IV以及数据包的序列号等信息组合在一起,生成一个唯一的加密密钥,用于该数据包的加密。 - 加密数据包
:数据包在传输之前使用RC4流加密算法加密,加密的密钥是动态生成的每个数据包的唯一密钥。 - MIC校验
:加密前,TKIP还会计算消息完整性校验(MIC)值并附加在数据包中,确保数据包未被篡改。 - 重放保护
:接收方通过检查数据包的序列号来防止重放攻击。
(2) TKIP 的局限性
虽然 TKIP 在设计上比 WEP 更安全,但它并不是完美的,主要局限性包括:
- 计算性能较低
:TKIP为了兼容现有的硬件设备,其设计不得不做出一些妥协,这导致其在处理加密时效率较低。尤其是在较高带宽的网络环境下,性能问题尤为明显。 - 安全性已过时
:随着计算能力的提升,TKIP本身也逐渐被证明不再足够安全。例如,Michael算法中的某些弱点已经被发现并利用。因此,WiFi联盟已经建议在WPA2标准中弃用TKIP,改用更安全的AES(高级加密标准)。 - 不支持现代的WiFi标准
:随着WiFi标准的进步(如WPA2、WPA3),TKIP不再能满足现代无线通信的安全需求,这使得它在新标准中被逐步淘汰
TKIP 作为 WEP 到 WPA 过渡期间的一项重要技术,为提升无线网络安全性做出了贡献。随着时间的推移和计算能力的提升,TKIP 逐渐暴露出其安全性和性能上的局限性。在 802.11 标准的 2012 年修订版中已被弃用。
(五) WAP2 的 AES 加密
AES(Advanced Encryption Standard)
被引入是为了替代
WEP(Wired Equivalent Privacy)
和
WPA(Wi-Fi Protected Access)
初始版本中的 RC4 加密算法,它在WPA2中被广泛使用。
(1) AES 的优点
AES 是一种分组加密算法,它具备下面特点:
- 安全性强
:AES 是一种对称加密算法,通常支持 128 位、192 位和 256 位密钥,且已被全球安全专家评估为高效且难以破解的算法。 - 效率高
:AES 采用 Rijndael 算法,不仅安全性高,而且在硬件加速和计算效率上表现优异,适用于无线网络环境。 - 受支持广泛
:AES 是美国政府采纳的加密标准,广泛用于商业和政府机构,适用于几乎所有现代设备。
(2) AES 在的应用
AES 主要用于 Counter Mode with Cipher Block Chaining Message Authentication Code Protocol (CCMP) 模式,即
计数器模式+密码块链接消息验证码协议
。这种模式提供数据加密和完整性验证。
- 计数器模式
(Counter Mode):通过一个唯一的计数器(nonce)将每个数据包的内容进行加密,从而确保数据的唯一性和机密性。 - 消息验证码协议
(MAC):使用 Cipher Block Chaining Message Authentication Code (CBC-MAC) 来确保数据的完整性,防止数据篡改。
(3) AES-CCMP 的工作流程
- 密钥生成
:用户设置的预共享密钥(PSK)经过一系列运算生成 Pairwise Transient Key (PTK) 和 Group Transient Key (GTK),用于加密各自的数据包。 - 计数器加密
:每次发送的数据包会携带一个新的计数器值 (nonce),AES 使用该计数器加密分组数据块,通过分组加密生成伪随机流,最终与明文数据按位异或得到密文。 - 完整性检查
:AES-CCMP 在发送数据前会使用 CBC-MAC 生成一个消息认证代码(MIC),并将其附加到数据包尾部,接收端再进行 MIC 计算并对比,以确保数据的完整性。
(4) AES-CCMP 的缺点
- 高计算资源需求
:AES 计算复杂度较高,对低性能设备或电池供电设备有一定的能耗影响。 - 兼容性
:部分早期设备不支持 AES,可能需更换设备才能使用 WPA2。
(六) WAP3 的 SAE 认证
2018年推出的
Wi-Fi Protected Access 3
(WPA3) 引入了一种新的认证协议SAE (Simultaneous Authentication of Equals),用于替代 WPA2 中的 Pre-Shared Key (PSK) 机制。
SAE 被称为
同时认证的对等方
,在 WPA3 中提供更强的安全性,尤其是抵御离线字典攻击。
(1) SAE 认证的工作原理
SAE 是基于密码学的零知识证明协议,具体基于
离散对数难题
和
椭圆曲线密码学
(ECC),可以在不直接传输密码的情况下验证用户身份。
它是一个抗离线攻击的安全协议,使得攻击者即使截获了 Wi-Fi 握手数据,也无法通过离线尝试密码。
- Diffie-Hellman 密钥交换
:SAE 认证使用修改版的 Diffie-Hellman 密钥交换协议,通过每次握手生成一个唯一的会话密钥,即使知道之前的密钥也无法破解新的密钥。 - 抗离线字典攻击
:在 SAE 中,即使攻击者获取到 Wi-Fi 握手数据,也无法在离线环境中暴力破解密码,因为 SAE 每次握手生成的密钥是唯一的,且需要在线验证。
(2) SAE 的认证过程
- Commit Message
初始化并交换 Diffie-Hellman 公钥,双方开始计算共享密钥。 - Confirm Message
验证密钥的一致性并确认对方身份,确保握手安全。 - Authentication Success
双方信任彼此生成的共享密钥,认证完成。 - Association Request/Response
确认设备加入网络,准备加密通信。
SAE 的认证过程涉及两大主要步骤:密钥
生成
和
确认
:
第 1 步:初始化阶段
- 每个客户端和接入点 (AP) 在认证之前会生成一个唯一的随机数,并将其称为私有密钥。
- 双方使用 Diffie-Hellman 密钥交换来生成各自的公钥,并通过广播公钥与对方交换。
第 2 步:密钥交换和生成共享密钥
- 双方各自用自己的私有密钥和接收到的对方公钥计算一个共享密钥。
- 由于每次握手都会生成不同的随机数,因此即便同样的密码也会产生不同的共享密钥。
第 3 步:零知识证明
- 零知识证明用于验证用户身份而不直接传输密码。用户需要向 AP 证明自己知道密码,而无需实际泄露密码信息。
- 通过计算出的共享密钥,双方生成会话密钥,并进行相互认证。
- 如果认证通过,双方确认共享密钥有效,即认证成功,允许接入网络。
(3) SAE 的安全特性
- 前向安全性
(Forward Secrecy):SAE 使用的每次独立密钥生成机制,即使历史会话密钥泄露,也不会影响未来会话的安全性。 - 零知识证明
:零知识证明在认证过程中不会传输实际密码或密钥,防止了密码泄露。 - 抗离线字典攻击
:攻击者无法通过离线分析握手数据来猜测密码,避免了离线暴力破解。
(4) SAE 与 WPA2-PSK 的差异
- 安全性更强
:SAE 相比 WPA2 的 PSK 模式,提供更高的安全性,特别是在抵御离线攻击和暴力破解方面。 - 握手机制
:WPA2-PSK 通过静态共享密钥认证,容易遭受重放攻击;SAE 采用动态密钥交换机制,每次认证生成不同密钥。 - 兼容性
:SAE 使用了椭圆曲线密码学,这要求设备支持较高的计算能力,部分旧设备可能不支持 WPA3-SAE。
(5) SAE 的局限性
- 计算资源需求高
:SAE 的零知识证明和密钥交换算法对设备计算能力有一定要求,可能会影响低功耗设备的使用体验。 - 不支持 WPA2 设备
:许多 WPA2 设备不兼容 WPA3 的 SAE 认证机制,因此需要 WPA3 支持设备的环境下才能发挥其全部优势。
(七) WAP3 的 AES-GCMP 加密
在 WPA3 中,为了增强数据传输的安全性,采用了
AES-GCMP
(AES-Galois/Counter Mode Protocol) 加密模式,这种加密模式在 WPA3 的 Enterprise 和 Personal 网络中广泛应用。
AES-GCMP 结合了加密和消息认证功能的算法,确保数据的机密性、完整性和认证。
(1) AES-GCMP 的基本概念
AES-GCMP 是一种基于 AES(Advanced Encryption Standard)的认证加密模式,结合了 Galois/Counter Mode (GCM) 的分组加密和认证功能,用于保护无线网络的数据通信。
AES-GCMP 比 WPA2 中的 AES-CCMP 更安全和高效,支持更高的数据速率和更强的安全性。
- AES-GCM
:AES-GCM 是一种分组加密模式,通过计数器模式 (Counter Mode) 实现加密,通过 Galois Message Authentication Code (GMAC) 实现数据的认证。 - GMAC 认证
:GMAC 是一种基于 Galois 字段运算的消息认证码,确保数据包在传输过程中没有被篡改。
(2) AES-GCMP 的工作流程
AES-GCMP 结合了加密和认证的流程,其数据处理过程分为以下几步:
- 计数器模式加密
:每个数据包会生成一个唯一的计数器 (nonce) 来确保随机性和不可重用性,然后使用 AES 加密每个分组数据块。 - 数据认证
:加密后,AES-GCMP 使用 GMAC 生成一个消息认证码 (MAC),用于验证数据的完整性。此 MAC 被附加到数据包的尾部。 - 数据包发送与验证
:接收方解密数据包时会验证 GMAC,确保数据包未被篡改。如果验证通过,则解密数据包并还原数据。
(3) AES-GCMP 与 AES-CCMP 的区别
AES-GCMP 与 WPA2 中的 AES-CCMP 有几个重要区别:
- 性能
:AES-GCMP 比 AES-CCMP 更快,因为它在认证过程中减少了计算负担,适合更高的吞吐量。 - 认证方式
:AES-GCMP 使用 GMAC(而不是 CBC-MAC)来完成认证,效率更高且加密流程更简化。 - 加密强度
:AES-GCMP 支持更长的密钥长度,如 256 位,相比 WPA2 中 AES-CCMP 常见的 128 位密钥更安全。
(4) AES-GCMP 的优点
- 更强的安全性
:AES-GCMP 支持 256 位密钥,进一步增强了 WPA3 网络的安全性。 - 抗篡改保护
:AES-GCMP 的 GMAC 认证模式可以检测数据包中的篡改行为,从而保护数据的完整性。 - 高效性
:AES-GCMP 在较高带宽下也能高效运行,因此特别适合于需要较高传输速率和低延迟的网络环境,如 Wi-Fi 6。
(5) AES-GCMP 的局限性
- 硬件支持
:AES-GCMP 的加密和认证过程对计算性能要求较高,需要设备硬件支持 AES 硬件加速,才能达到较好的性能。 - 不向下兼容 WPA2
:AES-GCMP 仅适用于 WPA3,不向下兼容 WPA2 网络,因此对某些老旧设备不支持。
结尾
上面内容主要介绍了WiFi个人版本中WIFI认证与加密相关的一些知识,日常生活中,比较多的无线设备还是使用WPA2协议,不少厂家也在逐渐更新为WPA3。
日常家庭使用WPA2/3已可以满足需求。对于公司企业,还是使用企业版本认证加密可能会更为稳妥。