Operațiunea#

Acest capitol descrie sarcinile operaționale pentru utilizatorii cu rolurile Administrator și Operator. Vă rugăm să consultați capitolul Roluri pentru a afla mai multe despre rol.

Important

Vă rugăm să vă asigurați că ați citit informațiile de la începutul acestui document înainte de a începe să lucrați.

Managementul cheilor#

Generarea cheii#

NetHSM poate genera perechi de chei. Se recomandă să specificați opțiunea ID cheie pentru a-i da un nume expresiv.

Tipurile de chei acceptate și mecanismele corespunzătoare acestora sunt următoarele.

Tipul de cheie

Mecanisme

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

Cheia poate fi generată după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator.

Opțiuni necesare

Opțiunea

Descriere

-p, --port INTEGER

Tipul pentru cheia generată. Valorile posibile pentru argumentul KEYTYPE` pot fi găsite în tabelul de mai sus.

-m, --mechanism MECHANISM

Mecanismele pentru cheia generată. Valorile posibile pentru argumentul MECHANISM` pot fi găsite în tabelul de mai sus.

-l, --length INTEGER

Lungimea cheii generate

Opțiuni opționale

Opțiunea

Descriere

-k, --key-id TEXT

ID-ul cheii generate

Exemplu

$ 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

Cheie de import#

NetHSM poate importa chei private existente în Key Store.

Tipurile de chei acceptate și mecanismele corespunzătoare acestora sunt următoarele.

Tipul de cheie

Mecanisme

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

Importul poate fi inițiat după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator.

Opțiuni necesare

Opțiunea

Descriere

-p, --port INTEGER

Tipul pentru cheia generată. Valorile posibile pentru argumentul KEYTYPE` pot fi găsite în tabelul de mai sus.

-m, --mechanism MECHANISM

Mecanismele pentru cheia generată. Valorile posibile pentru argumentul MECHANISM` pot fi găsite în tabelul de mai sus.

-u, --user-id TEXT

Prima p pentru cheile RSA

-u, --user-id TEXT

Prima q pentru cheile RSA

-e, --public-exponent TEXT

Exponentul public pentru cheile RSA

-d, --data TEXT

Datele cheii pentru cheile ED25519 sau ECDSA_*.

Opțiuni opționale

Opțiunea

Descriere

-k, --key-id TEXT

ID-ul noii chei

Exemplu

$ 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

Tastă de ștergere#

NetHSM poate șterge chei din Key Store.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator.

Argumente

Argument

Descriere

--time`

ID-ul cheii care trebuie ștearsă

Exemplu

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

Chei de listă#

NetHSM poate enumera toate cheile disponibile în Key Store.

Lista poate fi consultată după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator sau Operator.

Exemplu

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

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

Afișați detalii cheie#

NetHSM poate emite informații mai detaliate despre o cheie stocată.

Informațiile detaliate pot fi preluate după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator sau Operator.

Exemplu

$ 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

Cheia publică a unei chei poate fi obținută după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator sau Operator.

Exemplu

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

Cheia publică poate fi inspectată, de exemplu, cu OpenSSL, după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator sau Operator.

Exemplu

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

Etichete pentru Chei#

Tagurile pot fi utilizate pentru a stabili restricții de acces la chei și reprezintă o caracteristică opțională. Utilizatorii Operator pot vedea toate cheile, dar le pot utiliza numai pe cele care au cel puțin un Tag corespunzător. În cazul în care o cheie nu are niciun Tag, aceasta poate fi utilizată de toți utilizatorii Operator. O cheie nu poate fi modificată de un utilizator Operator.

Pentru a afla cum se utilizează Tags pe conturile Operator, consultați capitolul Tags pentru utilizatori.

Notă

Tags sunt gestionate fără restricții de către utilizatorii cu rolul Administrator.

Tag-ul poate fi adăugat după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator.

Argumente

Argument

Descriere

--time`

ID-ul cheii pe care se stabilește eticheta

TAG`

Eticheta care trebuie să seteze pe cheie

Exemplu

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

Tag-ul poate fi șters după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator.

Argumente

Argument

Descriere

--time`

ID-ul cheii pe care se stabilește eticheta.

