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
메커니즘과 동일하지만p
및q
생성에 대해 더 강력한 보장을 제공합니다. -
CKM_EC_KEY_PAIR_GEN
-
CKM_GENERIC_SECRET_KEY_GEN
-
CKM_AES_KEY_GEN
-
CKM_DES3_KEY_GEN
— 5 각주에 예정된 변경 사항이 나열되어 있습니다.
서명 및 인증 기능
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
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_CBC
— 5 각주에 예정된 변경 사항이 나열되어 있습니다. -
CKM_DES3_ECB
— 5 각주에 예정된 변경 사항이 나열되어 있습니다. -
CKM_DES3_CBC_PAD
— 5 각주에 예정된 변경 사항이 나열되어 있습니다. CKM_CLOUDHSM_AES_GCM
3
키 함수 유도
PKCS #11 라이브러리용 AWS CloudHSM 소프트웨어 라이브러리를 사용하면 다음과 같은 파생 함수 메커니즘을 사용할 수 있습니다.
-
CKM_SP800_108_COUNTER_KDF
랩 및 언랩 해제 기능
PKCS #11 라이브러리용 AWS CloudHSM 소프트웨어 라이브러리를 사용하면 Wrap 및 Unwrap 함수에 다음과 같은 메커니즘을 사용할 수 있습니다.
AES 키 래핑에 대한 추가 정보는 AES 키 래핑을 참조하십시오.
각 메커니즘의 최대 데이터 크기
다음 표에는 각 메커니즘에 설정된 최대 데이터 크기가 나와 있습니다.
메커니즘 | 최대 데이터 크기(바이트) |
---|---|
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_Decrypt
및C_UnwrapKey
함수와 함께 사용할 수 있습니다. 이 메커니즘을 사용할 때는CK_GCM_PARAMS
구문의 piV 변수를NULL
로 설정해야 합니다.C_Decrypt
및C_UnwrapKey
와 함께 이 메커니즘을 사용할 경우, IV는 언래핑되는 암호화 텍스트 앞에 추가될 것으로 예상됩니다.CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD
: PKCS #5 패딩을 사용하는 AES 키 래핑CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD
: 제로 패딩을 사용하는 AES 키 래핑 [4] 다음
CK_MECHANISM_TYPE
및CK_RSA_PKCS_MGF_TYPE
은CKM_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 메커니즘 지원 중단를 참조하세요.