Operation#

I det här kapitlet beskrivs operativa uppgifter för användare med rollerna Administratör och Operatör. Se kapitel Roller för att läsa mer om rollerna.

Viktigt

Se till att du läser informationen i början av det här dokumentet innan du börjar arbeta.

Nyckelhantering#

Generera nyckel#

NetHSM kan generera nyckelpar. Det rekommenderas att ange alternativet nyckel-ID för att ge det ett uttrycksfullt namn.

Följande nyckeltyper och motsvarande mekanismer stöds.

Nyckeltyp

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

Nyckeln kan genereras på följande sätt.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator.

Obligatoriska alternativ

Alternativ

Beskrivning

-p, --port INTEGER

Typ för den genererade nyckeln. Möjliga värden för argumentet KEYTYPE finns i tabellen ovan.

-m, --mechanism MECHANISM

Mekanismerna för den genererade nyckeln. Möjliga värden för argumentet MECHANISM finns i tabellen ovan.

-l, --length INTEGER

Längden på den genererade nyckeln

Valfria alternativ

Alternativ

Beskrivning

-k, --key-id TEXT

ID för den genererade nyckeln

Exempel

$ 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

Importnyckel#

NetHSM kan importera befintliga privata nycklar till Key Store.

Följande nyckeltyper och motsvarande mekanismer stöds.

