기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Client SDK 5에 AWS CloudHSM 지원되는 Java 키 속성
이 주제에서는 AWS CloudHSM Client SDK 5에 지원되는 Java 키 속성에 대한 정보를 제공합니다. 이 주제에서는 JCE 공급자에 대한 독점 확장을 사용하여 키 속성을 설정하는 방법을 설명합니다. 이 확장을 사용하여 다음 작업 중에 지원되는 키 속성 및 해당 값을 설정할 수 있습니다:
키 생성
키 가져오기
키 속성 사용 방법에 대한 예는 Java for Client SDK 5용 AWS CloudHSM 소프트웨어 라이브러리의 코드 샘플을 참조하십시오.
속성 이해
키 속성을 사용하여 퍼블릭 키, 개인 키 또는 보안 키를 포함하여 키 객체에 허용되는 작업을 지정합니다. 키 객체 생성 작업 중에 키 속성과 값을 정의합니다.
Java Cryptography Extension(JCE)은 키 속성에 값을 설정하는 방법을 지정하지 않으므로 대부분의 작업이 기본적으로 허용되었습니다. 반대로 PKCS# 11 표준은 기본값이 더 제한적인 포괄적인 속성 세트를 정의합니다. JCE 공급자 3.1부터는 일반적으로 사용되는 속성에 대해 더 제한적인 값을 설정할 수 있는 독점 확장을 AWS CloudHSM 제공합니다.
지원되는 속성
다음 표에 나열된 속성에 대한 값을 설정할 수 있습니다. 제한적으로 만들려는 속성의 값만 설정하는 것이 좋습니다. 값을 지정하지 않으면 아래 표에 지정된 기본값을 AWS CloudHSM 사용합니다. 기본값 열의 빈 셀은 속성에 할당된 특정 기본값이 없음을 나타냅니다.
속성 | 기본 값 | 참고 | ||
---|---|---|---|---|
대칭 키 | 키 페어의 공개 키 | 키 페어의 개인 키 | ||
DECRYPT |
TRUE |
TRUE |
True는 키를 사용하여 버퍼의 암호를 해독할 수 있음을 나타냅니다. 일반적으로 가 true로 설정된 키에 FALSE 대해 이 WRAP 를 로 설정합니다. | |
DERIVE |
키를 사용하여 다른 키를 파생할 수 있습니다. | |||
ENCRYPT |
TRUE |
TRUE |
True는 키를 사용하여 버퍼를 암호화할 수 있음을 나타냅니다. | |
EXTRACTABLE |
TRUE |
TRUE |
참은 이 키를 에서 내보낼 수 있음을 나타냅니다HSM. | |
ID |
|
|
키를 식별하는 데 사용되는 사용자 정의 값입니다. | |
KEY_TYPE |
키 유형(AES, DESede, 일반 암호, EC 또는 RSA)을 식별하는 데 사용됩니다. | |||
LABEL |
에서 키를 편리하게 식별할 수 있는 사용자 정의 문자열입니다HSM. 모범 사례를 따르려면 나중에 쉽게 찾을 수 있도록 각 키에 고유한 레이블을 사용하십시오. | |||
LOCAL |
에서 생성된 키를 나타냅니다HSM. | |||
OBJECT_CLASS |
키(SecretKey, PublicKey 또는 )의 객체 클래스를 식별하는 데 사용됩니다 PrivateKey. | |||
PRIVATE |
TRUE |
TRUE |
TRUE |
True는 사용자가 인증될 때까지 사용자가 키에 액세스할 수 없음을 나타냅니다. 명확성을 기하기 위해 사용자는 이 속성이 로 설정된 경우에도 인증될 AWS CloudHSM 때까지 의 키에 액세스할 수 없습니다FALSE. |
SIGN |
TRUE |
TRUE |
True는 키를 사용하여 메시지 다이제스트에 서명할 수 있음을 나타냅니다. 이는 일반적으로 퍼블릭 키FALSE의 경우 로, 아카이브한 프라이빗 키의 경우 로 설정됩니다. | |
SIZE |
키 크기를 정의하는 속성입니다. 지원되는 키 크기에 대한 자세한 내용은 Client SDK 5에 지원되는 메커니즘을 참조하세요. | |||
TOKEN |
FALSE |
FALSE |
FALSE |
클러스터의 모든 HSMs 에 복제되고 백업에 포함되는 영구 키입니다. TOKEN = 에 대한 연결이 HSM끊어지거나 로그아웃될 때 자동으로 지워지는 임시 키를 FALSE 암시합니다. |
UNWRAP |
TRUE |
TRUE |
True는 키를 사용하여 다른 키를 언래핑(가져오기)할 수 있음을 나타냅니다. | |
VERIFY |
TRUE |
TRUE |
True는 키를 사용하여 서명을 확인할 수 있음을 나타냅니다. 이는 일반적으로 프라이빗 키에 FALSE 대해 로 설정됩니다. | |
WRAP |
TRUE |
TRUE |
True는 키를 사용하여 다른 키를 래핑할 수 있음을 나타냅니다. 일반적으로 프라이빗 키FALSE의 경우 이 값을 로 설정합니다. | |
WRAP_WITH_TRUSTED |
FALSE |
FALSE |
True는 TRUSTED 속성이 true로 설정된 키로만 키를 래핑하고 래핑을 해제할 수 있음을 나타냅니다. 키가 true로 WRAP_WITH_TRUSTED 설정되면 해당 속성은 읽기 전용이며 false로 설정할 수 없습니다. 신뢰 래핑에 대해 알아보려면 신뢰할 수 있는 키를 사용하여 키 래핑 해제 제어를 참조하세요. |
참고
PKCS#11 라이브러리의 속성에 대한 광범위한 지원을 받을 수 있습니다. 자세한 내용은 지원되는 PKCS #11 속성 을 참조하세요.
키에 대한 속성 설정
KeyAttributesMap
은 Java Map과 유사한 객체로, 키 객체에 대한 속성 값을 설정하는 데 사용할 수 있습니다. KeyAttributesMap
함수에 대한 메서드는 Java Map 조작에 사용되는 메서드와 비슷합니다.
속성에 대한 사용자 지정 값을 설정하기 위해 다음 두 가지 옵션이 제공됩니다.
다음 표에 나열된 메서드 사용
이 문서 뒷부분에 설명된 빌더 패턴 사용
속성 맵 객체는 속성을 설정하기 위한 다음과 같은 메서드를 지원합니다:
Operation | 반환 값 | KeyAttributesMap 메서드 |
---|---|---|
기존 키에 대한 키 속성 값 가져오기 | 객체(값 포함) 또는 null |
가져오기(keyAttribute) |
키 속성 하나의 값 채우기 | 키 속성과 연결된 이전 값 또는 키 속성에 대한 매핑이 없는 경우에는 null |
put(keyAttribute, 값) |
여러 키 속성에 대한 값 채우기 | N/A |
putAll(keyAttributesMap) |
속성 맵에서 키-값 페어 제거 |
키 속성과 연결된 이전 값 또는 키 속성에 대한 매핑이 없는 경우에는 null |
제거(keyAttribute) |
참고
명시적으로 지정하지 않은 속성은 지원되는 속성의 이전 표에 나열된 기본값으로 설정됩니다.
키 페어에 대한 속성 설정
Java 클래스 KeyPairAttributesMap
을 사용하여 키 페어에 대한 키 속성을 처리합니다. KeyPairAttributesMap
은 두 개의 KeyAttributesMap
객체를 캡슐화합니다. 하나는 퍼블릭 키용이고 다른 하나는 개인 키용입니다.
퍼블릭 키와 개인 키에 대해 별도로 개별 속성을 설정하려면 키의 해당하는 KeyAttributes
맵 객체에 put()
메서드를 사용하면 됩니다. getPublic()
메서드를 사용하여 공개 키에 대한 속성 맵을 검색하고 getPrivate()
을 사용하여 개인 키에 대한 속성 맵을 검색합니다. 키 페어 속성 맵에 putAll()
을 인수로 사용하여 퍼블릭 및 개인 키 페어에 대한 여러 키 속성 값을 함께 채웁니다.