我一直在研究WPS PIN的暴力攻击,我知道因为最后一位是校验位,并且PIN在M4和M6消息中分为两半,可以暴力破解WPS PIN 11.000 次尝试。
不过,我最近听说了 Pixie 对 WPS 的攻击,它说它利用了某些路由器的低熵。Pixie 攻击究竟是什么,它如何影响 WPS?还有一个问题,如何从暴力破解的 WPS PIN 中找到 WPA 密钥?
我一直在研究WPS PIN的暴力攻击,我知道因为最后一位是校验位,并且PIN在M4和M6消息中分为两半,可以暴力破解WPS PIN 11.000 次尝试。
不过,我最近听说了 Pixie 对 WPS 的攻击,它说它利用了某些路由器的低熵。Pixie 攻击究竟是什么,它如何影响 WPS?还有一个问题,如何从暴力破解的 WPS PIN 中找到 WPA 密钥?
Pixie 通过利用 E-S1 和 E-S2 随机数生成中的弱点来工作,这些随机数用于生成登记者哈希,如Pixie Dust Attack中所述。
传统攻击在在线攻击中攻击 WPS PIN 的两半(PSK1、PSK2),本质上是暴力破解 PIN 的所有可能选项,直到找到为止。这必须针对目标在线完成,因此需要很长时间。
WPS 交换涉及计算两个散列(E-Hash1,E-Hash2),这两个散列派生自两个随机数(E-S1,E-S2),登记者和注册者的公钥(PKE,PKR),authkey(a密钥导出密钥/KDK) 和两半 WPS PIN (PSK1, PSK2)。攻击者知道 PKE、PKR、E-Hash1 和 E-Hash2 的值,因为路由器会给您它们(或者您将它们作为客户端提供)并且您需要找到 E-S1、E 的正确组合-S2、PSK1 和 PSK2 以使哈希脱机。
破解 PSK1 和 PSK2 部分相对容易;PSK1 只有 10,000 个可能的值,PSK2 有 1,000 个可能的值(最后一个数字是校验和),并且每个散列都是独立的,因此您只需要计算 11,000 个散列。这在现代系统上不需要太多时间。
但是,问题是您需要知道两个 nonce 值 E-S1 和 E-S2。这使得离线暴力破解方法站不住脚,因为这些是 128 位值。
Pixie Dust Attack 的症结在于 E-S1 和 E-S2 随机数不是在许多路由器中安全生成的。例如,众所周知,MediaTek 路由器对这两个值都使用零。在一些 Broadcom 路由器中,使用的 PRNG 是弱的(可能是 LFSR 或类似 Mersenne Twister 的东西),它也用于生成 PKE。通过猜测可能的 PRNG 种子值,直到找到一个生成与路由器给出的 PKE 相同的值,然后您可以轻松生成 E-S1 和 E-S2 值。Realtek 路由器使用 Unix 时间戳(以秒为单位)来生成 PKE、E-S1 和 E-S2 值,但由于生成速度很快,通常情况下 E-S1 = E-S2 = PKE(或 E-S1 = E -S2 = PKE+1 在它确实超过第二个边界的情况下)并且由于我们知道 PKE,我们现在知道 E-S1 和 E-S2。
这就是 Pixie 攻击如此之快的原因。它不是针对实时路由器尝试 11,000 个可能的 PIN(这很慢并且可能导致路由器阻止您),而是捕获 WPS 哈希值并离线破解它们,利用随机数生成中的弱点,因此它只需要尝试 11,000 个 PIN 值针对每个可能的猜测 E-S1 和 E-S2 值对。