×

一文让你轻松理解WLAN数据加密机制

lixiaoyao lixiaoyao 发表于2025-01-02 10:51:42 浏览13 评论0

抢沙发发表评论

1. 802.11 Security Technology

Wi-Fi安全加密的演进下图所示,当前最新的加密方式是WPA3。WPA3对现有网络提供了全方位的安全防护,增强了公共网络、家庭网络和802.1X企业网的安全性。




1.1 加密机制

1.1.1 加密认证机制

WEP

WEP 64-bit/128-bit Passphrase

WPA2-Personal

WPA2-Enterprise

WPA3-Personal

WPA3-Personal only mode

WPA3-Personal transition mode

WPA3-Enterprise

WPA3-Enterprise only mode

WPA3-Enterprise transition mode

1.1.2 企业级加密证书政策

EAP-TLS

EAP-TTLS/MSCHAPv2

PEAPv0/EAP-MSCHAPv2

PEAPv1/EAP-GTC

EAP-SIM

EAP-AKA

EAP-AKA-Prime

1.2 加密算法

ARC4算法(流密码)

WEP/TKIP加密协议均采用ARC4算法

AES算法(分组密码)

CCMP加密协议采用AES算法

SM4算法

WAPI加密协议采用SM4算法

1.3 静态WEP加密

WEP是一种使用ARC4流密码的二层加密机制。有64-bit和128-bit两种,64-bit WEP称为WEP-40,128-bit WEP称为WEP-104。64位的WEP由40位的静态密钥和24位的初始化向量(IV)构成。无线接口的驱动程序负责选择IV,并以明文形式发送,每一帧都会创建一个新的IV。由于总共只有2^24(16777216)种不同的IV组合,因此所有的IV值在重复一段时间后必定重复。对于64位WEP而言,40位的静态密钥与24位的IV混合后的有效密钥长度位64位;对128位WEP而言,104位的静态密钥与24位的IV混合后的有效密钥长度位128位。


静态WEP密钥通常为十六进制字符或ASCII字符,接入点和客户端的静态密钥必须匹配。40位的静态密钥由10个十六进制字符或者5个ASCII字符构成,而104位的静态密钥由26个十六进制字符或者13个ASCII字符构成。


1.3.1 WEP工作原理

WEP不需要四步握手,WEP的工作原理具体如下所示:


WEP对需要加密的明文数据执行循环冗余校验(CRC),然后将完整性校验值(ICV)附加到明文数据的末尾;

WEP生成一个24位的明文IV,并于静态密钥混合;

WEP使用静态密钥和IV作为种子,通过伪随机算法产生一系列密钥流的随机数据比特,密钥流的长度与需要加密的明文数据相同;

对密钥流与明文数据比特进行异或运算,输出即为WEP密文,也就是加密数据;

为加密数据添加明文IV作为前缀。

2. 强健安全机制-RSN

802.11标准


WiFi联盟认证


身份验证机制


加密机制


密码算法


密钥生成


Pre-RSNA


Open System


开放系统(Open System Anthentication)


WEP


开放系统(Open System Anthentication)


WEP64


WEP128


ARC4


ARC4


静态


共享密钥(Shared Key Authentication)


WEP64


WEP128


ARC4


ARC4


静态


RSNA


WPA-Personal


Pre-shared Key Authentication


TKIP


CCMP


ARC4


ARC4


动态


WPA2-Personal


Pre-shared Key Authentication


TKIP(可选)


CCMP(强制)


ARC4(可选)


AES(强制)


动态


WPA3-Personal


Simultaneous Authentication of Equals(对等实体同时验证)


CCMP(强制)


AES(强制)


动态


WAPI


WAPI


Pre-shared Key Authentication


SMS4


ECC192


2.1 预共享密钥身份验证(WPA/WPA2-PSK)

WPA/WPA2-Personal使用预共享密钥机制,支持终端用户输入长度为8~63个字符的ASCII字符串为密码,而系统的密码短语-预共享密钥映射(passphrase-to-PSK mapping)函数负责将密码转换为256位的预共享密钥。其函数如下所示:


PSK = PBKDF2(passPhrase, ssid, 4096, 256/8), 将passPhrase与SSID混合后再进行4096次散列运算,生成256位(64个字符)的预共享密钥。


