Client SDK 3: pkpspeed ツールを使用して HSM のパフォーマンスを検証する - AWS CloudHSM

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Client SDK 3: pkpspeed ツールを使用して HSM のパフォーマンスを検証する

このトピックでは、クライアント SDK 3 で HSM パフォーマンスを検証する方法について説明します。

AWS CloudHSM クラスター内の HSMs のパフォーマンスを確認するには、クライアント SDK 3 に含まれている pkpspeed (Linux) または pkpspeed_blocking (Windows) ツールを使用できます。pkpspeed ツールは理想的な条件下で実行され、PKCS11 などの SDK を経由せずに HSM を直接呼び出して操作を実行します。スケーリングのニーズを判断するために、アプリケーションの負荷を個別にテストすることを推奨します。ランダム (I)、(R)、EC ポイントマルチル ModExp (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 をダウンロードしてインストールします。pkpspeed ツールは、Linux の /opt/cloudhsm/bin/pkpspeed または Windows の C:\Program Files\Amazon\CloudHSM\ にあります。

pkpspeed を使用するには、pkpspeed コマンドあるいは pkpspeed_blocking.exe を実行し、HSM の Crypto User (CU) のユーザー名とパスワードを指定します。次に、以下の推奨事項を考慮に入れながら、使用するオプションを設定します。

レコメンデーションをテストする

  • RSA の署名および検証オペレーションのパフォーマンスをテストするには、Linux または Windows のオプション B の RSA_CRT 暗号を選択します。RSA は選択しないでください (option A in Windows のオプション A)。暗号は同じですが、RSA_CRT はパフォーマンス用に最適化されています。

  • 少数のスレッドで開始します。AES パフォーマンスをテストする場合、通常、1 つのスレッドで十分に最大のパフォーマンスが示されます。RSA パフォーマンスをテストする場合 (RSA_CRT) は、通常、3〜4 つのスレッドで十分です。

pkpspeed ツールの設定可能なオプション

  • FIPS モード: は常に FIPS モード AWS CloudHSM です (詳細については、AWS CloudHSM FAQsを参照してください)。これは、 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 ランダム: FIPS 準拠の乱数の生成をテストします (注: これはブロッキングモードでのみ使用できます)。

  • HMAC: HMAC をテストします。

  • ランダム: FIPS 140-2 HSM を使用しているため、このテストは関係ありません。

  • RSA 非 CRT と RSA_CRT の比較: 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 年 メカニズムの非推奨」を参照してください。

以下の例では、RSA オペレーションと AES オペレーションにおける HSM のパフォーマンスをテストするために pkpspeed (Linux) または pkpspeed_blocking (Windows) で選択できるオプションを示します。

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