vaspvort
Ночной дозор
Команда форума
Модератор
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
Private Club
Старожил
Migalki Club
Меценат💎
С вводом DPI и белых списков технические средства интернет-цензуры поменялись.
Буквально несколько лет назад ркн не могли заблокировать телеграм из-за того, что вместо сервиса они пытались блокировать АЙПИ адреса и из-за этого отшибнули пол российского интернета. Сейчас большинство впн протоколов заблокированы и один из оставшихся рабочих это VLESS.
К сожалению, у этого протокола есть серьезные проблемы, из-за которых заблокировать его будет проще простого.
В этой статье мы расскажем обо всем.
Дело в том, что VLESS не ведет себя как обычный впн протокол. Он не шифрует трафик, а маскирует его под обычный веб-трафик. Шифрование и защита же делегируется на транспортный уровень как наример TLS или Reality
Заблокировать все TLS на 443 нельзя(или можно...), потому что все сайты в интернете станут недоступные, поэтому остаются только варианты по типу бану IP или использования статистических эвристик.
Но это еще не все! Живучие протоколы способны менять внешний вид транспорта, прятаться за популярными CDN и усложнять активное зондирование.
А зря... потому что из-за DPI современная в*йна цензеров и впн протоколов перешла из статических методов блокировки по IP-адресам к системам, которые анализируют содержимое и поведение зашифрованных соединений в реальном времени.
Раньше блокировки работали по принципу плохой айпи забанить, сейчас же каждый запрос проходит через кучуиндусов нейронок и анализаторов для определения впн это или нет.
Даже когда трафик шифруется, у соединения остаются видны транспортные параметры, последовательности действий и структуры хендшейка.
DPI анализирует эти сигналы и пытается понять это обычный веб-сеанс или замаскированный туннель
Кто-то до сих пор считает ChatGPT своим другом?
В этой тусе есть еще и REALITY, который в связке с VLESS делает так, чтобы соединение снаружи выглядело максимально похоже на обычный доступ к разрешенному сайту.
Суть этой идеи в том, что DPI должен принять этот трафик за HTTPS, а сервер должен уметь отличать своего клиента от сканера.
Эта компашка и позволяет серверу Xray выдавать себя за любой разрешенный сайт (например, обычный безобидный сайт microsoft.com), перехватывая TLS хендшейк.
Сначала клиент Xray отправляет ClientHello со SNI целевого легитимного сайта.
Потом сервер XRay, настроенный на этот же IP, анализирует ClientHello.
Если ClientHello содержит специфические параметры (например, определенный Session ID или расширения), Xray распознает своего клиента.
После же, Xray генерирует временный сертификат к реальному сайту, чтобы получить валидные параметры сессии, но подменяет ключи шифрования, устанавливая защищенный канал с клиентом, а не с реальным сайтом.
Xray же написан на языке Go и в основе использует стандартную библиотеку crypto/tls, которая и создает несостыковку в реализации протоколов, которая может быть использована для идентификации трафика. DPI все это может заподозрить и увидеть
Протокол остается протоколом и даже временные задержки состояний TCP-стека оставляют следы.
Дальше по пунктам
Инструменты типа JARM зондируют сервер, отправляя 10 специально сформированных пакетов ClientHello и анализируя ответы. Хэш JARM для сервера на Go будет кардинально отличаться от хэша сервера Nginx, даже если они используют один и тот же сертификат и порт.
Фан факт
Если цензор отправляет на порт сервера защищенный REALITY некорректный запрос к HTTP, то NGINX выдаст стандартную HTML-страницу ошибки 400 Bad Request со стандартными заголовками nginx, а написанный на Go подставной сервер выдаст обычный текст 400 Bad Request или вовсе закроет соединение.
А кастомизировать этот ответ под nginx нормально нельзя, так как библиотека net/http в Go обрабатывает некоторые запросы автономно, не передавая управление пользовательскому коду
Hysteria 2 полностью отказывается от TCP в пользу UDP, что во-первых делает потерю отдельных пакетов не таким критичным, а при TCO подключении. А во-вторых, трафик протокола криптографически и поведенчески неотличим от стандартного трафика HTTP/3
Если цензор пытается подключиться к порту Hysteria 2 без валидного пароля, сервер ведет себя как обычный веб-сервер, возвращая код ошибки 404 или перенаправляя на безобидную страницу
В отличие от соевых алгоритмов вроде CUBIC или BBR, которые снижают скорость при потере пакетов, Brutal работает по принципу фиксированной целевой скорости и протокол отправляет данные с этой скоростью, игнорируя сигналы о потерях.
Если цензор отбрасывает 20% пакетов, Brutal компенсирует это отправкой избыточных данных, поддерживая полезную нагрузку на заданном уровне. Из-за этогоц ензор больше не может просто замедлить пользователя, просто отбрасывая часть пакетов.
Чтобы остановить Brutal, цензору придется заблокировать весь UDP-трафик или тратить огромные вычислительные ресурсы на глубокий анализ каждого пакета, это очень дорого.
С этой технологией шанс, что оборудование устареет сильно снижается.
Что насчет блокировки, на самом деле процесс запустился еще в прошлом году.
В ноябре прошлого года уже наблюдались сбои в работе VLESS во многих регионах РФ.
Полностью заблокировать этот протокол сложно, но из-за существующих дыр это становится вполне реально. Что с этим делать? Может придумывать новые протоколы, которые не имеют таких очевидных проблем? А кто будет финансировать? Ничего пока не понятно
Источник
Буквально несколько лет назад ркн не могли заблокировать телеграм из-за того, что вместо сервиса они пытались блокировать АЙПИ адреса и из-за этого отшибнули пол российского интернета. Сейчас большинство впн протоколов заблокированы и один из оставшихся рабочих это VLESS.
К сожалению, у этого протокола есть серьезные проблемы, из-за которых заблокировать его будет проще простого.
В этой статье мы расскажем обо всем.
Чем этот протокол отличается от других впн протоколов
Сначала нужно разобраться почему этот протокол так долго живет. OpenVPN, AmneziaWG, WireGuard... заблокировали, а этот заср*нец живет, почему?Дело в том, что VLESS не ведет себя как обычный впн протокол. Он не шифрует трафик, а маскирует его под обычный веб-трафик. Шифрование и защита же делегируется на транспортный уровень как наример TLS или Reality
Заблокировать все TLS на 443 нельзя
Но это еще не все! Живучие протоколы способны менять внешний вид транспорта, прятаться за популярными CDN и усложнять активное зондирование.
DPI
Все в последнее слышат аббревиатуру DPI (Deep Packet Inspection), но в реальности никто даже не знает что это такое. Максимум, у всех на слуху програмка для обходов GoodbyeDPI, которая как-то там обходит какие-то там блокировки.А зря... потому что из-за DPI современная в*йна цензеров и впн протоколов перешла из статических методов блокировки по IP-адресам к системам, которые анализируют содержимое и поведение зашифрованных соединений в реальном времени.
Раньше блокировки работали по принципу плохой айпи забанить, сейчас же каждый запрос проходит через кучу
Даже когда трафик шифруется, у соединения остаются видны транспортные параметры, последовательности действий и структуры хендшейка.
DPI анализирует эти сигналы и пытается понять это обычный веб-сеанс или замаскированный туннель
Машинное обучение
Китайский Фаерволл, ТСПУ в России и системы фильтрации в Иране используют алгоритмы машинного обучения для классификации трафика. DPI анализирует трафик, а значит четких алгоритмов и правил блокировки нет. Вместо этого, млки применяют эвристику и пытаются распознать подозрительность трафика по косвенным признакам. Как вы понимаете, они обучаются и чем больше данных и разных трафиков через эти нейронки пройдет, тем точнее и быстрее будет происходить обнаружение.Как VLESS обходит белые списки?
Нужно уяснить, что сам по себе VLESS именно протокол общения, и все. Он ничего не маскирует и не шифрует и даже не должен выглядеть как обычный хттпс. Важной составляющей этой системы - это движок Xray, который умеет поднимать прокси-протоколы и работать поверх разных транспортов, которые нам как раз нужны для шифрования и всяких грязных делВ этой тусе есть еще и REALITY, который в связке с VLESS делает так, чтобы соединение снаружи выглядело максимально похоже на обычный доступ к разрешенному сайту.
Суть этой идеи в том, что DPI должен принять этот трафик за HTTPS, а сервер должен уметь отличать своего клиента от сканера.
Эта компашка и позволяет серверу Xray выдавать себя за любой разрешенный сайт (например, обычный безобидный сайт microsoft.com), перехватывая TLS хендшейк.
Сначала клиент Xray отправляет ClientHello со SNI целевого легитимного сайта.
Потом сервер XRay, настроенный на этот же IP, анализирует ClientHello.
Если ClientHello содержит специфические параметры (например, определенный Session ID или расширения), Xray распознает своего клиента.
После же, Xray генерирует временный сертификат к реальному сайту, чтобы получить валидные параметры сессии, но подменяет ключи шифрования, устанавливая защищенный канал с клиентом, а не с реальным сайтом.
Проблемы VLESS
Фундаментальная проблема REALITY заключается в том, что сервер Xray имитирует поведение легитимного сервера, но не является им. В большинстве случаев легитимные хайлоад сайты используют оптимизированные стеки TLS на базе OpenSSL, например клаудфрейр или nginx.Xray же написан на языке Go и в основе использует стандартную библиотеку crypto/tls, которая и создает несостыковку в реализации протоколов, которая может быть использована для идентификации трафика. DPI все это может заподозрить и увидеть
Протокол остается протоколом и даже временные задержки состояний TCP-стека оставляют следы.
Дальше по пунктам
Golang вредит протоколу
Уже известны инструменты, которые определяют VLESS именно по голанг шифрованию, которое используются в нем.Инструменты типа JARM зондируют сервер, отправляя 10 специально сформированных пакетов ClientHello и анализируя ответы. Хэш JARM для сервера на Go будет кардинально отличаться от хэша сервера Nginx, даже если они используют один и тот же сертификат и порт.
Фан факт
Если цензор отправляет на порт сервера защищенный REALITY некорректный запрос к HTTP, то NGINX выдаст стандартную HTML-страницу ошибки 400 Bad Request со стандартными заголовками nginx, а написанный на Go подставной сервер выдаст обычный текст 400 Bad Request или вовсе закроет соединение.
А кастомизировать этот ответ под nginx нормально нельзя, так как библиотека net/http в Go обрабатывает некоторые запросы автономно, не передавая управление пользовательскому коду
Протокол будущего: Hysteria 2
Самым очевидным ответом на ограничения TCP стал выход протокола Hysteria 2, который основан на протоколе QUIC поверх UDP.Hysteria 2 полностью отказывается от TCP в пользу UDP, что во-первых делает потерю отдельных пакетов не таким критичным, а при TCO подключении. А во-вторых, трафик протокола криптографически и поведенчески неотличим от стандартного трафика HTTP/3
Если цензор пытается подключиться к порту Hysteria 2 без валидного пароля, сервер ведет себя как обычный веб-сервер, возвращая код ошибки 404 или перенаправляя на безобидную страницу
Hysteria + Brutal
Главным новшеством Hysteria является внедрение собственного алгоритма контроля перегрузки Brutal, который неплохо борется с искуственнм замедлением трафика.
В отличие от соевых алгоритмов вроде CUBIC или BBR, которые снижают скорость при потере пакетов, Brutal работает по принципу фиксированной целевой скорости и протокол отправляет данные с этой скоростью, игнорируя сигналы о потерях.
Если цензор отбрасывает 20% пакетов, Brutal компенсирует это отправкой избыточных данных, поддерживая полезную нагрузку на заданном уровне. Из-за этогоц ензор больше не может просто замедлить пользователя, просто отбрасывая часть пакетов.
Чтобы остановить Brutal, цензору придется заблокировать весь UDP-трафик или тратить огромные вычислительные ресурсы на глубокий анализ каждого пакета, это очень дорого.
С этой технологией шанс, что оборудование устареет сильно снижается.
Когда ждать блокировку?
Растущая популярность VLESS + REALITY, как вы понимаете, привлекает внимание Роскомнадзора, и даже такие на первый взгляд невидимые протоколы можно раскрутить и заблокировать. Особенно, если их использует каждый второй.
Что насчет блокировки, на самом деле процесс запустился еще в прошлом году.
В ноябре прошлого года уже наблюдались сбои в работе VLESS во многих регионах РФ.
Полностью заблокировать этот протокол сложно, но из-за существующих дыр это становится вполне реально. Что с этим делать? Может придумывать новые протоколы, которые не имеют таких очевидных проблем? А кто будет финансировать? Ничего пока не понятно
Источник








Если же это сделать сейчас, то особо ушлые начнут искать и внедрять гораздо более сложные, дорогие, но устойчивые схемы обхода, некоторые вообще побегут из страны, так что пока, по всей видимости, просто не было отмашки, но в нужный момент даже Старлинк не спасёт, а потому я бы не советовал пускать корни в РФ, если вам дорога ваша интернет-свобода, которая в любой момент может внезапно закончиться и это может случиться гораздо раньше, чем кажется...