Production Image¶
Produktionsavbildningen är avsedd för produktionsmiljöer med höga säkerhetskrav. Den kräver en extern etcd key-value store som ansluts via en krypterad anslutning. NetHSM-processen kan köras med maskinvarubaserad separation (KVM) och enhetsspecifik kryptering. Avbildningen distribueras som en OCI-avbildning och kan köras lokalt med en kompatibel exekverare som Docker och Podman.
Compared to the NetHSM hardware the following functions are not implemented at the software container’s REST API:
Network configuration
Factory reset
Reboot
Software update
Produktionsbehållaren för NetHSM är en produkt endast för betalande kunder och kan köpas här. Avbildningen kan hämtas från Nitrokey NetHSM-registret med hjälp av de autentiseringsuppgifter som tillhandahålls efter köpet.
Varning
Säkerheten för NetHSM:s programvarucontainer är starkt beroende av plattformens säkerhet. En komprometterad plattform kan lätt kompromettera en NetHSM-programvarucontainer som den exekverar. Dessutom finns det ingen TRNG, vilket innebär att den entropi som används och tillhandahålls av NetHSM är beroende av plattformens entropi.
Policy för taggning¶
Bilderna i arkivet är taggade med Git commit hash och versionen av utgåvan. Den senaste bilden är taggad med latest
.
Modes of Operation¶
Avbildningen kan köras i två driftlägen, dvs. Unix-process eller unikernel.
Unix processläge kör NetHSM som en process ovanpå operativsystemet.
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.
Läget kan ställas in med hjälp av miljövariabeln MODE
(se nästa kapitel Konfiguration).
Konfiguration¶
The container can be configured with the following environment variables.
Miljövariabel |
Beskrivning |
---|---|
Ipsec (endast Linux) |
Aktiverar utökad loggning för NetHSM. |
|
En inställd lösenfras för upplåsning låser automatiskt upp behållaren under start. |
|
Läget kan ha värdena unix eller unikernel, standard är unix. |
|
URL/IP-adressen till den värd som kör etcd-tjänsten. |
|
Port som kör etcd-tjänsten, standardvärde är 2379. |
|
The path to the certificate of the CA (Certificate Authority) which signed the client certificate. |
|
The path to the certificate for the client authentication. |
|
The path to the secret key for the client authentication. |
Containerns runtime-hemligheter, t.ex. certifikat och privata nycklar, måste ställas in med hemlighetsfunktionen i Docker eller Podman.
Hemlig variabel |
Beskrivning |
---|---|
|
CA-certifikat som signerade klientcertifikatet och servercertifikatet. |
|
Klientcertifikat för autentisering av NetHSM-processen med nyckelvärdeslagret. |
|
Klientnyckel för autentisering av NetHSM-processen med nyckelvärdeslagret. |
|
Servercertifikat för API:et för nyckelvärdeslagret. |
|
Servernyckel för API:et för nyckelvärdeslagret. |
|
Enhetsnyckel för NetHSM-processen. Mer information om enhetsnyckeln finns i kapitel Terminologi och konventioner i systemdesignen. |
Användning¶
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.
Unix Mode¶
Du kan få en tillhandahållen compose-fil här. Se till att du har de nödvändiga filerna för de hemligheter som nämns i compose-filen tillgängliga.
För att köra containern utan compose-filen måste du själv tillhandahålla en extern etcd. Här hittar du den rekommenderade containeravbildningen för etcd. Se till att skicka konfigurationsalternativen, enligt beskrivningen i kapitlet Konfiguration.
Behållaren kan utföras på följande sätt.
$ 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
Detta kommer att köra NetHSM som en Unix-process inuti containern och exponera REST API på porten 8443 via HTTPS-protokollet.
Viktigt
Behållaren använder ett självsignerat TLS-certifikat. Se till att använda rätt inställningar för anslutning för att upprätta en anslutning. Se kapitel NetHSM-introduktion för att få mer information.
Unikernel-läge¶
Du kan få en tillhandahållen compose-fil här. Se till att du har de nödvändiga filerna för de hemligheter som nämns i compose-filen tillgängliga.
För att köra containern utan compose-filen måste du själv tillhandahålla en extern etcd. Här hittar du den rekommenderade containeravbildningen för etcd. Se till att skicka konfigurationsalternativen, enligt beskrivningen i kapitlet Konfiguration.
Behållaren kan utföras på följande sätt.
$ 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
Detta kommer att köra NetHSM som en unikernel inuti en KVM-virtuell maskin. Containern exponerar REST API, via HTTPS-protokollet, på gränssnittet tap200 med IP-adressen 192.168.1.100 och port 8443.
Viktigt
Behållaren använder ett självsignerat TLS-certifikat. Se till att använda rätt inställningar för anslutning för att upprätta en anslutning. Se kapitel NetHSM-introduktion för att få mer information.