Прокси-серверы: ходим в интернет анонимно

Давным-давно интернет был всего лишь исследовательским полигоном для университетских ученых и местом обитания гиков, обнаруживших, что в мире есть что-то еще, кроме Великой и Могучей FidoNet. В те далекие времена немногочисленные племена пользователей интернета знали друг друга если не в лицо, то по стилю набора текста уж точно. Прятаться друг от друга, притворяясь кем-то другим, было не то чтобы не нужно, а просто неэтично. Сеть использовалась для того, для чего и замышлялась — обмена идеями и взаимопомощи в решении сложных задач.

Сейчас это время кажется далеким и наивным. Большой бизнес давно уяснил потенциальные возможности интернета и глубоко пустил корни в доменную зону .com. Конечно, в деле завоевания интернет-просторов были свои золотые лихорадки и финансовые кризисы, пустившие под откос сотни мыльных пузырей-доткомов. Уяснив ошибки молодости, бизнес-модель работы в Сети выжила и окрепла. Сейчас быть солидной компанией и не иметь собственного сайта или даже портала — нонсенс.

Пышным цветом цветет интернет-торговля, доказывая свою эффективность на примерах компаний-лидеров, прекрасно монетизировались стартапы волны Web 2.0, обеспечивая своих создателей и акционеров неплохой прибылью, все больше развиваются облачные технологии, предоставляя пользователям в аренду не только сетевые сервисы, но и вычислительные ресурсы.

Интернет повзрослел. Вместо джинсов и водолазок он обзавелся деловым костюмом и солидными банковскими счетами. Ну а там, где деньги, там и Остапы с кучей сравнительно честных или совсем бесчестных способов их отъема. Интернет, как явление социальное, повторил в своем развитии все аспекты человеческой цивилизации. И одним из аспектов такого повторения является анонимность.

Интернет, как среда обмена информацией, проектировался на принципах максимальной открытости. Каждый узел, включенный в сеть, идентифицируется уникальным IP-адресом, без знания которого другие узлы не смогут обнаружить его и переслать пакеты с данными. При этом в каждом пакете, как и на обычном письме, указывается этот самый IP-адрес получателя, да и отправителя тоже. Четкая адресация во всех интернет-сеансах совершенно не вяжется с желанием анонимов не выдавать свою личность и местоположение своего компьютера. Но анонимы — очень изворотливое племя. И они разыскали массу способов прятать себя даже в таких условиях. Были найдены успешные методы сокрытия IP-адреса своего компьютера при обращении к интернет-ресурсам. Многие из них доступны только хакерам-профессионалам, но большинством могут воспользоваться и обычные сетяне, пожелавшие остаться неизвестными. Один из самых распространенных способов организации интернет-анонимности — использование прокси-серверов. 

Прокси — значит посредник

«Дяденька, вам просили передать». Чумазый беспризорник протягивает записку и мгновенно скрывается в толпе. Записка не подписана. Кто же ее автор? Беспризорник? Конечно же, нет. Он — посредник, скрывающий от нас автора послания. Использование прокси-серверов реализует аналогичный подход. Поначалу прокси-сервера никакого отношения к сетевой анонимности не имели. Появление технологии прокси-серверов было связано с возникновением необходимости разделения корпоративной информационной сети на зоны безопасности (доверенные зоны). Пакеты с данными, курсирующие в сети, разделенной на зоны безопасности, попадают только к четко авторизованным адресатам. Обычно для создания доверенных зон используются межсетевые экраны (брандмауэры). Но и прокси-сервера отлично справляются с этой задачей.

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

Основной задачей прокси-сервера является фильтрация запросов пользователей. Однако и средство обеспечения анонимности из него неплохое.

Программно прокси-сервер является серверным процессом, который «слушает» определенный порт, ожидая запросов по определенному протоколу. Когда установлено соединение с клиентом и получен правильный запрос, он повторит этот запрос другому серверу от имени клиента, как определено в его правилах для этого типа запросов. Когда от сервера получен ответ, прокси передает этот ответ назад пользователю или процессу клиента, которые ранее осуществили запрос, применяя все необходимые преобразования. Таким образом, функции прокси — чисто посреднические. Взять пакет с данными, проверить правила его отсылки и передать куда нужно — в соответствии с этими правилами. Однако посредник посреднику рознь. И среди прокси-серверов есть свои разновидности, решающие посреднические задачи по-разному. Все они представлены на рисунке ниже.

