id: Гость   вход   регистрация
текущее время 16:30 19/04/2024
Владелец: unknown (создано 26/04/2013 13:09), редакция от 02/05/2013 16:55 (автор: unknown) Печать
Категории: криптография, софт, анонимность, алгоритмы, протоколы, tor, спецификации, аутентификация, стандарты
https://www.pgpru.com/Новости/2013/ПроектTorПриглашаетПомочьВРазработкеСкрытыхСервисов
создать
просмотр
редакции
ссылки

26.04 // Проект Tor приглашает помочь в разработке скрытых сервисов


Скрытые сервисы находятся в особенной ситуации. Несмотря на то, что у них есть преданные фанаты, никто из постоянных разработчиков Tor не занимается этим направлением. Это привело к накоплению массы особенностей, которые требуют изучения, реализации и разворачивания для увеличения безопасности и эффективности скрытых сервисов.


Цель блог-поста от Torproject на эту тему состоит из трёх пунктов:


  1. Ознакомить операторов скрытых сервисов с различными недостатками существующей архитектуры скрытых сервисов.
  2. Ознакомить исследователей с различными вопросами, связанными с изучением скрытых сервисов.
  3. Ознакомить разработчиков с изобилием задач по реализации кода, которые остались за пределами экосистемы скрытых сервисов.

Стоит отметить, что не всякая идея, перечисленная в этом блог-посте, является выдающейся. Это скорее наброски мыслей, чем серьёзная, хорошо обоснованная программа.


В любом случае, стоит начать знакомиться с проблемами.

Масштабирование скрытых сервисов


Текущая архитектура скрытых сервисов масштабируется не слишком хорошо. В идеале, большие вебсайты должны иметь возможность полностью переместиться в скрытые сервисы Tor, но при существующей архитектуре это невозможно.


Одной из проблем с перегрузкой скрытых сервисов является то, что нагрузка от клиентов ложится на точки выбора соединения. Поскольку точки выбора соединения — это обычные узлы Tor-сети, то они не предназначены для обслуживания таких нагрузок.


Следовательно, одним из первых шагов по улучшению масштабируемости скрытых сервисов, является устойчивость их точек выбора соединения. В настоящий момент скрытый сервис создаёт некоторое количество точек выбора соединения (от одной до десяти), основываясь на самоопределении своей популярности. Является ли используемая в данный момент формула наилучшей — остаётся открытым вопросом для исследований.


Другая проблема со скрытыми сервисами — это нехватка возможностей балансирования нагрузки. Хотя вы можете делать балансирование нагрузки посредством TCP/HTTP-балансировщиков (таких как HAProxy), нет никаких возможностей балансировки, схожих с DNS-round-robin, когда балансировка осуществляется переотправкой клиентов на разные IP-адреса. Такая балансировка могла бы позволить иметь скрытым сервисам множество "подсервисов". Несмотря на некую привлекательность, такая архитектура вносит и множество проблем, таких как взаимные коммуникации между скрытыми сервисами, неясность места хранения долговременных ключей, назначения точек выбора соединения и др.

Защита от DoS-атак на точки выбора соединения


Модель противника из предыдущей части подразумевала атакующего, умышленно перегружающего точки выбора соединения для того, чтобы сделать их недоступными для честных клиентов. Это значит, что атакующий может временно положить скрытый сервис, устроив DoS против небольшого числа Tor-узлов.


Для защиты от таких атак, Сайверсон и Овелье предложили Valet-узлы в своей работе для PETS-2006: "Valet Services: Improving Hidden Servers with a Personal Touch". Valet-узлы устанавливаются перед точками выбора сединения и работают как защитный слой. Это позволяет скрытым сервисам поддерживать ограниченное число точек выбора соединения, но при значительно большем числе точек контакта, без знания клиентами актуальных адресов точек выбора соединения.


Valet-узлы так до сих пор и не реализованы, в основном по причине больших затрат на их разработку и внедрение.

Длина ключа


Долговременная ключевая пара скрытых сервисов — это RSA-1024, что является малостойким по нынешним временам. Это означает, что в будущем, скрытые сервисы должны быть переведены или на другие величины ключей и/или на другой асимметричный криптоалгоритм.


Побочным эффектом такой миграции станет смена скрытыми сервисами своих onion-адресов. Для смягчения этого перехода возможно временное параллельное использование старых и новых ключевых пар с указанием клиентам необходимости обновления на новые адреса.


