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 |
---|---|
|
Aktiverer udvidet logning for NetHSM. |
|
En indstillet oplåsningspassphrase låser automatisk containeren op under start. |
|
Tilstanden accepterer værdierne unix eller unikernel, standard er unix. |
|
URL/IP-adressen på den vært, der kører etcd-tjenesten. |
|
Den port, der kører etcd-tjenesten, standard er 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. |
Containerens runtime-hemmeligheder som certifikater og private nøgler skal indstilles med hemmelighedsfunktionen i Docker eller Podman.
Hemmelig variabel |
Beskrivelse |
---|---|
|
CA-certifikat, som har signeret klientcertifikatet og servercertifikatet. |
|
Klientcertifikat til godkendelse af NetHSM-processen med nøgleværdilageret. |
|
Klientnøgle til autentificering af NetHSM-processen med key-value store. |
|
Servercertifikat til API’en for nøgleværdilageret. |
|
Servernøgle til API’en for nøgleværdilageret. |
|
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
$ podman 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
$ 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
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.