В зависимости от функций, которые на него возлагаются, прокси-сервер может принадлежать к одному из нескольких классов. Или быть их смесью.

Пересылающий прокси-сервер (forward proxy) позволяет пользователям одной зоны безопасности выполнять запросы контента из другой зоны, следуя исходящему направлению. Это значит, что клиент находится внутри корпоративной сети, а сервер, к которому он обращается, — снаружи. С точки зрения безопасности такой прокси обеспечивает безопасность путем скрытия наименования (в терминах топологии внутренней сети) рабочей станции или процесса запрашивающего пользователя. Он может также применяться для сокрытия других атрибутов сеанса пользователя.

Прозрачный прокси (transparent proxy) не осведомляет пользователей в прямой форме о том, что он функционирует в составе корпоративной сети. Такой прокси перехватывает весь трафик по определенному протоколу для определенного сегмента сети. При этом пользовательский процесс не знает об его существовании. Фактически пользовательские процессы обращаются не к прокси, а к требуемому узлу сети. При этом реальное обращение к этому узлу осуществляет прозрачный прокси.

Прокси обеспечения безопасности (security proxy) — специально сконфигурированный прокси, обеспечивающий исполнение политик безопасности. Такой прокси может обрабатывать (либо выступать в качестве посредника при обработке) запросы аутентификации и авторизации. В этих случаях аутентификация пользователя клиента и авторизация клиента для доступа к определенному контенту контролируется самим прокси-сервером. Далее мандат безопасности посылается от прокси к конечным серверам с запросом. При этом конечный сервер должен быть сконфигурирован на оказание доверия предоставляемому прокси мандату.

Кэширующий прокси (caсhing proxy) сконфигурирован на повторное использование кэшированных образов получаемой пользователем информации, когда это доступно и возможно. Например, начальные страницы большинства серверов зачастую не изменяются долгое время. Чтобы не загружать их каждый раз, кэширующий прокси отсылает их образ пользователю из своего хранилища кэша. Если же кэшированная ранее часть контента на удаленных серверах обновлена, то производится ее получение и повторное кэширование.

Обратный прокси (reverse proxy) обеспечивает контролируемую и безопасную видимость находящегося позади него (как правило, во внутренней зоне безопасности) определенного контента — без наличия реального контента, отображаемого во внешней зоне.

Подобная классификация прокси-серверов является логической. Обычно их реализации могут быть сконфигурированы как тот или иной тип либо их комбинации (например, пересылающий и кэширующий прокси с функциями обеспечения безопасности). Кроме разделения прокси-серверов по функциям, часто используют их деление по сетевым протоколам, которые они обслуживают. И здесь прокси-сервера проявляют себя истинными полиглотами. В настоящее время практически нет ни одного протокола, порт которого не мог прослушивать тот или иной прокси-сервер. Для пользователей это означает свободу выбора способа обмена информацией. Будь то обычный Web (протокол HTTP), защищенное веб-соединение (протокол HTTPS), интернет-служба обмена файлами (протокол FTP) или же работа на уровне сетевых пакетов, вне зависимости от того, какую сетевую службу выбрал пользователь (технологии NAT (Network Adreess Translation) и SOCKS).

Прокси-сервер может «пасти» различные сетевые протоколы.

Как видно, прокси-сервера решают важные и нужные для корпоративных пользователей задачи, создавая наряду с сетевыми экранами барьер, отделяющий закрытую корпоративную сеть от открытого интернета. Но как же с помощью этих честных трудяг-посредников можно организовать анонимный выход в Сеть?

Прокси-анонимность

Решить вопрос анонимности с помощью прокси-сервера очень просто. Напомним, что главным принципом его работы является получение запроса от компьютера пользователя и его передача компьютеру, который этот запрос обслужит. Так вот, на этапе этого обмена прокси-сервер в поле адреса пакета с запросом подменяет IP-адрес пользователя на свой собственный. Теперь, перехватив такой пакет в любом месте сети, практически невозможно определить, какой из многочисленных пользователей, работающих с прокси-сервером, отправил этот пакет. То же происходит и при получении данных. Компьютер, обслуживающий запрос, отправляет его на адрес прокси. Ведь именно он определит того пользователя, которому передаст информацию, полученную по обслуженному запросу.

Вот какую информацию можно извлечь из пакета, отправленного в сеть напрямую.

 

А вот что «подсовывает» в пакет прокси-сервер.

Вроде бы все просто. Но и по способам предоставления анонимности прокси-сервера делятся на классы. От простейших «беспризорников-посредников» до хитроумных сетевых мошенников.

