Client SDK 3 de AWS CloudHSM: verificar el rendimiento del HSM con la herramienta pkpspeed - AWS CloudHSM

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.

Amazon Linux
$ sudo start cloudhsm-client
Amazon Linux 2
$ sudo service cloudhsm-client start
CentOS 7
$ sudo service cloudhsm-client start
CentOS 8
$ sudo service cloudhsm-client start
RHEL 7
$ sudo service cloudhsm-client start
RHEL 8
$ sudo service cloudhsm-client start
Ubuntu 16.04 LTS
$ sudo service cloudhsm-client start
Ubuntu 18.04 LTS
$ sudo service cloudhsm-client start
Windows
  • Para la versión 1.1.2 y posteriores del cliente de Windows:

    C:\Program Files\Amazon\CloudHSM>net.exe start AWSCloudHSMClient
  • Para la versión 1.1.1 y anteriores de clientes de Windows:

    C:\Program Files\Amazon\CloudHSM>start "cloudhsm_client" cloudhsm_client.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg

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 elija RSA (opción A en Windows). La cifrados son equivalentes, pero RSA_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.

Linux

Utilice estas instrucciones para Linux y sistemas operativos compatibles.

/opt/cloudhsm/bin/pkpspeed -s CU user name -p password SDK Version: 2.03 Available Ciphers: AES_128 AES_256 3DES RSA (non-CRT. modulus size can be 2048/3072) RSA_CRT (same as RSA) For RSA, Exponent will be 65537 Current FIPS mode is: 00002 Enter the number of thread [1-10]: 3 Enter the cipher: RSA_CRT Enter modulus length: 2048 Enter time duration in Secs: 60 Starting non-blocking speed test using data length of 245 bytes... [Test duration is 60 seconds] Do you want to use static key[y/n] (Make sure that KEK is available)?n
Windows
c:\Program Files\Amazon\CloudHSM>pkpspeed_blocking.exe -s CU user name -p password Please select the test you want to run RSA non-CRT------------------->A RSA CRT----------------------->B Basic 3DES CBC---------------->C Basic AES--------------------->D FIPS Random------------------->H Random------------------------>I AES GCM ---------------------->K eXit------------------------>X B Running 4 threads for 25 sec Enter mod size(2048/3072):2048 Do you want to use Token key[y/n]n Do you want to use static key[y/n] (Make sure that KEK is available)? n OPERATIONS/second 821/1 OPERATIONS/second 833/1 OPERATIONS/second 845/1 OPERATIONS/second 835/1 OPERATIONS/second 837/1 OPERATIONS/second 836/1 OPERATIONS/second 837/1 OPERATIONS/second 849/1 OPERATIONS/second 841/1 OPERATIONS/second 856/1 OPERATIONS/second 841/1 OPERATIONS/second 847/1 OPERATIONS/second 838/1 OPERATIONS/second 843/1 OPERATIONS/second 852/1 OPERATIONS/second 837/
ejemplo : uso de pkpspeed para probar el desempeño de AES
Linux

Utilice estas instrucciones para Linux y sistemas operativos compatibles.

/opt/cloudhsm/bin/pkpspeed -s <CU user name> -p <password> SDK Version: 2.03 Available Ciphers: AES_128 AES_256 3DES RSA (non-CRT. modulus size can be 2048/3072) RSA_CRT (same as RSA) For RSA, Exponent will be 65537 Current FIPS mode is: 00000002 Enter the number of thread [1-10]: 1 Enter the cipher: AES_256 Enter the data size [1-16200]: 8192 Enter time duration in Secs: 60 Starting non-blocking speed test using data length of 8192 bytes...
Windows
c:\Program Files\Amazon\CloudHSM>pkpspeed_blocking.exe -s CU user name -p password login as USER Initializing Cfm2 library SDK Version: 2.03 Current FIPS mode is: 00000002 Please enter the number of threads [MAX=400] : 1 Please enter the time in seconds to run the test [MAX=600]: 20 Please select the test you want to run RSA non-CRT------------------->A RSA CRT----------------------->B Basic 3DES CBC---------------->C Basic AES--------------------->D FIPS Random------------------->H Random------------------------>I AES GCM ---------------------->K eXit------------------------>X D Running 1 threads for 20 sec Enter the key size(128/192/256):256 Enter the size of the packet in bytes[1-16200]:8192 OPERATIONS/second 9/1 OPERATIONS/second 10/1 OPERATIONS/second 11/1 OPERATIONS/second 10/1 OPERATIONS/second 10/1 OPERATIONS/second 10/...