Production Image#

De productie-image is bedoeld voor productieomgevingen met hoge beveiligingseisen. Het vereist een externe etcd key-value store die verbonden is via een versleutelde verbinding. Het NetHSM proces kan worden uitgevoerd met hardware-gebaseerde scheiding (KVM) en apparaatspecifieke versleuteling. Het image wordt gedistribueerd als OCI image en kan lokaal worden uitgevoerd met een compatibele executor zoals Docker en Podman.

Vergeleken met de NetHSM-hardware zijn de volgende functies niet geïmplementeerd in de REST API van de softwarecontainer:

  • Network configuration

  • Factory reset

  • Reboot

  • Software update

De NetHSM productiecontainer is een product voor betalende klanten en kan hier worden gekocht ` <https://www.nitrokey.com/contact>` __. De image kan worden verkregen van Nitrokey NetHSM register met behulp van de referenties die na aankoop worden verstrekt.

Waarschuwing

De veiligheid van de NetHSM softwarecontainer hangt sterk af van de veiligheid van het platform. Een gecompromitteerd platform kan gemakkelijk een NetHSM software container die het uitvoert compromitteren. Daarnaast bestaat de TRNG niet zodat de entropie die gebruikt en geleverd wordt door de NetHSM afhangt van de entropie van het platform.

Tagging-beleid#

De afbeeldingen in het archief worden gelabeld met de Git commit hash en de versie van de uitgave. De nieuwste image is gelabeld met latest.

Modes of Operation#

De image kan in twee modi draaien, namelijk Unix proces of unikernel.

De Unix procesmodus draait NetHSM als een proces bovenop het besturingssysteem.

De unikernel-modus draait NetHSM als gast in een virtuele machine op basis van KVM en biedt een sterke scheiding van het host-besturingssysteem. Deze modus is alleen beschikbaar op Linux en vereist toegang tot de /dev/tun en /dev/kvm apparaatknooppunten en de NET_ADMIN mogelijkheid.

Belangrijk

Kies er voor de veiligheid voor om de container in unikernel modus te draaien.

De modus kan worden ingesteld met de omgevingsvariabele MODE (zie volgende hoofdstuk Configuratie).

Configuratie#

The container can be configured with the following environment variables.

Omgevingsvariabele

Beschrijving

DEBUG_LOG

Schakelt uitgebreide logboekregistratie voor NetHSM in.

UNLOCKPW

Een ingesteld ontgrendelingswachtwoord ontgrendelt de container automatisch tijdens het starten.

MODE

De modus accepteert de waarden unix of unikernel, standaard staat unix.

ETCD_HOST

Het URL/IP-adres van de host waarop de etcd-service draait.

ETCD_PORT

De poort waarop de etcd-service draait, standaard 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.

De container runtime geheimen zoals certificaten en privésleutels moeten worden ingesteld met de geheimenfunctie van Docker of Podman.

Geheime variabele

Beschrijving

ca_cert

CA-certificaat dat het clientcertificaat en servercertificaat heeft ondertekend.

client_cert

Cliëntcertificaat voor verificatie van het NetHSM proces met de sleutelwaardenopslag.

client_key

Cliëntsleutel voor authenticatie van het NetHSM proces met de sleutel-waarde opslag.

server_cert

Servercertificaat voor de API van de sleutelwaardenopslag.

server_key

Server sleutel voor de API van de sleutelwaarde opslag.

device_key

De apparaatsleutel van het NetHSM proces. Raadpleeg het hoofdstuk Terminologie en conventies in het systeemontwerp voor meer informatie over de apparaatsleutel.

Gebruik#

De productiecontainer ondersteunt twee werkingsmodi. In de volgende hoofdstukken wordt beschreven hoe de container wordt uitgevoerd met de meegeleverde samenstelbestanden of met het commando _run_.

Unix Mode#

Je kunt een meegeleverd samenstelbestand hier. Zorg ervoor dat je de benodigde bestanden voor de geheimen, genoemd in het compose bestand, beschikbaar hebt.

Om de container te draaien zonder het compose bestand moet je zelf een externe etcd voorzien. Hier vind je de aanbevolen container image voor etcd. Zorg ervoor dat je de configuratieopties doorgeeft, zoals beschreven in hoofdstuk Configuratie.

De container kan als volgt worden uitgevoerd.

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

Dit zal NetHSM draaien als een Unix proces in de container en de REST API op poort 8443 beschikbaar maken via het HTTPS protocol.

Belangrijk

De container gebruikt een zelfondertekend TLS-certificaat. Zorg ervoor dat u de juiste verbindingsinstellingen gebruikt om een verbinding tot stand te brengen. Zie hoofdstuk NetHSM introductie voor meer informatie.

Unikernel-modus#

Je kunt een meegeleverd samenstelbestand hier. Zorg ervoor dat je de benodigde bestanden voor de geheimen, genoemd in het compose bestand, beschikbaar hebt.

Om de container te draaien zonder het compose bestand moet je zelf een externe etcd voorzien. Hier vind je de aanbevolen container image voor etcd. Zorg ervoor dat je de configuratieopties doorgeeft, zoals beschreven in hoofdstuk Configuratie.

De container kan als volgt worden uitgevoerd.

$ 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

Dit zal NetHSM draaien als een unikernel binnen een KVM virtuele machine. De container zal de REST API, via het HTTPS protocol, beschikbaar maken op de interface tap200 met het IP adres 192.168.1.100 en poort 8443.

Belangrijk

De container gebruikt een zelfondertekend TLS-certificaat. Zorg ervoor dat u de juiste verbindingsinstellingen gebruikt om een verbinding tot stand te brengen. Zie hoofdstuk NetHSM introductie voor meer informatie.