Operation#

Dieses Kapitel beschreibt operative Aufgaben für Benutzer mit der Rolle Administrator und Operator. Bitte lesen Sie das Kapitel Rollen, um mehr über diese Rollen zu erfahren.

Wichtig

Bitte lesen Sie unbedingt die Informationen am Anfang von diesem Dokument bevor Sie mit der Arbeit beginnen.

Schlüsselverwaltung#

Schlüssel generieren#

Der NetHSM kann Schlüsselpaare erzeugen. Es wird empfohlen, die Option Schlüssel-ID anzugeben, um dem Schlüssel einen aussagekräftigen Namen zu geben.

Die unterstützten Schlüsseltypen und ihre entsprechenden Mechanismen sind die folgenden

Schlüssel Typ

Mechanismen

TAG

RSA_Decryption_RAW RSA_Decryption_PKCS1 RSA_Decryption_OAEP_MD5 RSA_Decryption_OAEP_SHA1 RSA_Decryption_OAEP_SHA224 RSA_Decryption_OAEP_SHA256 RSA_Decryption_OAEP_SHA384 RSA_Decryption_OAEP_SHA512 RSA_Signature_PKCS1 RSA_Signature_PSS_MD5 RSA_Signature_PSS_SHA1 RSA_Signature_PSS_SHA224 RSA_Signature_PSS_SHA256 RSA_Signature_PSS_SHA384 RSA_Signature_PSS_SHA512

Curve25519

EdDSA_Signature

USER_ID

EdDSA_Signature

USER_ID

EdDSA_Signature

USER_ID

EdDSA_Signature

USER_ID

EdDSA_Signature

USER_ID

AES_Encryption_CBC AES_Decryption_CBC

Schlüssel werden dem Namespace des Benutzers zugewiesen, der den Schlüssel erzeugt.

Der Schlüssel kann wie folgt generiert werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator.

Erforderliche Optionen

Option

Beschreibung

-p, --port INTEGER

Der Typ für den erzeugten Schlüssel. Mögliche Werte für das Argument KEYTYPE sind der obigen Tabelle zu entnehmen.

-m, --mechanism MECHANISM

Die Mechanismen für den generierten Schlüssel. Mögliche Werte für das Argument MECHANISM sind der obigen Tabelle zu entnehmen.

-l, --length INTEGER

Die Länge des generierten Schlüssels

Optionale Optionen

Option

Beschreibung

-k, --key-id TEXT

Die ID des generierten Schlüssels

Beispiel

$ nitropy nethsm --host $NETHSM_HOST generate-key --type RSA --mechanism RSA_Signature_PSS_SHA256 --mechanism RSA_Decryption_PKCS1 --length 2048 --key-id myFirstKey
Key myFirstKey generated on NetHSM localhost:8443

Schlüssel importieren#

Der NetHSM kann vorhandene private Schlüssel in den Schlüsselspeicher importieren.

Die unterstützten Schlüsseltypen und ihre entsprechenden Mechanismen sind die folgenden

Schlüssel Typ

Mechanismen

TAG

RSA_Decryption_RAW RSA_Decryption_PKCS1 RSA_Decryption_OAEP_MD5 RSA_Decryption_OAEP_SHA1 RSA_Decryption_OAEP_SHA224 RSA_Decryption_OAEP_SHA256 RSA_Decryption_OAEP_SHA384 RSA_Decryption_OAEP_SHA512 RSA_Signature_PKCS1 RSA_Signature_PSS_MD5 RSA_Signature_PSS_SHA1 RSA_Signature_PSS_SHA224 RSA_Signature_PSS_SHA256 RSA_Signature_PSS_SHA384 RSA_Signature_PSS_SHA512

Curve25519

EdDSA_Signature

USER_ID

EdDSA_Signature

USER_ID

EdDSA_Signature

USER_ID

EdDSA_Signature

USER_ID

EdDSA_Signature

USER_ID

AES_Encryption_CBC AES_Decryption_CBC

Schlüssel werden dem Namespace des Benutzers zugewiesen, der den Schlüssel importiert.

Importieren Sie einen privaten Schlüssel aus einer PEM-Datei in NetHSM wie folgt.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator.

Argumente

Argument

Beschreibung

FILENAME

Private Schlüsseldatei im PEM-Format

Optionale Optionen

Option

Beschreibung

-m, --mechanism MECHANISM

Die Mechanismen für den generierten Schlüssel. Mögliche Werte für das Argument MECHANISM sind der obigen Tabelle zu entnehmen.

-k, --key-id TEXT

Die ID des neuen Schlüssels

--tags TEXT

Der Tag für den neuen Schlüssel

Beispiel

$ nitropy nethsm --host $NETHSM_HOST import-key \
   --mechanism RSA_Signature_PSS_SHA256 \
   --mechanism RSA_Decryption_PKCS1 \
   --key-id myFirstKey \
   mykey.pem
Key myFirstKey added to NetHSM localhost:8443

Private Schlüssel im Rohformat können wie folgt importiert werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator.

Erforderliche Optionen

Option

Beschreibung

-p, --port INTEGER

Der Typ für den erzeugten Schlüssel. Mögliche Werte für das Argument KEYTYPE sind der obigen Tabelle zu entnehmen.

-m, --mechanism MECHANISM

Die Mechanismen für den generierten Schlüssel. Mögliche Werte für das Argument MECHANISM sind der obigen Tabelle zu entnehmen.

-u, --user-id TEXT

Die Primzahl p für RSA-Schlüssel, base64-kodiert

-u, --user-id TEXT

Die Primzahl q für RSA-Schlüssel, base64-kodiert

-e, --public-exponent TEXT

Der öffentliche Exponent für RSA-Schlüssel, base64-kodiert

-d, --data TEXT

Die Schlüsseldaten für ED25519- oder ECDSA_*-Schlüssel, base64-kodiert

Optionale Optionen

Option

Beschreibung

-k, --key-id TEXT

Die ID des neuen Schlüssels

--tags TEXT

Der Tag für den neuen Schlüssel

Beispiel

$ nitropy nethsm --host $NETHSM_HOST add-key \
   --type RSA \
   --mechanism RSA_Signature_PSS_SHA256 \
   --mechanism RSA_Decryption_PKCS1 \
   --key-id myFirstKey \
   --public-exponent AQAB \
   --prime-p "AOnWFZ+JrI/xOXJU04uYCZOiPVUWd6CSbVseEYrYQYxc7dVroePshz29tc+VEOUP5T0O8lXMEkjFAwjW6C9QTAsPyl6jwyOQluMRIkdN4/7BAg3HAMuGd7VmkGyYrnZWW54sLWp1JD6XJG33kF+9OSar9ETPoVyBgK5punfiUFEL" \
   --prime-q "ANT1kWDdP9hZoFKT49dwdM/S+3ZDnxQa7kZk9p+JKU5RaU9e8pS2GOJljHwkES1FH6CUGeIaUi81tRKe2XZhe/163sEyMcxkaaRbBbTc1v6ZDKILFKKt4eX7LAQfhL/iFlgi6pcyUM8QDrm1QeFgGz11ChM0JuQw1WwkX06lg8iv"
Key myFirstKey added to NetHSM localhost:8443

Taste löschen#

Der NetHSM kann Schlüssel aus dem Key Store löschen. Benutzer können nur Schlüssel in ihrem Namespace löschen.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator.

Argumente

Argument

Beschreibung

--time

Die Schlüssel-ID des zu löschenden Schlüssels

Beispiel

$ nitropy nethsm --host $NETHSM_HOST delete-key myFirstKey
Key myFirstKey deleted on NetHSM localhost:8443

Schlüssel auflisten#

Der NetHSM kann alle Schlüssel im Key Store auflisten, die sich im Namespace des aktuellen Benutzers befinden.

Die Liste kann wie folgt abgerufen werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator oder Operator.

Optionale Optionen

Option

Beschreibung

