wrapKey - AWS CloudHSM

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

wrapKey

Il comando wrapKey in key_mgmt_util esporta una copia criptata di una chiave simmetrica o privata da un HSM a un file. Quando esegui wrapKey, devi specificare la chiave da esportare, una chiave sull'HSM per crittografare la chiave da esportare (eseguirne il wrapping) e il file di output.

Il comando wrapKey scrive la chiave crittografata su un file specificato, ma non rimuove la chiave dall'HSM, né ne impedisce l'utilizzo nelle operazioni di crittografia. È possibile esportare la stessa chiave più volte.

Soltanto il proprietario della chiave, ovvero l'utente CU che ha creato la chiave, è in grado di esportarla. Gli utenti che condividono la chiave possono utilizzarla nelle operazioni di crittografia, ma non possono esportarla.

Per importare la chiave crittografata nell’HSM, utilizzare unWrapKey. Per esportare una chiave di testo non crittografato da un HSM, utilizzare exSymKey o exportPrivateKey come appropriato. Il comando aesWrapUnwrap non è in grado di decrittografare le chiavi (annullarne il wrapping) crittografate con wrapKey.

Prima di eseguire un comando key_mgmt_util, devi avviare key_mgmt_util e accedere a HSM come crypto user (CU).

Sintassi

wrapKey -h wrapKey -k <exported-key-handle> -w <wrapping-key-handle> -out <output-file> [-m <wrapping-mechanism>] [-aad <additional authenticated data filename>] [-t <hash-type>] [-noheader] [-i <wrapping IV>] [-iv_file <IV file>] [-tag_size <num_tag_bytes>>]

Esempio

Questo comando esporta una chiave simmetrica Triple DES (3DES) a 192 bit (handle di chiave 7). Utilizza una chiave AES a 256 bit nell'HSM (handle di chiave 14) per eseguire il wrapping della chiave 7, quindi scrive la chiave 3DES crittografata nel file 3DES-encrypted.key.

L'output indica che la chiave 7 (la chiave 3DES) è stata sottoposta a wrapping e che è stata scritta sul file specificato. La chiave crittografata è di 307 byte.

Command: wrapKey -k 7 -w 14 -out 3DES-encrypted.key -m 4 Key Wrapped. Wrapped Key written to file "3DES-encrypted.key length 307 Cfm2WrapKey returned: 0x00 : HSM Return: SUCCESS

Parameters (Parametri)

-h

Visualizza l'aiuto per il comando.

Campo obbligatorio: sì

-k

L'handle della chiave che si desidera esportare. Digita l'handle della chiave simmetrica o privata posseduta. Per trovare gli handle della chiave, utilizza il comando findKey.

Per verificare che una chiave possa essere esportata, utilizza il comando getAttribute per ottenere il valore dell'attributo OBJ_ATTR_EXTRACTABLE, che è rappresentato dalla costante 354. Per informazioni sull'interpretazione degli attributi chiave, vedi Riferimento per l'attributo della chiave.

Puoi esportare solo le chiavi di tua proprietà. Per trovare il proprietario di una chiave, utilizza il comando getKeyInfo.

Campo obbligatorio: sì

-w

Specifica la chiave di wrapping. Immettere l'handle di una chiave AES o RSA nell'HSM. Questo parametro è obbligatorio. Per trovare gli handle della chiave, utilizza il comando findKey.

Per creare una chiave di wrapping, usa genSymKey per generare una chiave AES (tipo 31) o genRSAKeyPair per generare una coppia di chiavi RSA (tipo 0). Se utilizzi una coppia di chiavi RSA, assicurati di avvolgere la chiave con una delle chiavi e di scartarla con l'altra. Per accertarsi se una chiave può essere usata come chiave di wrapping, utilizza getAttribute per ottenere il valore dell'attributo OBJ_ATTR_WRAP, che è rappresentato dalla costante 262.

Campo obbligatorio: sì

-output

Il percorso e il nome del file di output. Quando il comando viene completato, questo file contiene una copia crittografata della chiave esportata. Se il file già esiste, il comando lo sovrascrive senza preavviso.

Campo obbligatorio: sì

-m

Il valore che rappresenta il meccanismo di wrapping. CloudHSM supporta i seguenti meccanismi:

Meccanismo Valore
AES_KEY_WRAP_PAD_PKCS5 4
NIST_AES_WRAP_NO_PAD 5
NIST_AES_WRAP_PAD 6
RSA_AES 7
RSA_OAEP (per la dimensione massima dei dati, vedi la nota più avanti in questa sezione) 8
AES_GCM 10
CLOUDHSM_AES_GCM 11
RSA_PKCS (per la dimensione massima dei dati, vedere la nota più avanti in questa sezione). Vedi la nota 1 di seguito per una modifica imminente. 12

Campo obbligatorio: sì

Nota

Quando utilizzi il meccanismo di wrapping RSA_OAEP, la dimensione massima della chiave per cui è possibile eseguire il wrapping viene determinata dalla chiave RSA e il periodo di hash specificato come segue: la dimensione massima della chiave = (modulusLengthInBytes-2* hashLengthInBytes-2).

Quando utilizzi il meccanismo di wrapping RSA_PKCS, la dimensione massima della chiave per cui è possibile eseguire il wrapping viene determinata dal modulo della chiave RSA come segue: la dimensione massima della chiave = (modulusLengthInBytes -11).

-t

Il valore che rappresenta l'algoritmo hash. CloudHSM supporta i seguenti algoritmi:

Algoritmo hash Valore
SHA1 2
SHA256 3
SHA384 4
SHA512 5
SHA224 (valido per i meccanismi RSA_AES e RSA_OAEP) 6

Campo obbligatorio: no

-aad

Il nome del file contenente AAD.

Nota

Valido solo per i meccanismi AES_GCM e CLOUDHSM_AES_GCM.

Campo obbligatorio: no

-no intestazione

Omette l'intestazione che specifica gli attributi della chiave specifici per CloudHSM. Utilizzare questo parametro solo se prevedi di annullare il wrapping della chiave con strumenti all'esterno di key_mgmt_util.

Campo obbligatorio: no

-i

Il vettore di inizializzazione (IV) (valore esadecimale).

Nota

Valido solo se passato con il parametro -noheader per i meccanismi CLOUDHSM_AES_KEY_WRAP e NIST_AES_WRAP.

Campo obbligatorio: no

-iv_file

Il file in cui si desidera scrivere il valore IV ottenuto in risposta.

Nota

Valido solo se passato con il parametro -noheader per il meccanismo AES_GCM.

Campo obbligatorio: no

-tag_size

La dimensione del tag da salvare insieme al blob oggetto del wrapping.

Nota

Valido solo se passato con il parametro -noheader per i meccanismi AES_GCM e CLOUDHSM_AES_GCM. La dimensione minima del tag è otto.

Campo obbligatorio: no

[1] Non consentito dopo il 2023 per la conformità al FIPS secondo le linee guida del NIST. Per informazioni dettagliate, vedi Conformità FIPS 140: meccanismo di deprecazione 2024.

Argomenti correlati