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.

Rispetto all’hardware NetHSM, le seguenti funzioni non sono implementate nell’API REST del contenitore software:

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

La modalità unikernel esegue NetHSM come guest in una macchina virtuale basata su KVM e fornisce una forte separazione dal sistema operativo host. Questa modalità è disponibile solo su Linux e richiede l’accesso ai nodi di dispositivo /dev/tun e /dev/kvm e alla funzionalità NET_ADMIN.

Importante

Per sicurezza, scegliere di eseguire il contenitore in modalità unikernel.

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.

client_cert

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

client_key

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

server_cert

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

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

Il contenitore di produzione supporta due modalità di funzionamento ` <container.html#Modes of Operation>` __. I capitoli seguenti descrivono come eseguire il contenitore con i file di composizione forniti o con il comando _run_.

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.