Obraz produkcji

Obraz produkcyjny jest przeznaczony dla środowisk produkcyjnych o wysokich wymaganiach bezpieczeństwa. Wymaga zewnętrznego magazynu kluczy-wartości etcd, który jest połączony za pomocą szyfrowanego połączenia. Proces NetHSM może być wykonywany z separacją sprzętową (KVM) i szyfrowaniem specyficznym dla urządzenia. Obraz jest dystrybuowany jako obraz OCI i może być uruchamiany lokalnie za pomocą kompatybilnego programu wykonawczego, takiego jak Docker i Podman.

Compared to the NetHSM hardware the following functions are not implemented at the software container’s REST API:

  • Konfiguracja sieci

  • Reset fabryczny

  • Reboot

  • Aktualizacja oprogramowania

Kontener produkcyjny NetHSM jest produktem wyłącznie dla płacących klientów i można go zakupić tutaj. Obraz można uzyskać z rejestru Nitrokey NetHSM przy użyciu poświadczeń dostarczonych po zakupie.

Ostrzeżenie

Bezpieczeństwo kontenera oprogramowania NetHSM w dużym stopniu zależy od bezpieczeństwa platformy. Naruszona platforma może łatwo narazić na szwank wykonywany przez nią kontener oprogramowania NetHSM. Ponadto TRNG nie istnieje, więc entropia używana i dostarczana przez NetHSM zależy od entropii platformy.

Polityka oznaczania

Obrazy w repozytorium są oznaczone hashem zatwierdzenia Git i wersją wydania. Najnowszy obraz jest oznaczony latest.

Tryby działania

Obraz może być uruchamiany w dwóch trybach pracy, tj. procesu uniksowego lub unikernela.

  • Tryb procesu Unix uruchamia NetHSM jako proces na wierzchu systemu operacyjnego.

  • The unikernel mode runs NetHSM as a guest in a KVM based virtual machine and provides strong separation from the host operating system. This mode is only available on Linux and requires access to the /dev/tun and /dev/kvm device nodes and the NET_ADMIN capability. For security reasons we recommend the unikernel mode.

Tryb można ustawić za pomocą zmiennej środowiskowej MODE (patrz następny rozdział Konfiguracja).

Konfiguracja

Kontener można skonfigurować za pomocą następujących zmiennych środowiskowych.

Zmienna środowiskowa

Opis

Zmienna środowiskowa

Włącza rozszerzone rejestrowanie dla NetHSM.

UNLOCKPW

Ustawione hasło odblokowujące automatycznie odblokowuje kontener podczas uruchamiania.

MODE

Tryb przyjmuje wartości unix lub unikernel, domyślnie unix.

Zmienna środowiskowa

Adres URL/IP hosta z uruchomioną usługą etcd.

Zmienna środowiskowa

Port uruchamiający usługę etcd, domyślnie 2379.

ETCD_CA_CERT

Ścieżka do certyfikatu urzędu certyfikacji, który podpisał certyfikat klienta.

ETCD_CLIENT_CERT

Ścieżka do certyfikatu uwierzytelniania klienta.

ETCD_CLIENT_KEY

Ścieżka do tajnego klucza uwierzytelniania klienta.

Sekrety środowiska uruchomieniowego kontenera, takie jak certyfikaty i klucze prywatne, muszą być ustawione za pomocą funkcji sekretów Dockera lub Podmana.

Tajna zmienna

Opis

ca_cert

Certyfikat CA, który podpisał certyfikat klienta i certyfikat serwera.

etcd_client_cert

Certyfikat klienta służący do uwierzytelniania procesu NetHSM za pomocą magazynu klucz-wartość.

etcd_client_key

Klucz klienta służący do uwierzytelniania procesu NetHSM za pomocą magazynu klucz-wartość.

etcd_server_cert

Certyfikat serwera dla interfejsu API magazynu klucz-wartość.

etcd_server_key

Klucz serwera dla interfejsu API magazynu klucz-wartość.

device_key

Klucz urządzenia procesu NetHSM. Więcej informacji na temat klucza urządzenia można znaleźć w rozdziale Terminologia i konwencje w projekcie systemu.

Zastosowanie

The production container supports two modes of operation. The following chapters describe how to run the container with the provided compose files or with the run command.

Tryb Unix

Udostępniony plik kompilacji można uzyskać tutaj. Upewnij się, że masz dostępne niezbędne pliki dla sekretów wymienionych w pliku compose.

Aby uruchomić kontener bez pliku compose, należy samodzielnie dostarczyć zewnętrzny obraz etcd. Tutaj można znaleźć zalecany obraz kontenera dla etcd. Upewnij się, że przekazałeś opcje konfiguracyjne, jak opisano w rozdziale Konfiguracja.

Kontener może być wykonany w następujący sposób.

$ docker run -ti --rm -p 8443:8443 registry.git.nitrokey.com/distribution/nethsm:latest

Spowoduje to uruchomienie NetHSM jako procesu uniksowego wewnątrz kontenera i udostępnienie interfejsu API REST na porcie 8443 za pośrednictwem protokołu HTTPS.

Ważne

Kontener używa samopodpisanego certyfikatu TLS. Aby nawiązać połączenie, należy użyć odpowiednich ustawień połączenia. Więcej informacji można znaleźć w rozdziale NetHSM introduction.

Tryb Unikernel

Udostępniony plik kompilacji można uzyskać pod adresem tutaj. Upewnij się, że masz dostępne niezbędne pliki dla sekretów wymienionych w pliku compose.

Aby uruchomić kontener bez pliku compose, należy samodzielnie dostarczyć zewnętrzny obraz etcd. Tutaj można znaleźć zalecany obraz kontenera dla etcd. Upewnij się, że przekazałeś opcje konfiguracyjne, jak opisano w rozdziale Konfiguracja.

Kontener może być wykonany w następujący sposób.

$ docker run -ti --rm -p 8443:8443 --device /dev/net/tun --device /dev/kvm --cap-add=NET_ADMIN -e "MODE=unikernel" registry.git.nitrokey.com/distribution/nethsm:latest

Spowoduje to uruchomienie NetHSM jako unikernel wewnątrz maszyny wirtualnej KVM. Kontener udostępni REST API, za pośrednictwem protokołu HTTPS, na interfejsie tap200 z adresem IP 192.168.1.100 i portem 8443.

Ważne

Kontener używa samopodpisanego certyfikatu TLS. Aby nawiązać połączenie, należy użyć odpowiednich ustawień połączenia. Więcej informacji można znaleźć w rozdziale NetHSM introduction.