Сучасний Інтернет — це середовище з високим рівнем загроз. Зокрема, поширеними стали атаки на ланцюжки постачання (supply chain attacks), коли зловмисники компрометують процес завантаження програмного забезпечення чи оновлень. Тому вкрай важливо повністю перевіряти будь-яке ПЗ перед встановленням.
Для OpenWrt це означає розуміння структури веб-сервера, що надає бінарні файли. Приклад для релізу 21.02.0 (x86-64):
Ланцюжок перевірки:
УВАГА: всі посилання повинні бути **https:// **, а не http:// — протокол HTTP легко перехопити чи підробити.
Щоб повністю перевірити файл прошивки, потрібно завантажити:
Кроки:
Не рекомендується пропускати перевірку підпису, навіть якщо ви “впевнені”, що джерело надійне.
Ніколи не прошивайте пристрій, якщо підпис не вірний або хеш не збігається — це може зіпсувати пристрій або відкрити його для атак.
Публічні ключі 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-підпису
Перевірка хешу:
У Windows можна використовувати:
Використання 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:
shasum -a 256 ./Downloads/openwrt-...img.gz
c41212b58775...f09824 openwrt.img.gz