지원되는 키 속성 - AWS CloudHSM

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

지원되는 키 속성

키 객체는 퍼블릭 키, 프라이빗 키 또는 비밀 키일 수 있습니다. 키 객체에 대해 허용되는 작업은 속성을 통해 지정됩니다. 속성은 키 객체가 생성될 때 정의됩니다. PKCS #11 라이브러리를 사용하는 경우 PKCS #11 표준에 지정된 대로 기본값을 할당합니다.

AWS CloudHSM는 PKCS #11 사양에 나열된 속성을 모두 지원하지는 않습니다. 우리는 우리가 지원하는 모든 속성에 대한 사양을 준수합니다. 이러한 속성은 각 표에 나열되어 있습니다.

객체를 생성, 수정 또는 복사하는 C_CreateObject, C_GenerateKey, C_GenerateKeyPair, C_UnwrapKey, C_DeriveKey 등의 암호화 함수는 속성 템플릿을 파라미터 중 하나로 사용합니다. 객체 생성 중 속성 템플릿 전달에 대한 자세한 내용은 PKCS #11을 통해 키 생성 라이브러리의 예를 참조하십시오.

PKCS #11 라이브러리 속성 테이블 해석

PKCS #11 라이브러리 테이블에는 키 유형별로 다른 속성 목록이 포함되어 있습니다. 이 표는 AWS CloudHSM에서 특정 암호화 함수를 사용할 때 특정 키 유형에 대해 지정된 속성이 지원되는지 여부를 보여 줍니다.

범례:

  • ✔는 CloudHSM이 특정 키 유형에 대해 해당 속성을 지원함을 나타냅니다.

  • ✖는 CloudHSM이 특정 키 유형에 대해 해당 속성을 지원하지 않음을 나타냅니다.

  • R은 속성 값이 특정 키 유형에 대해 읽기 전용으로 설정됨을 나타냅니다.

  • S는 중요하므로 GetAttributeValue로 속성을 읽을 수 없음을 나타냅니다.

  • 기본값 열의 빈 셀은 속성에 할당된 특정 기본값이 없음을 나타냅니다.

속성

키 유형

기본 값

 

EC 프라이빗

EC 퍼블릭

RSA 프라이빗

RSA 퍼블릭

 

CKA_CLASS

CKA_KEY_TYPE

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

R

True

CKA_TOKEN

False

CKA_PRIVATE

1

1

1

1

True

CKA_ENCRYPT

False

CKA_DECRYPT

False

CKA_DERIVE

False

CKA_MODIFIABLE

1

1

1

1

True

CKA_DESTROYABLE

True

CKA_SIGN

False

CKA_SIGN_RECOVER

 

CKA_VERIFY

False

CKA_VERIFY_RECOVER

 

CKA_WRAP

False

CKA_WRAP_TEMPLATE

 

CKA_TRUSTED

False

CKA_WRAP_WITH_TRUSTED

False

CKA_UNWRAP

False

CKA_UNWRAP_TEMPLATE

 

CKA_SENSITIVE

1

1

True

CKA_ALWAYS_SENSITIVE

R

R

 

CKA_EXTRACTABLE

True

CKA_NEVER_EXTRACTABLE

R

R

 

CKA_MODULUS

 

CKA_MODULUS_BITS

2

 

CKA_PRIME_1

 

CKA_PRIME_2

 

CKA_COEFFICIENT

 

CKA_EXPONENT_1

 

CKA_EXPONENT_2

 

CKA_PRIVATE_EXPONENT

 

CKA_PUBLIC_EXPONENT

2

 

CKA_EC_PARAMS

2

 

CKA_EC_POINT

 

CKA_VALUE

 

CKA_VALUE_LEN

 

CKA_CHECK_VALUE

R

R

R

R

 

속성

키 유형

기본 값

 

AES

DES3

일반 보안

 

CKA_CLASS

CKA_KEY_TYPE

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

True

CKA_TOKEN

False

CKA_PRIVATE

1

1

1

True

CKA_ENCRYPT

False

CKA_DECRYPT

False

CKA_DERIVE

False

CKA_MODIFIABLE

1

1

1

True

CKA_DESTROYABLE

True

CKA_SIGN

True

CKA_SIGN_RECOVER

 

CKA_VERIFY

True

CKA_VERIFY_RECOVER

 

CKA_WRAP

False

CKA_WRAP_TEMPLATE

 

CKA_TRUSTED

False

CKA_WRAP_WITH_TRUSTED

False

CKA_UNWRAP

False

CKA_UNWRAP_TEMPLATE

 

CKA_SENSITIVE

True

CKA_ALWAYS_SENSITIVE

 

CKA_EXTRACTABLE

True

CKA_NEVER_EXTRACTABLE

R

R

R

 

CKA_MODULUS

 

CKA_MODULUS_BITS

 

CKA_PRIME_1

 

CKA_PRIME_2

 

CKA_COEFFICIENT

 

