AWS CloudHSM 用戶端 SDK 3 使用 pkpspeed 工具驗證HSM效能 - AWS CloudHSM

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS CloudHSM 用戶端 SDK 3 使用 pkpspeed 工具驗證HSM效能

本主題說明如何使用 Client 3 驗證 AWS CloudHSM 硬體安全模組 (HSM) SDK 效能。

若要驗證 AWS CloudHSM 叢集HSMs中 的效能,您可以使用用戶端 3 隨附的 pkpspeed (Linux) 或 pkpspeed_blocking (Windows) SDK 工具。pkpspeed 工具會在理想條件下執行,並直接呼叫 HSM 以執行操作,而無需經過 SDK 等 PKCS11。建議您單獨對應用程式進行負載測試,以判斷擴展需求。我們不建議執行下列測試:Random (I)、 ModExp (R) 和 EC point mul (Y)。

如需在 Linux EC2執行個體上安裝用戶端的詳細資訊,請參閱 安裝和設定 CMU(Linux) 的 AWS CloudHSM 用戶端。如需有關在 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。然後設定要使用的選項,同時考慮以下建議。

測試建議

  • 若要測試RSA簽署和驗證操作的效能,請在 Linux RSA_CRT 中選擇密碼,或在 Windows 中選擇選項 B。不要選擇 RSA (Windows 中的選項 A)。加密的效果相同,但 RSA_CRT 的效能最佳。

  • 從少量的執行緒開始。為了測試AES效能,一個執行緒通常足以顯示最高效能。對於測試RSA效能 (RSA_CRT),三個或四個執行緒通常就足夠了。

pkpspeed 工具的可設定選項

  • FIPS 模式: AWS CloudHSM 一律處於 FIPS 模式 (如需詳細資訊AWS CloudHSM FAQs,請參閱)。這可以透過使用 AWS CloudHSM 使用者指南中記錄CLI的工具進行驗證,並執行指示FIPS模式狀態的 使用 取得 AWS CloudHSM 叢集HSM中每個 的硬體資訊 CMU 命令。

  • 測試類型 (封鎖與非封鎖):這指定了如何以線程方式執行作業。您很可能會使用非封鎖獲得更好的數目。這是因為他們利用執行緒和並行。

  • 執行緒數目:執行測試的執行緒數目。

  • 以秒為單位執行測試的時間 (最大值 = 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 工具執行的測試

  • AES GCM:測試AESGCM模式加密。

  • 基本 3DES CBC:測試 3DES CBC 模式加密。請參閱下列備註 1 查看即將進行的變更。

  • 基本 AES:測試AESCBC/ECB加密。

  • 摘要:測試雜湊摘要。

  • ECDSA 簽署 :測試ECDSA簽署。

  • ECDSA 驗證 :測試ECDSA驗證。

  • FIPS 隨機 :測試產生FIPS符合 的隨機數字 (注意:這只能在封鎖模式下使用)。

  • HMAC:測試 HMAC。

  • 隨機 :由於我們使用 FIPS 140-2 HSM的 ,因此此測試無關。

  • RSA 非CRT 與 RSA_CRT:測試RSA會簽署並驗證操作。

  • RSA OAEP Enc :測試RSAOAEP加密。

  • RSA OAEP 12 月 日:測試RSAOAEP解密。

  • RSA Private dec non-CRT:測試RSA私有金鑰加密 (非最佳化)。

  • RSA 私有金鑰 dec CRT:測試RSA私有金鑰加密 (最佳化)。

  • RSA PSS 簽署 :測試RSAPSS簽署。

  • RSA PSS 驗證 :測試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) 使用的選項,以測試 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/...