4

Почему сайты предлагают MD5-хэш файла? Как это поможет вам проверить целостность / источник файла? Не будет ли уделять внимание вашему URL достаточно безопасности?

7 ответов7

10

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

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

8

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

Хэш MD5 хорош для проверки того, что файл не был поврежден в процессе загрузки. Контрольные суммы TCP не все ошибки, которые могут возникнуть, когда ваш файл находится в пути (хотя эти ошибки встречаются редко), и я видел, как образ ISO был поврежден во время процесса загрузки ранее.

2

Безопасность - это одна (важная) вещь, но я думаю, что она также должна гарантировать, что вы загрузили файл полностью.

1

Теоретически оба файла должны выдавать один и тот же хэш, если они абсолютно одинаковы (хотя коллизии случаются).

Вы можете легко обеспечить это языком на стороне сервера, таким как старый верный PHP ...

echo md5_file('my_file.zip');
1

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

1

Есть несколько причин:

  • атака "Человек посередине" может изменить вашу загрузку и внедрить в нее вирус, трояна или другой вредоносный код
  • Также возможно, что во время загрузки произошла некоторая ошибка в потоке битов, и загруженный файл мог быть поврежден.
  • Может быть задействован прокси-сервер, который может рано отключить соединение.
  • Некоторые старые браузеры не могли загружать файлы размером более 2 ГБ, поэтому загрузка файлов большего размера также может привести к повреждению загрузки.
  • Это также позволяет пользователю проверить, является ли "тот же" файл на зеркальном сервере действительно тем же файлом, а не измененной версией.
1

Иногда передаваемые файлы могут быть повреждены злонамеренно или из-за неправильного соединения.

Криптографические хеш-функции (такие как MD5) предназначены для изменения, если есть изменения в исходном файле. Таким образом, вы можете обнаружить такие изменения.

Обратите внимание, что если вы хотите защитить от преднамеренного изменения (сделанного злоумышленником), вам нужен способ проверить, что эталонный хеш, который вы получили, является правильным и получен из надежного источника (например, подписи с помощью сертификатов PGP или X.509). Вам также может понадобиться более качественный алгоритм хеширования (например, SHA-1, SHA-256), поскольку атаки на коллизии были продемонстрированы против MD5.

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