1

Я постоянно передаю образы дисков и образы виртуальных машин (обычно от 800 ГБ до почти 1 ТБ на файл) на облачный сервер через rclone с использованием SSH, и мне интересно, насколько надежны sha1sum и md5sum, когда дело доходит до проверки целостности очень больших файлов.

Я нашел это:Как я могу проверить, что файл 1TB передан правильно?

Однако это имеет отношение к производительности, а не к надежности генерируемых хэшей.

Может ли быть вероятность того, что другой файл будет использовать те же хеши, сгенерированные с учетом того, что существует так много разных файлов?

Итак, насколько надежны суммы MD5 и SHA-1 для очень больших файлов? Благодарю.

Я также выяснил это в отношении столкновения:https://stackoverflow.com/questions/4032209/is-md5-still-good-enough-to-uniquely-identify-files

https://www.theregister.co.uk/2017/02/23/google_first_sha1_collision/

1 ответ1

3

MD5 и SHA-1 прекрасно подходят для обнаружения случайных повреждений / изменений в файлах. Вероятность того, что случайно измененный файл будет иметь тот же дайджест MD5, равен 1 на 2 128 = 340 282 366 920 938 463 463 374 607 431 768 211 456. Вероятность случайного столкновения SHA-1 еще меньше, один на 2 ^ 160. Если мы говорим о поиске случайных совпадений среди коллекции файлов (известной как проблема дня рождения), вам понадобится около 2 ^ 64 = 18 миллиардов миллиардов, прежде чем коллизия MD5 станет вероятной. Обратите внимание, что размер файлов не имеет значения; имеет значение количество задействованных файлов.

Но ни MD5, ни SHA-1 недостаточно для защиты от злонамеренного замещения файлов или для предоставления надежного уникального идентификатора для файлов. Например, если вы используете любой из них, кто-то может дать вам один файл, подсчитать хеш-дайджест, а затем обмануть его, подменив его другим файлом с таким же хешем. Или отправьте два файла с одинаковым хешем, что может запутать вашу систему.

Кстати, случайное / злонамеренное различие немного потеряно. Предположим, кто-то нашел два PDF-файла, которые Google создал с тем же хешем SHA-1, и подумал: «Это круто! Я должен сохранить их на потом ", а затем попытался использовать вашу систему для их хранения и распространения ... таким образом, случайно разбив систему. Если что-то подобное возможно, лучше использовать SHA-256.

РЕДАКТИРОВАТЬ: BitErrant похож на то, что я описал в предыдущем абзаце: это эксплойт против BitTorrent, использующий тот факт, что BitTorrent использует контрольные суммы SHA-1 в качестве идентификаторов для фрагментов файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .