id: Гость   вход   регистрация
текущее время 09:26 30/03/2024
Автор темы: unknown, тема открыта 31/07/2006 23:00 Печать
https://www.pgpru.com/Форум/АнонимностьВИнтернет/ПростойСпособАтакивОбходTor
создать
просмотр
ссылки

Простой способ атаки "в обход" tor


Простой способ атаки "в обход" против пользователя Tor.


Протокол сети tor (Onion Routing) имеет топологию статической сети с корневым сертификатом (Root CA). Этот сертификат используется для подписи статистики и ключей независимых серверов, подключаемых к сети Tor. Закрытая часть ключа сертификата принадлежит разработчикам программы tor, открытая зашита в саму программу. Поэтому пользователи всегда доверяют этому сертификату так же как и самой запускаемой ими программе, работу которой они могут протестировать и посмотреть исходники.


Могут ли разработчики злоупотребить наличием своего закрытого ключа? На первый взгляд нет. Серверы в сеть подключаются хотя и под контролем разработчиков, но в целом принадлежат множеству разных людей и организаций. Если разработчики начнут делать с помощью своего закрытого ключа фальшивые подписи на корневом сервере статистики или его зеркалах, то владельцы серверов это заметят, поднимут скандал, отключат сервера и подорвут репутацию проекта.


Однако, если использовать Tor в качестве "приманки" против конкретного пользователя, то всё делается достаточно гладко.


Вот как это может происходить:


1) Представитель силового ведомства Мэллори получает ордер на прослушивание интернет-соединения Алисы, которая использует Tor.
При этом он также получает ордер на выдачу закрытого ключа сети Tor у разработчиков (или получает его другим способом – прослушивание, кража, взлом сервера, подписывающего статистику).


2) Мэллори также получает ордер на установку у интернет-провайдера Алисы специального оборудования для прозрачной трансляции сетевых адресов (Network Adress Translation). В отличии от обычного NAT, который используют админы, это оборудование и соотвествующее программное обеспечение должно максимально незаметно подменять адреса из выбранного списка, имитировать соединение с ними, обрабатывать и отправлять траффик дальше.


3) Если Алиса использует обычное, не связанное с Tor, интернет-соединение, Мэллори просто прослушивает траффик сниффером (эту скучную работу он может поручить Еве).


4) Если Алиса посылает запрос статистики на один из серверов Tor, Мэллори осуществляет простейшую атаку человека посредине "man-in-the-middle". Он создает имитацию соединения с этим IP адресом, а на самом деле отправляет Алисе пакеты, подписанные похищенным сертификатом.


5) После того как Мэллори дал Алисе скачать фальшивую статистику, с фальшивыми же ключами серверов, заверенную сертификатом разработчиков Tor, он перехватывает все обращения к IP-серверам Tor, расшифровывает весь траффик Алисы теми ключами, которые он ей же и подсунул.


