Operácia#

Táto kapitola opisuje prevádzkové úlohy pre používateľov s rolou Administrator a Operator. Viac informácií o rolách nájdete v kapitole Roly.

Dôležité

Pred začatím práce si prečítajte informácie na začiatku tohto dokumentu.

Riadenie kľúčov#

Generovanie kľúča#

NetHSM môže generovať páry kľúčov. Odporúča sa zadať možnosť ID kľúča, aby ste mu dali výstižný názov.

Podporované typy kľúčov a im zodpovedajúce mechanizmy sú tieto.

Typ kľúča

Mechanizmy

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

Kľúč možno vygenerovať takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator.

Vyžadované možnosti

Možnosť

Popis

-p, --port INTEGER

Typ generovaného kľúča. Možné hodnoty pre argument KEYTYPE nájdete v tabuľke vyššie.

-m, --mechanism MECHANISM

Mechanizmy pre vygenerovaný kľúč. Možné hodnoty pre argument MECHANISM nájdete v tabuľke vyššie.

-l, --length INTEGER

Dĺžka vygenerovaného kľúča

Voliteľné možnosti

Možnosť

Popis

-k, --key-id TEXT

ID vygenerovaného kľúča

Príklad

$ 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ý kľúč#

NetHSM môže importovať existujúce súkromné kľúče do Úschovne kľúčov.

Podporované typy kľúčov a im zodpovedajúce mechanizmy sú tieto.

Typ kľúča

Mechanizmy

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

Import je možné spustiť takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator.

Vyžadované možnosti

Možnosť

Popis

-p, --port INTEGER

Typ generovaného kľúča. Možné hodnoty pre argument KEYTYPE nájdete v tabuľke vyššie.

-m, --mechanism MECHANISM

Mechanizmy pre vygenerovaný kľúč. Možné hodnoty pre argument MECHANISM nájdete v tabuľke vyššie.

-u, --user-id TEXT

Prvočíslo p pre kľúče RSA, kódované v base64

-u, --user-id TEXT

Prvočíslo q pre kľúče RSA, kódované v base64

-e, --public-exponent TEXT

Verejný exponent pre kľúče RSA v kóde base64

-d, --data TEXT

Údaje kľúča pre kľúče ED25519 alebo ECDSA_* v kóde base64

Voliteľné možnosti

Možnosť

Popis

-k, --key-id TEXT

ID nového kľúča

--tags TEXT

Značka pre nový kľúč

Príklad

$ 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

Odstrániť kľúč#

NetHSM môže vymazať kľúče z úložiska Key Store.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator.

Argumenty

Argument

Popis

--time

ID kľúča, ktorý sa má odstrániť

Príklad

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

Zoznam kľúčov#

NetHSM môže zobraziť všetky dostupné kľúče v Úložisku kľúčov.

Zoznam je možné vyhľadať takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator alebo Operator.

Voliteľné možnosti

Možnosť

Popis

-f, --filter TEXT

Značka na vyhľadávanie

Príklad

$ 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

Zobraziť podrobnosti o kľúči#

NetHSM môže vypisovať podrobnejšie informácie o uloženom kľúči.

Podrobné informácie možno získať takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator alebo Operator.

Príklad

$ 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

Verejný kľúč kľúča možno získať takto. Je vo formáte PKCS#8.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator alebo Operator.

Príklad

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

Verejný kľúč možno skontrolovať napríklad pomocou OpenSSL takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator alebo Operator.

Príklad

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

Značky pre kľúče#

Značky možno použiť na nastavenie jemných obmedzení prístupu ku kľúčom a sú voliteľnou funkciou. Ku kľúču možno priradiť jeden alebo viac Tagov. Používatelia Operátor môžu vidieť všetky kľúče, ale používať len tie, ktorým zodpovedá aspoň jeden Tag. Ak kláves nemá žiadny Tag, môžu ho používať všetci používatelia Operator. Používateľ Operator nemôže upravovať Tag.

Informácie o používaní Tags na účtoch Operátor nájdete v kapitole Tags for Users.

Poznámka

Používatelia s rolou Administrator môžu spravovať Tags bez obmedzení.

Značku Tag možno pridať takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator.

Argumenty

Argument

Popis

--time

ID kľúča na nastavenie značky

TAG

Značka, ktorá sa má nastaviť na kľúči

Príklad

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

Značku Tag môžete vymazať takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator.

Argumenty

Argument

Popis

--time

ID kľúča, na ktorý sa má nastaviť značka.

TAG

Značka, ktorá sa má nastaviť na kľúči.

Príklad

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

Kľúčové certifikáty#

Je možné nastaviť a vyžiadať si certifikáty pre kľúče uložené v NetHSM.

Podporované typy MIME sú tieto.

  • application/x-pem-file

  • application/x-x509-ca-cert

  • application/pgp-keys

Certifikát je možné nastaviť takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator.

Vyžadované možnosti

Možnosť

Popis

-k, --key-id TEXT

