Abstract:
- We introduce the key reinstallation attack. This attack abuses design
or implementation flaws in cryptographic protocols to reinstall an
already-in-use key. This resets the key’s associated parameters such
as transmit nonces and receive replay counters. Several types of
cryptographic Wi-Fi handshakes are affected by the attack.
- All protected Wi-Fi networks use the 4-way handshake to generate
a fresh session key. So far, this 14-year-old handshake has
remained free from attacks, and is even proven secure. However,
we show that the 4-way handshake is vulnerable to a key reinstallation
attack. Here, the adversary tricks a victim into reinstalling an
already-in-use key. This is achieved by manipulating and replaying
handshake messages. When reinstalling the key, associated parameters
such as the incremental transmit packet number (nonce) and
receive packet number (replay counter) are reset to their initial
value. Our key reinstallation attack also breaks the PeerKey, group
key, and Fast BSS Transition (FT) handshake. The impact depends
on the handshake being attacked, and the data-confidentiality protocol
in use. Simplified, against AES-CCMP an adversary can replay
and decrypt (but not forge) packets. This makes it possible to hijack
TCP streams and inject malicious data into them. Against WPATKIP
and GCMP the impact is catastrophic: packets can be replayed,
decrypted, and forged. Because GCMP uses the same authentication
key in both communication directions, it is especially affected.
- Finally, we confirmed our findings in practice, and found that
every Wi-Fi device is vulnerable to some variant of our attacks.
Notably, our attack is exceptionally devastating against Android 6.0:
it forces the client into using a predictable all-zero encryption key.
Conclusion
- Despite the security proof of both the 4-way and group key handshake,
we showed that they are vulnerable to key reinstallation
attacks. These attacks do not violate the security properties of the
formal proofs, but highlight limitations of the models employed by
them. In particular, the models do not specify when a key should be
installed for usage by the data-confidentiality protocol. Additionally,
we showed that the PeerKey and fast BSS transition handshake
are vulnerable to key reinstallation attacks.
- All Wi-Fi clients we tested were vulnerable to our attack against
the group key handshake. This enables an adversary to replay
broadcast and multicast frames. When the 4-way or fast BSS transition
handshake is attacked, the precise impact depends on the
data-confidentiality protocol being used. In all cases though, it is
possible to decrypt frames and thus hijack TCP connections. This
enables the injection of data into unencrypted HTTP connections.
Moreover, against Android 6.0 our attack triggered the installation
of an all-zero key, completely voiding any security guarantees.
- Rather worryingly, our key reinstallation attack even occurs
spontaneously if certain handshake messages are lost due to background
noise. This means that under certain conditions, implementations
are reusing nonces without an adversary being present.
- An interesting future research direction is to determine whether
other protocol implementations are also vulnerable to key reinstallation
attacks. Protocols that appear particularly vulnerable are
those that must take into account that messages may be lost. After
all, these protocols are explicitly designed to process retransmitted
frames, and are possibly reinstalling keys while doing so.
Product summaries:
Android: Patched in November 6th patch level, per https://threatpost.com/google-patches-krack-vulnerability-in-android/128818/ Apple: Was initially only unofficial, only in betas: http://appleinsider.com/articles/17/10/16/apple-confirms-krack-wi-fi-wpa-2-attack-vector-patched-in-ios-tvos-watchos-macos-betas Now available in iOS 11.1 https://www.macrumors.com/2017/10/31/apple-releases-ios-11-1-with-new-emoji/ Arduino: https://github.com/esp8266/Arduino/releases/tag/2.4.0-rc2 Aruba: (Aruba patch info also has WIPS updates to detect and alert on attempts to exploit) http://www.arubanetworks.com/assets/alert/ARUBA-PSA-2017-007.txt http://community.arubanetworks.com/t5/Wireless-Access/Core-level-protocol-flaw-in-WPA2/td-p/310038 http://community.arubanetworks.com/t5/Technology-Blog/WPA2-Key-Reinstallation-Attacks/ba-p/310045 http://www.arubanetworks.com/assets/alert/ARUBA-PSA-2017-007_FAQ_Rev-1.pdf http://www.arubanetworks.com/support-services/security-bulletins/ Asus (nothing at this writing but should appear here: https://www.asus.com/Static_WebPage/ASUS-Product-Security-Advisory/ Cisco / Meraki: https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20171016-wpa (Note: Meraki fix only addresses 802.11r vuln, not the client-level ones): https://documentation.meraki.com/zGeneral_Administration/Support/802.11r_Vulnerability_(CVE%3A_2017-13082)_FAQ DD-WRT - patched, but patched version not yet released https://www.dd-wrt.com/phpBB2/viewtopic.php?t=311679 Debian: http://seclists.org/bugtraq/2017/Oct/25 Jessie: fixed in version 2.3-1+deb8u5. Stretch: fixed in version 2:2.4-1+deb9u1. https://www.debian.org/security/2017/dsa-3999 Expressif: http://espressif.com/en/media_overview/news/espressif-releases-patches-wifi-vulnerabilities-cert-vu228519 Fedora - updates available in testing https://www.reddit.com/r/KRaCK/comments/76rbf6/fedora_updates/ FreeBSD: Patched: https://www.freebsd.org/security/advisories/FreeBSD-SA-17:07.wpa.asc Discussion https://lists.freebsd.org/pipermail/freebsd-current/2017-October/067193.html VuXML https://www.vuxml.org/freebsd/d670a953-b2a1-11e7-a633-009c02a2ab30.html FortiNet: http://docs.fortinet.com/uploaded/files/3961/fortiap-v5.6.1-release-notes.pdf Intel https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00101&languageid=en-fr Juniper https://kb.juniper.net/InfoCenter/index?page=content&id=JSA10827 Microsoft (released Oct 10 as part of Patch Tuesday): https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-13080 MikroTik (patches published previous week?) https://forum.mikrotik.com/viewtopic.php?f=21&t=126695 NETGEAR: https://kb.netgear.com/000049498/Security-Advisory-for-WPA-2-Vulnerabilities-PSV-2017-2826-PSV-2017-2836-PSV-2017-2837 OpenBSD - fixed (ahead of the embargo, so they will be notified later in the embargo cycle next time?): https://marc.info/?l=openbsd-announce&m=150410604407872&w=2 https://mastodon.social/@stsp/98837563531323569 pfSense - wpa_supplicant and hostapd vulnerable Fix committed to source tree https://redmine.pfsense.org/issues/7951 Fix available in OS snapshots, not yet released to release https://twitter.com/pfsense/status/920287612262371329 https://snapshots.pfsense.org/ Red Hat https://access.redhat.com/security/cve/cve-2017-13087 SonicWall https://www.sonicwall.com/en-us/support/product-notification/wpa2-krack-exploit-a-sonicwall-alert Sophos - affected, fixed TBD: https://community.sophos.com/kb/en-us/127658 SUSE - affected https://bugzilla.suse.com/show_bug.cgi?id=1063479 Synology: https://www.synology.com/en-us/support/security/Synology_SA_17_60_KRACK TP-LINK (in progress): Official statement, with list of affected/unaffected devices: http://www.tp-link.com/us/faq-1970.html Forum link: http://forum.tp-link.com/showthread.php?101094-Security-Flaws-Severe-flaws-called-quot-KRACK-quot-are-discovered-in-the-WPA2-protocol Ubiquiti - affected, some patches available: https://community.ubnt.com/t5/UniFi-Updates-Blog/FIRMWARE-3-9-3-7537-for-UAP-USW-has-been-released/ba-p/2099365 (per NANOG post:) Unconfirmed: patched in UniFi firmware release 3.9.3 (see forums or /r/ubiquiti. 3.8.15 for Broadcom based APs like the first gen UAP-AC and ACv2 should be soon from what I read. Ubuntu: https://usn.ubuntu.com/usn/usn-3455-1/ wpa_supplicant - affected, patched upstream: https://w1.fi/cgit/hostap/commit/ Zyxel (roadmap, some fixes not expected until Feb 2018!) http://www.zyxel.com/support/announcement_wpa2_key_management.shtml
CVE-2017-13077: Reinstallation of the pairwise encryption key (PTK-TK) in the 4-way handshake CVE-2017-13078: Reinstallation of the group key (GTK) in the 4-way handshake CVE-2017-13079: Reinstallation of the integrity group key (IGTK) in the 4-way handshake CVE-2017-13080: Reinstallation of the group key (GTK) in the group key handshake CVE-2017-13081: Reinstallation of the integrity group key (IGTK) in the group key handshake CVE-2017-13082: Accepting a retransmitted Fast BSS Transition (FT) Reassociation Request and reinstalling the pairwise encryption key (PTK-TK) while processing it CVE-2017-13084: Reinstallation of the STK key in the PeerKey handshake CVE-2017-13086: reinstallation of the Tunneled Direct-Link Setup (TDLS) PeerKey (TPK) key in the TDLS handshake CVE-2017-13087: reinstallation of the group key (GTK) when processing a Wireless Network Management (WNM) Sleep Mode Response frame CVE-2017-13088: reinstallation of the integrity group key (IGTK) when processing a Wireless Network Management (WNM) Sleep Mode Response frame
Return to The Story So Far (list of notable security events)