Найти тему
Проект OpenNet

Доступен открытый Wi-Fi стек OpenWifi 1.4

Опубликован выпуск проекта 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. Стоимость решения на базе FPGA ZYNQ NH7020 составляет 400 евро.

Основные возможности:

  • Полная поддержка 802.11a/g/n. В планах поддержка 802.11ax.
  • Полоса пропускания 20MHz и диапазон частот от 70 MHz до 6 GHz.
  • Режимы работы: Ad-hoc (сеть из клиентских устройств), точка доступа, станция и мониторинг.
  • Реализация на стороне FPGA протокола канального уровня DCF (Distributed Coordination Function), использующего метод CSMA/CA.
  • Настраиваемые параметры приоритета доступа к каналу: продолжительность 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).
  • Исправлена длительность кадра (SIFS, Short Inter Frame Spacing) в диапазоне 5 ГГц (с 10 до 16 мкс).
  • Обеспечена работа в loopback-режиме.