Руководства

VPN блокируют через DPI: как работает глубокий анализ трафика и что помогает

Что такое DPI, как он распознаёт VPN-трафик и как к этому подходят Reality, Trojan и Hysteria2 — честно об ограничениях и с практическими шагами.

Вчера VPN работал. Сегодня он подключается и зависает или не подключается вовсе, хотя сам интернет в порядке. Во многих сетях причина — DPI (глубокий анализ пакетов): оборудование, которое смотрит не только на то, куда идёт трафик, но и на то, как он выглядит. Разберём, что видит DPI, как к нему подходят транспорты Colitu и что можете сделать вы, — не делая вид, будто какой-то протокол невидим.

Что такое DPI

Обычная маршрутизация смотрит на адреса и порты. DPI идёт дальше: изучает начало каждого соединения, форму трафика, а иногда и содержимое незашифрованных пакетов, после чего относит поток к какому-то классу и применяет правило — пропустить, замедлить или оборвать. Операторы используют DPI для управления трафиком, компании — для безопасности, государства — для фильтрации. В России такое оборудование, установленное у операторов, известно как ТСПУ.

На что смотрит DPI

  • Адреса. Самый простой способ — список заблокированных IP-адресов или сетей. Если заблокирован адрес самого сервера, не поможет никакой протокол.
  • Рукопожатия. Многие классические VPN-протоколы начинаются с узнаваемых сообщений. WireGuard, например, использует фиксированные типы и размеры сообщений и не пытается их скрывать.
  • Приветствие TLS. Первое сообщение TLS-соединения (ClientHello) открытым текстом несёт имя запрашиваемого сайта (SNI) и имеет «отпечаток» из наборов шифров и расширений. Клиент, не похожий на распространённый браузер, выделяется.
  • Форма трафика. Размеры пакетов и интервалы между ними выдают закономерности — например, TLS-трафик, вложенный в другое TLS-соединение.
  • Случайность. Трафик, который с первого же байта выглядит как чистый случайный шум, сам по себе является сигналом; исследователи описывали системы фильтрации, блокирующие его именно по этому признаку.
  • Активное зондирование. Фильтр сам подключается к подозрительному серверу и смотрит, как тот отвечает.

Как выглядит блокировка через DPI

  • соединение обрывается на этапе рукопожатия;
  • соединение открывается, передаёт немного данных и зависает;
  • скорость падает до непригодной для работы;
  • в одной сети (домашний интернет) всё работает, в другой (мобильный оператор) — нет.

Как транспорты Colitu подходят к DPI

Каждый сервер Colitu предлагает пять транспортов, построенных на разных идеях:

  • VLESS Reality не имеет собственного сертификата. Он заимствует рукопожатие TLS 1.3 реального стороннего сайта, поэтому зонд, подключившийся к серверу, видит этот сайт. Подробнее: VLESS Reality.
  • VLESS XHTTP передаёт данные как HTTP-подобный поток из отдельных запросов на отправку и получение поверх Reality. Полезен там, где обрывают длинные одиночные TCP-соединения. Подробнее: VLESS XHTTP.
  • Trojan работает поверх настоящего TLS и похож на HTTPS. Клиент с неверным паролем видит поведение обычного веб-сервера. Подробнее: Trojan.
  • Hysteria2 работает поверх QUIC с TLS 1.3 и настоящим сертификатом, поэтому напоминает HTTP/3. Зависит от того, проходит ли UDP. Подробнее: Hysteria2.
  • Shadowsocks 2022 использует шифрование AEAD с защитой от повторов и не имеет узнаваемого рукопожатия. Он лёгкий и быстрый, но там, где фильтры охотятся на случайный на вид трафик, уязвимее остальных. Подробнее: Shadowsocks 2022.
ТранспортИдея маскировкиГлавное слабое место
VLESS RealityРукопожатие реального сайтаTCP, медленнее при потерях
VLESS XHTTPHTTP-подобные запросы поверх RealityTCP, медленнее при потерях
TrojanОбычный HTTPSОпирается на собственный TLS-сертификат
Hysteria2HTTP/3 поверх QUICСети, ограничивающие UDP
Shadowsocks 2022Никакого узнаваемого шаблонаСлучайность может быть сигналом

Честно об ограничениях

Ни один транспорт не является «необнаружимым» и ни один нельзя назвать «неблокируемым». Системы фильтрации со временем меняются, а оператор сети всегда может заблокировать адрес сервера или разрешить только утверждённый список сервисов. Именно поэтому Colitu не полагается на один «волшебный» протокол: у него несколько транспортов с разными сильными сторонами, и приложение само выбирает тот, что работает в вашей сети прямо сейчас. Мы не можем обещать, что какой-либо транспорт будет работать в любой сети.

Что делает Adaptive Connect, когда мешает DPI

Adaptive Connect не доверяет одному успешному рукопожатию. Транспорт принимается, только если через него проходит проверка реальным трафиком. Против DPI это важно: он часто пропускает рукопожатие, а затем «замораживает» данные. Транспорт, через который ничего не прошло, отодвигается назад, Android запоминает последний рабочий транспорт для каждого сервера, а приложение для Windows каждые две секунды проверяет, идёт ли трафик через туннель, и переподключается, если нет. Кроме того, приложения в обобщённом виде сообщают панели, какие транспорты сработали, чтобы настройки по умолчанию со временем улучшались.

Что можете сделать вы

  1. Обновляйте приложение.
  2. Дайте приложению закончить подключение: в сети с фильтрацией первое подключение может занять больше времени.
  3. Попробуйте другую локацию: если заблокирован адрес одного сервера, другой может работать.
  4. Сравните с другой сетью, например Wi-Fi вместо мобильного интернета, чтобы понять, привязана ли проблема к одному оператору.
  5. Напишите в поддержку, указав оператора, регион и время начала проблемы: это помогает нам видеть закономерности.

Правила использования VPN в разных странах различаются. Вы сами отвечаете за соблюдение законов, которые на вас распространяются. Читайте также: UDP заблокирован и проблемы с подключением в справочном центре.

Источники