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. |
|
Een ingesteld ontgrendelingswachtwoord ontgrendelt de container automatisch tijdens het starten. |
|
De modus accepteert de waarden unix of unikernel, standaard staat unix. |
|
Het URL/IP-adres van de host waarop de etcd-service draait. |
|
De poort waarop de etcd-service draait, standaard 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. |
De container runtime geheimen zoals certificaten en privésleutels moeten worden ingesteld met de geheimenfunctie van Docker of Podman.
Geheime variabele |
Beschrijving |
---|---|
|
CA-certificaat dat het clientcertificaat en servercertificaat heeft ondertekend. |
|
Cliëntcertificaat voor verificatie van het NetHSM proces met de sleutelwaardenopslag. |
|
Cliëntsleutel voor authenticatie van het NetHSM proces met de sleutel-waarde opslag. |
|
Servercertificaat voor de API van de sleutelwaardenopslag. |
|
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
$ podman 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
$ 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
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.