Перевірка цілісності прошивки OpenWrt

Сучасний Інтернет — це середовище з високим рівнем загроз. Зокрема, поширеними стали атаки на ланцюжки постачання (supply chain attacks), коли зловмисники компрометують процес завантаження програмного забезпечення чи оновлень. Тому вкрай важливо повністю перевіряти будь-яке ПЗ перед встановленням.

Для OpenWrt це означає розуміння структури веб-сервера, що надає бінарні файли. Приклад для релізу 21.02.0 (x86-64):

Ланцюжок перевірки:

  • GPG-ключ підписує файл sha256sums.asc
  • Цей підпис підтверджує достовірність файлу sha256sums
  • SHA256-хеш у sha256sums підтверджує цілісність кожного файлу прошивки

УВАГА: всі посилання повинні бути https:// , а не http:// — протокол HTTP легко перехопити чи підробити.

Щоб повністю перевірити файл прошивки, потрібно завантажити:

  • Файл прошивки
  • Файл sha256sums
  • Файл sha256sums.asc
  • Публічний GPG-ключ OpenWrt

Кроки:

  • Перевірити підпис файлу sha256sums
  • Використати його для перевірки SHA256-хешу файлу прошивки

Не рекомендується пропускати перевірку підпису, навіть якщо ви “впевнені”, що джерело надійне.

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

Публічні ключі GPG OpenWrt: OpenWrt GPG public keys and fingerprints

Увага: реліз 23.05 підписано застарілим ключем “PGP key for unattended snapshot builds (deprecated)”

# Завантаження файлів
cd /tmp
curl --progress-bar -o openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz \
    https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz
curl --progress-bar -o sha256sums \
    https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/sha256sums
curl --progress-bar -o sha256sums.asc \
    https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/sha256sums.asc
 
# Імпорт GPG-ключа
gpg --receive-keys 88CA59E88F681580
 
# Перевірка відбитка ключа
gpg --fingerprint 88CA59E88F681580
 
# Перевірка GPG-підпису
gpg --status-fd 1 --with-fingerprint --verify sha256sums.asc sha256sums 2>&1 | grep -e Good
 
# Перевірка SHA256-хешу
sha256sum --ignore-missing -c sha256sums 2> /dev/null | grep -e OK

Також є скрипт download-check-artifact.sh, який автоматизує процес. Перед запуском оновіть у скрипті сервер ключів із sks-keyservers.net на keyserver.ubuntu.com, keys.openpgp.org або pgp.mit.edu.

Сесія з використанням скрипта:

# ./download-check-artifact.sh https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz

1) Завантаження образу
2) Завантаження sha256sums
3) Завантаження підпису
4) Перевірка GPG-підпису
gpg: Good signature from "OpenWrt Build System (PGP key for 21.02 release builds)"
5) Перевірка SHA256
...: OK

Перевірка завершена!
Файл прошивки збережено в '~/Downloads/OpenWrt/...'

Див. також: Перевірка GPG-підпису

Перевірка хешу:

  1. Перейдіть у браузері до каталогу прошивки (обріжте URL до останнього `/`)
  2. Знайдіть файл, який ви завантажили
  3. Скопіюйте його SHA256-хеш із колонки

У Windows можна використовувати:

  • Вбудовану утиліту certutil (без графічного інтерфейсу)
  • Зовнішні програми, наприклад: MD5 & SHA Checksum Utility

Використання certutil:

certutil -hashfile "%USERPROFILE%\Downloads\openwrt-...img.gz" sha256

Вивід буде приблизно такий:

SHA256-Hash of file C:\Users\User\Downloads\openwrt.img.gz:
c4 12 12 b5 87 75 68 6a ...

Приберіть пробіли та порівняйте з SHA256 із сайту завантаження.

Див. також: Перевірка GPG-підпису

Інструкції аналогічні Windows:

  1. Відкрийте Terminal → перейдіть до каталогу з файлом
  2. Виконайте:
shasum -a 256 ./Downloads/openwrt-...img.gz
  1. Вивід буде такий:
c41212b58775...f09824  openwrt.img.gz
  1. Перевірте, що хеш збігається з тим, що вказано на сторінці завантаження
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/05/25 11:07
  • by vazaz