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.

Jämfört med NetHSM-maskinvaran är följande funktioner inte implementerade i programvarucontainerns 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.

Unikernel-läget kör NetHSM som gäst i en KVM-baserad virtuell maskin och ger en stark separation från värdoperativsystemet. Det här läget är endast tillgängligt på Linux och kräver åtkomst till enhetsnoderna /dev/tun och /dev/kvm samt kapaciteten NET_ADMIN.

Viktigt

Av säkerhetsskäl väljer du att köra containern i unikernelläge.

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.

UNLOCKPW

En inställd lösenfras för upplåsning låser automatiskt upp behållaren under start.

MODE

Läget kan ha värdena unix eller unikernel, standard är unix.

ETCD_HOST

URL/IP-adressen till den värd som kör etcd-tjänsten.

ETCD_PORT

Port som kör etcd-tjänsten, standardvärde är 2379.

ETCD_CA_CERT

The path to the certificate of the CA (Certificate Authority) which signed the client certificate.

ETCD_CLIENT_CERT

The path to the certificate for the client authentication.

ETCD_CLIENT_KEY

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_cert

CA-certifikat som signerade klientcertifikatet och servercertifikatet.

client_cert

Klientcertifikat för autentisering av NetHSM-processen med nyckelvärdeslagret.

client_key

Klientnyckel för autentisering av NetHSM-processen med nyckelvärdeslagret.

server_cert

Servercertifikat för API:et för nyckelvärdeslagret.

server_key

Servernyckel för API:et för nyckelvärdeslagret.

device_key

Enhetsnyckel för NetHSM-processen. Mer information om enhetsnyckeln finns i kapitel Terminologi och konventioner i systemdesignen.

Användning#

Produktionscontainern stöder två driftsätt. I följande kapitel beskrivs hur du kör behållaren med de medföljande compose-filerna eller med kommandot _run_.

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

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

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.