

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.

# Problemas conocidos de la biblioteca PKCS \$111 de AWS CloudHSM
<a name="ki-pkcs11-sdk"></a>

Los siguientes problemas afectan a la biblioteca PKCS \$111 de. AWS CloudHSM

**Topics**
+ [

## Problema: el empaquetado de claves AES de la versión 3.0.0 de la biblioteca PKCS \$111 no se valida antes de su uso IVs
](#ki-pkcs11-1)
+ [

## Problema: el SDK 2.0.4 de PKCS \$111 y las versiones anteriores siempre usaban el IV predeterminado de `0xA6A6A6A6A6A6A6A6` para el encapsulado y desencapsulado de claves AES.
](#ki-pkcs11-2)
+ [

## Problema: el atributo `CKA_DERIVE` no se admitía y no se gestionaba.
](#ki-pkcs11-3)
+ [

## Problema: el atributo `CKA_SENSITIVE` no se admitía y no se gestionaba.
](#ki-pkcs11-4)
+ [

## Problema: la función hash multiparte y la firma no son compatibles.
](#ki-pkcs11-5)
+ [

## Problema: `C_GenerateKeyPair` no gestiona `CKA_MODULUS_BITS` ni `CKA_PUBLIC_EXPONENT` en la plantilla privada de una forma que cumpla con los estándares.
](#ki-pkcs11-6)
+ [

## Problema: los búferes para las operaciones `C_Encrypt` y `C_Decrypt` API no pueden superar los 16 KB cuando se utiliza el mecanismo `CKM_AES_GCM`.
](#ki-pkcs11-8)
+ [

## Problema: la derivación de claves Diffie-Hellman (ECDH) de curva elíptica se ejecuta parcialmente en el HSM.
](#ki-pkcs11-9)
+ [

## Problema: la verificación de las firmas secp256k1 falla en plataformas como Cent y RHEL 6 EL6 OS6
](#ki-pkcs11-10)
+ [

## Problema: la secuencia incorrecta de las llamadas a las funciones arroja resultados indefinidos en lugar de fallar.
](#ki-pkcs11-11)
+ [

## Problema: la sesión de solo lectura no es compatible con el SDK 5
](#ki-pkcs11-13)
+ [

## Problema: el archivo de encabezado `cryptoki.h` es solo para Windows.
](#ki-pkcs11-14)

## Problema: el empaquetado de claves AES de la versión 3.0.0 de la biblioteca PKCS \$111 no se valida antes de su uso IVs
<a name="ki-pkcs11-1"></a>

Si especifica un vector de inicialización menor que 8 bytes de longitud, se rellena con bytes impredecibles antes de su uso. 

**nota**  
Esto afecta a `C_WrapKey` solo con el mecanismo `CKM_AES_KEY_WRAP`.
+ **Impacto**: si proporciona un IV que es más corto que 8 bytes en la versión 3.0.0 de la biblioteca PKCS \$111, es posible que no pueda desencapsular la clave. 
+ **Soluciones provisionales: **
  + Le recomendamos encarecidamente que actualice a la versión 3.0.1 o superior de la biblioteca PKCS \$111, que aplica correctamente la longitud IV durante el encapsulamiento de claves AES. Modifique su código de encapsulado para pasar un vector de inicialización NULO, o especifique el vector de inicialización predeterminado de `0xA6A6A6A6A6A6A6A6`. Para obtener más información, consulte [Personalización IVs con una longitud no compatible para el empaquetado de claves AES](troubleshooting-aes-keys.md).
  + Si ha envuelto alguna clave con la versión 3.0.0 de la biblioteca PKCS \$111 utilizando un IV inferior a 8 bytes, póngase en contacto con nosotros para obtener [ayuda](https://aws.amazon.com/support).
+ **Estado de resolución:** este problema se ha resuelto en la versión 3.0.1 de la biblioteca PKCS \$111. Para ajustar claves mediante el encapsulado de claves AES, especifique un vector de inicialización que sea NULO o de 8 bytes de longitud.

## Problema: el SDK 2.0.4 de PKCS \$111 y las versiones anteriores siempre usaban el IV predeterminado de `0xA6A6A6A6A6A6A6A6` para el encapsulado y desencapsulado de claves AES.
<a name="ki-pkcs11-2"></a>

Los datos proporcionados por el usuario IVs se ignoraron silenciosamente.

**nota**  
Esto afecta a `C_WrapKey` solo con el mecanismo `CKM_AES_KEY_WRAP`.
+ **Impacto:** 
  + Si utilizó el SDK de PKCS \$111 2.0.4 o una versión anterior y un vector de inicialización proporcionado por el usuario, las claves se encapsulan con el vector de inicialización predeterminado de `0xA6A6A6A6A6A6A6A6`.
  + Si utilizó el SDK de PKCS \$111 3.0.0 o posterior y un vector de inicialización proporcionado por el usuario, las claves se encapsulan con el vector de inicialización proporcionado por el usuario.
+ **Soluciones provisionales:**
  + Para desencapsular las claves encapsuladas con el SDK de PKCS \$111 2.0.4 o anterior, utilice el vector de inicialización predeterminado de `0xA6A6A6A6A6A6A6A6`. 
  + Para desencapsular claves encapsuladas con el SDK de PKCS \$111 3.0.0 o posterior, utilice el vector de inicialización proporcionado por el usuario.
+ **Estado de resolución:** le recomendamos que modifique el código de encapsulado y desencapsulado para pasar un vector de inicialización NULO o que especifique el vector de inicialización predeterminado de `0xA6A6A6A6A6A6A6A6`.

## Problema: el atributo `CKA_DERIVE` no se admitía y no se gestionaba.
<a name="ki-pkcs11-3"></a>
+ **Estado de resolución: **hemos implementado correcciones para aceptar `CKA_DERIVE` si se ha establecido en `FALSE`. No se admitirá que `CKA_DERIVE` se establezca en `TRUE` hasta que comencemos a añadir compatibilidad con la función de derivación de claves en AWS CloudHSM. Debe actualizar el cliente y los SDK a la versión 1.1.1 o posterior para beneficiarse de la corrección.

## Problema: el atributo `CKA_SENSITIVE` no se admitía y no se gestionaba.
<a name="ki-pkcs11-4"></a>
+ **Estado de resolución: **hemos implementado correcciones para aceptar y procesar correctamente el atributo `CKA_SENSITIVE`. Debe actualizar el cliente y los SDK a la versión 1.1.1 o posterior para beneficiarse de la corrección.

## Problema: la función hash multiparte y la firma no son compatibles.
<a name="ki-pkcs11-5"></a>
+ **Impacto: **`C_DigestUpdate` y `C_DigestFinal` no se implementan. `C_SignFinal` tampoco se implementa y producirá un error con `CKR_ARGUMENTS_BAD` en los búferes no `NULL`. 
+ **Solución alternativa: aplique** un hash a los datos dentro de la aplicación y utilícelos AWS CloudHSM únicamente para firmar el hash. 
+ **Estado de la resolución:** estamos arreglando el cliente e implementando correctamente el SDKs hash multiparte. Las actualizaciones se anunciarán en el foro de AWS CloudHSM y en la página de historial de versiones.

## Problema: `C_GenerateKeyPair` no gestiona `CKA_MODULUS_BITS` ni `CKA_PUBLIC_EXPONENT` en la plantilla privada de una forma que cumpla con los estándares.
<a name="ki-pkcs11-6"></a>
+ **Impacto: **`C_GenerateKeyPair` debe devolver `CKA_TEMPLATE_INCONSISTENT` cuando la plantilla privada contiene `CKA_MODULUS_BITS` o `CKA_PUBLIC_EXPONENT`. En cambio, genera una clave privada en la que todos los campos se establecen en `FALSE`. La clave no se puede usar. 
+ **Solución: **recomendamos que su aplicación compruebe los valores del campo de uso además del código de error.
+ **Estado de resolución: **estamos implementado soluciones para devolver el mensaje de error correcto cuando se usa una plantilla de clave privada incorrecta. La biblioteca PKCS \$111 actualizada se anunciará en la página de historial de versiones. 

## Problema: los búferes para las operaciones `C_Encrypt` y `C_Decrypt` API no pueden superar los 16 KB cuando se utiliza el mecanismo `CKM_AES_GCM`.
<a name="ki-pkcs11-8"></a>

AWS CloudHSM no admite el cifrado AES-GCM multiparte.
+ **Impacto: **no puede usar el mecanismo `CKM_AES_GCM` para cifrar datos mayores de 16 KB.
+ **Solución: ** puede usar un mecanismo alternativo como `CKM_AES_CBC`,`CKM_AES_CBC_PAD` o puede dividir los datos en partes y cifrar cada parte usando `AES_GCM` individualmente. Si lo utiliza`AES_GCM`, debe gestionar la división de sus datos y el posterior cifrado. AWS CloudHSM no realiza el cifrado AES-GCM multiparte por usted. Tenga en cuenta que FIPS exige que el vector de inicialización (IV) para `AES-GCM` se genere en el HSM. Por lo tanto, el IV será diferente para cada parte de sus datos con cifrado AES-GCM. 
+ **Estado de resolución: **estamos corrigiendo los SDK para que produzcan un error de forma explícita si el búfer de datos es demasiado grande. Se devuelve `CKR_MECHANISM_INVALID` para las API de operaciones `C_EncryptUpdate` y `C_DecryptUpdate`. Estamos evaluando alternativas para admitir búferes más grandes sin recurrir al cifrado multiparte. Las actualizaciones se anunciarán en el AWS CloudHSM foro y en la página del historial de versiones.

## Problema: la derivación de claves Diffie-Hellman (ECDH) de curva elíptica se ejecuta parcialmente en el HSM.
<a name="ki-pkcs11-9"></a>

Su clave privada EC permanece dentro del HSM en todo momento, pero el proceso de generación de la clave se realiza en varios pasos. Como resultado, los resultados intermedios de cada paso están disponibles en el cliente.
+ **Impacto: **en Client SDK 3, la clave derivada del mecanismo `CKM_ECDH1_DERIVE` está disponible primero en el cliente y, a continuación, se importa al HSM. Un identificador de clave se devuelve después a su aplicación.
+ **Solución alternativa:** si va a implementar SSL/TLS Offload in AWS CloudHSM, es posible que esta limitación no suponga un problema. Si su aplicación requiere que su clave permanezca dentro de un límite FIPS en todo momento, considere el uso de un protocolo alternativo que no se base en la generación de la clave ECDH.
+ **Estado de la resolución: **el SDK 5.16 ahora admite ECDH con derivación de claves, que se ejecuta completamente dentro del HSM.

## Problema: la verificación de las firmas secp256k1 falla en plataformas como Cent y RHEL 6 EL6 OS6
<a name="ki-pkcs11-10"></a>

 Esto se debe a que la biblioteca PKCS \$111 de CloudHSM impide que se realice una llamada de red durante la inicialización de la operación de verificación mediante el uso de OpenSSL para verificar los datos de la curva de EC. Dado que Secp256k1 no es compatible con el paquete OpenSSL predeterminado en las plataformas, se produce un error en la inicialización. EL6 
+ **Impacto: la verificación de la firma del SECP256k1 fallará** en las plataformas. EL6 La llamada de verificación producirá el error `CKR_HOST_MEMORY`.
+ **Solución alternativa:** le recomendamos que utilice Amazon Linux 1 o cualquier EL7 plataforma si su aplicación PKCS \$111 necesita verificar las firmas secp256k1. Otra solución consiste en actualizar a una versión del paquete OpenSSL que admita la curva secp256k1.
+ **Estado de resolución: **estamos implementando correcciones para revertir al HSM si la validación de curvas locales no está disponible. La biblioteca de PKCS \$111 actualizada se anunciará en la página de [historial de versiones](client-history.md).

## Problema: la secuencia incorrecta de las llamadas a las funciones arroja resultados indefinidos en lugar de fallar.
<a name="ki-pkcs11-11"></a>
+ **Impacto**: si llama a una secuencia de funciones incorrecta, el resultado final es incorrecto aunque las llamadas individuales a las funciones se devuelvan correctamente. Por ejemplo, es posible que los datos descifrados no coincidan con el texto no cifrado original o que las firmas no se puedan verificar. Este problema afecta tanto a las operaciones de una sola parte como a las de varias partes.

  Ejemplos de secuencias de funciones incorrectas:
  + `C_EncryptInit`/`C_EncryptUpdate` seguido de `C_Encrypt`
  + `C_DecryptInit`/`C_DecryptUpdate` seguido de `C_Decrypt`
  + `C_SignInit`/`C_SignUpdate` seguido de `C_Sign`
  + `C_VerifyInit`/`C_VerifyUpdate` seguido de `C_Verify`
  + `C_FindObjectsInit` seguido de `C_FindObjectsInit`
+  **Solución alternativa**: su aplicación debe, de conformidad con la especificación PKCS \$111, utilizar la secuencia correcta de llamadas a funciones tanto para las operaciones de una sola parte como para las de varias partes. En estas circunstancias, su aplicación no debe confiar en la biblioteca de CloudHSM PKCS \$111 para devolver un error. 

## Problema: la sesión de solo lectura no es compatible con el SDK 5
<a name="ki-pkcs11-13"></a>
+ **Problema:** el SDK 5 no admite la apertura de sesiones de solo lectura con `C_OpenSession`.
+ **Impacto:** si intenta llamar a `C_OpenSession` sin proporcionar un `CKF_RW_SESSION`, la llamada fallará y aparecerá el error `CKR_FUNCTION_FAILED`. 
+ **Solución alternativa:** al abrir una sesión, debe pasar los marcadores de `CKF_SERIAL_SESSION | CKF_RW_SESSION` a la llamada de función `C_OpenSession`. 

## Problema: el archivo de encabezado `cryptoki.h` es solo para Windows.
<a name="ki-pkcs11-14"></a>
+ **Problema:** en las versiones 5.0.0 a 5.4.0 del AWS CloudHSM Client SDK 5 en Linux, el archivo `/opt/cloudhsm/include/pkcs11/cryptoki.h` de encabezado solo es compatible con los sistemas operativos Windows.
+ **Impacto: **en los sistemas operativos basados en Linux, es posible que se produzcan problemas al intentar incluir este archivo de encabezado en la aplicación.
+ **Estado de la resolución:** actualice a la versión 5.4.1 o superior del AWS CloudHSM Client SDK 5, que incluye una versión de este archivo de encabezado compatible con Linux.