Questa guida fornisce comandi pkcs11-tool
di esempio per utilizzare una chiave Cloud HSM su
Debian 11 (Bullseye) utilizzando la libreria PKCS #11. I comandi inclusi in queste istruzioni potrebbero richiedere modifiche in base al sistema operativo o alla distribuzione Linux.
Prima di iniziare
Prima di continuare, completa i passaggi descritti in Utilizzo di una chiave Cloud HSM con OpenSSL.
Utilizzare crittografia e decriptazione simmetriche
Le sezioni seguenti mostrano come criptare e decriptare utilizzando una chiave di crittografia simmetrica, OpenSSL e lo strumento pkcs11.
Prerequisiti
Crea una chiave di crittografia simmetrica non elaborata Cloud HSM. Per creare una chiave Cloud HSM, imposta il livello di protezione su HSM durante la creazione di una nuova chiave.
Prendi nota dell'algoritmo di crittografia simmetrica non elaborato che scegli per la chiave. Ogni algoritmo ha i propri requisiti per il padding, i vettori di inizializzazione e altri dati autenticati.
Crea un file di input contenente i dati da criptare.
Cripta
Per criptare un file di testo, esegui il seguente comando:
pkcs11-tool --module PATH_TO_LIBKMSP11_SO --encrypt \
--mechanism MECHANISM \
--slot 0 \
--label HSM_KEY_NAME \
--iv INITIALIZATION_VECTOR \
--input-file INPUT_TEXT_FILE_PATH \
--output-file ENCRYPTED_TEXT_FILE_PATH
Sostituisci quanto segue:
PATH_TO_LIBKMSP11_SO
: il percorso del modulo PKCS#11, ad esempio/usr/local/lib/libkmsp11.so
.MECHANISM
: il meccanismo da utilizzare, in base all'algoritmo della chiave, ad esempioAES-CBC-PAD
.HSM_KEY_NAME
: il nome della chiave Cloud HSM da utilizzare per la crittografia.INITIALIZATION_VECTOR
: il valore del vettore di inizializzazione da utilizzare nell'ambito della crittografia.INPUT_TEXT_FILE_PATH
: il percorso del file di input da criptare.ENCRYPTED_TEXT_FILE_PATH
: il percorso in cui vuoi salvare il file di testo criptato.
Decripta
Per decriptare un file di testo, esegui il seguente comando:
pkcs11-tool --module PATH_TO_LIBKMSP11_SO --decrypt \
--mechanism MECHANISM \
--slot 0 \
--label HSM_KEY_NAME \
--iv INITIALIZATION_VECTOR \
--input-file ENCRYPTED_TEXT_FILE_PATH \
--output-file DECRYPTED_TEXT_FILE_PATH
Sostituisci quanto segue:
PATH_TO_LIBKMSP11_SO
: il percorso del modulo PKCS#11, ad esempio/usr/local/lib/libkmsp11.so
.MECHANISM
: il meccanismo da utilizzare, in base all'algoritmo della chiave, ad esempioECDSA
.HSM_KEY_NAME
: il nome della chiave Cloud HSM impiegata per criptare il file che vuoi decriptare.INITIALIZATION_VECTOR
: il valore del vettore di inizializzazione da utilizzare nell'ambito della crittografia.ENCRYPTED_TEXT_FILE_PATH
: il percorso del file da decriptare.DECRYPTED_TEXT_FILE_PATH
: il percorso in cui vuoi salvare il file di testo decriptato.
Utilizzare la crittografia e la decrittografia asimmetriche
Le sezioni seguenti mostrano come eseguire la crittografia e la decrittografia utilizzando una chiave di crittografia asimmetrica, OpenSSL e lo strumento pkcs11.
Prerequisiti
Crea una chiave di decriptazione asimmetrica Cloud HSM e scarica la relativa chiave pubblica.
Crea un file di input con del testo.
echo Hello World! >> input.txt
Cripta
Per criptare un file di testo, esegui il seguente comando:
openssl pkeyutl -in INPUT_TEXT_FILE_PATH -encrypt -pubin \
-inkey PUBLIC_KEY \
-pkeyopt rsa_padding_mode:oaep \
-pkeyopt rsa_oaep_md:sha256 \
-pkeyopt rsa_mgf1_md:sha256 > ENCRYPTED_TEXT_FILE_PATH
Sostituisci quanto segue:
INPUT_TEXT_FILE_PATH
: il percorso del file di input da criptare.PUBLIC_KEY
: il percorso della chiave pubblica.ENCRYPTED_TEXT_FILE_PATH
: il percorso in cui vuoi salvare il file di testo criptato.
Decripta
Per decriptare un file di testo, esegui il seguente comando:
pkcs11-tool --module PATH_TO_LIBKMSP11_SO \
--decrypt --mechanism RSA-PKCS-OAEP --slot 0 --hash-algorithm=sha256 \
--mgf MGF1-SHA256 --label HSM_KEY_NAME --type privkey \
-i ENCRYPTED_TEXT_FILE_PATH \
-o OUTPUT_TEXT_FILE_PATH
Sostituisci quanto segue:
PATH_TO_LIBKMSP11_SO
: il percorso del modulo PKCS#11 (path/to/libkmsp11.so).HSM_KEY_NAME
: il nome della chiave Cloud HSM corrispondente alla chiave pubblica utilizzata per criptare il file di testo.ENCRYPTED_TEXT_FILE_PATH
: il percorso del file da decriptare.OUTPUT_TEXT_FILE_PATH
: il percorso in cui vuoi salvare l'output decriptato.
Firma e verifica
Le sezioni seguenti mostrano come firmare e verificare utilizzando una chiave di firma asimmetrica e lo strumento pkcs11.
Prerequisiti
Crea una chiave di firma asimmetrica Cloud HSM.
Crea un file con i dati di input sottomessi ad hashing che vuoi firmare.
Firma
Per firmare un file di testo, esegui il seguente comando:
pkcs11-tool --module PATH_TO_LIBKMSP11_SO --sign \
--mechanism MECHANISM \
--slot 0 \
--label HSM_KEY_NAME \
-i INPUT_TEXT_FILE_PATH \
-o OUTPUT_SIGNATURE_FILE_PATH
Sostituisci quanto segue:
PATH_TO_LIBKMSP11_SO
: il percorso del modulo PKCS#11, ad esempiopath/to/libkmsp11.so
.HSM_KEY_NAME
: il nome della chiave Cloud HSM che vuoi utilizzare per la firma.MECHANISM
: il meccanismo da utilizzare, in base all'algoritmo della chiave. Ad esempio,ECDSA
.INPUT_TEXT_FILE_PATH
: il percorso del file di input che vuoi firmare.OUTPUT_SIGNATURE_FILE_PATH
: il percorso in cui vuoi memorizzare il file della firma.
Verifica
Per verificare un file di firma, esegui il seguente comando:
pkcs11-tool --module PATH_TO_LIBKMSP11_SO --verify \
--mechanism MECHANISM \
--slot 0 \
--label HSM_KEY_NAME \
-i INPUT_TEXT_FILE_PATH \
--signature-file SIGNATURE_FILE_PATH
Sostituisci quanto segue:
PATH_TO_LIBKMSP11_SO
: il percorso del modulo PKCS#11, ad esempiopath/to/libkmsp11.so
.HSM_KEY_NAME
: il nome della chiave Cloud HSM impiegata per generare la firma da verificare.MECHANISM
: il meccanismo da utilizzare, in base all'algoritmo della chiave. Ad esempio,ECDSA
.INPUT_TEXT_FILE_PATH
: il percorso del file firmato in precedenza.SIGNATURE_FILE_PATH
: il percorso del file della firma.