Всем привет, это TechTalk!
Мы пишем и говорим про IT, цифровые права и свободу интернета в Телеграм и на YouTube, а сегодня решили зайти с другим форматом, поэтому это первый хабрапост.
Начать решили с простых истин и попробовать предложить идею, что в некоторых случаях использование прокси может быть надежнее, чем VPN.
Поэтому для начала давайте поговорим о в разнице между прокси и VPN, а ещё ответим на вопрос, почему в условиях цензуры чаще всего помогают именно прокси. Хотя, забегая вперед можно уточнить, что не совсем прокси, а скорее основанные на прокси инструменты.
Предлагаем начать с терминологии.
Что же такое VPN?
Изначально технология VPN не создавалась конкретно для обхода блокировок, а была (и является до сих пор) инструментом, который позволяет создать, условно назовём, «туннель» между несколькими устройствами, чтобы объединить их в общую сеть (можно провести аналогию с вашей домашней локальной сетью, где все устройства подключены к одной сети и могут обмениваться данными между собой, либо подключаться к серверам в интернете через «роутер». В случае VPN строится подобная же сеть, только работает не поверх Wi‑Fi или проводов в вашей квартире, а поверх Интернета (или других сетей). И «роутером» в ней может работать любое из подключенных к ней устройств (но чаще всего используется конфигурация когда устройств всего два: ваше и сервер, который работает «роутером». Как правило, он же является и сервером, к которому вы подключаетесь при настройке VPN‑соединения, но в целом это не обязательно должен быть один и тот же сервер.
Кроме прочего, это помогает людям обмениваться данными, находясь в разных местах, например, в разных городах, странах и даже континентах. Дополнительно (в случае использования собственной VPN) это повышает безопасность, т.к. большинство реализаций VPN используют довольно стойкое шифрование.
Для построения VPN существует множество протоколов и каждый их них обладает как своими преимуществами, так и недостатками. Подробнее данную тему мы подняли в одном из наших видео на YouTube.
В общем, самое основное и важное отличие VPN от других технологий связи в том, что строится некая виртуальная сеть между устройствами (даже если их всего два).
Так, а Proxy?
Proxy‑сервер — это сервер‑посредник, который принимает ваши запросы, выполняет их от своего имени и передает вам результаты.
Вы (точнее, ваши программы/ОС), условно, «обращаетесь» к нему, и говорите: «хочу сделать такой‑то запрос к вот такому серверу». Он делает этот запрос за вас (на самом деле, есть некоторые нюансы, но для простоты опустим их) и отдаёт вам результат.
Существует несколько типов Proxy‑серверов, каждый из которых имеет свои особенности и области применения.
Proxy‑протоколов существует довольно большое количество, но возьмем самые распространенные и имеющие максимальную поддержку со стороны программ (например, браузеров) и ОС.
SOCKS (а точнее SOCKS4 и SOCKS5 с его модификациями), HTTP и HTTPS.
VLESS, VMess, ShadowSocks или прокси нового поколения (о них мы поговорим чуть ниже)
HTTP прокси работают, используя тот же протокол, что и большинство сайтов, так что его распространению очень помогло то, что добавить его поддержку было довольно легко (особенно в браузеры). А также то, что его использование позволяло кэшировать контент, что в некоторых ситуациях позволяло пользователям получить контент быстрее.
Но это было во времена, когда трафик не шифровали (и взломщиков было меньше, и воровство паролей не было поставлено на поток, и государства и прочие личности не «совали свой нос» в трафик обычных людей в желании его модифицировать (подделать), и провайдеры не пытались вставлять непрошенную рекламу).
С тех пор утекло много воды и мир изменился вслед за появившейся потребностью в шифровании трафика.
Так появился HTTPS как протокол в целом, так и прокси на его основе.
По сути, это тот же самый HTTP, но внутри шифрованного туннеля (используя технологию TLS, ранее SSL), который быстро устанавливается при соединении с сервером.
Кроме шифрования, в HTTPS так же используется и подтверждение подлинности сервера, предоставляющего свой «удостоверяющий сертификат», заверенный Доверенными Удостоверяющими Центрами (удостоверяющие и заверяющие сертификаты которых поставляются вместе с ОС (и браузерами, у которых своя копия)).
Таким образом, если вы делаете запрос к HTTP‑сайту (просто через вашего провайдера, без прокси), то тот, кто подключен к вашей сети, плюс ваш провайдер, плюс провайдер его провайдера (и так далее до самого целевого сервера) видят всё, что вы передаёте в этом запросе и всё, что вы получаете в ответ (включая пароли).
В случае HTTPS все данные (кроме адреса сайта, хотя и это — в процессе решения) передаются уже зашифрованными и не видны тем, кто подключен к сети.
Так же и в случае прокси: если вы используете HTTP‑прокси (не HTTPS), то оборудованию провайдера (и ТСПУ) видит всё передаваемое содержимое. И даже если через него вы обращаетесь к HTTPS‑сайту, прослущивающему оборудованию видно как минимум домен сайта (и оно, соответственно, может применить блокировку).
В случае же HTTPS‑прокси всё, что видно «подслушивающим» — только адрес прокси‑сервера (и то, опять же, есть надежда что в ближайшее время этот вопрос решат)..
SOCKS4/5 прокси работают немного иначе, но в целом, принципы те же.
Кроме, разве что, того, что они не поддерживают шифрование и в плане возможности «подглядеть» содержимое передаваемого трафика здесь всё аналогично HTTP.
С вводными данными закончили, давайте теперь попробуем разобраться в том — чем же все таки VPN и прокси, как технологии, между собой различаются.
Во‑первых, на «глубоком» уровне (который не всегда видно, особенно на мобильных ОС) самое главное отличие (которые мы несколько раз отмечали выше) в том, что:
VPN — это построенная поверх интернета (или другой сети) виртуальная сеть. В грубом приближении, напомним, аналогичная вашей домашней сети с Wi‑Fi и роутером.
В ней может быть как два устройства (вы и сервер), так и больше, но идея в том, что между ними строится виртуальная, но практически полноценная компьютерная сеть. И через эту сеть вы можете (и в большинстве случаев так и делаете) пропускать весь свой трафик (в этом случае сервер работает аналогом «роутера» в вашей домашней сети).
Установленные программы при этом, как правило, совершенно не имеют представления о том, как они ходят в сеть и они, как правило, не видят разницы между тем, выходят ли они в сеть через домашний роутер, мобильный интернет или VPN.
Proxy при этом, по сути, это просто программа (в большинстве случаев — запущенная на удалённом сервере), которая принимает специальные запросы (и отвечает на них) о том, чтобы либо выполнить указанный web‑запрос, либо настроить подключение к указанному сервису (будучи при этом посредником).
И это подразумевает наличие поддержки работы через него (прокси) в каждой конкретной программе, где он подразумевается к использованию, что также позволяет более тонкую настройку его использования.
Позволяя даже не только разным программам одновременно работать через разные прокси‑серверы, но и, в случае браузеров, даже к разным конкретным сайтам в пределах одного браузера обращаться через разные конкретные прокси‑серверы.
Это позволяет не только увеличить приватность, но, в случае мобильных устройств, не держать постоянно запущенным приложение, подключающееся к VPN (соответственно, не тратить на это заряд батареи, а также лишний трафик на поддержание подключения).
Во‑вторых, современные VPN‑протоколы в основной своей массе используют шифрование при построении подключения и передаче данных.
В то время, как «основные» протоколы прокси (старого поколения), в свою очередь, в большинстве своём трафик не шифруют (исключение — вышеописанный тип HTTPS‑прокси, которые используют HTTP поверх TLS).
При неосторожном применении это может подвергать опасности как приватность (любой человек в той же сети, а также провайдер, ТСПУ и практически всё сетевое оборудование на пути до целевого сервера/сайта может «видеть» то, куда именно идёт подключение, а в некоторых случаях, ещё и содержимое передаваемых данных (например, пароли)), так и пользователя в целом (например, перехват данных или атака называемая «человек посередине», сутью которой является подмена передаваемых данных).
Также без шифрования велик шанс того, что обойти блокировку не получится, так как и провайдер и ТСПУ видят куда происходит подключение.
Однако в случае прокси «нового поколения» в том применении как там используется прокси — шифрование и не нужно и его отсутствие скорее даже играет на пользу, т.к. позволяет избежать лишних повторных шифрований, чем положительно влияет на скорость обмена данными. Но об этом аспекте мы ещё поговорим.
Так как VPN‑программы шифруют данные (иногда и в несколько «слоёв»), в зависимости от разных факторов (например, мощности устройства) скорость соединения может быть ниже, чем через прокси. Впрочем, как правило, современные устройства позволяют VPN‑приложениям шифровать данные на скоростях близких к «средним» скоростям интернет‑соединений, и заметите разницу вы, скорее всего, только если привыкли к очень «широким» интернет‑каналам.
Остальные различия, по большому счёту, являются следствиями уже перечисленных и сводятся к сугубо техническим вопросам.
Однако, это ещё не всё!
Мы рассказали про «обычные» прокси и «обычные» VPN. Но рассказ был бы не полон без упоминания, скажем так, «прокси нового поколения» или, условно, назовём их полу‑прокси.
Их суть заключается в том, что они на базовом уровне являются прокси‑серверами, но при этом также несут в себе и часть идеи VPN (в частности, построение шифрованного «туннеля» между пользовательским устройством и удалённым сервером).
Предлагаем, многие слышали про протокол Shadowsocks, который, собственно, и является этим самым «прокси нового поколения» (да‑да, это не VPN, как некоторые привыкли его называть), потому что он был создан на базе SOCKS5-сервера с добавлением к нему шифрования (в виде построения шифрованного туннеля, как это делают VPN, но без организации сети, передавая в нём только проксируемый траффик).
Это позволило пользователям из многих стран обходить блокировки практически не теряя в скорости, а также оставаться незаметными (так было на время его появления) для DPI оборудования.
Но долго так продолжаться не могло, и DPI‑анализаторы со временем научились его обнаруживать.
Поэтому энтузиасты создали достаточное количество как подобных инструментов на основе прокси (и не только), так и так называемых «транспортов» для маскировки трафика. Да и сам Shadowsocks тоже развивается и предлагает новые способы маскировки.
Среди подобных, созданных следом за Shadowsocks инструментов, можно из наиболее известных упомянуть, например, V2Ray.
Впрочем, у V2ray, как и у многих проектов, появился форк V2Fly, на основе которого в последующем был создан не менее известный XRay, который, можно сказать, является «мутантом» и собирает в себе разные трудно «убиваемые» протоколы,используемые для построения и маскировки шифрованного «туннеля», в котором и передаётся проксируемый трафик.
Ещё, пожалуй, упоминания стоят два практически самых известных протокола, используемых пользователями — это VMess и VLESS.
VMess изначально был разработан для обхода интернет‑цензуры и защищенной и анонимной передачи данных и имеет встроенное шифрование и поддержку различных типов транспортов.
VLESS — его облегченная и более новая версия без встроенного шифрования, где главным достоинством является производительность и минимизация задержек.
Мы можем ещё долго говорить о разных протоколах, но Deleted‑user на Habr описал их настолько хорошо, что не видим смысла повторяться.
Недавно, на фоне различных блокировок и новостей о том, что тот или иной VPN‑протокол перестает работать, в коллаборации с командой VPNPay мы запустили сервис VPNPay Proxy, где предлагаем прокси на протоколах VLESS, VMess и Shadowsocks. Такие прокси позволяют получить доступ к зацензурированным сайтам и маскируют ваш трафик.
По причине того, что инструменты и протоколы на основе Proxy активно развиваются именно в направлении маскировки трафика — они, на наш взгляд, в отличие от VPN, являются более надежным инструментом, нежели VPN, в случае, если у вас есть необходимость обойти блокировку какого‑то ресурса. А то даже и VPN‑протоколов, но об этом как‑нибудь в следующий раз.
А пока — можно настраивать XRay, используя, к примеру такой софт, как Amnezia VPN (для self‑hosted решения) или же воспользоваться уже готовым решением от VPNPay.