Mecanismos compatibles con la biblioteca PKCS #11 para Client SDK 5 de AWS CloudHSM - AWS CloudHSM

Mecanismos compatibles con la biblioteca PKCS #11 para Client SDK 5 de AWS CloudHSM

La biblioteca PKCS #11 es compatible con la versión 2.40 de la especificación PKCS #11. Para invocar una característica criptográfica con PKCS #11, llame a una función con un mecanismo determinado. En las siguientes secciones, se resumen las combinaciones de funciones y mecanismos admitidos por Client SDK 5 de AWS CloudHSM.

La biblioteca PKCS #11 admite los siguientes algoritmos:

  • Cifrado y descifrado: AES-CBC, AES-CTR, AES-ECB, AES-GCM, DES3-CBC, DES3-ECB, RSA-OAEP y RSA-PKCS

  • Firma y verificación: RSA, HMAC y ECDSA; con y sin hash

  • Hash/digest: SHA1, SHA224, SHA256, SHA384 y SHA512

  • Encapsulación de claves: encapsulación de claves AES1, AES-GCM, RSA-AES y RSA-OAEP

Generación de funciones de claves y pares de claves

La biblioteca de software de AWS CloudHSM para la biblioteca PKCS #11 le permite usar los siguientes mecanismos para las funciones de generación de claves y pares de claves.

  • CKM_RSA_PKCS_KEY_PAIR_GEN

  • CKM_RSA_X9_31_KEY_PAIR_GENEste mecanismo es funcionalmente idéntico al mecanismo CKM_RSA_PKCS_KEY_PAIR_GEN, pero ofrece más garantías en la generación de p y q.

  • CKM_EC_KEY_PAIR_GEN

  • CKM_GENERIC_SECRET_KEY_GEN

  • CKM_AES_KEY_GEN

  • CKM_DES3_KEY_GEN próximo cambio en la nota a pie de página 5.

Firma y comprobación de las funciones

La biblioteca de software de AWS CloudHSM para la biblioteca PKCS #11 le permite usar los siguientes mecanismos para las funciones Sign y Verify. Con SDK 5 de cliente, los datos se codifican localmente en el software. Esto significa que no hay límite en cuanto al tamaño de los datos que el SDK puede codificar.

Con SDK 5 de cliente, el hash de RSA y ECDSA se realiza de forma local, por lo que no hay límite de datos. Con HMAC hay límite de datos. Consulte la nota a pie de página 2 para obtener más información.

RSA

  • CKM_RSA_X_509

  • CKM_RSA_PKCS Únicamente para operaciones de una sola parte.

  • CKM_RSA_PKCS_PSS Únicamente para operaciones de una sola parte.

  • CKM_SHA1_RSA_PKCS

  • CKM_SHA224_RSA_PKCS

  • CKM_SHA256_RSA_PKCS

  • CKM_SHA384_RSA_PKCS

  • CKM_SHA512_RSA_PKCS

  • CKM_SHA512_RSA_PKCS

  • CKM_SHA1_RSA_PKCS_PSS

  • CKM_SHA224_RSA_PKCS_PSS

  • CKM_SHA256_RSA_PKCS_PSS

  • CKM_SHA384_RSA_PKCS_PSS

  • CKM_SHA512_RSA_PKCS_PSS

ECDSA

  • CKM_ECDSA Únicamente para operaciones de una sola parte.

  • CKM_ECDSA_SHA1

  • CKM_ECDSA_SHA224

  • CKM_ECDSA_SHA256

  • CKM_ECDSA_SHA384

  • CKM_ECDSA_SHA512

HMAC

  • CKM_SHA_1_HMAC2

  • CKM_SHA224_HMAC2

  • CKM_SHA256_HMAC2

  • CKM_SHA384_HMAC2

  • CKM_SHA512_HMAC2

CMAC

  • CKM_AES_CMAC

Funciones de recuperación de firma y recuperación de verificación

SDK 5 de cliente no ofrece funciones de recuperación de firma y recuperación de verificación.

Funciones Digest

La biblioteca de software de AWS CloudHSM para la biblioteca PKCS #11 le permite usar los siguientes mecanismos para las funciones Digest. Con SDK 5 de cliente, los datos se codifican localmente en el software. Esto significa que no hay límite en cuanto al tamaño de los datos que el SDK puede codificar.

  • CKM_SHA_1

  • CKM_SHA224

  • CKM_SHA256

  • CKM_SHA384

  • CKM_SHA512

Funciones de cifrado y descifrado

La biblioteca de software de AWS CloudHSM para la biblioteca PKCS #11 le permite usar los siguientes mecanismos para las funciones de cifrado y descifrado.

  • CKM_RSA_X_509

  • CKM_RSA_PKCS Únicamente para operaciones de una sola parte Próximo cambio en la nota a pie de página 5.

  • CKM_RSA_PKCS_OAEP Únicamente para operaciones de una sola parte.

  • CKM_AES_ECB

  • CKM_AES_CTR

  • CKM_AES_CBC

  • CKM_AES_CBC_PAD

  • CKM_DES3_CBC próximo cambio en la nota a pie de página 5.

  • CKM_DES3_ECB próximo cambio en la nota a pie de página 5.

  • CKM_DES3_CBC_PAD próximo cambio en la nota a pie de página 5.

  • CKM_AES_GCM 1, 2

  • CKM_CLOUDHSM_AES_GCM3

