클라이언트 SDK 3: pkpspeed 도구를 사용하여 HSM 성능 검증 - AWS CloudHSM

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

클라이언트 SDK 3: pkpspeed 도구를 사용하여 HSM 성능 검증

이 주제에서는 클라이언트 SDK 3에서 HSM 성능을 확인하는 방법에 대해 설명합니다.

AWS CloudHSM 클러스터에서 HSM의 성능을 확인하기 위해 클라이언트 SDK 3에 포함된 pkpspeed(Linux) 또는 pkpspeed_blocking(Windows) 도구를 사용할 수 있습니다. pkpspeed 도구는 이상적인 조건에서 실행되며 PKCS11 같은 SDK를 거치지 않고 HSM을 직접 호출하여 작업을 실행합니다. 애플리케이션을 독립적으로 로드 테스트하여 규모 조정 요구 사항을 파악하는 것이 좋습니다. 랜덤 (I), (R) 및 EC 포인트 mul 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 도구는(/opt/cloudhsm/bin/pkpspeedLinux) 또는(C:\Program Files\Amazon\CloudHSM\Windows)에 있습니다.

pkpspeed를 사용하려면 pkpspeed 명령 또는 pkpspeed_blocking.exe를 실행하고 HSM에 있는 CU(Crypto User)의 사용자 이름 및 암호를 지정합니다. 다음 권장 사항을 고려하여 사용할 옵션을 설정합니다.

권장 테스트

  • RSA 서명의 성능을 테스트하고 작업을 확인하려면 RSA_CRT 암호(Linux) 또는 B 옵션(Windows)을 선택합니다. RSA(Windows에서 A 옵션)를 선택하지 마십시오. 암호는 동등하지만 RSA_CRT가 성능에 최적화되어 있습니다.

  • 먼저 소수의 스레드로 시작합니다. AES 성능 테스트에는 일반적으로 하나의 스레드도 최대 성능을 표시하는 데 충분합니다. RSA 성능(RSA_CRT) 테스트에는 일반적으로 3~4개의 스레드로 충분합니다.

pkpspeed 도구를 위한 구성 가능한 옵션

  • FIPS 모드: 항상 FIPS AWS CloudHSM 모드입니다(자세한 내용은 FAQ 참조). 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 랜덤: FIPS 호환 난수 생성을 테스트합니다(참고: 차단 모드에서만 사용할 수 있음).

  • HMAC: HMAC를 테스트합니다.

  • 임의: FIPS 140-2 HSM을 사용하고 있기 때문에 이 테스트는 관련이 없습니다.

  • 비 CRT RSA 대 RSA_CRT 비교: RSA 서명을 테스트하고 작업을 확인합니다.

  • RSA OAEP Enc: RSA OAEP 암호화를 테스트합니다.

  • RSA OAEP Dec: RSA OAEP 암호 해독을 테스트합니다.

  • RSA 프라이빗 덱 비 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 지침에 따라 FIPS 규정 준수를 위해 2023년 이후에는 허용되지 않습니다. 세부 정보는 FIPS 140 규정 준수: 2024 메커니즘 지원 중단을 참조하세요.

예제

다음 예제는 RSA 및 AES 작업에 대해 HSM 성능을 테스트하기 위해 pkpspeed(Linux) 또는 pkpspeed_blocking.exe(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/...