AWS CloudHSM 클라이언트 SDK 5용 PKCS #11 라이브러리에 지원되는 메커니즘 - AWS CloudHSM

AWS CloudHSM 클라이언트 SDK 5용 PKCS #11 라이브러리에 지원되는 메커니즘

PKCS #11 라이브러리는 PKCS #11 사양 버전 2.40을 준수합니다. PKCS#11을 사용하여 암호화 기능을 호출하려면 주어진 메커니즘을 가진 함수를 호출하십시오. 다음 섹션에서는 AWS CloudHSM 클라이언트 SDK 5에서 지원하는 기능과 메커니즘의 조합을 요약합니다.

PKCS #11용 소프트웨어 라이브러리는 다음과 같은 알고리즘을 지원합니다.

  • 암호화 및 복호화 - AES-CBC, AES-CTR, AES-ECB, AES-GCM, DES3-CBC, DES3-ECB, RSA-OAEP 및 RSA-PKCS

  • 서명 및 확인 – RSA, HMAC 및 ECDSA(해싱 사용 및 사용 안 함)

  • 해시/다이제스트 – SHA1, SHA224, SHA256, SHA384 및 SHA512

  • 키 랩 - AES 키 랩 1, AES-GCM, RSA-AES 및 RSA-OAEP

키 및 키 페어 함수 생성

PKCS #11 라이브러리용 AWS CloudHSM 소프트웨어 라이브러리를 사용하면 키 및 키 페어 생성 기능에 다음과 같은 메커니즘을 사용할 수 있습니다.

  • CKM_RSA_PKCS_KEY_PAIR_GEN

  • CKM_RSA_X9_31_KEY_PAIR_GEN - 이 메커니즘은 기능적으로 CKM_RSA_PKCS_KEY_PAIR_GEN 메커니즘과 동일하지만 pq 생성에 대해 더 강력한 보장을 제공합니다.

  • CKM_EC_KEY_PAIR_GEN

  • CKM_GENERIC_SECRET_KEY_GEN

  • CKM_AES_KEY_GEN

  • CKM_DES3_KEY_GEN5 각주에 예정된 변경 사항이 나열되어 있습니다.

서명 및 인증 기능

PKCS #11 라이브러리용 AWS CloudHSM 소프트웨어 라이브러리에서는 서명 및 확인 함수에 다음과 같은 메커니즘을 사용할 수 있습니다. Client SDK 5를 사용하면 데이터가 소프트웨어에서 로컬로 해시됩니다. 즉, SDK로 해시할 수 있는 데이터 크기에는 제한이 없습니다.

Client SDK 5를 사용하면 RSA 및 ECDSA 해싱이 로컬에서 수행되므로 데이터 제한이 없습니다. HMAC에는 데이터 제한이 있습니다. 자세한 내용은 2 각주를 참조하십시오.

RSA

  • CKM_RSA_X_509

  • CKM_RSA_PKCS – 단일 부분 작업에만 해당됩니다.

  • CKM_RSA_PKCS_PSS – 단일 부분 작업에만 해당됩니다.

  • CKM_SHA1_RSA_PKCS

  • CKM_SHA224_RSA_PKCS

  • CKM_SHA256_RSA_PKCS

  • CKM_SHA384_RSA_PKCS

  • CKM_SHA512_RSA_PKCS

  • CKM_SHA512_RSA_PKCS

  • CKM_SHA1_RSA_PKCS_PSS

  • CKM_SHA224_RSA_PKCS_PSS

  • CKM_SHA256_RSA_PKCS_PSS

  • CKM_SHA384_RSA_PKCS_PSS

  • CKM_SHA512_RSA_PKCS_PSS

ECDSA

  • CKM_ECDSA – 단일 부분 작업에만 해당됩니다.

  • CKM_ECDSA_SHA1

  • CKM_ECDSA_SHA224

  • CKM_ECDSA_SHA256

  • CKM_ECDSA_SHA384

  • CKM_ECDSA_SHA512

HMAC

  • CKM_SHA_1_HMAC2

  • CKM_SHA224_HMAC2

  • CKM_SHA256_HMAC2

  • CKM_SHA384_HMAC2

  • CKM_SHA512_HMAC2

CMAC

  • CKM_AES_CMAC

서명, 복구 및 복구 기능 확인

Client SDK 5는 서명 복구 및 복구 확인 기능을 지원하지 않습니다.

다이제스트 기능

PKCS #11 라이브러리용 AWS CloudHSM 소프트웨어 라이브러리를 사용하면 다이제스트 함수에 다음과 같은 메커니즘을 사용할 수 있습니다. Client SDK 5를 사용하면 데이터가 소프트웨어에서 로컬로 해시됩니다. 즉, SDK로 해시할 수 있는 데이터 크기에는 제한이 없습니다.

  • CKM_SHA_1

  • CKM_SHA224

  • CKM_SHA256

  • CKM_SHA384

  • CKM_SHA512

암호화 및 해독 기능

PKCS #11 라이브러리용 AWS CloudHSM 소프트웨어 라이브러리를 사용하면 암호화 및 복호화 함수에 다음 메커니즘을 사용할 수 있습니다.

  • CKM_RSA_X_509

  • CKM_RSA_PKCS – 단일 부분 작업에만 해당됩니다. 5 각주에 예정된 변경 사항이 나열되어 있습니다.

  • CKM_RSA_PKCS_OAEP – 단일 부분 작업에만 해당됩니다.

  • CKM_AES_ECB

  • CKM_AES_CTR

  • CKM_AES_CBC

  • CKM_AES_CBC_PAD

  • CKM_DES3_CBC5 각주에 예정된 변경 사항이 나열되어 있습니다.

  • CKM_DES3_ECB5 각주에 예정된 변경 사항이 나열되어 있습니다.

  • CKM_DES3_CBC_PAD5 각주에 예정된 변경 사항이 나열되어 있습니다.

  • CKM_AES_GCM 1, 2

  • CKM_CLOUDHSM_AES_GCM3

