Простой способ атаки "в обход" 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
комментариев: 98 документов: 8 редакций: 10
Да, reject'ы там вообще не учитываются. Очевидно, бага.
Ага, я именно про то что смотреть флаг exit в статистике не имеет смысла :)
Вообще говорить "сервер такой-то это exit" некорректно, правильно говорить "сервер такой-то это exit по отношению к ip:port".
Не считаю это багой. Если узел, правило для своей политики завершает accept'ом, значит он уже что-то разрешил. Он exit по отношению к неопределенной группе адресов и портов.
Данная функция рассчитана на более ограничительную политику, оканчивающуюся reject'ом. В таком случае важно проверить доступность по меньшей мере к определенной группе портов, и значительного диапазона адресов.
В случае когда узел обманно (пример в предыдущем постинге) получит флаг, он не будет выбран в действительности, ни конечным звеном (по причине полиси), ни промежуточными (его будут стараться избегать как драгоценного exit'а). Он обманет сам себя.
комментариев: 271 документов: 13 редакций: 4
комментариев: 9796 документов: 488 редакций: 5664
Это скорее алгоритм голосования между DA, в результате которого получается готовый документ (консенсус, статус), отправляемый узлам сети в качестве статистики.
Если все DA коррумпированы, то они могут наголосовать что-угодно. Сами DA против собственного сговора этот алгоритм применить не могут.
Мы думали о другом алгоритме – попытке мониторить этот статус и число неудачных соединений с узлами на предмет аномалий со стороны клиента.
При медленном изменении статистики будет всплеск количества битых цепочек или постоянный откат к старой статистике по зеркалам.
Вообще алгоритм мониторинга (если бы он был создан) не защитил бы, а предупредил-бы, о чём-либо подозрительном. Точных оценок вероятности сформулировать никто не решился, так же как и доводить до ума саму идею. Разработчики тозже не проявили энтузиазма.
комментариев: 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-адресов, обслуживаемых одним компьютером. Что на это скажете?
Да, я оговорился. Не защитить, а предупредить.
комментариев: 9796 документов: 488 редакций: 5664
Или по зеркалам, соединения с которыми аутентифицированы ключами со старой статистики.
постепенная подмена статистики затрудняет эмуляцию виртуальной сети tor, при смешивании реальных и подставных узлов эмулятор будет работать всё хуже из-за сбойных цепочек и есть большой шанс, что на каждом шаге пользователь соберёт и скачает реальную статистику от неподставных узлов или соединения с ними придётся разрывать?
вот насчёт этого
Допустим все DA коррумпированы вместе с Роджером впридачу. Но им надо ухитриться незаметно подсунуть конкретному пользователю левую статистику, и разместить между ним и реальной Tor-сетью эмулятор. Это возможно, но сложно и задача для прицельного, а не глобального наблюдателя. Чем большему числу людей будут раздавать левую статистику, тем больше шансов поймать Роджера за руку.
И IP и ключ, и политику прохождения трафика, и e-mail для спама если пожелаете и ещё массу служебных полей.
Ну пара человек за всё время себя не увидело, пожаловалось в рассылку. Нашли проблемы у них в настройках.
Вот вэб-парсер статистики:
xenobite – сертификат сайта самоподписанный.
Это возможно как и в любой сети вообще.
Хуже того, часть небольших узлов запущена на арендуемых виртуальных хостингах, где к ним и посторонний доступ есть, и с генераторами случайных чисел проблема...
Но пока сеть Tor не очень большая и пока плохо масштабируемая.
комментариев: 271 документов: 13 редакций: 4
Здесь ошибка. Что есть "реальная статистика"? Нет никакой статистики, кроме той, которую выдают DA. В текущей архитектуре сети так, и в v2 и в v3. Я разумеется рассматривал вариант когда Роджер куплен и всё что из этого следует. В этом случае гораздо проще обманывать всех, чем одного клиента.
А если Роджер не куплен и среди DA есть хотя бы один честный, тогда я согласен, что ваш алгоритм будет обнаруживать ввод подставных узлов.
Кстати, как и голосование DA будет обнаруживать это. Может, поэтому разработчикам ваше нововведение не понравилось.
комментариев: 9796 документов: 488 редакций: 5664
Тогда каждый владелец независимого сервера tor может заметить, что в статистике его ключ подменён. Он может ещё попросить посмотреть своих знакомых.
Кроме всего прочего каждый пользователь скачивает статистику с DA только при первом запуске, а затем собирает частями с произвольных зеркал, чтобы DA не перегружать.
Т.е. статистика не подменяется для всех, а для условно одного клиента (или выбранной группы) и не все узлы подставные, а при таком раскладе подразумевалось, что постепенная подмена будет приводить к скачиванию статистики по старым адресам зеркал, которая "не для одного", а правильная.
Или придётся заблокировать доступ резко ко всем узлам, дать скачать статистику только с DA и подменить все ключи разом, чтобы в реальную сеть пользователь не лез.
Но если долго не пользоваться программой, то никакие проверки на резкие изменения статистики конечно не помогут.
комментариев: 271 документов: 13 редакций: 4
Нет, ключ не подменяется. Список узлов разбавляется подставными узлами.
комментариев: 9796 документов: 488 редакций: 5664
А если для изолированной группы пользователей посылать статистику, сильно разбавленную фальшивыми узлами, то при контакте с реальными узлами они будут получать обратно правильную (общую для всех статистику). Будут наблюдаться изменения количества узлов в сети.
комментариев: 9796 документов: 488 редакций: 5664
кто-то тоже спрашивает.
Всех призывают верить в честность шести DA. Ответ дал пользователь arma – это ник Роджера что-ли?
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 9796 документов: 488 редакций: 5664
комментариев: 271 документов: 13 редакций: 4
Этот 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.
комментариев: 9796 документов: 488 редакций: 5664