Итак, по степени анонимности, предоставляемой потенциальному анониму, прокси-сервера делятся на:

По степени обеспечения анонимности прокси-сервера варьируются от совсем неанонимных до элитных.

Прозрачные (not anonymous, transparent proxy). Этот класс прокси не обеспечивает  анонимности клиента, передавая удаленным серверам его IP-адрес и уведомляя их о том, что клиент получает доступ к внешней зоне безопасности с использованием  прокси-сервера. С точки зрения функциональности такие прокси являются пересылающими и/или кэширующими.

Анонимные (simple anonymous).  Прокси этого класса не передают IP-адрес клиента, но извещают удаленные сервера о том, что клиент получает доступ к внешней зоне безопасности с использованием  прокси-сервера.

Искажающие (distorting). Эти прокси, также как и анонимные, не скрывают от удаленного сервера, что запрос от клиента прошел через прокси-сервер. Однако вместо реального IP-адреса клиента в переменные окружения записывают некоторый произвольный IP-адрес.

Высокоанонимные (high anonymous), или элитные. Прокси этого класса не только не передают удаленному серверу IP-адрес клиента, но и не сообщают о том, что   запрос от клиента прошел через прокси-сервер.   С точки зрения удаленного сервера высокоанонимный прокси является клиентом, скрывая атрибуты реального клиента.

Web-proxy (анонимайзеры). Условно относятся к прокси-серверам. Реализуя функционал прокси-сервера на самом деле являются не серверной службой, а специально разработанной программой-сценарием, выполняющейся на сайте. Для работы с требуемым ресурсом пользователь должен перейти на сайт анонимайзера и в специальном поле указать адрес запрашиваемого ресурса. Примерами сайтов с функцией анонимайзера являются anonymouse.org, anonymizer.com, anonymizer.ru и множество других, адреса которых очень легко найти, введя в Google запрос «Анонимайзеры».

Один из популярнейших анонимайзеров имеет несколько неблагозвучное, но понятное всем название.

Работа анонимайзера существенно ограничивает возможности пользователя. Большинство из этих сайтов некорректно отображают принимаемые ресурсы, зачастую блокируя картинки, java-сценарии или flash-ролики. Использование даже элитного анонимного прокси-сервера не может гарантировать, что IP-адрес пользователя, отправившего запрос, не отследят.

Конечно, любая кухарка этого сделать не сможет, но вот соответствующие службы, имеющие в своем распоряжении соответствующих специалистов и, главное, официальную возможность «шерстить» компьютеры поставщиков интернета, смогут найти следы общения анонима с прокси-сервером. И затем вежливо постучать в дверь. Но не так просты прокси-сервера, чтобы сдаться под натиском профессионалов!

Прокси на прокси и прокси погоняет

Одним из способов усиления степени анонимности клиента при работе через прокси-сервера является их каскадирование — или объединение в цепочку (proxy chain). Возможность такого объединения прокси обусловлена тем, что с точки зрения сервера, обслуживающего запросы пользователей, прокси-сервер представляется обычным клиентским компьютером. Но что произойдет, если запрос от одного прокси-сервера попадет не на сервер, обслуживающий запросы, а на еще один прокси? Случится следующее: второй прокси-сервер, получив запрос от предыдущего, перепишет его адрес в пакете на свой! Тем самым еще сильнее скрыв реальный источник запроса. Значит, в случае использования анонимных, искажающих или высокоанонимных классов прокси, включенных в цепочку, сервер, обслуживающий запрос, получит IP-адрес последнего в цепочке прокси-сервера. При использовании цепочки прокси достаточной длины и территориальной распределенности выявление каждого элемента такой цепочки потребует существенного времени, что значительно повышает уровень анонимности пользователя. По крайней мере, на некотором фиксированном временном промежутке.

Способ усиления анонимности — объединение прокси-серверов в цепочку.

Взаимодействие прокси-серверов, объединенных в цепочку, осуществляется с помощью протокола ICP (Internet Caching Protocol). Основной целью протокола ICP является определение наиболее подходящего прокси-сервера для получения заблаговременно кэшированной им информации — в ситуации, когда эта информация кэширована сразу несколькими прокси-серверами. Естественно, что применение протокола ICP для обеспечения анонимности не планировалось специально. Чтобы использовать его для координации цепочки прокси-серверов, необходимо воспользоваться специальным программным обеспечением. Например, программой для организации цепочки socks-прокси SocksChain.