키 함수 유도

PKCS #11 라이브러리용 AWS CloudHSM 소프트웨어 라이브러리를 사용하면 다음과 같은 파생 함수 메커니즘을 사용할 수 있습니다.

  • CKM_SP800_108_COUNTER_KDF

랩 및 언랩 해제 기능

PKCS #11 라이브러리용 AWS CloudHSM 소프트웨어 라이브러리를 사용하면 Wrap 및 Unwrap 함수에 다음과 같은 메커니즘을 사용할 수 있습니다.

AES 키 래핑에 대한 추가 정보는 AES 키 래핑을 참조하십시오.

  • CKM_RSA_PKCS – 단일 부분 작업에만 해당됩니다. 5 각주에 예정된 변경 사항이 나열되어 있습니다.

  • CKM_RSA_PKCS_OAEP4

  • CKM_AES_GCM1, 3

  • CKM_CLOUDHSM_AES_GCM3

  • CKM_RSA_AES_KEY_WRAP

  • CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD3

  • CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD3

  • CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD3

각 메커니즘의 최대 데이터 크기

다음 표에는 각 메커니즘에 설정된 최대 데이터 크기가 나와 있습니다.

최대 데이터 세트 크기
메커니즘 최대 데이터 크기(바이트)
CKM_SHA_1_HMAC 16288
CKM_SHA224_HMAC 16256
CKM_SHA256_HMAC 16288
CKM_SHA384_HMAC 16224
CKM_SHA512_HMAC 16224
CKM_AES_CBC 16272
CKM_AES_GCM 16224
CKM_CLOUDHSM_AES_GCM 16224
CKM_DES3_CBC 16280

메커니즘 주석

  • [1] AES-GCM 암호화를 수행할 때 HSM은 애플리케이션의 IV(초기화 벡터) 데이터를 허용하지 않습니다. 생성되는 IV를 사용해야 합니다. HSM이 제공하는 12바이트 IV는 사용자가 제공하는 CK_GCM_PARAMS 파라미터 구조의 pIV 요소가 가리키는 메모리 참조에 기록됩니다. 사용자의 혼동을 피하기 위해 버전 1.1.1 이상인 PKCS#11 SDK는 AES-GCM 암호화가 초기화될 때 pIV가 초기화된 버퍼를 가리키는지 확인합니다.

  • [2] 다음 메커니즘 중 하나를 사용하여 데이터에 대해 작업을 수행할 때 데이터 버퍼가 최대 데이터 크기를 초과하면 작업 결과 오류가 발생합니다. 이러한 메커니즘의 경우 모든 데이터 처리는 HSM 내에서 이루어져야 합니다. 각 메커니즘의 최대 데이터 크기 세트에 대한 자세한 내용은 각 메커니즘의 최대 데이터 크기 단원을 참조하십시오.

  • [3] 공급업체가 정의한 메커니즘. CloudHSM 공급자 정의 메커니즘을 사용하려면 컴파일하는 동안 PKCS #11 애플리케이션에 /opt/cloudhsm/include/pkcs11t.h가 포함되어 있어야 합니다.

    CKM_CLOUDHSM_AES_GCM: 이 독점 메커니즘은 CKM_AES_GCM 표준에 대한 프로그래밍 방식으로 안전한 대안입니다. 이 메커니즘은 암호 초기화 중에 제공되는 CK_GCM_PARAMS 구조로 다시 암호 텍스트를 쓰는 대신 암호 텍스트 앞에 HSM에 의해 생성된 IV를 추가합니다. 이 메커니즘은 C_Encrypt, C_WrapKey, C_DecryptC_UnwrapKey 함수와 함께 사용할 수 있습니다. 이 메커니즘을 사용할 때는 CK_GCM_PARAMS 구문의 piV 변수를 NULL로 설정해야 합니다. C_DecryptC_UnwrapKey와 함께 이 메커니즘을 사용할 경우, IV는 언래핑되는 암호화 텍스트 앞에 추가될 것으로 예상됩니다.

    CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD: PKCS #5 패딩을 사용하는 AES 키 래핑

    CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD: 제로 패딩을 사용하는 AES 키 래핑

  • [4] 다음 CK_MECHANISM_TYPECK_RSA_PKCS_MGF_TYPECKM_RSA_PKCS_OAEP에 대해 CK_RSA_PKCS_OAEP_PARAMS로 지원됩니다.

    • CKG_MGF1_SHA1을 사용하는 CKM_SHA_1

    • CKG_MGF1_SHA224를 사용하는 CKM_SHA224

    • CKG_MGF1_SHA256을 사용하는 CKM_SHA256

    • CKM_MGF1_SHA384를 사용하는 CKM_SHA384

    • CKM_MGF1_SHA512를 사용하는 CKM_SHA512

  • [5] NIST 지침에 따라 2023년 이후 FIPS 모드의 클러스터에는 허용되지 않습니다. 비 FIPS 모드의 클러스터의 경우 2023년 이후에도 허용됩니다. 세부 정보는 FIPS 140 규정 준수: 2024 메커니즘 지원 중단를 참조하세요.