

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

# AWS CloudHSM 用戶端 SDK 3 使用 pkpspeed 工具驗證 HSM 效能
<a name="troubleshooting-verify-hsm-performance"></a>

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

若要驗證 AWS CloudHSM 叢集中 HSMs 的效能，您可以使用用戶端 SDK 3 隨附的 pkpspeed (Linux) 或 pkpspeed\$1blocking (Windows) 工具。pkpspeed 工具會在理想的條件下執行，並直接調用 HSM 來執行作業，而不需要透過 PKCS11 等的開發套件。建議您單獨對應用程式進行負載測試，以判斷擴展需求。不建議運行以下測試：隨機 (I)， ModExp (R) 和 EC 點乘法算法 (Y)。

 如需有關在 Linux EC2 執行個體上安裝此用戶端的詳細資訊，請參閱[安裝和設定 CMU (Linux) 的 AWS CloudHSM 用戶端](cmu-install-and-configure-client-linux.md)。如需有關在 Windows 執行個體上安裝此用戶端的詳細資訊，請參閱[安裝和設定 CMU 的 AWS CloudHSM 用戶端 (Windows)](cmu-install-and-configure-client-win.md)。

安裝和設定 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\$1：

  ```
  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\$1blocking.exe**，並指定 HSM 上加密使用者 (CU) 的使用者名稱和密碼。然後設定要使用的選項，同時考慮以下建議。

## 測試建議
<a name="w2aac37c11c17"></a>
+ 若要測試 RSA 簽署的效能和驗證操作，請選擇 `RSA_CRT` 加密 (在 Linux 中) 或選項 B (在 Windows 中)。不要選擇 `RSA` (Windows 中的選項 A)。加密的效果相同，但 `RSA_CRT` 的效能最佳。
+ 從少量的執行緒開始。若要測試 AES 效能，一個執行緒通常足以顯示最大的效能。若要測試 RSA 效能 (`RSA_CRT`)，三個或四個執行緒通常足夠。

## pkpspeed 工具的可設定選項
<a name="w2aac37c11c19"></a>
+ **FIPS 模式**： AWS CloudHSM 一律處於 FIPS 模式 （如需詳細資訊，請參閱[AWS CloudHSM FAQs](https://aws.amazon.com/cloudhsm/faqs/))。這可以透過使用 AWS CloudHSM 使用者指南中所述的 CLI 工具進行驗證，並執行指示 FIPS 模式狀態的 ** [使用 CMU 取得 AWS CloudHSM 叢集中每個 HSM 的硬體資訊](cloudhsm_mgmt_util-getHSMInfo.md) **命令。
+ **測試類型 (封鎖與非封鎖)**：這指定了如何以線程方式執行作業。您很可能會使用非封鎖獲得更好的數目。這是因為他們利用執行緒和並行。
+ **執行緒數目**：執行測試的執行緒數目。
+ **執行測試的時間 (秒) (最大值 = 600)**：pkpspeed 會產生以「作業/秒」為單位測量的結果，並針對執行測試的每秒報告此值。例如，如果測試執行 5 秒鐘，輸出可能會像下列範例值：
  + `OPERATIONS/second 821/1`
  + `OPERATIONS/second 833/1`
  + `OPERATIONS/second 845/1`
  + `OPERATIONS/second 835/1`
  + `OPERATIONS/second 837/1`

## 可以使用 pkpspeed 工具執行的測試
<a name="w2aac37c11c21"></a>
+ **AES GCM**：測試 AES GCM 模式加密。
+ **基本 3DES CBC**：測試 3DES CBC 模式加密。請參閱下列備註 [1](#verify-hsm-performance-note-1) 查看即將進行的變更。
+ **基本 AES**：測試 AES CBC/ECB 加密。
+ **摘要**：測試雜湊摘要。
+ **ECDSA 簽署**：測試 ECDSA 簽署。
+ **ECDSA 驗證**：測試 ECDSA 驗證。
+ **FIPS 隨機**：測試 FIPS 相容隨機數的產生 (注意：這只能在封鎖模式中使用)。
+ **HMAC**：測試 HMAC。
+ **隨機**：此測試不相關，因為我們使用的是 FIPS 140-2 HSM。
+ **RSA 非 CRT 與 RSA\$1CRT**：測試 RSA 簽署並驗證操作。
+ **RSA OAEP 加密**：測試 RSA OAEP 加密。
+ **RSA OAEP 解密**：測試 RSA OAEP 解密。
+ **RSA 私有解密非 CRT**：測試 RSA 私有金鑰加密 (非優化)。
+ **RSA 私有金鑰解密 CRT**：測試 RSA 私有金鑰加密 (優化)。
+ **RSA PSS 簽署**：測試 RSA PSS 簽署。
+ **RSA PSS 驗證**：測試 RSA PSS 驗證。
+ **RSA 公有金鑰加密**：測試 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 機制棄用](compliance-dep-notif.md#compliance-dep-notif-1)。

## 範例
<a name="w2aac37c11c23"></a>

以下範例示範在測試 HSM 的 RSA 和 AES 操作效能時，您在 pkpspeed (Linux) 或 pkpspeed\$1blocking (Windows) 中可以選擇的選項。

**Example ：使用 pkpspeed 來測試 RSA 效能**  
您可以在 Windows、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
```

```
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/
```

**Example ：使用 pkpspeed 來測試 AES 效能**  
在 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...
```

```
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/...
```