Иногда вы видите хэши MD5, SHA-1 или SHA-256, отображаемые рядом с загрузками во время ваших путешествий по Интернету, но вы не знаете, что это такое. Эти, казалось бы, случайные строки текста позволяют убедиться, что загружаемые вами файлы не повреждены и не подделаны. Вы можете сделать это с помощью команд, встроенных в Windows, macOS и Linux.
Как работают хэши и как они используются для проверки данных
Хеши - это продукты криптографических алгоритмы предназначен для создания строки символов. Часто эти строки имеют фиксированную длину, независимо от размера входных данных. Взгляните на приведенную выше таблицу, и вы увидите, что и «Лиса», и «Рыжая лиса перепрыгивает через синюю собаку» дают одинаковую длину.
Теперь сравните второй пример на диаграмме с третьим, четвертым и пятым. Вы увидите, что, несмотря на очень незначительные изменения во входных данных, все полученные хэши сильно отличаются друг от друга. Даже если кто-то изменит очень небольшую часть входных данных, хеш изменится резко.
MD5, SHA-1 и SHA-256 - это разные хэш-функции. Создатели программного обеспечения часто берут скачанный файл - например, файл .iso для Linux или даже файл .exe для Windows - и запускают его с помощью хэш-функции. Затем они предлагают официальный список хэшей на своих сайтах.
Таким образом, вы можете загрузить файл, а затем запустить хеш-функцию, чтобы убедиться, что у вас есть настоящий исходный файл и что он не был поврежден в процессе загрузки. Как мы видели выше, даже небольшое изменение файла резко изменит хэш.
Они также могут быть полезны, если у вас есть файл, полученный из неофициального источника, и вы хотите подтвердить его подлинность. Допустим, у вас есть файл Linux .ISO, который вы откуда-то взяли, и вы хотите убедиться, что он не был изменен. Вы можете найти хэш этого конкретного ISO-файла в Интернете на сайте дистрибутива Linux. Затем вы можете запустить его через хеш-функцию на своем компьютере и убедиться, что он соответствует ожидаемому хеш-значению. Это подтверждает, что у вас есть тот же файл, который предлагается для загрузки на веб-сайте дистрибутива Linux, без каких-либо изменений.
Обратите внимание, что «коллизии» были обнаружены с функциями MD5 и SHA-1. Это несколько разных файлов - например, безопасный файл и вредоносный файл - которые приводят к одному и тому же хешу MD5 или SHA-1. Вот почему вам следует по возможности предпочесть SHA-256.
Как сравнить хеш-функции в любой операционной системе
Имея это в виду, давайте посмотрим, как проверить хэш загруженного файла и сравнить его с тем, что вам дали. Вот методы для Windows, macOS и Linux. Хеши всегда будут идентичными, если вы используете одну и ту же функцию хеширования в одном файле. Неважно, какую операционную систему вы используете.
Windows
Этот процесс возможен без стороннего программного обеспечения в Windows благодаря PowerShell.
Для начала откройте окно PowerShell, запустив ярлык «Windows PowerShell» в меню «Пуск».
Выполните следующую команду, заменив «C: \ path \ to \ file.iso» на путь к любому файлу, хэш которого вы хотите просмотреть:
Get-FileHash C: \ путь \ к \ file.iso
Генерация хеш-кода файла займет некоторое время, в зависимости от размера файла, используемого алгоритма и скорости диска, на котором находится файл.
По умолчанию команда покажет хеш SHA-256 для файла. Однако вы можете указать алгоритм хеширования, который хотите использовать, если вам нужен хэш MD5, SHA-1 или другой тип.
Выполните одну из следующих команд, чтобы указать другой алгоритм хеширования:
Get-FileHash C: \ путь \ к \ file.iso -Algorithm MD5
Get-FileHash C: \ путь \ к \ file.iso -Алгоритм SHA1
Get-FileHash C: \ путь \ к \ file.iso -Алгоритм SHA256
Get-FileHash C: \ путь \ к \ file.iso -Алгоритм SHA384
Get-FileHash C: \ путь \ к \ file.iso -Algorithm SHA512
Get-FileHash C: \ путь \ к \ file.iso -Алгоритм MACTripleDES
Get-FileHash C: \ путь \ к \ file.iso -Алгоритм RIPEMD160
Сравните результат хэш-функции с результатом, который вы ожидали увидеть. Если это то же значение, файл не был поврежден, изменен или иным образом изменен по сравнению с оригиналом.
macOS
macOS включает команды для просмотра различных типов хэшей. Чтобы получить к ним доступ, запустите окно терминала. Вы найдете его в Finder> Applications> Utilities> Terminal.
В
Смоки
команда показывает MD5-хеш файла:
md5 / путь / к / файлу
В
Шасум
команда по умолчанию показывает хеш SHA-1 файла. Это означает, что следующие команды идентичны:
shasum / путь / к / файлу
shasum -a 1 / путь / к / файлу
Чтобы показать хэш файла SHA-256, выполните следующую команду:
shasum -a 256 / путь / к / файлу
Linux
В Linux откройте Терминал и выполните одну из следующих команд, чтобы просмотреть хэш файла, в зависимости от того, какой тип хеша вы хотите просмотреть:
md5sum / путь / к / файлу
sha1sum / путь / к / файлу
sha256sum / путь / к / файлу
Некоторые хэши имеют криптографическую подпись для еще большей безопасности
Хотя хэши могут помочь вам подтвердить, что файл не был подделан, здесь есть еще один путь атаки. Злоумышленник может получить контроль над веб-сайтом дистрибутива Linux и изменить хеш-коды, которые появляются на нем, или злоумышленник может выполнить атаку типа "злоумышленник посередине" и изменить веб-страницу в пути, если вы обращались к веб-сайту через HTTP вместо зашифрованный HTTPS .
Вот почему современные дистрибутивы Linux часто предоставляют больше, чем хэши, перечисленные на веб-страницах. Они криптографически подписывают эти хэши, чтобы защитить себя от злоумышленников, которые могут попытаться изменить хэши. Вам нужно будет проверить криптографическую подпись, чтобы убедиться, что хэш-файл действительно подписан дистрибутивом Linux, если вы хотите быть абсолютно уверены в том, что хеш и файл не были подделаны.
СВЯЗАННЫЕ С: Как проверить контрольную сумму ISO-образа Linux и убедиться, что она не была изменена
Проверка криптографической подписи - более сложный процесс. Читать наше руководство по проверке ISO-образов Linux не было изменено с полными инструкциями.
Кредит изображения: Хорхе Стольфи / Викимедиа