Что такое хэши MD5, SHA-1 и SHA-256 и как их проверить?

Иногда вы видите хэши MD5, SHA-1 или SHA-256, отображаемые вместе с загрузками во время ваших интернет-путешествий, но на самом деле не знаете, что это такое. Эти, казалось бы, случайные строки текста позволяют вам убедиться, что загружаемые вами файлы не повреждены и не изменены. Вы можете сделать это с помощью команд, встроенных в Windows, macOS и Linux.

Как работают хеши и как они используются для проверки данных

Хэши – это продукты криптографических алгоритмов, предназначенных для создания строки символов. Часто эти строки имеют фиксированную длину независимо от размера входных данных. Посмотрите на приведенный выше график, и вы увидите, что и «Fox», и «Red Fox перепрыгивают через синюю собаку» дают одинаковую длину.

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

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: \ path \ to \ file.iso 

Генерирование хэша файла займет некоторое время, в зависимости от размера файла, используемого вами алгоритма и скорости диска, на котором находится файл.

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

Выполните одну из следующих команд, чтобы указать другой алгоритм хеширования:

 Get-FileHash C: \ path \ to \ file.iso -Algorithm MD5 
 Get-FileHash C: \ path \ to \ file.iso -Ahgorithm SHA1 
 Get-FileHash C: \ path \ to \ file.iso -Algorithm SHA256 
 Get-FileHash C: \ path \ to \ file.iso -Ahgorithm SHA384 
 Get-FileHash C: \ path \ to \ file.iso -Algorithm SHA512 
 Get-FileHash C: \ path \ to \ file.iso -Algorithm MACTripleDES 
 Get-FileHash C: \ path \ to \ file.iso -Algorithm RIPEMD160 

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

Macos

В macOS есть команды для просмотра различных типов хэшей. Чтобы получить к ним доступ, запустите окно терминала. Вы найдете его в Finder> Приложения> Утилиты> Терминал.

Команда md5 показывает MD5-хеш файла:

 md5/path/to/file 

Команда shasum показывает хэш SHA-1 файла по умолчанию. Это означает, что следующие команды идентичны:

 shasum/path/to/file 
 shasum -a 1/путь/к/файлу 

Чтобы отобразить хэш файла SHA-256, выполните следующую команду:

 shasum -a 256/путь/к/файлу 

Linux

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

 md5sum/path/to/file 
 sha1sum/path/to/file 
 sha256sum/path/to/file 

Некоторые хеши криптографически подписаны для еще большей безопасности

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

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

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

Изображение предоставлено: Хорхе Столфи/Викимедиа

Оцените статью
TutoryBird.Ru
Добавить комментарий