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 XHTTP | HTTP-подобные запросы поверх Reality | TCP, медленнее при потерях |
| Trojan | Обычный HTTPS | Опирается на собственный TLS-сертификат |
| Hysteria2 | HTTP/3 поверх QUIC | Сети, ограничивающие UDP |
| Shadowsocks 2022 | Никакого узнаваемого шаблона | Случайность может быть сигналом |
Честно об ограничениях
Ни один транспорт не является «необнаружимым» и ни один нельзя назвать «неблокируемым». Системы фильтрации со временем меняются, а оператор сети всегда может заблокировать адрес сервера или разрешить только утверждённый список сервисов. Именно поэтому Colitu не полагается на один «волшебный» протокол: у него несколько транспортов с разными сильными сторонами, и приложение само выбирает тот, что работает в вашей сети прямо сейчас. Мы не можем обещать, что какой-либо транспорт будет работать в любой сети.
Что делает Adaptive Connect, когда мешает DPI
Adaptive Connect не доверяет одному успешному рукопожатию. Транспорт принимается, только если через него проходит проверка реальным трафиком. Против DPI это важно: он часто пропускает рукопожатие, а затем «замораживает» данные. Транспорт, через который ничего не прошло, отодвигается назад, Android запоминает последний рабочий транспорт для каждого сервера, а приложение для Windows каждые две секунды проверяет, идёт ли трафик через туннель, и переподключается, если нет. Кроме того, приложения в обобщённом виде сообщают панели, какие транспорты сработали, чтобы настройки по умолчанию со временем улучшались.
Что можете сделать вы
- Обновляйте приложение.
- Дайте приложению закончить подключение: в сети с фильтрацией первое подключение может занять больше времени.
- Попробуйте другую локацию: если заблокирован адрес одного сервера, другой может работать.
- Сравните с другой сетью, например Wi-Fi вместо мобильного интернета, чтобы понять, привязана ли проблема к одному оператору.
- Напишите в поддержку, указав оператора, регион и время начала проблемы: это помогает нам видеть закономерности.
Правила использования VPN в разных странах различаются. Вы сами отвечаете за соблюдение законов, которые на вас распространяются. Читайте также: UDP заблокирован и проблемы с подключением в справочном центре.
Источники
- RFC 8446: TLS 1.3
- RFC 9000: QUIC
- WireGuard: техническое описание (whitepaper)
- Документация Project X (Xray)
- REALITY на GitHub
- Описание протокола Trojan
- Документация Hysteria 2
- Shadowsocks SIP022: редакция Shadowsocks 2022
- Wu et al., How the Great Firewall of China detects and blocks fully encrypted traffic (USENIX Security 2023)
- OONI: Open Observatory of Network Interference