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.
Usa crittografia e decriptazione simmetriche
Le sezioni seguenti mostrano come criptare e decriptare utilizzando una crittografia simmetrica di crittografia, OpenSSL e pkcs11-tool.
Prerequisiti
Crea una crittografia simmetrica non elaborata di Cloud HSM chiave. 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 spaziatura interna, vettori di inizializzazione e ulteriori dati autenticati.
Crea un file di input contenente i dati che vuoi 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 alla chiave dell'algoritmo, ad esempioAES-CBC-PAD
.HSM_KEY_NAME
: il nome della chiave Cloud HSM da utilizzare per la crittografia.INITIALIZATION_VECTOR
: il valore dell'inizializzazione da utilizzare come parte 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 di PKCS#11 ad esempio/usr/local/lib/libkmsp11.so
.MECHANISM
: il meccanismo da utilizzare, in base alla chiave dell'algoritmo, ad esempioECDSA
.HSM_KEY_NAME
: il nome della chiave Cloud HSM utilizzato per criptare il file che vuoi decriptare.INITIALIZATION_VECTOR
: il valore dell'inizializzazione da utilizzare come parte della crittografia.ENCRYPTED_TEXT_FILE_PATH
: il percorso del file che ti interessa da decriptare.DECRYPTED_TEXT_FILE_PATH
: il percorso in cui vuoi salvare il file di testo decriptato.
Usa la crittografia e la decrittografia asimmetrica
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 decrittografia asimmetrica di Cloud HSM chiave e scarica la relativa chiave pubblica chiave.
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
: 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 che corrisponde alla chiave pubblica utilizzata per criptare il file di testo.ENCRYPTED_TEXT_FILE_PATH
: il percorso del file che ti interessa 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 forma asimmetrica chiave di firma e strumento pkcs11.
Prerequisiti
Crea una chiave asimmetrica di Cloud HSM.
Crea un file con i dati di input sottoposti ad hashing che vuoi firmare.
Firma
Per firmare un file di testo, esegui questo 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 che vuoi salvare il file della firma.
Verifica
Per verificare un file di firma, esegui questo 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 che vuoi verificare.MECHANISM
: il meccanismo da utilizzare, in base alla chiave dell'algoritmo. Ad esempio,ECDSA
.INPUT_TEXT_FILE_PATH
: il percorso del file firmato in precedenza.SIGNATURE_FILE_PATH
: il percorso del file della firma.