Operation#

I dette kapitel beskrives driftsopgaver for brugere med rollerne Administrator og Operator. Se kapitel Roller for at få mere at vide om rollen.

Vigtigt

Sørg for at læse oplysningerne i begyndelsen af dette dokument, før du begynder at arbejde.

Nøglehåndtering#

Generere nøgler#

NetHSM kan generere nøglepar. Det anbefales at angive indstillingen nøgle-ID for at give den et udtryksfuldt navn.

De understøttede nøgletyper og deres tilsvarende mekanismer er følgende.

Nøgletype

Mekanismer

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<x> RSA_Signature_PKCS1 <x>`RSA_Signature_PSS_MD5 RSA_Signature_PSS_SHA1 <x>`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 ``

Nøglen kan genereres på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator.

Nødvendige indstillinger

Mulighed

Beskrivelse

-p, --port INTEGER<x>

Typen for den genererede nøgle. Mulige værdier for KEYTYPE-argumentet kan findes i tabellen ovenfor.

-m, --mechanism MECHANISM

Mekanismerne for den genererede nøgle. Mulige værdier for MECHANISM-argumentet kan findes i tabellen ovenfor.

-l, --length INTEGER

Længden af den genererede nøgle

Optionelle muligheder

Mulighed

Beskrivelse

-k, --key-id TEXT

ID for den genererede nøgle

Eksempel

$ 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

Importnøgle#

NetHSM kan importere eksisterende private nøgler til Key Store.

De understøttede nøgletyper og deres tilsvarende mekanismer er følgende.

Nøgletype

Mekanismer

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<x> RSA_Signature_PKCS1 <x>`RSA_Signature_PSS_MD5 RSA_Signature_PSS_SHA1 <x>`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 ``

Importen kan startes på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator.

Nødvendige indstillinger

Mulighed

Beskrivelse

-p, --port INTEGER<x>

Typen for den genererede nøgle. Mulige værdier for KEYTYPE-argumentet kan findes i tabellen ovenfor.

-m, --mechanism MECHANISM

Mekanismerne for den genererede nøgle. Mulige værdier for MECHANISM-argumentet kan findes i tabellen ovenfor.

-u, --user-id TEXT

Primtal p for RSA-nøgler, base64-kodet

-u, --user-id TEXT

Primtal q for RSA-nøgler, base64-kodet

-e, --public-exponent TEXT<x>

Den offentlige eksponent for RSA-nøgler, base64-kodet

-d, --data TEXT<x>

Nøgledata for ED25519- eller ECDSA_*-nøgler, base64-kodet

Optionelle muligheder

Mulighed

Beskrivelse

-k, --key-id TEXT

ID for den nye nøgle

