3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-10-06 03:18:46 +02:00
iwd/src
Mathy Vanhoef f22ba5aebb eapol: prevent key reinstallation on retransmitted Msg4/4
Currently an adversary can retransmit EAPOL Msg4/4 to make the AP
reinstall the PTK. Against older Linux kernels this can subsequently
be used to decrypt, replay, and possibly decrypt frames. See the
KRACK attacks research at krackattacks.com for attack scenarios.
In this case no machine-in-the-middle position is needed to trigger
the key reinstallation.

Fix this by using the ptk_complete boolean to track when the 4-way
handshake has completed (similar to its usage for clients). When
receiving a retransmitted Msg4/4 accept this frame but do not reinstall
the PTK.

Credits to Chris M. Stone, Sam Thomas, and Tom Chothia of Birmingham
University to help discover this issue.
2020-08-12 09:51:20 -05:00
..
80-iwd.link build: Move 50-iwd.link up to 80-iwd.link for less confusion 2019-10-25 01:08:56 +02:00
adhoc.c adhoc: Set linkmode & operstate for open networks 2020-04-08 12:35:04 -05:00
agent.c agent: Don't remove object at IWD_AGENT_MANAGER_PATH 2020-07-16 10:44:40 -05:00
agent.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
anqp.c anqp: refactor to use frame-xchg 2020-07-09 09:58:21 -05:00
anqp.h anqp: refactor to use frame-xchg 2020-07-09 09:58:21 -05:00
anqputil.c treewide: fix typos 2020-01-21 16:03:28 -06:00
anqputil.h anqp: move ANQP parsers into anqputil 2019-07-15 14:53:44 -05:00
ap.c ap: Add authorized_macs parameter 2020-08-04 10:41:45 -05:00
ap.h ap: Add authorized_macs parameter 2020-08-04 10:41:45 -05:00
auth-proto.h auth-proto: introduce auth-proto concept 2019-05-03 13:53:50 -05:00
backtrace.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
backtrace.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
blacklist.c module: Move declarations into separate header file 2019-11-07 23:40:13 +01:00
blacklist.h blacklist: Convert to use IWD_MODULE 2019-05-22 09:58:04 -05:00
common.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
common.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
crypto.c crypto: incorporate C implementation of ARC4 2020-08-03 16:28:24 -05:00
crypto.h crypto: Add support for PRF+ SHA1 2019-12-09 01:47:11 -06:00
dbus.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
dbus.h p2p: Add the p2p.Display interface on WFD-capable peers 2020-07-16 10:47:03 -05:00
device.c device: Fix init return type 2020-04-17 12:22:47 -05:00
eap-aka.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eap-gtc.c eap-gtc: limit password length to maximum 2020-03-06 13:08:05 -06:00
eap-md5.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eap-mschapv2.c treewide: fix typos 2020-01-21 16:03:28 -06:00
eap-mschapv2.h cleanup: Remove extra empty lines 2020-03-17 15:35:22 -05:00
eap-peap.c peap: Fail auth. if invalid compound MAC is received 2020-02-06 15:18:04 -06:00
eap-private.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eap-pwd.c cleanup: Remove extra empty lines 2020-03-17 15:35:22 -05:00
eap-sim.c treewide: fix typos 2020-01-21 16:03:28 -06:00
eap-tls-common.c eap-tls: Print a hint about IWD_TLS_DEBUG on TLS errors 2020-03-20 10:23:30 -05:00
eap-tls-common.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eap-tls.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eap-ttls.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eap-wsc.c eap-wsc: Convert memsets to explicit_bzero 2020-04-06 16:21:35 -05:00
eap-wsc.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eap.c eap: check MTU when loading identity 2020-03-06 12:17:09 -06:00
eap.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eapol.c eapol: prevent key reinstallation on retransmitted Msg4/4 2020-08-12 09:51:20 -05:00
eapol.h eapol: Drop unused eapol_sm_set_event_func 2019-10-30 14:34:20 -05:00
eapolutil.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eapolutil.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
erp.c iwd: remove unnecessary semicolons 2020-04-08 21:02:15 -05:00
erp.h erp: Convert to using IWD_MODULE 2019-05-19 13:07:13 -05:00
fils.c fils: include RSNE in authenticate 2020-05-02 20:56:13 -05:00
fils.h fils: netdev: update to use auth_proto concepts 2019-05-03 14:37:11 -05:00
frame-xchg.c frame-xchg: Re-add frame_xchg_stop 2020-07-31 10:38:59 -05:00
frame-xchg.h frame-xchg: Re-add frame_xchg_stop 2020-07-31 10:38:59 -05:00
ft.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
ft.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
genbuiltin make: plugin system for build 2017-11-28 13:20:33 -06:00
handshake.c handshake: Change signature of (i)gtk setters 2020-04-02 00:41:02 -05:00
handshake.h handshake: Change signature of (i)gtk setters 2020-04-02 00:41:02 -05:00
hotspot.c knownneetworks: React to mtime updates 2020-01-27 14:28:08 -06:00
ie.c iwd: remove unnecessary semicolons 2020-04-08 21:02:15 -05:00
ie.h ie: Add ie_tlv_extract_wfd_payload 2020-03-20 10:21:04 -05:00
iwd-dbus.conf tools: Add configure option and D-Bus policy file for hwsim utility 2018-09-14 15:24:15 +02:00
iwd.config.rst doc: document AddressRandomization=network option 2020-03-18 13:10:41 -05:00
iwd.debug.rst man iwd.debug: Document IWD_GENL_DEBUG 2020-07-13 14:14:41 -05:00
iwd.h main: Add iwd_get_rtnl 2020-04-08 12:27:57 -05:00
iwd.network.rst doc: document AlwaysRandomizeAddress and AddressOverride 2020-03-18 18:15:16 -05:00
iwd.rst doc: Add manual page for debugging information 2019-11-05 22:14:09 +01:00
iwd.service.in build: Add StateDirectoryMode=0700 option to systemd service 2019-09-09 06:55:22 +02:00
knownnetworks.c knownneetworks: React to mtime updates 2020-01-27 14:28:08 -06:00
knownnetworks.h knownneetworks: React to mtime updates 2020-01-27 14:28:08 -06:00
main.c crypto: incorporate C implementation of ARC4 2020-08-03 16:28:24 -05:00
manager.c manager: move debug print in dump callback 2020-05-01 19:54:37 -05:00
missing.h build: Support missing rawmemchr 2020-02-03 11:54:28 -06:00
module.c module: Declare functions as foo(void) instead of just foo() 2019-11-24 19:44:06 +01:00
module.h module: add void to empty argument functions 2020-04-08 21:03:13 -05:00
mpdu.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
mpdu.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
mschaputil.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
mschaputil.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
net.connman.iwd.service net.connman.iwd.service: Change SystemdService name to iwd.service 2018-08-09 10:45:16 -05:00
netconfig.c netconfig: Implement netconfig_get_dhcp_server_ipv4 2020-07-13 14:52:02 -05:00
netconfig.h netconfig: Implement netconfig_get_dhcp_server_ipv4 2020-07-13 14:52:02 -05:00
netdev.c netdev: use wiphy radio work queue for connections 2020-07-15 17:10:36 -05:00
netdev.h treewide: fix typos 2020-01-21 16:03:28 -06:00
network.c station: Give network a connection failed hint 2020-06-12 15:21:39 -05:00
network.h station: Give network a connection failed hint 2020-06-12 15:21:39 -05:00
nl80211cmd.c nl80211cmd: Add additional commands 2019-08-15 15:06:59 -05:00
nl80211cmd.h nl80211cmd: Introduce new utility 2019-07-15 14:06:26 -05:00
nl80211util.c nl80211util: Parse NL80211_ATTR_REG_ALPHA2 attrs 2020-04-24 11:38:44 -05:00
nl80211util.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
owe.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
owe.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
p2p.c p2p: Use a longer DHCP timeout 2020-07-31 10:38:59 -05:00
p2p.h Add minimal p2p.c and p2p.h 2020-04-10 06:31:19 -05:00
p2putil.c p2putil: Add WFD IEs when building P2P Action frames 2020-07-13 14:18:09 -05:00
p2putil.h p2putil: Extract WFD IE payloads from P2P Action frames 2020-07-13 14:16:09 -05:00
pkcs8.conf build: Provide modules-load.d for loading pkcs8_key_parser module 2019-01-23 18:22:11 +01:00
plugin.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
plugin.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
resolve.c resolve: Fix invalid method name check 2019-12-17 16:58:04 -06:00
resolve.h resolve: Add systemd-resolved domain name installer 2019-12-11 00:57:35 -06:00
rfkill.c module: Move declarations into separate header file 2019-11-07 23:40:13 +01:00
rfkill.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
rrm.c rrm: Switch to new frame watch API 2020-01-16 11:37:57 -06:00
sae.c sae: Fix a side channel leak on the password 2020-08-03 16:12:50 -05:00
sae.h cleanup: Remove extra empty lines 2020-03-17 15:35:22 -05:00
scan.c scan: Always allocate results->bss_list 2020-08-04 10:30:07 -05:00
scan.h scan: Extract WFD IE payload into struct bss 2020-07-13 14:15:42 -05:00
simauth.c module: Move declarations into separate header file 2019-11-07 23:40:13 +01:00
simauth.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
simutil.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
simutil.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
station.c station: Comment/whitespace fix 2020-07-31 10:38:59 -05:00
station.h station: add ANQP state watch API 2020-06-12 14:58:56 -05:00
storage.c storage: Refactor dirs creation logic to cleanup on failure 2020-04-08 16:18:04 -05:00
storage.h storage: Add ability to preserve times 2020-01-22 11:15:19 -06:00
util.c util: add util_is_valid_sta_address 2020-03-18 18:15:16 -05:00
util.h sae: Fix a side channel leak on the password 2020-08-03 16:12:50 -05:00
watchlist.c watchlist: Allow watch CBs to call watchlist_destroy 2020-03-18 13:49:22 -05:00
watchlist.h watchlist: Save the watchlist pointer in WATCHLIST_NOTIFY_* 2020-05-01 11:38:57 -05:00
wiphy.c wiphy: introduce new radio management APIs 2020-07-09 09:57:13 -05:00
wiphy.h wiphy: introduce new radio management APIs 2020-07-09 09:57:13 -05:00
wsc.c iwd: remove unnecessary semicolons 2020-04-08 21:02:15 -05:00
wsc.h wsc: Rework wsc_enrollee_destroy 2020-01-17 12:50:23 -06:00
wscutil.c wscutil: Fix dbus string using spaces 2020-04-23 14:50:33 -05:00
wscutil.h wscutil: Add device type category/subcategory string api 2020-04-23 14:41:17 -05:00