TAG`

Eticheta care trebuie fixată pe cheie.

Exemplu

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

Certificatele cheie#

Este posibil să setați și să interogați certificate pentru cheile stocate pe un NetHSM.

Tipurile MIME acceptate sunt următoarele.

  • application/x-pem-file`

  • application/x-x509-ca-cert`

  • application/pgp-keys`

Certificatul poate fi setat după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator.

Opțiuni necesare

Opțiunea

Descriere

-k, --key-id TEXT

ID-ul cheii pentru care se stabilește certificatul

Opțiuni opționale

Opțiunea

Descriere

-m, --mechanism MECHANISM

Tipul MIME al certificatului. Tipurile MIME disponibile sunt enumerate mai sus.

Argumente

Argument

Descriere

FILENAME`

Fișier de certificat

Exemplu

$ 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

Certificatul poate fi recuperat după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator sau Operator.

Opțiuni necesare

Opțiunea

Descriere

-k, --key-id TEXT

ID-ul cheii pentru care se obține certificatul

Exemplu

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

Cereri de semnare a certificatelor cheie#

NetHSM acceptă generarea de CSR (Certificate Signing Requests) pentru cheile stocate.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Administrator.

Opțiuni necesare

Opțiunea

Descriere

-k, --key-id TEXT

ID-ul cheii pentru care se generează CSR-ul

--country` TEXT`

Numele țării

--state-or-province` TEXT`

Numele statului sau al provinciei

--locality` TEXT`

Numele localității

--organization TEXT`

Numele organizației

--organizational-unit TEXT`

Numele unității organizaționale

--common-name` TEXT`

Denumirea comună

--email-address TEXT`

Adresa de e-mail

Exemplu

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

Operațiuni cheie#

Criptare#

NetHSM nu poate cripta datele, dar furnizează cheia publică care poate fi utilizată pentru criptare. Pentru a afla cum să recuperați cheia publică, consultați capitolul Show Key Details.

Datele pot fi criptate cu OpenSSL după cum urmează.

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

Acest lucru scrie mesajul criptat și codificat în baza64 NetHSM rulez! în fișierul data.crypt.

Decriptare#

NetHSM poate decripta date pentru o cheie privată stocată în Key Store de pe NetHSM. Acest exemplu utilizează mesajul criptat din capitolul anterior Criptare.

Modurile de decriptare acceptate sunt următoarele.

  • TAG`

  • PKCS1`

  • FILENAME`

  • --network`

  • OAEP_SHA224`

  • OAEP_SHA224`

  • OAEP_SHA224`

  • OAEP_SHA224`

  • USER_ID`

Datele pot fi decriptate după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Operator.

Opțiuni necesare

Opțiunea

Descriere

-k, --key-id TEXT

ID-ul cheii pentru decriptarea lățimii datelor

-d, --data TEXT

Datele criptate în codificare Base64

-d, --data TEXT

Modul de decriptare. Modurile disponibile sunt enumerate mai sus.

Exemplu

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

Semnează#

NetHSM poate semna date pentru o cheie privată stocată în Key Store de pe NetHSM. Pentru semnăturile cu o cheie RSA și ECDSA, trebuie să se calculeze mai întâi un compendiu.

Pentru a calcula un compendiu sunt necesare mai întâi datele. Se creează un mesaj după cum urmează.

$ echo 'NetHSM rulez!' > data

Digestul este calculat cu OpenSSL după cum urmează.

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

Modurile de semnare acceptate sunt următoarele.

  • PKCS1`

  • USER_ID`

  • FILENAME`

  • Curve25519`

  • Curve25519`

  • Curve25519`

  • Curve25519`

  • PKCS1`

  • PKCS1`

Pe baza sumarului se poate crea o semnătură după cum urmează.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Operator.

Opțiuni necesare

Opțiunea

Descriere

-k, --key-id TEXT

ID-ul cheii de semnare a lățimii datelor

-d, --data TEXT

Datele care urmează să fie semnate, codificate folosind Base64

-d, --data TEXT

Modul de semnalizare

Exemplu

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

Semnătura creată poate fi verificată cu OpenSSL după cum urmează.

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

Aleatoriu#

NetHSM poate furniza octeți aleatori sub forma unui șir Base64.

Rolul necesar

Această operațiune necesită o autentificare cu rolul Operator.

Argumente

Argument

Descriere

--time`

Byte de recuperat

Exemplu

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