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.