

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Importe una clave simétrica de texto plano mediante KMU AWS CloudHSM
<a name="key_mgmt_util-imSymKey"></a>

Utilice el **imSymKey** comando de la herramienta AWS CloudHSM key\_mgmt\_util para importar una copia en texto plano de una clave simétrica de un archivo al módulo de seguridad de hardware (HSM). Puede usarlo para importar las claves generadas mediante cualquier método ajeno al HSM y las claves que se exportaron desde un HSM, como las claves que el comando escribe en un archivo. [exSymKey](key_mgmt_util-exSymKey.md) 

Durante el proceso de importación, **imSymKey** utiliza una clave AES que se selecciona (la *clave de encapsulado*) para *encapsular* (cifrar) y luego *desencapsular* (descifrar) la clave que se va a importar. Sin embargo, **imSymKey** funciona solo en archivos que contienen claves no cifradas. Para exportar e importar claves cifradas, utilice [WrapKey](key_mgmt_util-wrapKey.md) y [unWrapKey](key_mgmt_util-unwrapKey.md)los comandos. 

Además, el comando **imSymKey** importa únicamente claves simétricas. Para importar claves públicas, utilice [importPubKey](key_mgmt_util-importPubKey.md). Para importar claves privadas, utilice [importPrivateKey](key_mgmt_util-importPrivateKey.md)o [WrapKey](key_mgmt_util-wrapKey.md). 

**nota**  
No puede importar una clave PEM protegida con contraseña mediante una clave simétrica o privada.

Las claves importadas funcionan de forma muy parecida a las claves que se generan en el HSM. Sin embargo, el valor del [atributo OBJ\_ATTR\_LOCAL](key-attribute-table.md) es cero, lo que indica que no se generó localmente. Puede utilizar el siguiente comando para compartir una clave simétrica al importarla. Puede utilizar el comando `shareKey` de [cloudhsm\_mgmt\_util](cloudhsm_mgmt_util.md) para compartir la clave después de importarla. 

```
imSymKey -l aesShared -t 31 -f kms.key -w 3296 -u 5
```

Después de importar una clave, asegúrese de marcar o eliminar el archivo de clave. Este comando no le impide importar el mismo material de claves varias veces. El resultado, es decir, varias claves con diferentes identificadores de clave y el mismo material de claves, dificulta el seguimiento del uso del material relacionado con las claves e impide que supere sus límites criptográficos. 

Antes de ejecutar cualquier comando de key\_mgmt\_util, debe [iniciar key\_mgmt\_util](key_mgmt_util-setup.md#key_mgmt_util-start) e [lniciar sesión](key_mgmt_util-log-in.md) en el HSM como usuario de criptografía (CU). 

## Sintaxis
<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>]
```

## Ejemplos
<a name="imSymKey-examples"></a>

Estos ejemplos muestran cómo se utilizan **imSymKey** para importar claves simétricas a su. HSMs

**Example : importar una clave simétrica AES**  
En este ejemplo, **imSymKey** se utiliza para importar una clave simétrica AES al. HSMs   
El primer comando utiliza OpenSSL para generar una clave simétrica AES de 256 bits aleatoria. Guarda la clave en el archivo `aes256.key`.  

```
$  openssl rand -out aes256.key 32
```
El segundo comando se utiliza **imSymKey** para importar la clave AES del `aes256.key` archivo al HSMs. Utiliza la clave 20, una clave AES del HSM, como clave de encapsulación y especifica una etiqueta de tipo `imported`. A diferencia del ID, no es necesario que la etiqueta sea única en el clúster. El valor del parámetro `-t` (tipo) es `31`, que representa AES.   
La salida muestra que la clave del archivo se encapsuló y se desencapsuló y después se importó al HSM, donde se asignó al identificador de clave 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
```
El siguiente comando utiliza [getAttribute](key_mgmt_util-getAttribute.md) para obtener el atributo OBJ\_ATTR\_LOCAL ([atributo 355](key-attribute-table.md)) de la clave que acaba de importar y lo escribe en el archivo `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
```
Cuando examine el archivo de atributos, verá que el valor del atributo `OBJ_ATTR_LOCAL` es cero, lo que indica que el material de clave no se ha generado en el HSM.   

```
$  cat attributes/attr_262180_local
OBJ_ATTR_LOCAL
0x00000000
```

**Example : desplazamiento de una clave simétrica entre clústeres**  
En este ejemplo se muestra cómo utilizar [exSymKey](key_mgmt_util-exSymKey.md) e **imSymKey** para mover una clave AES sin cifrar entre clústeres. Puede utilizar un proceso como este para crear un empaquetado AES que exista en HSMs ambos clústeres. Una vez que la clave de empaquetado compartida esté en su lugar, puede usar [WrapKey](key_mgmt_util-wrapKey.md) y [unWrapKey](key_mgmt_util-unwrapKey.md)mover las claves cifradas entre los clústeres.  
El usuario de CU que realice esta operación debe tener permiso para iniciar sesión HSMs en ambos clústeres.  
El primer comando utiliza [exSymKey](key_mgmt_util-exSymKey.md) para exportar la clave 14, una clave AES de 32 bits desde el clúster 1 hasta el archivo `aes.key`. Utiliza la clave 6, una clave AES del HSMs clúster 1, como clave de empaquetado.   

