Production Image#

Η εικόνα παραγωγής παρέχεται για περιβάλλοντα παραγωγής με υψηλές απαιτήσεις ασφαλείας. Απαιτεί έναν εξωτερικό αποθηκευτή etcd key-value store, ο οποίος συνδέεται μέσω κρυπτογραφημένης σύνδεσης. Η διαδικασία NetHSM μπορεί να εκτελεστεί με διαχωρισμό βάσει υλικού (KVM) και κρυπτογράφηση βάσει συσκευής. Η εικόνα διανέμεται ως εικόνα OCI και μπορεί να εκτελεστεί τοπικά με έναν συμβατό εκτελεστή, όπως το Docker και το Podman.

Σε σύγκριση με το υλικό NetHSM, οι ακόλουθες λειτουργίες δεν υλοποιούνται στο REST API του εμπορευματοκιβωτίου λογισμικού:

  • Network configuration

  • Επαναφορά εργοστασιακών ρυθμίσεων

  • επανεκκίνηση

  • Ενημέρωση λογισμικού

Το δοχείο παραγωγής NetHSM είναι προϊόν μόνο για πελάτες που πληρώνουν και μπορεί να αγοραστεί εδώ. Η εικόνα μπορεί να ληφθεί από το Nitrokey NetHSM registry χρησιμοποιώντας τα διαπιστευτήρια που παρέχονται μετά την αγορά.

Προειδοποίηση

Η ασφάλεια του δοχείου λογισμικού NetHSM εξαρτάται σε μεγάλο βαθμό από την ασφάλεια της πλατφόρμας. Μια παραβιασμένη πλατφόρμα θα μπορούσε εύκολα να θέσει σε κίνδυνο ένα δοχείο λογισμικού NetHSM που εκτελεί. Επιπλέον, το TRNG δεν υπάρχει, οπότε η εντροπία που χρησιμοποιείται και παρέχεται από το NetHSM εξαρτάται από την εντροπία της πλατφόρμας.

Πολιτική επισημάνσεων#

Οι εικόνες στο αποθετήριο επισημαίνονται με το hash του commit του Git και την έκδοση της έκδοσης. Η πιο πρόσφατη εικόνα έχει ετικέτα latest.

Modes of Operation#

Η εικόνα μπορεί να εκτελεστεί με δύο τρόπους λειτουργίας, δηλαδή ως διεργασία Unix ή ως unikernel.

Η λειτουργία διεργασίας Unix εκτελεί το NetHSM ως διεργασία στην κορυφή του λειτουργικού συστήματος.

Η λειτουργία unikernel εκτελεί το NetHSM ως επισκέπτη σε μια εικονική μηχανή βασισμένη σε KVM και παρέχει ισχυρό διαχωρισμό από το λειτουργικό σύστημα του κεντρικού υπολογιστή. Αυτή η λειτουργία είναι διαθέσιμη μόνο σε Linux και απαιτεί πρόσβαση στους κόμβους συσκευών /dev/tun και /dev/kvm και στη δυνατότητα NET_ADMIN.

Σημαντικό

Για λόγους ασφαλείας επιλέξτε να εκτελέσετε το κοντέινερ σε λειτουργία unikernel.

Η λειτουργία μπορεί να οριστεί με τη μεταβλητή περιβάλλοντος MODE (βλ. επόμενο κεφάλαιο Διαμόρφωση).

Διαμόρφωση#

The container can be configured with the following environment variables.

Μεταβλητή περιβάλλοντος

Περιγραφή

Ipsec (μόνο για Linux)

Ενεργοποιεί την εκτεταμένη καταγραφή για το NetHSM.

UNLOCKPW

Μια καθορισμένη συνθηματική φράση ξεκλειδώματος ξεκλειδώνει αυτόματα το δοχείο κατά την εκκίνηση.

MODE

Το mode δέχεται τις τιμές unix ή unikernel, με προεπιλογή unix.

ETCD_HOST

Η διεύθυνση URL/IP του κεντρικού υπολογιστή που εκτελεί την υπηρεσία etcd.

ETCD_PORT

Η θύρα που εκτελεί την υπηρεσία etcd, προεπιλογή είναι η «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.

Τα μυστικά του χρόνου εκτέλεσης των εμπορευματοκιβωτίων, όπως τα πιστοποιητικά και τα ιδιωτικά κλειδιά, πρέπει να οριστούν με τη λειτουργία secrets του Docker ή του Podman.

Μυστική μεταβλητή

Περιγραφή

ca_cert

