Аутентификация TOR
Подскажите, пожалуйста, две вещи по ТОР:– почему он не хочет работать без установленной настройки "пароль" в аутентификации
и второе, главное – собственно, а что он делает с этим паролем, как использует? вот захожу я на сайт с такой настройкой, и?
Ссылки
[link1] https://www.pgpru.com/chernowiki/rukovodstva/voprosykandidatyvfaq/anonimnostjobschievoprosy
[link2] https://www.pgpru.com/comment39642
[link3] https://www.pgpru.com/comment54138
[link4] https://www.pgpru.com/comment60805
[link5] https://www.pgpru.com/comment61869
[link6] https://www.pgpru.com/comment65034
[link7] https://www.pgpru.com/comment58024
[link8] https://www.pgpru.com/comment58191
[link9] https://www.pgpru.com/comment66142
[link10] https://trac.torproject.org/projects/tor/ticket/6733
[link11] https://trac.torproject.org/projects/tor/ticket/8117
[link12] https://trac.torproject.org/projects/tor/ticket/8879
[link13] https://www.pgpru.com/comment68362
[link14] https://lists.torproject.org/pipermail/tor-talk/2013-December/031392.html
Это граф. интерфейс, который называется Vidalia, спрашивает пароль, чтобы отправлять сигналы процессу тора, т.к. они созданы в качестве раздельных программ.
Это межпрограммная коммуникация осуществляется локально, пароль нужен для отсутствия локального перехвата, на посещение сайтов это никак не влияет, пароль никуда отсылаться, естественно, не должен.
Вот представьте, что пароля нету, а Tor запущен, слушает на каком-нибудь 127.0.0.1:9050. В это время другой юзер на вашем же ПК, от имени которого запущена какая-нибудь дрянь типа Skype или Flash, отправляет пакет на 127.0.0.1:9050 и смотрит, с какого эксита пришёл ответ. Вуаля, ваш эксит известен врагу. Далее пересмотром трафика, который шёл с эксита, можно найти и тот другой, что принадлежал вам, итого имеем полный деанон. Описанный сценарий более, чем реалистичен.
P.S. Проблема смешения профилей уже неоднократно обсуждалась на форуме, подробнее см. п.2 в чёрном FAQ[link1]'е, а также [1][link2], [2][link3], [3][link4], [4][link5], [5][link6].
Хуже — без пароля было бы возможно безконтрольно почти полностью управлять поведением тора, например поменять конфиг.
Поменять конфиг чтобы, нужны права. Другой пользователь по умолчанию прав на изменение файлов в чужой директории не имеет.
Поменять конфигурацию Tor'а на лету может любой желающий, подключившийся (в том числе и локально) через control port. Чтобы этого не допустить и используется аутентификация.
Интересно. И как много параметров соединения можно поменять через Control Port? Почти все, вплоть до выбора нужного exit'а? Дело спасает то, что до видалии не было никакой нужды включать Control Port в конфиге, так что его попросту не было. Тем не менее, даже исходя из общих соображений, необходимость борьбы с такого рода утечками осознавалась ещё давно[link7].
Хорошее решение. Тогда объясните мне каким образом всякие криптософтовые кошельки при настройке маршрута через тор без пароля (пароль там вообще не предусмотрен) успешно связываются с чем им надо при запущенной из коробки видалии при включенной в ней в настройках по умолчанию 'Randomly Generate'?
Эта полезная кстати сказать фича работает или нет? Если работает, тогда как сторонний софт связывается через ТОР? А если нет. тогда получается что настройки Видалии ни на что не влияют?
В последних версиях TBB на socks-порту есть авторизация[link8]. Убедиться в её наличии можно запустив 2 TBB подряд: видалия после этого сразу выдаёт окошко «хотите ли авторизовать такое-то приложеное?» (как-то так). Правда, авторизацию на порту по умолчанию ввели не так давно — несколько месяцев назад. Проверьте ваши эксперименты на последней версии бандла.
Хотя нет, там, кажется, всё веселее. :-) Пароль предусмотрен для доступа к Control Port, а на Socks Port, на котором он слушает перенаправляемый трафик, я так и не понял, предусмотрено что-нибудь или нет. Если нет, то уже всё сказано[link9]. 9150 — SocksPort, 9151 — ControlPort, вроде так сейчас.
Господа, вы согласны? Достоин ли такой элементарный полный деанон тикета на trac.torproject? Или это не баг, а задокументированная фича? Файерволл не предлагать, потому что сейчас речь не о нём, а о массовых юзерах.
Не нашел там элементарного и полного. Неприятно конечно, но запаролить сокс порт нельзя. (Есть лишь SocksPolicy для адресов.) Вот только у массового юзера это будет возможно последнее чем его будут деанононить.
В опциях есть возможность изоляции цепочек для разных пользователей. Так вот тор клиент может различать пользователя по логину и паролю для сокс порта. Паролей тор не умеет для авторизации, но умеет для изоляции, и никаких общих экситов у вас и вашего скайпика не будет, если только скайпик не скомуниздит используемые кренделя. Это то что вы искали, гарантирую.
Читаем в мануале для SockPort
Фигня этими с паролями для изоляции. Firefox не умеет в пароли без запросов со стороны сервера, никаких опций. Значит "элементарный полный деанон".
Бага про это[link10]
Для ControlPort только, а не SockPort.
Т.е. мораль в том, что firefox (или видалия?) аутентифицируется на ControlPort Tor'а, после чего Tor начинает различать firefox от любого другого приложения даже под тем же юзером, заворачивая трафик чужих приложений в отдельные цепочки?
Вот ещё один интересный момент:
Не очень понятно, что такое клиентский адрес. Если речь идёт о сетевых адресах, то у всех юзеров одной ОС этот адрес будет одинаковым, т.е. эта опция от обсуждаемой атаки не помогла бы. Тот факт, что помогает IsolateSOCKSAuth, скорее похож на удачный misuse для защиты от данной атаки, чем на продуманную защиту.
Там вообще какой-то треш и угар, куча тикетов на тему: 8117[link11], 8879[link12]. Повеселило:
Кто бы сомневался. Есть, правда, одна позитивная вещь: защититься легко, зная об этом заранее. Достаточно не запускать левые сетевые проги во время работы TBB или написать нормальные правила firewall'а, фильтрующие на lo.
Карма у меня плохая. Поглядел в /tmp — нашёл leak. Вспомнил про шрифты — а вот они все и вытягиваются. Начали снова говорить про SockPort — и тут полный фатал. Надо было в тестеры идти, но кто ж меня научит.
Для SockPort эта вся изоляция. Изначально речь шла про работу одного небольшого офиса через один Tor клиент. Задача была помешать вот этому самому[link9], только в роли скайпа выступает сосед по офису. И эта изоляция уже включена в 0.2.3.х и строго рекомендуема. Все прочие изоляции были прикручены уже к этой идее, и как бонус позволяют изолировать цепочки для разных программ запускаемые локально вместе с тором. На практике такая изоляция, как например по паролю, не работает из-за ошибок в других частях кода.
Пора уже запускать скайпы на отдельных устройствах. Каждому приложению по отдельному устройству к 2020!
Спасибо за пояснение.
Да, каждому зловреду по отдельной виртуалке.
В changelog[link14]'е к последнему релизу есть какая-то движуха по теме: