

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

# Esporta una copia in testo semplice di una AWS CloudHSM chiave usando KMU
<a name="key_mgmt_util-exSymKey"></a>

Utilizzate il **exSymKey** comando dello strumento AWS CloudHSM key\_mgmt\_util per esportare una copia in testo semplice di una chiave simmetrica dal modulo di sicurezza hardware (HSM) e salvarla in un file su disco. Per esportare una copia crittografata (su cui è stato eseguito il wrapping) di una chiave, usa [wrapKey](key_mgmt_util-wrapKey.md). Per importare una chiave in testo semplice, come quelle che esporta, usa. `exSymKey` [imSymKey](key_mgmt_util-imSymKey.md)

Durante il processo di esportazione, il comando **exSymKey** utilizza una chiave AES specificata (la *chiave di wrapping*) per effettuare il *wrapping* (crittografia) e quindi *annullare il wrapping* (decodifica) della chiave da esportare. Tuttavia, il risultato dell'operazione di esportazione è una chiave di testo non crittografato (*su cui è stato annullato il wrapping*) su disco.

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.

L'operazione **exSymKey** copia il materiale della chiave su un file specificato, ma non rimuove la chiave dall'HSM, non ne modifica gli [attributi](key-attribute-table.md), né impedisce l'utilizzo della chiave nelle operazioni di crittografia. È possibile esportare la stessa chiave più volte.

**exSymKey** esporta solo le chiavi simmetriche. Per esportare le chiavi pubbliche, utilizzare [exportPubKey](key_mgmt_util-exportPubKey.md). Per esportare le chiavi private, utilizzare [exportPrivateKey](key_mgmt_util-exportPrivateKey.md).

