GhostNet (GNA): Защищенная распределенная сеть на принципах Zero Trust

Обзор Проекта

GhostNet (GNA) предлагает решение для построения собственной, независимой и полностью подконтрольной сетевой инфраструктуры. Это Open Source проект энтузиастов, нацеленный на создание модульной оверлейной сети (Overlay Network), работающей поверх любого интернет-соединения.

GhostNet решает ключевые проблемы:

  • Уязвимость периметра: Вместо доверия к IP-адресам используется криптографическая аутентификация каждого пакета.
  • Сложность настройки: Автоматическое обнаружение узлов (Zero Config) и пробитие NAT избавляют от ручной правки маршрутов.
  • Зависимость от провайдеров: Сеть работает поверх любых каналов связи, шифруя трафик и скрывая топологию от наблюдателя.

Философия и Назначение

GhostNet создан не как коммерческий продукт, а как мощный инструмент для тех, кто хочет:

  • Объединить разрозненные устройства (сервера, ноутбуки, IoT) в единую плоскую сеть, где бы они ни находились.
  • Изолировать критические сервисы (базы данных, админки, CI/CD) от публичного интернета, сделав их невидимыми для сканеров.
  • Контролировать свои данные: Весь трафик шифруется на конечных устройствах ключами, к которым нет доступа даже у ретранслятора (Lighthouse).
  • Получить свободу маршрутизации: Использовать любой узел сети как шлюз (Exit Node) для выхода в интернет.

Это платформа для построения приватного цифрового пространства, где правила задаете вы, а не ваш провайдер.

Архитектура и Компоненты

Система построена на модульном принципе разделения обязанностей:

1. gna_ca_server (Центр Сертификации)

"Ядро Доверия". Этот компонент отвечает за то, кто имеет право находиться в вашей сети.

  • Изоляция: Работает в строгой изоляции (localhost only), не имея прямого выхода в интернет.
  • PKI (Public Key Infrastructure): Управляет корневыми ключами и подписывает сертификаты доступа (X.509) для всех участников.
  • Anti-Theft: Привязывает сертификат к "железу" (Hardware Fingerprint). Украденный файл ключа бесполезен на другом компьютере.
  • Onboarding: Генерирует одноразовые инвайт-токены для безопасного подключения новых устройств.

2. gna_lighthouse (Сигнальный Сервер & Оркестратор)

"Координатор и Маяк". Единственная точка, которая должна иметь "белый" IP-адрес.

  • Rendezvous Point: Помогает агентам, находящимся за NAT, найти друг друга и установить прямое P2P-соединение (UDP Hole Punching).
  • Blind Relay: Если прямое соединение невозможно, пересылает зашифрованные пакеты между агентами, не имея возможности их прочитать (благодаря PFS).
  • DNS Authority: Встроенный DNS-сервер, который мгновенно разрешает имена вида server.ghost в виртуальные IP, без необходимости править файлы hosts.
  • Admin Dashboard: Веб-панель для мониторинга сети, управления сертификатами и удаленного выполнения команд (доступна только внутри VPN).

3. gna_agent (Универсальный Агент)

"Рабочая Лошадка". Клиентское приложение для Windows и Linux.

  • TUN-интерфейс: Создает виртуальный сетевой адаптер, через который идет весь защищенный трафик.
  • PFS Encryption: Использует протокол Perfect Forward Secrecy. Сессионные ключи шифрования (ChaCha20-Poly1305) меняются каждые 10 минут. Компрометация ключа в будущем не позволит расшифровать прошлый трафик.
  • Smart Networking:
    • Автоматически выбирает лучший путь: P2P (напрямую) или Relay (через сервер).
    • Запускает локальный DNS-прокси для прозрачной работы с доменными именами.
    • Умеет работать в режиме шлюза (Exit Node), раздавая интернет другим участникам сети.

Технологический Стек

  • Язык: Rust (гарантия памяти, высокая производительность, отсутствие GC).
  • Шифрование: ChaCha20-Poly1305 (AEAD) для данных, X25519 для обмена ключами, Ed25519 для подписей.
  • Сеть: Асинхронный I/O (Tokio), кастомный UDP-протокол с защитой от Replay-атак и DDOS.
  • DNS: Hickory-DNS (встроенный резолвер с поддержкой RFC).
  • База данных: SQLite (легковесность и надежность хранения состояния).

GhostNet доказывает, что сложная корпоративная безопасность может быть доступна в виде компактного, быстрого и открытого решения.