Умело связанные в цепочку разнородные и при этом высокоанонимные прокси-сервера могут стать настоящей головной болью специалистов, отслеживающих анонимные запросы. Но и организовать такую цепочку без хорошего уровня знаний по сетевой тематике и навыков работы с серверными службами практически нереально. Возможно, для мошенников экстра-класса каскадирование прокси-серверов является единственным надежным решением, но вот обычному пользователю подавай что-нибудь более простое в настройке и в то же время обеспечивающее приемлемый уровень анонимности.

Еще сильнее запутывают следы каскады разнородных прокси-серверов. Именно для них группы энтузиастов и разрабатывают специальные виды простых прокси-серверов с функцией «повышенной анонимности». Прокси-спецназ

Рассмотренный выше вид прокси-серверов — анонимайзеры (веб-прокси) — являются одним из идеальных решений для обычных пользователей Сети. Потенциальному анониму достаточно перейти по адресу анонимайзера и ввести в специальное поле URL того узла, к которому он обращается. Проще не бывает! Но и анонимность в этом случае не очень высока.

Чтобы превратить анонимайзер в непробиваемый бастион, разрабатывают его модификации, обеспечивающие не только посредническую функцию, но и активную обработку запросов и/или контента по заданным пользователем правилам. Подобные решения являются как коммерческими разработками, так и проектами из мира open source.

Коммерческое решение: веб-прокси Proxomitron

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

Принцип работы Proxomitron основан на анализе поступающих на его вход HTML-данных и изменении их в соответствии с правилами, заданными пользователем. При этом пользователь может усилить степень своей анонимности, формируя разные правила для самих данных и их HTML-заголовков. Правда, для этого ему требуется изучить язык регулярных выражений операционной системы Unix. Но чаще всего это не требуется. В составе Proxomitron уже имеется несколько десятков вариантов таких правил на все случаи жизни. Например, с помощью правил можно настроить Proxomitron для гибкого использования различных внешних по отношению к нему прокси-серверов, в зависимости от поступающих на его вход запросов. Кроме того, правила Proxomitron позволяют изменять значения таких переменных окружения, как HTTP_ACCEPT_LANGUAGE (язык, применяемый в браузере клиента) и HTTP_USER_AGENT (тип браузера), усиливая тем самым уровень анонимности.

Будучи типом веб-прокси, Proxomitron позволяет объединяться с другими прокси-серверами в цепочки. Широкие возможности усиления анонимности запросов позволяют использовать Proxomitron не только в цепочках прокси, но и в других проектах анонимных сетей. Например, в анонимной «луковичной» сети маршрутизаторов Tor существует несколько точек входа, где в качестве анонимайзера первого уровня используется Proxomitron.

Open source решение: веб-прокси Privoxy

Прокси-сервер Privoxy выполняет функции, аналогичные веб-серверу Proxomitron. Но в отличие от последнего это проект с открытым исходным кодом, совершенно бесплатным в использовании. Расширенная фильтрация HTML-данных Privoxy обычно используется как средство контроля за входящим во внутреннюю доверенную зону трафика, а также в качестве инструмента для отладки веб-узлов.

Как и  Proxomitron, сервер Privoxy использует специальный язык для настройки правил фильтрации запросов и данных. В качестве этого языка используется нотация языка Perl — в частности, Perl-реализация регулярных выражений PCRE (Perl Compatible Regular Expressions). Использование PCRE позволяет широко применять в Privoxy правила, распространяющиеся на множество модифицируемых объектов по маске, что существенно облегчает администрирование Privoxy в случае сложных задач фильтрации. Как и Proxomitron, Privoxy часто используется в более сложных цепочках прокси, а также в качестве входного узла анонимной сети Tor.

Человеческий фактор. Сеть микширующих прокси JonDonym

Там, где техника не справляется, применяется самое убойное орудие — человек! Именно это звено в цепочке анонимности способно внести необходимый процент хаоса в маршруты путешествующих по сети пакетов и сумятицу в ряды спецслужб. Включение человеческого фактора в цепочку прокси-серверов породило мощную распределенную систему анонимных прокси, именуемую JonDonym (от англ. John Doe — Джон Доу; термин судебной системы США, обозначающий анонимного истца мужского пола).

В отличие от обычных цепочек прокси, сеть JonDonym является модерируемой, то есть управляемой людьми. Принцип ее работы основан на статистическом запутывании запросов и данных, проходящих сквозь цепочки анонимных прокси-серверов. Структура сети JonDonym представлена на рисунке ниже.