WPA/WPA2-Personal的成对主密钥(PMK)等于预共享密钥(PSK)。


2.2 对等实体同时验证(WPA3-SAE)

WPA3-Personal用“对等实体同时验证(Simultaneous Authentication of Equals,简称SAE)”替换了WPA2-Personal中使用的“预共享密钥(Pre-Shared Key,简称PSK)”,从而提供了更加可靠的基于密码的身份验证。WPA3-Personal通过SAE握手,为每个客户端协商一个新的“成对主密钥(Pairwise Master Key,简称PMK)” ,然后将其用于传统的Wi-Fi四步握手,以生成会话密钥。WPA3-Personal通过证实密码信息,利用密码进行身份验证,而不是利用密码进行密钥派生,从而为用户提供了更加强大的安全保护。


WiFi联盟推出针对SAE的互操作认证项目,部分内容如下:


SAE禁止使用WEP和TKIP;

出于过渡方面的考虑,同一个BSS必须支持WPA2个人版和SAE;

出于过渡方面的考虑,WPA2个人版设备和SAE设备应使用相同的密码短语。

2.2.1 WPA3-SAE

SAE的握手协议又称为蜻蜓(Dragonfy)协议,蜻蜓协议的核心算法是迪菲 一 赫尔曼密钥交换(Diffe-Hellman Key Exchange, DHKE)协议,该协议是美国密码学家惠特菲尔德·迪菲和马丁·赫尔曼在1976年合作发明并公开的,它被广泛用于多种计算机通信协议中,比如SSH、VPN、HTTPS等,堪称现代密码基石。在介绍SAE协议之前,先看下迪菲 — 赫尔曼密钥交换协议交换生成过程,如下图所示:



Note: 关于DHKE日后再专门单独介绍。


2.2.1.1 WPA3 SAE Message Flow



WPA2: Password -> PMK -> PTK


WPA3 v1: Password -> PWE -> PMK -> PTK


WPA3 r3: Password -> PT -> PWE -> PMK -> PTK


2.2.1.1.1 beacon frame



Cipher suite selectors:




2.2.1.1.2 Algorithm number

Note that Authentication Algorithm number is 3, which is used for SAE. Below shows different Auth Algorithm numbers used in WiFi(hostapd.conf auth_algs).




AP and client both need each other’s Scalar and Finite Field values to generate PMK, and the first Auth Sequence carries these information on behalf of the client.




2.2.1.3 OWE Message Fow



2.3 无线局域网加密

IEEE 802.11标准定义了适合数据链路层的4种加密机制,他们是WEP、TKIP、CCMP、GCMP。这些二层机密机制用于保护第三~七层的数据。


2.3.1 AKMP(Authentication and Key Management Protocol, 身份验证和密钥管理协议)

加密类型如下图所示,下图来自hostapd code:




2.3.2 加密机制

机密机制如下图所示,下图来自hostapd code:




3. 4-way handshake

扫描,scan

认证,authentication

关联,association

EAPOL 4次握手,4-way handshake

3.1 Key层次



3.2 4-way handshake

RSN和RSNA要求两台终端必须验证彼此的身份并建立关联,然后通过四次握手生成动态加密密钥。如图是四次握手的过程:




动态加密密钥生成与身份验证之间存在共生关系。PMK为四次握手提供种子,而四次握手将生成任何两个802.11无线接口使用的唯一动态加密密钥。


RSNA过程会主动创建两把主密钥:组主密钥(GMK)和成对主密钥(PMK)。GMK和PMK作为种子材料,用于生成实际加密和解密数据所需的动态密钥。最终的加密密钥称为成对临时密钥(PTK)和组临时密钥(GTK)。PTK用于加密并解密单播流量,而GTK用于加密并解密广播和多播流量。


3.2.1 4-way handshake Sniffer



[注意]:


Probe Request, Probe Response, Authentication, Association Request, Association Response均为管理帧;EAPOL Key Message 1-4均为数据帧。

3.2.2 PTK

最终的加密密钥称为成对临时密钥(PTK)。




3.2.3 GTK

GTK是由GMK生成的,长度位128位。每次SAT连接SAP时都要重新生成。




3.3 group key handshake


————————————————


                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/weixin_47877869/article/details/136297808


访客