KMU를 사용하여 AWS CloudHSM 키 내보내기
AWS CloudHSM key_mgmt_util에서 wrapKey 명령을 사용하여 하드웨어 보안 모듈(HSM)에서 대칭 또는 비대칭 프라이빗 키의 암호화된 복사본을 파일로 내보냅니다. wrapKey를 실행할 때 내보낼 키, 내보내려는 키를 암호화(래핑)할 HSM의 키, 출력 파일을 지정합니다.
wrapKey
명령은 지정한 파일에 암호화된 키를 작성하지만, HSM에서 키를 제거하거나 암호화 작업에서 사용하지 못하게 할 수는 없습니다. 동일한 키를 여러 번 내보낼 수 있습니다.
키 소유자, 즉 키를 생성한 CU(Crypto User)만 키를 내보낼 수 있습니다. 키를 공유하는 사용자는 해당 키를 암호화 작업에 사용할 수 있지만 내보낼 수는 없습니다.
암호화된 키를 다시 HSM으로 가져오려면 unWrapKey를 사용합니다. 일반 텍스트 키를 HSM에서 내보내려면 exSymKey 또는 exportPrivateKey를 적절하게 사용합니다. aesWrapUnwrap 명령은 wrapKey가 암호화한 키를 암호 해독(언래핑)할 수 없습니다.
key_mgmt_util 명령을 실행하기 전에 먼저 key_mgmt_util을 시작하고 HSM에 Crypto User(CU)로 로그인해야 합니다.
구문
wrapKey -h wrapKey -k
<exported-key-handle>
-w<wrapping-key-handle>
-out<output-file>
[-m<wrapping-mechanism>
] [-aad<additional authenticated data filename>
] [-t<hash-type>
] [-noheader] [-i<wrapping IV>
] [-iv_file<IV file>
] [-tag_size<num_tag_bytes>>
]
예
이 명령은 192비트 Triple DES(3DES) 대칭 키(키 핸들 7
)를 내보냅니다. 이 명령은 HSM의 256비트 AES 키(키 핸들 14
)를 사용하여 키 7
을 래핑합니다. 그런 다음 암호화된 3DES 키를 3DES-encrypted.key
파일에 씁니다.
출력은 키 7
(3DES 키)가 성공적으로 래핑되고 지정된 파일에 기록된 것을 보여 줍니다. 암호화된 키는 길이가 307바이트입니다.
Command:
wrapKey -k 7 -w 14 -out 3DES-encrypted.key -m 4
Key Wrapped. Wrapped Key written to file "3DES-encrypted.key length 307 Cfm2WrapKey returned: 0x00 : HSM Return: SUCCESS
파라미터
- -h
-
명령에 대한 도움말을 표시합니다.
필수 항목 여부: 예
- -k
-
내보낼 키의 키 핸들. 소유하는 대칭 또는 프라이빗 키의 키 핸들을 입력합니다. 키 핸들을 찾으려면 findKey 명령을 사용하십시오.
키를 내보낼 수 있는지 확인하려면 getAttribute 명령을 사용하여 상수
354
로 표시되는OBJ_ATTR_EXTRACTABLE
속성의 값을 가져옵니다. 키 속성 해석에 대한 도움말은 KMU용 AWS CloudHSM 키 속성 참조 섹션을 참조하십시오.본인이 소유한 키만 내보낼 수 있습니다. 키의 소유자를 찾으려면 getKeyInfo 명령을 사용합니다.
필수 항목 여부: 예
- -w
-
래핑 키를 지정합니다. HSM에서 AES 키 또는 RSA 키의 키 핸들을 입력합니다. 이 파라미터는 필수 사항입니다. 키 핸들을 찾으려면 findKey 명령을 사용하십시오.
래핑 키를 생성하려면 genSymKey를 사용하여 AES 키를 생성하거나(유형 31) genRSAKeyPair를 사용하여 RSA 키 페어를 생성합니다(유형 0). RSA 키 페어를 사용하는 경우 키 중 하나로 키를 래핑하고 다른 키로 언래핑해야 합니다. 키를 래핑 키로 사용할 수 있는지 확인하려면 getAttribute를 사용하여
262
라는 상수로 표시되는OBJ_ATTR_WRAP
속성의 값을 가져옵니다.필수 항목 여부: 예
- -out
-
출력 파일의 경로 및 이름입니다. 명령이 성공하면 이 파일이 내보낸 키의 암호화된 사본을 포함합니다. 파일이 이미 존재하는 경우, 이 명령은 경고 없이 파일에 덮어씁니다.
필수 항목 여부: 예
- -m
-
래핑 메커니즘을 나타내는 값입니다. CloudHSM은 다음과 같은 메커니즘을 지원합니다.
메커니즘 값 AES_KEY_WRAP_PAD_PKCS5
4 NIST_AES_WRAP_NO_PAD
5 NIST_AES_WRAP_PAD
6 RSA_AES
7 RSA_OAEP
(최대 데이터 크기는 이 섹션 뒷부분의 참고 사항 참조)8 AES_GCM
10 CLOUDHSM_AES_GCM
11 RSA_PKCS
(최대 데이터 크기는 이 섹션 뒷부분의 참고 사항을 참조하십시오). 예정된 변경 사항은 1 아래 참고를 참조하세요.12 필수 항목 여부: 예
참고
RSA_OAEP
래핑 메커니즘을 사용할 때 래핑할 수 있는 최대 키 크기는 RSA 키의 모듈 및 지정된 해시 길이로 결정됩니다(예: 최대 키 크기 = (modulusLengthInBytes-2*hashLengthInBytes-2)).RSA_PKCS 래핑 메커니즘을 사용할 때 래핑할 수 있는 최대 키 크기는 RSA 키의 모듈러스로 결정됩니다(예: 최대 키 크기 = (modulusLengthInBytes -11).
- -t
-
해시 알고리즘을 나타내는 값입니다. CloudHSM은 다음 알고리즘을 지원합니다.
해시 알고리즘 값 SHA1
2 SHA256
3 SHA384
4 SHA512
5 SHA224
(RSA_AES
및RSA_OAEP
메커니즘에 대해 유효함)6 필수 항목 여부: 아니요
- -aad
AAD
를 포함하는 파일 이름입니다.참고
AES_GCM
및CLOUDHSM_AES_GCM
메커니즘에만 유효합니다.필수 항목 여부: 아니요
- -noheader
-
CloudHSM 관련 키 속성을 지정하는 헤더를 생략합니다. key_mgmt_util 외부의 도구를 사용하여 키의 래핑을 해제하려는 경우에만 이 파라미터를 사용하십시오.
필수 항목 여부: 아니요
- -i
초기화 벡터(IV)(16진수 값) 입니다.
참고
CLOUDHSM_AES_KEY_WRAP
및NIST_AES_WRAP
메커니즘에 대한-noheader
파라미터와 함께 전달된 경우에만 유효합니다.필수 항목 여부: 아니요
- -iv_file
응답으로 얻은 IV 값을 쓰려는 파일입니다.
참고
AES_GCM
메커니즘에 대한-noheader
파라미터와 함께 전달된 경우에만 유효합니다.필수 항목 여부: 아니요
- -tag_size
래핑된 blob와 함께 저장할 태그의 크기입니다.
참고
AES_GCM
및CLOUDHSM_AES_GCM
메커니즘에 대한-noheader
파라미터와 함께 전달된 경우에만 유효합니다. 최소 태그 크기는 8입니다.필수 항목 여부: 아니요
[1] NIST 지침에 따라 2023년 이후 FIPS 모드의 클러스터에는 허용되지 않습니다. 비 FIPS 모드의 클러스터의 경우 2023년 이후에도 허용됩니다. 세부 정보는 FIPS 140 규정 준수: 2024 메커니즘 지원 중단를 참조하세요.