四次握手破解究竟是如何工作的?

信息安全 wpa2
2021-08-15 11:30:11

据我了解,这就是 WPA2 在家庭网络中的工作方式:

  • PSK(Pre-Shared Key)用于生成PMK(Pairwise Master Key),与ANonce(AP Nonce)一起用于创建PTK(Pairwise Transient Key)。
  • PTK分为KCK(Key Confirmation Key,128位)、KEK(Key Encryption Key,128位)和TEK(Temporal Encryption Key,128位)。
  • KCK 用于在 EAPOL 数据包 2,3 和 4 中构造 MAC。
  • KEK 用于加密一些发送给客户端的数据(例如 GTK)。
  • TEK 用于加密客户端和 AP 之间的流量,稍后在会话期间进行。

现在 WPA 4 次握手:

  1. AP向客户端发送ANonse(AP Nonce),基本上是一个256位的随机整数。
  2. Client 使用 ANonce 和 PMK 生成 PTK(Pairwise Transient Key),并发送 CNonce(Client Nonce)和 MAC。
  3. AP 向客户端发送 MAC 和 GTK(组临时密钥)。
  4. 客户端发送带有 MAC 的 ACK。

现在,如果不使用整个 PTK(在握手期间使用 KCK 和 KEK,但不使用 TEK),握手破解如何工作(例如字典攻击)?我知道字典中的单词被用作 PSK 来生成 PMK 和 Anonce(也在握手中捕获)来生成 PTK,但是当 1/3 的密钥从未使用过时,我怎么知道 PTK 何时正确?

1个回答

简短的回答是,4 次握手密码“破解”通过在第 4 帧检查 MIC 来工作。也就是说,它只检查 PTK 的 KCK 部分是否正确。4 次握手不包含允许检查 PTK 其他部分的数据,但实际上不需要,原因有两个:

  1. MIC 验证是 AP 如何检查 PTK 的有效性(以及因此,密码);
  2. 产生具有有效 KCK 但无效其他部分的密码的 PTK 的机会非常低:KCK 是 128 位,因此错误密码产生正确 KCK 的概率是 2 -128

总体而言,4 路密码“破解”的工作方式如下:

  1. 解析 4 次握手以从第 4 帧获取 SP 和 STA 地址、AP 和 STA 随机数以及 EAPOL 有效负载和 MIC;
  2. 候选密码用于计算 PMK;
  3. PTK 由 PMK、AP 和 STA 地址和 nonce 计算得出;
  4. 来自计算出的 PTK 的 KCK 用于计算在步骤 1 中获得的 EAPOL 有效载荷的 MIC;
  5. 计算的 MIC 与在步骤 1 中获得的 MIC 进行比较。如果它们匹配,则候选密码报告为正确。

如果您想查看攻击的实际实现,可以从coWPAtty资源开始:它们相对较小、独立且易于阅读。