

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

# Importa una chiave simmetrica in testo semplice usando KMU AWS CloudHSM
<a name="key_mgmt_util-imSymKey"></a>

Utilizzate il **imSymKey** comando dello strumento AWS CloudHSM key\$1mgmt\$1util 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](key_mgmt_util-exSymKey.md) 

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 [[unWrapKey](key_mgmt_util-unwrapKey.md)WrapKey](key_mgmt_util-wrapKey.md) e i comandi. 

Inoltre, il comando **imSymKey** importa solo le chiavi simmetriche. Per importare le chiavi pubbliche, utilizzare [importPubKey](key_mgmt_util-importPubKey.md). Per importare chiavi private, usa [importPrivateKey](key_mgmt_util-importPrivateKey.md)o [wrapKey](key_mgmt_util-wrapKey.md). 

**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\$1ATTR\$1LOCAL](key-attribute-table.md) è 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\$1mgmt\$1util](cloudhsm_mgmt_util.md) 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\$1mgmt\$1util, devi [avviare key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [accedere](key_mgmt_util-log-in.md) all'HSM come crypto user (CU). 

## Sintassi
<a name="imSymKey-syntax"></a>

```
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
<a name="imSymKey-examples"></a>

Questi esempi mostrano come **imSymKey** importare chiavi simmetriche nel tuo. HSMs

**Example : 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.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](key_mgmt_util-getAttribute.md) per ottenere l'attributo OBJ\$1ATTR\$1LOCAL ([attributo 355](key-attribute-table.md)) 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
```

**Example : spostamento di una chiave simmetrica tra cluster**  
Questo esempio illustra come utilizzare [exSymKey](key_mgmt_util-exSymKey.md) 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 [unWrapKey](key_mgmt_util-unwrapKey.md)](key_mgmt_util-wrapKey.md)e 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](key_mgmt_util-exSymKey.md) 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\$1mgmt\$1util 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](key_mgmt_util-exSymKey.md) 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](key_mgmt_util-getAttribute.md) 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](key_mgmt_util-getAttribute.md) 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.

**Example : 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](key_mgmt_util-getAttribute.md) o [findKey](key_mgmt_util-findKey.md) 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
```

## Parameters
<a name="imSymKey-params"></a>

**-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.  
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
Obbligatorio: sì

**-h**  
Visualizza l'aiuto per il comando.   
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.  
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.   
Obbligatorio: sì

**-min\$1srv**  
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  
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](key_mgmt_util-setAttribute.md).  
Impostazione Predefinita: la chiave è persistente.   
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.  
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)](https://en.wikipedia.org/wiki/Triple_DES).
+ 31: [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
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](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_mgmt_util-listUsers.html) nello strumento a riga di comando cloudhsm\$1mgmt\$1util o il comando [listUsers](https://docs.aws.amazon.com/cloudhsm/latest/userguide/key_mgmt_util-listUsers.html) nello strumento a riga di comando key\$1mgmt\$1util.   
Obbligatorio: no

**-w**  
Specifica l'handle di una chiave di wrapping. Questo parametro è obbligatorio. Per trovare gli handle della chiave, utilizza il comando [findKey](key_mgmt_util-findKey.md).  
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](key_mgmt_util-getAttribute.md) per ottenere il valore dell'attributo `OBJ_ATTR_WRAP` (262). Per creare una chiave di wrapping, utilizza [genSymKey](key_mgmt_util-genSymKey.md) 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.  
La chiave 4 è una chiave interna non supportata. Ti consigliamo di utilizzare una chiave AES che crei e gestisci come chiave di wrapping.
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.  
Obbligatorio: no

## Argomenti correlati
<a name="imSymKey-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [exportPrivateKey](key_mgmt_util-exportPrivateKey.md)
+ [exportPubKey](key_mgmt_util-exportPubKey.md)