

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

# Genera una chiave AWS CloudHSM simmetrica usando KMU
<a name="key_mgmt_util-genSymKey"></a>

Utilizzate il **genSymKey** comando nello strumento AWS CloudHSM key\_mgmt\_util per generare una chiave simmetrica nei vostri moduli di sicurezza hardware (HSM). È possibile specificare il tipo e le dimensioni della chiave, assegnare un ID e un'etichetta e condividere la chiave con altri utenti HSM. È anche possibile creare chiavi non estraibili e chiavi che scadono al termine della sessione. Quando il comando viene completato con successo, restituisce un handle che l'HSM assegna alla chiave. È possibile utilizzare l'handle per identificare la chiave per altri comandi.

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) all'HSM come crypto user (CU). 

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

```
genSymKey -h

genSymKey -t {{<key-type>}}
          -s {{<key-size>}} 
          -l {{<label>}} 
          [-id {{<key-ID>}}] 
          [-min_srv {{<minimum-number-of-servers>}}] 
          [-m_value {{<0..8>}}]
          [-nex] 
          [-sess] 
          [-timeout {{<number-of-seconds>}} ]
          [-u {{<user-ids>}}] 
          [-attest]
```

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

Questi esempi mostrano come utilizzare per creare chiavi simmetriche nel tuo. **genSymKey** HSMs

**Suggerimento**  
Per utilizzare le chiavi create con questi esempi per le operazioni HMAC, è necessario impostare `OBJ_ATTR_SIGN` e `OBJ_ATTR_VERIFY` a `TRUE` dopo aver generato la chiave. Per impostare questi valori, utilizza **setAttribute** in CloudHSM Management Utility (CMU). Per ulteriori informazioni, vedi [setAttribute](cloudhsm_mgmt_util-setAttribute.md).

**Example Generazione di una chiave AES**  
Questo comando crea una chiave AES a 256 bit con un'etichetta `aes256`. L'output indica che l'handle della nuova chiave è `6`.  

```
Command: genSymKey -t 31 -s 32 -l aes256

        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 6

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : Creazione di una chiave di sessione**  
Questo comando crea una chiave AES non estraibile a 192 bit valida solo per la durata della sessione corrente. È possibile creare una chiave come questa per eseguire il wrapping (e subito dopo annullare il wrapping) di una chiave in fase di esportazione.   

```
Command: genSymKey -t 31 -s 24 -l tmpAES -id wrap01 -nex -sess 
```

**Example : Risultato rapido**  
Questo comando crea una chiave generica a 512 byte con un'etichetta di `IT_test_key`. Il comando non attende che la chiave venga sincronizzata con tutte HSMs le chiavi del cluster. Restituisce invece un risultato non appena la chiave viene creata in qualsiasi HSM (`-min_srv 1`) o in 1 secondo (`-timeout 1`), qualunque sia la soluzione più rapida. Se la chiave non è sincronizzata al numero minimo specificato HSMs prima della scadenza del timeout, non viene generata. È possibile utilizzare un comando come questo in uno script che crea numerose chiavi, come il loop `for` nell'esempio seguente.   

```
Command: genSymKey -t 16 -s 512 -l IT_test_key -min_srv 1 -timeout 1

$  for i in {1..30}; 
     do /opt/cloudhsm/bin/key_mgmt_util singlecmd loginHSM -u CU -s example_user -p example_pwd genSymKey -l aes -t 31 -s 32 -min_srv 1 -timeout 1; 
 done;