CKA_EXPONENT_1

 

CKA_EXPONENT_2

 

CKA_PRIVATE_EXPONENT

 

CKA_PUBLIC_EXPONENT

 

CKA_EC_PARAMS

 

CKA_EC_POINT

 

CKA_VALUE

 

CKA_VALUE_LEN

2

2

 

CKA_CHECK_VALUE

R

R

R

 

속성

키 유형

기본 값

 

EC 프라이빗

EC 퍼블릭

RSA 프라이빗

RSA 퍼블릭

AES

DES3

일반 보안

 

CKA_CLASS

2

2

2

2

2

2

2

CKA_KEY_TYPE

2

2

2

2

2

2

2

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

R

R

R

R

False

CKA_TOKEN

False

CKA_PRIVATE

1

1

1

1

1

1

1

True

CKA_ENCRYPT

False

CKA_DECRYPT

False

CKA_DERIVE

False

CKA_MODIFIABLE

1

1

1

1

1

1

1

True

CKA_DESTROYABLE

True

CKA_SIGN

False

CKA_SIGN_RECOVER

False

CKA_VERIFY

False

CKA_VERIFY_RECOVER

 

CKA_WRAP

False

CKA_WRAP_TEMPLATE

 

CKA_TRUSTED

False

CKA_WRAP_WITH_TRUSTED

False

CKA_UNWRAP

False

CKA_UNWRAP_TEMPLATE

 

CKA_SENSITIVE

True

CKA_ALWAYS_SENSITIVE

R

R

R

R

R

 

CKA_EXTRACTABLE

True

CKA_NEVER_EXTRACTABLE

R

R

R

R

R

 

CKA_MODULUS

2

2

 

CKA_MODULUS_BITS

 

CKA_PRIME_1

 

CKA_PRIME_2

 

CKA_COEFFICIENT

 

CKA_EXPONENT_1

 

CKA_EXPONENT_2

 

CKA_PRIVATE_EXPONENT

2

 

CKA_PUBLIC_EXPONENT

2

2

 

CKA_EC_PARAMS

2

2

 

CKA_EC_POINT

2

 

CKA_VALUE

2

2

2

2

 

CKA_VALUE_LEN

 

CKA_CHECK_VALUE

R

R

R

R

R

R

R

 

속성

키 유형

기본 값

 

EC 프라이빗

RSA 프라이빗

AES

DES3

일반 보안

 

CKA_CLASS

2

2

2

2

2

CKA_KEY_TYPE

2

2

2

2

2

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

R

R

False

CKA_TOKEN

False

CKA_PRIVATE

1

1

1

1

1

True

CKA_ENCRYPT

False

CKA_DECRYPT

False

CKA_DERIVE

False

CKA_MODIFIABLE

1

1

1

1

1

True

CKA_DESTROYABLE

True

CKA_SIGN

False

CKA_SIGN_RECOVER

False

CKA_VERIFY

False

CKA_VERIFY_RECOVER

 

CKA_WRAP

False

CKA_UNWRAP

False

CKA_SENSITIVE

True

CKA_EXTRACTABLE

True

CKA_NEVER_EXTRACTABLE

R

R

R

R

R

 

CKA_ALWAYS_SENSITIVE

R

R

R

R

R

 

CKA_MODULUS

 

CKA_MODULUS_BITS

 

CKA_PRIME_1

 

CKA_PRIME_2

 

CKA_COEFFICIENT

 

CKA_EXPONENT_1

 

CKA_EXPONENT_2

 

CKA_PRIVATE_EXPONENT

 

CKA_PUBLIC_EXPONENT

 

CKA_EC_PARAMS

 

CKA_EC_POINT

 

CKA_VALUE

 

CKA_VALUE_LEN

 

CKA_CHECK_VALUE

R

R

R

R

R

 

속성

키 유형

기본 값

 

AES

DES3

일반 보안

 

CKA_CLASS

2

2

2

CKA_KEY_TYPE

2

2

2

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

True

CKA_TOKEN

False

CKA_PRIVATE

1

1

1

True

CKA_ENCRYPT

False

CKA_DECRYPT

False

CKA_DERIVE

False

CKA_MODIFIABLE

1

1

1

True

CKA_DESTROYABLE

1

1

1

True

CKA_SIGN

False

CKA_SIGN_RECOVER

 

CKA_VERIFY

False

CKA_VERIFY_RECOVER

 

CKA_WRAP

False

CKA_UNWRAP

False

CKA_SENSITIVE

R

R

R

True

CKA_EXTRACTABLE

True

CKA_NEVER_EXTRACTABLE

R

R

R

 

CKA_ALWAYS_SENSITIVE

R

R

R

 

CKA_MODULUS

 

CKA_MODULUS_BITS

 

CKA_PRIME_1

 

CKA_PRIME_2

 

CKA_COEFFICIENT

 

CKA_EXPONENT_1

 

CKA_EXPONENT_2

 

