Аутентификация TOR

Подскажите, пожалуйста, две вещи по ТОР:
– почему он не хочет работать без установленной настройки "пароль" в аутентификации
и второе, главное – собственно, а что он делает с этим паролем, как использует? вот захожу я на сайт с такой настройкой, и?


Комментарии
— unknown (14/06/2013 14:02)   
Это граф. интерфейс, который называется Vidalia, спрашивает пароль, чтобы отправлять сигналы процессу тора, т.к. они созданы в качестве раздельных программ.

Это межпрограммная коммуникация осуществляется локально, пароль нужен для отсутствия локального перехвата, на посещение сайтов это никак не влияет, пароль никуда отсылаться, естественно, не должен.
Гость (16/06/2013 04:11)   
что он делает с этим паролем, как использует?

Вот представьте, что пароля нету, а Tor запущен, слушает на каком-нибудь 127.0.0.1:9050. В это время другой юзер на вашем же ПК, от имени которого запущена какая-нибудь дрянь типа Skype или Flash, отправляет пакет на 127.0.0.1:9050 и смотрит, с какого эксита пришёл ответ. Вуаля, ваш эксит известен врагу. Далее пересмотром трафика, который шёл с эксита, можно найти и тот другой, что принадлежал вам, итого имеем полный деанон. Описанный сценарий более, чем реалистичен.
Гость (16/06/2013 04:27)   
P.S. Проблема смешения профилей уже неоднократно обсуждалась на форуме, подробнее см. п.2 в чёрном FAQ[link1]'е, а также [1][link2], [2][link3], [3][link4], [4][link5], [5][link6].
— unknown (16/06/2013 10:47)   
Хуже — без пароля было бы возможно безконтрольно почти полностью управлять поведением тора, например поменять конфиг.
Гость (16/06/2013 15:42)   
Поменять конфиг чтобы, нужны права. Другой пользователь по умолчанию прав на изменение файлов в чужой директории не имеет.
— SATtva (16/06/2013 15:58)   
Поменять конфигурацию Tor'а на лету может любой желающий, подключившийся (в том числе и локально) через control port. Чтобы этого не допустить и используется аутентификация.
Гость (16/06/2013 16:30)   
Интересно. И как много параметров соединения можно поменять через Control Port? Почти все, вплоть до выбора нужного exit'а? Дело спасает то, что до видалии не было никакой нужды включать Control Port в конфиге, так что его попросту не было. Тем не менее, даже исходя из общих соображений, необходимость борьбы с такого рода утечками осознавалась ещё давно[link7].
Гость (07/08/2013 07:24)   
Вот представьте, что пароля нету, а Tor запущен, слушает на каком-нибудь 127.0.0.1:9050. В это время другой юзер на вашем же ПК, от имени которого запущена какая-нибудь дрянь типа Skype или Flash, отправляет пакет на 127.0.0.1:9050 и смотрит, с какого эксита пришёл ответ.

Хорошее решение. Тогда объясните мне каким образом всякие криптософтовые кошельки при настройке маршрута через тор без пароля (пароль там вообще не предусмотрен) успешно связываются с чем им надо при запущенной из коробки видалии при включенной в ней в настройках по умолчанию 'Randomly Generate'?
Эта полезная кстати сказать фича работает или нет? Если работает, тогда как сторонний софт связывается через ТОР? А если нет. тогда получается что настройки Видалии ни на что не влияют?
Гость (07/08/2013 09:55)   
В последних версиях TBB на socks-порту есть авторизация[link8]. Убедиться в её наличии можно запустив 2 TBB подряд: видалия после этого сразу выдаёт окошко «хотите ли авторизовать такое-то приложеное?» (как-то так). Правда, авторизацию на порту по умолчанию ввели не так давно — несколько месяцев назад. Проверьте ваши эксперименты на последней версии бандла.
Гость (07/08/2013 10:02)   
Хотя нет, там, кажется, всё веселее. :-) Пароль предусмотрен для доступа к Control Port, а на Socks Port, на котором он слушает перенаправляемый трафик, я так и не понял, предусмотрено что-нибудь или нет. Если нет, то уже всё сказано[link9]. 9150 — SocksPort, 9151 — ControlPort, вроде так сейчас.
Гость (11/08/2013 18:46)   

Господа, вы согласны? Достоин ли такой элементарный полный деанон тикета на trac.torproject? Или это не баг, а задокументированная фича? Файерволл не предлагать, потому что сейчас речь не о нём, а о массовых юзерах.
Гость (11/08/2013 19:34)   

