El investigador Mathy Vanhoef de la Universidad KU de Leuven ha descubierto una manera de vulnerar el protocolo WPA2 de la redes Wifi (IEEE 802.11i), el más extendido y seguro por defecto, que puede derivar en el descifrado, duplicación e inyección de paquetes, el secuestro de conexiones TCP y/o la inyección de contenido HTTP en la red wifi sin necesidad de conocer la contraseña de la misma.
Dicho fallo de seguridad ha sido bautizado como KRACK (Key Reinstallation Attack) por el tipo de ataques realizados contra las redes WPA2.
Las vulnerabilidades descubiertas se encuentran en la etapa del Handshake de la Wifi, cuyos objetivos son el descubrimiento de red, la autenticación mutua entre cliente y router o punto de acceso (AP) y la negociación de las keys de sesión, y la selección de la suite y el algoritmo de cifrado de los data frames. Durante este proceso de intercambio de claves es posible lograr que los clientes reinstalen una clave ya intercambiada, que debería ser de un solo uso, permitiendo así reiniciar los parámetros asociados a la conexión, y esto se consigue forzando el reenvío de ciertos paquetes del Handshake por parte del AP. Los ataques se producen debido a la reutilización de la misma clave con valores «Nonce» utilizados previamente en las comunicaciones entre cliente y AP, y de esta forma mensajes con contenidos conocidos son reenviados y se podrían descifrar al utilizar la misma clave.
Todas las redes Wifi WPA2 utilizan estos handshake por lo que todas están afectadas.
En este enlace se encuentra la presentación del mismo autor en la pasada Asia CCS sobre vulnerabilidades en el 4-way Handshake en Wifi WPA2 descubiertas con anterioridad y que han acabado llevando a KRACK: http://papers.mathyvanhoef.com/asiaccs2017-slides.pdf
La investigación sobre KRACK será presentada oficialmente este otoño en las conferencias Computer and Communications Security (CCS) y Black Hat Europe, aunque todo su trabajo se encuentra explicado en la siguiente página web:
Impacto
– 4-way Handshake
– Fast BSS Transition (FT) handshake
– Group Key Handshake.
Además se especifica en que dirección (del cliente al router/AP, o viceversa) los frames son duplicados, descifrados o creados/inyectados.
Resumiendo sobre lo que se puede lograr mediante ataques KRACK y lo que no:
Tipos de ataques KRACK:
– Descifrado de paquetes
– Duplicado de tramas Broadcast y Multicast
– Secuestro de conexiones TCP al averiguar los números de secuencia TCP de una conexión
– Descifrado e inyección de paquetes TKIP o GCMP
– Inyección de contenido HTTP al setear una clave de cifrado all-zero en Android 6.0 y Linux (en otros clientes la dificultad del proceso es mayor)
Lo que no se puede realizar con KRACK:
– Averiguar la contraseña de la Wifi WPA
– Inyectar paquetes AES-CCMP
Cifrados WPA y WPA2 del estándard IEEE 802.11i |
De acuerdo con los test realizados por el autor, los dispositivos más afectados son los que utilizan sistemas operativos Android 6 o superior y Linux (con la librería wpa_supplicant) ya que es posible resetear una de las claves intercambiadas en el Handshake. Por otro lado ciertas versiones de iOS y Windows 7/10 poseen implementaciones propias del protocolo del IEEE que no permiten la retransmisión de ciertos paquetes, y de momento no están afectadas aunque podrían descubrirse métodos para explotar KRACK en ellos.
Mayor profundidad y detalles técnicos se pueden encontrar en los papers oficiales y los enlaces que se encuentran al final del artículo.
Explotación
¿Solución?
Como el propia autor ha señalado, las vulnerabilidades se encuentran en la propia definición del protocolo del IEEE 802.11i y algunos señalan al propia organismo IEEE como culpable por el oscurantismo en el desarrollo de los standards, pero el protocolo puede ser parcheado aunque requiere que los fabricantes desarrollen sus propias implementaciones.e acuerdo con Google las últimas actualizaciones que datan de Agosto ya contenían los parches, aunque falta la aplicación por parte de fabricantes en sus respectivos sistemas.
Apple ha confirmado hoy mismo que ya existen los parches para las nuevas versiones betas de iOS, tvOS, watchOS y macOS.
Los parches para Hostapd y wpa_supplicant en Linux ya están disponibles en https://w1.fi/security/2017-1/.
Previsiblemente el resto de fabricantes irán publicando la implementación del parche para WPA2 en sus dispositivos, cuyo seguimiento se puede hacer en esta web: https://github.com/kristate/krackinfo
La pregunta que queda plantearse es: