todo/DPI/statistical-morphing-concept.md
loop-uh 0ad0bcc8dd
Some checks failed
Published content check / validate (push) Failing after 5s
seo+зеркало: [!mirror]-плашка со ссылкой на вики и description во frontmatter всех заметок
Каждая публикуемая заметка получила callout-шапку со ссылкой на свою страницу
wiki.zapret.moe (на самой вики она вырезается транформером RemoveMirrorCallout,
видна только на зеркале Obsidian Publish и в Forgejo) и SEO-поле description —
1–2 предложения для meta description обоих сайтов.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-26 22:05:57 +03:00

18 KiB
Raw Permalink Blame History

date tags link aliases img description
2026-06-07
dpi
morphing
mimicry
traffic-analysis
vpn
rkn
https://habr.com/ru/articles/1012926/
Адаптивная мимикрия
Статистический морфинг
Behavioral mimicry concept
Разбор концепта адаптивной мимикрии: маскировка поведения трафика под живого пользователя против DPI, пределы идеи и проблема «мёртвого попугая».

[!mirror] Резервное зеркало Актуальная версия этой страницы — на основной вики: wiki.zapret.moe/DPI/statistical-morphing-concept

🦎 Адаптивная мимикрия: статистический морфинг трафика (концепт)

[!quote] Первоисточник Эта заметка разбирает статью Ивана Сорокина (@unxed) на Хабре: 👉 «Адаптивная мимикрия: как обмануть DPI» — habr.com/ru/articles/1012926

Это третья заметка в связке. Первые две описывают, как DPI ловит обход по поведению (dpi-analysis-pipeline) и конкретно dpi-tls-june-2026. Эта — разбирает предлагаемый ответ на ту самую открытую проблему: мимикрию под поведение живого пользователя.

[!warning] Статус: это КОНЦЕПТ, а не рабочий инструмент Автор сам позиционирует материал как «концепт для обсуждения», а не продукт (уровень «простой», 5 минут чтения). Готовой реализации нет. Ниже — разбор идеи, её места в исследовательской линии и честная оценка пределов: у подхода «имитации» есть известная фундаментальная слабость (см. раздел «Почему это трудно»). Читайте как направление мысли, а не как руководство к настройке.


TL;DR

Все нынешние обходы (включая VLESS+REALITY) маскируют протокол — делают TLS неотличимым от настоящего. Но DPI перешёл на анализ поведения (см. парные заметки), и тут маскировка протокола не спасает.

Идея статьи: маскировать не протокол, а поведение. Пусть обходной канал не просто шифруется, а повторяет статистику вашего же обычного трафика — те же паузы, объёмы, ритм. Тогда снаружи он выглядит не как «прокси», а как «этот человек читает ленту».

Цена честно названа автором: это «канал последней надежды» для текста (целевая полоса 64128 Кбит/с), а не быстрый VPN. И — как покажем ниже — даже у этой идеи есть теоретический потолок.


На пальцах: мимикрия под себя, а не под протокол

Вернёмся к аналогии таможни из dpi-tls-june-2026. REALITY сделал идеальный поддельный чемодан — снаружи не отличить от туриста. Но таможня перестала смотреть на чемодан и начала смотреть на манеру пассажира: как ходит, как часто, с какими паузами.

Адаптивная мимикрия отвечает на это так: скопировать манеру. Не «выглядеть как абстрактный обычный человек», а «вести себя ровно так, как вы обычно ведёте себя в сети» — с вашими типичными задержками между действиями и объёмами на чтение страницы.

[!info] Ключевое отличие от uTLS uTLS (см. dpi-tls-june-2026#🔬 Технические детали: uTLS — как работает TLS-почерк) копирует статический отпечаток ClientHello — «как выглядит» одно рукопожатие. Морфинг же копирует динамику потока во времени — «как ведёт себя» соединение. Это два разных слоя: uTLS закрывает Этап 2 воронки, морфинг целится в Этап 4 (метаанализ потока).


Три фазы статистического морфинга

Автор предлагает такой процесс на клиенте:

  1. Обучение. Приложение наблюдает за вашим реальным трафиком: с какими задержками вы открываете страницы, сколько данных потребляете при чтении текста, какой ритм у вашего сёрфинга.
  2. Генерация паттерна. Из собранной статистики строится лёгкая модель «легитимного трафика именно этого пользователя».
  3. Инкапсуляция с морфингом. Полезные данные пакуются в TLS 1.3 и выпускаются строго в рамках этого паттерна — например: «скачать 10 КБ → подождать 5 с → отправить 2 КБ», если так выглядит ваш типичный ритм.

Технические приёмы, которыми это достигается:

  • Padding & timing obfuscation — искусственные паузы и добивка пакетов, чтобы размеры и тайминги совпали с моделью;
  • нарезка данных на куски «типичных» для пользователя размеров;
  • ограничение полосы 64128 Кбит/с — намеренное, чтобы канал выглядел как фоновая активность, а не как закачка;
  • UDP по типу Hysteria — чтобы уйти от части TCP-анализа (поведение TCP-потока тоже выдаёт, см. ниже).

Предлагаемая инфраструктура

Компонент Что предлагается
Сервер распределённый пул VPS с валидными доменами, в стиле REALITY (с защитой от active probing)
Клиент (Android) реализация через системный VpnService; упоминается код AndIodine (Android-обёртка над DNS-туннелем iodine)
Антиспам Anubis — реверс-прокси с Proof-of-Work (изначально против ИИ-скраперов) как защита пула от засорения
Запасной канал мессенджер с mesh-маршрутизацией по Wi-Fi/Bluetooth — для узлов внутри заблокированного сегмента (в духе Briar/Bridgefy)

[!note] Названные инструменты — реальные Hysteria (прокси поверх QUIC/UDP), Anubis (PoW-прокси Xe Iaso), AndIodine/iodine (IP-over-DNS), VpnService (Android API) — существующие проекты. Новизна статьи не в них, а в связке: использовать поведенческую модель пользователя как «форму», в которую льётся трафик.


🧱 Почему это трудно: имитация и её фундаментальный потолок

Здесь — главная причина, почему заметка помечена «концепт». Подход относится к классу «имитация» (mimicry), а у этого класса есть известная теоретическая проблема.

[!danger] «The Parrot is Dead» Каноническая работа Houmansadr, Brubaker, Shmatikov, IEEE S&P 2013, «The Parrot Is Dead: Observing Unobservable Network Communications» показала: системы, которые имитируют легитимный протокол/поведение, фундаментально уязвимы, потому что имитацию нужно сделать идеальной во всех побочных каналах сразу — включая реакцию на ошибки, потери пакетов, тайминги повторов, краевые случаи. Censor легко находит расхождение, которое имитатор не воспроизвёл.

И ровно это автор статьи называет сам как слабость своего концепта: «цензор может различить трафик по разной реакции на потери пакетов». Это и есть аргумент «мёртвого попугая» — имитируемое приложение и морфер по-разному отреагируют на сетевой сбой (канонический пример в самой работе — VoIP/Skype: потеря пакетов меняет битрейт кодека и активность RTCP), и это расхождение палится.

Дальше — остальные пределы, часть из которых автор тоже честно перечисляет:

  • Overhead. Морфинг под фиксированный ритм = намеренные паузы и padding → низкая полоса и высокая задержка. Отсюда и cap 64128 Кбит/с. Защиты этого класса с постоянной скоростью ещё дороже — это известно по website-fingerprinting (constant-rate BuFLO и провабельно-стойкая Tamaraw): кратный overhead по полосе и задержке.
  • Round-trip-узор никуда не делся. Даже идеальный морфинг размеров и пауз не убирает число round-trip'ов вложенного TLS-рукопожатия — а именно по нему детект из USENIX Security 2024 и работает (подробно — в dpi-tls-june-2026#Почему padding и mux в принципе не прячут TLS-в-TLS (детект по round-trip'ам)). Морфинг повышает стоимость детекта, но не закрывает этот вектор.
  • Парадокс уникальности. Мимикрия под свой профиль — палка о двух концах: с одной стороны, это правдоподобно; с другой — слишком характерный личный паттерн может стать отпечатком именно вас (та же логика, что с уникальным uTLS-отпечатком в dpi-tls-june-2026#Фиксированный список фингерпринтов uTLS — это слабое место?).
  • Whitelist-цензура убивает всё. При модели «запрещено всё, кроме явно разрешённого» мимикрия бессмысленна: нет фонового легитимного трафика, под который маскироваться. В пределе — при полной Zapret/about#Что будет если полностью изолировать рунет? — пропадает и сам внешний канал, морфить уже некуда (это более сильный сценарий, чем whitelist, но добивает по той же причине).
  • Батарея. Постоянный анализ и обфускация на телефоне жрут заряд.

🧬 Это не ново: исследовательская линия

Важно для трезвой оценки: «статистический морфинг» — не изобретение статьи, а давняя ветка исследований. Концепт стоит читать как популярное переизложение известного направления:

  • Traffic Morphing (Wright, Coull, Monrose, NDSS 2009) — ранняя работа ровно про подгонку статистики пакетов под целевое распределение.
  • Format-Transforming Encryption (FTE) (Dyer, Coull, Ristenpart, Shrimpton, CCS 2013) — придание шифропотоку формы разрешённого протокола.
  • Защиты от website-fingerprinting — WTF-PAD, Walkie-Talkie, Tamaraw, BuFLO: padding и регуляризация тайминга/размеров. Их главный урок и есть «безопасность стоит полосы и задержки».

Ценность статьи — не новый алгоритм, а постановка вопроса «раз DPI смотрит на поведение, давайте маскировать поведение» и сборка из реальных кирпичей (Hysteria/Anubis/iodine/VpnService).


🎯 Главный вывод

Концепт целит в правильную точку: парные заметки показывают, что нерешённый слой — именно поведенческий (Сигнал 3 / Этап 4-5), и что настоящая защита — не дополнять трафик, а переформировывать его. Статистический морфинг — это попытка именно переформировать.

Но честная оценка такова:

  1. Как имитация он наследует проблему «мёртвого попугая» — идеально воспроизвести все побочные каналы (особенно реакцию на ошибки) практически невозможно, и автор это признаёт.
  2. Он не закрывает round-trip-детект вложенного рукопожатия — только удорожает его.
  3. Цена — драматическое падение скорости; реалистичная ниша — текстовый «канал последней надежды», а не повседневный VPN.

То есть это ценное направление мысли, честно обозначенное автором как концепт, а не готовое решение. Оно хорошо закрывает пробел в нашей трилогии: что можно было бы противопоставить поведенческому DPI — и почему это так трудно.


📚 См. также

  • 🔗 Первоисточник: habr.com/ru/articles/1012926 — Иван Сорокин (@unxed)
  • 🧊 Парная заметка: dpi-tls-june-2026 — какой именно поведенческий сигнал морфинг пытается обойти
  • 🔍 Парная заметка: dpi-analysis-pipeline — Этап 4 (метаанализ потока), куда целится морфинг
  • 🕵️ Полевой кейс: browser-ja4-fingerprint-block — статический uTLS-отпечаток как маркер: тот слой, что морфинг не закрывает
  • 🔗 USENIX Security 2024 — Fingerprinting Obfuscated Proxy Traffic (почему round-trip переживает морфинг)
  • 🔗 The Parrot Is Dead (IEEE S&P 2013) — фундаментальная критика подхода «имитации»
  • 🔗 Hysteria · Anubis · iodine
  • Zapret/about