Weryfikacja pobranego pliku

Router GADNET wykonuje te kontrole automatycznie. Poniższa instrukcja pozwala powtórzyć je ręcznie dla manifestu lub pakietu, który już masz, np. skopiowanego z routera. Weryfikacja nie wymaga zaufania do tego serwera.

1. Klucz publiczny wydań

Użyj kopii zapisanej na własnym routerze (/etc/gadnet/release-public-key-slhdsa.pem) i porównaj jej odcisk z tabelą na stronie Klucze. Klucz musi pochodzić z innego źródła niż sprawdzany plik: klucz i plik pobrane z jednego przejętego źródła zawsze będą do siebie pasować.

2. Sprawdzenie podpisu

openssl pkeyutl -verify -pubin \
    -inkey release-public-key-slhdsa.pem \
    -rawin -in manifest.json \
    -sigfile manifest.json.slhdsa.sig

openssl pkeyutl -verify -pubin \
    -inkey release-public-key-slhdsa.pem \
    -rawin -in pakiet.tar.gz \
    -sigfile pakiet.tar.gz.slhdsa.sig

Przykłady są przeznaczone dla powłoki Linux (także WSL w Windows) i OpenSSL 3.5 lub nowszego. Zastąp przykładowe nazwy nazwami swoich plików. Najpierw sprawdź manifest, potem pakiet. Poprawny podpis daje komunikat Signature Verified Successfully; przy błędzie nie używaj pliku. Podpis potwierdza pochodzenie, a nie brak błędów lub podatności.

3. Skrót i rozmiar pakietu

sha256sum pakiet.tar.gz
wc -c < pakiet.tar.gz

Porównaj skrót pakietu i liczbę bajtów z jego polami sha256 i size w zweryfikowanym manifeście. Ten krok dotyczy pakietu; nie szukaj skrótu manifestu wewnątrz niego samego. Nie ufaj sumom kontrolnym z niezweryfikowanego dokumentu.

Pliki wydań są udostępniane wyłącznie routerom GADNET, dlatego nie można ich pobrać z tej strony ani przeglądarką, ani poleceniem curl. Powyższe polecenia służą do sprawdzenia plików, które już masz, na przykład skopiowanych z routera.

Adres serwera aktualizacji w routerze

# /etc/gadnet/system.conf
UPDATE_MANIFEST_URL=https://updates.gadnet.pl/v1/manifest.json

Routery domyślnie korzystają z tego adresu przez HTTPS; inne protokoły są odrzucane. Zmiana adresu nie wyłącza sprawdzania podpisów. Inny serwer może dostarczyć pliki, ale bez zaufanego klucza prywatnego nie nada im poprawnego podpisu. Błędny adres może uniemożliwić aktualizacje. HTTPS chroni informacje przesyłane po drodze, w tym zapytania o wersję oprogramowania.

Czego weryfikacja nie gwarantuje

Poprawny podpis potwierdza pochodzenie wydania, ale nie jego aktualność. Serwer może wstrzymywać aktualizacje, udostępniając stary, nadal poprawnie podpisany manifest. Router odrzuca manifest ze znacznikiem generated starszym niż ostatnio przyjęty lub przekraczającym maksymalny wiek — domyślnie 90 dni. Panel pokazuje czas ostatniego udanego sprawdzenia. Jeśli ta data nie zmienia się, sprawdź działanie aktualizacji.