Назад | Перейти на главную страницу

Есть ли смысл в проверке MD5 файлов после их распаковки?

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

Если бы они переключились на проверку MD5 zip-архива, было бы какое-то значение в проверке целостности разархивированных файлов с помощью MD5 - или это покрывается проверками CRC при распаковке?

Технически да, практически нет.

Возможно, ваша программа декомпрессии сделает что-то странное или данные будут повреждены на этапе сохранения. Для особо важных данных вы всегда должны проверять их после сохранения на диск.

На практике zip / unzip - это старые программы, и риск ошибки в программе Zip, поставляемой с вашим Linux, довольно низок. Это в первую очередь касается нестабильных платформ или проблем с хранилищем. Я видел, как маршрутизаторы повреждали образы при их распаковке, а неудачная запись через NFS может вызвать интересное повреждение файлов.

Если вы думаете, что кто-то может создать «злой» zip-архив, чтобы обойти ваши проверки, ситуация немного иная. Обратите внимание, что CRC в zip-архиве не обеспечивает защиты от злоумышленника, а MD5 - довольно старый и слабый алгоритм. Большинство систем вместо этого переходят на алгоритмы SHA для проверки целостности файлов (я думаю, что SHA256 является наиболее популярным). Хеширование архива и расширенных файлов значительно усложняет атаку на MD5.

Контрольные суммы отдельных файлов должны быть проверены, чтобы помешать День Рождения Атака столкновения ... если у вас есть причины для беспокойства по поводу таких вещей.

поскольку я знаю, что каждый файл в zip-архиве имеет свою собственную контрольную сумму, когда вы извлекаете файл из архива, zip вычисляет контрольную сумму извлеченного файла и сравнивает ее с контрольной суммой в архиве. если контрольная сумма отличается, предполагается, что zip-архив поврежден. также контрольная сумма не является контрольной суммой md5, и я думаю, что ее контрольная сумма CRC также не уверен, что я думаю, что она достаточно надежна, но если вы хотите быть на 100% уверены, что файл, который у вас есть, является тем же файлом, который, например, распространяет поставщик файлов CentOS iso. и не изменяется третьими лицами, чем вы, возможно, захотите проверить сумму md5

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