Los protocolos de capa MAC como WiFi/WLAN, Zigbee, Bluetooth y Ethernet son de suma importancia en las aplicaciones de IoT. WiFi/WLAN es una de las soluciones inalámbricas más utilizadas en domótica, agricultura inteligente, ofimática e IoT industrial. Es muy importante que los controladores de los dispositivos IoT identifiquen y se conecten a las redes WiFi disponibles y comuniquen paquetes de datos de manera efectiva a través de un canal seguro. WiFi, a pesar de tener un alcance limitado, ofrece un ancho de banda increíble, por lo que incluso aplicaciones como la transmisión en vivo pueden alojarse fácilmente en una red WiFi. Las aplicaciones de IoT basadas en WiFi deben lograr una cosa, ya sea que requieran un gran ancho de banda o no: detección de WiFi.
En ingeniería de redes, un WiFi Sniffer es un analizador de red diseñado para capturar paquetes de datos en la red inalámbrica. En aplicaciones integradas, rara vez se necesita un WiFi Sniffer dedicado para monitorear una red WiFi. Sin embargo, a menudo es necesario incorporar algunas funciones de un WiFi Sniffer en los dispositivos IoT. Una de estas características es la identificación de redes WiFi disponibles y la capacidad de conectarse a un canal WiFi disponible. En este artículo, veremos exactamente qué es un WiFi Sniffer. ¿Por qué es esto necesario en una red inalámbrica? ¿Cómo se utiliza la detección de WiFi en aplicaciones integradas? ¿Cómo se puede implementar la detección de WiFi en los puertos MicroPython?
¿Qué es un rastreador de WiFi?
Un WiFi Sniffer es un dispositivo de escucha pasiva que captura tramas de red WiFi de un canal WiFi determinado por aire. Un Sniffer solo escucha paquetes de red WiFi de un ancho de banda específico dentro de su rango de capacidad de escucha. Actualmente, las redes WiFi utilizan sólo dos anchos de banda: 2,4 GHz y 5 GHz. La última versión de WiFi, es decir, WiFi 6E, utiliza un ancho de banda adicional de 6 GHz.
Un Sniffer WiFi dedicado específicamente implementado para monitorear la red inalámbrica comparte el mismo canal que actúa como medio de comunicación entre un punto de acceso y los dispositivos de la estación y continúa capturando tramas inalámbricas para monitorear y registrar información sobre el tráfico inalámbrico en un archivo. Un WiFi Sniffer captura todas las tramas comunicadas entre un punto de acceso WiFi y un dispositivo que actúa como una estación WiFi en el mismo canal, pero no procesa tramas ni responde a la red. Los rastreadores de WiFi dedicados solo se requieren en aplicaciones de IoT donde es importante garantizar la conectividad inalámbrica de la red o los datos de gran ancho de banda se comunican con frecuencia dentro de la red, como en el caso de la transmisión de video o una red de sensores de gran escala altamente activa.
Aplicaciones de rastreo de WiFi
La detección de WiFi se utiliza para escanear dispositivos en una red inalámbrica. También configura los procedimientos de conexión entre los dispositivos de la estación y los puntos de acceso WiFi. Durante la implementación de la red, la detección de WiFi se utiliza a menudo para verificar la precisión de las tramas y garantizar que las tramas se transmitan por aire. El protocolo también se utiliza para confirmar la compatibilidad de los dispositivos con la red WiFi. La detección de WiFi se utiliza a menudo para la validación de la red y la certificación previa de dispositivos habilitados para WiFi. Por último, pero no menos importante, la detección de WiFi también se utiliza para solucionar problemas de redes y estaciones WiFi. dispositivos dentro de la red.
Tipos de rastreadores de WiFi
Hay dos tipos de rastreadores de WiFi: basados en software y dedicados. Los rastreadores de WiFi basados en software son aplicaciones o funciones de software integradas en una aplicación diseñada para la detección de WiFi. El controlador del software debe instalarse en un adaptador WiFi para realizar la detección. El software de detección de WiFi a menudo puede ser incompatible con la plataforma de hardware prevista. Un WiFi Sniffer dedicado es un adaptador WiFi con capacidad de detección de WiFi integrada en su software o firmware.
Uso de WiFi Sniffer en microcontroladores integrados
Los microcontroladores a menudo no son muy capaces de actuar como un rastreador de WiFi completo. Sin embargo, los microcontroladores habilitados para WiFi a menudo están programados para realizar algunas de las funciones de detección de WiFi, lo que incluye identificar puntos de acceso WiFi y conectar otros dispositivos de la estación a la misma red una vez conectados. La funcionalidad para comunicarse con una red WiFi para la comunicación de datos a través de Internet también es una función de detección de WiFi. La funcionalidad para restablecer y volver a conectarse a una red WiFi es otra función de detección de WiFi.
Rastreo de WiFi en puertos MicroPython
La mayoría de los puertos MicroPython tienen WiFi integrado o en chip. Estos microcontroladores ya son adaptadores WiFi que pueden conectarse a una red WiFi tanto como dispositivo de estación como punto de acceso. Afortunadamente, el módulo de red MicroPython está diseñado para conectarse y comunicarse con una red WiFi. La clase WLAN del módulo de red puede verificar la dirección MAC de todos los dispositivos conectados a la red WiFi. La misma clase configura el puerto como un punto de acceso WiFi o una estación. dispositivo.
Script MicroPython para detección de WiFi
Puede cargar el siguiente script MicroPython en cualquier puerto MicroPython habilitado para WiFi. El script escanea las redes WiFi disponibles y enumera las direcciones MAC de los dispositivos en el rango.
Código
El código comienza importando la clase WLAN del módulo WiFi. A continuación, se importa el módulo ubinascii para permitir la conversión de datos binarios al formato ASCII. Se define una función scan_wifi en la que se recuperan la dirección MAC, el paquete WiFi y el bit de control del paquete. El bit de control se utiliza para identificar el tipo de dirección MAC. Si la dirección MAC es válida, se imprimirá en la consola. Se crea una instancia de un objeto de clase WLAN en el código y se llama a la función scan_wifi como función de devolución de llamada tan pronto como se recibe un paquete de administración en modo promiscuo. El modo promiscuo WiFi en el puerto se activa llamando al método wlan.promiscuous. El modo promiscuo garantiza que el adaptador WiFi reciba y lea cada paquete de datos transmitido.