Operatsioon#
Selles peatükis kirjeldatakse kasutusülesandeid kasutajatele, kellel on Administraatori ja Operaatori roll. Palun lugege peatükki Rollid, et rohkem teada saada rollist.
Tähtis
Palun lugege kindlasti enne töö alustamist dokumendi alguses olevat teavet.
Võtmehaldus#
Genereeri võti#
NetHSM saab luua võtmepaare. Soovitatav on määrata võtme ID-variant, et anda sellele väljendusrikas nimi.
Toetatavad võtmetüübid ja vastavad mehhanismid on järgmised.
Võtme tüüp |
Mehhanismid |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Võtmed määratakse võtme genereerinud kasutaja nimeruumi.
Võtme saab genereerida järgmiselt.
Vajalik roll
See toiming nõuab autentimist Administraatori rolliga.
Vajalikud valikud
Valik |
Kirjeldus |
---|---|
|
Genereeritud võtme tüüp. Argumenti |
|
Genereeritud võtme mehhanismid. Argumenti |
|
genereeritud võtme pikkus |
Võimalikud valikud
Valik |
Kirjeldus |
---|---|
|
Genereeritud võtme ID |
näide
$ 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
Teavet /keys/generate lõpp-punkti kohta leiate API dokumentatsioonist.
Impordi võti#
NetHSM saab olemasolevaid privaatseid võtmeid importida Key Store.
Toetatavad võtmetüübid ja vastavad mehhanismid on järgmised.
Võtme tüüp |
Mehhanismid |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Võtmed määratakse võtme importinud kasutaja nimeruumi.
Impordige privaatne võti PEM-failist NetHSM-i järgmiselt.
Vajalik roll
See toiming nõuab autentimist Administraatori rolliga.
Argumendid
Argument |
Kirjeldus |
---|---|
|
Privaatne võtmefail PEM-vormingus |
Võimalikud valikud
Valik |
Kirjeldus |
---|---|
|
Genereeritud võtme mehhanismid. Argumenti |
|
Uue võtme ID |
|
Uue võtme silt |
näide
$ 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
Teavet /keys lõpp-punkti kohta leiate API dokumentatsioonist.
Toorformaadis privaatvõtmeid saab importida järgmiselt.
Vajalik roll
See toiming nõuab autentimist Administraatori rolliga.
Vajalikud valikud
Valik |
Kirjeldus |
---|---|
|
Genereeritud võtme tüüp. Argumenti |
|
Genereeritud võtme mehhanismid. Argumenti |
|
RSA võtmete algväärtus p, base64-kodeeritud |
|
RSA võtmete primaarne q, base64-kodeeritud |
|
RSA võtmete avalik eksponent, base64-kodeerituna |
|
ED25519 või ECDSA_* võtmeandmed, base64-kodeeritud kujul. |
Võimalikud valikud
Valik |
Kirjeldus |
---|---|
|
Uue võtme ID |
|
Uue võtme silt |
näide
$ 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
Teavet /keys lõpp-punkti kohta leiate API dokumentatsioonist.
Klahvi kustutamine#
NetHSM saab kustutada võtmeid aadressilt Key Store. Kasutajad saavad kustutada ainult oma nimeruumi võtmeid.
Vajalik roll
See toiming nõuab autentimist Administraatori rolliga.
Argumendid
Argument |
Kirjeldus |
---|---|
|
Kustutatava võtme ID |
näide
$ nitropy nethsm --host $NETHSM_HOST delete-key myFirstKey
Key myFirstKey deleted on NetHSM localhost:8443
Teavet /keys/{KeyID} lõpp-punkti kohta leiate API dokumentatsioonist.
Loetelu võtmed#
NetHSM saab loetleda kõik võtmed võtmehoidlas, mis asuvad praeguse kasutaja nimeruumis.
Nimekirja saab kätte järgmiselt.
Vajalik roll
See toiming nõuab autentimist Administraatori või Operaatori rolliga.
Võimalikud valikud
Valik |
Kirjeldus |
---|---|
|
Silt, mida otsida |
näide
$ 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
Teavet /keys lõpp-punkti kohta leiate API dokumentatsioonist.
Näita võtme üksikasju#
NetHSM võib väljastada üksikasjalikumat teavet salvestatud võtme kohta. Kasutajad saavad juurdepääsu ainult oma nimeruumi võtmetele.
Üksikasjalikku teavet saab kätte järgmiselt.
Vajalik roll
See toiming nõuab autentimist Administraatori või Operaatori rolliga.
näide
$ 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
Teavet /keys/{KeyID} lõpp-punkti kohta leiate API dokumentatsioonist.
Võtme avalikku võtit saab kätte järgmiselt. See on PKCS#8-vormingus.
Vajalik roll
See toiming nõuab autentimist Administraatori või Operaatori rolliga.
näide
$ 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-----
Teavet /keys/{KeyID}/public.pem lõpp-punkti kohta leiate API dokumentatsioonist.
Avalikku võtit saab kontrollida näiteks OpenSSL-i abil järgmiselt.
Vajalik roll
See toiming nõuab autentimist Administraatori või Operaatori rolliga.
näide
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-----
Teavet /keys/{KeyID}/public.pem lõpp-punkti kohta leiate API dokumentatsioonist.
Võtmesertifikaadid#
NetHSM-i salvestatud võtmete jaoks on võimalik määrata ja küsida sertifikaate.
Toetatud MIME-tüübid on järgmised.
application/x-pem-file<x>
application/x-x509-ca-cert<x>
application/pgp-keys<x>
Sertifikaadi saab määrata järgmiselt.
Vajalik roll
See toiming nõuab autentimist Administraatori rolliga.
Vajalikud valikud
Valik |
Kirjeldus |
---|---|
|
Võtme ID, mille jaoks sertifikaat määratakse. |
Võimalikud valikud
Valik |
Kirjeldus |
---|---|
|
Sertifikaadi MIME-tüüp. Saadaolevad MIME-tüübid on loetletud eespool. |
Argumendid
Argument |
Kirjeldus |
---|---|
|
Sertifikaadi fail |
näide
$ 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
Teavet /keys/{KeyID}/cert lõpp-punkti kohta leiate API dokumentatsioonist.
Sertifikaati saab kätte järgmiselt.
Vajalik roll
See toiming nõuab autentimist Administraatori või Operaatori rolliga.
Vajalikud valikud
Valik |
Kirjeldus |
---|---|
|
Võtme ID, mille jaoks sertifikaat tuleb hankida. |
näide
$ 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-----
Teavet /keys/{KeyID}/cert lõpp-punkti kohta leiate API dokumentatsioonist.
Võtmesertifikaadi allkirjastamise taotlused#
NetHSM toetab salvestatud võtmete jaoks CSR (Certificate Signing Requests) genereerimist.
Vajalik roll
See toiming nõuab autentimist Administraatori või Operaatori rolliga.
Vajalikud valikud
Valik |
Kirjeldus |
---|---|
|
Võtme ID, mille jaoks CSR genereeritakse. |
|
Riigi nimi |
|
Riigi või provintsi nimi |
|
Kohanimi |
|
Organisatsiooni nimi |
|
Organisatsiooniüksuse nimi |
|
Üldine nimi |
|
E-posti aadress |
näide
$ 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-----
Teavet /keys/{KeyID}/csr.pem lõpp-punkti kohta leiate API dokumentatsioonist.
Peamised toimingud#
Kõiki selles peatükis kirjeldatud toiminguid saab teha ainult nende võtmete puhul, mis on praeguse kasutaja nimeruumis.
Krüpteeri#
NetHSM saab krüpteerida andmeid sümmeetriliste võtmete jaoks, mis on salvestatud aadressile Key Store. Seevastu andmete krüpteerimine asümmeetriliste võtmetega ei ole NetHSMis võimalik, sest avaliku võtme krüptograafia põhimõte on teha avalik võti kõigile kättesaadavaks. Asümmeetriliste võtmete puhul pakub NetHSM avalikku võtit, mida saab kasutada krüpteerimiseks välise vahendiga. Lisateavet selle kohta, kuidas saada võtme avalikku võtit välja Key Store, leiate veebilehelt Show Key Details .
Sümmeetrilise võtme jaoks saab andmeid krüpteerida järgmiselt.
Vajalik roll
See toiming nõuab autentimist Operator rolliga.
Vajalikud valikud
Valik |
Kirjeldus |
---|---|
|
Võtme ID, millega andmeid krüpteeritakse. |
|
Andmed Base64-kodeeringus |
|
Krüptimisrežiim |
|
Initsialiseerimisvektor Base64-kodeeringus |
näide
$ 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==
Teavet /keys/{KeyID}/encrypt lõpp-punkti kohta leiate API dokumentatsioonist.
See prindib krüpteeritud ja base64-kodeeritud sõnumi NetHSM rulezzzzzzzzzzzzzzzzzzz!
ning initsialiseerimisvektori.
Andmeid saab krüpteerida asümmeetriliste võtmete puhul OpenSSL-i abil järgmiselt.
$ echo 'NetHSM rulez!' | openssl pkeyutl -encrypt -pubin -inkey public.pem | base64 > data.crypt
See kirjutab krüpteeritud ja base64-kodeeritud sõnumi NetHSM rulez!
faili data.crypt
, kasutades public.pem
avalikku võtit.
Dekrüpteeri#
NetHSM saab dekrüpteerida andmeid NetHSMi Key Store-sse salvestatud privaatvõtme jaoks. Selles näites kasutatakse eelmisest peatükist pärit krüpteeritud sõnumit Encrypt.
Toetatud dekrüpteerimisrežiimid on järgmised.
TAG<x>
PKCS1<x>
FILENAME<x>
--network<x>
OAEP_SHA224<x>
OAEP_SHA224<x>
OAEP_SHA224<x>
OAEP_SHA224<x>
USER_ID<x>
Andmeid saab dekrüpteerida järgmiselt.
Vajalik roll
See toiming nõuab autentimist Operator rolliga.
Vajalikud valikud
Valik |
Kirjeldus |
---|---|
|
Andmete laiuse dekrüpteerimiseks kasutatava võtme ID |
|
Krüpteeritud andmed Base64-kodeeringus |
|
Dekrüpteerimisrežiim. Saadaolevad režiimid on loetletud eespool. |
näide
$ nitropy nethsm -h $NETHSM_HOST decrypt -k myFirstKey -d "$(cat data.crypt)" -m PKCS1 | base64 -d
NetHSM rulez!
Teavet /keys/{KeyID}/decrypt lõpp-punkti kohta leiate API dokumentatsioonist.
Allkiri#
NetHSM saab allkirjastada andmeid NetHSMi Key Store-s salvestatud privaatvõtme jaoks. RSA- ja ECDSA-võtmega allkirjastamise puhul tuleb kõigepealt arvutada digesti.
Digesti arvutamiseks on kõigepealt vaja andmeid. Sõnum luuakse järgmiselt.
$ echo 'NetHSM rulez!' > data
Digesti arvutatakse OpenSSL-i abil järgmiselt.
$ openssl dgst -sha256 -binary data | base64 > data.digest
Toetatud allkirjastusrežiimid on järgmised.
PKCS1<x>
USER_ID<x>
FILENAME<x>
Curve25519<x>
Curve25519<x>
Curve25519<x>
Curve25519<x>
PKCS1<x>
PKCS1<x>
Digesti põhjal saab luua allkirja järgmiselt.
Vajalik roll
See toiming nõuab autentimist Operator rolliga.
Vajalikud valikud
Valik |
Kirjeldus |
---|---|
|
Andmete laiuse allkirjastamise võtme ID |
|
Base64 abil kodeeritud andmed, mida allkirjastatakse. |
|
Märgi režiim |
näide
$ nitropy nethsm -h $NETHSM_HOST sign -k myFirstKey -m PKCS1 -d "$(cat data.digest)" | base64 -d > data.sig
Teavet /keys/{KeyID}/sign lõpp-punkti kohta leiate API dokumentatsioonist.
Loodud allkirja saab kontrollida OpenSSL-i abil järgmiselt.
$ openssl dgst -sha256 -verify public.pem -signature data.sig -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 data
Verified OK
Juhuslik#
NetHSM võib pakkuda juhuslikke baite Base64-stringina.
Vajalik roll
See toiming nõuab autentimist Operator rolliga.
Argumendid
Argument |
Kirjeldus |
---|---|
|
Taaskasutatavad baidid |
näide
nitropy nethsm --host $NETHSM_HOST random 4
94A2rg==
Teavet /random lõpp-punkti kohta leiate API dokumentatsioonist.