К сожалению, хотя разработки в области улучшения некоторых частей Tor-криптографии уже начаты, нет ни одного предложения по улучшению криптографии скрытых сервисов.

Атаки посредством директорий скрытых сервисов


Скрытые сервисы загружают свои дескрипторы на узлы Tor-сети, называемые директориями скрытых сервисов (HSDirs). Клиенты скачивают их дескрипторы и используют их для связи со скрытыми сервисами.


В текущей системе, HSDirs находятся в интересной позиции, которая позволяет им совершать следующие действия:


  • Собирать информацию об onion-адресах и соединяться с ними.
  • Изучать уровень популярности скрытых сервисов, отслеживая количество клиентов, которые запрашивают эти скрытые сервисы.
  • Отклонять запросы клиента и даже при достаточном содействии HSDirs, делать такой скрытый сервис временно недоступным.

Эти сценарии изучены в готовящейся к публикации IEEE S&P, озаглавленной "Вылавливание скрытых сервисов: детектирование, измерение, деанонимизация" (авторы: Алекс Бирюков, Иван Пустогаров и Ральф-Филип Вейнман). Обязательно прочитайте эту работу, как только она будет опубликована!


Рассмотрим некоторые предлагаемые исправления против атак, которые могут осуществлять директории скрытых сервисов:

Защита против сбора информации о количестве onion-адресов

Скрытые сервисы используют хэш-ринг для выбора HSDir, на которых будут размещены их дескрипторы; это означает, что HSDir могут лишь выждать, чтобы получить новые данные при сборе дескрипторов и onion-адресов. Также, поскольку, хэш крутится в цикле, то HSDir могут получать сведения о всех новых дескрипторах скрытых сервисов за каждый цикл вращения.


Одним из возможных решений могло бы стать добавление симметричного ключа к onion-адресу и использование его для шифрования дескриптора перед отправкой на HSDir (по аналогии с тем, как сейчас работает аутентификация по cookie-дескрипторам). Клиент, знающий onion-адрес сможет расшифровать дескриптор, но HSDir, которая не знает onion-адреса, не сможет вывести его имя. Недостаток этой схемы в увеличении размера onion-адреса без увеличения его безопасности в отношении свойства самоаутентифицируемости. Помимо этого, HSDir всё ещё смогут извлекать открытый ключ скрытого сервиса из дескриптора, что позволит HSDir выслеживать дескриптор определённог скрытого сервиса.


Другое решение было предложено Робертом Рэнсомом:


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


Идея Роберта увеличивает размер onion-адреса, но также делает его более стойким к атакам имперсонации (текущаяя 80-битная безопасность скрытых сервисов не даёт уверенности в защите от таких атак). Более того, такая идея не позволяет HSDir выслеживать дескрипторы скрытых сервисов и с течением времени.


Хотя идея Роберта достаточно проста, она требует более строгого исследования безопасности для написания соответствующего предложения по разработке Tor. Забавно, что эта идея требует долговременных ключевых пар скрытых сервисов на основе использования криптографии дискретных логарифмов, что требует миграции ключевых пар, если это будет включено в план работ.

Блокирование выслеживания популярности скрытых сервисов

HSDir могут выслеживать число пользователей, которые запрашивают скрытый сервис для изучения его популярности. Мы можем затруднить эту задачу, используя протокол приватного получения информации (PIR) для получения дескрипторов скрытых сервисов. Конечно, это не остановит точки выбора соединения от проведения выслеживания, но поскольку точки выбора соединения определяются самим скрытым сервисом, то риск снижается.


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

Создание сложности в установке вредоносной HSDir

Из-за влияния, которое HSDir оказывают на скрытые сервисы, мы начали разработку процедуры, усложняющей для узлов Tor получения статуса HSDir.


Также, противник, который может предсказать идентифицирующие ключи, будет иметь возможность в будущем целенаправленно отслеживать определённый скрытый сервис. Мы начали думать, как избежать и такой атаки.

Улучшение производительности


Скрытые сервисы ооочеень меееедлееенныыыые и мы даже не можем ясно понять, почему. Они могут быть медленными из-за ресурсоёмкого процесса установления соединения в ходе создания цепочки, или потому что эта цепочка состоит из 6 узлов, или по каким-то другим причинам. Множество предложений было высказано для снижения задержек в скрытых сервисах, от настроек протокола скрытых сервисов, до трюков с javascript, и до радикальных решений о формировании цепочки до скрытых сервисов.


