Nitropy komandrindas rīks#
Šajā pamācībā ir parādīts, kā piekļūt NetHMS, izmantojot nitropy komandrindas rīku, kas ir jālejupielādē un jāinstalē.
Piezīme
Ja izmantojat NetHSM demonstrācijas gadījumu ar pašparakstītu sertifikātu, piemēram, izmantojot Docker attēlu, jums būs jāizmanto --no-verify-tls
opcija </x>`nitropy
, lai izlaistu sertifikāta pārbaudi.
Piezīme
Vispirms iestatiet vērtību $NETHSM_HOST uz NetHSM IP adresi vai URL. Mūsu demo serveri var sasniegt, izmantojot adresi https://nethsmdemo.nitrokey.com/
Informācija par ierīci & amp; statuss#
$ nitropy nethsm --host $NETHSM_HOST info
Host: localhost:8443
Vendor: Nitrokey GmbH
Product: NetHSM
$ nitropy nethsm --host $NETHSM_HOST state
NetHSM localhost:8443 is Unprovisioned
Nodrošināšana#
Vispirms ir jānodrošina jauns NetHSM ar piekļuves frāzēm un pašreizējo laiku. Administratora parola ir administratora parola, kas ir NetHSM superlietotājs. Atbloķēšanas paroli izmanto, lai šifrētu NetHSM konfidenciālo datu krātuvi.
Piezīme
NetHSM demo instance vietnē nethsmdemo.nitrokey.com jau ir nodrošināta.
$ nitropy nethsm --host $NETHSM_HOST provision
NetHSM localhost:8443 provisioned
NetHSM var izmantot Attended Boot un Unattended Boot režīmā.
Attended Boot režīmā katras palaišanas laikā ir jāievada Unlock Passphrase, kas tiek izmantota datu krātuves šifrēšanai. Drošības apsvērumu dēļ šis režīms ir ieteicams.
Unattended Boot režīmā nav nepieciešama atbloķēšanas parole, tāpēc NetHSM var sākt darboties bez uzraudzības un datu krātuve tiek saglabāta nešifrētā veidā. Izmantojiet šo režīmu, ja pieejamības prasības nevar izpildīt ar Attended Boot režīmu.
Atgūst pašreizējo režīmu:
$ nitropy nethsm --host $NETHSM_HOST get-config --unattended-boot
Configuration for NetHSM localhost:8443:
Unattended boot: off
Ieslēdziet Unattended Boot režīmu:
$ nitropy nethsm --host $NETHSM_HOST set-unattended-boot on
Updated the unattended boot configuration for NetHSM localhost:8443
Lietotāju pārvaldība#
Lomas#
Pienākumu nodalīšanu var īstenot, izmantojot dažādas lomas. Katram NetHSM konfigurētajam lietotāja kontam ir piešķirta viena no šādām lomām. Turpmāk ir sniegts katras lomas atļauto darbību augsta līmeņa apraksts. Sīkāku informāciju par konkrētiem galapunktiem skatīt REST API dokumentācijā.
R-administrators: Lietotāja kontam ar šo lomu ir piekļuve visām REST API nodrošinātajām operācijām, izņemot atslēgu izmantošanas operācijas, t. i., ziņojumu parakstīšanu un atšifrēšanu.
R-Operators: Lietotāja kontam ar šo lomu ir piekļuve visām atslēgu izmantošanas operācijām, atslēgu pārvaldības operāciju apakškopai, kas paredzēta tikai lasīšanai, un lietotāju pārvaldības operācijām, kas ļauj veikt izmaiņas tikai savā kontā.
R-Metrika: Lietotāja kontam ar šo lomu ir piekļuve tikai nolasīšanas operācijām.
R-Backup: Lietotāja kontam ar šo lomu ir piekļuve tikai operācijām, kas nepieciešamas, lai izveidotu sistēmas dublējumu.
Piezīme: Nākamajās versijās var tikt ieviestas papildu lomas.
Lietotāju izveide un dzēšana
Tagad izveidojiet jaunu lietotāju ar lomu Operators, kuru var izmantot datu parakstīšanai un atšifrēšanai. Ņemiet vērā, ka NetHSM piešķir nejaušu lietotāja ID, ja mēs to nenorādām.
$ nitropy nethsm --host $NETHSM_HOST add-user --real-name "Jane User" --role Operator
User Operator added to NetHSM localhost:8443
$ nitropy nethsm --host $NETHSM_HOST delete-user "Jane User"
Atslēgas pārvaldība#
Ģenerēt atslēgas#
Šajā sadaļā mēs vēlamies izmantot RSA atslēgu, lai atšifrētu datus, izmantojot PKCS#1, un parakstītu datus ar PSS, izmantojot SHA256. Tāpēc ģenerēsim jaunu atslēgu NetHSM. Pārliecinieties, ka tiek izmantots RSA algoritms un izvēlēti atslēgas mehānismi RSA_Signature_PSS_SHA256 un RSA_Decryption_PKCS1. Ja nenorādīsiet atslēgas ID, NetHSM jaunajai atslēgai ģenerēs nejaušu ID.
$ 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
Importēšanas atslēgas#
Tā vietā, lai ģenerētu atslēgu NetHSM, varat arī importēt esošās privātās atslēgas NetHSM:
$ nitropy nethsm --host $NETHSM_HOST add-key --type RSA --mechanism RSA_Signature_PSS_SHA256 --mechanism RSA_Decryption_PKCS1 --key-id mySecondKey --public-exponent AQAB --prime-p "AOnWFZ+JrI/xOXJU04uYCZOiPVUWd6CSbVseEYrYQYxc7dVroePshz29tc+VEOUP5T0O8lXMEkjFAwjW6C9QTAsPyl6jwyOQluMRIkdN4/7BAg3HAMuGd7VmkGyYrnZWW54sLWp1JD6XJG33kF+9OSar9ETPoVyBgK5punfiUFEL" \
--prime-q "ANT1kWDdP9hZoFKT49dwdM/S+3ZDnxQa7kZk9p+JKU5RaU9e8pS2GOJljHwkES1FH6CUGeIaUi81tRKe2XZhe/163sEyMcxkaaRbBbTc1v6ZDKILFKKt4eX7LAQfhL/iFlgi6pcyUM8QDrm1QeFgGz11ChM0JuQw1WwkX06lg8iv"
Key mySecondKey added to NetHSM localhost:8443
Saraksta atslēgas#
Lai pārliecinātos, ka atslēga ir izveidota un tai ir pareizie algoritma un mehānisma iestatījumi, mēs varam pieprasīt visas NetHSM atslēgas:
$ nitropy nethsm --host $NETHSM_HOST list-keys
Keys on NetHSM localhost:8443:
Key ID Algorithm Mechanisms Operations
---------- --------- ---------------------------------------------- ----------
myFirstKey RSA RSA_Decryption_PKCS1, RSA_Signature_PSS_SHA256 0
mySecondKey RSA RSA_Decryption_PKCS1, RSA_Signature_PSS_SHA256 0
Rādīt atslēgas informāciju#
Varam arī pieprasīt ģenerētā atslēgu pāra publisko atslēgu:
$ nitropy nethsm --host $NETHSM_HOST get-key myFirstKey
Lai atslēgu varētu izmantot ar OpenSSL, mēs to eksportējam kā PEM failu un saglabājam kā public.pem:
$ nitropy nethsm --host $NETHSM_HOST get-key myFirstKey --public-key > public.pem
Mēs varam pārbaudīt atslēgu ar OpenSSL un izmantot to šifrēšanai vai paraksta pārbaudei (kā aprakstīts nākamajā sadaļā):
$ openssl rsa -in public.pem -pubin -text
RSA Public-Key: (2048 bit)
Modulus:
00:c3:56:f5:09:cc:a9:3e:ca:16:2e:fb:d2:8b:9d:
a9:33:5a:87:8f:3f:7a:bb:8a:3d:62:9b:5d:56:84:
95:97:bb:97:f0:77:e2:c8:59:f2:b5:c6:b7:f5:b3:
76:69:a3:e8:f6:b7:35:f4:3c:52:6d:3c:a0:b6:a1:
e4:1a:32:05:1d:51:68:21:7d:fc:53:69:ec:bc:0b:
a0:db:63:b2:0e:47:00:03:4d:98:1f:ab:c0:7b:2e:
3c:8f:b6:36:ff:f0:db:80:26:f0:a6:af:30:2f:7b:
16:fd:5c:db:0f:2c:54:8a:26:2b:db:3d:78:49:4b:
7b:d1:60:ea:a7:f0:b4:5e:fc:33:ff:57:f8:83:fd:
12:64:8f:29:d1:94:96:9a:15:18:5d:04:ca:1c:29:
44:ad:42:31:c5:80:38:4c:eb:3b:b8:7e:17:27:5c:
69:a8:88:44:ea:d1:82:64:fe:51:31:47:97:a7:a9:
87:c3:13:c9:00:7a:b9:fb:6f:cc:66:4c:07:d7:68:
fa:78:68:9a:e7:87:1e:94:c6:27:92:5f:f2:7d:11:
44:11:b5:39:35:59:2c:cd:f9:4f:59:e3:56:93:1f:
94:20:fd:6b:23:0d:15:e6:4e:bb:84:a8:a5:0d:9f:
1c:90:ab:a8:10:04:50:12:c1:80:02:94:85:78:df:
d6:b3
Exponent: 65537 (0x10001)
writing RSA key
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw1b1CcypPsoWLvvSi52p
M1qHjz96u4o9YptdVoSVl7uX8HfiyFnytca39bN2aaPo9rc19DxSbTygtqHkGjIF
HVFoIX38U2nsvAug22OyDkcAA02YH6vAey48j7Y2//DbgCbwpq8wL3sW/VzbDyxU
iiYr2z14SUt70WDqp/C0Xvwz/1f4g/0SZI8p0ZSWmhUYXQTKHClErUIxxYA4TOs7
uH4XJ1xpqIhE6tGCZP5RMUeXp6mHwxPJAHq5+2/MZkwH12j6eGia54celMYnkl/y
fRFEEbU5NVkszflPWeNWkx+UIP1rIw0V5k67hKilDZ8ckKuoEARQEsGAApSFeN/W
swIDAQAB
-----END PUBLIC KEY-----
Atslēgas sertifikāti#
Ir iespējams iestatīt un pieprasīt sertifikātus NetHSM instancē saglabātajām atslēgām:
$ nitropy nethsm --host $NETHSM_HOST set-certificate myFirstKey --mime-type application/x-pem-file /tmp/cert.pem
Updated the certificate for key myFirstKey on NetHSM localhost:8443
$ nitropy nethsm --host $NETHSM_HOST get-certificate myFirstKey > /tmp/cert.pem
Atslēgas sertifikātu parakstīšanas pieprasījumi#
NetHSM atbalsta sertifikātu parakstīšanas pieprasījumu (CSR) ģenerēšanu saglabātajām atslēgām:
$ nitropy nethsm --host $NETHSM_HOST csr --key-id myFirstKey --country DE --state-or-province BE --locality Berlin --organization ACME --organizational-unit IT --common-name example.com --email-address it@example.com
Galvenās darbības#
Mēs varam šifrēt NetHSM saglabātās atslēgas datus, izmantojot OpenSSL. (public.pem ir publiskās atslēgas fails, ko izveidojām sadaļā Parādīt atslēgas informāciju.)
$ echo 'NetHSM rulez!' | OpenSSL rsautl -encrypt -inkey public.pem -pubin | base64 > data.crypt
$ nitropy nethsm -h $NETHSM_HOST decrypt -k myFirstKey -d "$(cat data.crypt)" -m PKCS1 | base64 -d
NetHSM rulez!
Līdzīgi mēs varam parakstīt datus, izmantojot NetHSM atslēgu. RSA un ECDSA gadījumā vispirms ir jāaprēķina digest:
$ echo 'NetHSM rulez!' > data
$ openssl dgst -sha256 -binary data | base64 > data.digest
Pēc tam mēs varam izveidot parakstu, izmantojot NetHSM:
$ nitropy nethsm -h $NETHSM_HOST sign -k myFirstKey -m PSS_SHA256 -d "$(cat data.digest)" | base64 -d > data.sig
Un pēc tam paraksta pārbaudei izmantojiet OpenSSL:
$ openssl dgst -sha256 -verify public.pem -signature data.sig -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 data
Verified OK
Rezerves kopiju izveide#
Ir iespējams izveidot NetHSM rezerves kopiju, kurā ir ietverta gan konfigurācija, gan saglabātās atslēgas. Lai izveidotu dublējumu, vispirms ir jāiestata dublējuma parole, kas tiek izmantota dublējuma faila šifrēšanai:
$ nitropy nethsm -h $NETHSM_HOST -u admin set-backup-passphrase
Updated the backup passphrase for NetHSM localhost:8443
Tagad ir jāizveido lietotājs ar R-Backup lomu:
$ nitropy nethsm -h $NETHSM_HOST -u admin add-user --user-id backup --real-name "Backup User" --role backup
User backup added to NetHSM localhost:8443
Tad varat izveidot dublējumu un ierakstīt to failā:
$ nitropy nethsm -h $NETHSM_HOST backup /tmp/nethsm-backup
Backup for localhost:8443 written to /tmp/backup
Rezerves kopiju atjaunošana#
Šo dublējuma failu var atjaunot neievietotā NetHSM instancē:
$ nitropy nethsm -h $NETHSM_HOST restore --backup-passphrase backup-passphrase backupencryptionkey /tmp/nethsm-backup
Backup restored on NetHSM localhost:8443
NetHSM atjaunināšana#
Brīdinājums
Beta versijas atjauninājuma instalēšanas dēļ var tikt zaudēti dati!
$ nitropy nethsm --host $NETHSM_HOST update /tmp/nethsm-update.img.cpio
Image /tmp/nethsm-update.img.cpio uploaded to NetHSM localhost:8443
Ja vēlaties turpināt instalēšanu, tagad varat veikt atjauninājumu:
$ nitropy nethsm --host $NETHSM_HOST commit-update
Update successfully committed on NetHSM localhost:8443
Varat arī atcelt atjaunināšanu:
$ nitropy nethsm --host $NETHSM_HOST cancel-update
Update successfully cancelled on NetHSM localhost:8443