unWrapKey - 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à.

unWrapKey

Il comando unWrapKey dello strumento key_mgmt_util consente di importare una chiave di wrapping (crittografata) simmetrica o privata da un file nell'HSM. È concepito per importare le chiavi di crittografia su cui è stato eseguito il comando wrapKey nell'interfaccia a riga di comando key_mgmt_util, ma può essere utilizzato anche per annullare il wrapping delle chiavi effettuato con altri strumenti. Tuttavia, in tali situazioni, ti consigliamo di utilizzare le librerie software PKCS # 11 o JCE per annullare il wrapping della chiave.

Le chiavi importate funzionano come chiavi generate da AWS CloudHSM. Tuttavia, il valore dell’attributo OBJ_ATTR_LOCAL è zero e indica che non sono state generate localmente.

Dopo aver importato una chiave, assicurati di contrassegnare o eliminare il file della chiave. Questo comando non evita di importare lo stesso materiale chiave più volte. Di conseguenza, più chiavi con distinti handle e lo stesso materiale chiave rendono difficile monitorare l'utilizzo del materiale chiave ed evitare il superamento dei limiti crittografici.

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

Sintassi

unWrapKey -h unWrapKey -f <key-file-name> -w <wrapping-key-handle> [-sess] [-min_srv <minimum-number-of-HSMs>] [-timeout <number-of-seconds>] [-aad <additional authenticated data filename>] [-tag_size <tag size>] [-iv_file <IV file>] [-attest] [-m <wrapping-mechanism>] [-t <hash-type>] [-nex] [-u <user id list>] [-m_value <number of users needed for approval>] [-noheader] [-l <key-label>] [-id <key-id>] [-kt <key-type>] [-kc <key-class] [-i <unwrapping-IV>]

Esempio

Questi esempi mostrano come utilizzare unWrapKey per importare una chiave con wrapping da un file dei moduli HSM. Nel primo esempio, abbiamo annullato il wrapping di una chiave eseguito con il comando key_mgmt_util wrapKey, che quindi aveva un’intestazione. Nel secondo esempio, abbiamo annullato il wrapping di una chiave eseguito al di fuori di key_mgmt_util, quindi senza intestazione.

Esempio : annullare il wrapping di una chiave (con intestazione)

Questo comando importa una copia con wrapping di una chiave simmetrica 3DES in un modulo HSM. Il wrapping della chiave viene annullato da una chiave AES con un'etichetta 6, identica dal punto di vista crittografico a quella utilizzata per eseguire il wrapping della chiave 3DES. L'output indica che è stato effettuato l’annullamento del wrapping della chiave nel file e che è stata importata e che l'handle della chiave importata è 29.

Command: unWrapKey -f 3DES.key -w 6 -m 4 Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 29 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Esempio : annullare il wrapping di una chiave (senza intestazione)

Questo comando importa una copia con wrapping di una chiave simmetrica 3DES in un modulo HSM. Il wrapping della chiave viene annullato da una chiave AES con un'etichetta 6, identica dal punto di vista crittografico a quella utilizzata per eseguire il wrapping della chiave 3DES. Dal momento che il wrapping di questa chiave 3DES non è stato eseguito con key_mgmt_util, viene specificato il parametro noheader, insieme ai parametri richiesti: l’etichetta della chiave (unwrapped3DES), la classe della chiave (4) e il tipo di chiave (21). L'output indica che è stato effettuato l’annullamento del wrapping della chiave nel file ed è stata importata e che l'handle della chiave importata è 8.

Command: unWrapKey -f 3DES.key -w 6 -noheader -l unwrapped3DES -kc 4 -kt 21 -m 4 Cfm3CreateUnwrapTemplate2 returned: 0x00 : HSM Return: SUCCESS Cfm2UnWrapWithTemplate3 returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 8 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Parameters (Parametri)

-h

Visualizza l'aiuto per il comando.

Campo obbligatorio: sì

-f

Il percorso e il nome del file contenente la chiave su cui è stato eseguito il wrapping.

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ì

-sessione

Crea una chiave che esiste solo nella sessione corrente. La chiave non può essere recuperata dopo la fine della sessione.

Utilizza questo parametro quando hai bisogno di una chiave solo per un breve periodo, ad esempio una chiave di wrapping che crittografa e quindi decodifica rapidamente un'altra chiave. Non utilizzare una chiave di sessione per crittografare dati che potresti aver bisogno di decodificare dopo la fine della sessione.

Per cambiare una chiave di sessione in una chiave persistente (token), usa setAttribute.

Impostazione Predefinita: la chiave è persistente.

Campo obbligatorio: no

-min_srv

Specifica il numero minimo di HSM su cui la chiave importata è sincronizzata prima che il valore del parametro -timeout scada. Se la chiave non è sincronizzata sul numero di server specificato nel tempo allocato, non viene creata.

AWS CloudHSM sincronizza automaticamente ogni chiave su ogni modulo HSM nel cluster. Per velocizzare il processo, imposta il valore di min_srv su un cifra inferiore al numero di moduli HSM nel cluster e imposta un valore di timeout basso. Tuttavia, alcune richieste potrebbero non generare una chiave.

Impostazione predefinita: 1

Campo obbligatorio: no

timeout

Specifica per quanto tempo (in secondi) il comando attende la sincronizzazione di una chiave con il numero di HSM specificato dal parametro min_srv.

Questo parametro è valido solo quando il parametro min_srv viene utilizzato anche nel comando.

Impostazione Predefinita: No timeout Il comando attende a tempo indefinito e viene restituito solo quando la chiave è sincronizzata con il numero minimo di server.

Campo obbligatorio: no

-attestare

Esegue un controllo di integrità per verificare che il firmware su cui viene eseguito il cluster non sia stato manomesso.

Impostazione predefinita: nessun controllo di attestazione.

Campo obbligatorio: no

-successivo

Rende la chiave non estraibile. La chiave generata non può essere esportata dall'HSM.

Impostazione predefinita: la chiave è estraibile.

Campo obbligatorio: no

-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: 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 dalla chiave RSA come segue: la dimensione massima della chiave = (modulusLengthInBytes -11).

-t
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

-no intestazione

Se si sta per eseguire l’annullamento del wrapping di una chiave eseguito all'esterno di key_mgmt_util, è necessario specificare questo parametro e tutti gli altri parametri associati.

Campo obbligatorio: no

Nota

Se si specifica questo parametro, è necessario specificare anche i seguenti parametri -noheader:

  • -l

    Specifica l'etichetta da aggiungere alla chiave su cui è stato annullato wrapping.

    Campo obbligatorio: sì

  • -kc

    Specifica la classe della chiave su cui annullare il wrapping. Di seguito sono elencati i valori accettabili:

    3 = chiave privata di una coppia di chiavi pubbliche-private

    4 = chiave segreta (simmetrica)

    Campo obbligatorio: sì

  • -kt

    Specifica il tipo di chiave su cui annullare il wrapping. Di seguito sono elencati i valori accettabili:

    0 = RSA

    1 = DSA

    3 = ECC

    16 = GENERIC_SECRET

    21 = DES3

    31 = AES

    Campo obbligatorio: sì

È inoltre possibile specificare i parametri -noheader seguenti:

  • -id

    L'ID da aggiungere alla chiave su cui è stato annullato il wrapping.

    Campo obbligatorio: no

  • -i

    Il vettore di inizializzazione (IV) da utilizzare per annullare il wrapping.

    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