Πιστοποιητικό CA που υπέγραψε το πιστοποιητικό πελάτη και το πιστοποιητικό διακομιστή.

client_cert

Πιστοποιητικό πελάτη για τον έλεγχο ταυτότητας της διεργασίας NetHSM με τον χώρο αποθήκευσης βασικών τιμών.

client_key

Κλειδί πελάτη για τον έλεγχο ταυτότητας της διεργασίας NetHSM με τον χώρο αποθήκευσης κλειδιών-τιμών.

server_cert

Πιστοποιητικό διακομιστή για το API του χώρου αποθήκευσης βασικών τιμών.

server_key

Κλειδί διακομιστή για το API του καταστήματος κλειδιών-τιμών.

device_key

Κλειδί συσκευής της διαδικασίας NetHSM. Για να μάθετε περισσότερα σχετικά με το κλειδί συσκευής ανατρέξτε στο κεφάλαιο Ορολογία και συμβάσεις στη σχεδίαση του συστήματος.

Χρήση#

Το εμπορευματοκιβώτιο παραγωγής υποστηρίζει δύο τρόπους λειτουργίας ` <container.html#Modes of Operation>` __. Τα επόμενα κεφάλαια περιγράφουν τον τρόπο λειτουργίας του εμπορευματοκιβωτίου με τα παρεχόμενα αρχεία compose ή με την εντολή _run_.

Unix Mode#

Μπορείτε να λάβετε ένα αρχείο σύνθεσης που παρέχεται εδώ. Βεβαιωθείτε ότι έχετε διαθέσιμα τα απαραίτητα αρχεία για τα μυστικά που αναφέρονται στο αρχείο σύνθεσης.

Για να εκτελέσετε το δοχείο χωρίς το αρχείο compose θα πρέπει να παρέχετε εσείς οι ίδιοι ένα εξωτερικό etcd. Εδώ μπορείτε να βρείτε τη συνιστώμενη εικόνα δοχείου για το etcd. Βεβαιωθείτε ότι έχετε περάσει τις επιλογές διαμόρφωσης, όπως περιγράφεται στο κεφάλαιο Διαμόρφωση.

Το δοχείο μπορεί να εκτελεστεί ως εξής.

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

Αυτό θα εκτελέσει το NetHSM ως διεργασία Unix μέσα στο δοχείο και θα εκθέσει το REST API στη θύρα «8443» μέσω του πρωτοκόλλου HTTPS.

Σημαντικό

Ο περιέκτης χρησιμοποιεί ένα αυτο-υπογεγραμμένο πιστοποιητικό TLS. Βεβαιωθείτε ότι χρησιμοποιείτε τις σωστές ρυθμίσεις σύνδεσης για να δημιουργήσετε μια σύνδεση. Ανατρέξτε στο κεφάλαιο Εισαγωγή στο NetHSM για να μάθετε περισσότερα.

Λειτουργία Unikernel#

Μπορείτε να αποκτήσετε ένα αρχείο σύνθεσης που παρέχεται εδώ. Βεβαιωθείτε ότι έχετε διαθέσιμα τα απαραίτητα αρχεία για τα μυστικά που αναφέρονται στο αρχείο σύνθεσης.

Για να εκτελέσετε το δοχείο χωρίς το αρχείο compose θα πρέπει να παρέχετε εσείς οι ίδιοι ένα εξωτερικό etcd. Εδώ μπορείτε να βρείτε τη συνιστώμενη εικόνα δοχείου για το etcd. Βεβαιωθείτε ότι έχετε περάσει τις επιλογές διαμόρφωσης, όπως περιγράφεται στο κεφάλαιο Διαμόρφωση.

Το δοχείο μπορεί να εκτελεστεί ως εξής.

$ 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

Αυτό θα εκτελέσει το NetHSM ως ένα unikernel μέσα σε μια εικονική μηχανή KVM. Το δοχείο θα εκθέσει το REST API, μέσω του πρωτοκόλλου HTTPS, στη διεπαφή tap200 με τη διεύθυνση IP 192.168.1.100 και τη θύρα 8443.

Σημαντικό

Ο περιέκτης χρησιμοποιεί ένα αυτο-υπογεγραμμένο πιστοποιητικό TLS. Βεβαιωθείτε ότι χρησιμοποιείτε τις σωστές ρυθμίσεις σύνδεσης για να δημιουργήσετε μια σύνδεση. Ανατρέξτε στο κεφάλαιο Εισαγωγή στο NetHSM για να μάθετε περισσότερα.