spinner

¿Qué ha pasado desde la publicación de WPA3?

Un año después de la publicación de WPA3 y de su posterior fallo de seguridad, analizamos y probamos las mejoras de seguridad que ha llevado a cabo Wifi Alliance.

Teniendo un interés como el tuyo sobre la tecnología, y estando presente en casi cualquier sitio al que vayas alguna red WiFi, seguro que te ha llegado algún comentario, newsletter o información sobre que se ha roto la seguridad de WPA3 recientemente y más de una vez.

Además, echando la vista atrás, a priori parece un poco ridículo esperar más de una década desde que se anunció el inicio del desarrollo de WPA3 para que, una vez que nos llega, resulte ser un estándar de seguridad WiFi que, contrariamente a las expectativas con respecto al problema que viene a solucionar, revela vulnerabilidades según se hace pública su especificación, ¿no? Pues debo decirte que hay unos cuantos matices a esa cuestión.

Si bien es cierto que los ataques existen, consisten en downgrades, denegación de servicio o escucha en side-channel, es decir, algo que “puentea” la seguridad del protocolo, y no explotan una vulnerabilidad en sí mismo (de las que de momento no hemos sabido de su existencia), sino que los ataques radican en inevitables efectos del cálculo computacional, hardware que lo soporta, o las mal llamadas “fases de convivencia” entre versiones demasiado recientes y versiones demasiado antiguas.

Y también hay unos cuantos matices a estas afirmaciones.

Sin entrar en los ataques Dragonblood a WPA3, sobre lo que podéis encontrar abundante información en las referencias, sí que me gustaría hablar (después de introducir brevemente las novedades) de la penetración en mercado y en la repercusión al usuario final de este estándar desde su liberación entre abril-junio del 2018.

En definitiva, ¿qué ha pasado desde la publicación de WPA3 a este respecto?

Los estándares, o a qué he esperado más de una década

WPA3 se publica hace un año sin duda apresurado por la difusión de los ataques KRACK. El consecutivo comunicado de prensa correspondiente por parte de la WiFi Alliance no hablaba de una única mejora de seguridad, sino de cuatro:

– Un handshake inicial más seguro. Lo llaman «Autenticación simultánea entre iguales» (SAE) y es el ya famoso (a su pesar) algoritmo Dragonfly. Elimina los ataques KRACK y la posibilidad de crackear la contraseña mediante la captura de los cuatro paquetes del handshake inicial de WPA2. Aquellos que tan obsequiosamente Wireshark nos señala casi con luces de neón:

Casi una invitación a crackear

Una vez capturados puedo dedicarme a crackearlos offline con un diccionario, residiendo así la seguridad no en el protocolo en sí, sino en la fortaleza de la propia contraseña de la red. Algo que rabiosamente se quería evitar.

SAE actúa como un PAKE (Password authentication key exchange, que no deja de ser un intercambiador seguro de claves) que deriva la clave a partir de otra generada en cada extremo mediante Diffie-Hellman para un momento determinado en el tiempo. Si pasado un rato salgo de la red y me quiero volver a asociar a ella, todas las claves (las derivadas y las del handshake) serán diferentes. La ventana de tiempo en la que me pueden seguir sirviendo esas claves es tan nimia que el riesgo de reinyección es prácticamente despreciable. Esto mitiga ataques de DeAuth y fuerza a que el crackeo de contraseñas tenga que ser online y no offline, por fuerza bruta, algo infinitamente más ruidoso, detectable y evitable.

*Más información sobre SAE/Dragonfly y sobre ataques dirigidos a él (Dragonblood) en las referencias y los enlaces.

– Aumenta la longitud de claves de la suite de algoritmos criptográficos. Se pasa de 128 bits a 192 en lo que refiere al cifrado efectivo de datos. Bajando a nivel puramente criptográfico en el código, la longitud de la clave de los algoritmos es el doble. Se usará AES-GCM con 256 bits, curvas elípticas de 384 bits y funciones hash SHA384, de la familia SHA2 (libre de colisiones intencionadas y usado en BitCoin). Este aumento viene por petición de las agencias gubernamentales de seguridad americanas.

Lamentablemente esto sólo se aplica a la parte de WPA3-Enterprise, dejando en manos de los fabricantes la posibilidad de implementarlo en los APs caseros para WPA3-Personal. Sólo por sencillez, puedes imaginar lo que han hecho la mayoría de los fabricantes de dispositivos para WPA3-Personal.

