Тонкая настройка браузера
Я пользуюсь web-браузером Opera 10.10. На момент написания статьи эта была последняя доступная версия из портов. У каждого пользователя свои предпочтения по части выбора инструмента серфинга по Сети, поэтому если кто-то из читателей пользуется другим браузером - в этом нет ничего страшного. Разработчики рекомендуют использовать Mozilla Firefox, тем более для него написано множество плагинов, которые повышают анонимность.
Сразу хочу отметить, что для достижения приемлемого уровня анонимности придётся отказаться от Java, JavaScript, Flash, ActiveX (для пользователей Windows), различных плагинов, etc, так как они несут угрозу раскрытия анонимности. Тонко настроить браузер через графическое меню не представляется возможным. Многие настройки скрыты от глаз пользователя, поэтому придётся настраивать через about
:config(opera:config). Ниже я приведу наиболее важные, на мой взгляд, настройки.
В адресной строке набираем
about:config:
Блок [Cache]
Cache HTTPS After Sessions=0(выкл)-при выходе сохранять HTTPS-странице в кэше.
Блок [Clear Private Data Dialog]
CheckFlags=1023 — запомнить для последующего использования:cookie,историю посещения страниц,кэш,etc(Инструменты=> Удалить личные данные)
Блок [Disk Cache]
Empty On Exit=1-очищать кэш при выходе из Opera
Блок [Extensions]
Ask Flash Download=0-запрос о загрузке Flash
Plugins=0-включить плагины
Scripting=0-Включить JavaScript/ECMAScript
Блок [Java]
Enabled=0-разрешить Java на web-страницах
Блок [Multimedia]
Play Background Sound=0-Если на рисунке есть звуки, то проигрывать их
Блок [Network]
В этом блоке возможны так же настройки HTTP Accept ,HTTP Accept Charset,HTTP Accept Language
Блок [Personal info]
Если что то есть, всё удаляем
Блок [Proxy]
HTTP Server,HTTPS Server,FTP Server,Gopher ServerбWAIS Server=127.0.0.1:8118
Use FTP,Use GOPHER,Use HTTP,Use HTTPS,Use WAIS=1(ставим галочки)
No Proxy Servers=127.0.0.1
Примечание: хотя Privoxy не поддерживает FTP, все же следует настроить браузер на работу через прокси для этого протокола, и при попытке набрать ftp:// URL-адрес, браузер отобразит ошибку, но информация не будет послана в сеть.
Блок [SecurityPrefs]
Password Lifetime=1-Время хранения мастер-пароля в памяти, в минутах.
Блок [Special]
JavaScript AppCodeName,JavaScript AppName,JavaScript IE AppName,JavaScript Opera AppName-какое имя должно быть найдено свойством DOM/JS, которое отыскивает кодовое название браузера; я выставил везде «Microsoft Internet Explorer»
Блок [User Agent]
Spoof UserAgent ID=5 - если 5,то идентифицируется как Internet Explorer, и не упоминает об Opera
Блок [User Prefs]
Accept Cookies Session Only - удалять Cookie при выходе(см. Enable Cookie)
Allow script to change status =0Разрешить JavaScript изменять содержимое строк состояния Opera
Allow script to hide address =0 Разрешить JavaScript открывать вкладки без полного поля адреса
Allow script to lower window =0 Разрешить JavaScript сворачивать страницы
Allow script to move window=0 Разрешить JavaScript менять положение страниц
Allow script to raise window=0 Разрешить JavaScript активировать свернутые вкладки или окна
Allow script to receive right clicks=0 Разрешить JavaScript обрабатывать щелчки правой кнопки
Allow script to resize window=0 Разрешить JavaScript изменять размеры страниц и окон
Примечание: По умолчанию в браузере будет отключён JavaScript, но многие сайты без него работать не будут и для доверенных всё же придётся его включать (Инструменты=>Быстрые настройки=>Настройки для сайта или F12=>Настройки для сайта), поэтому пока что отключаем всё.
Check For New Opera=0-Сохранять запись о еженедельной проверке новых обновлений
Client Pull=0-Разрешить перенаправление HTTP
Client Refresh=0 Разрешить автоматическое перенаправление
Enable Cookies=0-Отклонять все Cookie
Примечание: По умолчанию cookie будут отключены, но работа с большинством сайтов из-за этого будет невозможна, поэтому для доверенных всё же придётся их включать (Инструменты=>Быстрые настройки=>Настройки для сайта или F12=>Настройки для сайта)
Enable Referrer=0-Разрешить логирование рефереров; разрешить веб-сайтам знать с какого сайта пришёл пользователь.
Enable Wand=0-Включить менеджер паролей
Global History File-История Opera записывается в этот файл(стираем путевое имя)
Home URL=http://torcheck.xenobite.eu-домашняя страница. Советую поставить потому что, перед началом работы в Интернете, после запуска браузера, вначале стоит убедиться в своей анонимности.
Max Direct History Lines=0 Максимальное число набранных URL
Max Global History Lines=0 Максимальное число записей в общей истории
Save Password Protected Pages=0-Разрешить сохранение защищенных паролем страниц в сеансе
Script Spoof=5-идентефицироваться в сценариях как Microsoft Internet Explorer.
User JavaScript =0 Включить или выключить использование UserJS.
User JavaScript on HTTPS =0 Разрешить UserJS на защищенных серверах.
Warn Insecure Form=1-Предупредить перед опубликованием данных формы на небезопасных страницах.
Вернёмся к теме про модификацию заголовка
User Agent. Как видно из выше перечисленных настроек, есть возможность встроенными средствами программы изменить некоторую информацию, посылаемую серверу web-браузером. Например «Http Accept Charset», Privoxy не умеет изменять, а вот с помощью браузера это предоставляется возможным. Как уже известно, Privoxy не умеет фильтровать защищённый трафик, поэтому ничего не остаётся кроме как воспользоваться встроенными средствами. Переходим в меню
"Инструменты =>Настройки =>Дополнительно=>Содержимое =>Настройки для сайтов=>Добавить". В появившемся окне можно настроить для конкретного сайта
cookie, javascript, всплывыющие окна, etc. Сложностей в конфигурации возникнуть не должно и настройки задаваемые пользователем будут действовать только в пределах одного конкретного сайта. Хочу остановиться лишь на вкладке «Сеть» и выборе идентификации браузера. Так как изначально в моём примере я представлялся как
«Microsoft Internet Explorer», то выбрал из списка
«Маскироваться под Internet Explorer». Значения «Представляться как ...» оставляют некоторую информацию о настоящем браузере.
Вроде бы всё настроено и работает, но уже есть списки заголовков, по которым можно определить настоящий браузер и некоторые «умные» скрипты проверки на анонимность используют их. По моим наблюдениям, Opera с выставленным значением
«Маскироваться под Internet Explorer», идентифицируется такими скриптами как MSIE6 (так же выводится название ОС) с дополнительным полем
«Браузер модифицирован» и тегами, которые, по его мнению, были изменены. В моём случае это теги ОС и язык (ru). «Это не есть хорошо» - подумал я и решил поэксперементировать. В результате этих эксперементов всё таки нашёлся способ запутать «умный» тест на анонимность.
Исходная строка, определяющая браузер, маскирующийся под IE средствами Opera, выглядит так:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;(тут пробел)ru
Удалив тег модификации
«ru» и, вставив данную строку в качестве значения параметра
hide-user-agent в файл действий web-фильтра, получил ответ, что мой браузер не модифицирован и является настоящим.
Хорошо, но не совсем по той причине, что защищённый трафик Privoxy фильтровать не умеет, и с первого взгляда видно, что строка идентифицирующая браузер по http, отличается от той, что получена по https.
По http:
по https:
Согласитесь, не очень «красивая» ситуация, хоть и не сильно заметно. Поигравшись ещё немного с этим тэгом, я всё таки нашёл способ, который, на первый взгляд, ничем не отличается от исходной строки, но всё таки сбивает с толку скрипт проверки. Между символом “;” и тегом модификации “ru” стоит пробел, если его удалить, то браузер и ОС определяются как немодифицированные.
До модификации(
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;<тут пробел>ru):
После модификации(Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;ru):
Получается что, абсолютно две одинаковых, на первый взгляд, строки, интерпретируются в зависимости от протокола(http/https) по-разному. К сожалению, это лишь создаёт иллюзию, что скрипт проверки «работает неправильно». Минусы использования встроенных средств браузера очевидны, к тому же для каждого https сайта придется производить настройки в «...=>Содержимое=>Настройки сайтов». У читателя может возникнуть вопрос: зачем так «заморачиваться»? Проще в файле действий выставить что-нибудь «пораспространённей» на данный момент, а с https ситуация и без этого трудноразрешимая, пусть остаётся всё как есть. Моё мнение на этот счёт такое: оставить «как есть» не вариант, тем более, когда имеется возможность сделать чуть-чуть лучше. К тому же я пользовался всего лишь одним тестом на анонимность, работающим по https, и в этом случае он идентифицировал браузер «как надо» без манипуляций, описанных выше (маскировка была произведена средствами браузера).Это несомненно радует, но если атакующий осведомлён в этих мелочах, то этот вариант «работать» не будет.
Программы сетевого общения
Для
ICQ и
Jabber я использую
qutIM (версия 0.2) - бесплатный open-source многопротокольный (ICQ, Jabber/GTalk/Ya.Online/LiveJournal.com, Mail.Ru, IRC) клиент для общения. Сразу хочу отметить, что придется отказаться от различных плагинов показа погоды и т.п. дополнений. Для того, чтобы настроиться на работу с Tor'ом необходимо сконфигурировать для каждого протокола, соединение через прокси сервер:
Настройки=>Учётные записи=>Выбираем протокол=>Редактировать=>Се ть ставим галочку «Соединение через прокси».
Для тех, кто сомневается в утечке DNS запросов, в поле «Хост» можно прописать ip-адрес сервера. Безопасно преобразовать DNS имя, поможет утилита
tor-resolve. На вкладке «Прокси» выбираем
«Тип»=>HTTP/SOCKS5, «Хост»=>127.0.0.1, «Порт»=>8118/9050(в зависимости от типа выбранного прокси).
Для Jabber'а все почти аналогично, только на вкладке
«Ресурс» следует вписать нужный ресурс. На вкладке
«Соединение» выставить из выпадающего списка
«Защищёное соединение»=>Всегда, поставить галочку
«Установить в ручную хост и порт», в поле
«Хост» вписать адрес сервера и
5223(SSL) порт.
Есть вариант настроить соединение через прокси глобально (
Настройки=>Глобальный прокси), но предпочтительней, на мой взгляд, первый вариант, т.к есть возможность выставить вместо DNS имени сетевой адрес и, в случае с Jabber, принудительно указать сервер и порт.
Примечание: пользоваться ICQ через Tor небезопасно, т.к с большой вероятностью (особенно если красивый UIN) номер может быть угнан. Предпочтительней пользоваться ICQ через Jabber с помощью транспортов, т.к трафик идёт по SSL и расшифровывается непосредственно на сервере предоставляющий транспорт, но(!) опять же существует опасность потерять UIN. На эту тему читал много материалов и пришёл к выводу, что трафик, идущий напрямую через Tor=>ICQ, рассматривать не стоит вообще, в связи с участившимися случаями недобросовестности владельцев exit-node'ов. Второй способ конечно же лучше, но опять же возникает вопрос: а можно ли доверять владельцу Jabber-сервера? Конечно же, перед тем как использовать транспорт, необходимо найти о нём отзывы пользователей, желательно на нескольких ресурсах, но это не даёт гарантии, что номер не будет угнан. UIN может быть потерян в случае, когда соединение идёт напрямую с серверами ICQ, т.к на месте администратора серверов провайдера, может сидеть такой же недобросовестный администратор как и владелец «снифающего» exit-node'а или Jabber-сервера. По этому поводу ничего советовать не буду и оставляю право выбора за читателем.
Для IRC я пользуюсь
Xchat (версия 2.8.6) - кроссплатформенный клиент для этого протокола. Тут так же всё просто, только хочу отметить некоторые моменты. При настройке соединения через прокси
«Настройка=>Установки=>Сеть =>Настройки Сети» в выпадающем списке
«Использовать прокси для…» ставим
«Все соединения».
«...=>Сеть=>Передача файла» в списке
«Автоматически принимать файлы» выбрать
«Нет». По возможности необходимо пользоваться только защищённым соединением. Благо сейчас все IRC-серверы поддерживают
SSL(Xchat=>Список сетей=>Править). К сожалению этот протокол устроен так, что с помощью CTCP запросов возможно узнать о пользователе некоторую информацию. Необходимо поставить запрет на такие запросы.
«Настройка=>Дополнительно=> Ответы CTCP» и в появившемся окне удаляем все ответы и нажимаем
«Записать». Далее в окно ввода сообщения пишем:
/ignore *!*@* CTCP
*!*@* добавлен в список игнорирования,
переходим
«Окно=>Список игнорирования» и ставим галочки
«CTCP» и
«DCC»
Для ещё большей безопасности отключаем показ версии:
/set irc_hide_version on
По желанию, для всех выше перечисленных протоколов можно отключить логи. Для qutIM в
«Настройки=>История, для Xchat
Настройка=>Установка=>Прото колирование», и по возможности отказаться от услуг передачи файлов. В завершении хочу порекомендовать пользоваться дополнительными средствами шифрования. Существуют плагины, которые шифруют сообщения, и прочитать их может только адресат, т.е. тот у которого есть «ключ». Примеры таких плагинов:
GPG Crypt и
qutIM Coder для qutIM, xchat-mircryption для Xchat.
Настойка Email
Для отправки/получения электронной почты я использую web-интерфес почтового сервера. Причины, которые заставили меня это делать несколько. Первая и, наверное, самая главная заключается в том, что многие программы получения/отправки почты очень тяжело настроить на работу с Tor, т.к. многие сервера сети просто блокируют почтовый трафик. Вторая заключается в дописывание этими программами «лишней» информации в заголовок письма, что крайне нежелательно. Об этом писал ЗАРАЗА в своей статье «Утечка данных через служебную информацию и сетевой протокол в клиентском приложении». В случае с web-интерфейсом дополнительный фильтр в виде Privoxy (или другого web-фильтра) уже выставлен и настраивать ничего не надо. Третья, более индивидуальная. Я получаю не много корреспонденции, поэтому в установке и настройке дополнительного ПО не вижу смысла. В дополнение хотелось бы порекомендовать использование дополнительных средств шифрования, которые должны увеличить безопасность электронной переписки.
Настройка «остального» ПО
Под «остальным» ПО подразумевается множество сетевых приложений, которые имеют место быть. Я лишь описал необходимый минимум, который понадобится пользователю во время работы. Многие программы, такие как lynx, links, wget и т.д. также требуют тонкой настройки. Они поддерживают множество параметров, которые непременно помогут в более безопасном и анонимном их использовании. Это не удивительно, т.к. эти приложения работают по протоколу HTTP. Вспомните о тонкой настройке браузера или загляните в мануалы по этим программам и всё станет ясно. Конечно же, это относится не только к протоколу HTTP, но и ко многим другим программам, работающим на транспортном уровне с TCP.
Многие программы имеют глобальные файлы конфигурации, т.е. не важно под каким пользователем будут их использовать. При запуске они будут принимать конфигурацию установленную в этих файлах. Примеры таких файлов вышеописанных программ находятся в
/usr/local/etc/lynx.cfg и
/usr/local/etc/wgetrc. Лучше всего глобально настроить их сразу на максимальную степень конфиденциальности, а если необходимо сделать какие-то индивидуальные настройки, их можно переопределить в пользовательских файлах конфигурации -
.lynxrc и
.wgetrc. Это даёт дополнительную преграду от факта, что пользователь случайным образом выйдет в сеть под другим пользователем, но уже не анонимно. Существуют так же переменные окружения http_proxy/HTTP_PROXY/и т.д., которые также лучше всего занести в глобальный конфигурационный файл своего командного интерпретатора, а уже потом, по необходимости, переопределить в пользовательском файле.
Приложения, которые не работают с TCP не просто использовать вместе с Tor. К таким приложениям относятся:
ping, host, dig, nslookup, traceroute и т.п. Вместо них можно воспользоваться онлайн-утилитами, которых великое множество во всемирной паутине или же найти альтернативу. В замену стандартным утилитам ping/traceroute можно воспользоваться hping'ом. Она может «пинговать» хосты не только при помощи ICMP пакетов, которые часто отвергаются брандмауэрами, но также и при помощи TCP и UDP-пакетов. Эта утилита позволяет, при помощи TCP пакетов с плавно изменяющимся TTL, выяснить маршрут к хосту, даже если этого не смогла сделать программа traceroute. Принцип работы тот же, но TCP пакеты, мягко говоря, реже уничтожаются брандмауэрами. Можно написать на стандартные утилиты алиасы которые будут заменяться hping'ом. Необходимо добавить в файл
/etc/csh.cshrc (или глобальный конфигурационный файл другого командного интерпретатора) строки:
alias ping proxychains hping -p 80 -S
alias traceroute proxychains hping -p 80 -S —traceroute
Примечание: этот вариант ping'а и tracerout'а будет работать только в том случае, если на проверяемом хосте стоит web-сервер, слушающий 80-й порт(флаг -p 80). Если используется другой командный интерпретатор, то формат записи алиасов может быть другой. В bash, например, необходимо добавить в
/etc/profile строки:
alias ping='proxychains hping -p 80 -S'
alias traceroute='proxychains hping -p 80 -S —traceroute'
Таким же образом можно создать алиас на любую необходимую программу и связать её с torify/proxychains, что бы не набирать постоянно torify/proxychains <программа>.
На обычные пинги ресурс не отвечает:
а если воспользоваться hping'ом, то видно, что ресурс функционирует в нормальном состоянии.
Примечание: некоторые утилиты из стандартного набора все таки удалось заставить работать с Tor'ом. Например, утилита whois прекрасно работает в связке с proxychains.
После того как всё настроено и работает без ошибок обязательно необходимо проверить все настроенные приложения на предмет утечек DNS. Достаточно воспользоваться любым анализатором пакетов, которых великое множество. В базовую систему FreeBSD входит tcpdump-утилита, позволяющая перехватывать и анализировать сетевой трафик, проходящий через компьютер, на котором запущена данная программа. Она позволяет отфильтровать трафик на определённый порт.
#tcpdump -q -i <сетевой интерфейс> port 53
Первый флаг установлен для вывода минимума информации; второй указывает, какой «слушать» интерфейс; третий определяет, какие пакеты «захватывать» (на 53 порту по умолчанию обычно принимает пользовательские запросы DNS сервер). Если всё настроено правильно, то снифер не должен захватить ни одного пакета.
Рекомендации по использованию Tor
Тут хотелось бы отметить некоторые рекомендации, которые помогут читателю не раскрыть свою анонимность и оставаться бдительным.
1) По возможности используйте для анонимной и «не анонимной» работы два разных подключения к Интернет, два разных компьютера, две учётные записи (было бы хорошо =)). Как правило, под одной и той же учетной записью используется одинаковое ПО и, например, если пользователь зашёл на сайт не анонимно с включёными cookie, а потом посетил этот же сайт с включенными опциями анонимности, то его можно будет идентифицировать по cookie, которые были переданы в прошлый сеанс работы. Если все таки приходится работать под одной учётной записью установите дополнительное ПО для работы с разными степенями конфиденциальности.
2) Перед тем как использовать ту или иную утилиту, попробуйте найти способы ее «анонимизации», почитайте отзывы пользователей, зайдите на сайт производителя ПО и ознакомьтесь со способами ее тонкой настройки.
3) После настройки ПО обязательно протестируйте его работу в связке со снифером.
4) По возможности отключайте автоматическое обновление или проверку новых версий ПО.
5) Не используйте одну и туже учётную запись на форумах, сайтах, чатах и т.п. когда для разного вида серфинга (анонимный/неанонимный).
6) Будьте внимательны к сообщениям браузера когда работаете по защищённому протоколу.
7) Следите за новостями об уязвимостях, найденных в Tor и новых атаках, которые были произведены на эту сеть. Возможно, там будут описаны варианты защиты.
8) Следите регулярно за выходами новых версий Tor'а, в них может быть исправлена критическая уязвимость безопасности.
Так же на некоторых ресурсах «для параноиков» советуют следить за тем, что мы пишем в Сети, так как хороший лингвист может определить, что два разных, на первый взгляд, пользователя это есть один и тот же человек. Выводы делаем сами

.
Это конечно же не полный перечень того, что можно посоветовать для увеличения степени работы во всемирной паутине. Возможно, читатель дополнит этот список своими рекомендациями.
Послесловие
Я не считаю Tor панацеей от всех проблем, но если прикинуть соотношение цены и качества, то это вполне работающий инструмент, тем более, если необходимо быть анонимным один-два раза, при этом не затрагивая финансовую сторону. Есть множество плюсов и минусов, которые заставляют задуматься об использование данного средства как инструмента для сокрытия реальной информации о себе. В Сети на эту тему существует множество обсуждений, которые имеют как сторонников, так противников данной сети. Моё мнение: вполне реально использовать Tor для анонимного сёрфинга, но для более «серьёзных» дел (например для банковских транкзаций) он подходит с большой натяжкой и используется на свой страх и риск. Несомненно, идеальной анонимности не существует, а близкая к тому, только та, которая создана своими руками (например, взломанный сервер с установленным соответствующим ПО). Выбор остаётся за конечным пользователем который решает «Быть или не быть».
(с) i55 (defec.ru)