Discovered by Mathy Vanhoef early in 2017.
Announced October 16, 2017.
A group of ten independent security flaws in implementations of Wi-Fi communication.
CVE (Common Vulnerabilities and Exposures) numbers CVE-2017-13077 through CVE-2017-13088.
All but one affect Wi-Fi clients.
CVE-2017-13082 only affects the rare access points that implement 802.11r.
block: AES (Advanced Encryption Standard), for instance, takes a key and a 128-bit plaintext and creates a 128-bit block of ciphertext.
Designed in 2004, replacing WEP (Wired Equivalent Privacy, 1997, deprecated 2004 because it was fairly easy to crack.)
S is generated (at both ends) by AES in counter mode:
Both ends agree on a Pairwise Transient Key (PTK: 64B) via EAPoL (Extensible Authentication Protocol Over Local-area network).
The PTK contains a Temporal Encryption Key (TEK: 16B).
The supplicant maintains a sequence number N (16B), starting at 0, incremented after each 128-bit block is used up.
The pad S is the AES encryption of the sequence number using the TEK as the key.
Within a connection, only N keeps changing in the AES input.
The supplicant must never reuse N during the course of a single conversation.
The KRACK attack convinces the supplicant to reset N to 0.
Establish a dialog (four messages, not important here)
The intruder blocks message 4 in the 4-way handshake.
The authenticator resends message 3 after a delay (typically about 1 second).
The supplicant resets N to 0 (bug!), resends message 4 (ACK).
The supplicant continues to send encrypted data messages, but now it is re-using about 1 second of pad, which can cover a great number of messages.
The intruder can repeatedly block message 4, causing multiple resets of the sequence number, leading to multiple messages encrypted with the same pad.
It's not easy to interpose a man in the middle.
The intruder must be in close proximity to both the supplicant and the authenticator.
This fix requires upgraded software on all supplicants (laptops, smartphones, Roku devices, printers, Internet of Things (IoT) devices ...)
The authenticator can mitigate the problem by reacting to a timeout for message 4 differently: send a deauthenticate message to the supplicant, forcing the entire protocol to restart.
For secure communication, don't depend on WPA2. Instead, only connect your browser to sites with HTTPS (HyperText Transfer Protocol: Secure)
A Linux update was released October 16, 2017.
Microsoft released updates October 10, 2017. Microsoft software is harder to attack for technical reasons.
Apple began been rolling out updates around November 1, 2017 for iOS, macOS. Apple software is harder to attack for technical reasons.
Android devices are particularly susceptible. Most have not been updated.
Many devices have no easy way to apply updates.
Your IoT toaster (yes, it exists) is vulnerable. Security is a big problem with the IoT.
Basic tenet of security: Your trust in an algorithm should be proportional to the length of time smart people have unsuccessfully tried to attack it.
Flaws are often found in algorithms or their implementation. Luckily, updates usually fix those flaws.
Users need to balance their need for security with ease of applying technology.
Don't panic.