是否可以使用流氓 AP 加速 WPA/WPA2-PSK 破解?

信息安全 密码学 网络 密码 无线上网
2021-08-18 17:02:50

我们知道 WPA/WPA2-PSK 为每个客户端使用 PTK(成对瞬态密钥)来加密通信。此 PTK 是通过称为 4 次握手的过程生成的。维基百科相关页面所述:

PTK由以下属性串联生成:PMK、AP nonce(ANonce)、STA nonce(SNonce)、AP MAC地址和STA MAC地址。然后将产品通过加密哈希函数。

因此,如果攻击者能够设置恶意 AP(接入点)并让一些客户端自动解除身份验证并连接(尤其是移动客户端)到他的恶意 AP,他能否获得一些优势来加快破解 PSK 的计算通过引入一些特殊生成的输入,例如 ANonce、AP MAC——他可以控制的变量——?

我们可以假设他有机会在一些合理的时间内执行此操作,例如 10 次。因此,他将获得他使用一些特别选择的输入(类似于选择明文攻击)的 4 次握手次数。我想知道设计中是否有一些组件会阻止他通过使用流氓 AP 而不是简单地捕获 4 次握手来获得一些速度优势?

3个回答

PTK 的密钥派生在IEEE 802.11 -2007 的第 8.5.1.2 节中定义,图 8-20(第 198 页,即PDF 文件中的第 247 页):

PRF-X(PMK, "Pairwise key expansion",
      Min(AA,SPA) || Max(AA,SPA) ||
      Min(ANonce,SNonce) || Max(ANonce,SNonce))

AA 和 SPA 是通信伙伴的地址,ANonce 和 SNonce 是它们发送的 nonce。

X是所需的位数,根据用途,X此处为 384 或 512。

在前面的 8.5.1.1 节中,定义了 PRF(伪随机函数),它是有效的

PRF-X(K, A, B) = HMAC-SHA-1(K, A || 0 || B || 1) ||
                 HMAC-SHA-1(K, A || 0 || B || 2) ||
                 ...

(根据需要重复多次以填充所需的位数,丢弃剩余的位数。)

所以有效的问题是:一个人能否以某种方式攻击 HMAC-SHA-1,知道一些输入并选择输入的其他部分,但不知道密钥,一个人可以(a)导出部分输出,或者(b) 导出密钥?

就目前所知,HMAC 结构SHA-1 散列函数在这方面都没有弱点。

因此,目前唯一已知的破解方法是暴力破解 PSK(或派生它的密码),这将只需要听一次握手,但需要大量计算才能找到密钥。

破解 256 位密钥的可能性不大,但人们可能会发现一个密码更容易从中派生。所以使用一个好的密码。

如果用户以前连接过,如果 AP 的 MAC 地址发生了变化,他们的客户端应该抱怨并警告用户连接。在windows下,它会强制在ap名称后面加上“2”。这应该会降低成功的可能性。但是,如果 MAC 地址相同,客户端将无法知道 AP 是否为 rouge。这意味着您可以拥有一个硬编码ANonce值,这将减少必须搜索的键空间。如果您在哪里蛮力强制偏移,则一次握手会将排列的数量减少到 SNonce 的大小。

虽然很困难,但理论上可以通过流氓 AP 获取 WPA2 密码。

一个人会创建一个具有不同 MAC 的 AP,这样您就不会对自己进行身份验证,而是使用相同的 ESSID

在此 AP 上运行的 Web 服务器与一些iptables规则相结合,会将所有 http 流量重新路由到本地提供的网页,该网页允许用户输入密码。

由于路由器的供应商和型号通常可以使用网络嗅探器(如wireshark)找到,因此可以制作一个相当令人信服的“固件更新”页面

该网页可以POST密码到MySQL数据库

唯一剩下的就是激励连接到一个与他自己的 AP 同名的奇怪开放 AP。使用另一个无线接口,可以对连接到原始 AP 的所有客户端使用deauth 攻击

客户会感到沮丧,并希望恢复他们的互联网,这可能导致他们检查可用网络并看到流氓网络。

它们有很多变数:

  • Rogue AP的信号强度
  • Deauth 能够接触到所有地点的客户。
  • 受害者绝望地检查可用网络并连接
  • 受害者导航到 http 页面
  • 受害者绝望/愚蠢到在网页中输入密码。

但这并非不可能。