Микширующая сеть прокси-серверов JonDonym весьма успешно применяет человеческий фактор.

Сеть JonDonym является развитием проекта анонимного прокси-сервера JAP (Германия), который для статистического усложнения пути следования запросов дополняется социальной составляющей — добровольцами, компьютеры которых выполняют роль звеньев в цепочках прокси. У специалистов по сетевой безопасности этот способ именуется методом леммингов. Запросы клиента сети передаются на один из множества JAP-прокси-серверов, который шифрует запрос алгоритмом шифрования AES со 128-битным ключом. Зашифрованный запрос передается в трехзвенный микширующий каскад.

Это динамически формируемая структура, состоящая из трех звеньев, каждое из которых представлено одним или несколькими анонимными прокси-провайдерами (anonymous proxy-providers), именуемых mix-операторами.

Mix-оператор — доверенное лицо сети JonDonym. Обычно это специально сертифицированные провайдеры сетевых услуг. Сертификация mix-операторов осуществляется тремя организациями:

  • JonDos GmbH — выдает сертификаты mix-операторам и осуществляет выплаты пользователям сети, участвующим в микшировании.
  • Немецкий фонд конфиденциальности (German Privacy Foundation).
  • Команда разработчиков JAP-team, на основе программного обеспечения которой построена сеть JonDonym.
  • Указанные организации периодически проводят проверки надежности mix-операторов и в случае выявления нарушений могут отбирать сертификат. В настоящее время в сети JonDonym зарегистрировано 16 mix-операторов, сосредоточенных в основном в Германии и Великобритании.

    Запросы сеть JonDonym запутывает ступенчато. Первое звено mix-операторов получает множество запросов от JAP-прокси-серверов и перенаправляет их собственным пользователям, которые передают их пользователям mix-операторов среднего звена. Те, в свою очередь, передают запросы пользователям mix-операторов третьего звена. Правила обмена запросами между звеньями mix-операторов формируются и координируются службой Info Service, которая именуется mix-модератор. В силу модерируемости как состава mix-операторов в каждом звене, так и правил перенаправления запросов между звеньями, структура трехзвенного микширующего каскада является случайно формируемой, что существенно затрудняет отслеживание адресата запроса. После третьего каскада mix-операторов запросы в расшифрованном виде передаются традиционным перенаправляющим и кэширующим прокси-серверам, имеющим доступ к удаленным серверам.

    Благодаря использованию человеческого фактора сеть JonDonym обладает высокой степенью анонимности, основанной на статистической сложности вычисления адресов клиентов. Правда, разработчики JonDonym не дают гарантии анонимности при использовании стандартных веб-браузеров и предлагают защищенную версию браузера Mozilla Firefox — JonDoFox.

    Взгляд Большого Брата

    Рассмотренные средства обеспечения анонимности с помощью прокси-серверов составляют непробиваемый бастион интернет-приватности. Но так ли он непробиваем?

    Да, традиционные способы отслеживания источника запросов, основанные на пошаговом анализе узлов, через которые проходят анонимные пакеты, являются очень затратными — как по времени, так и по необходимым для этого ресурсам и полномочиям. Это только в голливудских блокбастерах трассировка запроса на экране компьютера происходит со скоростью света. Но кроме таких способов существует способ, посланный свыше. В прямом смысле этого слова.

    Какой бы сложной и запутанной ни была сеть из прокси-серверов, есть способы обнаружить анонима. На государственном уровне.

    Способ «глобального наблюдателя» рассматривает трафик, входящий в первый каскад цепочек прокси или сетей типа JAP и JonDonim и выходящий из их последнего каскада. Путем установления корреляции между всплесками активности входных и выходных потоков запросов и данных «глобальный наблюдатель» способен с большой долей вероятности определить анонимный источник. Кто же он такой, этот «глобальный наблюдатель»? Естественно, Государство (как социальное понятие) в лице служб, способных получить право мониторинга трафика у любого провайдера любой страны (по взаимной договоренности между странами, естественно). Уязвимость в лице «глобального наблюдателя» потенциально существует всегда, и справиться с ней не способно даже использование таких правил микширования, как усреднение смеси запросов, отправка запросов частями (Slices).

    Об этом нужно помнить всегда. Анонимность в Сети — дело нужное и порой крайне необходимое. В благих целях. Применение ее в качестве орудия мошенничества или иного рода преступлений рано или поздно повлечет за собой негромкий стук в дверь, означающий, что аноним найден.






    Рекомендуемый контент




    Copyright © 2010-2019 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.