CloudHSM CLI를 사용하여 RSA-OAEP로 키 래핑 해제
CloudHSM CLI에서 key unwrap rsa-oaep 명령을 사용하여 RSA 프라이빗 키와 RSA-OAEP
래핑 해제 메커니즘을 사용하여 페이로드 키를 래핑 헤제합니다.
래핑되지 않은 키는 AWS CloudHSM에서 생성된 키와 동일한 방식으로 사용할 수 있습니다. 로컬에서 생성되지 않았음을 나타내기 위해 해당 local
속성은 false
로 설정됩니다.
key unwrap rsa-oaep 명령을 사용하려면 AWS CloudHSM 클러스터에 RSA 퍼블릭 래핑 키의 RSA 프라이빗 키가 있어야 하며 해당 unwrap
속성을 true
로 설정해야 합니다.
사용자 유형
다음 사용자 유형이 이 명령을 실행할 수 있습니다.
-
CU(Crypto User)
요구 사항
-
이 명령을 실행하려면 CU로 로그인해야 합니다.
구문
aws-cloudhsm >
help key unwrap rsa-oaep
Usage: key unwrap rsa-oaep [OPTIONS] --filter [
<FILTER>
...] --hash-function<HASH_FUNCTION>
--mgf<MGF>
--key-type-class<KEY_TYPE_CLASS>
--label<LABEL>
<--data-path<DATA_PATH>
|--data<DATA>
> Options: --cluster-id<CLUSTER_ID>
Unique Id to choose which of the clusters in the config file to run the operation against. If not provided, will fall back to the value provided when interactive mode was started, or error --filter [<FILTER>
...] Key reference (e.g. key-reference=0xabc) or space separated list of key attributes in the form of attr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE to select a key to unwrap with --data-path<DATA_PATH>
Path to the binary file containing the wrapped key data --data<<DATA>
Base64 encoded wrapped key data --attributes [<UNWRAPPED_KEY_ATTRIBUTES>
...] Space separated list of key attributes in the form of KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE for the unwrapped key --hash-function<HASH_FUNCTION>
Hash algorithm [possible values: sha1, sha224, sha256, sha384, sha512] --mgf<MGF>
Mask Generation Function algorithm [possible values: mgf1-sha1, mgf1-sha224, mgf1-sha256, mgf1-sha384, mgf1-sha512] --key-type-class<KEY_TYPE_CLASS>
Key type and class of wrapped key [possible values: aes, des3, ec-private, generic-secret, rsa-private] --label<LABEL>
Label for the unwrapped key --session Creates a session key that exists only in the current session. The key cannot be recovered after the session ends -h, --help Print help
예시
이 예제에서는 unwrap
속성 값이 true
로 설정된 RSA 프라이빗 키를 사용하여 key unwrap rsa-oaep 명령을 사용하는 방법을 보여줍니다.
예: Base64 인코딩된 래핑된 키 데이터에서 페이로드 키 래핑 해제
aws-cloudhsm >
key unwrap rsa-oaep --key-type-class aes --label aes-unwrapped --filter attr.label=rsa-private-example-key --hash-function sha256 --mgf mgf1-sha256 --data OjJe4msobPLz9TuSAdULEu17T5rMDWtSlLyBSkLbaZnYzzpdrhsbGLbwZJCtB/jGkDNdB4qyTAOQwEpggGf6v+Yx6JcesNeKKNU8XZal/YBoHC8noTGUSDI2qr+u2tDc84NPv6d+F2KOONXsSxMhmxzzNG/gzTVIJhOuy/B1yHjGP4mOXoDZf5+7f5M1CjxBmz4Vva/wrWHGCSG0yOaWblEvOiHAIt3UBdyKmU+/My4xjfJv7WGGu3DFUUIZ06TihRtKQhUYU1M9u6NPf9riJJfHsk6QCuSZ9yWThDT9as6i7e3htnyDhIhGWaoK8JU855cN/YNKAUqkNpC4FPL3iw==
{ "data": { "key": { "key-reference": "0x00000000001808e9", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "aes", "label": "aes-unwrapped", "id": "0x", "check-value": "0x8d9099", "class": "secret-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": false, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 16 } } } }
예: 데이터 경로를 통해 제공된 페이로드 키 래핑 해제
aws-cloudhsm >
key unwrap rsa-oaep --key-type-class aes --label aes-unwrapped --filter attr.label=rsa-private-example-key --hash-function sha256 --mgf mgf1-sha256 --data-path payload-key.pem
{ "error_code": 0, "data": { "key": { "key-reference": "0x00000000001808e9", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "aes", "label": "aes-unwrapped", "id": "0x", "check-value": "0x8d9099", "class": "secret-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": false, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 16 } } } }
인수
<CLUSTER_ID>
-
이 작업을 실행할 클러스터의 ID입니다.
필수: 여러 클러스터가 구성된 경우.
<FILTER>
-
키 참조(예:
key-reference=0xabc
) 또는 래핑 해제할 키를 선택할 수 있는attr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
형식의 키 속성의 공백으로 구분된 목록입니다.필수 항목 여부: 예
<DATA_PATH>
-
래핑된 키 데이터가 포함된 이진 파일의 경로입니다.
필수: 예(Base64 인코딩 데이터를 통해 제공되지 않는 경우)
<DATA>
-
Base64 인코딩된 래핑된 키 데이터입니다.
필수: 예(데이터 경로를 통해 제공되지 않는 경우)
<ATTRIBUTES>
-
래핑된 키에 대해
KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
의 형식으로 된 키 속성의 공백으로 구분된 목록입니다.필수 항목 여부: 아니요
<KEY_TYPE_CLASS>
-
래핑된 키의 키 유형 및 클래스[가능한 값:
aes
,des3
,ec-private
,generic-secret
,rsa-private
].필수 항목 여부: 예
<HASH_FUNCTION>
-
해시 함수를 지정합니다.
유효한 값:
sha1
sha224
sha256
sha384
sha512
필수 항목 여부: 예
<MGF>
-
마스크 생성 함수를 지정합니다.
참고
마스크 생성 함수 해시 함수는 서명 메커니즘 해시 함수와 일치해야 합니다.
유효한 값:
mgf1-sha1
mgf1-sha224
mgf1-sha256
mgf1-sha384
mgf1-sha512
필수 항목 여부: 예
<LABEL>
-
래핑되지 않은 키의 레이블입니다.
필수 항목 여부: 예
<SESSION>
-
현재 세션에만 존재하는 세션 키를 생성합니다. 세션이 종료된 후에는 키를 복구할 수 없습니다.
필수 항목 여부: 아니요