Не нашел там элементарного и полного. Неприятно конечно, но запаролить сокс порт нельзя. (Есть лишь SocksPolicy для адресов.) Вот только у массового юзера это будет возможно последнее чем его будут деанононить.
Гость (11/08/2013 19:40)   
В опциях есть возможность изоляции цепочек для разных пользователей. Так вот тор клиент может различать пользователя по логину и паролю для сокс порта. Паролей тор не умеет для авторизации, но умеет для изоляции, и никаких общих экситов у вас и вашего скайпика не будет, если только скайпик не скомуниздит используемые кренделя. Это то что вы искали, гарантирую.
Читаем в мануале для SockPort
The _isolation flags_ arguments give Tor rules for which streams
received on this SOCKSPort are allowed to share circuits with one
another. Recognized isolation flags are:
  • *IsolateSOCKSAuth**;;
    Don't share circuits with streams for which different
    SOCKS authentication was provided. (On by default;
    you can disable it with NoIsolateSOCKSAuth.)
Гость (11/08/2013 19:57)   
Фигня этими с паролями для изоляции. Firefox не умеет в пароли без запросов со стороны сервера, никаких опций. Значит "элементарный полный деанон".
Гость (11/08/2013 20:00)   
Бага про это[link10]
Гость (11/08/2013 20:13)   

Для ControlPort только, а не SockPort.

Don't share circuits with streams for which different SOCKS authentication was provided.

Т.е. мораль в том, что firefox (или видалия?) аутентифицируется на ControlPort Tor'а, после чего Tor начинает различать firefox от любого другого приложения даже под тем же юзером, заворачивая трафик чужих приложений в отдельные цепочки?

Вот ещё один интересный момент:

IsolateClientAddr
Don’t share circuits with streams from a different client address. (On by default and strongly recommended; you can disable it with NoIsolateClientAddr.)

Не очень понятно, что такое клиентский адрес. Если речь идёт о сетевых адресах, то у всех юзеров одной ОС этот адрес будет одинаковым, т.е. эта опция от обсуждаемой атаки не помогла бы. Тот факт, что помогает IsolateSOCKSAuth, скорее похож на удачный misuse для защиты от данной атаки, чем на продуманную защиту.
Гость (11/08/2013 20:34)   

Там вообще какой-то треш и угар, куча тикетов на тему: 8117[link11], 8879[link12]. Повеселило:


Кто бы сомневался. Есть, правда, одна позитивная вещь: защититься легко, зная об этом заранее. Достаточно не запускать левые сетевые проги во время работы TBB или написать нормальные правила firewall'а, фильтрующие на lo.

Карма у меня плохая. Поглядел в /tmp — нашёл leak. Вспомнил про шрифты — а вот они все и вытягиваются. Начали снова говорить про SockPort — и тут полный фатал. Надо было в тестеры идти, но кто ж меня научит.
Гость (11/08/2013 20:53)   

Для SockPort эта вся изоляция. Изначально речь шла про работу одного небольшого офиса через один Tor клиент. Задача была помешать вот этому самому[link9], только в роли скайпа выступает сосед по офису. И эта изоляция уже включена в 0.2.3.х и строго рекомендуема. Все прочие изоляции были прикручены уже к этой идее, и как бонус позволяют изолировать цепочки для разных программ запускаемые локально вместе с тором. На практике такая изоляция, как например по паролю, не работает из-за ошибок в других частях кода.

Пора уже запускать скайпы на отдельных устройствах. Каждому приложению по отдельному устройству к 2020!
Гость (11/08/2013 22:01)   
Спасибо за пояснение.


Да, каждому зловреду по отдельной виртуалке.
Гость (31/12/2013 16:05)   

В changelog[link14]'е к последнему релизу есть какая-то движуха по теме:

Major bugfixes (stream isolation):
  • Allow applications to get proper stream isolation with IsolateSOCKSAuth. Many SOCKS5 clients that want to offer username/password authentication also offer "no authentication". Tor had previously preferred "no authentication", so the applications never actually sent Tor their auth details. Now Tor selects username/password authentication if it's offered. You can disable this behavior on a per-SOCKSPort basis via PreferSOCKSNoAuth. Fixes bug 8117; bugfix on 0.2.3.3-alpha.
  • Follow the socks5 protocol when offering username/password authentication. The fix for bug 8117 exposed this bug, and it turns out real-world applications like Pidgin do care. Bugfix on 0.2.3.2-alpha; fixes bug 8879.

Ссылки
[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