Проверка контрольных сумм файлов в Linux

Очень часто при загрузке файлов с Интернет-ресурсов можно встретить прилагаемую информацию о контрольных суммах этих файлов. Многие пользователи просто не обращают на это внимания, скачивают файл и используют его «как есть». Однако контрольные суммы к соответствующим загружаемым файлам прилагаются не просто так. Это напрямую связано с корректной работой программ (если это исполняемые файлы), а также с безопасностью. В данной статье будет более подробно изложено, почему так важно пользоваться контрольными суммами, а также рассмотрены способы проверки файлов в Linux.

Зачем нужно выполнять проверку файлов?

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

Есть и другой важный аспект в использовании контрольный сумм — это безопасность. Удалённый сервер, с которого происходит загрузка файлов может быть взломан, а сами загружаемые файлы на нём — изменены. Изменения могут быть не самыми безобидными, как можно понимать. Проверка контрольных сумм может выявить «подлог» ещё до того как загруженный файл будет обработан пользователем, конечно, если эта проверка будет своевременной.

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

Каким образом это работает?

Создание контрольных сумм файлов называется хешированием. Сама же контрольная сумма — это некоторая строка определённой длины, состоящая из последовательности букв и цифр. Нужно заметить, хеширование никоим образом не зашифровывает файл, а контрольная сумма ничего не расшифровывает. Контрольная сумма называется суммой потому, что это результат однонаправленного криптографического «суммирования» — специального алгоритма. А контрольной она называется потому, что её значение (как и длина контрольной строки — обычно 32 символа) будет всегда одним и тем же, если файл никак не изменялся, независимо от того, сколько раз и при каких условиях вычисляется его контрольная сумма. Но стоит над файлом произвести даже самые незначительные изменения (например, вставить один лишний пробел в текстовом файле), как значение контрольной суммы изменится. Таким образом, значение контрольной суммы меняется, если хотя бы один бит файла изменился.

Для создания и проверки контрольный сумм существует два основных метода: MD5 и SHA. Первый считается устаревшим, поскольку для задач шифрования может быть относительно нетрудно взломан. Однако, на работу с контрольными суммами файлов это никак не влияет. Главным же плюсом MD5 является его скорость — она быстрее, чем у SHA, да и вообще других методов шифрования.

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

SHA имеет несколько версий. Обычно, при публикации это указывается, например: SHA1, SHA2. Это подсказывает пользователю, каким именно инструментом, реализующим одну из версий SHA нужно воспользоваться при проверке. Если же контрольная сумма указана без номера, то это SHA1. Вообще, для проверки целостности файлов оба метода одинаково хороши, выбор зависит от того, контрольная сумма какого метода опубликована для загружаемых файлов.

Что для этого нужно?

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

В качестве проверяемых файлов используются любые файлы, для которых публикуются исходные контрольные суммы, например образы дистрибутивов Ubuntu или Rosa Linux. Далее в примерах будет использоваться образ ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso.

Как проверить файл в Linux?

Для начала скачаем сам файл, т. е. ISO-образ. На странице загрузки в списке рядом со ссылкой на образ есть также и ссылки на текстовые файлы

ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso.md5sum 
ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso.sha1sum,

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

Итак, загрузка образа, используя утилиту wget:

$ wget http://mirror.rosalab.ru/rosa/rosa2016.1/iso/ROSA.Fresh.R11/ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso

Загрузка файла с контрольной суммой SHA1:

$ wget http://mirror.rosalab.ru/rosa/rosa2016.1/iso/ROSA.Fresh.R11/ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso.sha1sum

Просмотр содержащегося в файле ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso.sha1sum значения контрольной суммы SHA1 с помощью команды cat:

$ cat ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso.sha1sum
8ddc46a21fee2fec56ef7d31bd6296ae73385063 ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso

Как можно видеть, представлены контрольная сумма и имя образа, для которого она была вычислена. Теперь можно, собственно, проверить сам образ, используя для этого команду sha1sum;

$ sha1sum ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso
8ddc46a21fee2fec56ef7d31bd6296ae73385063 ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso

Зрительно сопоставив значения контрольных сумм из вывода команды sha1sum и из содержимого файла PLASMA5.R11.x86_64.uefi.iso.sha1sum, можно убедиться, что они полностью совпадают. Таким образом, загруженный образ идентичен тому, что находится на сервере и его можно смело использовать.

Следует отметить, что версии SHA отличаются количеством следующих друг за другом запусков SHA – 256, 384 и 512. Для всех этих версий существуют соответствующие команды: sha256sum, sha384sum и sha512sum. Аналогичным образом можно использовать и команду md5sum для проверки контрольных сумм MD5.

Заключение

Итак, были рассмотрены самые распространённые способы проверки файлов. Как можно видеть, это совсем не сложно и выполняется стандартными средствами в любой системе Linux буквально одной командой.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделиться с друзьями:
Comments: 1
  1. Кирюха

    Спасибо за статью, всё кратко и по делу :idea:

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: