Изображение: Pexels
В современном интернете, где все острее встает вопрос обеспечения анонимности, многие люди начинают задумываться о том, какие инструменты для этого им использовать. Здесь часто возникает путаница, поскольку не все разбираются в аспектах существующих технологий. А их огромное количество, и даже решение одной и той же задачи сокрытия реального IP-адреса может быть реализовано по-разному.
Сегодня мы расскажем о технологии SOCKS-прокси, принципах ее работы, преимуществах и отличиях от других инструментов обеспечения анонимности в интернете.
Примечание: это разбор для тех, кто не совсем в курсе деталей работы этой технологии и ее отличий от других инструментов, в данном топике мы не претендуем на глубокий анализ.
Что это такое
SOCKS – это интернет-протокол, который используется для передачи пакетов с данными от сервера к клиенту с помощью промежуточного прокси-сервера. На сегодня это наиболее продвинутая массовая технология для организации прокси. При ее использовании трафик проходит через прокси-сервер, который использует собственный IP-адрес, с которого уже идет финальное подключение к нужному адресату.
Наиболее свежая спецификация протокола – это SOCKS5. Она использует UDP- и TCP-соединения для пересылки трафика. Также в SOCKS5 используются несколько способов аутентификации:
- Null authentication – в этом случае для подключения к прокси проходить процедуру аутентификации не нужно;
- аутентификация по логину и паролю – соединение устанавливается после введения корректных учетных данных;
- аутентификация с помощью GSS-API – как клиент так и сервер используют методы аутентификации, работающие на уровне ОС.
Зачем используют SOCKS-прокси
Существует несколько причин применения SOCKS-прокси, вот две главных:
Обход блокировок
Самое очевидное применение прокси – сокрытие реального IP-адреса с какой-то целью, например для обхода блокировок. Например, если определенный IP-адрес попал в черный список какого-то сайта, до для доступа к нему будет достаточно использовать прокси.
В некоторых случаях таким способом можно преодолеть и блокировки, наложенные государственными органами. Однако здесь есть свои ограничения – при использовании технологии DPI (deep packet inspection), трафик будет блокироваться на уровне интернет провайдера еще до того, как он дойдет до сайта. В этом случае просто прокси не поможет.
Важный момент. Некоторые HTTP-прокси могут работать только с веб-страницами, а SOCKS5 умеет обрабатывать любой трафик. Такие прокси работают на более низком уровне
Повышение скорости и производительности
Другие разновидности технологии SOCKS работали с протоколом TCP, а новые прокси умеют обрабатывать и UDP-трафик.
TCP – это протокол с гарантированной доставкой сообщений между клиентом и сервером. TCP – это протокол с гарантированной доставкой сообщений между клиентом и сервером. Кроме того, это потоковый протокол. В UDP доставка всех пакетов не является гарантированным условием, и это пакетный протокол. Его использование позволяет пересылать трафик быстрее, поскольку не тратится время на повторную отправку недошедших пакетов, и разбор пакетов данных осуществляется быстрее, чем потоков.
SOCKS5-прокси никогда не изменяют заголовки пакетов с данными, что случается при использовании прокси других типов. Это позволяет улучшить производительность при пересылке трафика. Впрочем, здесь есть и свои минусы – заголовки могут содержать и персональные данные пользователей, а значит их, в теории, можно будет узнать.
SOCKS и VPN: в чем разница
Не все прокси-провайдеры пишут об этом, но основная разница при использовании SOCKS и VPN заключается в уровне анонимности, которого можно добиться. В случае VPN все передаваемые данные шифруются, чего нет в случае SOCKS-прокси.
Важно понимать, что прокси позволяют скрывать IP-адрес и решать ряд других задач (вроде обхода блокировок), но сами по себе они не являются инструментом обеспечения приватности. Пользователя прокси можно вычислить и перехватить его трафик.
Однако использование прокси в комбинации с VPN позволяет добиться хорошей скорости работы и лучше защитить чувствительную информацию.
Полезные ссылки и материалы от Infatica:
- Сеть резидентных прокси на 1,2+ млн адресов
- Исследование: создание устойчивого к блокировкам прокси-сервиса с помощью теории игр
- История борьбы с цензурой: как работает созданный учеными из MIT и Стенфорда метод flash proxy
- Как понять, когда прокси лгут: верификация физических локаций сетевых прокси с помощью алгоритма активной геолокации
- Как замаскироваться в интернете: сравниваем серверные и резидентные прокси
Комментарии (8)
GloooM
27.07.2019 16:21+1В случае VPN все передаваемые данные шифруются
Это совершенно не обязательно, термин VPN вообще не несет под собой какого-то конкретного протокола, это просто группа технологий. Можно поднять простейший IPIP тоннель без каких-либо шифрований и это уже можно считать VPN. Можно и например PPTP запустить без шифрования и даже OpenVPN умеет работать без шифрования.
NetBUG
27.07.2019 16:23+1Блин, ребят, хотел почитать про начинку протокола, а получил популизм.
Для начала хотя бы картинку со слоями OSI и применением её к какому-нибудь протоколу (например, HTTP) и точкой втыкания прокси нарисовали бы.
Socks5 отличается от Socks4 как раз поддержкой UDP.justhabrauser
27.07.2019 22:39+1Автор уже писал нечто подобное вчера или позавчера.
В камментах забили с[пециаль]нами тряпками за школолизм (а не популизм).
Статью убита (вместе с камментами, ага) и переписана заново (кагбэ).
Но я, честно говоря, отличий не заметил — такая же… кхм… статья такого же качества, короче.iig
28.07.2019 12:02" — Вовочка, как работает трансформатор?
- У-у-у-у..."
Где-то так работает и прокси.
- У-у-у-у..."
kommie2050
27.07.2019 21:16вообщем толком никакой защиты он не даёт, а запросы от сокс сервера в принципе можно выделить, сопоставив статистику что подозрительно что из одного адреса открывается несколько разных соединений с разными пользователями и в бан.
При этом никакой ещё обфускации трафика то есть засвечивается и прокси и пользователь если смотреть логи провайдера
Socks5 отличается от Socks4 как раз поддержкой UDP.
а что там поддерживать когда UDP проще? Смешно, ерунду вставили и уже вот новая версия))vp7
29.07.2019 11:10а что там поддерживать когда UDP проще? Смешно, ерунду вставили и уже вот новая версия))
На самом деле совсем не ерунду с точки зрения производительности.
На сетях с даже небольшими потерями пакетов TCP over UDP (TCP over Socks/UDP)) работает существенно лучше, чем TCP over TCP (TCP over Socks/TCP). Просто из-за того, что у каждого слоя TCP есть свой механизм переотправки пакетов и даже в случае потери единичного пакета мы получаем в лучшем случае удвоенное количество перепосылок, а в худшем — ещё и существенную потерю производительности.
p.s. С технической же точки зрения на уровне приложения работа по UDP или TCP ничем не отличается. И там и тут открываем сокет, и там и тут отправляем/получаем пакеты.kommie2050
29.07.2019 17:25пакетов TCP over UDP
так зато TCP гарантирует без потерь. В видеостриминга пофиг, а вот если мессенджер а то и ssh :D
Tomok
Разве при использовании SOCKS-прокси, между клиентом и прокси-сервером не устанавливается "тоннель", в который инкапсулируется весь трафик? Соответственно, DPI не видит данные в этом тоннеле и блокировать может только на выходе SOCKS-прокси.
Upd. Сам спросил, сам ответил: да, похоже в SOCKS зашифрованный тоннель между SOCKS-сервером и клиентом не обязателен. Почему-то сокс мной запомнился как обязательно зашифрованный канал передачи данных.