Домашня » як » Що таке хеші MD5, SHA-1 і SHA-256 і як їх перевірити?

    Що таке хеші MD5, SHA-1 і SHA-256 і як їх перевірити?

    Іноді ви побачите хеші MD5, SHA-1 або SHA-256, що відображаються разом із завантаженнями під час подорожей в Інтернеті, але насправді невідомо, що вони є. Ці, здавалося б, випадкові рядки тексту дозволяють перевірити, чи завантажені вами файли не пошкоджені або підроблені. Це можна зробити за допомогою команд, вбудованих у Windows, MacOS і Linux.

    Як працює хеш і як вони використовуються для перевірки даних

    Хеші - це продукти криптографічних алгоритмів, призначених для створення рядків символів. Часто ці рядки мають фіксовану довжину, незалежно від розміру вхідних даних. Погляньте на вищевказану діаграму, і ви побачите, що як "Фокс", так і "Червона лисиця перестрибує через синю собаку" дають такий же вихідний результат.

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

    MD5, SHA-1 і SHA-256 є різними хеш-функціями. Творці програмного забезпечення часто приймають файл для завантаження, наприклад, файл .iso Linux, або навіть файл .exe у Windows, і запускають його за допомогою хеш-функції. Потім вони пропонують офіційний список хешей на своїх веб-сайтах.

    Таким чином, ви можете завантажити файл, а потім запустити хеш-функцію, щоб підтвердити, що у вас є справжній, оригінальний файл і що він не був пошкоджений під час процесу завантаження. Як ми бачили вище, навіть невелика зміна файлу різко змінить хеш.

    Вони також можуть бути корисними, якщо у вас є файл, який ви отримали від неофіційного джерела, і ви хочете підтвердити, що він є законним. Скажімо, у вас є файл .ISO з Linux, який ви отримали звідкись, і ви хочете підтвердити, що він не був підроблений. Ви можете переглянути хеш конкретного файлу ISO онлайн на веб-сайті дистрибутива Linux. Потім ви можете запустити його через хеш-функцію на вашому комп'ютері та підтвердити, що він відповідає значенням хешу, який ви очікуєте. Це підтверджує, що у вас є той самий файл, який пропонується для завантаження на веб-сайті дистрибутива Linux, без будь-яких змін.

    Зауважимо, що «колізії» були знайдені з функціями MD5 і SHA-1. Це декілька різних файлів - наприклад, безпечний файл і зловмисний файл, які призводять до того ж хешу MD5 або SHA-1. Тому ви повинні віддавати перевагу SHA-256, коли це можливо.

    Як порівняти хеш-функції на будь-якій операційній системі

    Маючи це на увазі, давайте подивимося, як перевірити хеш завантаженого файлу, і порівняти його з тією, яку ви отримали. Ось методи для Windows, MacOS і Linux. Хеші завжди будуть ідентичними, якщо ви використовуєте ту ж саму функцію хешування на одному файлі. Не має значення, яку операційну систему ви використовуєте.

    Windows

    Цей процес можливий без будь-якого стороннього програмного забезпечення на Windows завдяки PowerShell.

    Щоб розпочати, відкрийте вікно PowerShell, відкривши ярлик "Windows PowerShell" у меню "Пуск".

    Виконайте наступну команду, замінивши "C: path.iso" на шлях до будь-якого файлу, який ви хочете переглянути хеш:

    Get-FileHash C: шлях до файлу

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

    За замовчуванням команда покаже хеш SHA-256 для файлу. Однак, ви можете вказати алгоритм хешування, який ви хочете використовувати, якщо вам потрібен MD5, SHA-1 або інший тип хешу.

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

    Get-FileHash C: файл.iso -Algorithm MD5
    Get-FileHash C: шлях до.iso -Algorithm SHA1
    Get-FileHash C: шлях до.iso -Algorithm SHA256
    Get-FileHash C: шлях до.iso -Algorithm SHA384
    Get-FileHash C: шлях до.iso -Algorithm SHA512
    Get-FileHash C: шлях до.iso -Algorithm MACTripleDES
    Get-FileHash C: шлях до.iso -Algorithm RIPEMD160

    Порівняйте результат хеш-функції з результатом, який ви очікували побачити. Якщо це те ж саме значення, файл не був пошкоджений, підроблений або змінений за іншим чином від оригіналу.

    macOS

    macOS включає команди для перегляду різних типів хешей. Щоб отримати доступ до них, запустіть вікно Терміналу. Його можна знайти у вікні Finder> Applications> Utilities> Terminal.

    The md5 команда показує хеш MD5 файлу:

    md5 / path / to / file

    The shasum команда показує SHA-1 хеш файлу за замовчуванням. Це означає, що такі команди однакові:

    shasum / path / to / file
    shasum -a 1 / шлях / до / файл

    Щоб показати хеш SHA-256 файлу, виконайте таку команду:

    shasum -a 256 / шлях / до / файл

    Linux

    У Linux зверніться до терміналу та виконайте одну з наступних команд, щоб переглянути хеш для файлу, залежно від того, який тип хешу потрібно переглянути:

    md5sum / шлях / до / файл
    sha1sum / path / to / file
    sha256sum / path / to / file

    Деякі хеші криптографічно підписані для ще більшої безпеки

    Хоча хеші можуть допомогти вам підтвердити, що файл не змінювався, тут ще є один шлях атаки. Зловмисник може отримати контроль над веб-сайтом дистрибутива Linux і змінити хеші, які з'являються на ньому, або зловмисник може виконати атаку man-in-the-middle і змінити веб-сторінку в дорозі, якщо ви отримували доступ до веб-сайту через HTTP, а не зашифрованого HTTPS.

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

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

    Зображення: Jorge Stolfi / Wikimedia