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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Keys are assigned to the Namespace of the user that generates the key.
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 |
---|---|
|
Typ generovaného kľúča. Možné hodnoty pre argument |
|
Mechanizmy pre vygenerovaný kľúč. Možné hodnoty pre argument |
|
Dĺžka vygenerovaného kľúča |
Voliteľné možnosti
Možnosť |
Popis |
---|---|
|
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
Informácie o koncovom bode /keys/generate nájdete v Dokumentácii API.
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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Keys are assigned to the Namespace of the user that imports the key.
Súkromný kľúč zo súboru PEM importujte do NetHSM takto.
Požadovaná úloha
Táto operácia vyžaduje overenie s rolou Administrator.
Argumenty
Argument |
Popis |
---|---|
|
Private key file in PEM format |
Voliteľné možnosti
Možnosť |
Popis |
---|---|
|
Mechanizmy pre vygenerovaný kľúč. Možné hodnoty pre argument |
|
ID nového kľúča |
|
Značka pre nový kľúč |
Príklad
$ nitropy nethsm --host $NETHSM_HOST import-key \
--mechanism RSA_Signature_PSS_SHA256 \
--mechanism RSA_Decryption_PKCS1 \
--key-id myFirstKey \
mykey.pem
Key myFirstKey added to NetHSM localhost:8443
Informácie o koncovom bode /keys nájdete v Dokumentácii API.
Private keys in raw format can be imported as follows.
Požadovaná úloha
Táto operácia vyžaduje overenie s rolou Administrator.
Vyžadované možnosti
Možnosť |
Popis |
---|---|
|
Typ generovaného kľúča. Možné hodnoty pre argument |
|
Mechanizmy pre vygenerovaný kľúč. Možné hodnoty pre argument |
|
Prvočíslo p pre kľúče RSA, kódované v base64 |
|
Prvočíslo q pre kľúče RSA, kódované v base64 |
|
Verejný exponent pre kľúče RSA v kóde base64 |
|
Údaje kľúča pre kľúče ED25519 alebo ECDSA_* v kóde base64 |
Voliteľné možnosti
Možnosť |
Popis |
---|---|
|
ID nového kľúča |
|
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
Informácie o koncovom bode /keys nájdete v Dokumentácii API.
Odstrániť kľúč¶
The NetHSM can delete keys from the Key Store. Users can only delete keys in their Namespace.
Požadovaná úloha
Táto operácia vyžaduje overenie s rolou Administrator.
Argumenty
Argument |
Popis |
---|---|
|
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
Informácie o koncovom bode /keys/{KeyID} nájdete v dokumentácii API.
Zoznam kľúčov¶
The NetHSM can list all keys in the Key Store that are in the Namespace of the current user.
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 |
---|---|
|
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
Informácie o koncovom bode /keys nájdete v Dokumentácii API.
Zobraziť podrobnosti o kľúči¶
The NetHSM can output more detailed information about a stored key. Users can only access keys in their Namespace.
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
Informácie o koncovom bode /keys/{KeyID} nájdete v dokumentácii API.
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-----
Informácie o koncovom bode /keys/{KeyID}/public.pem nájdete v API documentation.
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-----
Informácie o koncovom bode /keys/{KeyID}/public.pem nájdete v API documentation.
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 |
---|---|
|
ID kľúča, pre ktorý sa má nastaviť certifikát |
Voliteľné možnosti
Možnosť |
Popis |
---|---|
|
Typ MIME certifikátu. Dostupné typy MIME sú uvedené vyššie. |
Argumenty
Argument |
Popis |
---|---|
|
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
Informácie o koncovom bode /keys/{KeyID}/cert nájdete v API dokumentácii.
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 |
---|---|
|
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-----
Informácie o koncovom bode /keys/{KeyID}/cert nájdete v API dokumentácii.
Ž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 |
---|---|
|
ID kľúča, pre ktorý sa má vygenerovať CSR |
|
Názov krajiny |
|
Názov štátu alebo provincie |
|
Názov lokality |
|
Názov organizácie |
|
Názov organizačnej jednotky |
|
Spoločný názov |
|
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-----
Informácie o koncovom bode /keys/{KeyID}/csr.pem nájdete v API documentation.
Kľúčové operácie¶
All operations described in this chapter can only be executed for keys that are in the Namespace of the current user.
Š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 |
---|---|
|
ID kľúča na šifrovanie údajov |
|
Údaje v kódovaní Base64 |
|
Režim šifrovania |
|
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==
Informácie o koncovom bode /keys/{KeyID}/encrypt nájdete v API documentation.
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 |
---|---|
|
ID kľúča na dešifrovanie šírky údajov |
|
Šifrované údaje v kódovaní Base64 |
|
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!
Informácie o koncovom bode /keys/{KeyID}/decrypt nájdete v API documentation.
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 |
---|---|
|
ID kľúča na podpisovanie šírky údajov |
|
Údaje, ktoré sa majú podpísať, zakódované pomocou Base64 |
|
Režim znamenia |
Príklad
$ nitropy nethsm -h $NETHSM_HOST sign -k myFirstKey -m PKCS1 -d "$(cat data.digest)" | base64 -d > data.sig
Informácie o koncovom bode /keys/{KeyID}/sign nájdete v API documentation.
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 |
---|---|
|
Byty na načítanie |
Príklad
nitropy nethsm --host $NETHSM_HOST random 4
94A2rg==
Informácie o koncovom bode /random nájdete v Dokumentácii API.