Як перевірити цілісність файлу завантаженого пакета в Linux

Частина використання операційної системи на основі Linux використовує менеджер пакетів вашого дистрибутива Linux для завантаження та встановлення нового програмного забезпечення. Наприклад, на основі розподілу CentOS / RHEL, репозиторії EPEL забезпечують вам все, що вам потрібно. І часто, коли попередньо встановлене сховище недоступне, його можна вручну додати, а файли надійно завантажуватимуться після перевірки ключа за допомогою ключа.

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

Перевірка цілісності файлів з хешами

Але як ми знаємо, що файли, які ми завантажуємо, дійсно є файлом, створеним творцем? Що робити, якщо хтось зловмисно звернувся до серверів і розмістив там свій власний файл? Ми могли б в кінцевому підсумку завантажити, а потім використовувати файл, який може бути глибоко порушений!

Іноді файли широко розповсюджуються через сайти 3rd, наприклад SourceForge. Нам потрібен спосіб перевірити, що файл, який ми завантажуємо, не підроблений та перепакований. Це де хеш приходять.

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

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

Тепер подивимося, як перевірити хеш.

Генерування та порівняння хешей

Цей веб-сайт пропонує алгоритми хешування twp - SHA256 і SHA512. SHA256 досить хороший для наших цілей. Коли ви натискаєте посилання "SHA256", ви отримуєте таке:

Символи 64, які ви бачите тут, складають хеш SHA256 для файлу, який ми хочемо завантажити. Щоб підтвердити це, спочатку завантажимо сам файл за допомогою wget, як показано тут:

Потім ми використовуємо наступну команду в нашому терміналі для створення хеша SHA256:

sha256sum [ім'я файлу]

Замініть [filename] на ім'я файлу, який ви щойно завантажили. Він генерує рядок символів 64, наприклад:

Тепер нам потрібно лише порівняти рядок символів, який він генерує, з тим, який надає веб-сайт на другому знімку екрана.

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

sha256sum [ім'я файлу] | awk '{print toupper ($ 1)}' | fold -w8

І ми отримуємо такий висновок:

За допомогою цієї команди набагато простіше порівняти довгий рядок символів 64.

Інші алгоритми контрольної суми

Різні веб-сайти мають різні алгоритми хешування для порівняння. У наведеному вище прикладі ми розглянули SHA256. Нижче наведено команди для інших користувачів:

SHA256 - sha256sum (використовується вище)
SHA512 - sha512sum
MD5 - md5sum

Якщо вам потрібно обчислити хеш для іншого алгоритму, просто замініть «sha256sum» у прикладах вище з потрібною вам командою. Однак майте на увазі, що хеш MD5 вже деякий час є небезпечним. Ви можете використовувати те, що називається «сіль» для подальшого поліпшення безпеки хешу SHA - однак, неможливо пройти повз, тому не рекомендується захищати паролі та особисті дані.

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

Оригінал статті

Залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.