id: Гость   вход   регистрация
текущее время 21:18 28/03/2024
Владелец: unknown редакция от 17/03/2009 16:53 (автор: unknown) Печать
Категории: софт, анонимность, tor, сайт проекта, микс-сети, faq
http://www.pgpru.com/FAQ/Анонимность
создать
просмотр
редакции
ссылки

Это старая редакция страницы F A Q / Анонимность за 17/03/2009 16:53.


Сетевая анонимность


Оглавление документа:

Что такое сетевая анонимность? Разве мои действия в интернете не анонимны сами по себе?

Конечно нет! Хотя сетевые альтер-эго и псевдонимы и создают видимость вашей неотслеживаемости, в действительности, это не более, чем детская игра.


Представьте себе следующую метафору — вы находитесь в людной комнате, в которой нельзя перемещаться, но можно передавать письменные сообщения (при этом только соседям). Если вы хотите посплетничать с Анной К., которая находится в противоположном углу комнаты, вы пишете своё сообщение/вопрос на листе бумаги, заворачиваете в конверт, надписываете "от Бориса Н., передать Анне К.", после чего передаёте ближайшему соседу в направлении местоположения Анны. Ваш сосед передаёт конверт далее и таким образом, пройдя через цепочку людей, письмо будет доставлено получателю. Ответ идёт таким же образом обратно (заметьте, если вы подпишете письмо чужим именем, то никогда не получите ответ).


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


Зашифрованное SSL-соединение можно представить как передачу не конверта, а бронированного сейфа, ключи от которого есть только у вас и у Анны К. (детали обмена ключами опускаем). Вскрыть и прочитать/изменить содержимое невозможно, но для правильной доставки сообщения на сейфе всё равно пишется адрес получателя. Поэтому любой человек (сервер) на маршруте следования может узнать вашего корреспондента. А если через этого человека проходят все ваши запросы (в реальной сети такое лицо есть – это ваш интернет-провайдер!), то он сможет составить полную картину ваших интересов в комнате (Сети)!


Для решения этой проблемы можно реализовать следующую схему: купить новый сейф и дать копию ключей от него приятелю или специально нанятому человеку (пусть его зовут Порфирий); все сообщения в конверте (с адресом настоящего получателя) вкладывать в этот сейф, на сейфе ставить отметку "от Бориса Н., передать Порфирию" и отсылать как обычно. Все, кто будут передавать этот сейф Порфирию, не смогут узнать ни содержимое конверта, ни адрес, написанный на нём. Порфирий же, получив сейф и открыв его, передаст сообщение уже в обычном виде по цепочке до настоящего получателя. Порфирий – это VPN-прокси-сервер. То есть в результате ваш интернет-провайдер не будет знать ваших корреспондентов, но все, кто узнают о вашем сговоре с Порфирием, будут знать, что его сообщения — это на самом деле ваши сообщения. Кроме того, Порфирий должен обладать вашим исключительным доверием, ведь он будет передавать ваши самые важные и ценные послания, и, окажись подкуплен злоумышленником, станет делать копии писем и пересылать их ему. Как видно, эта схема решает только часть проблемы анонимности...

Как же мне обеспечить себе настоящую анонимность в Сети?

Полное решение отмеченных выше проблем — это распределённые микс-сети. Рассмотрим их принцип на примере той же метафоры людной комнаты (см. выше).


Как и ранее, вы пишите послание и вкладываете его в конверт (указав настоящего получателя), конверт кладёте в сейф, на котором пишите "передать Дмитрию", его помещаете в другой сейф, на котором ставите пометку "передать Георгию", а этот сейф, в свою очередь, — в третий (отметив "передать Виктору") по принципу матрёшки, причём с условием, что каждый сейф закрываете независимым ключом. Виктор, Георгий и Дмитрий — три произвольно выбранных вами посредника из большей группы людей, согласных выполнять особую роль; все они внешне ничем не отличаются от остальных и находятся в разных частях комнаты.


Большой сейф со всем его содержимым вы передаёте ближайшему соседу (интернет-провайдеру), который далее пускает его по маршруту в сторону Виктора. Получив груз, Виктор, обладая ключом, которым может открывать любые адресованные ему сейфы, вскрывает его, извлекает вложенный сейф и спустя какое-то время (в этот промежуток он может заниматься с другими присланными ему сейфами) передаёт его в сторону следующего получателя — Георгия. (Заметьте, Виктор не имеет представления, что находится внутри адресованного Георгию сейфа, а даже если и хотел бы выяснить, вряд ли бы смог: огнеупорная сталь, замок высочайшей категории сложности, ну, вы понимаете.)


