Комментарии участников:
Из комментов в первоисточнике:
По ссылке очередной шедевр маркетологов, теперь со вкусом сколково. Мало того, что здесь упоминается атака на сидов, так еще и сами признаются в DDoS.
К сожалению, авторы плохо представляют как работают торренты вообще, поэтому сильно позорятся. Чего только стоит «они начинают искать адреса, откуда предлагается скачивать определенный фильм» — а таких адресов может быть тысячи, ведь каждый пир (даже не сид) может раздавать кусочки (pieces) торрента. Учитывая, что на DDoS нужно превосходящее количество ресурсов, товарищи должны иметь по достаточно толстому каналу на каждого пира. Как вы считаете, это реально вообще? Да и на уровне же приложения атаковать сложнее — в протоколе предусмотрен choke, когда пиру надоест с ним общаться, то запросы просто перестанут обрабатываться.
Но тут случай другой — скачиваются нули. По спецификации, проверить фейк ли это можно только после скачивания 1 целого кусочка (порой они по 16 мегабайт), если мы получили фейк — клиент отправляется в блеклист. Не потому, что это грязные копирасты, вовсе нет — возможно на каком-то клиенте посыпалась ФС, а момент рехеша был давно, вот оно и отправляет мусор. Когда я делал свой торрент-клиент, то сталкивался с повреждением данных как раз в объеме 4кб на 500 метровый файл (кто не знает, в торрентах минимальной единицей обмена являются блоки, по умолчанию 16кб каждый, поэтому сказать что 4кб прилетело от отравленного сида нельзя, а вот на битый кластер ФС похоже больше). И все нормальные торрент-клиенты блеклистят такое, минут эдак на 5. Залезть в блеклист можно и за некорректный ответ, скажем за блок, которого не запрашивали, за множество подключений с одного IP и прочие шалости.
Кстати, в DHT много узлов, отвечающие пакетом с values практически на любой запрос, таким образом находим тысячи IP пиров, но внутри этих IP — тишина, никто не отвечает по указанному адресу. Или, еще хуже, порой приходят пиры с 80, 25, 22 и прочими известными портами, такое нормальные клиенты тоже блеклистят незамедлительно. А вот проверить валидность IP порой сложно, ибо легитимный клиент может быть на забитом канале и хендшейк будет идти секунд 10, из-за чего массовую проверку устроить сложно.
В своем торрент-клиенте я реализовывал следующую схему: один кусочек качается сразу с множества пиров (причем иногда запрос на 1 блок уходит сразу 2-3-10 пирам, если в начале был послан медленному клиенту), причем логируется от кого и какой блок получен, когда кусочек заполнен — проверяем его хеш, если все верно — идем дальше, дропая все логи, если нет — повторяем скачивание с нуля, но при этом проверяем с ранее полученными данными. Если блоки совпадают у 2 пиров (значение можно и повыше поставить, до кучи проверку на подсети сделать), то считаем этот блок корректным и больше к нему не обращаемся, и так пока не найдем во второй копии каждого блока — делаем валидацию. Если и тут хеш не сходится, опять ищем, но только среди тех блоков, в которые пришли отличающиеся данные. К сожалению, метод создает много паразитного трафика в случае ошибок, ибо найти некорректные данные внутри кусочка, равно как и пира-вредителя сложно, но пока у меня проблем с этим не возникало. Обычно же торрент-клиенты отдают каждому пиру скачивание отдельного куска, дабы можно было легко проверить корректность данных и поблеклистить негодяя.