somnytoo 1.1.0

Binary protocol server for secure communications
Documentation

SomnyToo: Высокопроизводительный TCP-сервер для защищенного бинарного протокола

🎯 Решаемая проблема

SomnyToo — это высокопроизводительный асинхронный TCP-сервер на Rust, реализующий защищенный бинарный протокол для обмена данными с встроенными механизмами безопасности, мониторинга и автоматического масштабирования. Проект решает следующие проблемы:

  • Безопасная коммуникация: Сквозное шифрование, аутентификация и защита от атак
  • Высокая производительность: Асинхронная обработка, пулы потоков и zero-copy буферизация
  • Продвинутый Congestion Control: Адаптивное управление нагрузкой с AIMD алгоритмами
  • Репутационная система IP: Автоматический blacklist/whitelist и отслеживание нарушений
  • Расширенный мониторинг и управление: Встроенная унифицированная система мониторинга здоровья, метрик и алертинга для всех компонентов (БД, CPU, память, диск, сеть, API)
  • Масштабируемость: Автоматическое масштабирование реплик БД на основе нагрузки
  • Промышленная ORM система: Полнофункциональная система объектно-реляционного отображения с безопасным построением запросов, поддержкой сложных JOIN операций и защитой от SQL-инъекций
  • Конфигурируемость: Гибкая настройка через переменные окружения и конфигурационные файлы
  • Безопасное взаимодействие с БД: Встроенная система безопасности с rate limiting, детектированием SQL-инъекций и IP блокировкой
  • Управление сложными запросами: Поддержка параметризованных запросов, конфликт-резолюции и транзакций

✨ Ключевые возможности

🛡️ Расширенная безопасность

  • Phantom Key System (Фантомные ключи): одноразовые операционные ключи, генерируемые из рассеянного мастер-ключа без его восстановления в памяти
  • Memory‑Scattered Cryptography: мастер-ключ рассеивается по уровням памяти (L1, L2, RAM) и никогда не собирается целиком
  • Аппаратно‑зависимая сборка ключей: автоматический выбор ассемблера (AVX2, NEON, generic) для константного времени операций
  • Постоянное время выполнения: защита от timing‑атак за счёт фиксированного числа итераций и детектирования аномалий
  • Zero‑copy и zeroize: немедленное затирание промежуточных данных и ключей после использования
  • Эмуляция‑детекция: обнаружение работы в эмулируемом окружении
  • Адаптивный Congestion Control: AIMD‑алгоритмы с автоматическим blacklisting на основе репутационной системы IP
  • Многоуровневая защита БД: детектирование SQL‑инъекций, санитизация запросов, rate‑limiting на уровне ORM

🏗️ Промышленная ORM система

  • Полнофункциональный Query Builder: Безопасное построение SQL-запросов через fluent API
  • Поддержка всех SQL операций: SELECT, INSERT, UPDATE, DELETE с расширенными возможностями
  • Комплексные JOIN операции: INNER, LEFT, RIGHT, FULL, CROSS, NATURAL JOIN с типобезопасностью
  • Параметризованные запросы: Автоматическая защита от SQL-инъекций через подготовленные выражения
  • Конфликт-резолюция: Поддержка PostgreSQL ON CONFLICT DO UPDATE/NOTHING
  • Транзакционная поддержка: ACID-совместимые транзакции с rollback/commit
  • Безопасные условия запросов: Система условий WHERE, AND, OR, GROUP BY, HAVING с валидацией
  • Поддержка RETURNING: Получение данных после INSERT/UPDATE/DELETE операций
  • Типизированные результаты: Автоматическое маппинг результатов запросов в Rust структуры
  • Оптимизация запросов: Автоматическая оптимизация и кэширование подготовленных выражений

🩺 Встроенная система мониторинга и Health Checks

  • UnifiedMonitor: Централизованный сбор метрик и состояния от всех компонентов системы
  • Комплексные проверки здоровья: Встроенные health checks для:
    • Database: Проверка подключения и времени отклика БД с экспоненциальной backoff-логикой
    • Network: Проверка внешней связности (google.com, cloudflare.com, github.com) и расчет задержек
    • Memory: Мониторинг использования ОЗУ с кэшированием и пороговыми значениями (Normal/High/Critical)
    • CPU: Анализ загрузки процессора (load average) с учетом количества ядер
    • Disk: Контроль свободного места на диске
    • API: Проверка доступности внутренних API endpoints
    • Server: Мониторинг активных сессий, подключений, таймаутов heartbeat
    • ORM Performance: Мониторинг производительности запросов и кэш-хитов
  • Intelligent Caching: Кэширование результатов проверок с TTL для снижения нагрузки
  • Prometheus экспорт: Готовые метрики в формате Prometheus
  • Система алертов: Многоуровневые алерты (Info, Warning, Error, Critical) с историей и retention policy
  • Веб-отчеты: JSON API для получения полного отчета о состоянии системы
  • Фоновый мониторинг: Автоматические периодические проверки в фоновом режиме