Давайте рассмотрим некоторые из этих предложений:


На конференции PETS 2007 Сайверсон и Овелье представили доклад "Улучшение эффективности и простоты установления цепочек в сети Tor, включая скрытые сервисы", где предложено упростить цепочки к скрытым сервисам за счёт избавления от необходимости раздельных соединений к точкам встречи.


Они отметили, что с использованием Valet-узлов, концепция точек встречи становится избыточной и такие цепочки скрытых сервисов могут быть сформированы только посредством Valet-узлов и точек установления соединения. Карстен Лёзинг составил предложение для Tor с вариантом этой идеи.


Причина невыполнения этой схемы в неясности вносимого компромисса безопасности и некоторых технических препятствий (таких как факт того, что разделение цепочек между несколькими клиентами пока не поддерживается).

Анализ установления цепочек к скрытым сервисам посредством Torperf


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


Для изучения этого свойства нужно использовать Torperf, анализируя разницы времени между шагами процесса. К сожалению, Torperf использует контроллер Tor-протокола для изучения фаз самого протокола, но не всех шагов установления цепочки со скрытым сервисом. Внесение изменений в код триггеров контрольного порта, поможет собрать и проанализировать необходимые результаты.

Скрытые сервисы должны использовать старые точки установления соединения


Сейчас скрытые сервисы прекращают использовать цепочки до старых точек установления соединения после разрыва связи с ними. Хотя такое поведение имеет смысл, оно означает, что клиент, у которого остались старые дескрипторы скрытого сервиса, устанавливает свои соединения с неправильными точками. Это особенно неприятно при ситуации роуминга, частой смены сетей, потери существующих цепочек.


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

Шифрованные сервисы


Шифрованные сервисы — это корректный путь выполнения исходящих анклавов.


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


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

Легкозапоминаемые onion-адреса


Треугольник Зуко описывает onion-адреса как безопасные и глобальные, но труднозапоминаемые. Набор решений по запоминаемости так и не оказался успешным по ряду причин.




Это лишь некоторые из вещей, которые должны быть сделаны в сфере скрытых сервисов. Если вам интересны вопросы оказания помощи, читайте ссылки, обсуждения, присылайте нам оформленные предложения. Участвуйте в дискуссиях по разработке в рассылке и IRC-каналах.


Наконец, этот блог-пост затрагивает только проблемы кодовой базы Tor, его протокола и криптографической основы скрытых сервисов. Однако, для полноты успеха и влияния скрытых сервисов, необходимо создание вокруг них оживлённой экосистемы. Например, необходима разработка сохраняющих приватность систем резервного копирования, поисковых сервисов (и соответствующих технологий), нужны лёгкие в использовании платформы для публикации материалов, демоны интернет-сервисов и протоколы, оптимизированные под соединения с высокими задержками, анонимный файлообмен, системы чатов и социальных сетей.


Спасибо Роджеру, Роберту и другим людям за помощь комментариями и советами для этого блог-поста.


P.S. Не забывайте изучать публикации по анонимности, связанные с темами этого блог-поста.


Источник: The Torproject Blog


См. также: Основные изменения в системе Tor по сравнению с разработкой 2004 года, 10 способов раскрытия бридж-узлов Tor.


 
На страницу: 1, 2, 3, 4, 5, 6 След.
Комментарии [скрыть комментарии/форму]
— Гость (20/06/2014 20:19)   <#>

У меня такое происходит практически со всеми HS. С обычными сайтами такое случается крайне редко. С HS — всегда. Не помогает ничего. Вот относительно нейтральный onion-адрес, на котором перепроверил только что: http://wecttp234pgkcxoh.onion. Пока минуту TBB строит цепочку, проц грузится, потом, когда страница частично загружена, и продолжают грузиться элементы страницы, загрузка плавает, часто пиково уходя в те же 100%. Только когда всё загрузилось, проц «отходит». Если потом нажать ctrl+r и перезагрузить страницу, весь цирк повторяется заново. И такая хрень практически со всеми onion-адресами. Обычные страницы открываются при этом наура.

P.S. Linux, версия для 64 bit, ничего нестандартного нет, JS разве что отключен.


А у меня ничем не устраняется, даже восстановлением чистой копии TBB из бэкапа. Говорят, в винде та же ерунда: обычный firefox открывает этот же onion-адрес без проблем, а TBB-шный firefox грузит проц на 25%.


