

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.

# Personalizado IVs con una longitud no compatible para envolver las llaves AES AWS CloudHSM
<a name="troubleshooting-aes-keys"></a>

En este tema de solución de problemas aprenderá a detectar si su aplicación genera claves encapsuladas irrecuperables. Si se ve afectado por este problema, utilice este tema para solucionar el problema.

**Topics**
+ [Determine si el código genera claves encapsuladas irrecuperables.](#troubleshooting-problem1)
+ [Acciones que debe adoptar si su código genera claves encapsuladas irrecuperables](#troubleshooting-problem2)

## Determine si el código genera claves encapsuladas irrecuperables.
<a name="troubleshooting-problem1"></a>

Solo se verás afectado si se dan *todas* las condiciones que se indican a continuación:


****  

| Condición | ¿Cómo lo sé? | 
| --- | --- | 
|  Su aplicación utiliza la biblioteca PKCS \$111.   |  La biblioteca PKCS \$111 se instala como el archivo `libpkcs11.so` en su carpeta `/opt/cloudhsm/lib`. Las aplicaciones escritas en lenguaje C suelen utilizar la biblioteca PKCS \$111 directamente, mientras que las aplicaciones escritas en Java pueden utilizar la biblioteca indirectamente mediante una capa de abstracción de Java. Si utiliza Windows, esto NO le afecta, ya que la biblioteca PKCS \$111 no está disponible actualmente para Windows.  | 
|  Su aplicación usa específicamente la versión 3.0.0 de la biblioteca PKCS \$111.   |  Si ha recibido un correo electrónico del AWS CloudHSM equipo, es probable que esté utilizando la versión 3.0.0 de la biblioteca PKCS \$111.  Para comprobar la versión del software en las instancias de su aplicación, utilice este comando:  <pre>rpm -qa | grep ^cloudhsm</pre>  | 
|  Las claves se encapsulan mediante el encapsulamiento de claves AES.  |  El encapsulamiento de claves AES significa que se utiliza una clave AES para encapsular alguna otra clave. El nombre del mecanismo correspondiente es `CKM_AES_KEY_WRAP`. Se usa con la función `C_WrapKey`. Otros mecanismos de empaquetado basados en AES que utilizan vectores de inicialización (IVs), como `CKM_AES_GCM` y` CKM_CLOUDHSM_AES_GCM`, no se ven afectados por este problema. [Obtenga más información sobre funciones y mecanismos](pkcs11-mechanisms.md).   | 
|  Se especifica un IV personalizado al solicitar el encapsulamiento de claves AES, y la longitud de este IV es inferior a 8  |  El encapsulamiento de claves AES generalmente se inicializa con una estructura de `CK_MECHANISM` como la siguiente:  `CK_MECHANISM mech = {CKM_AES_KEY_WRAP, IV_POINTER, IV_LENGTH};` Esta cuestión solo le afecta a usted si: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/troubleshooting-aes-keys.html)  | 

Si no se dan todas las condiciones anteriores, puede dejar de leer. Las claves encapsuladas se pueden desencapsular correctamente y este problema no le afecta. De lo contrario, consulte [Acciones que debe adoptar si su código genera claves encapsuladas irrecuperables](#troubleshooting-problem2). 

## Acciones que debe adoptar si su código genera claves encapsuladas irrecuperables
<a name="troubleshooting-problem2"></a>

Debe seguir los tres pasos siguientes: 

1.  **Actualice inmediatamente su biblioteca PKCS \$111 a una versión más reciente**.
   + [Biblioteca de PKCS \$111 más reciente para Amazon Linux, Centos 6 y RHEL 6](client-upgrade.md)
   + [Biblioteca PKCS \$111 más reciente para Amazon Linux 2, CentOS 7 y RHEL 7](client-upgrade.md)
   + [Biblioteca de PKCS \$111 más reciente para Ubuntu 16.04 LTS](client-upgrade.md)

1. **Actualice su software para usar un IV que cumpla con los estándares**

   Le recomendamos encarecidamente que siga nuestro ejemplo de código y simplemente especifique un IV NULO, lo que provocará que el HSM utilice el IV predeterminado que cumple con los estándares. Como alternativa, puede especificar explícitamente el IV como `0xA6A6A6A6A6A6A6A6` con una longitud de IV correspondiente de `8`. No recomendamos usar ningún otro IV para el empaquetado de claves AES y deshabilitaremos explícitamente el empaquetado personalizado IVs para claves AES en una futura versión de la biblioteca PKCS \$111.

   En [aes\$1wrapping.c](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/aes_wrapping.c#L72) on aparece un ejemplo de código para especificar correctamente el IV. GitHub

1. **Identifique y recupere las claves encapsuladas existentes**.

   [Debe identificar las claves que empaquetó con la versión 3.0.0 de la biblioteca PKCS \$111 y, a continuación, ponerse en contacto con el servicio de asistencia para obtener ayuda (/support) para recuperar estas claves. https://aws.amazon.com](https://aws.amazon.com/support)

**importante**  
Este problema solo afecta a las claves encapsuladas en la versión 3.0.0 de la biblioteca PKCS \$111. Puede encapsular las claves utilizando versiones anteriores (2.0.4 y paquetes con números inferiores) o versiones posteriores (3.0.1 y paquetes con números superiores) de la biblioteca PKCS \$111. 