SOCKS — сетевой протокол, который позволяет клиент-серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволами). SOCKS — это сокращение от «SOCKetS» (сокеты, гнёзда).
отличие от HTTP прокси серверов, SOCKS передаёт все данные от клиента, ничего не добавляя от себя, то есть с точки зрения конечного сервера, SOCKS прокси является обычным клиентом. SOCKS более универсален — не зависит от конкретных протоколов уровня приложений (7-го уровня модели OSI) и базируется на стандарте TCP/IP – протоколе 4-го уровня. Зато HTTP прокси кэширует данные и может более тщательно фильтровать содержимое передаваемых данных.
SOCKS 4 предназначен для работы через фаервол без аутентификации для приложений типа клиент-сервер, работающих по протоколу TCP, таких, как TELNET, FTP и таких популярных протоколов обмена информацией, как HTTP, WAIS и GOPHER. По существу, SOCKS-сервер можно рассматривать как межсетевой экран, поддерживающий протокол SOCKS.
SOCKS 5 расширяет модель SOCKS 4, добавляя к ней поддержку UDP, обеспечение универсальных схем строгой аутентификации и расширяет методы адресации, добавляя поддержку доменных имен и адресов IPv6. Начальная установка связи теперь состоит из следующего:
- Клиент подключается, и посылает приветствие, которое включает перечень поддерживаемых методов аутентификации
- Сервер выбирает из них один (или посылает ответ о неудаче запроса, если ни один из предложенных методов не приемлем)
- В зависимости от выбранного метода, между клиентом и сервером может пройти некоторое количество сообщений
- Клиент посылает запрос на соединение, аналогично SOCKS 4
- Сервер отвечает, аналогично SOCKS 4
Процедура для клиентов работающих по TCP
Когда работающий по TCP клиент хочет соединиться с объектом, доступным
только через файрволл, он должен открыть TCP-соединение c
соответствующим SOCKS-портом SOCKS-сервера. Сервис SOCKS обычно
находится на TCP-порту 1080. Если соединение прошло успешно, клиент
начинает переговоры о методе аутентификации, который будет использоваваться, проходит аутентификацию по выбранному методу и посылает свой запрос. SOCKS-сервер обрабатывает запрос и либо пытается установить соответствующее соединение, либо отказывает в нем.
Теперь можно рассказывать как эту технологию использовать для анонимности в WWW. Используя эту технологию в web, можно сразу убить несколько зайцев – основных проблем с которыми можно столкнуться используя методики о которых было написано в предыдущих частях. Но по порядку
1. Так как Socks не имеет никакого отношения к http, то ему наплевать на все его заморочки с модернизацией заголовков http запросов. Socks-сервер будет передавать все данные в чистом виде от первого лица – то есть от себя. Другими словами можно сказать (используя терминологию из http) что все Socks-серверы “анонимные”. Socks не передает информацию о нашем ip-адресе потому что это никак не предусмотрено его технологией. Соответсвенно отпадает множество проблем – например кроме того что он не передает ip-адрес, он естественно как я сказал выше не модернизирует http-заголовки, это означает что web-сервер никаким образом не может определить что вы используете прокси-сервер. Для него работа с вами будет абсолютно аналогичной как если бы вы работали непосредственно с web-сервером, с той лишь разницей что он будет видеть совсем другой ip-адрес.
2. http, ftp, shttp, wais, gopher… Так как все эти протоколы (в браузере) работают на основе tcp, то Socks прокси без проблем берет их всех на себя. то есть больше не надо мучатся прописывая для каждого протокола свой прокси-сервер, а тем более искать их. Достаточно одного Socks.
3. Технология Socks легко поддерживает выстроение в цепь. Здесь следует отметить что некоторые http прокси-серверы тоже могут выстраиваться в цепь, но в этом случае возникает много проблем. Во-первых, как я упоминал из 100% РАБОЧИХ прокси-серверов, анонимными будут процентов 10, из них возможно 1% будет поддерживать возможность перенаправлять запросы, то есть выстраиваться в цепь. Во-вторых, использование такой возможности http прокси браузером прямо не предусмотрена, но если все же использовать некоторые методы для этого, то останется множество брешей, главной из которых будет потенциальная возможность передачи данных напрямую минуя прокси.
4. Что дает возможность выстраивания в цепь Socks-серверов? Думаю это очевидно, Socks-серверы могут находиться в разных частях планеты передавая информацию друг другу по вашему желанию. Все данные которые “ходят” между браузером и web-сервером будут передаваться через все серверы которые вы выстроили в цепь, возможно не раз обойдя земной шар пока не достигнут цели. Как понимаете “вычислить” вас в такой ситуации представляется маловероятным.
Похожие записи
Нет комментариев