Да, одно ядро на 100%, остальные простаивают тоже грузятся, но не так сильно, в пределах нормы.


Там ничего не сказано про onion-адреса, и освещается только винда. Иногда бывает, что обычный сайт (не HS) блокирует соединение с Tor, и в этом случае проц тоже жрётся. Но это всё же редкий случай. Чаще если сайт не существует или недоступен, TBB быстро приходит к странице

Unable to connect

Firefox can't establish a connection to the server at ijbsdkjfbsdfsdf.org

и проблем никаких нет. А с onion-сайтами проблема тотальная, всюду, работать почти невозможно трудно. Сильно напрягает.



Не знаю, связано ли с этими или нет, но после коннекта к onion-адресу TorBrowser начала опять рисовать favicon от pgpru.com в теле страницы. Такое давно уже случалось, со старыми версиями firefox/TBB, я об этом писал тут, и вот снова.
— Гость (20/06/2014 21:34)   <#>

Оптимизирующий патч, вызывающий эту ошибку, не платформозависимый. Браузер ничего не "знает" ни про скрытые сервисы ни про тор, оперируя лишь только транспортами и протоколом прокси. Патчем меняется логика работы браузер через сокс прокси: не дожидаясь ответа об установлении соединения переводят состояние транспорта в режим подключено. Что вызывает выполнение кода по бессмысленному циклу.

Тор не сообщает об установлении соединения, пока не будет ответа от эксита или скрытого сервиса. Автор патча расчитывал на внесение исправлений в код клиента тора, где в нарушении протокола всегда сообщалось бы об успешности подключения. Но разработчики пропустили этот момент, не собираясь нарушать протокол. И все довольны. Кроме редких пользователей.
— Гость (20/06/2014 21:53)   <#>

Нужно тестировать с сайтами без имен, на разрешение которых у клиента есть ограничение. Например http://11.22.33.44/ Но тоже не удачный пример, из-за экситов которые считают, что сайт должен отвечать за секунду, а иначе считает это таймаутом tcp соединения (по сути такой эксит есть вредоносный, но все довольны). У скрытых сервисов почти нет ограничений, не считая 2 минут таймаута на socks хэндшейк, да ещё полное засилие http транспорта, вот поэтому там бага так хорошо видна.
— Гость (20/06/2014 22:04)   <#>
P.S. Не кликайте эту ссылку, если не имеете контроллера для сброса цепочки или не желаете выбирать в браузере "Новую личину" с обнулением всего. Таймаутных экситов много и этой ссылкой вы наверняка застрянете на цепочке с одним из них, после чего ни один сайт работать не будет.
— Гость (21/06/2014 10:32)   <#>

Что считается протоколом? Они же сами протокол разрабатывают и фиксят. Или вы про традиционное поведение соответствующих протоколов (HTTP, SOCKS)?

Судя по вашим объяснениям, фикса от Tor Project'а можно не ждать. :-( Неужели я один такой, у кого проц постоянно жрётся при заходе на скрытые сервисы? Или они считают пользователей HS заведомо малой группой, интересы которой никого не волнуют?


Сколько ни кликал, всё было ОК. TorBrowser почти сразу выдавал инфу, что сайт недоступен. Если что, одновременно используется более одной цепочки, как правило, так что клики не должны быть фатальными.
— unknown (21/06/2014 11:31)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
УМВР. Даже если какой-то сайт (HS или нет) долго думает перед открытием или не открывается, то на других вкладках можно нормально работать. TorBrowser при этом никак и никогда не нагружает проц (как это иногда бывает при его глюках с JS, например).

Linux 64 bit. JS обычно включен. Для пользователя настроен SELinux. Tor системный — зафайрволен не через SOCKS, а через транспортные Tor-порты. Почему-то именно через эти порты уже делать не рекомендуется, как устаревшее решение — но может по этому теперь наоборот всё работает без бага?
— Гость (21/06/2014 16:49)   <#>
Или вы про традиционное поведение соответствующих протоколов (HTTP, SOCKS)?

Да. Оптимизирующий патч, вызвавший проблему, меняет логику работы socks протокола, socks-клиент (браузер) шлёт данные не дожидаясь ответа от socks-сервера (tor) о результате запроса на подключение к запрашиваемому адресу. Tor может быть готов к такой логике, но сам не может нарушать протокол. Помимо браузера существуют и другие программы, не готовые принять ответ от socks-сервера ответ об успешном подключении, чтобы потом получить ответ о недоступности (этот ответ уже будет считаться данными). Можно было бы наковырять костылей, и отвечать об успешности, а затем при надобности просто разрывать соединение. Но зачем.
Проблема в патче для браузера, и только там.

