Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
> так что клиент peer-to-peer не способен отличить мусор от полезных данных.
_существующие_ клиенты не способны отличить мусор от полезных данных. А завтра появятся клиенты, которые будут уметь противостьять этому. Как всегда, соперничество брони и снаряда...
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
Да, но учти, что пока ты не скачаешь некоторый блок ты не можешь быть уверен в его подлинности (иначе зачем его качать?), при условии, что ты ничего не знаешь о поставщике этого блока данных.
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
Как? Вот, например, говорит один из клиентов p2p что у него есть нужный мне файл. Причем контрольную сумму выдает верную. Как я могу проверить, что этот файл - именно то, что мне нужно, а не подложный?
Идея насчет рейтинга, в общем-то, тоже верная. Но! Как он будет отслеживаться? Например, я успешно скачал файл, все хорошо, сообщил об этом на сервер, предоставляя список машин, с которых файл был скачан. Так что-ли? Но что мешает подложному клиенту всегда выдавать "успешное скачивание", специально поднимая рейтинг себе подобным ложным клиентам p2p?
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
> Как? Вот, например, говорит один из клиентов p2p что у него есть нужный мне файл. Причем контрольную сумму выдает верную. Как я могу проверить, что этот файл - именно то, что мне нужно, а не подложный?
Разбивать на как можно большее кол-во кусков (по мегабайту вот, к примеру). Если чексум куска не совпадает с тем, что говорит сервер, выкидывать его, а человека - банить.
> Например, я успешно скачал файл, все хорошо, сообщил об этом на сервер, предоставляя список машин, с которых файл был скачан.
Угу, что-то вроде того.
> Но что мешает подложному клиенту всегда выдавать "успешное скачивание", специально поднимая рейтинг себе подобным ложным клиентам p2p?
Брр. 100% работающую реализацию все равно невозможно придумать, можно просто сделать так, чтобы она не хакалась _так_ просто, как в случае p2p.
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
>Разбивать на как можно большее кол-во кусков (по мегабайту вот, к примеру). Если чексум куска не совпадает с тем, что говорит сервер, выкидывать его, а человека - банить.
А как сервер узнает, что эта машина выдала неправильный кусок? Взаимодействуют-то только два клиента ты и другая машина. Так откуда серверу знать, что ты не врешь? Ты же можешь специально "забанить" кого-нибудь, просто сказав сереверу, что получил неправильный кусок. :) Тоже способ саботажа.
>Брр. 100% работающую реализацию все равно невозможно придумать, можно просто сделать так, чтобы она не хакалась _так_ просто, как в случае p2p.
Пока что я не вижу возможности хоть какого-нибудь улучшения :) Все, что предлагалось выше саботируется не менее просто.
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
>Я же сказал - вести рейтинг. Сколько чексумов больше, тот и победил.
>Надо придумать, как этот способ устранить. Например, банить только если достаточное кол-во людей отошлют такой запрос.
В принципе, идея хорошая. В конце-концов, если в сети больше "плохих" машин, чем "хороших", то собственно сети вряд ли чем можно помочь. Поэтому построение системы защиты, основанное на предположении, что большинство машин все-таки "хорошее" смысл определенно имеет.
Проблема как всегда в деталях. Количество машин в сети >> количество скачиваний с некоторого хоста, а значит чтобы сильно поднять (или опустить) рейтинг совсем не обязательно иметь много подставных машин. Другое дело, что также можно рейтинговать и тех кто рейтингует :)
В общем, задача заключается в построении некоторой модели "доверенности", которая бы повышала качество работы сети (т.е выделяла "подставные" машины).
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
>Проблема как всегда в деталях. Количество машин в сети >> количество скачиваний с некоторого хоста, а значит чтобы сильно поднять (или опустить) рейтинг совсем не обязательно иметь много подставных машин. Другое дело, что также можно рейтинговать и тех кто рейтингует :)
Хм. Вообще говоря, только две стороны знают достоверную информацию (допустим, с точки зрения сервера все клиенты одинаковы). Соответственно, если ты передаешь "правильный" кусок, а другая машина сообщает серверу, что ты передал "ложный" кусок, то ты точно знаешь, что другая машина - врет. Проблема в том, что все машины проверить ты не сможешь, значит надо уметь как-то обмениваться этой информацией о достоверности клиентов сети. При этом нужна опять же защита от "подложных" клиентов, выдающих недостоверную информацию.
В общем, надо построить модель и поиграться с ней. Решение наверняка можно будет подобрать. P2P будет жить!!! :)
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
И что? Сложно проигнорировать этот мусор? Начинаем скачивать кусочек с 10 машин, ищем различие, далее если различия есть либо качаем только с тех машин которых большинство и игнорируем другие, либо предъявляем пользователю варианты.... Вот и все
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
На сколько я понимаю, сейчас хеш (например, md5) вычисляется по файлу. Будет вычисляться для части файла. Например, по 100Kb. Скачал, проверил, если неправильно, то обратился к другому источнику. Задолбаются фэйковых клиентов плодить.
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
>И что? Сложно проигнорировать этот мусор? Начинаем скачивать кусочек с 10 машин, ищем различие, далее если различия есть либо качаем только с тех машин которых большинство и игнорируем другие, либо предъявляем пользователю варианты.... Вот и все
Ага, только после этого "лживые" машины начнут гнать не сразу, а попозже. Для того чтобы это обойти тебе придется постоянно качать с нескольких машин. А это уже сильно портит жизнь сети.
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
>На сколько я понимаю, сейчас хеш (например, md5) вычисляется по файлу. Будет вычисляться для части файла. Например, по 100Kb. Скачал, проверил, если неправильно, то обратился к другому источнику.
Угу, а не заколебешься ли ты постоянно с разных машин качать?
>Задолбаются фэйковых клиентов плодить.
За этим стоят большие деньги. Захотят - не задолбаются.
Re: Спасибо ратскому финскому народу! То Линук$ подкинут, то Р2Р сети завалят.
Более того, отдав тебе неправильный кусок эта машина может тут же перелогиниться под другим именем и продолжать впаривать тебе всякой барахло :) По IP нормально фильтровать не получится - иначе ты обламываешь NAT-ы и прокси. Можно, конечно, следующую машину выбирать с другим IP, но никто не мешает "ложным" клиентам скоординироваться и совершать атаку с разных IP. А именно это и обсуждается - целенаправленная атака.