Когда посылка приходит к Георгию, он повторяет те же действия, что и Виктор. Однако, в отличие от Виктора, получившего сейф непосредственно от вас, Георгий даже не догадывается, кто мог его отправить (любые наблюдатели, стоящие рядом с Георгием узнают не более, чем он); не знает он и настоящего получателя, поскольку внутри посылки — ещё один сейф, адресованный теперь Дмитрию.


Дмитрий, получив свой сейф, тоже не знает, кто отправлял груз изначально; не узнает он это, даже вступив в сговор с Георгием (он не сможет самостоятельно сговориться с первым посредником, Виктором, поскольку не может знать, что тот участвовал в передаче). В то же время, Дмитрий теперь знает настоящего получателя и даже содержание письма (если оно само по себе не было зашифровано помещено в сейф для истинного адресата). Всё, что ему остаётся — это переслать его человеку, указанному на конверте.


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


Подобным образом действует сеть Tor. Её проблемой, к сожалению, остаётся некий глобальный наблюдатель: нечто вроде видео-камеры, вмонтированной в потолок нашей людной комнаты, которая может следить за всеми людьми и тем, что они передают друг другу из рук в руки. Другие распределённые сети, такие как Mixminion и Mixmaster, имеют соответствующую защиту, которая, однако, обеспечивается весьма высокой ценой: данные сети пригодны лишь для пересылки электронной почты.

По-моему, сеть Tor слишком хороша, чтобы быть безопасной. Может это просто приманка разведслужб?

Короткий ответ: мы этого не знаем. Более длинный и точный ответ: это зависит от того, что понимать под "приманкой", для кого эта "приманка" и т.п., то есть вопрос поставлен "некорректно" (не подразумевает однозначного ответа "да" или "нет"). Развёрнутый ответ: самый верный путь — спросить у самих компетентных сотрудников спецслужб что они думают по этому поводу. Нам неизвестно истинное мнение спецслужб, поэтому попытаемся привести ряд общих соображений.


Сеть Tor позиционировалась американским военным ведомством как средство разрушения политических систем других государств, предоставляя их гражданам возможность получать доступ к американской пропаганде как альтернативу отечественной и легальной. Сейчас область использования сети Tor существенно шире: ей пользуются также и сотрудники посольств, и шпионы, и киберпреступники, и обычные граждане (тоталитарных) государств для доступа к заблокированным сегментам интернета (или во избежание преследования со стороны государства). Вопрос о "приманке" исходит из вопроса о целесообразности со стороны государства терпеть существование подобной анонимной сети. Однако, вопрос о целесообразности не столь однозначен как кажется на первый взгляд.


Действительно, есть тенденция и желание запретить гражданам любую анонимную работу в сети, а порой и даже на их собственном компьютере, но, с другой стороны, государство, контролирующее всех, контролирует и себя, но оно тоже имеет желание иногда пользоваться сетью анонимно, и, в частности, это ещё более актуально для шпионов (существует утверждение о том, что анонимной может быть только та сеть, которой пользуется огромное число пользователей с разнообразными информационными интересами). В конечном счёте, для любого государства существование анонимной сети доставляет свои минусы и плюсы, а потому единственно верного для всех случаев и самого оптимального решения не существует. Сейчас есть исследования, которые интерпретируют многообразие "информационной каши", которую получает пользователь, работающий с интернетом, как способ эффективной манипуляции его мнением (все ответы на нужный вопрос представляются одинаково верными, но каждый — по-своему). В модели "информационной каши" сеть Tor есть лишь инструмент, позволяющий получать каждому доступ ко всему объёму каши, не будучи преследуемым со стороны государства.


Естественно, что все высказанные идеи так и не дают ответа на поставленный вопрос, как об этом и предупреждалось выше, но они должны помочь читателю взглянуть на поставленную проблему более объективно.

Как мне проверить, что клиент Tor настроен и работает верно?

Достаточно открыть эту страницу, которая определит ваш "внешний" IP (т.е. IP-адрес, видимый внешнему миру) и сравнит его со списком зарегистрированных Tor-узлов.


Если в результате вы получите сообщение "You are NOT using Tor" на красном фоне — это может значить, что ваш запрос пришёл не из сети Tor (возможно ложное срабатывание из-за немного неполной информации о сети Tor у этой страницы); еще раз проверьте свои настройки и убедитесь, что Tor-клиент включен и запросы браузера идут через него. Если же вы увидите сообщение "Your IP is identified to be a Tor-EXIT.", значит, настройки верны, и ваш веб-трафик (по крайней мере какая-то его часть) проходит через анонимизирующую сеть Tor.


Помните, что настроить работу через Tor одним кликом – невозможно. Внимательно читайте инструкции, проверьте настройки приложений, плагины, желательно установить брандмауэр.

