Допустим, я хотел бы получить образы ISO для CentOS. Если вместо прямой загрузки ISO-образов с зеркального сервера я просто загружаю файл .torrent с того же сервера, а затем использую клиент BitTorrent, есть ли шансы, что изображения могут быть намеренно повреждены?
2 ответа
Пока вы получаете торрент-файл из надежного источника, невозможно повредить изображения.
В торрент-файле содержится достаточно информации для надежной проверки каждого фрагмента конечного изображения. Когда ваш клиент получает каждый кусок файла изображения, он проверяет его по хэш-набору (или дереву Меркле) в торрент-файле. Неверные куски отбрасываются и извлекаются снова из другого источника. Источники, которые продолжают отправлять вам недействительные данные, заносятся в черный список.
Однако можно очень затруднить загрузку торрент-файла, создав большое количество фиктивных клиентов, обслуживающих поврежденные фрагменты. Клиент выбрасывает каждый поврежденный кусок и помещает в черный список фиктивных клиентов так быстро, как только может. Но это все равно может сделать загрузку торрент-файла нереально медленной, если злоумышленник достаточно решителен.
См. Статью в Википедии о Torrent-файлах, в частности о pieces
или root hash
ключах.
Преимущество торрента в том, что 512-байтные чанки могут быть повреждены, но поскольку это источники из разных источников, один неверный 512-байтный чанк не приведет к повреждению всего файла размером 600 МБ. Скорее, плохая сумма MD5 из плохих 512 байт удаляется и получается из альтернативного узла маршрутизации. Это позволяет присущему торренту преимуществу загружать, точно большие файлы.
Это означает, что из списка подлинных исходных торрент-серверов (особенно через HTTPS) значение доверия всегда будет равно 1:1.
Конечно, вы всегда должны проверять MD5 или SHA1 (или другие хеши), чтобы проверить истинную точность загруженного файла.
В соответствии с рекомендацией Tails Linux (tails.boum.org), вам следует (если вы абсолютно не уверены в этом) загружать один и тот же файл несколько раз, чтобы убедиться, что вы можете генерировать те же хеши MD5/SHA1, чтобы ДОВЕРЯТЬ серверам, с которых вы загрузили Файл действий торрента.