Derivación de funciones de claves

La biblioteca de software de AWS CloudHSM para la biblioteca PKCS #11 le permite usar los siguientes mecanismos para derivar funciones.

  • CKM_SP800_108_COUNTER_KDF

Funciones de encapsulado y desencapsulado

La biblioteca de software de AWS CloudHSM para la biblioteca PKCS #11 le permite usar los siguientes mecanismos para las funciones de encapsulado y desencapsulado.

Para obtener más opciones de encapsulamiento de claves AES, consulte Encapsulamiento de claves con AES.

  • CKM_RSA_PKCS Únicamente para operaciones de una sola parte. Próximo cambio en la nota a pie de página 5.

  • CKM_RSA_PKCS_OAEP4

  • CKM_AES_GCM1, 3

  • CKM_CLOUDHSM_AES_GCM3

  • CKM_RSA_AES_KEY_WRAP

  • CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD3

  • CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD3

  • CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD3

Tamaño máximo de datos para cada mecanismo

En la tabla siguiente, se muestra el tamaño máximo de datos establecido para cada mecanismo:

Tamaño máximo de datos
Mecanismo Tamaño máximo de datos en bytes
CKM_SHA_1_HMAC 16288
CKM_SHA224_HMAC 16256
CKM_SHA256_HMAC 16288
CKM_SHA384_HMAC 16224
CKM_SHA512_HMAC 16224
CKM_AES_CBC 16272
CKM_AES_GCM 16224
CKM_CLOUDHSM_AES_GCM 16224
CKM_DES3_CBC 16280

Notas del mecanismo

  • [1] Al realizar el cifrado AES-GCM, el HSM no acepta los datos del vector de inicialización (IV) de la aplicación. Debe utilizar un vector de inicialización generado. El IV de 12 bytes proporcionado por el HSM se escribe en la referencia de memoria a la que apunta el elemento pIV de la estructura de parámetros CK_GCM_PARAMS especificada por el usuario. Para asegurarse de no generar confusión en el usuario, el SDK de PKCS#11 versión 1.1.1 y posteriores obliga a que el elemento pIV apunte a un búfer puesto a cero cuando se inicializa el cifrado AES-GCM.

  • [2] Cuando se opera con datos mediante cualquiera de los mecanismos siguientes, si el búfer de datos supera el tamaño máximo de datos, la operación produce un error. Para estos mecanismos, todo el procesamiento de los datos debe realizarse dentro del HSM. Para obtener más información sobre los tamaños máximos de conjuntos de datos para cada mecanismo, consulte Tamaño máximo de datos para cada mecanismo.

  • [3] mecanismo definido por el proveedor. Para poder utilizar los mecanismos definidos por el proveedor de CloudHSM, las aplicaciones PKCS#11 deben incluir /opt/cloudhsm/include/pkcs11t.h durante la compilación.

    CKM_CLOUDHSM_AES_GCM: este mecanismo exclusivo es una alternativa programáticamente segura del estándar CKM_AES_GCM. Antepone el IV generado por el HSM al texto cifrado en lugar de volver a escribirlo en la estructura CK_GCM_PARAMS que se proporciona durante la inicialización del cifrado. Puede utilizar este mecanismo con las funciones C_Encrypt, C_WrapKey, C_Decrypt y C_UnwrapKey. Cuando se utiliza este mecanismo, la variable pIV de la estructura CK_GCM_PARAMS debe establecerse en NULL. Cuando se utiliza este mecanismo con C_Decrypt y C_UnwrapKey, se espera que el IV se anteponga al texto cifrado que se está desencapsulando.

    CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD:Encapsulamiento de claves AES con relleno PKCS #5

    CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD:Encapsulamiento de claves AES con relleno de ceros

  • [4] Los siguientes CK_MECHANISM_TYPE y CK_RSA_PKCS_MGF_TYPE se admiten como CK_RSA_PKCS_OAEP_PARAMS para CKM_RSA_PKCS_OAEP:

    • CKM_SHA_1 con CKG_MGF1_SHA1

    • CKM_SHA224 con CKG_MGF1_SHA224

    • CKM_SHA256 con CKG_MGF1_SHA256

    • CKM_SHA384 con CKM_MGF1_SHA384

    • CKM_SHA512 con CKM_MGF1_SHA512

  • [5] De acuerdo con las directrices del NIST, esto no se permite en los clústeres en modo FIPS después de 2023. En el caso de los clústeres en modo no FIPS, seguirá siendo posible después de 2023. Para obtener más información, consulte Cumplimiento de la normativa FIPS 140: anulación de mecanismo 2024.