VMess

Материал из in.wiki
Перейти к навигации Перейти к поиску

VMess/VLESS — это семейство сетевых протоколов, реализованных в ПО с открытым исходным кодом V2Ray. V2Ray широко используется во всём мире для создания туннелей и входил, как составная часть в Project V — набор инструментов, который, как утверждается, помогает своим пользователям создавать свою собственную базовую коммуникационную сеть.

V-project logo.png
V2Ray





Разработчик:
Victoria Raymond[1]



Дата появления:
0.1 18.09.2015[2]





История[править | править код]

Реальная личность основательницы и лидера первоначальной версии проекта V2Ray не известна. Не ясно, было ли имя Victoria Raymond настоящим или псевдонимом.

В феврале 2019 года Виктория Рэймонд перестала общаться в Интернет, ее Twitter, Telegram и Zhihu перестали обновляться.

2 августа 2019 года в её Telegram-канале появилось автоматическое сообщение сервиса Telegram: «The account of the user who created this channel has been inactive for the past 5 months. If it remains inactive for another 30 days, then the account will be automatically destroyed and this channel will no longer have a creator"[3].

Такое сообщение технически свидетельствует о том, что владелец канала не просто замолчал в канале, но полностью прекратил свою активность, ни разу не авторизовавшись в Телеграм за указанный период.

Аккаунт на Github, однако, обновлялся до последнего коммита в ноябре 2019 года.

Патент, направленный на обнаружение V2Ray[править | править код]

Профессор Пекинского технологического института Луо Сенлинь и два студента Ван Шуайпэн и Пань Лиминь подали заявку на патент под названием «V2ray traffic recognition method based on long short-term memory network» 25 марта 2019 г.

25 октября 2019 г. статус заявки на патент был изменен на «отозван после публикации заявки на патент на изобретение».

Команда проекта V2Ray заявила, что патенты не гарантируют эффективность метода, патенты лишь защищают сам метод. Во-вторых, есть некоторые проблемы с описанием патента: В патенте говорится: «Серверу V2ray и клиенту необходимо заранее обмениваться ключами для каждой связи, поэтому пакеты данных, расположенные относительно близко к началу каждой связи, имеют важные характеристики». На самом деле в протоколе VMess нет шага «предварительного обмена ключами». Даже если V2Ray используется в сочетании с протоколами, требующими «предварительного обмена ключами», пакеты данных, выполняющие «предварительный обмен ключами», не будут иметь характеристик данных V2Ray, поскольку в это время не было отправлено никаких действительных данных, даже если есть характеристики, они также являются характеристиками протокола, используемого совместно[4].

ПО V2Ray[править | править код]

Оригинальное ПО V2Ray изначально строилось по принципу комбайна, обеспечивая совместную работу на клиенте и на сервере одновременно нескольких разных протоколов. Были реализованы следующие возможности:

  • Несколько обработчиков входящих и исходящих подключений: процесс V2Ray может одновременно поддерживать несколько входящих и исходящих протоколов, каждый протокол может работать независимо.
  • Настраиваемая маршрутизация: входящий трафик может отправляться с разных выходов в соответствии с конфигурацией. Поддерживается разделение маршрутов трафика по регионам или доменам
  • Поддержка нескольких протоколов: V2Ray может одновременно пропускать через себя несколько протоколов, включая SOCKS, HTTP, Shadowsocks, VMess, Trojan и VLESS и т. д.
  • Для каждого протокола можно настроить отдельно транспортный уровень, например TCP, mKCP, WebSocket и т. д.
  • Сокрытие: узлы, использующие протоколы VMess, VLESS и Trojan, могут маскироваться под обычные веб-сайты, работающие по HTTPS и смешивать свой трафик с обычным веб-трафиком.
  • Режим обратного прокси: поддержка обратного прокси обеспечивает подключение внешних клиентов к ресрсам интрасети.
  • Многоплатформенность: была реализована поддержка всех распространенных платформ, таких как Windows, macOS и Linux, сторонними разработчиками была реализована поддержка мобильных платформ.

V2Fly[править | править код]

После исчезновения Victoria Raymond основная команда проекта была вынуждена сделать форк V2Ray на Github. Этот форк, сохранивший преемственность от первоначального проекта, получил название V2Fly.

XRay[править | править код]

Форк V2Fly, осуществлённой частью команды проекта в связи с некими внутренними разногласиями. В процессе самостоятельной разработки, авторы форка внедрили в код ряда возможностей, ориентированных на снижение детектируемости трафика, в частности XTLS - механизм, предназначенный для борьбы с опознанием трафика TLS, вложенного в TLS, выявление которого используется рядом промышленных систем блокировки для опознания подозрительных потоков данных.

Прочее ПО[править | править код]

Возможности, версии и расширения протокола[править | править код]

Протоколы группы VMESS полагаются на внешний транспортный протокол, в качестве которого могут выступать TCP, TLS, mKCP, QUIC, gRPC, Websockets и, в случае VLite - UDP.

VMess обеспечивал самостоятельное шифрование, остальные два делегируют эту работу на внешний уровень TLS.

VMess[править | править код]

Первоначальная версия протокола. Реализует определение свой/чужой по ID пользователя и опционально шифрование данных.

В первоначальных версиях протокола в качестве ID пользователя использовалась комбинация UUID и специальное число alterId, которое могло принимать значения от 1 до 64 (или более, но этот диапазон был наиболее распространён) и должно было совпадать на клиенте и сервере.

После переработки механизмов безопасности протокола была выпущена его новая версия, в которой alterId был полностью выставлен в 0.

По состоянию на апрель 2023 года VMess считался устаревшим, его небезопасно использовать в комбинации с обычным TCP-транспортом. Вариант VMess-over-Websockets-over-TLS оставался приемлемым.

VLESS[править | править код]

Более новая версия протокола из которой удалено шифрование и в которой устранён ряд уязвимостей VMess. Она обеспечивает только аутентификацию клиентов и паддинг данных[5]. Также, реализован обмен между сервером и клиентом во время хэндшейка поддерживаемыми версиями и возможностями протокола, что должно максимально увеличить совместимость между ПО разных версий и производителей.

В следующих версиях заявлена поддержка алгоритма сжатия Zstd.

VLite[править | править код]

Версия протокола, оптимизированная для работы поверх UDP в качестве транспорта. Не поддерживается в XRay.

mux

Еще одна возможность V2Ray и XRay - мультиплексирование соединений (mux или mux.cool). В этом случае на каждое новое подключение к какому-либо сайту не будет устанавливаться новое подключение к прокси, а будут переиспользованы существующие. Что в теории может ускорить хендшейк и привлекать меньше внимания со стороны цензоров за счёт того, что средства контроля будут наблюдать меньше параллельных подключений к одному хосту. Одновременно этот механизм снижает скорость передачи данных из-за оверхеда на дополнительные заголовки пакетов.

Поддержка в стороннем программном обеспечении[править | править код]

Ссылки[править | править код]

Примечания[править | править код]

  1. "VictoriaRaymond". GitHub.com (англ.). Архивировано 15 марта 2022. Дата обращения: 22 декабря 2020.
  2. "Release 0.1". GitHub.com. 2015-09-18. Архивировано 10 октября 2021. Дата обращения: 10 октября 2021.
  3. https://t.me/v2msg/131
  4. https://t.me/v2fly/18
  5. Паддинг данных - изменение размеров пакетов для затруднения детектирования паттернов трафика средствами DPI.