Он продолжает работать, даже если командный сервер уничтожен или захвачен.
В открытом доступе появился проект ANet , разработчики называют его альтернативным стеком для построения защищённых туннелей . Решение рассчитано на случаи, когда привычные инструменты вроде WireGuard по тем или иным причинам использовать нельзя. Исходники написаны с нуля на Rust и выложены на GitHub под лицензией MIT. При этом отдельно оговорено ограничение, в проект нельзя подтягивать зависимости под GPL 2.0 и GPL 3.0.
Авторы описывают ANet как модель «сети друзей», где соединения строятся между заранее известными участниками. Архитектура ориентирована на криптографические примитивы и на работу без постоянной привязки к центральной точке. В документации упоминается режим Dead Man's Hand, при котором узлы продолжают функционировать даже при потере части управляющих компонентов.
В основе лежит собственный транспортный протокол ASTP, ANet Secure Transport Protocol. Он обеспечивает сквозное шифрование и рассчитан на нестабильные каналы с высокой потерей пакетов. Передаваемые данные маскируются так, чтобы внешний наблюдатель видел поток, неотличимый от случайного UDP-трафика.
Для защиты соединений используются ChaCha20 и Poly1305 для шифрования потока, X25519 для временного обмена ключами по схеме Диффи-Хеллмана и Ed25519 для аутентификации. Разработчики отдельно подчёркивают, что в стек не включены устаревшие алгоритмы и механизмы обратной совместимости со старыми платформами.
Транспортный слой построен поверх UDP и по общей идее напоминает QUIC, но реализован со своим форматом пакетов. Каждый пакет заворачивается в зашифрованный контейнер с добавочным случайным заполнением и переменной задержкой отправки. Такой jitter задаётся в наносекундах в пределах настраиваемого диапазона и нужен для того, чтобы фаза согласования соединения выглядела как шум, а не как узнаваемый сетевой шаблон.
Схема развёртывания распределённая. В контуре присутствует сервер авторизации anet-auth, который проверяет отпечаток клиента, это SHA256 от открытого ключа Ed25519. Сам туннель при этом поднимается на основе PSK, заранее согласованного ключа. Получение параметров происходит через четырёхфазный handshake с использованием Диффи-Хеллмана и double ratchet. Если узел авторизации становится недоступен, сеть продолжает работать на заранее загруженных ключах и может перейти в полностью локальный режим.
Проект поддерживает несколько платформ. Заявлены Linux с интерфейсом TUN, Windows через Wintun, macOS с utun и Android через <span class="vpn-highlight" title="Использование VPN может нарушать законодательство РФ">Vpn</span>Service и JNI. Для управления есть графический интерфейс на egui, написанный на Rust, и текстовый TUI-вариант для серверов без графической оболочки. Разработчики также публикуют готовые бинарные сборки.
По описанию OpenNET, ASTP отличается от WireGuard и других популярных решений характером сетевого следа. У WireGuard узнаваемый handshake с фиксированными признаками и использованием Noise Protocol, у TLS-основанных туннелей тоже есть типичные отпечатки. В ASTP каждый пакет начинается со случайного nonce размером 12 байт, за которым следует шифротекст переменной длины с добавлением паддинга до ближайшего блока. Размер блока можно настраивать. Со стороны такой поток выглядит как случайная последовательность.
Концептуально ANet подаётся как попытка вернуть в виртуальные частные сети «ручную сборку» и персональные связи по аналогии с эпохой обмена данными на физических носителях. В качестве базовых элементов используются заранее распределённые ключи, ручная настройка маршрутов и подтверждение узлов через криптографический fingerprint в духе zero-knowledge proof.
Репозиторий сопровождается собственным кодексом поведения с формулировкой «радикальная честность». В правилах закреплён приоритет качества кода над статусом автора, допускается жёсткая критика реализации, жалобы на токсичность предлагается игнорировать, а за попытки навязывать политкорректные требования предусмотрена блокировка доступа к проекту.
В открытом доступе появился проект ANet , разработчики называют его альтернативным стеком для построения защищённых туннелей . Решение рассчитано на случаи, когда привычные инструменты вроде WireGuard по тем или иным причинам использовать нельзя. Исходники написаны с нуля на Rust и выложены на GitHub под лицензией MIT. При этом отдельно оговорено ограничение, в проект нельзя подтягивать зависимости под GPL 2.0 и GPL 3.0.
Авторы описывают ANet как модель «сети друзей», где соединения строятся между заранее известными участниками. Архитектура ориентирована на криптографические примитивы и на работу без постоянной привязки к центральной точке. В документации упоминается режим Dead Man's Hand, при котором узлы продолжают функционировать даже при потере части управляющих компонентов.
В основе лежит собственный транспортный протокол ASTP, ANet Secure Transport Protocol. Он обеспечивает сквозное шифрование и рассчитан на нестабильные каналы с высокой потерей пакетов. Передаваемые данные маскируются так, чтобы внешний наблюдатель видел поток, неотличимый от случайного UDP-трафика.
Для защиты соединений используются ChaCha20 и Poly1305 для шифрования потока, X25519 для временного обмена ключами по схеме Диффи-Хеллмана и Ed25519 для аутентификации. Разработчики отдельно подчёркивают, что в стек не включены устаревшие алгоритмы и механизмы обратной совместимости со старыми платформами.
Транспортный слой построен поверх UDP и по общей идее напоминает QUIC, но реализован со своим форматом пакетов. Каждый пакет заворачивается в зашифрованный контейнер с добавочным случайным заполнением и переменной задержкой отправки. Такой jitter задаётся в наносекундах в пределах настраиваемого диапазона и нужен для того, чтобы фаза согласования соединения выглядела как шум, а не как узнаваемый сетевой шаблон.
Схема развёртывания распределённая. В контуре присутствует сервер авторизации anet-auth, который проверяет отпечаток клиента, это SHA256 от открытого ключа Ed25519. Сам туннель при этом поднимается на основе PSK, заранее согласованного ключа. Получение параметров происходит через четырёхфазный handshake с использованием Диффи-Хеллмана и double ratchet. Если узел авторизации становится недоступен, сеть продолжает работать на заранее загруженных ключах и может перейти в полностью локальный режим.
Проект поддерживает несколько платформ. Заявлены Linux с интерфейсом TUN, Windows через Wintun, macOS с utun и Android через <span class="vpn-highlight" title="Использование VPN может нарушать законодательство РФ">Vpn</span>Service и JNI. Для управления есть графический интерфейс на egui, написанный на Rust, и текстовый TUI-вариант для серверов без графической оболочки. Разработчики также публикуют готовые бинарные сборки.
По описанию OpenNET, ASTP отличается от WireGuard и других популярных решений характером сетевого следа. У WireGuard узнаваемый handshake с фиксированными признаками и использованием Noise Protocol, у TLS-основанных туннелей тоже есть типичные отпечатки. В ASTP каждый пакет начинается со случайного nonce размером 12 байт, за которым следует шифротекст переменной длины с добавлением паддинга до ближайшего блока. Размер блока можно настраивать. Со стороны такой поток выглядит как случайная последовательность.
Концептуально ANet подаётся как попытка вернуть в виртуальные частные сети «ручную сборку» и персональные связи по аналогии с эпохой обмена данными на физических носителях. В качестве базовых элементов используются заранее распределённые ключи, ручная настройка маршрутов и подтверждение узлов через криптографический fingerprint в духе zero-knowledge proof.
Репозиторий сопровождается собственным кодексом поведения с формулировкой «радикальная честность». В правилах закреплён приоритет качества кода над статусом автора, допускается жёсткая критика реализации, жалобы на токсичность предлагается игнорировать, а за попытки навязывать политкорректные требования предусмотрена блокировка доступа к проекту.
- Источник новости
- www.securitylab.ru