Найти в Дзене
Кириши HackerSpace

Знакомьтесь, Reticulum Network Stack

Дорогие друзья, рад познакомить вас с очередным грандиозным Open Source проектом под названием Reticulum. Reticulum logo Если в двух словах, это набор инструментов для организации mesh-сетей. С его помощью можно создавать сетевые соединения используя различные аппаратные платформы и интерфейсы Wi-Fi, Serial Port, LoRa, KISS AX.25 и т.д Полное описание проекта с прошивками, исходным кодом, схемами и инструкциями по эксплуатации можно почитать на сайте проекта. А в этой статье, в качестве примера мы поднимем этот самый Reticulum между смартфоном и нетбуком на Debian 10, используя сеть Wi-Fi (2.4GHz) старенького роутера. A<----->AP<----->B протестируем отправку сообщений от устройства А до устройства Б, отправку файлов и выполнение команд. Роутер тут взят в качестве примера, надеюсь понятно что топологию своей сети вы определяете сами и можете поднять AP хоть на этих железячках :) Отправка сообщений Для обмена сообщениями у Reticulum есть: Sideband - клиентское приложение под Andro
Оглавление

Дорогие друзья, рад познакомить вас с очередным грандиозным Open Source проектом под названием Reticulum.

Reticulum logo
Reticulum logo

Если в двух словах, это набор инструментов для организации mesh-сетей.

С его помощью можно создавать сетевые соединения используя различные аппаратные платформы и интерфейсы Wi-Fi, Serial Port, LoRa, KISS AX.25 и т.д

Полное описание проекта с прошивками, исходным кодом, схемами и инструкциями по эксплуатации можно почитать на сайте проекта.

А в этой статье, в качестве примера мы поднимем этот самый Reticulum между смартфоном и нетбуком на Debian 10, используя сеть Wi-Fi (2.4GHz) старенького роутера.

A<----->AP<----->B
A<----->AP<----->B

протестируем отправку сообщений от устройства А до устройства Б, отправку файлов и выполнение команд.

Роутер тут взят в качестве примера, надеюсь понятно что топологию своей сети вы определяете сами и можете поднять AP хоть на этих железячках :)
-3

Отправка сообщений

Для обмена сообщениями у Reticulum есть:

  • Sideband - клиентское приложение под Android
Sideband Android Client
Sideband Android Client

  • sbapp - GUI клиент под Linux/MacOS
Sideband GUI
Sideband GUI

  • nomadnet - консольный клиент
nomadnet console message
nomadnet console message
смайлики, голосовые сообщения и других плюшки которые есть в популярных мессенджерах типа телеги, вибера и вотсапа отсутствуют, так как он прежде всего расчитан на работу с железом со слабой производительностью и сетей со слабой пропускной способностью.

Отправка файлов

Для отправки файлов из смартфона нам будет необходим эмулятор Termux

В него мы поставим Python3, Rust, а так же libexpat , binutils и собственно сам пакет rns :

Ставим всё это с доступом эмулятора к файловому хранилищу.

termux-setup-storage
pkg install python3
pkg install libexpat
pkg install rust
pkg install binutils
pip install rns

для примера создадим несколько текстовых файлов, упакуем их и отправим слушателю.

#> mkdir test
#> cd test
#> echo "Hello World" > file1.txt
#> echo "Secret Info" > file2.txt
#> tar -czf my_secret_archive.tar.gz .

Далее на принимающей стороне командуем:

$> rncp -l -n
Termux rncp screenshot
Termux rncp screenshot

получаем уникальный идентификатор сессии на который будем отправлять файл [SESSION_ID]

На стороне отправителя:

#> rncp my_secret_archive.tar.gz [SESSION_ID]

Удалённое управление

Аналогичным образом Reticulum позволяет осуществлять мониторинг или удалённое управление с помощью утилиты rnx

На принимающей стороне достаточно запустить:

$> rnx -l -n

На стороне отправителя:

#> rnx [HEX_ID_RECIVER] "uname -a" 

Поддерживаемое железо

В качестве радио модемов заявлена поддержка следующих железяк.

-8

Криптография

Reticulum использует простой набор эффективных, сильных и современных криптографических примитивов с широко доступными реализациями, которые можно использовать как на процессорах общего назначения, так и на микроконтроллерах.

  • Ed25519 для подписей
  • X22519 для обмена ключами ECDH
  • HKDF для получения ключа
  • AES-128 в режиме CBC
  • HMAC-SHA256 для аутентификации сообщений
  • SHA-256
  • SHA-512

P/S
Зону покрытия можно существенно увеличить если использовать радиомодули LoRa или радиомодем на базе Arduino , направленную антенну и спутник ретранслятор ;)
Radio modem based Arduino ATmega328p
Radio modem based Arduino ATmega328p

ping Arduino Radio Modem (Baofeng UV-5R, 145MHz)
ping Arduino Radio Modem (Baofeng UV-5R, 145MHz)

p2p connection use LoRa (433MHz)
p2p connection use LoRa (433MHz)

A<----->SAT<----->B
A<----->SAT<----->B

но это уже совершенно другая СТАТЬЯ )))

Доклад Марка Квиста (разработчика Reticulum) с конференции 38c3

Если вам нравится материал публикуемый на данном канале, вы можете поддержать меня чашкой кофе

Отдельно буду признателен и благодарен вам за лайк, репост или подписку ❤️

Всем счастья !