Operacija#

V tem poglavju so opisana operativna opravila za uporabnike z vlogo Administrator in Operator. Za več informacij o vlogi glejte poglavje Vloge.

Pomembno

Pred začetkom dela preberite informacije na začetku tega dokumenta.

Upravljanje ključev#

Ustvarjanje ključa#

NetHSM lahko ustvari pare ključev. Priporočljivo je, da določite možnost ID ključa in mu tako dodelite izrazito ime.

Podprte vrste ključev in ustrezni mehanizmi so naslednji.

Vrsta ključa

Mehanizmi

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 id="231"></x> 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

Ključ lahko ustvarite na naslednji način.

Potrebna vloga

Ta operacija zahteva preverjanje pristnosti z vlogo Administrator.

Potrebne možnosti

Možnost

Opis

-p, --port INTEGER

Vrsta ustvarjenega ključa. Možne vrednosti za argument KEYTYPE najdete v zgornji tabeli.

-m, --mechanism MECHANISM

Mehanizmi za ustvarjeni ključ. Možne vrednosti za argument MECHANISM najdete v zgornji preglednici.

-l, --length INTEGER

Dolžina generiranega ključa

Volitivne možnosti

Možnost

Opis

-k, --key-id TEXT

ID generiranega ključa

Primer

$ 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

Ključ za uvoz#

NetHSM lahko uvozi obstoječe zasebne ključe v hrambo ključev.

Podprte vrste ključev in ustrezni mehanizmi so naslednji.

Vrsta ključa

Mehanizmi

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 id="231"></x> 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

Uvoz lahko začnete na naslednji način.

Potrebna vloga

Ta operacija zahteva preverjanje pristnosti z vlogo Administrator.

Potrebne možnosti

Možnost

Opis

-p, --port INTEGER

Vrsta ustvarjenega ključa. Možne vrednosti za argument KEYTYPE najdete v zgornji tabeli.

-m, --mechanism MECHANISM

Mehanizmi za ustvarjeni ključ. Možne vrednosti za argument MECHANISM najdete v zgornji preglednici.

-u, --user-id TEXT

Osnovno število p za ključe RSA, kodirano v base64

-u, --user-id TEXT

Osnovno število q za ključe RSA, kodirano v base64

-e, --public-exponent TEXT

Javni eksponent za ključe RSA, kodiran v base64

-d, --data TEXT

Podatki o ključu za ključe ED25519 ali ECDSA_*, kodirani v base64

Volitivne možnosti

Možnost

Opis

-k, --key-id TEXT

ID novega ključa

--tags TEXT

Oznaka za nov ključ

Primer

$ 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

Tipka za brisanje#

NetHSM lahko izbriše ključe iz shrambe Key Store.

Potrebna vloga

Ta operacija zahteva preverjanje pristnosti z vlogo Administrator.

Argumenti

Argument

Opis

--time

ID ključa, ki ga želite izbrisati

Primer

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

Seznam ključev#

NetHSM lahko izpiše vse razpoložljive ključe v Key Store.

Seznam lahko pridobite na naslednji način.

Potrebna vloga

Ta operacija zahteva avtentikacijo z vlogo Administrator ali Operator.

Volitivne možnosti

Možnost

Opis

-f, --filter TEXT

Oznaka za iskanje

Primer

$ 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

Prikaži podrobnosti o ključu#

NetHSM lahko izpiše podrobnejše informacije o shranjenem ključu.

Podrobne informacije lahko pridobite na naslednji način.

Potrebna vloga

Ta operacija zahteva avtentikacijo z vlogo Administrator ali Operator.

Primer

$ 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

Javni ključ ključa lahko pridobite na naslednji način. Je v obliki PKCS#8.

Potrebna vloga

Ta operacija zahteva avtentikacijo z vlogo Administrator ali Operator.

Primer

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

Javni ključ lahko na primer preverite s programom OpenSSL na naslednji način.

Potrebna vloga

Ta operacija zahteva avtentikacijo z vlogo Administrator ali Operator.

Primer

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

Oznake za Ključi#

Oznake se lahko uporabljajo za določanje natančnih omejitev dostopa do ključev in so neobvezna funkcija. Ključu je lahko dodeljena ena ali več oznak Tags. Uporabniki upravljavca ** lahko vidijo vse tipke, vendar uporabljajo samo tiste, ki imajo vsaj eno ustrezno oznako. Če tipka nima oznake, jo lahko uporabljajo vsi operaterji uporabniki. Uporabnik Operator ne more spreminjati oznake Tag.

Če želite izvedeti, kako uporabljati označke na računih operacijskih, glejte poglavje Oznake za uporabnike.

Opomba

Uporabniki z vlogo *Administrator upravljajo z oznakami brez omejitev.

Oznaka Tag se lahko doda na naslednji način.

Potrebna vloga

Ta operacija zahteva preverjanje pristnosti z vlogo Administrator.

Argumenti

Argument

Opis

--time

ID ključa za nastavitev oznake

TAG

Oznaka za nastavitev na ključu

Primer

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

Tag lahko izbrišete na naslednji način.

Potrebna vloga

Ta operacija zahteva preverjanje pristnosti z vlogo Administrator.

Argumenti

Argument

Opis

--time

ID ključa, na katerega se nastavi oznaka.

TAG

Oznaka, ki se nastavi na ključu.

Primer

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

Ključna potrdila#

Za ključe, shranjene v napravi NetHSM, je mogoče nastaviti in poizvedovati po potrdilih.

Podprte vrste MIME so naslednje.

  • application/x-pem-file

  • application/x-x509-ca-cert

  • application/pgp-keys