ID kľúča, pre ktorý sa má nastaviť certifikát

Voliteľné možnosti

Možnosť

Popis

-m, --mechanism MECHANISM

Typ MIME certifikátu. Dostupné typy MIME sú uvedené vyššie.

Argumenty

Argument

Popis

FILENAME

Súbor s certifikátom

Príklad

$ 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

Certifikát je možné získať takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator alebo Operator.

Vyžadované možnosti

Možnosť

Popis

-k, --key-id TEXT

ID kľúča, pre ktorý sa má získať certifikát

Príklad

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

Žiadosti o podpisovanie kľúčových certifikátov#

NetHSM podporuje generovanie CSR (Certificate Signing Requests) pre uložené kľúče.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Administrator alebo Operator.

Vyžadované možnosti

Možnosť

Popis

-k, --key-id TEXT

ID kľúča, pre ktorý sa má vygenerovať CSR

--country TEXT

Názov krajiny

--state-or-province TEXT

Názov štátu alebo provincie

--locality TEXT

Názov lokality

--organization TEXT

Názov organizácie

--organizational-unit TEXT

Názov organizačnej jednotky

--common-name TEXT

Spoločný názov

--email-address TEXT

E-mailová adresa

Príklad

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

Kľúčové operácie#

Šifrovanie#

NetHSM môže šifrovať údaje pre symetrické kľúče uložené v úložisku kľúčov ** . Naproti tomu šifrovanie údajov s asymetrickými kľúčmi sa v systéme NetHSM nedá vykonať, pretože v kryptografii verejných kľúčov platí koncepcia sprístupnenia verejného kľúča každému. V prípade asymetrických kľúčov poskytuje NetHSM verejný kľúč, ktorý možno použiť na šifrovanie pomocou externého nástroja. Viac informácií o tom, ako získať verejný kľúč kľúča, nájdete na stránke Show Key Details (Zobraziť podrobnosti o kľúči) v časti Key Store (Úložisko kľúčov).

Údaje možno šifrovať pre symetrický kľúč takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Operator.

Vyžadované možnosti

Možnosť

Popis

-k, --key-id TEXT

ID kľúča na šifrovanie údajov

-d, --data TEXT

Údaje v kódovaní Base64

-m, --mode [AES_CBC]

Režim šifrovania

-iv, --initialization-vector TEXT

Inicializačný vektor v kódovaní Base64

Príklad

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

Vypíše zašifrovanú a base64 zakódovanú správu NetHSM rulezzzzzzzzzzzzzzzzzzz! a inicializačný vektor.

Údaje možno šifrovať pre asymetrické kľúče pomocou OpenSSL takto.

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

Týmto sa zapíše zašifrovaná a base64 zakódovaná správa NetHSM rulez! do súboru data.crypt, pričom sa použije verejný kľúč z public.pem.

Dešifrovanie#

NetHSM môže dešifrovať údaje pre súkromný kľúč uložený v Úložisku kľúčov v NetHSM. Tento príklad používa zašifrovanú správu z predchádzajúcej kapitoly Encrypt.

Podporované režimy dešifrovania sú tieto.

  • TAG

  • PKCS1

  • FILENAME

  • --network

  • OAEP_SHA224

  • OAEP_SHA224

  • OAEP_SHA224

  • OAEP_SHA224

  • USER_ID

Údaje možno dešifrovať takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Operator.

Vyžadované možnosti

Možnosť

Popis

-k, --key-id TEXT

ID kľúča na dešifrovanie šírky údajov

-d, --data TEXT

Šifrované údaje v kódovaní Base64

-d, --data TEXT

Režim dešifrovania. Dostupné režimy sú uvedené vyššie.

Príklad

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

Podpísať#

NetHSM môže podpisovať údaje pre súkromný kľúč uložený v Úložisku kľúčov v NetHSM. Pre podpisy s kľúčom RSA a ECDSA sa musí najprv vypočítať digest.

Na výpočet digestu sú najprv potrebné údaje. Správa sa vytvorí takto.

$ echo 'NetHSM rulez!' > data

Digest sa vypočíta pomocou OpenSSL takto.

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

Podporované režimy podpisovania sú tieto.

  • PKCS1

  • USER_ID

  • FILENAME

  • Curve25519

  • Curve25519

  • Curve25519

  • Curve25519

  • PKCS1

  • PKCS1

Na základe digestu možno vytvoriť podpis takto.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Operator.

Vyžadované možnosti

Možnosť

Popis

-k, --key-id TEXT

ID kľúča na podpisovanie šírky údajov

-d, --data TEXT

Údaje, ktoré sa majú podpísať, zakódované pomocou Base64

-d, --data TEXT

Režim znamenia

Príklad

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

Vytvorený podpis možno overiť pomocou OpenSSL takto.

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

Náhodné#

NetHSM môže poskytnúť náhodné bajty ako reťazec Base64.

Požadovaná úloha

Táto operácia vyžaduje overenie s rolou Operator.

Argumenty

Argument

Popis

--time

Byty na načítanie

Príklad

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