Production Image#

Produktionsbilledet er beregnet til produktionsmiljøer med høje sikkerhedskrav. Det kræver et eksternt etcd key-value store, som er forbundet via en krypteret forbindelse. NetHSM-processen kan udføres med hardwarebaseret adskillelse (KVM) og enhedsspecifik kryptering. Billedet distribueres som OCI-billede og kan køres lokalt med en kompatibel executor som Docker og Podman.

Sammenlignet med NetHSM-hardwaren er følgende funktioner ikke implementeret i softwarecontainerens REST API:

  • Network configuration

  • Factory reset

  • Reboot

  • Software update

NetHSM-produktionscontaineren er kun et produkt for betalende kunder og kan købes her. Billedet kan hentes fra Nitrokey NetHSM registry ved hjælp af de legitimationsoplysninger, der gives efter købet.

Advarsel

Sikkerheden i NetHSM-softwarecontaineren afhænger i høj grad af platformens sikkerhed. En kompromitteret platform kan nemt kompromittere en NetHSM-softwarecontainer, som den udfører. Derudover findes TRNG ikke, så den entropi, der bruges og leveres af NetHSM, afhænger af platformens entropi.

Politik for tagging#

Billederne i depotet er tagget med Git commit-hash og versionen af udgivelsen. Det seneste billede er tagget med latest.

Modes of Operation#

Billedet kan køres i to driftstilstande, dvs. Unix-proces eller unikernel.

Unix-procestilstanden kører NetHSM som en proces oven på operativsystemet.

Unikernel-tilstanden kører NetHSM som gæst i en KVM-baseret virtuel maskine og giver en stærk adskillelse fra værtsoperativsystemet. Denne tilstand er kun tilgængelig på Linux og kræver adgang til enhedsnoderne /dev/tun og /dev/kvm og kapaciteten NET_ADMIN.

Vigtigt

Af sikkerhedshensyn skal du vælge at køre containeren i unikernel-tilstand.

Tilstanden kan indstilles med miljøvariablen MODE (se næste kapitel Konfiguration).

Konfiguration#

The container can be configured with the following environment variables.

Miljøvariabel

Beskrivelse

DEBUG_LOG

Aktiverer udvidet logning for NetHSM.

UNLOCKPW

En indstillet oplåsningspassphrase låser automatisk containeren op under start.

MODE

Tilstanden accepterer værdierne unix eller unikernel, standard er unix.

ETCD_HOST

URL/IP-adressen på den vært, der kører etcd-tjenesten.

ETCD_PORT

Den port, der kører etcd-tjenesten, standard er 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.

Containerens runtime-hemmeligheder som certifikater og private nøgler skal indstilles med hemmelighedsfunktionen i Docker eller Podman.

Hemmelig variabel

Beskrivelse

ca_cert

CA-certifikat, som har signeret klientcertifikatet og servercertifikatet.

client_cert

Klientcertifikat til godkendelse af NetHSM-processen med nøgleværdilageret.

client_key

Klientnøgle til autentificering af NetHSM-processen med key-value store.

server_cert

Servercertifikat til API’en for nøgleværdilageret.

server_key

Servernøgle til API’en for nøgleværdilageret.

device_key

Enhedsnøgle for NetHSM-processen. For at få mere at vide om enhedsnøglen henvises til kapitel Terminologi og konventioner i systemdesignet.

Anvendelse#

Produktionscontaineren understøtter to driftstilstande. De følgende kapitler beskriver, hvordan man kører containeren med de medfølgende compose-filer eller med kommandoen _run_.

Unix Mode#

Du kan få en medfølgende compose-fil her. Sørg for, at du har de nødvendige filer til de hemmeligheder, der er nævnt i compose-filen, til rådighed.

For at køre containeren uden compose-filen skal du selv sørge for en ekstern etcd. Her finder du det anbefalede container-image til etcd. Sørg for at videregive konfigurationsindstillingerne som beskrevet i kapitlet Konfiguration.

Beholderen kan udføres på følgende måde.

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

Dette vil køre NetHSM som en Unix-proces inde i containeren og eksponere REST-API’en på port 8443 via HTTPS-protokollen.

Vigtigt

Beholderen bruger et selvsigneret TLS-certifikat. Sørg for at bruge de korrekte forbindelsesindstillinger for at oprette en forbindelse. Se kapitel NetHSM-introduktion for at få mere at vide.

Unikernel-tilstand#

Du kan få en medfølgende compose-fil her. Sørg for, at du har de nødvendige filer til de hemmeligheder, der er nævnt i compose-filen, til rådighed.

For at køre containeren uden compose-filen skal du selv sørge for en ekstern etcd. Her finder du det anbefalede container-image til etcd. Sørg for at videregive konfigurationsindstillingerne som beskrevet i kapitlet Konfiguration.

Beholderen kan udføres på følgende måde.

$ 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

Dette vil køre NetHSM som en unikernel inde i en virtuel KVM-maskine. Containeren vil eksponere REST-API’en via HTTPS-protokollen på grænsefladen tap200 med IP-adressen 192.168.1.100 og port 8443.

Vigtigt

Beholderen bruger et selvsigneret TLS-certifikat. Sørg for at bruge de korrekte forbindelsesindstillinger for at oprette en forbindelse. Se kapitel NetHSM-introduktion for at få mere at vide.