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
Temas
- 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
- 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
- Problema: el atributo CKA_DERIVE no se admitía y no se gestionaba.
- Problema: el atributo CKA_SENSITIVE no se admitía y no se gestionaba.
- Problema: la función hash multiparte y la firma no son compatibles.
- 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.
- 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
- Problema: la derivación de la clave Diffie-Hellman (ECDH) con una curva elíptica se ejecuta parcialmente en el HSM
- Problema: la verificación de las firmas secp256k1 falla en EL6 plataformas como Cent y 6 OS6 RHEL
- Problema: la secuencia incorrecta de las llamadas a las funciones arroja resultados indefinidos en lugar de fallar.
- Problema: La sesión de solo lectura no es compatible con la versión SDK 5
- Problema: el archivo de encabezado cryptoki.h es solo para Windows.
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
.
Impacto: si proporciona un IV de menos de 8 bytes en la versión 3.0.0 de la biblioteca PKCS #11, es posible que no pueda desempaquetar la clave.
Soluciones provisionales:
Le recomendamos encarecidamente que actualice a la versión 3.0.1 o superior de la biblioteca PKCS #11, que establece correctamente la longitud IV al empaquetar las claves. AES Modifique el código de empaquetado para pasarle un NULL IV o especifique el IV predeterminado de.
0xA6A6A6A6A6A6A6A6
Para obtener más información, consulta el artículo Personalizar IVs con una longitud no conforme para el envoltorio de AES llaves.
Estado de la resolución: este problema se ha resuelto en la versión 3.0.1 de la biblioteca PKCS #11. Para empaquetar las AES claves mediante el empaquetado de claves, especifique un IV de 8 NULL u 8 bytes de longitud.
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 enFALSE
. No se admitirá queCKA_DERIVE
se establezca enTRUE
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
yC_DigestFinal
no se implementan.C_SignFinal
tampoco se implementa y producirá un error conCKR_ARGUMENTS_BAD
en los búferes noNULL
. -
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 devolverCKA_TEMPLATE_INCONSISTENT
cuando la plantilla privada contieneCKA_MODULUS_BITS
oCKA_PUBLIC_EXPONENT
. En cambio, genera una clave privada en la que todos los campos se establecen enFALSE
. 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 usandoAES_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) paraAES-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 lasC_DecryptUpdate
API operacionesC_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 deC_Encrypt
C_DecryptInit
/C_DecryptUpdate
seguido deC_Decrypt
C_SignInit
/C_SignUpdate
seguido deC_Sign
C_VerifyInit
/C_VerifyUpdate
seguido deC_Verify
C_FindObjectsInit
seguido deC_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 unCKF_RW_SESSION
, la llamada fallará y aparecerá el errorCKR_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ónC_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.