Частью использования операционной системы на базе Linux является использование диспетчера пакетов вашего дистрибутива Linux для загрузки и установки нового программного обеспечения. Например, в дистрибутивах на основе CentOS/RHEL репозитории EPEL предоставляют вам почти все, что вам нужно. И часто, когда предустановленный репозиторий недоступен, вы можете добавить его вручную, и файлы будут безопасно загружены после проверки его с помощью ключа.
Однако, иногда у вас нет выбора, кроме как загружать пакеты непосредственно через Интернет. Один из примеров-сами операционные системы. Если вы хотите скачать новый дистрибутив, вам придется скачать его с веб-сайта.
Проверка целостности файлов с помощью хэшей
Но как мы узнаем, что файлы, которые мы загружаем, действительно являются файлами, которые создал создатель? Что, если кто-то злонамеренно получил доступ к серверам и вместо этого разместил там свой собственный файл? Мы могли бы в конечном итоге загрузки, а затем с помощью файла, который может быть глубоко скомпрометирован!
Иногда файлы широко распространяются через сторонние сайты, такие как SourceForge. Нам нужен способ проверить, что файл, который мы загружаем, не был подделан и повторно упакован. Это где хэши приходят внутри.
“Хэш” – это специальная математическая операция, которую мы выполняем с файлом, который генерирует строку символов, которая является уникальной для этого файла. Они также называются “контрольные суммы”. Хотя это не совсем уникально, вероятность его повторения достаточно низка, чтобы он был приемлемой формой безопасности. Хороший алгоритм хэширования гарантирует, что даже небольшие изменения во входном файле будут генерировать огромные различия в выходном хэше. Благодаря этому, это практически невозможно вмешиваться в файл каким-либо образом и иметь хэш быть похожим.
Если хэши двух файлов были сгенерированы хорошим алгоритмом, и они совпадают, вы можете быть уверены, что эти два файла совпадают. Из-за этого все хорошие поставщики программного обеспечения также отображают свои хэши рядом с файлами, которые они предлагают для загрузки. Вроде этого:
Теперь давайте посмотрим, как проверить хэш.
Генерация и сравнение хэшей
Данный сайт предлагает алгоритмы хэширования twp-SHA256 и SHA512. SHA256 достаточно хорош для наших целей. Когда вы нажимаете на ссылку” SHA256″, вы получаете это:
64 символа, которые вы видите здесь, составляют хэш SHA256 для файла, который мы хотим загрузить. Чтобы проверить это, сначала загрузите сам файл через команду wget.
И затем мы используем следующую команду в нашем терминале для генерации хэша SHA256:
sha256sum [filename]
Замените [filename] именем только что загруженного файла. Он сгенерирует строку из 64 символов.
Теперь все, что нам нужно сделать, это сравнить строку символов, которую он генерирует.
Чтобы было легче читать с некоторым форматированием, вот команда, чтобы сделать все прописные буквы и разбивает хэш на группы из 8 символов:
sha256sum [filename] | awk '{print toupper($1)}' | fold -w8
С помощью этой команды гораздо проще сравнить, в отличие от длинной строки из 64 символов.
Другие Алгоритмы Контрольной Суммы
Различные веб-сайты будут иметь различные алгоритмы хэширования для сравнения. В приведенном выше примере мы рассмотрели SHA256. Вот команды для других:
- SHA256-sha256sum (используется выше)
- SHA512-sha512sum
- MD5-md5sum
Если вам нужно вычислить хэш для другого алгоритма, просто замените “sha256sum” в приведенных выше примерах нужной вам командой. Имейте в виду, однако, что хэш MD5 был небезопасным в течение некоторого времени. Вы можете использовать что – то под названием “salt” для дальнейшего повышения безопасности хэша SHA – однако, пройти его невозможно, поэтому его не рекомендуется защищать паролями и личными данными.
Если вы можете успешно сравнить хэши загруженного файла с тем, который отображается на веб-сайте, вы можете быть уверены, что файл, который вы скачали, тот, который автор предназначил для вас.