--tags `` TEXT`

Tag for den nye nøgle

Eksempel

$ 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

Slet-tasten#

NetHSM kan slette nøgler fra Key Store.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator.

Argumenter

Argument

Beskrivelse

--time

nøgle-ID for den nøgle, der skal slettes

Eksempel

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

Liste over nøgler#

NetHSM kan vise en liste over alle tilgængelige nøgler i Key Store.

Listen kan hentes på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator eller Operator.

Optionelle muligheder

Mulighed

Beskrivelse

-f, --filter TEXT

Det tag, der skal søges efter

Eksempel

$ 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

Vis nøgleoplysninger#

NetHSM kan udgive mere detaljerede oplysninger om en lagret nøgle.

De detaljerede oplysninger kan hentes på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator eller Operator.

Eksempel

$ 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

Den offentlige nøgle til en nøgle kan hentes på følgende måde. Den er i PKCS#8-format.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator eller Operator.

Eksempel

$ 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-----

Den offentlige nøgle kan f.eks. inspiceres med OpenSSL på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator eller Operator.

Eksempel

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

Mærker for nøgler#

Tags kan bruges til at indstille finkornede adgangsbegrænsninger på nøgler, og er en valgfri funktion. En eller flere Tags kan tildeles en tast. Brugere af Operator kan se alle taster, men kun bruge dem med mindst ét tilsvarende Tag. Hvis en nøgle ikke har et Tag, kan den bruges af alle Operatør brugere. Et Tag kan ikke ændres af en Operator bruger.

Du kan læse mere om, hvordan du bruger TagsOperator-konti, i kapitel Tags for brugere.

Bemærk

Tags administreres uden begrænsninger af brugere med rollen Administrator.

Tag kan tilføjes på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator.

Argumenter

Argument

Beskrivelse

--time

Det nøgle-id, som mærket skal sættes på

TAG

Det tag, der skal sættes på nøglen

Eksempel

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

Tag kan slettes på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator.

Argumenter

Argument

Beskrivelse

--time

Det nøgle-id, som tagget skal sættes på.

TAG

Det tag, der skal sættes på nøglen.

Eksempel

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

Nøglecertifikater#

Det er muligt at indstille og forespørge certifikater for de nøgler, der er gemt på en NetHSM.

De understøttede MIME-typer er som følger.

  • application/x-pem-file

  • application/x-x509-ca-cert

  • application/pgp-keys

Certifikatet kan indstilles på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator.

Nødvendige indstillinger

Mulighed

Beskrivelse

-k, --key-id TEXT

ID for den nøgle, som certifikatet skal fastsættes for

Optionelle muligheder

Mulighed

Beskrivelse

-m, --mechanism MECHANISM

Certifikatets MIME-type. De tilgængelige MIME-typer er anført ovenfor.

Argumenter

Argument

Beskrivelse

FILENAME

Certifikatfil

Eksempel

$ 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

Certifikatet kan hentes på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator eller Operator.

Nødvendige indstillinger

Mulighed

Beskrivelse

-k, --key-id TEXT

ID for den nøgle, som certifikatet skal hentes for

Eksempel

$ 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-----

Anmodninger om signering af nøglecertifikater#

NetHSM understøtter generering af CSR (Certificate Signing Requests) for de lagrede nøgler.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Administrator eller Operator.

Nødvendige indstillinger

Mulighed

Beskrivelse

-k, --key-id TEXT

ID for den nøgle, der skal genereres CSR for

--country TEXT TEXT

Landets navn

--state-or-province TEXT `` ``

Staten eller provinsens navn

--locality TEXT TEXT

Lokalitetsnavn

--organization TEXT `` TEXT``

Organisationens navn

--organizational-unit TEXT TEXT

Navnet på den organisatoriske enhed

--common-name TEXT TEXT

Det fælles navn

--email-address TEXT `` ``

E-mail-adresse

Eksempel

$ 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-----

Vigtigste operationer#

Krypter#

NetHSM kan kryptere data for symmetriske nøgler, der er gemt i Key Store. Derimod kan data med asymmetriske nøgler ikke krypteres på NetHSM på grund af konceptet i kryptografi med offentlige nøgler om at gøre den offentlige nøgle tilgængelig for alle. For asymmetriske nøgler leverer NetHSM den offentlige nøgle, som kan bruges til kryptering med et eksternt værktøj. Se venligst Show Key Details for at få mere at vide om, hvordan man henter den offentlige nøgle for en nøgle i Key Store.

Data kan krypteres med en symmetrisk nøgle på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Operator.

Nødvendige indstillinger

Mulighed

Beskrivelse

-k, --key-id TEXT

ID for den nøgle, som dataene skal krypteres med

-d, --data TEXT<x>

Dataene i Base64-kodning

-m, --mode [AES_CBC]

Krypteringstilstand

-iv, --initialization-vector TEXT

Initialiseringsvektoren i Base64-kodning

Eksempel

$ 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==

Dette udskriver den krypterede og base64-kodede meddelelse NetHSM rulezzzzzzzzzzzzzzzzzzz! og initialiseringsvektoren.

Data kan krypteres for asymmetriske nøgler med OpenSSL på følgende måde.

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

Dette skriver den krypterede og base64-kodede meddelelse NetHSM rulez! ind i filen data.crypt ved hjælp af den offentlige nøgle fra public.pem.

Dekrypter#

NetHSM kan dekryptere data for en privat nøgle, der er gemt i Key Store på NetHSM. I dette eksempel anvendes den krypterede meddelelse fra det foregående kapitel Krypter.

De understøttede dekrypteringstilstande er som følger.

  • TAG

  • PKCS1

  • FILENAME

  • --network

  • OAEP_SHA224

  • OAEP_SHA224

  • OAEP_SHA224

  • OAEP_SHA224

  • USER_ID

Dataene kan dekrypteres på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Operator.

Nødvendige indstillinger

Mulighed

Beskrivelse

-k, --key-id TEXT

ID for nøglen til dekryptering af databredden

-d, --data TEXT<x>

De krypterede data i Base64-kodning

-d, --data TEXT<x>

Dekrypteringstilstand. De tilgængelige tilstande er anført ovenfor.

Eksempel

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

Skilt#

NetHSM kan signere data for en privat nøgle, der er gemt i Key Store på NetHSM. For signaturer med en RSA- og ECDSA-nøgle skal der først beregnes en digest.

For at beregne et digest kræves dataene først. En meddelelse oprettes på følgende måde.

$ echo 'NetHSM rulez!' > data

Digest-koden beregnes med OpenSSL på følgende måde.

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

De understøttede signeringstilstande er som følger.

  • PKCS1

  • USER_ID

  • FILENAME

  • Curve25519

  • Curve25519

  • Curve25519

  • Curve25519

  • PKCS1

  • PKCS1

Ud fra digestet kan der oprettes en signatur på følgende måde.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Operator.

Nødvendige indstillinger

Mulighed

Beskrivelse

-k, --key-id TEXT

ID for den nøgle, der skal signere databredden

-d, --data TEXT<x>

De data, der skal signeres, kodet ved hjælp af Base64

-d, --data TEXT<x>

Tegntilstand

Eksempel

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

Den oprettede signatur kan verificeres med OpenSSL på følgende måde.

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

Tilfældig#

NetHSM kan levere tilfældige bytes som en Base64-streng.

Nødvendig rolle

Denne operation kræver en godkendelse med rollen Operator.

Argumenter

Argument

Beskrivelse

--time

Bytes, der skal hentes

Eksempel

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