我确实对 WPA 和 WPA2 安全中的四次握手有大致了解。我知道 PMK、PTK、GMK、GMK、SNONCE 等术语。我还读到过有关新 PMKID 攻击的文章,这种攻击比传统的握手捕获方法更隐蔽。我不明白的是 PMKID,它是什么?它与实际的 PMK 有何不同。为什么路由器会将 PMKID 泄露给未经授权的陌生人?
答案1
我不明白的是 PMKID,它是什么?
PMKID 是 AP 用来跟踪客户端所用 PMK 的唯一密钥标识符。PMKID 是 AP MAC、客户端 MAC、PMK 和 PMK 名称的派生词。
您可以将其表达为以下代码:
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
PMK 缓存用于为时间敏感型应用程序建立平滑漫游。使用 PMKID 缓存,客户端不必经历整个身份验证周期,并减少了客户端向新 AP 进行身份验证所需的时间。这在 WPA/WPA2-Enterprise 网络上尤其重要,因为根据所使用的身份验证类型,身份验证时间几乎为 1 秒。
它与实际的 PMK 有何不同
PMK 本身是一个哈希,可以表示为:
PMK = PBKDF2(Passphrase, SSID, 4096)
为什么路由器会将 PMKID 泄露给未经授权的陌生人?
PMKID 和 PMK 的强度取决于密码的强度。因此,它被认为与网络本身一样安全。
在某些网络上,知道 PMKID 肯定会增加攻击者的优势。攻击者可以得到他们想要的东西更快更隐蔽但这不会改变实际密码破解过程的速度。攻击者仍然需要使用传统的破解工具,这些工具基本上会针对捕获的数据尝试大量的密码列表。
适当的防御措施是使用冗长而复杂的 WPA2 密码,破解它需要几十年的时间。或者,如果可能的话,升级到新的 WPA3 加密标准。
有用的参考资料:
使用 PMKID 对 WPA/WPA2 进行新攻击
这是 hashcat 最初发布的黑客公告。请注意,他称其为攻击,而不是漏洞。他的工作有助于凸显使用弱密码的影响。