При работе некоторых программ в окне с логом Tor'а появляются такие сообщения: "[warn] fetch_from_buf_socks(): Your application (using socks5 on port 5223) is giving Tor only an IP address...". Это опасно?

Такое предупреждение означает, что Tor получает от программы только IP-адрес удалённого сервера. У этого может быть две разные причины.


Если ваша программа не поддерживает протокол socks4a, и в качестве прокси-сервера вы указали в ней непосредственно свой Tor-клиент (по умолчанию, IP 127.0.0.1 и порт 9050), то программа попытается самостоятельно определить IP-адрес запрашиваемого сервера. Скорее всего, для этого она отправит запрос на DNS-сервер вашего интернет-провайдера, получит от него нужный IP-адрес и уже этот IP передаст в Tor. Подобное действие разрушит анонимность вашего соединения, поскольку, прослушивая DNS-запросы к серверу вашего провайдера, можно будет определить, какие веб-сайты вы посещаете через сеть Tor, какими иными службами пользуетесь и т.д. Разумеется, сам провайдер может сделать это, просто просмотрев лог доступа к DNS-серверу.


Чтобы не возникали такие негативные последствия, DNS-запросы от ваших программ тоже должны передаваться через сеть Tor, т.е. анонимно. Для этого необходимо, чтобы а) программа поддерживала работу по протоколу socks4a, и тогда её можно направлять сразу через Tor, либо б) нужно установить локальный socks-прокси Privoxy или Proxomitron, направить его на Tor, а в качестве прокси-сервера для приложений указать именно локальный прокси (для Privoxy по умолчанию это адрес 127.0.0.1 и порт 8118), или же в) нужно "соксифицировать" программу, т.е. принудительно направить весь её трафик через socks-прокси (в его роли может быть и Tor) с помощью программы-соксификатора, например FreeCap.


Вторая вероятная причина возникновения ошибки, приведённой в вопросе, в том, что вы указали своей программе удалённый сервер не по URL, а по его IP-адресу. В этом случае Tor также не получает DNS-запрос на определение IP, но лишь потому, что такого запроса не происходит. Указывать программе IP вместо URL может быть полезно, если она, к примеру, не работает с соксификаторами и не использует http-трафик, который можно было бы пустить через Privoxy (для анонимного определения IP полезно использовать утилиту tor-resolve, поставляемую вместе с Tor-клиентом). Несмотря на появление предупреждения в этом случае, такая ситуация не несёт риска для вашей анонимности.

Как мне найти файл настроек Tor'а?

Файл настроек Tor'а называется torrc и находится в следующем каталоге:


  • Для Windows NT/2000/XP:
    C:\Documents and Settings\[UserName]\Application Data\Tor\
  • Для Windows 98/ME:
    C:\Windows\Application Data\Tor\.

При работе через сеть Tor меня постоянно отключает от моего веб-сервиса с требованием повторно ввести логин и пароль. Почему?

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


Чтобы избежать этого, вам нужно открыть файл настроек Tor'а и прописать в нём вверху команду TrackHostExits и через пробел – адреса тех сайтов, на которых возникают такие проблемы (это могут быть вообще любые хосты, при соединении с которыми вы не хотите, чтобы Tor переключал цепочки и менял ваш IP); если вводите несколько адресов, разделите их запятыми. Например, если ввести

то постоянный IP у вас будет только на мэйл-сервисе Рамблера; если же указать

тогда IP не будет меняться на любых страницах сайта rambler.ru и на всех его сервисах.


Учтите, что использовать команду TrackHostExits и постоянный IP (в течение сеанса) следует только если работа в ином случае становится невозможной. Пока ваш IP (т.е. выходной Tor-узлел в цепочке, через которую передаётся трафик) остаётся статичным, у противника появляется больше шансов отследить ваше истинное расположение по статистическим показателям работы сети Tor.

Что означает ошибка "[notice] Tried for 60 seconds to get a connection to [scrubbed]:80. Giving up." в логе Tor?

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


По умолчанию Tor вырезает имя удалённого сервера из лога, заменяя его строкой [scrubbed]:порт. Так делается для того, чтобы если посторонний просмотрит лог, он бы не смог узнать, какие сайты вы посещали. Если вы всё же хотите раскрыть эту информацию в логе, впишите в файл настроек Tor команду SafeLogging 0.

Какой длины цепочки у Tor? И почему? Достаточно ли этой длины для анонимности?

Размер цепочек в настоящий момент составляет 3+ звеньев. Что означает как минимум 3-и звена в цепочке в обычной ситуации, и дополнительные звенья к цепи в отдельных случаях (например когда клиент выбирает exit узел самостоятельно через .exit нотацию или запрашиваемый ресурс находится на одном сервере с рабочим exit узлом Tor).


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


