CloudHSM CLI를 사용하여 RSA-PKCS로 키 래핑 해제 - AWS CloudHSM

CloudHSM CLI를 사용하여 RSA-PKCS로 키 래핑 해제

CloudHSM CLI에서 key unwrap rsa-pkcs 명령을 사용하여 RSA 프라이빗 키와 RSA-PKCS 래핑 해제 메커니즘을 사용하여 페이로드 키를 래핑 헤제합니다.

래핑되지 않은 키는 AWS CloudHSM에서 생성된 키와 동일한 방식으로 사용할 수 있습니다. 로컬에서 생성되지 않았음을 나타내기 위해 해당 local 속성은 false로 설정됩니다.

unwrap rsa-pkcs 명령을 사용하려면 AWS CloudHSM 클러스터에 RSA 퍼블릭 래핑 키의 RSA 프라이빗 키가 있어야 하며 해당 unwrap 속성을 true로 설정해야 합니다.

사용자 유형

다음 사용자 유형이 이 명령을 실행할 수 있습니다.

  • CU(Crypto User)

요구 사항

  • 이 명령을 실행하려면 CU로 로그인해야 합니다.

구문

aws-cloudhsm > help key unwrap rsa-pkcs Usage: key unwrap rsa-pkcs [OPTIONS] --filter [<FILTER>...] --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 --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로 설정된 AES 키를 사용하여 key unwrap rsa-oaep 명령을 사용하는 방법을 보여줍니다.

예: Base64 인코딩된 래핑된 키 데이터에서 페이로드 키 래핑 해제
aws-cloudhsm > key unwrap rsa-pkcs --key-type-class aes --label aes-unwrapped --filter attr.label=rsa-private-key-example --data am0Nc7+YE8FWs+5HvU7sIBcXVb24QA0l65nbNAD+1bK+e18BpSfnaI3P+r8Dp+pLu1ofoUy/vtzRjZoCiDofcz4EqCFnGl4GdcJ1/3W/5WRvMatCa2d7cx02swaeZcjKsermPXYRO1lGlfq6NskwMeeTkV8R7Rx9artFrs1y0DdIgIKVaiFHwnBIUMnlQrR2zRmMkfwU1jxMYmOYyD031F5VbnjSrhfMwkww2la7uf/c3XdFJ2+0Bo94c6og/yfPcpOOobJlITCoXhtMRepSdO4OggYq/6nUDuHCtJ86pPGnNahyr7+sAaSI3a5ECQLUjwaIARUCyoRh7EFK3qPXcg== { "error_code": 0, "data": { "key": { "key-reference": "0x00000000001c08ef", "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-pkcs --key-type-class aes --label aes-unwrapped --filter attr.label=rsa-private-key-example --data-path payload-key.pem { "error_code": 0, "data": { "key": { "key-reference": "0x00000000001c08ef", "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].

필수 항목 여부: 예

<LABEL>

래핑되지 않은 키의 레이블입니다.

필수 항목 여부: 예

<SESSION>

현재 세션에만 존재하는 세션 키를 생성합니다. 세션이 종료된 후에는 키를 복구할 수 없습니다.

필수 항목 여부: 아니요

관련 주제