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à.
Utilizzate il imSymKey comando dello strumento AWS CloudHSM key_mgmt_util per importare una copia in testo semplice di una chiave simmetrica da un file nel modulo di sicurezza hardware (HSM). È possibile utilizzarlo per importare le chiavi generate con qualsiasi metodo diverso dall'HSM e le chiavi che sono state esportate da un HSM, ad esempio le chiavi che il comando, scrive in un file. exSymKey
Durante il processo di importazione, imSymKey utilizza una chiave AES selezionata (la chiave di wrapping) per effettuare il wrapping (crittografare) e quindi annullare il wrapping (decodificare) della chiave da importare. Tuttavia, imSymKey funziona solo per i file che contengono le chiavi in testo non crittografato. Per esportare e importare chiavi crittografate, usa unWrapKeyWrapKey e i comandi.
Inoltre, il comando imSymKey importa solo le chiavi simmetriche. Per importare le chiavi pubbliche, utilizzare importPubKey. Per importare chiavi private, usa importPrivateKeyo wrapKey.
Nota
Non è possibile importare una chiave PEM protetta da password utilizzando una chiave simmetrica o privata.
Le chiavi importate funzionano in modo molto smile alle chiavi generate nell'HSM. Tuttavia, il valore dell'attributo OBJ_ATTR_LOCAL è pari a zero, a indicare che non è stato generato a livello locale. È possibile utilizzare il comando seguente per condividere una chiave simmetrica durante l'importazione. È possibile utilizzare il comando shareKey
in cloudhsm_mgmt_util per condividere la chiave dopo l'importazione.
imSymKey -l aesShared -t 31 -f kms.key -w 3296 -u 5
Dopo l'importazione di una chiave, assicurarsi 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
imSymKey -h imSymKey -f <key-file> -w <wrapping-key-handle> -t <key-type> -l <label> [-id <key-ID>] [-sess] [-wk <wrapping-key-file> ] [-attest] [-min_srv <minimum-number-of-servers>] [-timeout <number-of-seconds> ] [-u <user-ids>]
Esempi
Questi esempi mostrano come imSymKey importare chiavi simmetriche nel tuo. HSMs
Esempio : importazione di una chiave simmetrica AES
Questo esempio utilizza imSymKey per importare una chiave simmetrica AES in. HSMs
Il primo comando utilizza OpenSSL per generare una chiave simmetrica AES a 256 bit casuale. Memorizza la chiave nel file aes256.key
.
$
openssl rand -out aes256-forImport.key 32
Il secondo comando consente imSymKey di importare la chiave AES dal aes256.key
file in. HSMs Utilizza la chiave 20, una chiave AES nell'HSM, come chiave di wrapping e specifica un'etichetta di imported
. A differenza dell'ID, l'etichetta non deve essere univoca nel cluster. Il valore del parametro (tipo) -t
è 31
, che rappresenta AES.
L'output indica che la chiave nel file è stata sottoposta a wrapping e all'annullamento del wrapping, quindi importata nell'HSM, dove le è stato assegnato l'handle 262180.
Command:
imSymKey -f aes256.key -w 20 -t 31 -l imported
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 262180 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
Il comando successivo utilizza getAttribute per ottenere l'attributo OBJ_ATTR_LOCAL (attributo 355) della chiave appena importata e lo scrive sul file attr_262180
.
Command:
getAttribute -o 262180 -a 355 -out attributes/attr_262180
Attributes dumped into attributes/attr_262180_imported file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
Quando si analizza il file degli attributi, è possibile verificare che il valore dell'attributo OBJ_ATTR_LOCAL
è zero, il che indica che il materiale chiave non è stato generato nell'HSM.
$
cat attributes/attr_262180_local
OBJ_ATTR_LOCAL 0x00000000
Esempio : spostamento di una chiave simmetrica tra cluster
Questo esempio illustra come utilizzare exSymKey e imSymKey per spostare una chiave AES non crittografata tra i cluster. È possibile utilizzare un processo come questo per creare un wrapping AES esistente su HSMs entrambi i cluster. Una volta inserita la chiave di wrapping condivisa, è possibile utilizzare WrapKey unWrapKeye spostare le chiavi crittografate tra i cluster.
L'utente CU che esegue questa operazione deve disporre dell'autorizzazione per accedere a entrambi i cluster. HSMs
Il primo comando utilizza exSymKey per esportare la chiave 14, una chiave AES a 32 bit, dal cluster 1 al file aes.key
. Utilizza la chiave 6, una chiave AES HSMs nel cluster 1, come chiave di wrapping.
Command:
exSymKey -k 14 -w 6 -out aes.key
Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS Wrapped Symmetric Key written to file "aes.key"
L'utente accede quindi a key_mgmt_util nel cluster 2 ed esegue un imSymKey comando per importare la chiave nel file nel cluster 2. aes.key
HSMs Questo comando utilizza la chiave 252152, una chiave AES nel cluster 2, come chiave di wrapping. HSMs
Poiché le chiavi di wrapping utilizzate da exSymKey e imSymKey eseguono il wrapping e immediatamente annullano il wrapping delle chiavi di destinazione, le chiavi di wrapping su cluster diversi non devono essere le stesse.
L'output indica che la chiave è stata importata nel cluster 2 e che le è stato assegnato un handle di 21.
Command:
imSymKey -f aes.key -w 262152 -t 31 -l xcluster
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 21 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
Per dimostrare che la chiave 14 del cluster 1 e la chiave 21 del cluster 2 hanno lo stesso materiale chiave, ottieni il valore di controllo della chiave (KCV) di ciascuna chiave. Se i valori KCV sono gli stessi, il materiale chiave è lo stesso.
Il comando seguente utilizza getAttribute nel cluster 1 per scrivere il valore dell'attributo KCV (attributo 371) della chiave 14 sul file attr_14_kcv
. Poi, utilizza un comando cat per ottenere il contenuto del file attr_14_kcv
.
Command:
getAttribute -o 14 -a 371 -out attr_14_kcv
Attributes dumped into attr_14_kcv file
$
cat attr_14_kcv
OBJ_ATTR_KCV 0xc33cbd
Questo comando simile utilizza getAttribute nel cluster 2 per scrivere il valore dell'attributo KCV (attributo 371) della chiave 21 sul file attr_21_kcv
. Poi, utilizza un comando cat per ottenere il contenuto del file attr_21_kcv
.
Command:
getAttribute -o 21 -a 371 -out attr_21_kcv
Attributes dumped into attr_21_kcv file
$
cat attr_21_kcv
OBJ_ATTR_KCV 0xc33cbd
L'output indica che i valori KCV delle due chiavi sono gli stessi, il che dimostra che il materiale chiave è lo stesso.
Poiché lo stesso materiale chiave esiste in entrambi i cluster, ora è possibile condividere le chiavi crittografate tra i cluster senza mai esporre la chiave in chiaro. HSMs Ad esempio, è possibile utilizzare il comando wrapKey
con la chiave di wrapping 14 per esportare una chiave crittografata dal cluster 1 e quindi utilizzare unWrapKey
con la chiave di wrapping 21 per importare la chiave crittografata nel cluster 2.
Esempio : importazione di una chiave di sessione
Questo comando utilizza i parametri -sess
di imSymKey per importare una chiave Triple DES a 192 bit valida solo per la sessione corrente.
Il comando utilizza il parametro -f
per specificare il file che contiene la chiave da importare, il parametro -t
per specificare il tipo di chiave e il parametro -w
per specificare la chiave di wrapping. Utilizza il parametro -l
per specificare un'etichetta che qualifichi la chiave e il parametro -id
per creare un identificatore intuitivo, ma univoco per la chiave. Viene inoltre utilizzato il parametro -attest
per verificare il firmware che importa la chiave.
L'output indica che la chiave è stata sottoposta a wrapping e all'annullamento del wrapping, importata nell'HSM e che le è stato assegnato l'handle di 37. Inoltre, il controllo di attestazione ha avuto esito positivo, il che indica che il firmware non è stato danneggiato.
Command:
imSymKey -f 3des192.key -w 6 -t 21 -l temp -id test01 -sess -attest
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 37 Attestation Check : [PASS] Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Quindi, è possibile utilizzare i comandi getAttribute o findKey per verificare gli attributi della chiave appena importata. Il comando seguente utilizza findKey per verificare che la chiave 37 disponga del tipo, dell'etichetta e dell'ID specificati dal comando e che sia una chiave di sessione. Come illustrato alla riga 5 dell'output, findKey indica che l'unica chiave corrispondente a tutti gli attributi è la chiave 37.
Command:
findKey -t 21 -l temp -id test01 -sess 1
Total number of keys present 1 number of keys matched from start index 0::0 37 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
Parametri
- -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
- -f
-
Specifica il file che contiene la chiave da importare.
Il file deve contenere una copia in testo semplice di una chiave AES o Triple DES della lunghezza specificata. RC4 e le chiavi DES non sono valide in modalità FIPS. HSMs
-
AES: 16, 24 o 32 byte
-
Triple DES (3DES): 24 byte
Campo obbligatorio: sì
-
- -h
-
Visualizza l'aiuto per il comando.
Campo obbligatorio: sì
- -id
-
Specifica un identificatore definito dall'utente per la chiave. Digita una stringa univoca nel cluster. L'impostazione predefinita è una stringa vuota.
Impostazione predefinita: nessun valore ID.
Campo obbligatorio: no
- -l
-
Specifica un'etichetta definita dall'utente per la chiave. Digita una stringa.
Puoi usare qualsiasi frase che ti aiuti a identificare la chiave. Poiché l'etichetta non deve essere necessariamente univoca, è possibile utilizzarla per raggruppare e classificare le chiavi.
Campo obbligatorio: sì
- -min_srv
-
Speciifica il numero minimo HSMs su cui la chiave viene sincronizzata prima della scadenza del valore del parametro.
-timeout
Se la chiave non è sincronizzata sul numero di server specificato nel tempo allocato, non viene creata.AWS CloudHSM sincronizza automaticamente ogni chiave con ogni HSM del cluster. Per velocizzare il processo, impostate un valore inferiore
min_srv
al numero di componenti del HSMs cluster e impostate un valore di timeout basso. Tuttavia, alcune richieste potrebbero non generare una chiave.Impostazione predefinita: 1
Campo obbligatorio: no
- -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 al termine della sessione.
Per cambiare una chiave di sessione in una chiave persistente (token), usa setAttribute.
Impostazione Predefinita: la chiave è persistente.
Campo obbligatorio: no
- -timeout
-
Speciifica per quanto tempo (in secondi) il comando attende la sincronizzazione di una chiave con il numero HSMs 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
- -t
-
Specifica il tipo di chiave simmetrica. Inserisci la costante che rappresenta il tipo di chiave. Ad esempio, per creare una chiave AES, immetti
-t 31
.Valori validi:
-
21: Triple DES (3DES)
. -
31: AES
Campo obbligatorio: sì
-
- -u
-
Condivide la chiave importata con utenti specificati. Questo parametro fornisce agli altri utenti crittografici HSM (CUs) il permesso di utilizzare questa chiave nelle operazioni crittografiche.
Digita un ID o un elenco separato da virgole di utenti HSM, ad esempio -u. IDs
5,6
Non includere l'ID utente dell'HSM dell'utente attuale. Per trovare l'ID, è possibile utilizzare il comando listUsers nello strumento a riga di comando cloudhsm_mgmt_util o il comando listUsers nello strumento a riga di comando key_mgmt_util.Campo obbligatorio: no
- -w
-
Specifica l'handle di una chiave di wrapping. Questo parametro è obbligatorio. Per trovare gli handle della chiave, utilizza il comando findKey.
Una chiave di wrapping è una chiave nell'HSM che viene utilizzata per crittografare ("eseguire il wrapping") e quindi decodificare ("annullare il wrapping) la chiave durante il processo di importazione. Solo le chiavi AES possono essere utilizzate come chiavi di wrapping.
Puoi usare qualsiasi chiave AES (di qualsiasi dimensione) come chiave di wrapping. Poiché la chiave di wrapping effettua e quindi annulla immediatamente il wrapping della chiave di destinazione, puoi utilizzare una chiave AES valida solo per la sessione come chiave di wrapping. Per determinare se una chiave può essere utilizzata come una chiave di wrapping, utilizza getAttribute per ottenere il valore dell'attributo
OBJ_ATTR_WRAP
(262). Per creare una chiave di wrapping, utilizza genSymKey per creare una chiave AES (tipo 31).Se si utilizza il parametro
-wk
per specificare una chiave di wrapping esterna, la chiave di wrapping-w
viene utilizzata per annullare il wrapping della chiave importata, ma non per eseguirlo.Nota
La chiave 4 è una chiave interna non supportata. Ti consigliamo di utilizzare una chiave AES che crei e gestisci come chiave di wrapping.
Campo obbligatorio: sì
- -wk
-
Utilizza la chiave AES nel file specificato per eseguire il wrapping della chiave importata. Inserire il percorso e il nome di un file che contiene una chiave AES non crittografata.
Quando includi questo parametro. imSymKey utilizza la chiave nel file
-wk
per eseguire il wrapping della chiave importata e utilizza la chiave nell'HSM specificato dal parametro-w
per annullarne il wrapping. I valori di parametro-w
e-wk
devono determinare la stessa chiave non crittografata.Impostazione predefinita: utilizzo della chiave di wrapping sull'HSM per annullare il wrapping.
Campo obbligatorio: no