– Mejora las redes abiertas mediante OWE (Opportunistic Wireless Encryption), que viene a ofrecer cifrado para redes sin autenticación. La red va a ir generando claves aleatorias cada cierto tiempo, que ofrecerá a los clientes de modo transparente y derivándolas en cada extremo (de nuevo otro Diffie-Hellman) de modo que no se puedan esnifar en el momento de la creación y asignación para leer el tráfico después. Se trata de un sistema de seguridad Best-effort, es decir, hago lo que puedo para darte la mejor seguridad que está en mi mano, si a pesar de todo te hackean ya es por una mala acción del usuario.

Trama beacon anunciando una red abierta con OWE

Una idea muy adecuada sin duda, de no ser porque el cliente tiene que soportar también WPA3 (en algunos casos también multicast por IPv6) y si no lo hace existe una terrible “fase de convivencia” donde al cliente tecnológicamente antiguo se le ofrece una red oculta más acorde a sus posibilidades tras fallar la asociación inicial. Conclusión: Se acaba en una red de seguridad un tanto inferior y además se deja al cliente expuesto a los ataques de revelación de redes favoritas.

Red WiFi oculta para un cliente que no soporta WP· al completo

El estándar indica por el momento que las redes abiertas con OWE deben seguir anunciándose sin el candado.

– Se ofrece un mecanismo más seguro de conexión automática a redes, Wi-Fi Easy Connect, que sustituye al vulnerable WPS. Si bien es cierto que Easy Connect relega el Reaver al museo de aplicaciones de Kali que estuvieron en el candelero, la realidad es un poco más dolorosa, ya que a día de hoy hay muy pocos productos que lo soporten. ¿Cuántos son pocos? La respuesta en la imagen, frente a las decenas de miles que todavía soportan y se venden con WPS.

Pues sí, solamente dos

Easy Connect utiliza un protocolo llamado DPP (Device Provisioning Protocol) que sí que amplía las posibilidades de asociación al usuario final, ya que permite asociarse a una red inalámbrica mediante un código QR o una contraseña, y también a través de canales radio como NFC o Bluetooth. Está pensado para abarcar hasta dispositivos IoT y usa por debajo otro protocolo de intercambio seguro de claves (PKEX) que establece una conexión autenticada temporal a través de la cual intercambiar todas las variables usadas para derivar claves (una vez más, otra variación de un Diffie-Hellman) para la asociación definitiva a la red.

Algunas cosas suenan bien, pero hay algo más ¿no?

Y hasta aquí lo que dice el comunicado de prensa (añadiendo algunas conclusiones personales adicionales), sin embargo hay algo muy importante que a mí me parece que se pasa un poco por alto, y es que WPA3 hace oficialmente obsoleto WEP (tras muchos años de vulnerabilidad) y TKIP (que era temporal, de ahí la primera T), a la vez que añade la tan esperada novedad de proteger las tramas de gestión. Si bien es cierto que esto último también estaba soportado, pero de modo opcional (y ya deberíamos estar escarmentados del significado de “opcional” en seguridad) en WPA2 a partir del estándar 802.11ac.

En el mundo de las redes WiFi hay tres tipos de tramas que se transmiten:

  • Datos: las únicas que, hasta ahora, los protocolos se molestaban en cifrar.
  • Control: tramas de control para la gestión del medio de transmisión.
  • Gestión: usadas para establecer las asociaciones, iniciar procesos de autenticación, desautenticación, etc. Y que por fin alguien se ha decidido a que deberían ser protegidas igual que las de datos.

Es precisamente mediante la Protección de las Tramas de Gestión (PMF) como aseguro a los clientes de las redes WPA3 de los infames ataques de desautenticación. El paquete DeAuth (parámetro -0 en aireplay-ng) es un paquete de gestión, que en el mundo WPA3, si no llega al AP o a los clientes WPA3 correctamente protegido y firmado por las claves de la red, no se procesa.

Ahora bien, hay un matiz, porque no todo iba a ser así de ideal, y es que la posibilidad de usar la PMF (también MFP en alguna bibliografía) se configura en el AP de la red y es obligatorio para WPA3-Enterprise y no tan obligatorio para WPA3-Personal. Lo puedo ver en las tramas Beacon que emite el AP de la red, en los parámetros etiquetados (Tagged Parameters) dentro de las posibilidades de seguridad robusta de la red (RSN Capabilities) de la siguiente manera:

Hay un bit que me indica Management Frame Protection Required y otro Management Frame Protection Capable. Si la primera está a 0 y la segunda a 1 estamos en las mismas, podría seguir ignorando la seguridad que ofrece WPA3. Todo por el bien de la retrocompatibilidad de los clientes más antiguos, y de estos pasamos a hablar ahora.

