admin管理员组

文章数量:1620399

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

本文标签: 让你一文机制轻松数据