CKA_PRIVATE_EXPONENT

 

CKA_PUBLIC_EXPONENT

 

CKA_EC_PARAMS

 

CKA_EC_POINT

 

CKA_VALUE

 

CKA_VALUE_LEN

2

2

 

CKA_CHECK_VALUE

R

R

R

 

속성

키 유형

 

EC 프라이빗

EC 퍼블릭

RSA 프라이빗

RSA 퍼블릭

AES

DES3

일반 보안

CKA_CLASS

CKA_KEY_TYPE

CKA_LABEL

CKA_ID

CKA_LOCAL

CKA_TOKEN

CKA_PRIVATE

1

1

1

1

1

1

1

CKA_ENCRYPT

CKA_DECRYPT

CKA_DERIVE

CKA_MODIFIABLE

CKA_DESTROYABLE

CKA_SIGN

CKA_SIGN_RECOVER

CKA_VERIFY

CKA_VERIFY_RECOVER

CKA_WRAP

CKA_WRAP_TEMPLATE

CKA_TRUSTED

CKA_WRAP_WITH_TRUSTED

CKA_UNWRAP

CKA_UNWRAP_TEMPLATE

CKA_SENSITIVE

CKA_EXTRACTABLE

CKA_NEVER_EXTRACTABLE

CKA_ALWAYS_SENSITIVE

R

R

R

R

R

R

R

CKA_MODULUS

CKA_MODULUS_BITS

CKA_PRIME_1

S

CKA_PRIME_2

S

CKA_COEFFICIENT

S

CKA_EXPONENT_1

S

CKA_EXPONENT_2

S

CKA_PRIVATE_EXPONENT

S

CKA_PUBLIC_EXPONENT

CKA_EC_PARAMS

CKA_EC_POINT

CKA_VALUE

S

CKA_VALUE_LEN

CKA_CHECK_VALUE

속성 주석

  • [1] 이 속성은 펌웨어에서 부분적으로 지원되며 명시적으로 기본값으로만 설정되어야 합니다.

  • [2] 필수 속성.

속성 수정

객체의 일부 속성은 객체가 생성된 후 수정할 수 있지만, 일부 속성은 수정할 수 없습니다. 속성을 수정하려면 cloudhsm_mgmt_util에서 setAttribute 명령을 사용하십시오. cloudhsm_mgmt_util에서 listAttribute 명령을 사용하여 속성 및 이를 나타내는 상수 목록을 파생시킬 수도 있습니다.

다음 목록은 객체 생성 후 수정할 수 있는 속성을 보여 줍니다.

  • CKA_LABEL

  • CKA_TOKEN

    참고

    세션 키를 토큰 키로 변경하는 경우에만 수정이 허용됩니다. 속성 값을 변경하려면 key_mgmt_util에서 setAttribute 명령을 사용하십시오.

  • CKA_ENCRYPT

  • CKA_DECRYPT

  • CKA_SIGN

  • CKA_VERIFY

  • CKA_WRAP

  • CKA_UNWRAP

  • CKA_LABEL

  • CKA_SENSITIVE

  • CKA_DERIVE

    참고

    이 속성은 키 파생을 지원합니다. 모든 퍼블릭 키에 대해 False여야 하고 True로 설정할 수 없습니다. 보안 및 EC 프라이빗 키의 경우 True 또는 False로 설정할 수 있습니다.

  • CKA_TRUSTED

    참고

    CO(Crypto Officer)만 이 속성을 True 또는 False로 설정할 수 있습니다.

  • CKA_WRAP_WITH_TRUSTED

    참고

    이 속성을 내보낼 수 있는 데이터 키에 적용하여 이 키를 CKA_TRUSTED로 표시된 키로만 래핑할 수 있도록 지정합니다. CKA_WRAP_WITH_TRUSTED는 true로 설정하면 속성이 읽기 전용이 되며 속성을 변경하거나 제거할 수 없습니다.

오류 코드 해석

템플릿에서 특정 키로 지원되지 않는 속성을 지정하면 오류가 발생합니다. 다음 표에 사양을 위반하면 발생되는 오류 코드가 나와 있습니다.

오류 코드 설명
CKR_TEMPLATE_INCONSISTENT 어떤 속성이 PKCS #11 사양을 준수하지만 CloudHSM에서 지원되지 않는 경우, 속성 템플릿에서 해당 속성을 지정하면 이 오류가 발생합니다.
CKR_ATTRIBUTE_TYPE_INVALID PKCS #11 사양을 준수하지만 CloudHSM에서 지원되지 않는 속성의 값을 검색하면 이 오류가 발생합니다.
CKR_ATTRIBUTE_INCOMPLETE 속성 템플릿에서 필수 속성을 지정하지 않으면 이 오류가 발생합니다.
CKR_ATTRIBUTE_READ_ONLY 속성 템플릿에서 읽기 전용 속성을 지정하면 이 오류가 발생합니다.