Vale. tiene buena pinta. ¿Y si lo probamos?

Como la mejor forma de probar esto es mancharse las manos, vamos a levantar un AP con la aplicación hostapd en Linux y para ello creo un fichero de configuración hostapd.conf con el siguiente contenido:

interface=wlan0

    driver=nl80211

    ssid=WLAN_KOLDO

    channel=6

    hw_mode=g

    wpa=2                    # Siempre 2, incluso en WPA3

    wpa_key_mgmt=SAE         # Para WPA2 de verdad diría WPA-PSK 

    wpa_passphrase=prueba

    wpa_pairwise=CCMP

    rsn_pairwise=CCMP

    ieee80211w=2             # PMF: 0 es nada, 1 opcional, 2 requerido

    group_mgmt_cipher=AES-128-CMAC

    # group_mgmt_cipher=BIP-GMAC-128

    # group_mgmt_cipher=BIP-CMAC-128

Las tres últimas directivas me indican la suite de protocolos de cifrado que puedo utilizar. Voy a ir haciendo pruebas a desactivarlas de una en una dejando siempre una activa.

Así que vamos a conectarnos a la red con nuestro nuevo móvil con Android Q en alguna de sus betas o emulador correspondiente (con kernel 3.8 que es el primero parcheable para soportar SAE)… y nada.

Cambiamos la activación de las tres últimas líneas siempre dejando una…. y nada.

Cambiamos SAE por OWE… y nada.

Todo esto insisto, pues así he empezado esta entrada, un año después de la publicación de los estándares.

Esto pasa con Android. En iOS ahora mismo WPA3 ni está ni se espera en un tiempo. La postura de Apple suele ser permanecer al margen al principio y adoptarlo cuando ya esté medianamente asentado. Con lo cual, todas estas bondades en seguridad que ofrece WPA3 se ven minadas por la mala adopción actual de la tecnología por parte de los clientes orientados al gran público.

Y sin embargo, si hacemos la conexión de modo artesano, sí que funciona.

Usando wpa_supplicant sí que se conecta. Hay que indicarle al comando vía parámetros la interfaz con la que nos queremos conectar y pasarle la configuración de la red, por ejemplo, vía fichero json de configuración con un aspecto como el siguiente:


network={
   	 ssid="WLAN_KOLDO"
   	 psk="prueba"         # Sin esta linea si es OWE
   	 key_mgmt=SAE         # Intercambiable por OWE
   	 proto=RSN
         pairwise=CCMP
   	 group=CCMP
   	 ieee80211w=2
    }

¿Qué concluimos de todo esto? Pues aquello de que todo queda muy bien en papel pero en la práctica hicimos lo que pudimos con los medios que tuvimos.

PD: Añadir como nota final que recomiendo encarecidamente a quien le haya gustado este tema el taller de WPA3 de Raúl Siles que tuvo lugar en la Rooted, Navaja Negra, etc. y que seguramente tenga más repeticiones durante un tiempo. De ahí sale la inspiración de esta entrada así como la idea de qué pruebas ilustrativas mostraros. Al César lo que es del César.

REFERENCIAS

¡Póngame 3! Whisky, Pacharán y Anís by Raúl Sileshttps://www.dinosec.com/en/lab.html#NNED8
WPA3: Technical Details and Discussionhttps://www.mathyvanhoef.com/2018/03/wpa3-technical-details.html
Simultaneous Authentication of Equals: A Secure, Password-Based Key Exchange for Mesh Networkshttps://ieeexplore.ieee.org/abstract/document/4622764
Dragonfly Key Exchange – RFC 7664 – https://tools.ietf.org/html/rfc7664
Wi-Fi security is starting to get its biggest upgrade in over a decadehttps://www.theverge.com/circuitbreaker/2018/6/26/17501594/wpa3-wifi-security-certification
Wi-Fi Alliance Product Finderhttps://www.wi-fi.org/product-finder-results?sort_by=certified&sort_order=desc
Dragonblood: Consiguen hackear WPA3, conoce todos los detalles técnicoshttps://www.redeszone.net/2019/04/10/dragonblood-hackear-wpa3/

Fuente de la imagen: Unsplash

¿Quieres saber que más cosas hacemos en BBVA Next Technologies?

Utilizamos cookies propias y de terceros para mejorar nuestros servicios, brindarle una grata experiencia y mostrar a los usuarios publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continúa navegando por este sitio web, consideramos que acepta su uso. Puede cambiar la configuración u obtener más información accediendo a nuestra política de cookies aquí.