Nyckeltyp

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 RSA_Signature_PSS_MD5 RSA_Signature_PSS_SHA1 <x>`<xRSA_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 inledas på följande sätt.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator.

Obligatoriska alternativ

Alternativ

Beskrivning

-p, --port INTEGER

Typ för den genererade nyckeln. Möjliga värden för argumentet KEYTYPE finns i tabellen ovan.

-m, --mechanism MECHANISM

Mekanismerna för den genererade nyckeln. Möjliga värden för argumentet MECHANISM finns i tabellen ovan.

-u, --user-id TEXT

Primtalet p för RSA-nycklar, base64-kodade

-u, --user-id TEXT

Primtal q för RSA-nycklar, base64-kodade

-e, --public-exponent TEXT

Den offentliga exponenten för RSA-nycklar, base64-kodad

-d, --data TEXT

Nyckeldata för ED25519- eller ECDSA_*-nycklar, base64-kodade

Valfria alternativ

Alternativ

Beskrivning

-k, --key-id TEXT

ID för den nya nyckeln

--tags TEXT

Taggen för den nya nyckeln

Exempel

$ 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

Radera-knappen#

NetHSM kan ta bort nycklar från Key Store.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator.

Argument

Argument

Beskrivning

--time

Nyckel-ID för den nyckel som ska raderas

Exempel

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

Lista nycklar#

NetHSM kan lista alla tillgängliga nycklar i Key Store.

Listan kan hämtas på följande sätt.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator eller Operator.

Valfria alternativ

Alternativ

Beskrivning

-f, --filter TEXT

Den tagg som ska sökas

Exempel

$ 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

Visa viktiga detaljer#

NetHSM kan ge mer detaljerad information om en lagrad nyckel.

Den detaljerade informationen kan hämtas på följande sätt.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator eller Operator.

Exempel

$ 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 publika nyckeln för en nyckel kan hämtas på följande sätt. Den är i PKCS#8-format.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator eller Operator.

Exempel

$ 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 offentliga nyckeln kan inspekteras till exempel med OpenSSL på följande sätt.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator eller Operator.

Exempel

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

Taggar för Keys#

Taggar kan användas för att ställa in finkorniga åtkomstbegränsningar för nycklar och är en valfri funktion. En eller flera Taggar kan tilldelas en tangent. Användare av Operator kan se alla tangenter, men endast använda dem som har minst en motsvarande Tag. Om en nyckel inte har någon Tag kan den användas av alla Operator -användare. En Tag kan inte ändras av en Operator -användare.

Om du vill veta hur du använder TagsOperator-konton, se kapitel Tags för användare.

Observera

Tags hanteras utan begränsningar av användare med rollen Administrator.

Tag kan läggas till på följande sätt.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator.

Argument

Argument

Beskrivning

--time

Nyckel-ID för att ställa in taggen på

TAG

Den märkning som ska sättas på nyckeln

Exempel

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

Tag kan raderas på följande sätt.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator.

Argument

Argument

Beskrivning

--time

Det nyckel-ID som taggen ska sättas på.

TAG

Den märkning som ska sättas på nyckeln.

Exempel

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

Importera nycklar och certifikat#

Det är möjligt att ställa in och fråga efter certifikat för de nycklar som lagras på en NetHSM.

Följande MIME-typer stöds.

  • application/x-pem-file

  • application/x-x509-ca-cert

  • application/pgp-keys

Certifikatet kan ställas in på följande sätt.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator.

Obligatoriska alternativ

Alternativ

Beskrivning

-k, --key-id TEXT

ID för den nyckel som certifikatet ska fastställas för.

Valfria alternativ

Alternativ

Beskrivning

-m, --mechanism MECHANISM

Certifikatets MIME-typ. De tillgängliga MIME-typerna anges ovan.

Argument

Argument

Beskrivning

FILENAME

Certifikatfil

Exempel

$ 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 hämtas på följande sätt.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator eller Operator.

Obligatoriska alternativ

Alternativ

Beskrivning

-k, --key-id TEXT

ID för den nyckel som certifikatet ska hämtas för.

Exempel

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

Begäran om signering av nyckelcertifikat#

NetHSM stöder generering av CSR (Certificate Signing Requests) för de lagrade nycklarna.

Obligatorisk roll

Den här åtgärden kräver autentisering med rollen Administrator eller Operator.

Obligatoriska alternativ

Alternativ

Beskrivning

-k, --key-id TEXT

ID för den nyckel som ska generera CSR för.

--country TEXT

Landets namn

--state-or-province TEXT

Namnet på delstaten eller provinsen

--locality TEXT

Namnet på orten

--organization TEXT

Organisationens namn

--organizational-unit TEXT

Namnet på organisationsenheten

--common-name TEXT

Det gemensamma namnet

--email-address TEXT

E-postadressen

Exempel

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

Viktiga verksamheter#

Kryptera#

NetHSM kan kryptera data för symmetriska nycklar som lagras i Key Store. Däremot kan man inte kryptera data med asymmetriska nycklar på NetHSM, eftersom konceptet i kryptografi med offentliga nycklar innebär att den offentliga nyckeln är tillgänglig för alla. För asymmetriska nycklar tillhandahåller NetHSM den offentliga nyckeln, som kan användas för kryptering med ett externt verktyg. Se Show Key Details för att lära dig mer om hur du hämtar den offentliga nyckeln för en nyckel i Key Store.

Data kan krypteras med en symmetrisk nyckel på följande sätt.

Obligatorisk roll

Denna operation kräver autentisering med rollen Operator.

Obligatoriska alternativ

Alternativ

Beskrivning

-k, --key-id TEXT

ID för nyckeln som data ska krypteras med

-d, --data TEXT

Data i Base64-kodning

-m, --mode [AES_CBC]

Läge för kryptering

-iv, --initialization-vector TEXT

Initialiseringsvektorn i Base64-kodning

Exempel

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

Detta skriver ut det krypterade och base64-kodade meddelandet NetHSM rulezzzzzzzzzzzzzzzzzzz! och initialiseringsvektorn.

Data kan krypteras för asymmetriska nycklar med OpenSSL på följande sätt.

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

Detta skriver det krypterade och base64-kodade meddelandet NetHSM rulez! till filen data.crypt, med hjälp av den offentliga nyckeln från public.pem.

Avkryptera#

NetHSM kan dekryptera data för en privat nyckel som är lagrad i Key Store på NetHSM. I det här exemplet används det krypterade meddelandet från föregående kapitel Kryptera.

De dekrypteringslägen som stöds är följande.

  • TAG

  • PKCS1

  • FILENAME

  • --network

  • OAEP_SHA224

  • OAEP_SHA224

  • OAEP_SHA224

  • OAEP_SHA224

  • USER_ID

Uppgifterna kan dekrypteras på följande sätt.

Obligatorisk roll

Denna operation kräver autentisering med rollen Operator.

Obligatoriska alternativ

Alternativ

Beskrivning

-k, --key-id TEXT

ID för nyckeln för att dekryptera data bredd

-d, --data TEXT

De krypterade uppgifterna i Base64-kodning.

-d, --data TEXT

Dekrypteringsläget. Tillgängliga lägen finns i listan ovan.

Exempel

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

Skylt#

NetHSM kan signera data för en privat nyckel som lagras i Key Store på NetHSM. För signaturer med en RSA- och ECDSA-nyckel måste en digest beräknas först.

För att beräkna en digest krävs först data. Ett meddelande skapas på följande sätt.

$ echo 'NetHSM rulez!' > data

Digestvärdet beräknas med OpenSSL på följande sätt.

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

De signeringslägen som stöds är följande.

  • PKCS1

  • USER_ID

  • FILENAME

  • Curve25519

  • Curve25519

  • Curve25519

  • Curve25519

  • PKCS1

  • PKCS1

Från digestet kan en signatur skapas på följande sätt.

Obligatorisk roll

Denna operation kräver autentisering med rollen Operator.

Obligatoriska alternativ

Alternativ

Beskrivning

-k, --key-id TEXT

ID för nyckeln för signering av databredden.

-d, --data TEXT

De data som ska signeras och kodas med Base64.

-d, --data TEXT

Teckenläge

Exempel

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

Den skapade signaturen kan verifieras med OpenSSL på följande sätt.

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

Slumpmässig#

NetHSM kan tillhandahålla slumpmässiga bytes som en Base64-sträng.

Obligatorisk roll

Denna operation kräver autentisering med rollen Operator.

Argument

Argument

Beskrivning

--time

Bytes att hämta

Exempel

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