Mecanismos compatibles con Client SDK 3 de AWS CloudHSM
La biblioteca PKCS #11 admite los siguientes algoritmos para Client SDK 3 de AWS CloudHSM:
-
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 AES,4 AES-GCM, RSA-AES y RSA-OAEP
-
Derivación de claves: ECDH,5 SP800-108 CTR KDF
Tabla de mecanismos y funciones de la biblioteca PKCS #11
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 la siguiente tabla, se resumen las combinaciones de funciones y mecanismos admitidos por AWS CloudHSM.
Interpretación de la tabla de mecanismos y funciones compatibles con PKCS #11
La marca ✔ indica que AWS CloudHSM es compatible con el mecanismo para esa función. No se admiten todas las funciones posibles que se muestran en la especificación de PKCS #11. La marca ✖ indica que AWS CloudHSM todavía no es compatible con el mecanismo para esa función, aunque el estándar de PKCS #11 lo admita. Las celdas vacías indican que el estándar de PKCS #11 no admite el mecanismo para esa función.
Mecanismo |
Funciones |
||||||
---|---|---|---|---|---|---|---|
|
Generar claves o pares de claves |
Firmar y verificar |
SR y VR |
Resumir |
Cifrar o descifrar |
Derivar clave |
Encapsular y desencapsular |
|
✔ |
|
|
|
|
|
|
|
✔2 |
|
|
|
|
|
|
|
|
✔ |
|
|
✔ |
|
|
|
✔1 | ✖ | ✔1 |
|
✔1 | ||
|
|
|
|
|
✔1 |
|
✔6 |
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔1 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
✔ |
|
|
|
|
|
|
|
|
✔1 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
✔3.2 |
|
|
|
|
|
|
|
|
|
|
|
✔5 |
|
|
|
|
|
|
|
✔ |
|
|
✔ |
|
|
|
|
|
|
|
✔ |
|
|
|
|
|
|
|
|
|
|
|
✔ |
|
✖ |
|
|
|
|
|
✔ |
|
✖ |
|
|
|
|
|
✔3.3 |
|
✖ |
|
|
|
|
|
✔ |
|
✖ |
|
✔ |
|
|
|
|
|
|
|
|
|
|
|
✔3.3 |
|
✖ |
|
|
|
|
|
✔ |
|
✖ |
|
|
|
|
|
✔ |
|
✖ |
|
|
|
|
|
|
✔7.1 |
|
|
|
|
|
|
✔7.1 |
|
✔7.1 |
|
|
|
|
✔3.1 |
|
|
|
|
|
✔3.3 |
|
|
|
|
|
|
|
|
|
✔3.1 |
|
|
|
|
|
✔3.3 |
|
|
|
|
|
|
|
|
|
✔3.1 |
|
|
|
|
|
✔3.3 |
|
|
|
|
|
|
|
|
|
✔3.1 |
|
|
|
|
|
✔3.3 |
|
|
|
|
|
|
|
|
|
✔3.1 |
|
|
|
|
|
✔3.3 |
|
|
|
|
|
|
|
|
|
|
|
|
✔ |
|
|
|
|
|
|
|
✔ |
|
|
|
|
|
|
|
✔ |
|
|
|
|
|
|
|
✔7.1 |
|
|
|
|
|
|
|
✔7.1 |
|
|
|
|
|
|
|
✔7.1 |
Notas del mecanismo
-
[1] Únicamente para operaciones de una sola parte.
-
[2] Este mecanismo es funcionalmente idéntico al mecanismo
CKM_RSA_PKCS_KEY_PAIR_GEN
, pero ofrece más garantías en la generación dep
yq
. [3.1] AWS CloudHSM aborda el hashing de distinta manera según el SDK de cliente. En el caso de SDK 3 de cliente, el hashing depende del tamaño de los datos y de si se utilizan operaciones de una o varias partes.
Operaciones de una sola parte en SDK 3 de cliente
En la tabla 3.1 se muestra el tamaño máximo del conjunto de datos para cada mecanismo de SDK 3 de cliente. El hash completo se calcula dentro del HSM. No admite tamaños de datos superiores a 16 KB.
Tabla 3.1, tamaño máximo del conjunto de datos para operaciones de una sola parte Mecanismo Tamaño máximo de datos CKM_SHA_1
16296 CKM_SHA224
16264 CKM_SHA256
16296 CKM_SHA384
16232 CKM_SHA512
16232 Operaciones de varias partes en SDK 3 de cliente
Admite tamaños de datos superiores a 16 KB, pero el tamaño de los datos determina el lugar del hashing. Los búferes de datos de menos de 16 KB se codifican con un hash dentro del HSM. Los búferes de entre 16 KB y el tamaño máximo de datos de su sistema se codifican localmente en el software. Recuerde: Las funciones de hash no requieren de secretos criptográficos, por lo que puede calcularlas de forma segura fuera del HSM.
[3.2] AWS CloudHSM aborda el hashing de distinta manera según el SDK de cliente. En el caso de SDK 3 de cliente, el hashing depende del tamaño de los datos y de si se utilizan operaciones de una o varias partes.
Operaciones de una sola parte en SDK 3 de cliente
En la tabla 3.2 se muestra el tamaño máximo del conjunto de datos para cada mecanismo de SDK 3 de cliente. No admite tamaños de datos superiores a 16 KB.
Tabla 3.2, tamaño máximo del conjunto de datos para operaciones de una sola parte Mecanismo Tamaño máximo de datos CKM_SHA1_RSA_PKCS
16296 CKM_SHA224_RSA_PKCS
16264 CKM_SHA256_RSA_PKCS
16296 CKM_SHA384_RSA_PKCS
16232 CKM_SHA512_RSA_PKCS
16232 CKM_SHA1_RSA_PKCS_PSS
16296 CKM_SHA224_RSA_PKCS_PSS
16264 CKM_SHA256_RSA_PKCS_PSS
16296 CKM_SHA384_RSA_PKCS_PSS
16232 CKM_SHA512_RSA_PKCS_PSS
16232 CKM_ECDSA_SHA1
16296 CKM_ECDSA_SHA224
16264 CKM_ECDSA_SHA256
16296 CKM_ECDSA_SHA384
16232 CKM_ECDSA_SHA512
16232 Operaciones de varias partes en SDK 3 de cliente
Admite tamaños de datos superiores a 16 KB, pero el tamaño de los datos determina el lugar del hashing. Los búferes de datos de menos de 16 KB se codifican con un hash dentro del HSM. Los búferes de entre 16 KB y el tamaño máximo de datos de su sistema se codifican localmente en el software. Recuerde: Las funciones de hash no requieren de secretos criptográficos, por lo que puede calcularlas de forma segura fuera del HSM.
[3.3] 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. En la tabla siguiente, se muestra el tamaño máximo de datos establecido para cada mecanismo:
Tabla 3.3, tamaño máximo del conjunto de datos Mecanismo Tamaño máximo de datos 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 [4] 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.-
[5] Solo SDK 3 de cliente. Este mecanismo se implementa para admitir casos de descarga de SSL/TLS y solo se ejecuta parcialmente en el HSM. Antes de usar este mecanismo, consulte «Issue: ECDH key derivation is executed only partially within the HSM» en Problemas conocidos de la biblioteca PKCS #11 en AWS CloudHSM.
CKM_ECDH1_DERIVE
no admite la curva secp521r1 (P-521). [6] Los siguientes
CK_MECHANISM_TYPE
yCK_RSA_PKCS_MGF_TYPE
se admiten comoCK_RSA_PKCS_OAEP_PARAMS
paraCKM_RSA_PKCS_OAEP
:-
CKM_SHA_1
conCKG_MGF1_SHA1
-
CKM_SHA224
conCKG_MGF1_SHA224
-
CKM_SHA256
conCKG_MGF1_SHA256
-
CKM_SHA384
conCKM_MGF1_SHA384
-
CKM_SHA512
conCKM_MGF1_SHA512
-
[7.1] 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ándarCKM_AES_GCM
. Antepone el IV generado por el HSM al texto cifrado en lugar de volver a escribirlo en la estructuraCK_GCM_PARAMS
que se proporciona durante la inicialización del cifrado. Puede utilizar este mecanismo con las funcionesC_Encrypt
,C_WrapKey
,C_Decrypt
yC_UnwrapKey
. Cuando se utiliza este mecanismo, la variable pIV de la estructuraCK_GCM_PARAMS
debe establecerse enNULL
. Cuando se utiliza este mecanismo conC_Decrypt
yC_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 #5CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD
: encapsulamiento de claves AES con relleno de cerosPara obtener más opciones de encapsulamiento de claves AES, consulte Encapsulamiento de claves con AES.
[8] 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.