AKM
AKM英文是Authentication and Key Management,在WPA中指的是认证和密钥交换及各种子密钥派生方法。
WPA3中的AKM主要分为企业模式,个人模式,Only模式,过渡模式。
SAE就是普通的WPA3-SAE模式,WPA3-Personal用的就是这个模式,SAE又分为SAE,SAE-GDH
SAE用的是Hunting and Pecking算法把PSK映射到ECC上的点,这种算法已被证明存在安全隐患,所以后面又推出了H2E算法,H2E就是Hash to Element,也就是Hash算法。
Hunting and Pecking的AKM编码是AKM8,Hash to Element的AKM编码是AKM24。6GHz频段要求仅支持AKM24。
也以客户端提供对H2E的支持:
– Android 12+
– Linux wpa_supplicant v2.10+ (see sae_pwe parameter for configuration)
– macOS Catalina+
– Windows 10 21H2+
下图是一部分AKM套件的编号
SAE-PK
基于非对称密钥的SAE,先生成一个P-256的密钥对,然后算出来一个M值,M值参与生成签名,加入M值可以让签名的前sec个字节为0(抗第二原像攻击,防止找出第2个与指纹密码相同的公钥)。然后对公钥进行Hash运行,取前12位(最少12位,长度可以是4的倍数)作为wifi密码。在SAE握手的时候AP会把M值,随机数,Mac地址等一起进行签名,生成一个签名指纹。
AP会把公钥,签名,KEK加密的M值一起发送给STA,STA用密码对公钥进行验证,如果验证通过再用公钥验签(用于生成签名的输入是双方共享的),验签通过就是合法的AP。
这里不直接用公钥作为密码应该是因为公钥太长了,所以才对公钥进行Hash作为密码。
SAE-PK密码是这样的:
wsie-tyg2-x2rl-qsfs
wsie-tyg2-x2rl-qsfl-y2mr
wsie-tyg2-x2rl-qsfl-y2mc-t5yi
wsie-tyg2-x2rl-qsfl-y2mc-t5ye-rvc6
wsie-tyg2-x2rl-qsfl-y2mc-t5ye-rvcg-tr6e
wsie-tyg2-x2rl-qsfl-y2mc-t5ye-rvcg-tr65-5dhj
wsie-tyg2-x2rl-qsfl-y2mc-t5ye-rvcg-tr65-5dhu-touh
wsie-tyg2-x2rl-qsfl-y2mc-t5ye-rvcg-tr65-5dhu-touh-4sdz
wsie-tyg2-x2rl-qsfl-y2mc-t5ye-rvcg-tr65-5dhu-touh-4sdl-2mpz
SAE-PK密码同时作为普通的SAE密码使用,这样如果STA不支持SAE-PK则按普通SAE验证。也可以使用SAE-PK Only模式以抵抗降级攻击。
这个表是不同的凭据参数抗第二原像攻击的强度
其中A是密码长度,Sec是Hash安全参数长度,S是破解所需计算量的数量级。Nvidia最新的GB200算力平台算力是720 PH/sec,破解76数量级的Hash只需要十几天。虽然Sec越长安全性越高,但是找到合适M值 的难度也更高。
如果STA已经信任AP的公钥(已经验证过或通过扫描识别),则不存在第二原像攻击。