🔐 Криптографическая система

  • Протокол Phantom Handshake: ECDH (X25519) с детерминированной генерацией сессионных ключей
  • Фантомные сессии: одноразовые операционные ключи, производные от мастер‑ключа через HKDF‑SHA256
  • Рассеивание ключей: MemoryScatterer делит мастер‑ключ на части, хранящиеся в L1, L2, RAM и регистрах
  • Аппаратно‑ускоренное шифрование: AES‑256‑GCM с автоматическим использованием AES‑NI/AVX2/NEON
  • Константное время сравнения: constant_time_eq для проверки подписей и HMAC
  • Детерминированная генерация ключей: одинаковый operation_seed на клиенте и сервере для воспроизводимости
  • Подпись пакетов: HMAC‑SHA256 на основе операционных ключей с разделением sequence для encryption/auth
  • CryptoPool: пул воркеров для параллельной криптографии с batch‑обработкой

🏗️ ORM компоненты и возможности

  • SelectBuilder: Построение сложных SELECT запросов с JOIN, WHERE, GROUP BY, HAVING, ORDER BY
  • InsertBuilder: Безопасные INSERT запросы с поддержкой множественных значений и конфликт-резолюции
  • UpdateBuilder: Типобезопасные UPDATE запросы с условиями и ограничениями
  • DeleteBuilder: Управляемые DELETE операции с транзакционной поддержкой
  • Condition System: Гибкая система условий с поддержкой операторов (=, !=, >, <, LIKE, IN, BETWEEN)
  • Parameter Management: Безопасное управление параметрами запросов с автоматическим экранированием
  • Type System: Поддержка всех SQL типов данных с автоматической конвертацией в Rust типы
  • Join Operations: Полная поддержка всех типов JOIN с проверкой корректности условий
  • Query Validation: Статическая и динамическая валидация SQL запросов перед выполнением

🚦 Congestion Control System

  • AIMD алгоритмы (Additive Increase/Multiplicative Decrease)
  • Адаптивные лимиты на основе нагрузки системы
  • Детектирование DDoS атак в реальном времени
  • Анализ аномалий трафика (burst detection, packet flooding)
  • Автоматическое масштабирование ограничений
  • Приоритизация пакетов (PacketPriority система)

📊 Мониторинг и аудит

  • Единая система мониторинга здоровья (UnifiedMonitor)
  • Метрики в реальном времени через Prometheus
  • Security Audit система с детализированными событиями
  • Health checks для всех компонентов
  • Детальная статистика по IP и соединениям
  • Алерты с различными уровнями серьезности
  • Мониторинг БД, сети, CPU, памяти, диска
  • ORM Performance Metrics: Тайминги запросов, кэш-хиты, частота использования различных операций

🚀 Производительность

  • Асинхронная обработка на Tokio – неблокирующий ввод‑вывод и конкурентное выполнение задач
  • Пул потоков для криптографии – CryptoPool распределяет нагрузку шифрования/дешифрования по ядрам CPU
  • Zero‑copy буферизация – PacketBuffer минимизирует копирование данных
  • Аппаратное ускорение – автоматическое использование AES‑NI, AVX2, NEON
  • Подготовленные SQL‑запросы – кэширование подготовленных выражений и планов запросов
  • LRU‑кэширование репутационных данных – быстрый доступ к скорам IP без запросов к БД
  • Batch‑обработка пакетов – группировка криптографических операций для снижения накладных расходов
  • Connection Pooling БД – эффективное переиспользование соединений
  • Многоуровневое кэширование ORM – кэш запросов, кэш планов, lazy loading связанных данных
  • Intelligent Caching health‑checks – TTL‑кэширование результатов проверок здоровья

⚙️ Управление и конфигурация

  • Централизованная конфигурация (ConfigManager)
  • Тестовый режим с ослабленными ограничениями
  • Динамическое обновление конфигурации
  • Административный API с аутентификацией
  • Graceful shutdown соединений
  • Автоматическая очистка устаревших данных
  • Расширенное логирование через tracing
  • ORM Configuration: Гибкая настройка поведения ORM через конфигурационные файлы

🚀 Быстрый старт (5 минут)

Предварительные требования

  • Rust 1.70+ (rustup update stable)
  • PostgreSQL 13+ (для работы с БД)
  • Git

Установка

  1. Клонирование репозитория SomnyToo
git clone https://github.com/TvoiiSon/SomnyToo.git

cd somnytoo

  1. Клонирование репозитория SomnyTooTests
git clone https://github.com/TvoiiSon/SomnyTooTests.git

cd somnytootests

  1. Настройка окружения
cp .env.example .env

# Отредактируйте .env файл под ваши нужды

  1. Запуск сервера
# В режиме разработки

cargo run


# В релизном режиме

cargo build --release

./target/release/somnytoo

🛡️ Безопасность и Congestion Control