Prima di eseguire un comando key\_mgmt\_util, devi [avviare key\_mgmt\_util](key_mgmt_util-setup.md#key_mgmt_util-start) e [accedere](key_mgmt_util-log-in.md) a HSM come crypto user (CU). 

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

```
exSymKey -h

exSymKey -k {{<key-to-export>}}
         -w {{<wrapping-key>}}
         -out {{<key-file>}}
         [-m 4] 
         [-wk {{<unwrapping-key-file>}} ]
```

## Esempi
<a name="exSymKey-examples"></a>

Questi esempi mostrano come utilizzare per **exSymKey** esportare le chiavi simmetriche che possiedi dal tuo. HSMs

**Example : esportazione di una chiave simmetrica 3DES**  
Questo comando esporta una chiave simmetrica Triple DES (3DES) (handle chiave `7`). Utilizza una chiave AES esistente (handle chiave `6`) sull'HSM come chiave di wrapping. Quindi scrive il testo non crittografato della chiave 3DES sul file `3DES.key`.  
L'output indica che la chiave `7` (la chiave 3DES) è stata sottoposta a wrapping e all'annullamento del wrapping e che è stata scritta sul file `3DES.key`.  
Anche se l'output dice che una "Chiave simmetrica wrapped" è stata scritta sul file di output, il file di output contiene una chiave di testo non crittografata (unwrapped).

```
        Command: exSymKey -k 7 -w 6 -out 3DES.key

       Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS


Wrapped Symmetric Key written to file "3DES.key"
```

**Example : esportazione con una chiave di wrapping solo per la sessione**  
Questo esempio illustra come utilizzare una chiave che esiste solo nella sessione come chiave di wrapping. Poiché sulla chiave da esportare è stato eseguito il wrapping che è poi stato immediatamente annullato ed è stata distribuita come testo non crittografato, non è necessario conservare la chiave di wrapping.  
Questa serie di comandi esporta dall'HSM una chiave AES con handle di chiave `8`. Utilizza una chiave di sessione AES creata specificatamente per questo scopo.  
Il primo comando consente di [genSymKey](key_mgmt_util-genSymKey.md)creare una chiave AES a 256 bit. Utilizza il parametro `-sess` per creare una chiave che esiste solo nella sessione corrente.  
L'output indica che l'HSM crea la chiave `262168`.  

```
        Command:  genSymKey -t 31 -s 32 -l AES-wrapping-key -sess

        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 262168

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
```
Quindi, l'esempio verifica che la chiave `8`, la chiave da esportare, sia una chiave simmetrica estraibile. Inoltre verifica che la chiave di wrapping, la chiave `262168`, sia una chiave AES che esiste solo nella sessione. È possibile utilizzare il comando [findKey](key_mgmt_util-findKey.md), ma questo esempio esporta gli attributi di entrambe le chiavi su file e utilizza `grep` per trovare i valori di attributo rilevanti nel file.  
Questi comandi utilizzano `getAttribute` con un valore `-a` di `512` (tutti) per ottenere tutti gli attributi per le chiavi `8` e `262168`. Per ulteriori informazioni sugli attributi delle chiavi, vedi [AWS CloudHSM riferimento agli attributi chiave per KMU](key-attribute-table.md).  

```
getAttribute -o 8 -a 512 -out attributes/attr_8
getAttribute -o 262168 -a 512 -out attributes/attr_262168
```
Questi comandi utilizzano `grep` per verificare gli attributi della chiave da esportare (chiave `8`) e la chiave di wrapping valida solo per la sessione (chiave `262168`).  

```
    // Verify that the key to be exported is a symmetric key.
    $  grep -A 1 "OBJ_ATTR_CLASS" attributes/attr_8    
    OBJ_ATTR_CLASS
    0x04
   
    // Verify that the key to be exported is extractable.
    $  grep -A 1 "OBJ_ATTR_KEY_TYPE" attributes/attr_8
    OBJ_ATTR_EXTRACTABLE
    0x00000001

    // Verify that the wrapping key is an AES key
    $  grep -A 1 "OBJ_ATTR_KEY_TYPE" attributes/attr_262168
    OBJ_ATTR_KEY_TYPE
    0x1f

    // Verify that the wrapping key is a session key
    $  grep -A 1 "OBJ_ATTR_TOKEN" attributes/attr_262168
    OBJ_ATTR_TOKEN
    0x00    
    
    // Verify that the wrapping key can be used for wrapping
     $  grep -A 1 "OBJ_ATTR_WRAP" attributes/attr_262168
    OBJ_ATTR_WRAP
    0x00000001
```
Infine, utilizziamo un comando **exSymKey** per esportare la chiave `8` utilizzando la chiave di sessione (chiave `262168`) come chiave di wrapping.  
Quando la sessione scade, la chiave `262168` non è più disponibile.  

```
        Command:  exSymKey -k 8 -w 262168 -out aes256_H8.key

        Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS


Wrapped Symmetric Key written to file "aes256_H8.key"
```

**Example : utilizzo di una chiave di wrapping esterna**  
Questo esempio illustra come utilizzare una chiave di wrapping esterna per esportare una chiave dall'HSM.  
Quando si esegue l'esportazione di una chiave dall'HSM, è necessario specificare una chiave AES nell'HSM che funga da chiave di wrapping. Per impostazione predefinita, la chiave di wrapping viene utilizzata per eseguire e annullare il wrapping della chiave da esportare. Tuttavia, è possibile utilizzare il parametro `-wk` per ordinare a **exSymKey** di utilizzare una chiave esterna in un file su disco per annullare il wrapping. Quando si esegue questa operazione, la chiave specificata dal parametro `-w` effettua il wrapping della chiave di destinazione e la chiave nel file specificata dal parametro `-wk` annulla il wrapping della chiave.   
Poiché la chiave di wrapping deve essere una chiave AES, ovvero una chiave simmetrica, la chiave di wrapping nell'HSM e la chiave di unwrapping su disco devono avere lo stesso materiale chiave. Per eseguire questa operazione, è necessario importare la chiave di wrapping sull'HSM o esportare la chiave di wrapping dall'HSM prima dell'operazione di esportazione.   
Questo esempio crea una chiave al di fuori dell'HSM e la importa nell'HSM. Utilizza la copia interna della chiave per effettuare il wrapping di una chiave simmetrica esportata e la copia della chiave nel file per annullare il wrapping.  
Il primo comando utilizza OpenSSL per generare una chiave AES a 256 bit. Memorizza la chiave sul file `aes256-forImport.key`. Il comando OpenSSL non restituisce alcun output, ma è possibile utilizzare diversi comandi per confermare che l'operazione sia avvenuta con successo. Questo esempio utilizza lo strumento **wc** (conteggio delle parole), che conferma che il file contiene 32 byte di dati.  

```
$  openssl rand -out keys/aes256-forImport.key 32

$ wc keys/aes256-forImport.key
 0  2 32 keys/aes256-forImport.key
```
Questo comando utilizza il comando [imSymKey](key_mgmt_util-imSymKey.md) per importare la chiave AES dal file `aes256-forImport.key` all'HSM. Quando il comando viene completato, la chiave esiste nell'HSM con handle `262167` e nel file `aes256-forImport.key`.  

```
Command:  imSymKey -f keys/aes256-forImport.key -t 31 -l aes256-imported -w 6

        Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Unwrapped.  Key Handle: 262167

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
Questo comando utilizza la chiave in un'operazione di esportazione. Il comando utilizza **exSymKey** per esportare la chiave `21`, una chiave AES a 192 bit. Per effettuare il wrapping della chiave, utilizza la chiave `262167`, che è la copia importata nell'HSM. Per annullare il wrapping della chiave, utilizza lo stesso materiale chiave nel file `aes256-forImport.key`. Quando il comando viene completato, la chiave `21` viene esportata sul file `aes192_h21.key`.  

```
        Command:  exSymKey -k 21 -w 262167 -out aes192_H21.key -wk aes256-forImport.key

        Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

Wrapped Symmetric Key written to file "aes192_H21.key"
```

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

**-h**  
Visualizza l'aiuto per il comando.   
Obbligatorio: sì

**-k**  
Specifica l'handle della chiave da esportare. Questo parametro è obbligatorio. Specifica l'handle della chiave simmetrica posseduta. Questo parametro è obbligatorio. Per trovare gli handle della chiave, utilizza il comando [findKey](key_mgmt_util-findKey.md).  
Per verificare che una chiave possa essere esportata, utilizza il comando [getAttribute](key_mgmt_util-getAttribute.md) per ottenere il valore dell'attributo `OBJ_ATTR_EXTRACTABLE`, che è rappresentato dalla costante `354`. Inoltre, puoi esportare solo le chiavi di tua proprietà. Per trovare il proprietario di una chiave, usa il [getKeyInfo](key_mgmt_util-getKeyInfo.md)comando.  
Obbligatorio: sì

**-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) della chiave da esportare. 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 usata come chiave di wrapping, utilizza [getAttribute](key_mgmt_util-getAttribute.md) per ottenere il valore dell'attributo `OBJ_ATTR_WRAP`, che è rappresentato dalla costante `262`. Per creare una chiave di wrapping, utilizza [genSymKey](key_mgmt_util-genSymKey.md) per creare una chiave AES (tipo 31).  
Se utilizzi il parametro `-wk` per specificare una chiave di unwrapping esterna, la chiave di wrapping `-w` viene utilizzata per eseguire il wrapping della chiave durante l'esportazione, ma non per annullarlo.  
La chiave 4 rappresenta una chiave interna non supportata. Ti consigliamo di utilizzare una chiave AES che crei e gestisci come chiave di wrapping.
Obbligatorio: sì

**-output**  
Specifica il percorso e il nome del file di output. Quando il comando viene completato, questo file contiene la chiave esportata in testo non crittografato. Se il file già esiste, il comando lo sovrascrive senza preavviso.  
Obbligatorio: sì

**-m**  
Specifica il meccanismo di wrapping. L'unico valore valido è `4`, che rappresenta il meccanismo `NIST_AES_WRAP`.  
Obbligatorio: no  
Impostazione predefinita: 4

**-wk**  
Utilizza la chiave AES nel file specificato per annullare il wrapping della chiave esportata. Inserire il percorso e il nome di un file che contiene una chiave AES non crittografata.   
Quando includi questo parametro. `exSymKey` utilizza la chiave nell'HSM specificata dal parametro `-w` per eseguire il wrapping della chiave esportata e utilizza la chiave nel file `-wk` per annullarne il wrapping. I valori di parametro `-w` e `-wk` devono determinare la stessa chiave non crittografata.  
Obbligatorio: no  
Impostazione predefinita: utilizzo della chiave di wrapping sull'HSM per annullare il wrapping.

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