Problemas conocidos de la biblioteca PKCS #11 - AWS CloudHSM

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

Problema: el empaquetado de AES claves de la versión 3.0.0 de la biblioteca PKCS #11 no se valida IVs antes de su uso

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.

Problema: PKCS #11 La SDK 2.0.4 y las versiones anteriores siempre utilizaban el IV predeterminado 0xA6A6A6A6A6A6A6A6 para empaquetar y desempaquetar las AES claves

IVsLas proporcionadas por los usuarios se ignoraban silenciosamente.

nota

Esto afecta a C_WrapKey solo con el mecanismo CKM_AES_KEY_WRAP.

  • Impacto:

    • Si usaste PKCS #11 SDK 2.0.4 o una versión anterior y una IV proporcionada por el usuario, tus claves vienen empaquetadas con la IV predeterminada de. 0xA6A6A6A6A6A6A6A6

    • Si usaste PKCS #11 SDK 3.0.0 o una versión posterior y una IV proporcionada por el usuario, tus llaves vienen empaquetadas con la IV proporcionada por el usuario.

  • Soluciones provisionales:

    • Para desempaquetar las claves empaquetadas con PKCS #11 SDK 2.0.4 o una versión anterior, usa el IV predeterminado de. 0xA6A6A6A6A6A6A6A6

    • Para desempaquetar las claves empaquetadas con PKCS #11 SDK 3.0.0 o una versión posterior, usa el IV proporcionado por el usuario.

  • Estado de la resolución: le recomendamos encarecidamente que modifique el código de empaquetado y desempaquetado para pasarlo por un NULL IV, o que especifique el IV predeterminado de. 0xA6A6A6A6A6A6A6A6

Problema: el atributo CKA_DERIVE no se admitía y no se gestionaba.

  • 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 su (s) cliente SDK (s) a la versión 1.1.1 o superior para beneficiarse de la corrección.

Problema: el atributo CKA_SENSITIVE no se admitía y no se gestionaba.

  • Estado de resolución: hemos implementado correcciones para aceptar y procesar correctamente el atributo CKA_SENSITIVE. Debe actualizar su (s) cliente SDK (s) a la versión 1.1.1 o superior para beneficiarse de la corrección.

Problema: la función hash multiparte y la firma no son compatibles.

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

  • 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 del historial de versiones.

Problema: Los búferes para las C_Decrypt API operaciones C_Encrypt y no pueden superar los 16 KB cuando se utiliza este mecanismo CKM_AES_GCM

AWS CloudHSM no admite el cifrado multiparteAES. GCM

  • 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 utilizaAES_GCM, debe gestionar la división de sus datos y el posterior cifrado. AWS CloudHSM no realiza el GCM cifrado multiparte AES por usted. Tenga en cuenta que FIPS requiere que el vector de inicialización (IV) para AES-GCM se genere en. HSM Por lo tanto, el valor IV de cada uno de sus AES datos GCM cifrados será diferente.

  • Estado de la resolución: Estamos corrigiendo el SDK error de forma explícita si el búfer de datos es demasiado grande. Volvemos CKR_MECHANISM_INVALID para las C_DecryptUpdate API operaciones C_EncryptUpdate y. 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 la clave Diffie-Hellman (ECDH) con una curva elíptica se ejecuta parcialmente en el HSM

Su clave privada EC permanece dentro de HSM en todo momento, pero el proceso de obtenció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 el cliente SDK 3, la clave derivada mediante el CKM_ECDH1_DERIVE mecanismo está disponible primero en el cliente y, a continuación, se importa alHSM. 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 la clave permanezca dentro de un FIPS límite en todo momento, considere la posibilidad de utilizar un protocolo alternativo que no ECDH dependa de la derivación de claves.

  • Estado de la resolución: estamos desarrollando la opción de realizar la derivación de ECDH claves completamente dentro del. HSM La implementación actualizada se anunciará en la página de historial de versiones una vez que esté disponible.

Problema: la verificación de las firmas secp256k1 falla en EL6 plataformas como Cent y 6 OS6 RHEL

Esto se debe a que la biblioteca Cloud HSM PKCS #11 evita una llamada a la red durante la inicialización de la operación de verificación al utilizar Open SSL para verificar los datos de la curva EC. Como el SSL paquete Open predeterminado no admite SECP256k1 en las EL6 plataformas, la inicialización falla.

  • 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 #11 necesita verificar las firmas secp256k1. Como alternativa, actualice a una versión del SSL paquete Open que admita la curva secp256k1.

  • Estado de la resolución: estamos implementando correcciones para recurrir a la validación de la curva local HSM si no está disponible. La biblioteca PKCS #11 actualizada se anunciará en la página del historial de versiones.

Problema: la secuencia incorrecta de las llamadas a las funciones arroja resultados indefinidos en lugar de fallar.

  • 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 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 para las de varias partes. En este caso, tu aplicación no debe confiar en la biblioteca Cloud HSM PKCS #11 para devolver un error.

Problema: La sesión de solo lectura no es compatible con la versión SDK 5

  • Problema: SDK 5 no admite abrir 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.

  • Problema: en las versiones 5.0.0 a 5.4.0 de AWS CloudHSM Client SDK 5 en Linux, el archivo de cabecera solo /opt/cloudhsm/include/pkcs11/cryptoki.h 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 de AWS CloudHSM Client SDK 5, que incluye una versión de este archivo de encabezado compatible con Linux.