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.
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
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.
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.
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¶
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 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.