Certifikat lahko nastavite na naslednji način.

Potrebna vloga

Ta operacija zahteva preverjanje pristnosti z vlogo Administrator.

Potrebne možnosti

Možnost

Opis

-k, --key-id TEXT

ID ključa, za katerega želite nastaviti potrdilo.

Volitivne možnosti

Možnost

Opis

-m, --mechanism MECHANISM

Vrsta MIME potrdila. Razpoložljive vrste MIME so navedene zgoraj.

Argumenti

Argument

Opis

FILENAME

Datoteka s potrdilom

Primer

$ 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

Potrdilo lahko pridobite na naslednji način.

Potrebna vloga

Ta operacija zahteva avtentikacijo z vlogo Administrator ali Operator.

Potrebne možnosti

Možnost

Opis

-k, --key-id TEXT

ID ključa, za katerega želite pridobiti potrdilo

Primer

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

Zahteve za podpisovanje ključnih potrdil#

NetHSM podpira generiranje zahtevkov za podpisovanje potrdil (CSR) za shranjene ključe.

Potrebna vloga

Ta operacija zahteva avtentikacijo z vlogo Administrator ali Operator.

Potrebne možnosti

Možnost

Opis

-k, --key-id TEXT

ID ključa, za katerega se ustvari CSR.

--country TEXT

Ime države

--state-or-province TEXT

Ime države ali pokrajine

--locality TEXT

Ime kraja

--organization TEXT

Ime organizacije

--organizational-unit TEXT

Ime organizacijske enote

--common-name TEXT

Splošno ime

--email-address TEXT

E-poštni naslov

Primer

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

Ključne operacije#

Šifriranje#

NetHSM lahko šifrira podatke za simetrične ključe, ki so shranjeni v shrambi ključev ** . Nasprotno pa šifriranja podatkov z asimetričnimi ključi v sistemu NetHSM ni mogoče izvesti zaradi koncepta kriptografije z javnim ključem, da je javni ključ na voljo vsem. Za asimetrične ključe NetHSM zagotavlja javni ključ, ki ga je mogoče uporabiti za šifriranje z zunanjim orodjem.* Več o tem, kako pridobiti javni ključ ključa v shrambi ključev *, si preberite v Prikaži podrobnosti o ključu .

Podatke je mogoče šifrirati s simetričnim ključem na naslednji način.

Potrebna vloga

Ta operacija zahteva preverjanje pristnosti z vlogo Operator.

Potrebne možnosti

Možnost

Opis

-k, --key-id TEXT

ID ključa za šifriranje podatkov

-d, --data TEXT

Podatki v kodiranju Base64

-m, --mode [AES_CBC]

Način šifriranja

-iv, --initialization-vector TEXT

Inicializacijski vektor v kodiranju Base64

Primer

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

To izpiše šifrirano in base64 kodirano sporočilo NetHSM rulezzzzzzzzzzzzzzzzzzz! ter inicializacijski vektor.

Podatke za asimetrične ključe lahko šifrirate z OpenSSL na naslednji način.

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

To zapiše šifrirano in v base64 kodirano sporočilo NetHSM rulez! v datoteko data.crypt z uporabo javnega ključa iz public.pem.

Dešifriranje#

NetHSM lahko dešifrira podatke za zasebni ključ, ki je shranjen v shrambi Key Store v NetHSM. Ta primer uporablja šifrirano sporočilo iz prejšnjega poglavja Šifriraj.

Podprti načini dešifriranja so naslednji.

  • TAG

  • PKCS1

  • FILENAME

  • --network

  • OAEP_SHA224

  • OAEP_SHA224

  • OAEP_SHA224

  • OAEP_SHA224

  • USER_ID

Podatke je mogoče dešifrirati na naslednji način.

Potrebna vloga

Ta operacija zahteva preverjanje pristnosti z vlogo Operator.

Potrebne možnosti

Možnost

Opis

-k, --key-id TEXT

ID ključa za dešifriranje širine podatkov

-d, --data TEXT

Šifrirani podatki v kodiranju Base64

-d, --data TEXT

Način dešifriranja. Razpoložljivi načini so navedeni zgoraj.

Primer

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

Znak#

NetHSM lahko podpiše podatke za zasebni ključ, ki je shranjen v shrambi Key Store v NetHSM. Za podpisovanje s ključem RSA in ECDSA je treba najprej izračunati prebavo.

Za izračun digesta so najprej potrebni podatki. Sporočilo se ustvari na naslednji način.

$ echo 'NetHSM rulez!' > data

Digest se izračuna s programom OpenSSL na naslednji način.

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

Podprti načini podpisovanja so naslednji.

  • PKCS1

  • USER_ID

  • FILENAME

  • Curve25519

  • Curve25519

  • Curve25519

  • Curve25519

  • PKCS1

  • PKCS1

Na podlagi digesta je mogoče ustvariti podpis na naslednji način.

Potrebna vloga

Ta operacija zahteva preverjanje pristnosti z vlogo Operator.

Potrebne možnosti

Možnost

Opis

-k, --key-id TEXT

ID ključa za podpisovanje širine podatkov

-d, --data TEXT

Podatki za podpis, kodirani z uporabo kode Base64

-d, --data TEXT

Način znaka

Primer

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

Ustvarjeni podpis lahko preverite s programom OpenSSL na naslednji način.

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

Naključno#

NetHSM lahko zagotovi naključne bajte kot niz Base64.

Potrebna vloga

Ta operacija zahteva preverjanje pristnosti z vlogo Operator.

Argumenti

Argument

Opis

--time

Bajti za pridobitev

Primer

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