Client SDK 3 do AWS CloudHSM: verifique a performance do HSM com a ferramenta pkpspeed
Este tópico descreve como verificar o desempenho do módulo de segurança de hardware (HSM) do AWS CloudHSM com o Client SDK 3.
Para verificar a performance dos HSMs no cluster do AWS CloudHSM, você pode usar a ferramenta pkpspeed (Linux) ou pkpspeed_blocking (Windows) que está incluída no software Client SDK 3. A ferramenta pkpspeed é executada em condições ideais e chama diretamente o HSM para executar operações sem passar por um SDK como o PKCS11. Recomendamos testar a carga de seu aplicativo de forma independente para determinar suas necessidades de escalabilidade. Não recomendamos a execução dos seguintes testes: Random (I), ModExp (R) e EC point mul (Y).
Para obter mais informações sobre como instalar o cliente em uma instância do EC2 para Linux, consulte Instalar e configurar o cliente do AWS CloudHSM para CMU (Linux). Para obter mais informações sobre como instalar o cliente em uma instância do Windows, consulte Instalar e configurar o cliente do AWS CloudHSM para CMU (Windows).
Após instalar e configurar o cliente do AWS CloudHSM, execute o comando a seguir para iniciá-lo.
Se você já instalou o software cliente, talvez seja necessário fazer download e instalar a versão mais recente para obter a pkpspeed. Você pode encontrar a ferramenta pkpspeed em /opt/cloudhsm/bin/pkpspeed
no Linux ou C:\Program Files\Amazon\CloudHSM\
no Windows.
Para usar pkpspeed, execute o comando pkpspeed ou pkpspeed_blocking.exe, especificando o nome do usuário e a senha de um usuário de criptografia (CU) no HSM. Em seguida, defina as opções a serem usadas, considerando as seguintes recomendações.
Teste das recomendações
-
Para testar o desempenho do sinal RSA e verificar as operações, escolha a cifra
RSA_CRT
em Linux ou a opção B no Windows. Não escolhaRSA
(opção A no Windows). As cifras são equivalentes, masRSA_CRT
são otimizadas para o desempenho. -
Comece com um pequeno número de tópicos. Para testar o desempenho do AES, um tópico normalmente é suficiente para mostrar o máximo desempenho. Para testar o desempenho do RSA (
RSA_CRT
), normalmente são suficientes três ou quatro tópicos.
Opções configuráveis para a ferramenta pkpspeed
Modo FIPS: AWS CloudHSM está sempre no modo FIPS (consulte as perguntas frequentes do AWS CloudHSM
para obter detalhes). Isso pode ser verificado usando as ferramentas da CLI, conforme documentado no Guia do usuário do Obter informações de hardware para cada HSM em um cluster do AWS CloudHSM com o CMU e executando o comando AWS CloudHSM que indicará o status do modo FIPS. Tipo de teste (com bloqueio x sem bloqueio): especifica como as operações são executadas de forma segmentada. Você provavelmente obterá números melhores usando o sistema sem bloqueio. Isso ocorre porque eles utilizam threads e simultaneidade.
Número de threads: número de threads com os quais executar o teste.
Tempo em segundos para executar o teste (máx = 600): o pkpspeed produz resultados medidos em “OPERAÇÕES/segundo” e relata esse valor para cada segundo que o teste é executado. Por exemplo, se o teste for executado por 5 segundos, a saída poderá ser semelhante aos seguintes valores de amostra:
OPERATIONS/second 821/1
OPERATIONS/second 833/1
OPERATIONS/second 845/1
OPERATIONS/second 835/1
OPERATIONS/second 837/1
Testes que podem ser executados com a ferramenta pkpspeed
AES GCM: testa a criptografia do modo AES GCM.
Basic 3DES CBC: testa a criptografia do modo 3DES CBC. Consulte a nota 1 abaixo para ver uma mudança futura.
Basic AES: testa a criptografia AES CBC/ECB.
Digest: testa o hash digest.
Assinar ECDSA: testa a assinatura de ECDSA.
Verificação de ECDSA: testa a verificação de ECDSA.
FIPS Random: testa a geração de um número aleatório compatível com FIPS (Observação: só pode ser usado no modo de bloqueio).
HMAC: testa o HMAC.
Random: este teste não é relevante porque estamos usando FIPS 140-2 de HSMs.
RSA non-CRT versus RSA_CRT: testa as operações de assinatura e verificação de RSA.
RSA OAEP Enc: testa a criptografia RSA OAEP.
RSA OAEP Dec: testa a decodificação do RSA OAEP.
RSA private dec non-CRT: testa a criptografia de chave privada RSA (não otimizada).
RSA private key dec CRT: testa a criptografia de chave privada RSA (otimizada).
Assinatura RSA PSS: testa a assinatura RSA PSS.
Verificação RSA PSS: testa a verificação RSA PSS.
Enc de chave pública RSA: testa a criptografia de chave pública RSA.
A criptografia de chave pública RSA, a decodificação privada RSA sem CRT e a decodificação de chave privada RSA CRT também solicitarão que o usuário responda ao seguinte:
Do you want to use static key [y/n]
Se y
for inserida, uma chave pré-computada será importada para o HSM.
Se n
for inserido, uma nova chave será gerada.
[1] De acordo com a orientação do NIST, isso não é permitido em clusters no modo FIPS após 2023. Para clusters no modo não FIPS, isso ainda é permitido após 2023. Para mais detalhes, consulte Conformidade com o FIPS 140: suspensão do mecanismo de 2024.
Exemplos
Os exemplos a seguir mostram as opções que você pode escolher com pkpspeed (Linux) ou pkpspeed_blocking.exe (Windows) para testar o desempenho do HSM nas operações RSA e AES.
exemplo – Usar pkpspeed para testar a performance do RSA
Você pode executar esse exemplo no Windows, Linux e sistemas operacionais compatíveis.