Aktualizacja oprogramowania sprzętowego

Ten przewodnik opisuje jak zaktualizować firmware na Nitrokey 3.

Ostrzeżenie

Ten przewodnik jest nadal w fazie eksperymentalnej!

Informacja

Aktualizacje są możliwe tylko w przypadku oprogramowania sprzętowego w wersji 0.11 lub nowszej.

Ważne

Aktualizacja może doprowadzić do utraty danych, dlatego upewnij się, że masz włączone odpowiednie zapasowe metody logowania i/lub upewnij się, że Nitrokey Pro nie jest jedynym sposobem uwierzytelniania/2FA dla Twoich aplikacji/usług.

Jak zaktualizować

Ważne

Nigdy nie odłączaj Nitrokey 3 ani nie przerywaj procesu podczas aktualizacji, ponieważ w ten sposób Twoje urządzenie może stać się bezużyteczne!

  1. Upewnij się, że masz zainstalowaną najnowszą ` wersję pynitrokey`, sprawdź instrukcje instalacji dla swojego systemu operacyjnego.

  2. Pobierz najnowszy, stabilny ` obraz oprogramowania układowego <https://github.com/Nitrokey/nitrokey-pro-firmware/releases>`__.

    Ważne

    Do użytku produkcyjnego należy wybrać najnowszą stabilną wersję (czyli tylko wersje, które nie zawierają np. „pre-release” lub „RC”).

  3. Aby zastosować aktualizację, należy uruchomić program:

$ nitropy pro enable-update
$ nitropy pro update nitrokey-pro-firmware-<version>.bin

Alternatywna metoda aktualizacji

Alternatywnie do aktualizacji firmware’u można użyć dfu-util:

  1. Zainstaluj dfu-util

    Pliki binarne dla systemu Windows są dostępne pod adresem: * http://dfu-util.sourceforge.net/releases/

    Dla macOS binaria są dostępne przez Homebrew: * https://formulae.brew.sh/formula/dfu-util

    Tylko dla systemu macOS: Zainstaluj dfu-util przez Homebrew.

    brew install dfu-util
    
  2. Użyj aplikacji Nitrokey App v1.5-RC7 lub wyższej, aby zmienić tryb uruchamiania Nitrokey Pro na tryb aktualizacji.

  3. Teraz wykonaj następujące polecenie, aby zastosować aktualizację

    $ dfu-util -D update_binary.bin
    
  4. Tryb uruchamiania można teraz zmienić ponownie za pomocą aplikacji Nitrokey.

Rozwiązywanie problemów

Issue: libnitrokey nie można było znaleźć.

Jeśli libnitrokey nie zostanie znaleziony automatycznie, ścieżkę do niego można podać za pomocą zmiennej env:

$ env LIBNK_PATH=/libnk/path/libnitrokey.so nitropy pro enable-update

Aby znaleźć libnitrokey w swoim systemie, użyj polecenia:

$ locate libnitrokey.so

Sprawdź również, czy używasz właściwego miejsca na smartfonie.

Problem: Dostaję permission denied for /dev/hidrawX podczas aktualizacji.

To prawdopodobnie oznacza, że użytkownik nie ma wymaganych uprawnień do odczytu i zapisu urządzenia. Upewnij się, że skonfigurowałeś poprawne udev-rules. Pobierz ten zestaw udev-rules i umieść go w swoim katalogu udev rules (np. /etc/udev/rules.d). Następnie wyjmij Nitrokey 3 z gniazda USB i uruchom: udevadm control --reload-rules && udevadm trigger lub zrestartuj komputer. Po tym aktualizacja powinna działać bez problemu z uprawnieniami.