```

**Example : Creazione di una chiave generica con autorizzazione del quorum**  
Questo comando crea una chiave segreta generica a 2048 bit con l'etichetta `generic-mV2`. Il comando utilizza il parametro `-u` per condividere la chiave con un altro utente di crittografia, l'utente 6. Usa il parametro `-m_value` per richiedere un quorum di almeno due approvazioni per le operazioni di crittografia che utilizzano la chiave. Il comando utilizza inoltre il parametro `-attest` per verificare l'integrità del firmware in cui la chiave viene generata.  
L'output indica che il comando ha generato una chiave con handle `9` e che il controllo di attestazione sul firmware del cluster ha avuto esito positivo.  

```
                Command:  genSymKey -t 16 -s 2048 -l generic-mV2 -m_value 2 -u 6 -attest

        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 9

        Attestation Check : [PASS]

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : Creazione e analisi di una chiave**  
Questo comando crea una chiave Triple DES con un'etichetta `3DES_shared` e un ID `IT-02`. La chiave può essere utilizzata dall'utente corrente e dagli utenti 4 e 5. Il comando ha esito negativo se l'ID non è univoco nel cluster o se l'utente corrente è l'utente 4 o 5.   
L'output indica che la nuova chiave ha un handle `7`.  

```
Command: genSymKey -t 21 -s 24 -l 3DES_shared -id IT-02 -u 4,5

       Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 7

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
Per verificare che la nuova chiave 3DES sia di proprietà dell'utente corrente e sia condivisa con gli utenti 4 e 5, utilizza **[getKeyInfo](key_mgmt_util-getKeyInfo.md)**. Il comando usa l'handle assegnato alla nuova chiave (`Key Handle: 7`).  
L'output conferma che la chiave è di proprietà dell'utente 3 ed è condivisa con gli utenti 4 e 5.  

```
Command:  getKeyInfo -k 7

        Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

        Owned by user 3

        also, shared to following 2 user(s):

                 4, 5
```
Per verificare le altre proprietà della chiave, utilizza [getAttribute](key_mgmt_util-getAttribute.md). Il primo comando usa `getAttribute` per ottenere tutti gli attributi (`-a 512`) dell'handle di chiave 7 (`-o 7`) e li scrive nel file `attr_7`. Il secondo comando usa `cat` per ottenere il contenuto del file `attr_7`.   
Questo comando conferma che la chiave 7 è una chiave simmetrica (`OBJ_ATTR_CLASS 0x04`) 3DES (`OBJ_ATTR_KEY_TYPE 0x15`) a 192 bit (`OBJ_ATTR_VALUE_LEN 0x00000018` o 24 byte) con un'etichetta `3DES_shared` (`OBJ_ATTR_LABEL 3DES_shared`) e un ID `IT_02` (`OBJ_ATTR_ID IT-02`). La chiave è persistente (`OBJ_ATTR_TOKEN 0x01`) ed estraibile (`OBJ_ATTR_EXTRACTABLE 0x01`) e può essere utilizzata per la crittografia, la decodifica e il wrapping.   
Per trovare gli attributi di una chiave che hai creato, ad esempio tipo, lunghezza, etichetta e ID, usa [getAttribute](key_mgmt_util-getAttribute.md). Per trovare le chiavi per un determinato utente, usa. [getKeyInfo](key_mgmt_util-getKeyInfo.md) Per trovare le chiavi in base ai valori degli attributi, usa [findKey](key_mgmt_util-findKey.md). 
Per informazioni sull'interpretazione degli attributi chiave, vedi [AWS CloudHSM riferimento agli attributi chiave per KMU](key-attribute-table.md).  

```
Command:  getAttribute -o 7 -a 512 -out attr_7

got all attributes of size 444 attr cnt 17
Attributes dumped into attr_7 file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS


$  cat attr_7

