本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
本主题介绍如何使用客户端 SDK 3 验证 AWS CloudHSM 硬件安全模块 (HSM) 的性能。
要验证 AWS CloudHSM 集群HSMs中的性能,您可以使用客户端 3 附带的 pkpspeed (Linux) 或 pkpspeed_blocking (Windows) 工具。SDKpkpspeed 工具在理想条件下执行并直接调用HSM以执行操作,而无需执行诸如。SDK PKCS11我们建议对您的应用程序进行独立负载测试,以确定自己的扩展需求。我们不建议运行以下测试:随机 (I)、 ModExp (R) 和 EC point mul (Y)。
有关在 Linux EC2 实例上安装客户端的更多信息,请参阅安装和配置适用于 CMU 的 AWS CloudHSM 客户端(Linux)。有关在 Windows 实例上安装此客户端的更多信息,请参见安装和配置适用于 CMU (Windows) 的 AWS CloudHSM 客户端。
安装和配置 AWS CloudHSM 客户端后,运行以下命令将其启动。
- 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
对于 Windows 客户端 1.1.2 以上版本:
C:\Program Files\Amazon\CloudHSM>
net.exe start AWSCloudHSMClient
对于 Windows 客户端 1.1.1 及更低版本:
C:\Program Files\Amazon\CloudHSM>
start "cloudhsm_client" cloudhsm_client.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg
如果您已安装此客户端软件,则可能需要下载并安装最新版本才能获得 pkpspeed。您可以在 Linux 中的 /opt/cloudhsm/bin/pkpspeed
或 Windows 中的 C:\Program Files\Amazon\CloudHSM\
中找到 pkpspeed 工具。
要使用 pkpspeed,请运行pkpspeed命令或pkpspeed_blocking.exe,在上指定加密用户 (CU) 的用户名和密码。HSM然后设置要使用的选项,并考虑以下建议。
测试建议
pkpspeed 工具的配置选项
FIPS模式:始终 AWS CloudHSM 处于FIPS模式(有关详细信息 AWS CloudHSM FAQs,请参阅)。这可以通过使用 AWS CloudHSM 用户指南中记录的CLI工具并运行指示FIPS模式状态的 使用 CMU 获取 AWS CloudHSM 集群中的每个 HSM 的硬件信息 命令来验证。
测试类型(分块与非分块):这指定了如何以线程方式执行操作。非分块方式的数值结果更佳。原因是它们利用线程和并发性。
线程数:用于测试运行的线程数。
运行测试的时间(以秒为单位)(最大 = 600):pkpspeed 生成以 “OPERATIONS/秒” 为单位的结果,并在测试运行的每秒钟报告此值。例如,如果测试运行了 5 秒,则可能输出类似以下示例值:
OPERATIONS/second 821/1
OPERATIONS/second 833/1
OPERATIONS/second 845/1
OPERATIONS/second 835/1
OPERATIONS/second 837/1
可通过 pkpspeed 工具运行的测试
AESGCM: 测试AESGCM模式加密。
基本 3 DES CBC:测试 3 DES CBC 模式加密。有关即将发生的更改,请参阅下面的注释 1。
基本 AES:测试 AESCBC/ECB加密。
摘要:测试哈希摘要。
ECDSA标志:测试ECDSA标志。
ECDSA验证:测试ECDSA验证。
FIPS随机:测试FIPS符合条件的随机数的生成(注意:这只能在阻塞模式下使用)。
HMAC: 测试HMAC。
随机:此测试无关紧要,因为我们使用的是 FIPS 140-2 HSM。
RSAnon-CRT vs RSA _ CRT:测试对操作进行RSA签名和验证。
RSAOAEPEnc:测试RSAOAEP加密。
RSAOAEP12 月:测试RSAOAEP解密。
RSAprivate dec 非-CRT:测试RSA私钥加密(未优化)。
RSA私钥 dec CRT:测试RSA私钥加密(已优化)。
RSAPSS标志:测试RSAPSS标志。
RSAPSS验证:测试RSAPSS验证。
RSA公钥 enc:测试RSA公钥加密。
RSA公钥加密、RSA私钥解密非CRT和RSA私钥解密CRT也会提示用户回答以下问题:
Do you want to use static key [y/n]
如果输入,y
则会将预先计算的密钥导入到。HSM
如果输入 n
,则会生成新密钥。
[1] 根据NIST指导,2023 年之后处于FIPS模式的集群不允许这样做。对于处于非FIPS模式的集群,2023 年之后仍允许使用。有关详细信息,请参阅FIPS 140 合规:2024 年机制弃用。
示例
以下示例显示了你可以使用 pkpspeed (Linux) 或 pkpspeed_blocking (Windows) 选择的选项来测试和操作的HSM性能。RSA AES
例 — 使用 pkpspeed 来测试性能 RSA
您可以在 Windows、Linux 和兼容的操作系统上运行此示例。
- Linux
-
对 Linux 和兼容的操作系统使用这些说明。
/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/
例 — 使用 pkpspeed 来测试性能 AES
- Linux
-
对 Linux 和兼容的操作系统使用这些说明。
/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/...