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 theNET_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. |
|
Ustawione hasło odblokowujące automatycznie odblokowuje kontener podczas uruchamiania. |
|
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. |
|
Ścieżka do certyfikatu urzędu certyfikacji, który podpisał certyfikat klienta. |
|
Ścieżka do certyfikatu uwierzytelniania klienta. |
|
Ś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 |
---|---|
|
Certyfikat CA, który podpisał certyfikat klienta i certyfikat serwera. |
|
Certyfikat klienta służący do uwierzytelniania procesu NetHSM za pomocą magazynu klucz-wartość. |
|
Klucz klienta służący do uwierzytelniania procesu NetHSM za pomocą magazynu klucz-wartość. |
|
Certyfikat serwera dla interfejsu API magazynu klucz-wartość. |
|
Klucz serwera dla interfejsu API magazynu klucz-wartość. |
|
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
$ podman 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
$ podman 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.