

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 \#11 de AWS CloudHSM
<a name="ki-pkcs11-sdk"></a>

Los siguientes problemas afectan a la biblioteca PKCS \#11 de. AWS CloudHSM

**Topics**
+ [Problema: el encapsulamiento de la clave AES de la versión 3.0.0 de la biblioteca PKCS \#11 no valida los IV antes de usarlos.](#ki-pkcs11-1)
+ [Problema: PKCS \#11 SDK 2.0.4 y versiones anteriores siempre utilizaban el IV predeterminado de `0xA6A6A6A6A6A6A6 para empaquetar y desempaquetar las claves AES`](#ki-pkcs11-2)
+ [Problema: el atributo `CKA_DERIVE` no era compatible 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 maneja `CKA_MODULUS_BITS o CKA_PUBLIC_EXPONENT` `en la plantilla` privada de una manera que cumpla con los estándares](#ki-pkcs11-6)
+ [`Problema: Los búferes para las operaciones de las API C_Encrypt y C_Decrypt no pueden superar los 16 KB cuando se utiliza el mecanismo CKM_AES_GCM`](#ki-pkcs11-8)
+ [Problema: la derivación de claves Elliptic-curve Diffie-Hellman (ECDH) se ejecuta parcialmente en el HSM](#ki-pkcs11-9)
+ [Problema: la verificación de firmas secp256k1 produce un error en las plataformas EL6 como CentOS6 y RHEL 6](#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 `cabecera cryptoki.h` es Windows-only](#ki-pkcs11-14)

## Problema: el encapsulamiento de la clave AES de la versión 3.0.0 de la biblioteca PKCS \#11 no valida los IV antes de usarlos.
<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 \#11, 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 \#11, 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 [IV personalizados con Non-Compliant longitud para empaquetar claves AES](troubleshooting-aes-keys.md).
  + Si ha envuelto alguna clave con la versión 3.0.0 de la biblioteca PKCS \#11 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 \#11. 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: PKCS \#11 SDK 2.0.4 y versiones anteriores siempre utilizaban el IV predeterminado de `0xA6A6A6A6A6A6A6 para empaquetar y desempaquetar las claves AES`
<a name="ki-pkcs11-2"></a>

User-provided Los IV se ignoraban silenciosamente.

**nota**  
Esto afecta a `C_WrapKey` solo con el mecanismo `CKM_AES_KEY_WRAP`.
+ **Impacto:** 
  + Si utilizó el SDK de PKCS \#11 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 \#11 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 \#11 2.0.4 o anterior, utilice el vector de inicialización predeterminado de `0xA6A6A6A6A6A6A6A6`. 
  + Para desencapsular claves encapsuladas con el SDK de PKCS \#11 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 era compatible 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 resolución: **estamos corrigiendo el cliente y los SDK para implementar correctamente la función 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 maneja `CKA_MODULUS_BITS o CKA_PUBLIC_EXPONENT` `en la plantilla` privada de una manera 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 \#11 actualizada se anunciará en la página de historial de versiones. 

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

AWS CloudHSM no admite AES-GCM el cifrado 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 AES-GCM cifrado 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, la IV de cada parte de sus datos AES-GCM cifrados será diferente. 
+ **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 Elliptic-curve Diffie-Hellman (ECDH) 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 está implementando 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 firmas secp256k1 produce un error en las plataformas EL6 como CentOS6 y RHEL 6
<a name="ki-pkcs11-10"></a>

 Esto se debe a que la biblioteca PKCS \#11 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. Como Secp256k1 no es compatible con el paquete OpenSSL en las plataformas EL6, la inicialización produce un error.
+ **Impacto: **la verificación de firmas Secp256k1 producirá un error en las plataformas EL6. La llamada de verificación producirá el error `CKR_HOST_MEMORY`.
+ **Solución: **le recomendamos que utilice Amazon Linux 1 o cualquier plataforma EL7 si su aplicación PKCS \# 11 necesita verificar 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 \#11 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.

  Las siguientes tablas muestran las secuencias de llamadas a funciones correctas para las operaciones del PKCS \#11.

  **Secuencias correctas para operaciones de una sola parte:**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ki-pkcs11-sdk.html)

  **Secuencias correctas para operaciones con varias partes:**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ki-pkcs11-sdk.html)
+  **Solución alternativa**: la aplicación debería, de conformidad con la especificación PKCS \#11, utilizar la secuencia correcta de llamadas a funciones tanto para las operaciones de una sola parte como de varias partes, tal como se muestra en las tablas anteriores. En estas circunstancias, su aplicación no debe confiar en la biblioteca de CloudHSM PKCS \#11 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 con. Read-Only `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 `cabecera cryptoki.h` es Windows-only
<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 de encabezado solo `/opt/cloudhsm/include/pkcs11/cryptoki.h` es compatible con los sistemas operativos Windows.
+ **Impacto:** Es posible que surjan problemas al intentar incluir este archivo de encabezado en la aplicación de los Linux-based sistemas operativos.
+ **Estado de la resolución:** actualice a la versión 5.4.1 o superior del AWS CloudHSM Client SDK 5, que incluye una Linux-compatible versión de este archivo de encabezado.