Введение
Установка и запуск
Управление Tor из оболочки Vidalia
Анонимное использование Internet в браузере Firefox ESR
Прорыв блокады Tor со стороны провайдера
Прорыв блокады Tor со стороны web-сайта
Приложение A. Локальные проблемы с запуском Tor
Приложение B. Проверка архива Tor Browser по его сигнатуре
Приложение C. Криптозащита данных при использовании Tor Browser
Приложение D. Прикручивание Polipo к Tor Browser
Tor Project - это международный правозащитный проект с открытым исходным кодом, разрабатываемый открытым сообществом ученых и программистов белого мира для обеспечения анонимности и прорыва информационной блокады в сети Internet. Tor доказал эффективность в Иране, Китае и прочих обезьянниках. В основе анонимизации Tor лежит замена прямой пересылки сообщений на их передачу в многослойно-шифрованном виде через цепочку промежуточных узлов, каждый из которых знает в цепочке лишь своих соседей и снимает только свой слой шифра. Необходимо подчеркнуть, что Tor не обеспечивает криптозащиту переписки: транспортная шифровка в цепочке является лишь способом достижения анонимности.
Для анонимного использования Internet сообществом Tor Project создана и постоянно совершенствуется сборка Tor Browser Bundle. Она включает в себя программу-анонимизатор Tor, графическую оболочку управления Vidalia, браузер (web-обозреватель) Firefox ESR на базе известного открытого браузера Mozilla Firefox с установленными открытыми дополнениями TorButton, NoScript, HttpsEverywhere. Tor Browser Bundle распространяется по сети в виде готовой сборки, работающей портативно, т.е. без инсталляции в операционную систему, например, с флэшки.
Узлы сети Tor запускаются добровольцами: любой пользовательский Tor-анонимизатор (в т.ч. из состава Tor Browser Bundle) может быть переведен в серверный режим, т.е. стать узлом. Такие узлы делятся на публичные/непубличные, входные/промежуточные/выходные. Входные непубличные мосты называются мостами и служат для преодоления блокировки Tor со стороны цензора.
Для установки и использования надо сделать 3 вещи:
* Если в течении 10 минут не запустился браузер Firefox ESR, то надо устранить причину сбоя соединения с Tor-сетью.
1. После запуска сборки, в системном трее (правый нижний угол, рядом с часами) появляется значок Vidalia в виде луковицы. Нажатие ЛКМ по луковице вызывает окно с панелью управления Vidalia.
2. Панель управления Vidalia. Кнопка "Остановить Tor" позволяет включать/выключать сервер Tor. Кнопка "Сменить личину" меняет цепочку узлов (мягкий вариант), как следствие, меняется и выходной IP-адрес, видимый на стороне сайтов. Кнопка "Обзор сети" позволяет получить детальную информацию о текущей цепочке узлов. Кнопка "Настройка сервера" используется для конфигурирования Tor в нестандартных случаях.
3. Окно "Обзор сети". В этом окне показан текущий статус соединений, информация об узлах Tor.
Замечание: открытие/закрытие окна панели управления Vidalia не влияет на работу Tor Browser. Для закрытия Tor Browser необходимо нажать правой кнопкой мыши по значку-луковице Vidalia в системном трее и выбрать в появившемся списке пункт "Выход".
1. После запуска сборки и установления связи с сетью Tor, автоматически открывается окно браузера Firefox ESR. В целом это обычный Firefox с дополнениями. В верхнем левом углу находится значок дополнения TorButton в виде луковицы. В режиме анонимности луковица имеет зеленый цвет. Справа от нее находится значок дополнения NoScript, отсекающего опасный JavaScript - код. В адресной строке - имя домашней страницы, т.е. страницы, автоматом открывающейся при запуске, по умолчанию это анализатор анонимности соединения: https://check.torproject.org
2. В меню "Firefox"->"Дополнения" (Ctrl+Shift+A) можно настроить или установить дополнения (после проверки на безвредность).
В качестве примера - установка дополнения MinimizeToTray. Поскольку закрытие всех окошек Firefox ESR приводит к остановке всего Tor Browser, то приходится либо постоянно держать по крайней мере одно из них в открытом или свернутом на панели задач состоянии, либо перезапускать Tor Browser (с потерей всех сессий). Если это раздражает, то можно поставить дополнение MinimizeToTray, которое будет сворачивать окна в иконку системного трея. Для его установки достаточно нажать кнопку "+Add to Firefox" на странице дополнения , подтвердить разрешение на установку ("Allow"), нажать кнопку "Install now" и перезапустить Firefox ESR ("Restart now").
3. Для очистки сессионной информации, по которой сайты опознают пользователей при повторных запросах, можно нажать комбинацию Ctrl+Shift+Del или выбрать меню "Инструменты"->"Стереть недавнюю историю". В окне очистки можно указать период хранения, тип информации для уничтожения.
4. Кнопка TorButton (луковица) позволяет частично управлять Tor'ом, настраивать браузер. Для перезапуска Tor Browser с закрытием всех открытых его вкладок/окон, полной очисткой всех сессий и сменой цепочки Tor удобно использовать пункт меню "Новая личность". Этот жесткий вариант смены цепочки позволяет обратиться к сайту от полностью нового лица.
5. Кнопка NoScript позволяте полностью или частично блокировать выполняемый в браузере код JavaScript, который содержится в полученной с сайта странице. NoScript обладает некоторым искусственным интеллектом и по умолчанию отсекает только опасные с его точки зрения скрипты.
6. Особенности криптозащиты трафика при использовании Tor Browser, в частности, соединение по защищенному https-протколу см. в приложении C.
7. При использования Tor неизбежны задержки вследствие как пересылки данных по узлам цепочки, так и в результате ее разрыва. Если Tor Browser подвис, то можно принудительно сменить цепочку по мягкому варианту.
Информационный поток данных, идущий от пользователя в сеть Tor маскируется под обычный шифрованный SSL/TLS-трафик (протокол https) и распознать его по каким-то особенностям трудно. Однако провайдер отправителя всегда знает первичный адрес, по которому отпраляются данные. В случае с Tor'ом это адрес первого узла анонимизирующей цепочки. Все адреса публичных узлов Tor должны быть известны Tor Browser для подключения к сети, следовательно, они известны и цензору, которому нетрудно включить их в черный список с последующей блокировкой. Одним из способов борьбы с этим явлением является техника использования непубличных входных узлов - т.н. мостов (bridge). Разработчики Tor предусмотрели возможность запуска входных узлов в скрытом режиме, узнать их адреса можно только вручную небольшими порциями, что затрудняет их блокировку цензором. Порядок действий по использованию bridge для прорыва блокады приводится ниже:
1. Получение адресов bridge-узлов. На странице https://bridges.torproject.org/ можно найти адреса трех текущих bridge-узлов. Для этого надо пройти тест Тьюринга, распознав картинку, и нажать кнопку "I am human".
С появившейся страницы скопировать адреса мостов. Публиковать адреса реальных мостов недопустимо из-за угрозы деанонимизации! Поэтому ниже настоящие адреса заменены на вымышленные:
Если эта страница заблокирована, то можно получить адреса мостов по почте, отправив письмо-запрос на bridges@torproject.org с единственной строкой get bridges в теле письма по адресу bridges@torproject.org. Чтобы провайдер не узнал куда идет письмо и что в нем находится, необходимо использовать защищённые почтовые сервера, на текущий момент допускаются письма с почтовых сервисов gmail (см. подробно) и yahoo (на момент написания ответ не приходил), поскольку они обладают SSL-защищенным web-интерфейсом. C некоторыми проблемами можно завести ящик анонимно из Tor Browser.
2. Настройка Tor на использование bridge-узлов. Занести в клиент Tor полученные мосты можно через его графическую оболочку Vidalia. Для этого следует открыть окно Vidalia, нажать кнопку "Настройки" ("Settings"), в открывшемся окне выбрать вкладку "Сеть" ("Network"), пометить там галочкой пункт "Мой Интернет-провайдер блокирует доступ к сети Tor" ("My ISP blocks connections to the Tor network"). После надо скопировать адрес первого bridge-узла в поле "Добавить bridge" ("Add bridge") и нажать кнопку "+", таким же образом перетащить остальные bridge-узлы. Нажать кнопку "Ok".
Проверить факт использования мостов можно в окне "Обзор сети".
Некоторые сайты, сетевые службы и т.д. блокируют Tor, поскольку считают его потенциально опасным источником спам-атак или хотят контролировать посетителей. Сайт обычно использует для цензуры принцип черных списков - адресов, запросы с которых блокируются. В случае блокировки Tor, в черные списки попадают его публичные выходные узлы. Для прорыва такой блокады можно замаскировать эти выходные узлы путем присоединения к цепочкам Tor дополнительного внешнего ретранслятора трафика, чистого для сайта. Такие внешние ретрансляторы принято называть "внешними прокси-серверами" (proxy - посредник, прим.).
В текущей сборке Tor Browser подключение к цепочке внешнего прокси-сервера не предусмотрено. Для реализации этой операции есть несколько вариантов, самым простым из которых является прикручивание к сборке Polipo - внутреннего фильтрующего прокси, умеющего добавлять в конец цепочки Tor внешний прокси. После прикручивания Polipo, надо открыть его конфигурационный файл: tb\Data\Polipo\polipo.conf (под tb понимается каталог Tor Browser). После можно приступать к поиску внешних прокси.
Внешних прокси-серверов в сети предостаточно, можно легко найти их через поиск, есть удобные сервисы типа http://www.proxy-list.org/en/index.php. Необходимо, чтобы они не модифицировали проходящие данные, т.е. были сквозными (transparent) и желательно были забугорными.
После нахождения такого внешнего прокси-сервера, надо добавить в конец конфигурационного файла polipo.conf строку вида parentProxy=proxy_host:proxy_port (например parentProxy=122.72.80.107:80), где proxy_host:proxy_port - адрес внешнего прокси (в примере 122.72.80.107:80).
Затем следует полностью перезагрузить Tor Browser.
Практика показывает, что далеко не все внешние прокси любят Tor, некоторые из них также не любят ретранслировать https-трафик или даже пытаются подменить ключи. Таким образом подбор подходящего внешнего прокси-сервера может занять определенное время.
Если после запуска Tor Browser в течении 10 минут не появляется окно Firefox ESR и луковица-значок Vidalia в системном трее рядом с часами желтая, то возникла проблема соединения с сетью Tor. Если перезапуск Tor Browser не привел к успеху, то имеется некая помеха. Во-первых надо убедиться, что есть обычное соединение с Internet. Затем надо узнать, не используется ли для выхода в Internet внешний прокси-сервер. Узнается это в настройках прокси-сервера того браузера, который используется для повседневной работы с Internet: надо запустить этот браузер, найти настройки прокси - IP-адрес и порт (например, IP-адрес 192.167.1.2 и порт 3022), иногда еще имя и пароль.
Если для обычного выхода используется браузер Firefox, то в его главном меню надо перейти в "Инструменты" ("Tools") => "Настройки" ("Settings"), выбрать вкладки "Дополнительно" ("Advanced") => "Сеть" ("Network"), в секции "Соединение" ("Connections") нажать кнопку "Настроить" ("Settings").
Если использовался браузер Opera, то в его главном меню надо перейти в "Настройки" => "Общие настройки" (Ctrl+F12), выбрать вкладку "Расширенные", пункт "Сеть", в секции "Соединение" нажать кнопку "Прокси-серверы".
Если использовался браузер Internet Explorer, то в его главном меню надо перейти в "Сервис" ("Tools") => "Свойства обозревателя" ("Internet Options"), выбрать вкладку "Подключения" ("Connections"), нажать кнопку "Настройка Сети" ("LAN Settings").
Если использовался браузер Google Chrome, то в его адресной строке вызвать chrome://chrome/settings/ и на появившейся странице найти в разделе "Сеть" кнопку "Изменить настройки прокси-сервера". Далее "Настройка Сети" аналогично варианту с Internet Explorer.
Эти параметры надо перенести в Tor: активировать Vidalia (нажать на значок-луковицу в трее), нажать в появившемся окне кнопку "Настроить сервер", выбрать вкладку "Сеть", нажать на окошко "Я использую прокси", скопировать из браузера в окно "Адрес" IP-адрес прокси-сервера, а в окно "Порт" номер порта. Если в браузере заполнены поля "Имя" ("Login") и "Пароль" ("Password"), то их также надо занести в соответствующие поля Vidalia "Имя" и "Пароль". Нажать кнопку "Сохранить". Перезапустить Tor Browser.
Если и это не помогло, то вполне возможна блокировка провайдером публичных входных узлов сети Tor, для ее преодоления используется техника непубличных мостов (bridge). В любом случае можно задать вопрос на форуме pgpru.Сигнатура файла (электронно-цифровая подпись, ЭЦП) - идентификатор, создаваемый на основе этого файла при помощи секретного ключа. Сигнатура позволяет при наличии публичного ключа (соответствующего секретному) удостовериться в подлинности файла. Данная схема применяется, в частности, при проверке архива Tor Browser на целостность и отсутствие злонамеренных модификаций, которые могут быть внесены при передаче по сети. Отправитель (Tor Project) создает сигнатуру файла (архива Tor Browser) при помощи своего секретного ключа, затем открывает доступ к соответствующему ему публичному ключу, файлу и его сигнатуре. Получатель скачивает все это и проверяет у себя файл (архив Tor Browser) публичным ключом отправителя (Tor Project) по полученной сигнатуре. Для борьбы с человеком посередине, который может перехватить и подменить публичный ключ, используется сетевое хранилище ключей. В частности, хранилища pgp-ключей хранят и подписывают публичные pgp-ключи официальными сертификатами, которые знают все официальные реализации формата pgp (в них зашиты публичные ключи этих хранилищ).
Проверку подлинности Tor Browser Bundle по файловой сигнатуре можно провести при помощи gpg4usb (см. подробно). Для этого надо дополнить стандартную сборку gpg4usb библиотекой iconv: качаем архив iconv с официального сайти gnuPG http://www.gnupg.org/download/iconv.html
Из скачанного архива надо извлечь файл iconv.dll и скопировать в каталог gpg4usb\binПосле этого можно получить публичный ключ для проверки сборки Tor Browser. На сайте Tor Project на странице https://www.torproject.org/docs/verifying-signatures.html.en указан адрес сетевого хранилища:
На странице https://www.torproject.org/docs/signing-keys.html.en опубликованы идентификаторы (отпечатки - key fingerprint) публичных ключей, которыми подписываются программы:На момент написания, сборке Tor Browser соответствовал публичный ключ Эринна Кларка с отпечатком 0x63FEE659 и сервер pgp-ключей pool.sks-keyservers.net
Для импорта ключа надо запустить gpg4usb и перейти в меню "Ключи" -> "Импорт ключа" -> "Сервер ключей"
Заполнить форму согласно информации с сайта Tor Project:
Поисковый запрос = 0x63FEE659
Сервер ключей = http://pool.sks-keyservers.net
Нажать кнопку "Поиск", а после нахождения ключа - кнопку "Импорт":
Теперь надо получить проверочную сигнатуру. Для этого надо зайти на страницу закачки Tor Browser https://www.torproject.org/projects/torbrowser.html.en и перейти там к сигнатуре, соответствующей скачанному архиву.
Текст сигнатуры надо скопировать в текстовый файл, который требуется предварительно создать в том же каталоге, где лежит проверяемый файл и назвать его именем "имя_проверяемого_файла.asc". Например проверяется файл tor-browser-2.2.39-5_ru.exe, лежащий в каталоге tb, необходимо создать в tb (кнопкой Shift+F4 в DoubleCommander (см. подробно)) текстовый файл tor-browser-2.2.39-5_ru.exe.asc и скопировать туда текст сигнатуры.
Теперь можно приступать к самой проверке. На момент написания, подпись/проверка файла в gpg4usb была доступна только через консоль Windows. Требуется вызвать консоль Windows и перейти там в каталог gpg4usb\bin. В DoubleCommander (см. подробно) для этого достаточно перейти в каталог gpg4usb\bin на любой панели и нажать кнопку F9. В общем случае годится вызов консоли из меню Windows: Пуск -> Выполнить-> cmd с последующим выполнением в ней команды вида cd <путь_к_каталогу_gpg4usb\bin> (в примере cd c:\temp\gpgAlice\bin).
В консоли надо выполнить команду вида
gpg.exe --keyring ..\keydb\pubring.gpg --verify <путь_к_каталогу_файла>\<сигнатура>
в примере используется такая команда
gpg.exe --keyring ..\keydb\pubring.gpg --verify c:\temp\tb\tor-browser-2.2.39-5_ru.exe.asc
В результате успешной проверки (т.е. подтверждения что сигнатура правильная и создана ключом 63FEE659) в той же консоли появится примерно такое сообщение:
gpg: Signature made Wed 31 Aug 2011 06:37:01 PM EDT using RSA key ID 63FEE659
gpg: Good signature from "Erinn Clark
gpg: aka "Erinn Clark
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 8738 A680 B84B 3031 A630 F2DB 416F 0610 63FE E659
Tor не занимается криптозащитой! Более того, вся информация в открытом виде проходит через последний узел цепочки Tor (там снимается последний слой Tor-шифра для передачи адресату). Поскольку публичные узлы Tor, в т.ч. выходные, запускаются добровольцами, то вполне возможно, что часть из них занимается шпионажем.
Для криптозащиты данных используются либо автономные средства, такие как gpg4usb (см. подробно), либо специальный защищенный протокол https, если он поддерживается сайтом. В протоколе https обычная передача данных по протоколу http шифруется на всем пути посредством SSL/TLS. Данный механизм использует ассиметричное шифрование (см. подробно) с публичными и секретными ключами. Перед началом защищенного обмена данными (https-сессии), между сайтом и пользователем производится обмен публичными ключами, при помощи которых все и шифруется. Эти ключи может попытаться подменить на свои подставные третья сторона, например шпионский выходной узел Tor, что приведет к раскрытию защиты. Для борьбы с этим используется схема сертификации ключей в удостоверяющих центрах, сертификаты которых известны большинству современных браузеров, в т.ч Tor Browser. Более-менее серьезные сайты используют только https с сертифицированными ключами.
Tor Browser автоматически проверяет сертификаты и, в случае узнавания, устанавливает https-соединение. Если же сертификат неизвестен, то появляется предупреждение.
В этом сучае рекомендуется несколько раз сменить цепочку при помощи кнопки TorButton, чтобы исключить злонамеренную подмену ключей. Если сертификат по-прежнему не известен Tor Browser, то возможны следующие варианты. Возможно устарела сборка Tor Browser, которая не знает новых сертификатов. Если обновление не помогло, то остается 2 варианта. Возможно устарели сами сертификаты (они имеют ограниченное время действия) или они не учтены в Tor Project. Либо происходит их злонамеренная подмена на "открытом" участке между выходным узлом Tor и сайтом. Для проверки сертификата надо нажать по ссылке "Я понимаю риск" в окне предупреждения после чего нажать по появившейся кнопке "Добавить исключение".
Через некоторое время сертификат закачивается и его можно просмотреть кнопкой "Просмотреть". При анализе надо обратить внимание на то, кому он выдан, кем выдан, время действия. Эту информацию желательно перепроверить: несколько раз повторить процедуру получения сертификата на разных цепочках Tor, поискать реквизиты сертификата через поисковые системы, посмотреть их на самом сайте и т.д. Если сертификат вызывает доверие, то его следует добавить кнопкой "Подтвердить исключение безопасности".Ранее в сборках Tor Browser для фильтрации опасного с т.з. анонимности контента и предотвращения DNS-утечек использовался кэширующий прокси-сервер Polipo (еще раньше Privoxy). При использовании Polipo выявились недостатки: невозможность фильтрации шифрованных данных при использовании https и блокировка смены цепочек Tor через Vidalia. Поэтому эти функции стали выполнять усовершенствованные расширения Firefox/TorButton и Firefox/NoScript, а прокси был удален из сборки. Однако Polipo давал весьма полезную побочную функцию - он позволял добавить в конец цепочки Tor внешний прокси-сервер, который мог замаскировать факт использования Tor перед web-сайтом. На момент написания, данная функция в сборках Tor Browser утеряна. Для ее восстановления наиболее простым вариантом являетя возврат Polipo в состав Tor Browser, что и описывается ниже.
0. Внимание! Polipo блокирует смену цепочек Tor через Vidalia. Поэтому рекомендуется завести отдельный Tor Browser (скопировать в новый каталог), который и модифировать для работы с удлиненными цепочками, как показано ниже. Для обычных задач рекомендуется использовать стандартную сборку.
1. Скачивание Polipo. Достать фильтрующий прокси-сервер Polipo можно из старой сборки Tor Browser, которую можно скачать из официального архива Tor Project:
https://archive.torproject.org/tor-package-archive/torbrowser/tor-browser-1.3.0_es-ES.exe
Сигнатура для проверки подлинности скачанного архива находится по адресу:
https://archive.torproject.org/tor-package-archive/torbrowser/tor-browser-1.3.0_es-ES.exe.asc
2. Извлечение и копирование Polipo. Следует распаковать скачанный архив старой сборки Tor Browser в какой-нибудь каталог (без ограничения общности old_tb), найти там подкаталог old_tb/App и скопировать (без перезаписи) его содержимое в каталог App модифицируемого Tor Browser (без ограничения общности tb/App). Создать подкаталог tb/Data/Polipo и скопировать в него конфигурационный файл old_tb/Data/Polipo/polipo.conf
3. Настройка Vidalia. Надо найти в модифицируемом Tor Browser конфигурационный файл tb/Data/Vidalia/vidalia.conf и дописать в раздел [General] строки:
И удалить строку (если есть):
Изменения в vidalia.conf нужно сохранить.
4. Настройка Tor. В конфигурационном файле tb/Data/Tor/torrc заменить строку (если она есть)
5. Настройка браузера Firefox ESR. В браузере Firefox ESR требуется задать соединение с Polipo, для чего следует запустить Tor Browser, в настройках его плагина TorButton (ПКМ по значку луковицы вверху -> настройки ...) выставить метку "Установить параметры прокси вручную" и забить во все поля http-прокси, ssl-прокси, ftp-прокси, gopher-прокски параметры Polipo: хост 127.0.0.1 и порт 8118.
После всех настроек нужно перезапустить Tor Browser. Как дополнять при помощи Polipo цепочки Tor внешними прокси-серверами см. здесь.