Client SDK 3 de AWS CloudHSM: verificar el rendimiento del HSM con la herramienta pkpspeed
En este tema, se describe cómo verificar el rendimiento del módulo de seguridad de hardware (HSM) del AWS CloudHSM con Client SDK 3.
Para comprobar el rendimiento de los HSM del clúster de AWS CloudHSM, puede utilizar la herramienta pkpspeed (Linux) o pkpspeed_blocking (Windows), que se incluye con el SDK 3 de cliente. La herramienta pkpspeed se ejecuta en condiciones ideales y llama directamente al HSM para ejecutar las operaciones sin necesidad de utilizar un SDK, como el PKCS11. Recomendamos realizar pruebas de carga de la aplicación de forma independiente para determinar sus necesidades de escalamiento. No recomendamos ejecutar las siguientes pruebas: Random (I), ModExp (R) y EC point mul (Y).
Para obtener más información acerca de la instalación del cliente en una instancia de Linux EC2, consulte Instalar y configurar el cliente del AWS CloudHSM para la CMU (Linux). Para obtener más información acerca de la instalación del cliente en una instancia de Windows, consulte Instalar y configurar el cliente del AWS CloudHSM para la CMU (Windows).
Después de instalar y configurar el cliente de AWS CloudHSM, ejecute el siguiente comando para iniciarlo.
Si ya ha instalado el software de cliente, es posible que deba descargar e instalar la última versión para obtener pkpspeed. Puede encontrar la herramienta pkpspeed /opt/cloudhsm/bin/pkpspeed
en Linux o en C:\Program Files\Amazon\CloudHSM\
en Windows.
Para utilizar pkpspeed, ejecute el comando pkpspeed o pkpspeed_blocking.exe especificando el nombre de usuario y la contraseña de un usuario de criptografía (CU) del HSM. A continuación, defina las opciones que se utilizarán mientras tiene en cuenta las siguientes recomendaciones.
Recomendaciones de prueba
-
Para probar el desempeño de las operaciones de firma y comprobación de RSA y verificar las operaciones, elija el cifrado
RSA_CRT
en Linux o la opción B en Windows. No elijaRSA
(opción A en Windows). La cifrados son equivalentes, peroRSA_CRT
está optimizado para el desempeño. -
Comience por un número reducido de subprocesos. Para probar el desempeño de AES suele bastar con un subproceso para mostrar el máximo desempeño. Para probar el desempeño de RSA (
RSA_CRT
), normalmente es suficiente con tres o cuatro subprocesos.
Opciones configurables para la herramienta pkpspeed
Modo FIPS: AWS CloudHSM siempre está en modo FIPS (consulte las preguntas frecuentes de AWS CloudHSM
para obtener más información). Esto se puede verificar con las herramientas CLI, tal como se documenta en la Guía del usuario de AWS CloudHSM, y ejecutando el comando Obtener información de hardware para cada HSM de un clúster de AWS CloudHSM con CMU que indicará el estado del modo FIPS. Tipo de prueba (con bloqueo o sin bloqueo): especifica cómo se realizan las operaciones por subprocesos. Lo más probable es que consiga mejores números si utiliza el modo de no bloqueo. Esto se debe a que se utilizan subprocesos y simultaneidad.
Número de subprocesos: número de subprocesos con los que se va a ejecutar la prueba.
Tiempo en segundos para ejecutar la prueba (máximo = 600): pkpspeed produce los resultados medidos en "OPERACIONES/segundos" e informa este valor por cada segundo que se ejecuta la prueba. Por ejemplo, si la prueba se ejecuta durante 5 segundos, el resultado puede asemejarse a los siguientes valores de muestra:
OPERATIONS/second 821/1
OPERATIONS/second 833/1
OPERATIONS/second 845/1
OPERATIONS/second 835/1
OPERATIONS/second 837/1
Pruebas que se pueden ejecutar con la herramienta pkpspeed
AES GCM: realiza una prueba el cifrado en modo AES GCM.
Basic 3DES CBC: realiza una prueba del cifrado en modo CBC de 3DES. Consulte la nota 1 que aparece a continuación para ver los próximos cambios.
Basic AES: realiza una prueba del cifrado AES CBC/ECB.
Digest: realiza una prueba del resumen del hash.
ECDSA Sign: realiza una prueba de la firma de ECDSA.
ECDSA Verify: realiza una prueba de la verificación de ECDSA.
FIPS Random: realiza una prueba de la generación de un número aleatorio conforme con las normas FIPS. (Nota: solo se puede usar en modo de bloqueo).
HMAC: realiza una prueba del HMAC.
Random: esta prueba no es relevante porque utilizamos los HSM del FIPS 140-2.
RSA non-CRT versus RSA_CRT: realiza una prueba de las operaciones de firma y verificación de RSA.
RSA OAEP Enc: realiza una prueba del cifrado RSA OAEP.
RSA OAEP Dec: realiza una prueba del descifrado de RSA OAEP.
RSA private dec non-CRT: realiza una prueba del cifrado de clave privada RSA (sin optimizar).
RSA private key dec CRT: realiza una prueba del cifrado de clave privada RSA (optimizado).
RSA PSS Sign: realiza una prueba de la firma de PSS de RSA.
RSA PSS Verify: realiza una prueba de la verificación de PSS de RSA.
RSA public key enc: realiza una prueba del cifrado de clave pública de RSA.
El cifrado de clave pública RSA, el descifrado privado RSA (no CRT) y el descifrado de clave privada RSA (CRT) también solicitarán al usuario que responda lo siguiente:
Do you want to use static key [y/n]
Si se introduce y
, se importa una clave calculada previamente al HSM.
Si se introduce n
, se genera una nueva clave.
[1] 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.
Ejemplos
En los ejemplos siguientes se muestran las opciones que puede elegir con pkpspeed (Linux) o pkpspeed_blocking (Windows) para probar el desempeño de HSM para las operaciones de RSA y AES.
ejemplo : uso de pkpspeed para probar el desempeño de RSA
Puede ejecutar este ejemplo en Windows, Linux y sistemas operativos compatibles.