Протокол Phantom Handshake (ECDH + Детерминированные ключи)

  • ClientHello (0xA0): client_pub (32) + client_nonce (16)
  • ServerHello (0xA1): server_pub (32) + server_nonce (16)
  • Общий секрет: X25519, дополненный nonce‑ами и публичными ключами
  • Session Keys: HKDF‑SHA256 с детерминированным operation_seed

Система фантомных ключей

  • Мастер‑ключ рассеивается MemoryScatterer по L1, L2, RAM
  • Операционные ключи генерируются через HKDF из operation_seed + sequence + типа операции
  • Ключи живут ≤10 мс, уничтожаются automatic zeroize
  • Невозможность восстановления мастер‑ключа из операционных ключей

Детектирование аномалий трафика

Аномалия Описание Вес в score
HighPacketRate Высокая частота пакетов 0.4
BurstTraffic Резкий всплеск трафика 0.3
SmallPacketFlood Множество мелких пакетов 0.6
ConnectionFlood Много соединений с одного IP 0.5
UnusualPacketSize Нестандартный размер пакетов 0.2
SQLInjectionAttempt Попытка SQL‑инъекции 0.8
ORMQueryFlood Аномально частая работа с ORM 0.4

Оптимизации

  • Асинхронный стек на Tokio – обработка тысяч соединений конкурентно
  • CryptoPool с batch‑обработкой – параллельное шифрование/дешифрование
  • Zero‑copy PacketBuffer – минимизация копий данных в памяти
  • Аппаратное ускорение AES‑GCM – использование AES‑NI/AVX2/NEON
  • LRU‑кэш репутационных скоров – быстрый доступ без запросов к БД
  • Intelligent Caching health‑checks – TTL‑кэширование, параллельные проверки
  • Экспоненциальный backoff для БД – автоматическое восстановление при сбоях
  • Подготовленные выражения ORM – кэширование планов запросов
  • Connection Pooling БД – пул соединений с настройкой min/max
  • Lazy Loading связанных данных – загрузка по требованию
  • Query Plan Caching – кэширование планов выполнения сложных запросов
  • Пакетная обработка запросов – batch‑операции INSERT/UPDATE

🤝 Вклад в проект

Мы приветствуем вклады в проект!

Основные направления для контрибьюции

  • Новые криптографические алгоритмы
  • Дополнительные протоколы handshake
  • Улучшение CryptoPool производительности
  • Дополнительные детекторы аномалий
  • Улучшение производительности AIMD алгоритмов
  • Расширение репутационной системы
  • Визуализация метрик и состояния системы
  • Улучшение кэширования в системе мониторинга
  • Автоматическое восстановление при обнаружении проблем
  • Расширение ORM системы: Поддержка новых типов данных, оптимизации
  • Дополнительные ORM фичи: Миграции, сиды, фабрики данных
  • Интеграция ORM с другими базами данных (MySQL, SQLite, MongoDB)
  • Улучшение производительности ORM: Оптимизация кэширования, lazy loading
  • Документация и примеры
  • Интеграции с другими системами

📄 Лицензия

SomnyToo распространяется под лицензией GNU Affero General Public License v3.0 (AGPL-3.0). Подробнее см. LICENSE.

🆘 Поддержка

⭐ Звезды

Если вам нравится SomnyToo, поставьте звезду на GitHub! Это помогает проекту развиваться.


🎯 Roadmap

Планируемые улучшения безопасности

  • Post‑quantum криптография – интеграция Kyber/Dilithium
  • Усиленная эмуляция‑детекция – расширение методов обнаружения
  • Аппаратные TPM/HSM – интеграция с аппаратными модулями безопасности
  • Биометрическая аутентификация – опциональная поддержка

Оптимизации производительности

  • JIT‑компиляция запросов – динамическая генерация кода для частых запросов
  • Векторизация криптографии – использование AVX‑512 для параллельной обработки
  • Адаптивный пул потоков – автоматическая настройка размера CryptoPool
  • Проактивное кэширование – предзагрузка данных на основе паттернов доступа

Расширение ORM и БД

  • Поддержка векторных БД – интеграция с pgvector, Qdrant
  • GraphQL поверх ORM – автоматическая генерация GraphQL‑схем
  • Расширенные типы данных – JSONB, массивы, геоданные, полнотекстовый поиск
  • Уровень 2 кэширования – распределённый кэш (Redis, Memcached)
  • Автоматические миграции – управление схемой БД через код

Мониторинг и управление

  • Дашборд в реальном времени – визуализация метрик, сессий, трафика
  • Прогнозирование нагрузки – ML‑модели на основе исторических данных
  • Автоматическое масштабирование – динамическое изменение ресурсов
  • Расширенная аналитика SQL – выявление медленных запросов, рекомендации по индексам

SomnyToo — это продолжающийся проект с активной разработкой. Мы приветствуем обратную связь и предложения по улучшению!