Изображение: 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:


Комментарии (8)


  1. Tomok
    27.07.2019 09:50

    Однако здесь есть свои ограничения – при использовании технологии DPI (deep packet inspection), трафик будет блокироваться на уровне интернет провайдера еще до того, как он дойдет до сайта. В этом случае просто прокси не поможет.

    Разве при использовании SOCKS-прокси, между клиентом и прокси-сервером не устанавливается "тоннель", в который инкапсулируется весь трафик? Соответственно, DPI не видит данные в этом тоннеле и блокировать может только на выходе SOCKS-прокси.


    Upd. Сам спросил, сам ответил: да, похоже в SOCKS зашифрованный тоннель между SOCKS-сервером и клиентом не обязателен. Почему-то сокс мной запомнился как обязательно зашифрованный канал передачи данных.


  1. GloooM
    27.07.2019 16:21
    +1

    В случае VPN все передаваемые данные шифруются
    Это совершенно не обязательно, термин VPN вообще не несет под собой какого-то конкретного протокола, это просто группа технологий. Можно поднять простейший IPIP тоннель без каких-либо шифрований и это уже можно считать VPN. Можно и например PPTP запустить без шифрования и даже OpenVPN умеет работать без шифрования.


  1. NetBUG
    27.07.2019 16:23
    +1

    Блин, ребят, хотел почитать про начинку протокола, а получил популизм.

    Для начала хотя бы картинку со слоями OSI и применением её к какому-нибудь протоколу (например, HTTP) и точкой втыкания прокси нарисовали бы.

    Socks5 отличается от Socks4 как раз поддержкой UDP.


    1. justhabrauser
      27.07.2019 22:39
      +1

      Автор уже писал нечто подобное вчера или позавчера.
      В камментах забили с[пециаль]нами тряпками за школолизм (а не популизм).
      Статью убита (вместе с камментами, ага) и переписана заново (кагбэ).
      Но я, честно говоря, отличий не заметил — такая же… кхм… статья такого же качества, короче.


      1. iig
        28.07.2019 12:02

        " — Вовочка, как работает трансформатор?


        • У-у-у-у..."
          Где-то так работает и прокси.


  1. kommie2050
    27.07.2019 21:16

    вообщем толком никакой защиты он не даёт, а запросы от сокс сервера в принципе можно выделить, сопоставив статистику что подозрительно что из одного адреса открывается несколько разных соединений с разными пользователями и в бан.
    При этом никакой ещё обфускации трафика то есть засвечивается и прокси и пользователь если смотреть логи провайдера

    Socks5 отличается от Socks4 как раз поддержкой UDP.


    а что там поддерживать когда UDP проще? Смешно, ерунду вставили и уже вот новая версия))


    1. 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 ничем не отличается. И там и тут открываем сокет, и там и тут отправляем/получаем пакеты.


      1. kommie2050
        29.07.2019 17:25

        пакетов TCP over UDP
        так зато TCP гарантирует без потерь. В видеостриминга пофиг, а вот если мессенджер а то и ssh :D