OBJ_ATTR_CLASS
0x04
OBJ_ATTR_KEY_TYPE
0x15
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x01
OBJ_ATTR_WRAP
0x00
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
3DES_shared
OBJ_ATTR_ID
IT-02
OBJ_ATTR_VALUE_LEN
0x00000018
OBJ_ATTR_KCV
0x59a46e
```
Per utilizzare le chiavi create con questi esempi per le operazioni HMAC, è necessario impostare `OBJ_ATTR_SIGN` e `OBJ_ATTR_VERIFY` a `TRUE` dopo aver generato la chiave. Per impostare questi valori, usa **setAttribute** in CMU. Per ulteriori informazioni, vedi [setAttribute](cloudhsm_mgmt_util-setAttribute.md).

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

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

**-t**  
Specifica il tipo di chiave simmetrica. Inserisci la costante che rappresenta il tipo di chiave. Ad esempio, per creare una chiave AES, digita `-t 31`.  
Valori validi:   
+ 16: [GENERIC\_SECRET](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226962). Una *chiave segreta generica* è una matrice di byte non conforme a un determinato standard, come i requisiti per una chiave AES. 
+ 18: [RC4](https://en.wikipedia.org/wiki/RC4). RC4 le chiavi non sono valide in modalità FIPS HSMs
+ 21: [Triple DES (3DES)](https://en.wikipedia.org/wiki/Triple_DES). In conformità alle linee guida del NIST, ciò non è consentito per i cluster in modalità FIPS dopo il 2023. Per i cluster in modalità non FIPS, è ancora consentito dopo il 2023. Per informazioni dettagliate, vedi [Conformità FIPS 140: meccanismo di deprecazione 2024](compliance-dep-notif.md#compliance-dep-notif-1).
+ 31: [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
Obbligatorio: sì

**-s**  
Specifica le dimensioni della chiave in byte. Ad esempio, per creare una chiave a 192 bit, digita `24`.   
Valori validi per ogni tipo di chiave:  
+ AES: 16 (128 bit), 24 (192 bit), 32 (256 bit)
+ 3DES: 24 (192 bit)
+ Segreta generica: <3584 (28672 bit)
Obbligatorio: sì

**-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ì

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

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

**-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  
Obbligatorio: no

**-m\_valore**  
Specifica il numero di utenti che devono approvare le operazioni di crittografia che utilizzano la chiave importata. Digitare un valore da `0` a `8`.  
Questo parametro stabilisce un requisito di autenticazione del quorum per la chiave. Il valore predefinito, `0`, disabilita la funzionalità di autenticazione del quorum per la chiave. Quando su una chiave è abilitata la funzionalità di autenticazione del quorum, restituisce anche il numero di utenti che devono approvare le operazioni di crittografia che utilizzano la chiave.  
Per trovare il codice `m_value` di una chiave, usa [getKeyInfo](key_mgmt_util-getKeyInfo.md).  
Questo parametro è valido soltanto quando il parametro `-u` nel comando condivide la chiave con un numero sufficiente di utenti per soddisfare il requisito `m_value`.  
Impostazione Predefinita: 0  
Obbligatorio: no

**-nex**  
Rende la chiave non estraibile. La chiave generata non può essere [esportata dall'HSM](export-keys.md).  
Impostazione predefinita: la chiave è estraibile.  
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 che una chiave venga sincronizzata 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

**-u**  
Condivide la chiave con gli utenti specificati. Questo parametro fornisce agli altri utenti crittografici HSM (CUs) il permesso di utilizzare questa chiave nelle operazioni crittografiche.  
Digitate un elenco separato da virgole di utenti HSM, ad esempio -. IDs `u 5,6` Non includere l'ID utente dell'HSM dell'utente attuale. [Per trovare l'utente HSM IDs di CUs sull'HSM, usa ListUsers.](key_mgmt_util-listUsers.md) Quindi, per condividere o interrompere la condivisione di una chiave esistente, utilizza [shareKey](cloudhsm_mgmt_util-shareKey.md) in cloudhsm\_mgmt\_util.   
Impostazione predefinita: soltanto l'utente attuale può utilizzare la chiave.   
Obbligatorio: no

## Argomenti correlati
<a name="genSymKey-seealso"></a>
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [RSAKeygen Pair](key_mgmt_util-genRSAKeyPair.md)
+ [DSAKeycoppia di generi](key_mgmt_util-genDSAKeyPair.md)
+ [ECCKeycoppia di generi](key_mgmt_util-genECCKeyPair.md)
+ [setAttribute](cloudhsm_mgmt_util-setAttribute.md)