Accueil Astuces et Informations OpenWifi, une pile Wi-Fi 802.11a/g/n open source

OpenWifi, une pile Wi-Fi 802.11a/g/n open source

0
3
openwifi

openwifi, la pile WIFI open source compatible avec linux

Aujourd’hui l’utilisation d’une connexion WiFi est “presque indispensable” sur la plupart des appareils nécessitant une connexion Internet, et quand cela fonctionne, c’est génial, mais lorsqu’il y a des problèmes, ils ne peuvent souvent pas être résolus car le micrologiciel est un binaire à source fermée.

Jusqu’à un certain point, il serait compréhensible que ce code ne puisse pas être manipulé par les utilisateurs, puisque la grande majorité d’entre eux n’aurait même pas à interagir avec le code. Mais, pour ceux d’entre nous qui aiment déconner, cette partie peut être intéressante pour certains et donc avoir l’épine de pouvoir interagir avec son code.

C’est pourquoi le projet OpenWiFi vise à offrir une implémentation WiFi SDR (Radio définie par logiciel) entièrement open source compatible avec Linux et fonctionnant sur du matériel FPGA.

À propos d’OpenWifi

OpenWifi est développé comme une implémentation ouverte de la pile complète Wi-Fi 802.11a/g/nla forme et la modulation du signal dans lequel il est configuré par programmation (SDR, Software Defined Radio).

OpenWifi vous permet de créer un déploiement entièrement contrôlé de tous les composants d’un dispositif sans fil, y compris les couches de bas niveau, sur des adaptateurs sans fil conventionnels mis en œuvre au niveau de la puce inaccessible à l’audit.

OpenWifi utilise l’architecture SoftMAC, ce qui implique la mise en place de la pile sans fil 802.11 principale (high MAC) côté contrôleur et la présence d’une couche low MAC côté FPGA. La pile sans fil il utilise le sous-système mac80211 fourni par le noyau Linux.

L’interaction avec SDR se fait via un contrôleur spécial, et le composant matériel peut être construit sur la base des émetteurs-récepteurs universels (RF) FMCOMMS2/3/4, ADRV1CRR ou AD9361 de Xilinx FPGA et Analog Devices. Le coût de la solution basée sur le FPGA ZYNQ NH7020 est de 400 euros.

Pour la partie du principales caractéristiques du projet se distinguent les suivants :

  • Prise en charge complète de 802.11a/g/n. Nous prévoyons de prendre en charge 802.11ax.
  • Bande passante de 20 MHz et plage de fréquences de 70 MHz à 6 GHz.
  • Modes de fonctionnement : Ad-hoc (réseau d’appareils clients), point d’accès, station et surveillance.
  • Implémentation côté FPGA du protocole de couche liaison DCF (Distributed Coordination Function) en utilisant la méthode CSMA/CA.
  • Paramètres de priorité d’accès aux canaux configurables : durée RTS/CTS, CTS-to-self, SIFS, DIFS, xIFS, slot-time, etc.
  • Plage horaire basée sur l’adresse MAC.
  • Bande passante et fréquence facilement modifiables : 2 MHz pour 802.11ah et 10 MHz pour 802.11p.
  • Possibilité d’utilisation comme radar et détecteur de mouvement à l’intérieur.
  • Gestion via les utilitaires Linux habituels tels que ifconfig et iwconfig, ainsi qu’un utilitaire sdrctl spécialisé qui fonctionne sur netlink et permet de contrôler le fonctionnement de SDR à un niveau bas (manipulation de registres, modification des paramètres de tranche de temps, etc.).
  • Bande passante lors du test via iperf : 40 à 50 Mbps pour TCP et 50 Mbps pour UDP.

En ce qui concerne le projet, il convient de mentionner que récemment la sortie de la version 1.4 a été annoncée qui prend en charge Raspberry PI OS 11.2 (basé sur Debian 11) et le noyau Linux avec des correctifs d’Analog Devices.

En plus de celui destiné aux chercheurs en sécurité, il fournit les possibilité d’exécuter des tests pour simuler des attaques d’éclats et de krack et que le changement de FPGA Vivado 2021.1 (basé sur ADI HDL 2021_r1) a été effectué.

Un autre changement qui se démarque est que ajout de la prise en charge du nouveau matériel : sdrpi (HexSDR SDR sur Raspberry Pi), antsdr_e200 (MicroPhase ADALM-PLUTO), neptunesdr (Zynq 7020 + AD9361) et PYNQSDR (PYNQ-Z1 + AD936X).

Aussi dans cette nouvelle version une image de carte SD générique est fournie pour les appareils 32 bits et 64 bits, ainsi que la séparation du code source pour FPGA (openwifi-hw) et des fichiers bitstream pour FPGA (openwifi-hw-img) a été effectuée et le travail a été fourni en mode bouclage.

Enfin, si vous êtes intéressé à en savoir plussachez que le code des composants logiciels, ainsi que les schémas et descriptions des blocs matériels en langage Verilog pour FPGA, sont distribués sous la licence AGPLv3 et vous pouvez les consulter au lien suivant.

De plus, il est important de vérifier que vous accédez au bon projet, car il existe un autre projet portant le même nom qui est actuellement en version 2.7, mais il est totalement différent de celui dont nous parlons ici. C’est pourquoi il est recommandé qu’ils accèdent à partir du lien que nous partageons.