ostp/README.ru.md

7.7 KiB
Raw Permalink Blame History

OSTP — Ospab Stealth Transport Protocol

English · Wiki · Contributing · Миграция v0.3.1

GitHub Release License: AGPL v3 Platform: Windows | Linux | macOS | Android Crypto Transport

OSTP (Ospab Stealth Transport Protocol) — зашифрованный транспортный протокол, написанный на Rust. Реализует механизм ARQ поверх UDP, а также режим UoT (UDP-over-TCP). Протокол использует криптографическое маскирование заголовков и полезной нагрузки для защиты от систем глубокого анализа трафика (DPI).

[!IMPORTANT] Обновляетесь с версии v0.2.x? Пожалуйста, ознакомьтесь с Руководством по миграции конфигурации v0.3.1.


Технические характеристики

Возможность Описание
Маскировка Трафика Шифрование заголовков и данных уникальными ключами для каждого пакета. Выглядит как белый шум.
Noise Protocol Noise_NNpsk0_25519_ChaChaPoly_BLAKE2s — обмен ключами с forward secrecy и PSK-аутентификацией.
Надёжный UDP (ARQ) Выборочные ACK/NACK, лимитированные повторы, настраиваемый буфер и экспоненциальный бэкофф.
Мультиплексирование Несколько логических TCP-стримов внутри одной UDP-сессии с по-стримовым контролем потока.
Смена IP (Roaming) Сохранение соединений при переключении сетей благодаря трекингу по ID сессии.
Режим UoT Упаковка UDP внутрь TCP-соединения для обхода блокировок UDP-трафика.
TCP Фрагментация (В стиле Zapret) Обходит ТСПУ/DPI за счёт нарезки стартовых пакетов Noise/TLS на мелкие куски.
Мусорные Пакеты Закидывает анализаторы DPI рандомными пакетами до начала рукопожатия, сбивая сигнатуры.
Адаптивный Паддинг Добивает размер пакетов до 1024 байт, предотвращая детектирование по размерам пакетов.
Режим TUN Нативная интеграция сетевого стека (smoltcp) для маршрутизации всего устройства без tun2socks.
Management API Встроенный REST API для управления сервером, генерации ключей и сбора метрик.
TURN Relay Поддержка стандарта RFC 5766 TURN для обхода NAT.

Архитектура

flowchart LR
    Apps[Локальные приложения] -->|SOCKS5 / TUN| CoreC

    subgraph Client [Клиент]
        CoreC[OSTP Client] -.->|Шифрует и маскирует| NetC[Транспортный уровень]
    end

    NetC <==>|Зашифрованный UDP / UoT| NetS

    subgraph Server [Сервер]
        NetS[Транспортный уровень] -.->|Расшифровывает| CoreS[OSTP Server]
    end

    CoreS -->|Релей| WWW((Интернет))

Быстрый старт

1. Установка

Linux:

bash <(curl -Ls https://raw.githubusercontent.com/ospab/ostp/master/scripts/install.sh)

Windows (PowerShell от Администратора):

irm https://raw.githubusercontent.com/ospab/ostp/master/scripts/install.ps1 | iex

2. Конфигурация

Сгенерируйте базовые файлы конфигурации:

# На сервере:
./ostp --init server

# На клиенте:
./ostp --init client

Пример конфигурации сервера (config.json):

{
  "mode": "server",
  "listen": "0.0.0.0:50000",
  "access_keys": ["ВАШ_КЛЮЧ"]
}

Пример конфигурации клиента (config.json):

{
  "mode": "client",
  "version": "0.3.1",
  "inbounds": [
    { "type": "local_proxy", "tag": "socks-in", "protocol": "socks", "listen": "127.0.0.1", "port": 1088 }
  ],
  "outbounds": [
    {
      "type": "ostp",
      "tag": "proxy",
      "server": "IP_СЕРВЕРА",
      "port": 50000,
      "access_key": "ВАШ_КЛЮЧ",
      "transport": { "type": "udp" }
    }
  ]
}

3. Запуск

# Запуск с конфигурацией по умолчанию (config.json)
./ostp

# Запуск с указанием пути к конфигурации
./ostp --config /path/to/config.json

Либо подключение через однострочную ссылку на стороне клиента:

./ostp "ostp://ВАШ_КЛЮЧ@IP_СЕРВЕРА:50000?transport=udp"

Спецификация протокола

Уровень Механизм
Обмен ключами Noise NNpsk0 (X25519 + ChaChaPoly + BLAKE2s) zero-RTT
Шифрование ChaCha20-Poly1305 AEAD на каждый пакет
Обфускация заголовков HMAC-SHA256 маска на основе session_id и nonce
Надёжность Selective ACK с cumulative + SACK диапазонами
Ретрансмиссия Rate-limited NACK + exponential backoff RTO
Keepalive Ping/Pong с измерением RTT каждые 5с

Сборка из исходников

Зависимости для сборки

  • Rust 1.70+
  • Go 1.20+ (необходимо для сборки встроенного DNS-туннеля dnstt)

Благодарности: Этот проект использует dnstt от Bamsoftware для обеспечения устойчивого туннелирования поверх DNS. Бинарники dnstt автоматически компилируются и встраиваются в ядро OSTP.

cargo build --release

# Кросс-компиляция для Linux
cross build --release --target x86_64-unknown-linux-gnu

Документация


Лицензия

GNU Affero General Public License v3.0 (AGPL-3.0). Подробнее см. в файле LICENSE.


Контакты