Простой способ атаки "в обход" 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
комментариев: 9796 документов: 488 редакций: 5664
http://archives.seul.org/or/talk/Feb-2008/msg00150.html
Их не{на}много увеличат, но они все будут держаться на репутации известных в коммунити владельцев, так чтобы их было немного и они все были на виду. Запустить свой и для себя никто конечно не мешает, но вы выделите себя в анонимности среди общей массы. Плюс где-то раньше у них говорилось об опасности атак разделения.
Новые правила ужесточают требования к владельцам DA:
authority-policy
Обратите внимание, что лично Роджер является главным арбитром. Доверие во многом строиться вокруг него.
комментариев: 11558 документов: 1036 редакций: 4118
"Бешеные псы" Квентина Тарантино: Mr. Green, Mr. Red, etc. :-)
[/offtopic]
комментариев: 9796 документов: 488 редакций: 5664
;-) А spinore кажется когда-то кирпичём был, а сейчас находится в состоянии неопределённости и квантовой спутанности, как "кот Шрёдингера": не поймёшь то ли он есть, то ли его нет.
[/offtopic]
А если включить debug-уровень, разве в нём не будет содержаться вся нужная нам информация? Тогда работа выглядела бы как
Где unknown-analyzer делал то что предлагалось делать скрипту и выводил сие на панель, ну напару писал бы и типичную информацию, что пишет
Каждый может стать CA и начать выдавать сертификаты, только вам многие поверят? Но заметьте что раличных CA (рассмотреим только те что встроены в браузер), много больше чем 7. Здесь – ты же штука. Каждый DA может заработать себе репутацию, потенциально... а пользователь волен выбирать кому он доверяет больше (видимо, в зависимости от задачи и от того, от кого он анонимизируется).
Естественно, вы меня предвосхищаете :) Я хотел написать но забыл. Да, получим
фрактальнуюпирамидальную систему: от доверия к тор-нодам к доверию для DA, от доверия к DA к доверию super-DA и т.д. Но реальный интернет обошёлся пока что одним слоем – CA. Видимо, его почти достаточно.Опять же, я не хотел сказать что это предложение по поводу ближайшего будущего. Скорее, это моё видение того во что должен превратитсья тор по прошествии длительного времени, если ему дадут ходу. Да, они боятся атаки разделения, я их понимаю, но когда сеть станет очень большой такая атака рано или поздно произойдёт. В конечном счёте тор-team будет лишь группой, отвечающей за исходники. Мне так кажется. Что касается в целом атаки по дискредитации анонимности будучи злонамеренным DA-узлом, можно упомянуть про обязательное участие в сети доверия для тор-нод. DA, конечно, сможет сказать что ключи для части тор-нод сменились, но на них не будет покрывающих подписей других узлов тор-нод, а грамотный клиент настроенный с учётом разумных эвристик сразу скажет "баа!! 50 узлов новых враз появилось, никем их ключи незаверены... откуда бы они так?". Или ещё "О! Ключи все ОК, только почему то вдруг DA говорит что 97% хостов вдруг оказалось в дауне, чё правда что ли?". Схема многоуровневая просто... и в общем-то я её продумывал. Начинаем с разделения статистики ключей и статистики саттусов – это важный момент. Таким образом теперь есть только 2 атаки:
В идеале можно представить себе много анонимных групп в интернете, каждая из которых прячется от своей угрозы. Это и определяет список DA. Для малых сетей – да, лучше то что предлагает Роджер. Я всего лишь хочу чтобы он в рамках хотя бы своей тор-сети перевёл протокол на тот, который кастрирует права DA и уменьшает число атак основанных на злоупотреблении авторитетом DA. В конечном счёте, если я нигде не ошибся, если пользователь скачал правильные исходники тор, то единственная остающаяся атака – постепенное введение (!) [враз ввести не получистя при грамотной диагностике] в сеть тор подконтрольных оппоненту узлов пока их число не достигнет уровня, достаточно для проведения атаки. Ну и атака на корреляцию трафика – это уже классика :)
P. S.: ещё можно пофантазировать насчёт протокола, в котором общеизвестны лишь exit-узлы тора, но не знаю реализуемо ли такое хотя бы теоретически [это в целях нейтрализации атаки на корреляцию трафика].
комментариев: 9796 документов: 488 редакций: 5664
Да и все их вшить в tor, как в браузер?
Они не голосуют между собой за единый результат аутентификации. Сайт аутентифицирует любой из них. Это как в старых версиях тора, подписать статистику мог один любой DA.
Пожалуйста, хоть сейчас – запустите свой DA и уговорите его прописать кого-нибудь в конфиг. Такая возможность есть. И выделяйте свою группу.
Идея существующего протокола в том, чтобы все пользователи с минимальной рассинхронизацией получили одинаковую статистику, иначе их можно будет разделять.
Какая может быть сеть доверия между DA? Вы с ними в форуме задушевные беседы ведёте? Их можно только мониторить предлагаемым способом на предмет отклонений. Но Роджер справдливо отмечает, что ситуация когда куча ключей поменяется разом, может возникнуть запросто: поставили новую альфа-версию, там баг, откатились назад и др. ситуации. Вот в чём проблема то ещё. Сеть сама по себе нестабильна и её может лихорадить из-за всяких сбоев.
Роджер мог бы подписать ключи тех DA которым он доверяет. Самому тору достаточно иметь ключ Роджера, а пользователи могли бы сами доставлять ключи DA. Моя идея в этом плане возможно бредовая, это всё так, на уровне "мысли". В принципе вы справедливо отметили что никто не мешает поднять сейчас свою тор-сеть если кто-то восхощет.
Ну откатились так откатились, а почему при этом ключи тор-нод-та должны смениться? Да и их статус, в массовом порядке... Не вижу связи.
комментариев: 9796 документов: 488 редакций: 5664
Вот эту идею пока только и можно продвинуть. Пусть в логах пишутся при максимальном уровне настроек сообщения о подозрительной сетевой нестабильности. И пусть будет возможность выключиться и сохранить кэш со статистикой. Для желающих. По аналогии "hardened kernel" – "hardened tor".
Вот ещё идея, родилась прямо в этой строчке: пусть DA ведут публично доступные логи с хэшами всех когда-либо подписанных ими ключей. Ну или за год хотя бы. Пусть желающие эти логи зеркалят. Чтобы или можно было заметить, что DA подписал ключ, которого никогда в сети тор никто не видел. Или чтобы кто-то хотя бы по прошествии времени мог убедиться с помощью другого компа, или через PGP переписку с друзьями из другой страны, что ключ тор узла извлечённый из кэша клиента, который подписан верной DA подписью никогда ни у кого не встречался и ни разу не проходил в логах ни одного DA.
Хотите уменьшить полномочия DA? Надо ставить задачу о введении системы аудита! Распределённого криптоаудита всем сообществом, если угодно. Думаю пару заинтересованных человек наберётся :-)
комментариев: 9796 документов: 488 редакций: 5664
Кстати не знаю, меняется он при переинстале или нет? Наверное всё-таки нет.
комментариев: 9796 документов: 488 редакций: 5664
Обратите внимание на последний абзац и дату создания документа (она была 13 февраля).
Роджер уже и так обеспокоился насчёт DA, рапределения юрисдикции и предпочитает всех владельцев знать лично (или видимо пристально смотреть им в глаза на коференциях).
Зачем подписывать их ключи, когда они есть в исходниках, которые естественно подписаны всеми разработчиками?
Откуда?
Типа свободного выбора вместо авторитарного метода назначения DA?
Чтобы спастить от сговора DA против пользователя?
Но как проверить, что ключи принадлежат доверенным и неподконтрольным владельцам?
Как согласовывать результаты голосования групп, выбранных разным методом?
Так мы можем обвинить в чём-то DA, а при свободном выборе может набежать куча самозванцев и саботирующих элементов, которые будут тыкать друг на друга пальцем: "это он виноват".
Это допустимо для обычных узлов. Но для корневых DA нужен полный консенсус и слаженность. Поэтому их и не промасштабировать. А то мы придумываем какую-то "Кащееву смерть" в виде спрятанной иголки :-)
комментариев: 9796 документов: 488 редакций: 5664
Могут просто потребовать сдать ключики с 50% DA и участвовать с честным видом в сети доверия. А ключики и подставной узел будут применяться только против одного пользователя или нескольких несвязанных. В чём сеть доверия? Как пользователь докажет своё недоверие, как он может исключить DA из этой сети? Только предъявив левые ключи, подписанные DA (если успеет это сделать). Если 50% DA нельзя доверять, то можно ли доверять остальным?
Ключи украдены или начался заговор против tor?
Мне кажется разработчики тоже об этом думали и озадачились :-)
Мне кажется нужно предложить идею аудита логов DA. (См. выше).
Ноября. Но сам документ был написан в октябре (странно но найти правки за ноябрь не смог, непонятно почему дата изменилась с октябрьской), тогда же были описаны условия к DA боротья до последнего, и быть из "свободного" государства.
комментариев: 9796 документов: 488 редакций: 5664
Спасибо. Вы только что могли наблюдать первоначальные проявления параноидальных глюков :-)
Я пока думаю над идеей, скоро озвучу что предлагаю написать им в ответ.
Понял. Поддерживаю. В письме про это напишем.
В юникс не принято при сносе/переинсталляции изменять настройки, хранящиеся в домашней директории. Насолько я помню, тор также смотрит на наличие файлов настройки предыдущей версии, в "/usr/pkg/etc/.../" и то ли по датам смотрит, то ли по изменениям... и если видит что изменялись то не переписывает на новую версию. Вообще, это типичное поведения для unix-программ.
Я его понимаю и поддерживаю. На данный момент видимо это самое разумное решение. Но Роджер не будет жить вечно, и т.д. Все мои рассуждения строились на аналогиях DA с CA. Я не вижу столь концептуальных отличий. Заметим, что последнее время с CA пришли некие изменения к пониманию: доверять CA нельзя, так что можно свой серт не подписывать ничьим сертификатом, зато своим юзверям сообщить правильный сертификат своего сайта, чтобы они его прописали в браузере.
Ну типа да – это как использование CA cert которым подписан сертификат pgpru.
Полностью неподконтрольных не бывает ибо все мы люди, но есть эвристики, как и с сертами. Вот, авторитет Роджера – одна из таких эвристик :)
В любом случае подразумевалось что DA будет не так много и т.д. Человеку с улицы, то есть, естественно, не поверят.
И давно это у нас Америка и Европа стали свободными государствами? Америка прослушку своих граждан активно ведёт, Европа собирается запретить все анонимные сети... ЬI?
Моё рациональное внутри меня мне говорит что халява с тор не может длиться вечно. Во время когда вместо большей и большей свободы внедряются повсеместно всё более и более тотальные типы контроля анонимным сетям не место. Если бы кто-то слил инфу по поводу того что там в высших ешелонах думают по поводу тор, можно было бы жить спокойнее. Про мрос вот, и про рельную безопасность браузеров правда, например, более-менее уже известна.
Во-первых, чтобы атаку которую вы описываете, можно было провести, нужно долго и постепенно вводить новые виртуальные подставные тор-ноды для тора. Если ввести сразу из в вашу ацкую машинку (тор-симулятор), то детектор подозрительной активности загноит сей косяк. Таким образом, надо чтобы машинка применялась к выделенному пользователю втечение долгого времени, постепенно добавляя всё новые и новые подставные хосты. Но тогда атакуемый может хотя бы раз в неделю скачивать статистику по третьему каналу и сравнивать её с тем что у него в логах – не появилось ли много лишних нод и не сильно ли сменились ключи нод. Сеть же доверия нужна для хоть какого-то дополнительного контроля за ключами тор-нод. Если я знаю хотя бы несколько людей которые тоже поддерживают тор-ноды, если я хотя бы общался с ними в сети, я могу подписать их ключи засвидетельствовав этим, что в некоторой мере доверяю им (что такие тор-нод хотя бы РЕАЛЬНО существуют, а не только в машинке симулятора).
Основная суть в том, что скачав верные ключи для всех нод и статистку онлайн/офлайн, уже можно надолго забыть об атаке подмены ключей/статистики, ибо там идут малые колебания вокруг некоего "среднего". Надеюсь, понятно изъяснился.