Open-source'owy stos WiFi oparty na Rust trafia do ESP32
Eksperymentalny stos WiFi o otwartym kodzie źródłowym został właśnie uruchomiony dla ESP32. Znany jako Ferris on Air lub FoA, projekt ten, napisany w asynchronicznym rdzeniu, jest sprawdzonym stosem 802.11, który toruje drogę do implementacji różnych interfejsów za pomocą Embassy, opartego na rdzeniu frameworka dla urządzeń wbudowanych. Ostatecznie, framework ten przyniesie możliwości takie jak sieć mesh i AirDrop do ESP32. Jakkolwiek ekscytujące mogą być te funkcje, nie zawsze były one możliwe.
ESP32 jest w dużej mierze open-source. Niestety, moduły WiFi i Bluetooth są zamknięte, prawdopodobnie dlatego, że Espressif, producent ESP32, jest związany sprzętową umową NDA dla tych modułów. Na szczęście dla tego projektu Espressify potwierdziło, że projekt może legalnie przeprowadzić inżynierię wsteczną modułów i opublikować wyniki na licencji Apache. Jednak inżynieria wsteczna nie jest łatwym zadaniem.
Aby otworzyć moduł WiFi, zespół wykorzystał Ghidrę, narzędzie inżynierii wstecznej typu open source opracowane przez NSA, do analizy struktury kodu, logiki i nazw funkcji, które Espressify uprzejmie pozostawił w kodzie. Dzięki tym informacjom zespół uzyskał wgląd w funkcję każdego rejestru sprzętowego zaangażowanego w sterowanie modułem WiFi. Następnie, wykorzystując połączenie fizycznej i emulowanej analizy sprzętu ESP32, zespół z powodzeniem przeprowadził inżynierię wsteczną modułu WiFi. Warto zauważyć, że zespół musiał zbudować klatkę Faradaya DIY, aby odizolować sygnały WiFi pochodzące z ESP32. Aby to osiągnąć, zespół wykorzystał drewnianą kostkę wyłożoną przewodzącą tkaniną, kabel światłowodowy do przesyłania sygnału do ESP32 oraz akumulator samochodowy do zasilania całej konfiguracji.
Ferris on Air jest wciąż na wczesnym etapie rozwoju, ale szybko zyskuje na popularności i funkcjonalności. Cały proces inżynierii odwrotnej i więcej szczegółów na temat projektu można znaleźć poniżej.