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 costante262
.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 meccanismiRSA_AES
eRSA_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.