The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Новый закон США может втянуть разработчиков ПО в борьбу..."
Отправлено Аноним, 16-Ноя-11 04:04 
>> вообще не является жестко фиксированным, чтоб уж совсем хорошо :))).
> да в принципе, явлается. как раз «оглавление» торрента, со списком файлов и размерами.

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

>> в защищаемый хешом элемент-контейнер. Как минимум, инфохешом совершенно точно защищены
>> еще и сами хеши всех блоков раздачи
> а вот ни разу, гыгыгы.

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

Вот тебе пример тестового торента из 1 мелкого файла (так что только 1 часть).

$ buildtorrent -S -a test://announce.url testfile.000 test000.torrent
                   4 : testfile.000
hashing 1 pieces
[==================================================]
torrent =>
  {
    "announce" =>
      "test://announce.url",
    "created by" =>
      "buildtorrent/0.8",
    "creation date" =>
      1321397823,
    "info" =>
      {
        "length" =>
          4,
        "name" =>
          "testfile.000",
        "piece length" =>
          262144,
        "pieces" =>
----------------------------------------
a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0
----------------------------------------
      }
  }

Заметь, хэш (единственнго) блока - входит в info. Что довольно логично для защиты от подделки хешей частей при совпадении инфохеша и вообще раздачи. Дело в том что инфохеш является ключом поиска в DHT, и на трекер он же шлется. Вот так вот банально - хеш критичных параметров раздачи является ключом поиска, защищая их тем самым от подделки. Другие параметры автоматически означают другую раздачу. Еще туда же может входить и приватный флаг (сам пнешь buildtorrent, или мне дампом еще раз нагадить? :D). А потенциально и что-то еще (как я понимаю, чисто технически данный формат это позволяет).

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

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

>> Иначе можно было бы подделывать торенты направо-налево, раздавая файл с тем же
>> инфохешом но другими хешами блоков.
> и ты таки не поверишь…

И ты таки не поверишь, попробуй подделать например задампленый торент? :)
Его инфохеш eebefd05af384ca8233859ef1c1487b5830e34fa. Удачи получить такой же инфохеш подменив хеш части, при том что он входит в вычисления :). Для этого всего-то надо коллизию в SHA-1 найти для заранее даденых данных и хеша. При наличии таких кондовых mad skillz можно ломануть и что-нибудь повеселее вшивых торентов.

>> Будь такой ляп в торенте — копирасы бы люто радовались и раздавали бы на
>> каждом углу торент-файлы с своим же варезом, запатчив там хеши блоков
>> так что траффа было бы много но закачка никогда не завершалась
> это возможно только в том случае, когда сеть маленькая. все современные клиенты
> умеют больше не спрашивать блоки у пиров, которые прислали несколько дефективных.

А это не важно - такой flaw позволил бы организовать рубку стенка на стенку. Стая пиров сливших фэйк мутузила бы своим бандвизом стайку правильных. А это развал стаи + "гражданская война" хомячков друг с другом. Но этого сделать нельзя. Если ты поменяешь sha1 части то поменяется и sha1 info. И это будет просто другая раздача с точки зрения слившего такой торент. Сливший фуфлоторент конечно не укачает там ничего полезного, но на правильную раздачу он не попадет и потому никому бандвиз транжирить не сможет.

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

На самом деле блеклистинг умеют отнюдь не все клиенты и к тому же состав участников меняется, как и их ипы, так что паразитную нагрузку можно создать приличную. И фэйл был бы в том что все это хомяками с легитимными клиентами. Но такого фэйла не будет - идентификатором раздачи является инфохеш, а он защищает и хеши блоков. Если там что-то поменять, это будет _другая_ раздача. Стайка хомяков будет тусоваться в отдельном загончике. Вообще, от копирасов есть кой-какая польза: они тестируют протоколы боем. Давая много новых ценных сведений о том какие атаки бывают и прочее. Это приводит к совершенствованию протоколов. Как известно, добро должно быть с кулаками.

> и, кстати, никакие «инфохэши» от такой атаки не защитят. ибо достаточно взять
> любой опенсорцный торрент-клиент, и подпилить его так, чтобы он отвечал нормально,
> а в блоках слал мусор. это та же самая «атака». и работать оно не будет.

Впарить 100500 хомякам "неправильный" торент-файл на порядок проще чем впарить 100500 хомякам подпатченый клиент, не находишь? А если ты о том чтобы своими ресурсами флудить битыми частями в стаю из сотен или тысяч хомяков - так это неинтересно: хомяков много, а ты 1 против толпы. Какой интерес ссать против ветра? Это дорого и неэффективно - толпу не перефлудишь :). Ну скачают они по 1-2 блока на рыло. И перекачают. Никто даже не заметит что что-то вообще идет не так. Ну может тормознешь раздачу на 1%. А вот если пустить хомяков стенка на стенку рубиться - там уже в разы может просесть. Только вот это не получится. Поверь, копирасы достаточно тестируют протоколы на вшивость а я малость дампаю протоколы. Столь наглую атаку все бы уже давно заметили. Замечают и намного менее масштабные и наглые действия.

> это хэш словаря 'info', в котором хранится:
> piece length
> pieces

^^^ А вот тут то и лежат SHA1 всех блоков, прикинь? ;)

> опционально возможна md5sum, но никто её туда не пишет обычно.

И фиг с ней. Пачка sha1 хешей на все блоки и так есть. Торент вполне надежно верифицирует данные. Если ты слил торент или получил магнет из доверяемых источников, md5 нахрен не вперся, куча sha1 и так отлично верифицирует то что укачалось.

>  вот такие вот пирожки. сами хэши блоков всем по барабану.

Ты сам только что процитировал же pieces, как раз и содержащий sha1-хеши всех блоков?! Чего это за упражнения в взаимоисключающих параграфах? oO

>> Ну на jamendo например обычно названия вменяемые, поэтому я их файло раздаю вечно.
> этих можно и потерпеть, да. хотя я предпочитаю «только латинские буквы в
> нижнем регистре, цифры и знак подчёркивания». но для жаменды делаю исключение.
> правда, я не так часто что-то там беру: и так музыки столько, что прослушать не успеваешь.

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

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру