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. |
|
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#
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
$ 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.