WireSpectr

Собственный протокол iBase. Криптография уровня WireGuard, маскировка под TLS 1.3, встроенное мультиплексирование. Снаружи — обычный HTTPS. Внутри — шторм данных.

v0.1 · draft Noise_IK ChaCha20-Poly1305 Открытая спецификация

Что такое WireSpectr

WireSpectr — это протокол для построения защищённых туннелей, устойчивых к глубокой инспекции пакетов (DPI) и активному зондированию. Мы взяли криптографию WireGuard — проверенную временем и аудитами — и добавили маскировку под TLS 1.3 и нативное мультиплексирование.

Application Любые данные: HTTP, DNS, что угодно
Multiplexing N логических потоков в одном туннеле
Crypto Noise_IK + X25519 + ChaCha20-Poly1305
Obfuscation Fake TLS 1.3 + StyleCCS + ротация SNI

Ключевые особенности

Что отличает WireSpectr от WireGuard, VLESS и других протоколов.

Криптография WireGuard

Noise_IK, X25519, ChaCha20-Poly1305, BLAKE2s, HKDF. Те же примитивы, что в WireGuard — проверены аудитами.

Маскировка под TLS 1.3

Fake TLS ClientHello — байт-в-байт как у Chrome 120+. CCS-запись для совместимости с устаревшими middlebox.

Мультиплексирование

N логических потоков внутри одного туннеля. Нет head-of-line blocking, когда один поток тормозит — остальные работают.

Ротация SNI

Каждая сессия маскируется под новый домен: Cloudflare, CloudFront, Google Storage, Akamai. Заблокировать один — бесполезно.

Fallback на реальный сайт

При неверном токене сервер прозрачно проксирует трафик на настоящий Cloudflare. Сканер видит валидный сайт.

Replay-защита

Timestamp-окно ±30 сек + nonce-кэш (Bloom filter, TTL 60 сек). Повторная передача пакета отбрасывается.

Как работает handshake

Кратко — что происходит за первые 300 миллисекунд соединения.

# 1. Fake TLS ClientHello (Chrome 120+ профиль) Client → Server: TLS ClientHello (SNI, 32 random bytes session_id) Client → Server: CCS (14 03 03 00 01 01) # 2. Fake TLS ServerHello + Certificate Server → Client: TLS ServerHello, Certificate, Finished # 3. Noise_IK внутри AppData Client → Server: client_id, timestamp, nonce, ephemeral_pub, hmac Server → Client: Noise_IK msg 2 (ephemeral_pub, tag) # 4. Готово — туннель установлен Client ⇄ Server: DATA-фреймы (ChaCha20-Poly1305)

Формат фрейма

Каждый фрейм — 9 байт заголовка + payload + 16 байт auth tag.

+--------+--------+------------------+--------+--------+ | ver | type | stream_id | flags | len | | 1 байт | 1 байт | 4 байта | 1 байт | 2 байта| +--------+--------+------------------+--------+--------+ | | | encrypted payload | | | +---------------------------------------------------------+ | tag (16 bytes) | +---------------------------------------------------------+ // type: 0x01 DATA | 0x02 PING | 0x03 CLOSE | 0x04 REKEY | 0x05 OPEN // flags: 0x01 FIN | 0x02 RST | 2 бита приоритета

Версии протокола

План развития WireSpectr от MVP до стабильной версии.

Версия Фичи Статус
WS/1 Fake TLS 1.3, Noise_IK, ChaCha20, мультиплексирование MVP
WS/2 + REKEY, flow control, приоритеты Планируется
WS/3 + Post-quantum (Kyber + X25519) Планируется
WS/Reality + мимикрия под чужой TLS-сервер Идея

WireSpectr vs WireGuard vs VLESS

Чем наш протокол отличается от существующих решений.

Фича WireGuard VLESS WireSpectr
Крипто Noise_IK нет (полагается на TLS) Noise_IK
Маскировка — через Reality встроенная (Fake TLS)
Мультиплексирование — через mux.cool нативное
Fallback — через Reality встроенный
Replay-защита слабая — timestamp + nonce-кэш
Ротация SNI — — да