Неужели я один такой

Можно как unknown через прозрачное проксирование. В этом случае багов нет и оптимистичные данные, ради которых нарушали сокс протокол в браузере, сразу работают.

TorBrowser почти сразу выдавал инфу, что сайт недоступен.
Странно,
Неужели я один такой
— Гость (22/06/2014 06:25)   <#>

А теперь попробуйте, если вам не сложно, отключить свой fw, создать отдельного юзера, распаковать там TBB-бандл и запустить его как есть, потом зайдя на скрытый ресрус. Параллельно запустите в терминале top -d.3 и смотрите, что будет писаться в %CPU.


Можно, но это тоже плохо.

Поскольку прозрачной торификацией пользуется меньшинство, а на скрытые ресурсы ходит существенная часть пользователей сети, по логике вещей, рассылка Tor уже должна разрыватья от криков «сделайте хоть что-нибудь!». Получается, пока юзер ходит по скрытым ресурсом, у него проц греется, кулеры орут на всю мощь, ноутбук прерващается в пылесос и т.д. Не заметить эту траблу просто нельзя.
— Гость (22/06/2014 08:30)   <#>

Не успевает он нагреться, обычно ответ от рабочего скрытого ресурс приходит за 1-5 секунд (включая строительство цепочки и запрос-ответа на подключение к сайту). Если сайт не перегружен контентом и лаг низкий, браузер не успевает нагреть процессор начальным подключением и дополнительными http соединениями в дальнейшем. Думаю, это справедливо для существенной части пользователей скрытых ресурсов. Иначе блог давно бы уже завалили комментариями, который куда доступней рассылки.
— Гость (22/06/2014 08:43)   <#>

Или точнее так: не успевает прогреть процессор для включения вентилятора. Сейчас протестировал со скрытой вики, браузер нагрел процессор на 5 градусов, а затем всё быстро охладилось, прошло меньше 5 секунд. Вентилятор не было слышно.
— Гость (22/06/2014 10:50)   <#>

Вышеупомянутый http://wecttp234pgkcxoh.onion у меня в первый раз после запуска TBB загружается примерно за 30 секунд, причём на скорость соединения с сетью я не жалуюсь. Многие ресурсы то в дауне, то тупят, то глючат, то перегружены... их не поймёшь. Пока пытаешься открыть, проц греется. Мне лень ждать, поэтому параллельно в другой вкладке пытаюсь загрузить другую onion-ссылку, из-за чего получается, что грузится несколько вкладок одновременно. Если внутри какого-то onion-сайта переходишь по ссылке, весь цирк с нагреванием опять продолжается. Обычно последующие отклики происходят быстрее, чем самый первый, но ведь и щёлкнуть обычно нужно не по одной ссылке, а по десяткам, вот и получается, что одно ядро загружено на 100% почти всё время.
— unknown (22/06/2014 21:39)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Феерический скрытый сервис: грузит кучу картинок и прочих элементов из открытой сети.

Скорость работы скрытых сервисов всегда низка в начале: нужно найти адрес точки встречи, провести несколько шагов, по которым трафик идёт до шести узлов. Срабатывает эффект самого тормозного узла в цепочке.

При прозрачном проксировании это не мешает работе и не грузит проц на клиентской стороне впустую. Для стандартных конфигураций придётся ждать, пока исправят.
— Гость (02/07/2014 16:16)   <#>
К слову про уязвимости. В чистом поле нашлось вот такое: ссылка оригинальная, не кликать! лучше вообще не качать!. Сжирает всю память и процессор, работает без скриптов. Уничтожает не только браузеры, но оффлайновые смотрелки и файловых управленцев.
— Гость (02/07/2014 21:17)   <#>
В обычном браузере действительно расходуется вся память. Но wget качает без проблем. Видимо код страницы специально выбран таким чтобы его отображение требовало много ресурсов. Всего 999 строк:

— Гость (03/07/2014 00:05)   <#>

Но это чисто DoS, так ведь? Доступа к данным злоумышленник всё равно не получит.
На страницу: 1, 2, 3, 4, 5, 6 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3