Опубликован выпуск проекта OpenWifi 1.4, развивающего открытую реализацию полного стека Wi-Fi 802.11a/g/n, форма сигнала и модуляция в котором задаётся программно (SDR, Software Defined Radio). OpenWifi позволяет создать полностью подконтрольную реализацию всех компонентов беспроводного устройства, включая низкоуровневые слои, в обычных беспроводных адаптерах реализуемые на уровне недоступных для аудита чипов. Код программных компонентов, а также схемы и описания аппаратных блоков на языке Verilog для FPGA распространяются под лицензией AGPLv3.
В OpenWifi применяется архитектура SoftMAC, подразумевающая реализацию основного беспроводного стека 802.11 (high-MAC) на стороне драйвера и наличие low-MAC слоя на стороне FPGA. В качестве беспроводного стека используется подсистема mac80211, предоставляемая ядром Linux. Взаимодействие с SDR производится через специальный драйвер. Аппаратная составляющая может быть построена на основе FPGA Xilinx и универсальных приёмопередатчиках (RF) Analog Devices FMCOMMS2/3/4, ADRV1CRR или AD9361. Для загрузки сформирован готовый образ SD-карты. Стоимость решения на базе FPGA ZYNQ NH7020 составляет 400 евро.
Основные возможности:
- Полная поддержка 802.11a/g/n. В планах поддержка 802.11ax.
- Полоса пропускания 20MHz и диапазон частот от 70 MHz до 6 GHz.
- Режимы работы: Ad-hoc (сеть из клиентских устройств), точка доступа, станция и мониторинг.
- Реализация на стороне FPGA протокола канального уровня DCF (Distributed Coordination Function), использующего метод CSMA/CA. Обеспечивается время обработки кадра (SIFS) на уровне 10us.
- Настраиваемые параметры приоритета доступа к каналу: продолжительность RTS/CTS, CTS-to-self, SIFS, DIFS, xIFS, slot-time и т.п.
- Квантование времени (Time slicing) на базе MAC-адреса.
- Легко изменяемая полоса пропускания и частота: 2MHz для 802.11ah и 10MHz для 802.11p.
- Возможность использования в качестве радара и детектора движения в помещении.
- Управление через штатные утилиты Linux, такие как ifconfig и iwconfig, а также специализированную утилиту sdrctl, работающую через netlink и позволяющую управлять работой SDR на низком уровне (манипулировать регистрами, менять настойки квантования времени и т.п.).
- Пропускная способность при тестировании через iperf: 40~50Mbps для TCP и 50Mbps для UDP.
В новом выпуске:
- Обеспечена поддержка Raspberry PI OS 11.2 (на базе Debian 11) и ядра Linux с патчами от компании Analog Devices.
- Для исследователей безопасности предоставлена возможность запуска тестов для симуляции атак frag и krack.
- Осуществлён переход на FPGA-инструментарий Vivado 2021.1 (на осенове ADI HDL 2021_r1).
- Добавлена поддержка нового оборудования: sdrpi (HexSDR SDR в Raspberry Pi), antsdr_e200 (MicroPhase ADALM-PLUTO), neptunesdr (Zynq 7020 + AD9361) и PYNQSDR (PYNQ-Z1 + AD936X).
- Предоставлен универсальный образ SD-карты для 32- и 64-разрялных устройств.
- Осуществлено разделение исходного кода для FPGA (openwifi-hw) и bitstream-файлов для FPGA (openwifi-hw-img).
- Обеспечена работа в loopback-режиме.