```
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"
```
A continuación, el usuario inicia sesión en key\_mgmt\_util del clúster 2 y ejecuta un **imSymKey** comando para importar la clave del `aes.key` archivo al clúster 2. HSMs Este comando usa la clave 252152, una clave AES del clúster 2, como clave de HSMs empaquetado.   
Como las claves de encapsulación que tanto [exSymKey](key_mgmt_util-exSymKey.md) como **imSymKey** utilizan encapsulan y desencapsulan inmediatamente las claves de destino, no es necesario que las claves de encapsulación de los diversos clústeres sean iguales.   
La salida muestra que la clave se ha importado correctamente al clúster 2 y que se le ha asignado el identificador de clave 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
```
Para demostrar que la clave 14 del clúster 1 y la clave 21 del clúster 2 tienen el mismo material de clave, obtenga el valor de comprobación clave (KCV) de cada clave. Si los valores de KCV son los mismos, el material de clave es el mismo.  
El siguiente comando utiliza [getAttribute](key_mgmt_util-getAttribute.md) en el clúster 1 para escribir el valor del atributo KCV (atributo 371) de la clave 14 en el archivo `attr_14_kcv`. A continuación, utiliza un comando **cat** para obtener el contenido del archivo `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
```
Este comando similar utiliza [getAttribute](key_mgmt_util-getAttribute.md) en el clúster 2 para escribir el valor del atributo KCV (atributo 371) de la clave 21 en el archivo `attr_21_kcv`. A continuación, utiliza un comando **cat** para obtener el contenido del archivo `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
```
La salida muestra que los valores de KCV de las dos claves son los mismos, lo que demuestra que el material de clave es el mismo.  
Como ambos clústeres contienen el mismo material HSMs de claves, ahora puede compartir las claves cifradas entre los clústeres sin exponer nunca la clave de texto simple. Por ejemplo, puede utilizar el comando `wrapKey` con la clave de encapsulación 14 para exportar una clave cifrada desde el clúster 1 y, a continuación, utilizar `unWrapKey` con la clave de encapsulación 21 para importar la clave cifrada al clúster 2.

**Example : importación de una clave de sesión**  
Este comando utiliza los parámetros `-sess` de **imSymKey** para importar una clave triple DES de 192 bits que es válida únicamente en la sesión actual.   
El comando utiliza el parámetro `-f` para especificar el archivo que contiene la clave para importar, el parámetro `-t` para especificar el tipo de clave y el parámetro `-w` para especificar la clave de encapsulación. También utiliza el parámetro `-l` para especificar una etiqueta que establece la categoría de la clave, el parámetro `-id` para crear un identificador descriptivo y único para la clave y el parámetro `-attest` para verificar el firmware que importa la clave.   
La salida muestra que la clave se encapsuló y se desencapsuló correctamente, se importó al HSM y se le asignó el identificador de clave 37. Además, muestra que se pasó la comprobación de atestación, que indica que el firmware no ha sufrido ninguna manipulación.  

```
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
```
A continuación, puede ejecutar los comandos [getAttribute](key_mgmt_util-getAttribute.md) o [findKey](key_mgmt_util-findKey.md) para verificar los atributos de la clave recién importada. El siguiente comando utiliza **findKey** para verificar que la clave 37 tenga el tipo, la etiqueta y el ID especificados por el comando y que sea una clave de sesión. Tal y como se muestra en la línea 5 de la salida, **findKey** informa que la única clave que coincide con todos los atributos es la clave 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>

**-attest**  
Ejecuta una comprobación de integridad que verifica que el firmware en el que se ejecuta el clúster no haya sufrido alguna manipulación.  
Predeterminado: sin comprobación de certificación.  
Obligatorio: no

**-f**  
Especifica el archivo que contiene la clave que se va a importar.  
El archivo debe contener una copia en texto plano de una clave AES o Triple DES de la longitud especificada. RC4 y las claves DES no son válidas en el modo HSMs FIPS.  
+ **AES**: 16, 24 o 32 bytes
+ **Triple DES (3DES)**: 24 bytes
Obligatorio: sí

**-h**  
Muestra ayuda para el comando.   
Obligatorio: sí

**-id**  
Especifica un identificador definido por el usuario para la clave. Escriba una cadena que sea única en el clúster. El valor predeterminado es una cadena vacía.   
Predeterminado: sin valor de ID.  
Obligatorio: no

**-l**  
Especifica una etiqueta definida por el usuario para la clave. Tipo de cadena.  
Puede utilizar cualquier frase que le ayude a identificar la clave. La etiqueta no tiene por qué ser única, por lo que puede usarla para agrupar y clasificar las claves.   
Obligatorio: sí

**-min\_srv**  
Especifica el número mínimo HSMs en el que se sincroniza la clave antes de que caduque el valor del parámetro. `-timeout` Si la clave no está sincronizada con el número especificado de servidores en el tiempo asignado, no se creará.  
AWS CloudHSM sincroniza automáticamente todas las claves con todos los HSM del clúster. Para acelerar el proceso, defina el valor de en un valor inferior `min_srv` al número de HSMs en el clúster y establezca un valor de tiempo de espera bajo. Sin embargo, tenga en cuenta que puede que algunas solicitudes no generen ninguna clave.  
Predeterminado: 1  
Obligatorio: no

**-sess**  
Crea una clave que solo existe en la sesión actual. La clave no se podrá recuperar una vez finalizada la sesión.  
Utilice este parámetro cuando necesite una clave solo brevemente, por ejemplo, una clave de encapsulamiento que cifre y, a continuación, descifre rápidamente otra clave. No utilice una clave de sesión para cifrar los datos que pueda necesitar descifrar una vez finalizada la sesión.  
Para cambiar una clave de sesión por una clave persistente (token), use [setAttribute](key_mgmt_util-setAttribute.md).  
Predeterminado: la clave es persistente.   
Obligatorio: no

**-timeout**  
Especifica cuánto tiempo (en segundos) espera el comando a que se sincronice una clave con el número HSMs especificado por el parámetro. `min_srv`   
Este parámetro solo es válido cuando también se usa el parámetro `min_srv` en el comando.  
Predeterminado: sin tiempo de espera predeterminado. El comando espera indefinidamente y solo vuelve a aparecer cuando la clave está sincronizada con el número mínimo de servidores.  
Obligatorio: no

**-t**  
Especifica el tipo de clave simétrica. Escriba la constante que representa el tipo de clave. Por ejemplo, para crear una clave AES, escriba `-t 31`.  
Valores válidos:   
+ 21: [Triple DES (3DES)](https://en.wikipedia.org/wiki/Triple_DES).
+ 31: [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
Obligatorio: sí

**-u**  
Comparte la clave que va a importar con los usuarios especificados. Este parámetro permite a otros usuarios de criptomonedas de HSM (CUs) utilizar esta clave en operaciones criptográficas.   
Escriba un ID o una lista de usuarios IDs de HSM separados por comas, como -u. `5,6` No incluya el ID de usuario de HSM del usuario actual. Para encontrar el ID, puede utilizar el comando [listUsers](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_mgmt_util-listUsers.html) en la herramienta de la línea de comandos cloudhsm\_mgmt\_util o el comando [listUsers](https://docs.aws.amazon.com/cloudhsm/latest/userguide/key_mgmt_util-listUsers.html) de la herramienta de la línea de comandos key\_mgmt\_util.   
Obligatorio: no

**-w**  
Especifica el identificador de la clave de encapsulamiento. Este parámetro es obligatorio. Para buscar identificadores de clave, use el comando [findKey](key_mgmt_util-findKey.md).  
Una *clave de encapsulación* es una clave del HSM que se utiliza para cifrar ("encapsular") y después descifrar ("desencapsular") la clave durante el proceso de importación. Solo las claves AES se pueden utilizar como claves de encapsulación.  
Puede utilizar cualquier clave AES (de cualquier tamaño) como clave de encapsulación. Dado que la clave de encapsulación encapsula y, a continuación, desencapsula inmediatamente la clave de destino, puede utilizar una clave AES solo de una sesión como clave de encapsulación. Para determinar si una clave se puede utilizar como clave de encapsulación, utilice [getAttribute](key_mgmt_util-getAttribute.md) para obtener el valor del atributo `OBJ_ATTR_WRAP` (262). Para crear una clave de encapsulación, utilice [genSymKey](key_mgmt_util-genSymKey.md) para crear una clave AES (de tipo 31).  
Si utiliza el parámetro `-wk` para especificar una clave de encapsulación externa, la clave de encapsulación `-w` se utilizará para desencapsular, pero no encapsular, la clave que se va a importar.  
La clave 4 es una clave interna incompatible. Le recomendamos que use una clave AES que cree y administre como clave de encapsulamiento.
Obligatorio: sí

**-wk**  
Utilice la clave AES del archivo especificado para encapsular la clave que se importa. Escriba la ruta y el nombre de un archivo que contenga una clave AES sin cifrar.   
Si se incluye este parámetro, **imSymKey** utiliza la clave del archivo `-wk` para encapsular la clave que se va a importar y utiliza la clave del HSM especificado en el parámetro `-w` para desencapsularla. Los valores de parámetro `-w` y `-wk` deben resolverse en la misma clave sin cifrar.  
Valor predeterminado: utilice la clave de encapsulación del HSM para realizar la desencapsulación.  
Obligatorio: no

## Temas relacionados
<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)