本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
本主题介绍如何使用客户端软件开发工具包 3 验证 HSM 性能。
要验证 AWS CloudHSM 集群中 HSM 的性能,你可以使用 Client SDK 3 附带的 pkpspeed (Linux) 或 pkpspeed_blocking (Windows) 工具。pkpspeed 工具在理想条件下执行操作,无需通过 PKCS11 等 SDK 即可直接调用 HSM 执行操作。我们建议对您的应用程序进行独立负载测试,以确定自己的扩展需求。我们不建议运行以下测试:随机 (I)、 ModExp (R) 和 EC point mul (Y)。
有关在 Linux EC2 实例上安装此客户端的更多信息,请参见安装和配置 AWS CloudHSM 客户端 (Linux)。有关在 Windows 实例上安装此客户端的更多信息,请参见安装和配置 AWS CloudHSM 客户端 (Windows)。
安装和配置 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,并在 HSM 上指定加密用户 (CU) 的用户名和密码。然后设置要使用的选项,并考虑以下建议。
测试建议
pkpspeed 工具的配置选项
FIPS 模式:始终 AWS CloudHSM 处于 FIPS 模式(详情请参阅AWS CloudHSM 常见问题解答)。这可以通过使用 AWS CloudHSM 用户指南中记录的 CLI 工具并运行指示 FIPS 模式状态的 getHSMInfo 命令来验证。
测试类型(分块与非分块):这指定了如何以线程方式执行操作。非分块方式的数值结果更佳。原因是它们利用线程和并发性。
线程数:用于测试运行的线程数。
运行测试时间(以秒为单位)(最大 = 600):pkpspeed 生成以 “操作/秒” 为单位测量的结果,并在测试运行的每秒钟报告此值。例如,如果测试运行了 5 秒,则可能输出类似以下示例值:
OPERATIONS/second 821/1
OPERATIONS/second 833/1
OPERATIONS/second 845/1
OPERATIONS/second 835/1
OPERATIONS/second 837/1
可通过 pkpspeed 工具运行的测试
AES GCM:测试 AES GCM 模式加密。
基本 3DES CBC:测试 3DES CBC 模式加密。有关即将发生的更改,请参阅下面的注释 1。
基本 AES:测试 AES CBC/ECB 加密。
摘要:测试哈希摘要。
ECDSA 签名:测试 ECDSA 签名。
ECDSA 验证:测试 ECDSA 验证。
FIPS Random:测试符合 FIPS 的随机数的生成(注意:这只能在分块模式下使用)。
HMAC:测试 HMAC。
Random:此测试无关紧要,因为我们使用的是 FIPS 140-2 HSM。
RSA 非 CRT 与 RSA_CRT:测试 RSA 签名并验证操作。
RSA OAEP Enc:测试 RSA OAEP 加密。
RSA OAEP 12 月:测试 RSA OAEP 解密。
RSA 私匙 dec 非 CRT:测试 RSA 私钥加密(未优化)。
RSA 私匙 dec CRT:测试 RSA 私钥加密(已优化)。
RSA PSS 签名:测试 RSA PSS 签名。
RSA PSS 验证:测试 RSA PSS 验证。
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) 一起用于测试 RSA 和 AES 操作的 HSM 性能的选项。
例 – 使用 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/...