Machine-on-the-Side (WPA2-PSK passphrase derive)
Machine-on-the-Side
Layer: Wi-Fi encryption · Section: NDSS’26 §IV-A · Mode: WPA2-PSK only
What it is
A pre-existing, well-known result, included in the AirSnitch attack catalogue for completeness. With WPA2-PSK, the PMK is derived purely from the passphrase and the SSID, and is therefore identical for every client on the network. Any insider who knows the passphrase can:
- Sniff a target client’s 4-way handshake (the four EAPOL frames carry ANonce, SNonce, MAC addresses, and a MIC).
- Compute that client’s PTK =
PRF(PMK, ANonce || SNonce || AP MAC || STA MAC). - Decrypt and inject that client’s unicast traffic, off-AP, over the air.
Robert Moskowitz first wrote this up in 2003 (“Weakness in Passphrase Choice in WPA Interface”). The AirSnitch paper revisits it in §IV-A to make explicit that it trivially bypasses client isolation — the AP never sees the attacker’s traffic at all.
Capturing the handshake
If the victim is already associated when the attacker arrives, the attacker spoofs a deauthentication frame (no MFP → unauthenticated, accepted) to force the victim to redo the 4-way handshake. The four EAPOL frames go over the air in the clear; the attacker captures them, computes the PTK.
If MFP is on, deauth is authenticated and can’t be spoofed. The attacker waits for a natural disconnect or uses a channel-switch beacon trick (NDSS’26 §IV-A, citing Vanhoef & Pöpper 2020).
Why this is “machine-on-the-side”
A “machine-in-the-middle” sits in the data path. A “machine-on-the-side” doesn’t — it observes traffic over the air and injects forged traffic into it, without ever being a forwarding hop. With WPA2-PSK and a derived PTK, the attacker can do both observation and injection without needing the AP’s cooperation.
What this defeats
- WPA2-Personal client isolation, full stop. The AP can refuse to forward client-to-client traffic; it doesn’t matter. The attacker is a peer of the AP for that victim’s PTK.
- Any L2/L3 isolation that depends on the AP being in the data path. The attacker bypasses the AP.
What this does not defeat
- WPA2-Enterprise (per-user PMK).
- WPA3-SAE (Dragonfly-derived PMK with forward secrecy — passive sniffing yields nothing useful).
- WPA3-Enterprise.
- WPA3-PK.
So the trivial fix is don’t use WPA2-PSK if you care about client isolation. The AirSnitch authors’ framing: client isolation in any shared-passphrase network is “fundamentally flawed” (NDSS’26 §IV-A header).
CLI
There is no AirSnitch test for this directly — the technique predates AirSnitch and is publicly available in tools like aircrack-ng. The paper notes this in §IV-A: “it is well-known that a Machine-on-the-Side attacker who possesses the WPA2 passphrase can intercept handshake messages”.
For verification on your own network, the standard recipe is:
airodump-ngthe target BSSID, write a pcap.aireplay-ng --deauththe victim if you don’t see a handshake quickly.aircrack-ng -p <passphrase> -e <SSID> capture.pcapto derive the victim’s PTK.tshark/Scapy to decrypt unicast frames using the PTK.
What stops it
- Move off WPA2-PSK. WPA3-SAE (Personal mode) is the simplest upgrade that preserves the “shared passphrase” UX; per-device PSK / PPSK is a stronger alternative.
- WPA-Enterprise eliminates the shared-PMK problem entirely.
- Client isolation does not stop this attack. Important to flag in vendor documentation, per NDSS’26 §VIII-D (“When enabling client isolation in an open network, or a network with a shared WPA password, give a warning that this provides no security benefit.”).
See also
- WPA versions — which modes are vulnerable.
- Rogue AP — the WPA3 cousin (shared passphrase, different exploitation path).
- Documentation defence
