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, codată în baza 64

-u, --user-id TEXT

Primul q pentru cheile RSA, codat în baza 64

-e, --public-exponent TEXT

Exponentul public pentru cheile RSA, codat în baza 64

-d, --data TEXT

Datele cheii pentru cheile ED25519 sau ECDSA_*, codificate în baza 64.

Opțiuni opționale

Opțiunea

Descriere

-k, --key-id TEXT

ID-ul noii chei

--tags TEXT

Eticheta pentru noua cheie

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.

Opțiuni opționale

Opțiunea

Descriere

-f, --filter TEXT

Eticheta care trebuie căutată

Exemplu

$ 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

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ă. Este în format PKCS#8.

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#

Etichetele pot fi utilizate pentru a stabili restricții de acces de finețe pentru chei și reprezintă o caracteristică opțională. Una sau mai multe Tags pot fi atribuite unei chei. Utilizatorii Operator pot vedea toate cheile, dar le pot utiliza numai pe cele care au cel puțin o etichetă Tag corespunzătoare. În cazul în care o cheie nu are Tag, aceasta poate fi utilizată de toți utilizatorii Operator. O etichetă Tag 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 sau Operator.

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 poate cripta date pentru chei simetrice, stocate în Key Store. În schimb, criptarea datelor cu chei asimetrice nu poate fi efectuată pe NetHSM, din cauza conceptului de criptografie cu cheie publică, care prevede ca cheia publică să fie disponibilă tuturor. În cazul cheilor asimetrice, NetHSM furnizează cheia publică, care poate fi utilizată pentru criptarea cu un instrument extern. Vă rugăm să consultați Show Key Details pentru a afla mai multe despre cum se poate prelua cheia publică a unei chei în Key Store.

Datele pot fi criptate pentru o cheie simetrică 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 cu care se criptează datele

-d, --data TEXT

Datele în codificare Base64

-m, --mode [AES_CBC]

Modul de criptare

-iv, --initialization-vector TEXT

Vectorul de inițializare în codificare Base64

Exemplu

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

Aceasta tipărește mesajul criptat și codificat în baza64 NetHSM rulezzzzzzzzzzzzzzzzzzz!, precum și vectorul de inițializare.

Datele pot fi criptate pentru chei asimetrice 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, folosind cheia publică din public.pem.

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