Три это оптимальная величина, поскольку интерактивная природа TCP, на уровне которого оперирует Tor, создаёт опасность различных атак с пересечением. Эта опасность тем больше, чем больше размер цепочки. Вместе с тем нельзя задать длину цепочки меньше 3-ех без ущерба в анонимности. (см. ответ на вопрос про настоящую анонимность в Сети).


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

Возможно ли удлинить цепочку Tor за счёт дополнительных прокси-серверов?

Если вы используете Tor в связке с Privoxy, то можете добавить один HTTP-прокси после цепочки Tor-узлов. Чтобы сделать это, откройте файл конфигурации Privoxy (Main Configuration), найдите в нём строку вида

и замените точку в конце на адрес нужного прокси-сервера.


Теоретически, программы типа FreeCap и proxychains позволяют выстраивать произвольные цепочки из Socks-прокси-серверов, в которые могут быть встроены и цепочки Tor. Практически, однако, это не всегда возможно (особенно в среде Windows). Если у вас есть реальный успешный опыт, пожалуйста, поделитесь им в форуме или добавьте непосредственно в текст данного ответа.

Как заставить мой трафик выходить из сети Tor в определённой стране?

Имейте в виду, подобная практика не повысит вашу анонимность, независимо от правового режима той или иной страны. Если же вам всё равно нужно это сделать, то:


  1. Откройте какой-либо сайт статистики Tor (к примеру, Xenobyte). В поле сортировки выберите упорядочение по стране (например RU). В результате получите некоторое количество российских exit-узлов (проверьте поле Exit – YES). Если какой-либо никнэйм будет выделен розовым полем, значит, он принадлежит к числу быстрых.
  2. Откройте файл конфигурации Tor и внесите в него:

Вместо nickname1,nickname2, разумеется, подставьте реальные имена узлов.
  1. Перезапустите Tor (в любой ОC) или пошлите сигнал SIGHUP (в юниксоподобной).

Также, вместо правки файла настроек можно передать имя exit-узла прямо в адресной строке браузера:
http://www.website.com.nickname.exit


Если же вы изменили настройки, не забудьте перед возвращением к нормальной работе Tor'а вернуть их в исходное состояние (закомментарить строчки) и снова перезапустить программу. Или запускайте Tor с отдельным конфигом.

Как прозрачно анонимизировать через сеть Tor все соединения в Linux для отдельного пользователя системы?

Допустим, что в системе создаётся отдельный пользователь со своим домашним каталогом коммандой adduser tornet_user. Допустим также, что мы хотим сохранить использование privoxy для тех программ, которые поддерживают этот локальный proxy.


Для запуска графических программ в x-сервере (Xorg) можно использовать скрипт sux (работает только из терминала, запущенного в иксах), для запуска программ из графической оболочки можно также использовать gksu (при этом gksudo не работает, так что придётся каждый раз вводить пароль пользователя перед запуском программы). Например можно создать пункт меню, горячую клавишу или значок с коммандой для каждого приложения:



У программы gksu есть несколько аналогов, но возможно также будут сбои при работе некоторых приложений и потребуется дополнительная настройка.


В конфиг файл tor-клиента (/etc/tor/torrc) необходимо внести опции:



Если версия tor поддерживает эти опции, то после перезапуска tor-демона /etc/init.d/tor restart
должно появиться сообщение вида:



После комманды netstat -pan —inet в работающей сети мы увидим:



Теперь необходимо перенаправить весь исходящий трафик пользователя tornet_user в сеть tor с разрешением DNS запросов через неё же.


Зададим правила файрволла, которые могут выглядеть примерно так:



После перезапуска тор-демона и файрволла можно проверить работу сетевых программ из под анонимизированного пользователя с помощью сниффера на отсутствие утечек DNS.
При этом становится возможной анонимная работа электронной почты и чатов через скрытые сервисы Tor, скачивание с FTP-серверов и т.д.
В тоже время программы, работающие через privoxy, продолжат работать в сети Tor через этот локальный proxy, что может дать дополнительную защиту или функциональность.


Примечание 1: в последних версиях Линукс-файрволла iptables нельзя задавать правило DROP в цепочке nat, что породило проблему с прозрачным локальным проксированием у некоторых пользователей Tor. Временно такое правило работает, но выдаётся сообщение о том, что в следующих версиях iptables оно поддерживаться не будет.


В качестве альтернативы можно использовать заворачивание всего трафика от пользователя на localhost через DNAT:



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


Примечание 2: в системе Debian за сервисом тора закреплён отдельный пользователь debian-tor, так что вместо значения tor-uid можно указывать имя этого пользователя, что лучше, так как его имя в отличие от номера не предполагает изменений.



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