-f`, ` ` ` ` –filter TEXT

Der zu suchende Tag

Beispiel

$ nitropy nethsm --host $NETHSM_HOST list-keys
Keys on NetHSM localhost:8443:

Key ID          Type       Mechanisms                                      Operations  Tags
-----------     ----       ----------------------------------------------  ----------  ----
myFirstKey      RSA        RSA_Decryption_PKCS1, RSA_Signature_PSS_SHA256  0

Schlüsseldetails anzeigen#

Der NetHSM kann detailliertere Informationen über einen gespeicherten Schlüssel ausgeben. Benutzer können nur auf Schlüssel in ihrem Namespace zugreifen.

Die detaillierten Informationen können wie folgt abgerufen werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator oder Operator.

Beispiel

$ nitropy nethsm --host $NETHSM_HOST get-key myFirstKey
Key myFirstKey on NetHSM localhost:8443:
Type:            RSA
Mechanisms:      RSA_Decryption_RAW
Operations:      0
Modulus:         r62XHPWMDdEf2I1WEpSxGowY/fQF8lMPtv3EUQJE/PLWBvehF8G0QY3AVVZ3etlQWiKreOuGDx4Nr2PFNYAu5f+JP2Jc1lsFNOYF8D82RF41MBySbQR+k+44N/04B0ahTBCxX+ovFH7Sd6SzvxMPa7EKvhaOsLbgyrPlFZxQnhIEqJRCSo5DRRD+CRCPpGXsVXgFbJrNilh21i8OZCct4nC2OS191MeDKmCH4tjrfLMwOKJE8zKlwhdtA1uMY49+JuaC48GUFsLYwbLp1723Uv1PjZjC5jbUhScD0u9I+iNrqznAeka4dWsJ9jgA+h6hblSgCs0I3MWOsMXx/Y5PGQ==
Public exponent: AQAB

Der öffentliche Schlüssel eines Schlüssels kann wie folgt abgerufen werden. Er liegt im PKCS#8-Format vor.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator oder Operator.

Beispiel

$ nitropy nethsm --host $NETHSM_HOST get-key myFirstKey --public-key
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr62XHPWMDdEf2I1WEpSx
GowY/fQF8lMPtv3EUQJE/PLWBvehF8G0QY3AVVZ3etlQWiKreOuGDx4Nr2PFNYAu
5f+JP2Jc1lsFNOYF8D82RF41MBySbQR+k+44N/04B0ahTBCxX+ovFH7Sd6SzvxMP
a7EKvhaOsLbgyrPlFZxQnhIEqJRCSo5DRRD+CRCPpGXsVXgFbJrNilh21i8OZCct
4nC2OS191MeDKmCH4tjrfLMwOKJE8zKlwhdtA1uMY49+JuaC48GUFsLYwbLp1723
Uv1PjZjC5jbUhScD0u9I+iNrqznAeka4dWsJ9jgA+h6hblSgCs0I3MWOsMXx/Y5P
GQIDAQAB
-----END PUBLIC KEY-----

Der öffentliche Schlüssel kann z.B. mit OpenSSL wie folgt eingesehen werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator oder Operator.

Beispiel

nitropy nethsm --host= $NETHSM_HOST get-key myFirstKey --public-key | openssl rsa -pubin -text
Public-Key: (2048 bit)
Modulus:
   00:af:ad:97:1c:f5:8c:0d:d1:1f:d8:8d:56:12:94:
   b1:1a:8c:18:fd:f4:05:f2:53:0f:b6:fd:c4:51:02:
   44:fc:f2:d6:06:f7:a1:17:c1:b4:41:8d:c0:55:56:
   77:7a:d9:50:5a:22:ab:78:eb:86:0f:1e:0d:af:63:
   c5:35:80:2e:e5:ff:89:3f:62:5c:d6:5b:05:34:e6:
   05:f0:3f:36:44:5e:35:30:1c:92:6d:04:7e:93:ee:
   38:37:fd:38:07:46:a1:4c:10:b1:5f:ea:2f:14:7e:
   d2:77:a4:b3:bf:13:0f:6b:b1:0a:be:16:8e:b0:b6:
   e0:ca:b3:e5:15:9c:50:9e:12:04:a8:94:42:4a:8e:
   43:45:10:fe:09:10:8f:a4:65:ec:55:78:05:6c:9a:
   cd:8a:58:76:d6:2f:0e:64:27:2d:e2:70:b6:39:2d:
   7d:d4:c7:83:2a:60:87:e2:d8:eb:7c:b3:30:38:a2:
   44:f3:32:a5:c2:17:6d:03:5b:8c:63:8f:7e:26:e6:
   82:e3:c1:94:16:c2:d8:c1:b2:e9:d7:bd:b7:52:fd:
   4f:8d:98:c2:e6:36:d4:85:27:03:d2:ef:48:fa:23:
   6b:ab:39:c0:7a:46:b8:75:6b:09:f6:38:00:fa:1e:
   a1:6e:54:a0:0a:cd:08:dc:c5:8e:b0:c5:f1:fd:8e:
   4f:19
Exponent: 65537 (0x10001)
writing RSA key
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr62XHPWMDdEf2I1WEpSx
GowY/fQF8lMPtv3EUQJE/PLWBvehF8G0QY3AVVZ3etlQWiKreOuGDx4Nr2PFNYAu
5f+JP2Jc1lsFNOYF8D82RF41MBySbQR+k+44N/04B0ahTBCxX+ovFH7Sd6SzvxMP
a7EKvhaOsLbgyrPlFZxQnhIEqJRCSo5DRRD+CRCPpGXsVXgFbJrNilh21i8OZCct
4nC2OS191MeDKmCH4tjrfLMwOKJE8zKlwhdtA1uMY49+JuaC48GUFsLYwbLp1723
Uv1PjZjC5jbUhScD0u9I+iNrqznAeka4dWsJ9jgA+h6hblSgCs0I3MWOsMXx/Y5P
GQIDAQAB
-----END PUBLIC KEY-----

Tags für Schlüssel#

Tags können verwendet werden, um feinkörnige Zugriffsbeschränkungen für Schlüssel festzulegen, und sind eine optionale Funktion. Einer Taste können ein oder mehrere Tags zugewiesen werden. Die Benutzer von Operator können alle Tasten sehen, aber nur diejenigen verwenden, die mindestens ein entsprechendes Tag haben. Wenn eine Taste kein Tag hat, kann sie von allen Operator Benutzern verwendet werden. Ein Tag kann nicht von einem Operator Benutzer geändert werden.

Wie Sie Tags auf Betreiber-Konten verwenden können, erfahren Sie im Kapitel Tags für Benutzer.

Bemerkung

Tags werden ohne Einschränkungen von Benutzern mit der Rolle Administrator verwaltet.

Der Tag kann wie folgt hinzugefügt werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator.

Argumente

Argument

Beschreibung

--time

Die ID des Schlüssels, auf den die Markierung gesetzt werden soll

TAG

Die auf der Taste zu setzende Markierung

Beispiel

$ nitropy nethsm --host $NETHSM_HOST add-key-tag myFirstKey berlin
Added tag berlin for key myFirstKey on the NetHSM localhost:8443

Der Tag kann wie folgt gelöscht werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator.

Argumente

Argument

Beschreibung

--time

Die ID des Schlüssels, auf den der Tag gesetzt werden soll.

TAG

Die auf dem Schlüssel zu setzende Markierung.

Beispiel

$ nitropy nethsm --host $NETHSM_HOST delete-key-tag myFirstKey berlin
Deleted tag berlin for key myFirstKey on the NetHSM localhost:8443

Schlüssel-Zertifikate#

Es ist möglich, Zertifikate für die auf einem NetHSM gespeicherten Schlüssel zu setzen und abzufragen.

Die folgenden MIME-Typen werden unterstützt.

  • application/x-pem-file

  • application/x-x509-ca-cert

  • application/pgp-keys

Das Zertifikat kann wie folgt eingestellt werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator.

Erforderliche Optionen

Option

Beschreibung

-k, --key-id TEXT

Die ID des Schlüssels, für den das Zertifikat erstellt werden soll

Optionale Optionen

Option

Beschreibung

-m, --mechanism MECHANISM

Der MIME-Typ des Zertifikats. Die verfügbaren MIME-Typen sind oben aufgeführt.

Argumente

Argument

Beschreibung

FILENAME

Zertifikat-Datei

Beispiel

$ nitropy nethsm --host $NETHSM_HOST set-certificate --key-id myFirstKey --mime-type application/x-pem-file /tmp/cert.pem
Updated the certificate for key myFirstKey on NetHSM localhost:8443

Das Zertifikat kann wie folgt abgerufen werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator oder Operator.

Erforderliche Optionen

Option

Beschreibung

-k, --key-id TEXT

Die ID des Schlüssels, für den das Zertifikat abgerufen werden soll

Beispiel

$ nitropy nethsm --host $NETHSM_HOST get-certificate --key-id myFirstKey
-----BEGIN CERTIFICATE-----
MIICeTCCAWECFCbuzdkAvc3Zx3W53IoSnmhUen42MA0GCSqGSIb3DQEBCwUAMHsx
CzAJBgNVBAYTAkRFMQ8wDQYDVQQIDAZCZXJsaW4xDzANBgNVBAcMBkJlcmxpbjER
MA8GA1UECgwITml0cm9rZXkxFTATBgNVBAMMDG5pdHJva2V5LmNvbTEgMB4GCSqG
SIb3DQEJARYRaW5mb0BuaXRyb2tleS5jb20wHhcNMjIwODMwMjAxMzA2WhcNMjMw
ODMwMjAxMzA2WjBxMW8wCQYDVQQGEwJERTANBgNVBAcMBkJlcmxpbjANBgNVBAgM
BkJlcmxpbjAPBgNVBAoMCE5pdHJva2V5MBMGA1UEAwwMbml0cm9rZXkuY29tMB4G
CSqGSIb3DQEJARYRaW5mb0BuaXRyb2tleS5jb20wKjAFBgMrZXADIQDc58LGDY9B
wbJFdXTiDalNXrDC60Sxu3eHcpnh1MSoCjANBgkqhkiG9w0BAQsFAAOCAQEAGip8
aU5nJnzm3eic3t1ihUA3VJ0mAPyfrb1Rn8tEKOZo3vg0jpRd9CSESlBsKqhvxsdQ
A3eomM+W7R37TL5+ISm5QrbijLHz3OHoPM68c1Krz3bXTkJetf4YAxpLOPYfXXHv
weRzwVJb4y3E0lJGhZxI3sUE8Yn/T1UvTbu/o/O5P/XTA8vfFrSNQkQxWBgYh4gC
KjFFALqUPFrctSFIi34aqpdihNJWnjSS2Y7INm3oxwkR3NMKP8x4wBGfZK22nHnu
PPzXuMGJTmQM8GHTzltNvLx5Iv2sXoSHClXSpdIT5IBIcR1GmZ78fmcr75OAU0+z
3XbJq/1ij3tKsjV6WA==
-----END CERTIFICATE-----

Signieranforderungen für Schlüsselzertifikate#

Der NetHSM unterstützt die Erzeugung von CSR (Certificate Signing Requests) für die gespeicherten Schlüssel.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Administrator oder Operator.

Erforderliche Optionen

Option

Beschreibung

-k, --key-id TEXT

Die ID des Schlüssels, für den die CSR erzeugt werden soll

--country TEXT

Der Name des Landes

--state-or-province TEXT

Der Name des Bundeslandes oder der Provinz

--locality TEXT

Der Name des Ortes

--organization TEXT

Der Name der Organisation

--organizational-unit TEXT

Der Name der Organisationseinheit

--common-name TEXT

Der gemeinsame Name

--email-address TEXT

Die E-Mail Adresse

Beispiel

$ nitropy nethsm --host $NETHSM_HOST csr --key-id myFirstKey --country="DE" --state-or-province="Berlin" --locality="Berlin" --organization="Nitrokey" --organizational-unit="" --common-name=nitrokey.com --email-address="info@nitrokey.com"
-----BEGIN CERTIFICATE REQUEST-----
MIHxMIGkAgEAMHExbzAJBgNVBAYTAkRFMA0GA1UEBwwGQmVybGluMA0GA1UECAwG
QmVybGluMA8GA1UECgwITml0cm9rZXkwEwYDVQQDDAxuaXRyb2tleS5jb20wHgYJ
KoZIhvcNAQkBFhFpbmZvQG5pdHJva2V5LmNvbTAqMAUGAytlcAMhADJMNAifke6s
u7CYqHGDy3xGtXVOUNbTJG6Gn4oki+j3oAAwBQYDK2VwA0EAQilRK2Mf6kfJ4ByI
WCn9A+8IHsnE7iFcuFZpmaKfcJwZiaQppHvPg/Z0zqldzviPQ1cjKR7hSZG+8GHH
gWjEDg==
-----END CERTIFICATE REQUEST-----

Wichtige Vorgänge#

Alle in diesem Kapitel beschriebenen Operationen können nur für Schlüssel ausgeführt werden, die sich im Namespace des aktuellen Benutzers befinden.

Verschlüsseln Sie#

Die NetHSM kann Daten mit symmetrischen Schlüsseln verschlüsseln, die im Key Store gespeichert sind. Im Gegensatz dazu kann die Verschlüsselung von Daten mit asymmetrischen Schlüsseln auf dem NetHSM nicht durchgeführt werden, da das Konzept der Public-Key-Kryptographie darin besteht, den öffentlichen Schlüssel für jeden zugänglich zu machen. Für asymmetrische Schlüssel stellt der NetHSM den öffentlichen Schlüssel zur Verfügung, der zur Verschlüsselung mit einem externen Tool verwendet werden kann. Unter Show Key Details erfahren Sie mehr darüber, wie Sie den öffentlichen Schlüssel eines Schlüssels im Key Store abrufen können.

Daten können mit einem symmetrischen Schlüssel wie folgt verschlüsselt werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Operator.

Erforderliche Optionen

Option

Beschreibung

-k, --key-id TEXT

Die ID des Schlüssels, mit dem die Daten verschlüsselt werden

-d, --data TEXT

Die Daten in Base64-Kodierung

-m`, ` ` ` ` –mode [AES_CBC]

