Using WPA/WPA2/WPA3 for authentication and encryption
The original security mechanism of the IEEE 802.11 standard wasn't designed to be strong and has proven to be insufficient for most networks that require some kind of security. Originally, the 802.11 standard defined a Wired Equivalent Privacy (WEP) algorithm for protecting wireless networks. WEP uses RC4 with 40-bit keys, a 24-bit initialization vector (IV), and CRC32 to protect against packet forgery. All these choices have proven to be insufficient:
- The key space is too small to guard against current attacks.
- RC4 key scheduling is insufficient (the beginning of the pseudo-random stream should be skipped).
- The IV space is too small, and IV reuse makes attacks easier.
- There's no replay protection.
- Non-keyed authentication doesn't protect against bit-flipping packet data.
Wi-Fi Protected Access (WPA) is an intermediate solution for these security issues. It uses the Temporal Key Integrity Protocol (TKIP) to replace WEP. TKIP is a compromise on strong security, and can be used with existing hardware. It still uses RC4 for the encryption as WEP does, but with per-packet RC4 keys. In addition, it implements replay protection and a keyed packet-authentication mechanism.
Keys can be managed using two different mechanisms; WPA can use either of the following:
- WPA-Enterprise
- An external authentication server (e.g. RADIUS) and EAP, just as IEEE 802.1X is using.
- WPA-Personal
- Pre-shared keys without the need for additional servers.
Both mechanisms generate a master session key for the Authenticator (AP) and Supplicant (client station).
WPA implements a new key handshake (4-Way Handshake and Group Key Handshake) for generating and exchanging data encryption keys between the Authenticator and Supplicant. This handshake is also used to verify that both Authenticator and Supplicant know the master session key. These handshakes are identical regardless of the selected key management mechanism (only the method for generating master session key changes).
