Hello, everyone.
From what I understand (let’s stay at WPA Personal for simplicity). The PSK is fed into a function that creates a 256-bit PMK. This PMK together with MAC addresses and nonces is then used to derive the PTK that is then used for the actual encryption and integrity of data.
Considering that you use nonces and MAC addreses in the equation, the resulting key for encryption/decryption will be different for each client.
However, this comes with a flaw. If I was to know what the PSK is and generate a PMK, I could use the PMK and capture someone’s 4-way handshake (to find out the nonces and MAC addresses) and just decrypt their traffic.
This is pretty much solved with WPA Enterprise which is also why it’s the recommended solution for enterprises?
Correct me if I am wrong here but the AAA server will generate an MSK from the provided credentials, then derive the PMK and send it to the AP and the client.
Since each client’s credentials (username/password or maybe even a digital cert) are unique, that means that the resulting PMK will also be unique, right?
Also, how exactly does the PTK protect the 4-way handshake when it isn’t known before it? It’s derived during the 4-way handshake.
Thank you.
David