Новости GitHub получил оружие против цензуры — квантовый VPN ANet сводит спецслужбы с ума

NewsMaker

I'm just a script
Премиум
27,441
46
8 Ноя 2022
Он продолжает работать, даже если командный сервер уничтожен или захвачен.


mgbdq1epgxgvg0bw8denhuck0xh1gm41.jpg

В открытом доступе появился проект 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

Похожие темы