6) Для предотвращения подозрений со стороны Алисы Мэллори дополнительно фальсифицирует ответ от всех серверов, которые возвращают IP Алисы (http://serifos.eecs.harvard.edu/cgi-bin/ipaddr.pl?tor=1) и другие.
Правда этот метод не сработает, если Алиса зайдёт на SSL-защищённый сайт, от которого нет ключа у Мэллори и увидит там свой IP, не соответствующий сети tor.
В таком случае Мэллори может перенаправлять конечный траффик Алисы на свои подконтрольные сервера, зарегистрированные в сети Tor.


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


Спасибо Spinore http://www.pgpru.com/forum/viewtopic.php?p=11332#11332
который предложил множество интересных идей и вдохновил меня на более внимательное изучение анонимных протоколов, в результате чего мне и пришла в голову мысль насчёт возможности атаки на Tor и использования его в качестве средства индивидуального прослушивания траффика, после чего я и написал этот текст.


Spinore, а Вы хотели ключ хранить в анонимной сети! Современной криптографии пока ещё очень далеко до этого.


Особое внимание при написании данного текста я уделил прекрасному обзору Андреаса Хирта http://pages.cpsc.ucalgary.ca/~hirt
всвязи с его тезисами о том, что в течении давдцати лет так и не было разработано удовлетворительно стойкого и практичного анонимного сетевого протокола, надёжных сведений по доказательству стойкости и классификации атак на такие протоколы в открытой литературе крайне мало, а исследователи то и дело с подозрительным постоянством находят неописанные, хотя и очевидные атаки.


Также, советую тем, кто хочет и дальше копать в этом направлении ознакомиться с архивом проекта Gnunet.
http://www.gnunet.org/papers.php3?xlang=English


 
На страницу: 1, 2, 3, 4, 5, ... , 15, 16, 17, 18, 19 След.
Комментарии
— ygrek (14/03/2008 00:39)   профиль/связь   <#>
комментариев: 98   документов: 8   редакций: 10
Однако даже запретив все эти три порта, но разрешив все остальные (например правило reject *:80, reject *:443, reject *:6667, accept *:*), узел всё равно будет Exit'ом. За подробностями — смотрите функцию exit_policy_is_general_exit();

Да, reject'ы там вообще не учитываются. Очевидно, бага.
/** Return true iff <b>ri</b> is "useful as an exit node", meaning
* it allows exit to at least one /8 address space for at least
* two of ports 80, 443, and 6667. */

Клиент при выборе кандидатов на взвешивание смотрит только на полиси.

Ага, я именно про то что смотреть флаг exit в статистике не имеет смысла :)
Вообще говорить "сервер такой-то это exit" некорректно, правильно говорить "сервер такой-то это exit по отношению к ip:port".
— Гость (14/03/2008 01:09)   <#>

Да, reject'ы там вообще не учитываются. Очевидно, бага.


Не считаю это багой. Если узел, правило для своей политики завершает accept'ом, значит он уже что-то разрешил. Он exit по отношению к неопределенной группе адресов и портов.

Данная функция рассчитана на более ограничительную политику, оканчивающуюся reject'ом. В таком случае важно проверить доступность по меньшей мере к определенной группе портов, и значительного диапазона адресов.

В случае когда узел обманно (пример в предыдущем постинге) получит флаг, он не будет выбран в действительности, ни конечным звеном (по причине полиси), ни промежуточными (его будут стараться избегать как драгоценного exit'а). Он обманет сам себя.
— poptalk (01/09/2008 16:59)   профиль/связь   <#>
комментариев: 271   документов: 13   редакций: 4
Как и рекомендовал unknown, задаю вопросы в этой ветке. В общих чертах алгоритм понятен, он сравнивает статистику сети, полученную от разных узлов, если статистики сильно отличаются, это считается проблемой. Так и не понял, алгоритм защитит от (захвата всех DA) + (медленного изменения статистики)?
— unknown (02/09/2008 10:12, исправлен 02/09/2008 10:20)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
В общих чертах алгоритм понятен, он сравнивает статистику сети, полученную от разных узлов, если статистики сильно отличаются, это считается проблемой.

Это скорее алгоритм голосования между DA, в результате которого получается готовый документ (консенсус, статус), отправляемый узлам сети в качестве статистики.
Если все DA коррумпированы, то они могут наголосовать что-угодно. Сами DA против собственного сговора этот алгоритм применить не могут.

Мы думали о другом алгоритме – попытке мониторить этот статус и число неудачных соединений с узлами на предмет аномалий со стороны клиента.

При медленном изменении статистики будет всплеск количества битых цепочек или постоянный откат к старой статистике по зеркалам.
Вообще алгоритм мониторинга (если бы он был создан) не защитил бы, а предупредил-бы, о чём-либо подозрительном. Точных оценок вероятности сформулировать никто не решился, так же как и доводить до ума саму идею. Разработчики тозже не проявили энтузиазма.
— poptalk (03/09/2008 10:58, исправлен 03/09/2008 11:19)   профиль/связь   <#>
комментариев: 271   документов: 13   редакций: 4

Да по-моему я правильно понял. Вы вычисляете величину S. Если для простоты взять N_k=N_k-1, то C=1 и S=D=I/I_max=I/N_k, где I — количество узлов, совпадающих между N_k и N_k-1.

Как вы объясняете, что атака с медленным изменением статистики не удастся. В начале все узлы являются честными, а в конце больше их половины подставные. Если злоумышленник меняет статистику постепенно, это как непрерывная функция, которая где-то должна пересечь 50% отметку на графике. Наступит момент, когда приблизительно половина узлов являются подставными. Но если половина подставные, то другая половина честные. Вы запрашиваете у честного и у подставного две статистики, и видите, что статистики отличаются на 50%, то есть S=0,5.

Но это доказательство работает, если вы получили хотя бы одну честную статистику. Тут я считаю, что никаких tor-watcher, о которых вы говорили, не существует, то есть только проверка статистики у клиента. Клиенты сверяют статистику, но любая статистика получена от DA, а список DA составляется дядей Роджером. Смысл сравнивать файлы, сгенерированные одним человеком? Никакой разницы, свидетельствующей о злых намерениях, вы там не найдёте. :-) То есть возвращаемся к тому варианту, что дядя Роджер и является глобальным наблюдателем.




