Solución de problemas de PMF para una conexión Wi-Fi más segura Fedora 28

El último paquete wpa_supplicant para Fedora 28 incluye soporte en tiempo de compilación para PMF (marcos de administración protegidos). Esto es algo bueno, ya que protege contra una serie de ataques de reproducción WiFi. Sin embargo, un pequeño número de usuarios informaron problemas de conectividad WiFi después de una actualización a Fedora 28. Si lee esta publicación, puede aprender a solucionar los problemas de esa conexión y posiblemente sentirse menos frustrado.

Deshabilitar PMF puede ser una solución viable. Pero es posible comprender más profundamente donde el fracaso está ocurriendo. Idealmente, puede encontrar una solución de software para esos problemas y aún así mantener la ventaja de una seguridad mejorada.

¿Cómo funciona PMF?

PMF protege las conexiones WiFi contra ataques de reproducción en marcos de administración robustos. Para example, evita que un punto de acceso no autorizado que envíe tramas de Deauth falsificadas desconecte un nodo “víctima”. La protección consta de una MIC (verificación de integridad de mensajes), calculada por un transmisor compatible con PMF y escrita en cada trama de gestión robusta saliente (por ejemplo, una trama de desautorización). A continuación, se permite que un receptor compatible con PMF descarte esas tramas, si falla la verificación de MIC.

La clave utilizada para generar/verificar los MIC, denominada IGTK (Clave Temporal de Grupo de Integridad), se comparte entre el grupo de nodos pertenecientes a la red. Los puntos de acceso actualizan regularmente el IGTK utilizando paquetes EAPOL, al igual que con el GTK (clave temporal de grupo) para cifrar el contenido de los marcos de transmisión. De manera similar, los clientes y los puntos de acceso negocian el cifrado utilizado para generar y verificar los MIC utilizando el elemento RSN (Robust Security Network) de los paquetes EAPOL, al igual que ocurre con el cifrado utilizado para cifrar las tramas de transmisión.

probándolo Fedora

Desde la versión 1.10, NetworkManager expone 802-11-wireless-security.pmf propiedad para configurar PMF. Dentro del núcleo, la compatibilidad con PMF se basa en las capacidades subyacentes del conjunto de chips inalámbrico y en la implementación del controlador. Los usuarios pueden consultar Linux para ver si su adaptador inalámbrico admite al menos uno de los algoritmos utilizados para la generación/verificación de MIC. Con iw, puede verificar si al menos CMAC o GMAC están disponibles:

                      $ 
                      
                        iw phy0 info | grep -A9 'Supported Ciphers'
                      
                      
Supported Ciphers:
...
* CMAC (00-0f-ac:6)
* GMAC-128 (00-0f-ac:11)
* GMAC-256 (00-0f-ac:12)
                    

Hasta que wpa_supplicant tuvo soporte en tiempo de compilación para PMF, los controladores del kernel nunca recibieron instrucciones para generar o verificar el MIC en marcos de administración robustos. Todo se comportó como si PMF estuviera deshabilitado en la configuración de NetworkManager. Sin embargo, a partir de la versión 2.6-15.fc28, wpa_supplicant intenta instalar el IGTK en el controlador tan pronto como se conecta a un punto de acceso compatible con PMF.

buenas o malas noticias?

Algunos controladores simplemente no admiten ninguno de los conjuntos de cifrado necesarios para validar o generar MIC. En este caso, un intento de conectarse al punto de acceso falla si se negocia PMF. Al leer el registro del cliente, aparecen los siguientes mensajes de error:

                      wpa_supplicant[2828]: wlp2s0: WPA: Failed to configure IGTK to the driver
kernel: wlp2s0: deauthenticating from  by local choice (Reason: 1=UNSPECIFIED)
wpa_supplicant[2828]: wlp2s0: RSN: Failed to configure IGTK
                    

Esto suele suceder cuando Linux no pudo encontrar el conjunto de cifrado que wpa_supplicant negoció con el punto de acceso. Si la conexión fue exitosa antes de actualizar a Fedora 28, hay buenas noticias: puedes recuperarte desactivando PMF. El siguiente comando solucionó la mayoría de los problemas informados:

                      $ 
                      
                        nmcli connection modify wifi-sec.pmf disable; nmcli connection up
                      
                    

La mala noticia es que esta NIC inalámbrica no es compatible con PMF. Al menos, no es compatible con el conjunto de cifrado requerido por el punto de acceso.

Mayor desarrollo

Ahora que se conoce una solución, aquí hay algunas formas en que la experiencia general de PMF puede mejorar:

  • Aplique parches a los agentes del espacio de usuario (NetworkManager o wpa_supplicant, o ambos) para comprobar las capacidades de la NIC y que coincidan mejor con la configuración del punto de acceso. Esto no resolvería todos los problemas anteriores, ya que aún podría haber puntos de acceso que requieran un cifrado que no esté disponible en el cliente. Pero en este caso, wpa_supplicant se negaría a intentar la conexión, de acuerdo con el estándar actual. Además, también informaría un mensaje más significativo en el registro, lo que ayudaría al usuario a corregir la configuración en el punto de acceso. Al menos es mejor que intentar la conexión y terminarla con error al recibir EAPOL 3/4.
  • Repare los controladores inalámbricos que no implementan PMF correctamente, como lo hicimos nosotros hace poco en el mt7601u. Por lo general, Linux puede implementar sin problemas en el software esos conjuntos de cifrado que no se pueden ejecutar en el hardware. Por lo tanto, a menos que el conjunto de chips tenga una limitación en su hardware o firmware, PMF debería estar disponible en la mayoría de los adaptadores inalámbricos.

Un agradecimiento especial por el material de este artículo para Beniamino Galvani, Lorenzo Bianconi, Francesco Giudici y todos los reporteros de Bugzilla.

Imagen cortesía de calle russell vía Flickr (CC BY-SA 2.0).

Related Posts