Der Verschlüsselungsmodus

-iv`, ` ` ` ` –initialization-vector TEXT

Der Initialisierungsvektor in Base64-Kodierung

Beispiel

$ nitropy nethsm --host $NETHSM_HOST encrypt -k myFirstKey -d "TmV0SFNNIHJ1bGV6enp6enp6enp6enp6enp6enp6IQo=" -m AES_CBC -iv "aYlwUI4A9zL9tts4dMAq+A=="
Encrypted: Uk+9pgucdxTnbyIb/6+BDJef+HfRWhw+Eg3RcCvyHaU=
Initialization vector: aYlwUI4A9zL9tts4dMAq+A==

Dies gibt die verschlüsselte und base64-kodierte Nachricht NetHSM rulezzzzzzzzzzzzzzzzzzz! und den Initialisierungsvektor aus.

Daten können für asymmetrische Schlüssel mit OpenSSL wie folgt verschlüsselt werden.

$ echo 'NetHSM rulez!' | openssl pkeyutl -encrypt -pubin -inkey public.pem | base64 > data.crypt

Dies schreibt die verschlüsselte und base64-kodierte Nachricht NetHSM rulez! in die Datei data.crypt, unter Verwendung des öffentlichen Schlüssels von public.pem.

Entschlüsseln#

Der NetHSM kann Daten für einen privaten Schlüssel entschlüsseln, der im Schlüsselspeicher des NetHSM gespeichert ist. Dieses Beispiel verwendet die verschlüsselte Nachricht aus dem vorherigen Kapitel Encrypt.

Die unterstützten Entschlüsselungsmodi sind wie folgt

  • TAG

  • PKCS1

  • FILENAME

  • --network

  • OAEP_SHA224

  • OAEP_SHA224

  • OAEP_SHA224

  • OAEP_SHA224

  • USER_ID

Die Daten können wie folgt entschlüsselt werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Operator.

Erforderliche Optionen

Option

Beschreibung

-k, --key-id TEXT

Die ID des Schlüssels zur Entschlüsselung der Datenbreite

-d, --data TEXT

Die verschlüsselten Daten in Base64-Kodierung

-d, --data TEXT

Der Entschlüsselungsmodus. Die verfügbaren Modi sind oben aufgeführt.

Beispiel

$ nitropy nethsm -h $NETHSM_HOST decrypt -k myFirstKey -d "$(cat data.crypt)" -m PKCS1 | base64 -d
NetHSM rulez!

Unterschrift#

Der NetHSM kann Daten für einen privaten Schlüssel signieren, der im Schlüsselspeicher des NetHSM gespeichert ist. Für Signaturen mit einem RSA- und ECDSA-Schlüssel muss zunächst ein Digest berechnet werden.

Um einen Digest zu berechnen, werden zunächst die Daten benötigt. Eine Nachricht wird wie folgt erstellt.

$ echo 'NetHSM rulez!' > data

Der Digest wird mit OpenSSL wie folgt berechnet.

$ openssl dgst -sha256 -binary data | base64 > data.digest

Die unterstützten Signiermodi sind wie folgt

  • PKCS1

  • USER_ID

  • FILENAME

  • Curve25519

  • Curve25519

  • Curve25519

  • Curve25519

  • PKCS1

  • PKCS1

Aus dem Digest kann wie folgt eine Signatur erstellt werden.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Operator.

Erforderliche Optionen

Option

Beschreibung

-k, --key-id TEXT

Die ID des Schlüssels zum Signieren der Datenbreite

-d, --data TEXT

Die zu signierenden Daten werden mit Base64 kodiert.

-d, --data TEXT

Der Vorzeichenmodus

Beispiel

$ nitropy nethsm -h $NETHSM_HOST sign -k myFirstKey -m PKCS1 -d "$(cat data.digest)" | base64 -d > data.sig

Die erstellte Signatur kann mit OpenSSL wie folgt überprüft werden.

$ openssl dgst -sha256 -verify public.pem -signature data.sig -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 data
Verified OK

Zufällig#

Der NetHSM kann Zufallsbytes als Base64-String bereitstellen.

Erforderliche Rolle

Dieser Vorgang erfordert eine Authentifizierung mit der Rolle Operator.

Argumente

Argument

Beschreibung

--time

Abzurufende Bytes

Beispiel

nitropy nethsm --host $NETHSM_HOST random 4
94A2rg==