Хотел бы уточнить. Если я создал middleman или exit-node, то я рано или поздно должен появиться в статистике. Вы имеете в виду, что в статистике будет указан мой IP-адрес, но не мой ключ?

В общем да. Или же меня могут вообще не включить в статистику, так ещё проще. ;-) Да, так легко проверить. Допустим, вы лично это проверили. Но есть лазейка: на каждый честный узел злоумышленник присоединяет к сети 9 подставных узлов. Так что честные узлы просто утонут. Ведь узлы — это не люди, а просто IP-адреса. Злоумышленник может купить диапазон IP-адресов, обслуживаемых одним компьютером. Что на это скажете?



Да, я оговорился. Не защитить, а предупредить.
— unknown (03/09/2008 13:24, исправлен 03/09/2008 13:31)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Клиенты сверяют статистику, но любая статистика получена от DA, а список DA составляется дядей Роджером.


Или по зеркалам, соединения с которыми аутентифицированы ключами со старой статистики.

постепенная подмена статистики затрудняет эмуляцию виртуальной сети tor, при смешивании реальных и подставных узлов эмулятор будет работать всё хуже из-за сбойных цепочек и есть большой шанс, что на каждом шаге пользователь соберёт и скачает реальную статистику от неподставных узлов или соединения с ними придётся разрывать?

вот насчёт этого


список DA составляется дядей Роджером. Смысл сравнивать файлы, сгенерированные одним человеком? Никакой разницы, свидетельствующей о злых намерениях, вы там не найдёте. :-) То есть возвращаемся к тому варианту, что дядя Роджер и является глобальным наблюдателем.


Допустим все DA коррумпированы вместе с Роджером впридачу. Но им надо ухитриться незаметно подсунуть конкретному пользователю левую статистику, и разместить между ним и реальной Tor-сетью эмулятор. Это возможно, но сложно и задача для прицельного, а не глобального наблюдателя. Чем большему числу людей будут раздавать левую статистику, тем больше шансов поймать Роджера за руку.


Хотел бы уточнить. Если я создал middleman или exit-node, то я рано или поздно должен появиться в статистике. Вы имеете в виду, что в статистике будет указан мой IP-адрес, но не мой ключ?


И IP и ключ, и политику прохождения трафика, и e-mail для спама если пожелаете и ещё массу служебных полей.
Или же меня могут вообще не включить в статистику, так ещё проще.

Ну пара человек за всё время себя не увидело, пожаловалось в рассылку. Нашли проблемы у них в настройках.

Вот вэб-парсер статистики:

xenobite – сертификат сайта самоподписанный.


Но есть лазейка: на каждый честный узел злоумышленник присоединяет к сети 9 подставных узлов. Так что честные узлы просто утонут. Ведь узлы — это не люди, а просто IP-адреса.


Это возможно как и в любой сети вообще.

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

Но пока сеть Tor не очень большая и пока плохо масштабируемая.
— poptalk (03/09/2008 14:34)   профиль/связь   <#>
комментариев: 271   документов: 13   редакций: 4

Здесь ошибка. Что есть "реальная статистика"? Нет никакой статистики, кроме той, которую выдают DA. В текущей архитектуре сети так, и в v2 и в v3. Я разумеется рассматривал вариант когда Роджер куплен и всё что из этого следует. В этом случае гораздо проще обманывать всех, чем одного клиента.

