Reticulum — радиопротокол для mesh-сети. Зашифрованная пиринговая связь без интернета

0qz4kq4la581qsvehqgq7_sjcdw.jpeg

Как мы обсуждали ранее, отключение интернета в конкретной стране или городе — не вымышленная угроза, а вполне реализуемое действие. В частности, международная ассоциация Internet Society зафиксировала в 2021 году 49 искусственно вызванных шатдаунов.

Но есть эффективные технологии, которые позволят пережить возможный шатдаун. Например, mesh-сети для радиосвязи.
Одна из последних разработок в этой области — сетевой стек Reticulum (RNS).

К настоящему времени создано много фрагментарных решений и специализированных инструментов, но до сих пор не было полного коммуникационного стека для mesh-сети, которую могут поднять обычные пользователи без какой-либо централизованной координации. Разработчик RNS постарался восполнить этот пробел.

Подобную сеть можно за полчаса развернуть в случае системного сбоя коммуникаций в конкретной области или во всём мире. Не требуется ни драйверов, ни модулей ядра для встроенных ОС. Сетевой стек легко поставить на любой радиомодем, а для этой операции не требуется особый опыт работы с компьютерами или радиопередатчиками (полная документация, pdf).

onprg4m2dbdqwvovfv2eh-40pjk.jpeg

RNS работает на основе совершенно нового протокола, у которого ряд преимуществ перед IP-протоколом (хотя IP тоже поддерживается).

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

Особенности стека

  • Бескоординатная глобальная адресация и идентификация.
  • Полностью самоконфигурирующаяся многоцелевая маршрутизация (multi-hop).
  • Асимметричное шифрование X25519 и подписи Ed25519.
  • Спецификация шифрования Fernet:
    • AES-128 в режиме CBC с набивкой PKCS7;
    • HMAC с аутентификацией SHA256;
    • генерация векторов инициализации с помощью os.urandom();
    • прямая секретность с эфемерными ключами по протоколу Диффи — Хеллмана на эллиптических кривых (ECDH), набор Curve25519.
  • Защищённые от подделки подтверждения доставки пакетов.
  • Разнообразие типов интерфейсов.
  • Интуитивно понятный и простой в использовании API.
  • Надёжная и эффективная передача произвольных объёмов данных.
    • поддержка многогигабайтных файлов;
    • автоматический подсчёт контрольных сумм, координация и восстановление последовательности пакетов;
    • расширяемый механизм запросов/ответов.
  • Эффективное установление соединения: три пакета общим размером 237 байт, далее расход поддержания коннекта 0,62 бита в секунду.


Разработчик сетевого стека — Марк Квист, опытный разработчик и сетевой инженер, который всю свою жизнь занимается созданием и управлением компьютерными сетями. Владелец компании Unsigned.io, которая разрабатывает и продаёт оборудование для радиосвязи (модули RNode, модемы MicroModem и OpenModem).

kbrwfwrx5izry2bpwcp69e2s0eu.jpeg

Reticulum может работать практически на любом девайсе, начиная с крошечного Raspberry Pi Zero. По словам Квиста, с помощью Reticulum люди с минимальными знаниями в области телекоммуникаций и компьютеров могут поднять систему обмена сообщениями на большие расстояния для своего сообщества.

Например, можно легко поднять внутри города mesh-сеть и установить канал связи с соседним городом по УКВ, говорит Квист: «Если у вас уже есть модем и радиопередатчик, на настройку уйдет пять минут. Я действительно старался сделать стек максимально гибким, но при этом очень простым в использовании для людей с минимальным опытом работы с компьютерами и радиопередатчиками».

Как это выглядит на практике, можно посмотреть на примере Nomad Network. Это прототип устойчивой mesh-сети на протоколах LXMF и Reticulum.

qubxiptouxf7kqfkaq8m5-zygja.jpeg
Устройства в сети Nomad Network

Данный проект кардинально отличается от многих других проектов mesh-сетей в мире, таких как общественная городская сеть NYC Mesh. Все они ставят целью в конечном итоге выход в интернет. А здесь изначально создаётся отдельная от интернета сеть, да ещё с сильным шифрованием. Это фундаментально иной уровень. Фактически, Reticulum поддерживает сценарий полного апокалипсиса.

«Reticulum — это попытка создать альтернативный протокол базового уровня для сетей передачи данных, — говорит автор. — По сути, это не одна сеть, а инструмент для построения сетей. Его можно сравнить с IP, стеком интернет-протокола, на котором работает Интернет и 99,99% всех других сетей на Земле. Он решает те же проблемы, что и стек IP, обеспечивая передачу цифровых данных из точки А в точку Б, но делает это совершенно иначе и с совершенно другими предположениями. Реальная сила протокола заключается в том, что он может использовать все виды различных средств связи и соединять их в единую сеть. Он может использовать [дальние] приёмопередатчики, модемы, радиосвязь, Ethernet, WiFi или даже моток старой медной проволоки, если у вас есть такая возможность».

kmetzjmvrlmmppwuqbuywsvociw.png
Обмен зашифрованными сообщениями в радиосети Nomad Network

Ещё несколько скриншотов


Разработка Reticulum пока находится в зачаточной стадии. Программный код не прошёл аудит на предмет безопасности шифрования. То есть в реальности его пока рановато использовать в серьёзном деле.

Проблема ещё в том, что весь существующий сетевой софт написан для протокола IP. Поэтому для сетевого стека Reticulum придётся создавать ещё и новый программный стек: существующие программы там работать не будут. Хотя кое-что уже разработано. Например, мессенджер Sideband (Android, Linux, MacOS) для обмена текстовыми сообщениями по LoRa, пакетному радио, WiFi, I2P или любому другому транспортному протоколу, который поддерживается стеком пиринговых коммуникаций LXMF.


figbowsn-6humamdjvnqy08yqj4.jpeg

© Habrahabr.ru