Production Image

L’immagine di produzione viene fornita per ambienti di produzione con elevati requisiti di sicurezza. Richiede un archivio di valori-chiave etcd esterno, collegato tramite una connessione crittografata. Il processo NetHSM può essere eseguito con separazione basata sull’hardware (KVM) e crittografia specifica del dispositivo. L’immagine è distribuita come immagine OCI e può essere eseguita localmente con un esecutore compatibile come Docker e Podman.

Compared to the NetHSM hardware the following functions are not implemented at the software container’s REST API:

  • Network configuration

  • Reset di fabbrica

  • riavvio

  • Aggiornamento software

Il contenitore di produzione NetHSM è un prodotto riservato ai clienti paganti e può essere acquistato qui. L’immagine può essere ottenuta dal registro NetHSM di Nitrokey utilizzando le credenziali fornite dopo l’acquisto.

Avvertimento

La sicurezza del contenitore software NetHSM dipende fortemente dalla sicurezza della piattaforma. Una piattaforma compromessa potrebbe facilmente compromettere il contenitore software NetHSM che esegue. Inoltre, il TRNG non esiste, per cui l’entropia utilizzata e fornita da NetHSM dipende dall’entropia della piattaforma.

Politica di etichettatura

Le immagini nel repository sono contrassegnate con l’hash del commit Git e la versione del rilascio. L’ultima immagine è contrassegnata con latest.

Modes of Operation

L’immagine può essere eseguita in due modalità operative, ossia come processo Unix o come unikernel.

  • La modalità di processo Unix esegue NetHSM come processo in cima al sistema operativo.

  • 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 the NET_ADMIN capability. For security reasons we recommend the unikernel mode.

La modalità può essere impostata con la variabile d’ambiente MODE (si veda il capitolo successivo Configurazione).

Configurazione

The container can be configured with the following environment variables.

Variabile d’ambiente

Descrizione

Ipsec (solo Linux)

Abilita la registrazione estesa per NetHSM.

UNLOCKPW

Una passphrase di sblocco impostata sblocca automaticamente il contenitore durante l’avvio.

MODE

La modalità accetta i valori unix o unikernel; l’impostazione predefinita è unix.

ETCD_HOST

L’URL/indirizzo IP dell’host che esegue il servizio etcd.

ETCD_PORT

La porta che esegue il servizio etcd, predefinita a 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.

I segreti del runtime del contenitore, come i certificati e le chiavi private, devono essere impostati con la funzione segreti di Docker o Podman.

Variabile segreta

Descrizione

ca_cert

Certificato CA che ha firmato il certificato client e il certificato server.

etcd_client_cert

Certificato del client per l’autenticazione del processo NetHSM con il key-value store.

etcd_client_key

Chiave del client per l’autenticazione del processo NetHSM con il key-value store.

etcd_server_cert

Certificato del server per l’API dell’archivio di valori chiave.

etcd_server_key

Chiave del server per l’API dell’archivio di valori chiave.

device_key

Chiave del dispositivo del processo NetHSM. Per saperne di più sulla chiave del dispositivo, consultare il capitolo Terminologia e convenzioni nella progettazione del sistema.

Uso

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

È possibile ottenere un file di composizione fornito qui. Assicuratevi di avere a disposizione i file necessari per i segreti indicati nel file di composizione.

Per eseguire il contenitore senza il file compose è necessario fornire un etcd esterno. Qui si trova l’immagine del contenitore consigliata per etcd. Assicurarsi di passare le opzioni di configurazione, come descritto nel capitolo Configurazione.

Il contenitore può essere eseguito come segue.

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

Questo eseguirà NetHSM come processo Unix all’interno del contenitore ed esporrà l’API REST sulla porta 8443 tramite il protocollo HTTPS.

Importante

Il contenitore utilizza un certificato TLS autofirmato. Assicurarsi di usare le impostazioni di connessione corrette per stabilire una connessione. Per saperne di più, consultare il capitolo Introduzione a NetHSM.

Modalità Unikernel

È possibile ottenere un file di composizione fornito qui. Assicuratevi di avere a disposizione i file necessari per i segreti indicati nel file di composizione.

Per eseguire il contenitore senza il file compose è necessario fornire un etcd esterno. Qui si trova l’immagine del contenitore consigliata per etcd. Assicurarsi di passare le opzioni di configurazione, come descritto nel capitolo Configurazione.

Il contenitore può essere eseguito come segue.

$ 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

Questo eseguirà NetHSM come unikernel all’interno di una macchina virtuale KVM. Il contenitore esporrà l’API REST, tramite il protocollo HTTPS, sull’interfaccia tap200 con l’indirizzo IP 192.168.1.100 e la porta 8443.

Importante

Il contenitore utilizza un certificato TLS autofirmato. Assicurarsi di usare le impostazioni di connessione corrette per stabilire una connessione. Per saperne di più, consultare il capitolo Introduzione a NetHSM.