А если Роджер не куплен и среди DA есть хотя бы один честный, тогда я согласен, что ваш алгоритм будет обнаруживать ввод подставных узлов.

Кстати, как и голосование DA будет обнаруживать это. Может, поэтому разработчикам ваше нововведение не понравилось.
— unknown (03/09/2008 15:25)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
В этом случае гораздо проще обманывать всех, чем одного клиента.

Тогда каждый владелец независимого сервера tor может заметить, что в статистике его ключ подменён. Он может ещё попросить посмотреть своих знакомых.

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

Т.е. статистика не подменяется для всех, а для условно одного клиента (или выбранной группы) и не все узлы подставные, а при таком раскладе подразумевалось, что постепенная подмена будет приводить к скачиванию статистики по старым адресам зеркал, которая "не для одного", а правильная.

Или придётся заблокировать доступ резко ко всем узлам, дать скачать статистику только с DA и подменить все ключи разом, чтобы в реальную сеть пользователь не лез.

Но если долго не пользоваться программой, то никакие проверки на резкие изменения статистики конечно не помогут.
— poptalk (03/09/2008 16:09)   профиль/связь   <#>
комментариев: 271   документов: 13   редакций: 4

Нет, ключ не подменяется. Список узлов разбавляется подставными узлами.
— unknown (03/09/2008 16:50)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Для всех подставные узлы можно и не вводить – можно действительно попытаться завести в сети много злонамеренных серверов.

А если для изолированной группы пользователей посылать статистику, сильно разбавленную фальшивыми узлами, то при контакте с реальными узлами они будут получать обратно правильную (общую для всех статистику). Будут наблюдаться изменения количества узлов в сети.
— unknown (22/01/2009 10:27, исправлен 22/01/2009 10:28)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Похоже, эту особенность дизайна сети тор кардинально не исправить:

кто-то тоже спрашивает.

Всех призывают верить в честность шести DA. Ответ дал пользователь arma – это ник Роджера что-ли?
— SATtva (22/01/2009 12:24, исправлен 22/01/2009 12:25)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Он самый. А анонимус — это не Вы, unknown? :-)
— unknown (22/01/2009 13:02, исправлен 22/01/2009 13:11)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
anonymous unknown или unknown anonymous! :-)
— poptalk (23/01/2009 00:50)   профиль/связь   <#>
комментариев: 271   документов: 13   редакций: 4
Всех призывают верить в честность шести DA. Ответ дал пользователь arma – это ник Роджера что-ли?

Этот Anonymous, которому отвечает arma, не до конца разобрался в вопросе. Какие собственно ключи (give your keys out) должен отдать главный разработчик? Теперь я понимаю, что unknown был прав, нет нужды подкупать DA, если можно завести много злонамеренных middleman. Этот недостаток следует из того, что вход в сеть свободный, стать middleman может каждый. А ограничить вход в сеть нельзя, потому что и так мало middleman.

I think that malicious Directory Servers should not do much harm. Proof. If you make your own tor-node, Directory Servers are *obliged* to publish your node's IP. You can check this. So at least some published tor-nodes are not malicious. This is at odds with your proposition "somebody can fake the server and publish *only* malicious tor-nodes".

A malicious Directory Server, in order to do its nasty things, should add much more (e.g. 100 times) malicious tor-nodes than there are fair tor-nodes. But a malicious man can add malicious tor-nodes without any help from a Directory Server. Because everyone can add a tor-node.

There is only one solution: to grow tor-network to such an extent that no single organization can overflow it with its malicious tor-nodes.
— unknown (23/01/2009 09:15, исправлен 23/01/2009 09:16)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
В начале этого топика предполагалось, что некий "человек посредине" вклинится между конкретным клиентом и завернёт весь его трафик (перехватывая на уровне маршрутизатора или ISP) в специально запущенный для него полный эмулятор сети из одних фальшивых узлов, после чего может его расшифровывать.
На страницу: 1, 2, 3, 4, 5, ... , 15, 16, 17, 18, 19 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3