기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
키 가져오기
중요
예를 들어 최신 버전의 AWS CLI V2가 필요합니다. 시작하기 전에 최신 버전으로 업그레이드했는지 확인합니다.
목차
대칭 키 가져오기
비대칭 기법을 사용한 키 가져오기(TR-34)

TR-34는 RSA 비대칭 암호화를 사용하여 교환을 위해 대칭 키를 암호화하고 서명합니다. 이렇게 하면 래핑된 키의 기밀성(암호화)과 무결성(서명)이 모두 보장됩니다.
자체 키를 가져오려면 GitHub
-
가져오기 초기화 명령을 호출합니다.
get-parameters-for-import
를 호출하여 가져오기 프로세스를 초기화합니다. 이 API는 키 가져오기를 위한 키 페어를 생성하고, 키에 서명하고, 인증서 및 인증서 루트를 반환합니다. 이 키를 사용하여 내보낼 키를 암호화합니다. TR-34 용어로는 이를 KRD 인증서라고 합니다. 이러한 인증서는 base64로 인코딩되고 수명이 짧으며이 용도로만 사용됩니다.ImportToken
값을 저장합니다.$
aws payment-cryptography get-parameters-for-import \
--key-material-type
TR34_KEY_BLOCK \--wrapping-key-algorithm
RSA_2048{ "ImportToken": "import-token-bwxli6ocftypneu5", "ParametersValidUntilTimestamp": 1698245002.065, "WrappingKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0....", "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0....", "WrappingKeyAlgorithm": "RSA_2048" }
-
키 소스 시스템에 퍼블릭 인증서 설치
대부분의 HSMs에서는 1단계에서 생성된 퍼블릭 인증서를 설치, 로드 또는 신뢰하여 이를 사용하여 키를 내보내야 합니다. 여기에는 HSM에 따라 전체 인증서 체인 또는 1단계의 루트 인증서만 포함될 수 있습니다.
-
소스 시스템에서 키 페어를 생성하고 AWS Payment Cryptography에 인증서 체인 제공
전송된 페이로드의 무결성을 보장하기 위해 전송 당사자(키 배포 호스트 또는 KDH)가 페이로드에 서명합니다. 이를 위해 퍼블릭 키를 생성하고 퍼블릭 키 인증서(X509)를 생성하여 AWS Payment Cryptography에 다시 제공합니다.
HSM에서 키를 전송할 때 해당 HSM에 키 페어를 생성합니다. HSM, 타사 또는와 같은 서비스가 인증서를 생성할 AWS Private CA 수 있습니다.
KeyMaterialType이
RootCertificatePublicKey
이고 KeyUsageType이 인importKey
명령을 사용하여 루트 인증서를 AWS Payment Cryptography에 로드합니다TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE
.중간 인증서의 경우
importKey
명령을의 KeyMaterialTypeTrustedCertificatePublicKey
및의 KeyUsageType과 함께 사용합니다TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE
. 여러 중간 인증서에 대해이 프로세스를 반복합니다. 체인에서 마지막으로 가져온 인증서KeyArn
의를 후속 가져오기 명령에 대한 입력으로 사용합니다.참고
리프 인증서를 가져오지 마십시오. 가져오기 명령 중에 직접 제공합니다.
-
소스 시스템에서 키 내보내기
많은 HSMs 및 관련 시스템은 TR-34 표준을 사용하여 키 내보내기를 지원합니다. 1단계의 퍼블릭 키를 KRD(암호화) 인증서로 지정하고 3단계의 키를 KDH(서명) 인증서로 지정합니다. AWS Payment Cryptography로 가져오려면 형식을 TR-34.2012 비CMS 투 패스 형식으로 지정합니다.이 형식을 TR-34 Diebold 형식이라고도 합니다.
-
호출 가져오기 키
KeyMaterialType이 인 importKey API를 호출합니다
TR34_KEY_BLOCK
. 에 대해 3단계에서 가져온 마지막 CA의 keyARNcertificate-authority-public-key-identifier
,에 대해 4단계의 래핑된 키 구성 요소key-material
,에 대해 3단계의 리프 인증서를 사용합니다signing-key-certificate
. 1단계의 import-token을 포함합니다.$
aws payment-cryptography import-key \
--key-material
='{"Tr34KeyBlock
": { \ "CertificateAuthorityPublicKeyIdentifier
": "arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl", \ "ImportToken
": "import-token-bwxli6ocftypneu5", \ "KeyBlockFormat
": "X9_TR34_2012", \ "SigningKeyCertificate
": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJ...", \ "WrappedKeyBlock
": "308205A106092A864886F70D010702A08205923082058E020101310D300B0609608648016503040201308203..."} \ }'{ "Key": { "CreateTimestamp": "2023-06-13T16:52:52.859000-04:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza", "KeyAttributes": { "KeyAlgorithm": "TDES_3KEY", "KeyClass": "SYMMETRIC_KEY", "KeyModesOfUse": { "Decrypt": true, "DeriveKey": false, "Encrypt": true, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": true, "Verify": false, "Wrap": true }, "KeyUsage": "TR31_K1_KEY_ENCRYPTION_KEY" }, "KeyCheckValue": "CB94A2", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2023-06-13T16:52:52.859000-04:00" } }
-
암호화 작업 또는 후속 가져오기에 가져온 키 사용
가져온 KeyUsage가 TR31_K0_KEY_ENCRYPTION_KEY인 경우 TR-31을 사용하여 후속 키 가져오기에이 키를 사용할 수 있습니다. 다른 키 유형(예: TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY)의 경우 키를 암호화 작업에 직접 사용할 수 있습니다.
비대칭 기법(ECDH)을 사용하여 키 가져오기

타원 곡선 Diffie-Hellman(ECDH)은 ECC 비대칭 암호화를 사용하여 사전 교환된 키 없이 두 당사자 간에 공유 키를 설정합니다. ECDH 키는 임시 키이므로 AWS Payment Cryptography는 키를 저장하지 않습니다. 이 프로세스에서 일회성 KBPK/KEK는 ECDH를 사용하여 파생됩니다. 파생된 키는 전송하려는 실제 키를 래핑하는 데 즉시 사용되며, 이는 다른 KBPK, IPEK 키 또는 기타 키 유형일 수 있습니다.
가져올 때 전송 시스템을 일반적으로 당사자 U(이니시에이터)라고 하고 AWS Payment Cryptography를 당사자 V(응답자)라고 합니다.
참고
ECDH를 사용하여 모든 대칭 키 유형을 교환할 수 있지만 AES-256 키를 안전하게 전송할 수 있는 유일한 접근 방식입니다.
-
ECC 키 페어 생성
를 호출
create-key
하여이 프로세스에 대한 ECC 키 페어를 생성합니다. 이 API는 키 가져오기 또는 내보내기를 위한 키 페어를 생성합니다. 생성 시이 ECC 키를 사용하여 파생할 수 있는 키 종류를 지정합니다. ECDH를 사용하여 다른 키를 교환(래핑)할 때는 값을 사용합니다TR31_K1_KEY_BLOCK_PROTECTION_KEY
.참고
하위 수준 ECDH는 어떤 목적으로든 사용할 수 있는 파생 키를 생성하지만 AWS Payment Cryptography는 키를 단일 파생 키 유형에만 사용할 수 있도록 허용하여 여러 목적으로 키를 실수로 재사용하는 것을 제한합니다.
$
aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=ECC_NIST_P256,KeyUsage=TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT,KeyClass=ASYMMETRIC_KEY_PAIR,KeyModesOfUse='{DeriveKey=true}' --derive-key-usage "TR31_K1_KEY_BLOCK_PROTECTION_KEY"
{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv", "KeyAttributes": { "KeyUsage": "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "KeyClass": "ASYMMETRIC_KEY_PAIR", "KeyAlgorithm": "ECC_NIST_P256", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": false, "Sign": false, "Verify": false, "DeriveKey": true, "NoRestrictions": false } }, "KeyCheckValue": "2432827F", "KeyCheckValueAlgorithm": "CMAC", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2025-03-28T22:03:41.087000-07:00", "UsageStartTimestamp": "2025-03-28T22:03:41.068000-07:00" } }
-
퍼블릭 키 인증서 가져오기
를 호출
get-public-key-certificate
하여 특정 리전의 AWS Payment Cryptography 전용 계정 CA에서 서명한 X.509 인증서로 퍼블릭 키를 수신합니다.$
aws payment-cryptography get-public-key-certificate \
--key-identifier
arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }
-
상대방 시스템에 퍼블릭 인증서 설치(당사자 U)
HSMs 많으면 1단계에서 생성된 퍼블릭 인증서를 설치, 로드 또는 신뢰하여 이를 사용하여 키를 내보내야 합니다. 여기에는 HSM에 따라 전체 인증서 체인 또는 1단계의 루트 인증서만 포함될 수 있습니다. 자세한 내용은 HSM 설명서를 참조하세요.
-
소스 시스템에서 ECC 키 페어를 생성하고 AWS Payment Cryptography에 인증서 체인 제공
ECDH에서 각 당사자는 키 페어를 생성하고 공통 키에 동의합니다. AWS Payment Cryptography에서 키를 추출하려면 상대방의 퍼블릭 키가 X.509 퍼블릭 키 형식으로 필요합니다.
HSM에서 키를 전송할 때 해당 HSM에 키 페어를 생성합니다. 키 블록HSMs의 경우 키 헤더는와 비슷합니다
D0144K3EX00E0000
. 인증서를 생성할 때 일반적으로 HSM에서 CSR을 생성한 다음 HSM, 타사 또는와 같은 서비스가 인증서를 생성할 AWS Private CA 수 있습니다.KeyMaterialType이
RootCertificatePublicKey
이고 KeyUsageType이 인importKey
명령을 사용하여 루트 인증서를 AWS Payment Cryptography에 로드합니다TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE
.중간 인증서의 경우
importKey
명령을의 KeyMaterialTypeTrustedCertificatePublicKey
및의 KeyUsageType과 함께 사용합니다TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE
. 여러 중간 인증서에 대해이 프로세스를 반복합니다. 체인에서 마지막으로 가져온 인증서KeyArn
의를 후속 가져오기 명령에 대한 입력으로 사용합니다.참고
리프 인증서를 가져오지 마십시오. 가져오기 명령 중에 직접 제공합니다.
-
당사자 U HSM에서 ECDH를 사용하여 일회성 키 생성
많은 HSMs 및 관련 시스템은 ECDH를 사용한 키 설정을 지원합니다. 1단계의 퍼블릭 키를 퍼블릭 키로 지정하고 3단계의 키를 프라이빗 키로 지정합니다. 파생 방법과 같은 허용 가능한 옵션은 API 가이드를 참조하세요.
참고
해시 유형과 같은 파생 파라미터는 양쪽에서 정확히 일치해야 합니다. 그렇지 않으면 다른 키를 생성합니다.
-
소스 시스템에서 키 내보내기
마지막으로 표준 TR-31 명령을 사용하여 AWS Payment Cryptography로 전송할 키를 내보냅니다. ECDH 파생 키를 KBPK로 지정합니다. 내보낼 키는 TR-31 유효 조합이 적용되는 모든 TDES 또는 AES 키일 수 있습니다. 단, 래핑 키가 내보낼 키만큼 강력해야 합니다.
-
호출 가져오기 키
KeyMaterialType이 인
import-key
API를 호출합니다DiffieHellmanTr31KeyBlock
. 에 대해 3단계에서 가져온 마지막 CA의 KeyARNcertificate-authority-public-key-identifier
,에 대해 4단계의 래핑된 키 구성 요소key-material
,에 대해 3단계의 리프 인증서를 사용합니다public-key-certificate
. 1단계의 프라이빗 키 ARN을 포함합니다.$
aws payment-cryptography import-key \
--key-material
='{ "DiffieHellmanTr31KeyBlock": { "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/swseahwtq2oj6zi5", "DerivationData": { "SharedInformation": "1234567890" }, "DeriveKeyAlgorithm": "AES_256", "KeyDerivationFunction": "NIST_SP800", "KeyDerivationHashAlgorithm": "SHA_256", "PrivateKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv", "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN....", "WrappedKeyBlock": "D0112K1TB00E0000D603CCA8ACB71517906600FF8F0F195A38776A7190A0EF0024F088A5342DB98E2735084A7841CB00E16D373A70857E9A" } }'{ "Key": { "CreateTimestamp": "2025-03-13T16:52:52.859000-04:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza", "KeyAttributes": { "KeyAlgorithm": "TDES_3KEY", "KeyClass": "SYMMETRIC_KEY", "KeyModesOfUse": { "Decrypt": true, "DeriveKey": false, "Encrypt": true, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": true, "Verify": false, "Wrap": true }, "KeyUsage": "TR31_K1_KEY_ENCRYPTION_KEY" }, "KeyCheckValue": "CB94A2", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2025-03-13T16:52:52.859000-04:00" } }
-
암호화 작업 또는 후속 가져오기에 가져온 키 사용
가져온 KeyUsage가 TR31_K0_KEY_ENCRYPTION_KEY인 경우 TR-31을 사용하여 후속 키 가져오기에이 키를 사용할 수 있습니다. 다른 키 유형(예: TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY)의 경우 키를 암호화 작업에 직접 사용할 수 있습니다.
비대칭 기법을 사용하여 키 가져오기(RSA 언래핑)
개요: AWS Payment Cryptography는 TR-34를 사용할 수 없는 경우 키 교환을 위해 RSA 래핑/언래핑을 지원합니다. TR-34와 마찬가지로이 기법은 RSA 비대칭 암호화를 사용하여 교환을 위한 대칭 키를 암호화합니다. 그러나 TR-34와 달리이 메서드에는 전송 당사자가 페이로드에 서명하지 않습니다. 또한이 RSA 래핑 기법은 키 블록을 포함하지 않으므로 전송 중에 키 메타데이터의 무결성을 유지하지 않습니다.
참고
RSA 랩을 사용하여 TDES 및 AES-128 키를 가져오거나 내보낼 수 있습니다.
-
가져오기 초기화 명령을 호출합니다.
를 호출get-parameters-for-import하여
KeyMaterialType
의 로 가져오기 프로세스를 초기화합니다KEY_CRYPTOGRAM
. TDES 키를 교환할WrappingKeyAlgorithm
때에RSA_2048
를 사용합니다. TDESRSA_3072
또는 AES-128 키를 교환RSA_4096
할 때 또는를 사용합니다. 이 API는 키 가져오기를 위한 키 페어를 생성하고, 인증서 루트를 사용하여 키에 서명하고, 인증서 루트와 인증서 루트를 모두 반환합니다. 이 키를 사용하여 내보낼 키를 암호화합니다. 이러한 인증서는 수명이 짧으며이 용도로만 사용됩니다.$
aws payment-cryptography get-parameters-for-import \
--key-material-type
KEY_CRYPTOGRAM \--wrapping-key-algorithm
RSA_4096{ "ImportToken": "import-token-bwxli6ocftypneu5", "ParametersValidUntilTimestamp": 1698245002.065, "WrappingKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0....", "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0....", "WrappingKeyAlgorithm": "RSA_4096" }
-
키 소스 시스템에 퍼블릭 인증서 설치
HSMs 많은 경우 1단계에서 생성된 퍼블릭 인증서(및/또는 루트)를 설치, 로드 또는 신뢰하여 이를 사용하여 키를 내보내야 합니다.
-
소스 시스템에서 키 내보내기
많은 HSMs 및 관련 시스템은 RSA 랩을 사용하여 키 내보내기를 지원합니다. 1단계의 퍼블릭 키를 암호화 인증서(
WrappingKeyCertificate
)로 지정합니다. 신뢰 체인이 필요한 경우 1단계WrappingKeyCertificateChain
의를 사용합니다. HSM에서 키를 내보낼 때 패딩 모드 = PKCS#1 v2.2 OAEP(SHA 256 또는 SHA 512 사용)를 사용하여 형식을 RSA로 지정합니다. -
호출 import-key
의를 사용하여 import-key API를 호출
KeyMaterialType
합니다KeyMaterial
. 1단계ImportToken
의와 3단계의key-material
(래핑된 키 구성 요소)가 필요합니다. RSA 랩은 키 블록을 사용하지 않으므로 키 파라미터(예: 키 사용)를 제공합니다.$
cat import-key-cryptogram.json
{ "KeyMaterial": { "KeyCryptogram": { "Exportable": true, "ImportToken": "import-token-bwxli6ocftypneu5", "KeyAttributes": { "KeyAlgorithm": "AES_128", "KeyClass": "SYMMETRIC_KEY", "KeyModesOfUse": { "Decrypt": true, "DeriveKey": false, "Encrypt": true, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": true, "Verify": false, "Wrap": true }, "KeyUsage": "TR31_K0_KEY_ENCRYPTION_KEY" }, "WrappedKeyCryptogram": "18874746731....", "WrappingSpec": "RSA_OAEP_SHA_256" } } }
$
aws payment-cryptography import-key
--cli-input-json
file://import-key-cryptogram.json{ "Key": { "KeyOrigin": "EXTERNAL", "Exportable": true, "KeyCheckValue": "DA1ACF", "UsageStartTimestamp": 1697643478.92, "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h", "CreateTimestamp": 1697643478.92, "KeyState": "CREATE_COMPLETE", "KeyAttributes": { "KeyAlgorithm": "AES_128", "KeyModesOfUse": { "Encrypt": true, "Unwrap": true, "Verify": false, "DeriveKey": false, "Decrypt": true, "NoRestrictions": false, "Sign": false, "Wrap": true, "Generate": false }, "KeyUsage": "TR31_K0_KEY_ENCRYPTION_KEY", "KeyClass": "SYMMETRIC_KEY" }, "KeyCheckValueAlgorithm": "CMAC" } }
-
암호화 작업 또는 후속 가져오기에 가져온 키 사용
가져온이
TR31_K0_KEY_ENCRYPTION_KEY
또는KeyUsage
인 경우 TR-31을 사용한 후속 키 가져오기에이 키를 사용할TR31_K1_KEY_BLOCK_PROTECTION_KEY
수 있습니다. 키 유형이 다른 유형(예:TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY
)인 경우 키를 암호화 작업에 직접 사용할 수 있습니다.
사전 설정된 키 교환 키(TR-31)를 사용하여 대칭 키를 가져옵니다.

여러 키를 교환하거나 키 교체를 지원할 때 파트너는 일반적으로 먼저 초기 키 암호화 키(KEK)를 교환합니다. 이 작업은 종이 키 구성 요소와 같은 기술을 사용하거나 AWS Payment Cryptography의 경우 TR-34를 사용하여 수행할 수 있습니다.
KEK를 설정한 후 이를 사용하여 후속 키(다른 KEKs. AWS Payment Cryptography는 HSM 공급업체에서 널리 사용되고 지원하는 ANSI TR-31을 사용하여이 키 교환을 지원합니다.
-
키 암호화 키 가져오기(KEK)
KEK를 이미 가져왔고 keyARN(또는 keyAlias)을 사용할 수 있는지 확인합니다.
-
소스 플랫폼에서 키 생성
키가 없는 경우 소스 플랫폼에서 생성합니다. 또는 AWS Payment Cryptography에서 키를 생성하고 export 명령을 사용할 수 있습니다.
-
소스 플랫폼에서 키 내보내기
내보낼 때 내보내기 형식을 TR-31로 지정합니다. 소스 플랫폼은 내보낼 키와 사용할 키 암호화 키를 요청합니다.
-
AWS Payment Cryptography로 가져오기
import-key 명령을 호출할 때에 대한 키 암호화 키의 keyARN(또는 별칭)을 사용합니다
WrappingKeyIdentifier
. 에 대한 소스 플랫폼의 출력을 사용합니다WrappedKeyBlock
.$
aws payment-cryptography import-key \
--key-material
='{"Tr31KeyBlock
": { \ "WrappingKeyIdentifier
": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza", \ "WrappedKeyBlock
": "D0112B0AX00E00002E0A3D58252CB67564853373D1EBCC1E23B2ADE7B15E967CC27B85D5999EF58E11662991FF5EB1381E987D744334B99D"} \ }'{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h", "KeyAttributes": { "KeyUsage": "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY", "KeyClass": "SYMMETRIC_KEY", "KeyAlgorithm": "AES_128", "KeyModesOfUse": { "Encrypt": true, "Decrypt": true, "Wrap": true, "Unwrap": true, "Generate": false, "Sign": false, "Verify": false, "DeriveKey": false, "NoRestrictions": false } }, "KeyCheckValue": "0A3674", "KeyCheckValueAlgorithm": "CMAC", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "EXTERNAL", "CreateTimestamp": "2023-06-02T07:38:14.913000-07:00", "UsageStartTimestamp": "2023-06-02T07:38:14.857000-07:00" } }
비대칭(RSA, ECC) 퍼블릭 키 가져오기
가져온 모든 인증서는 최소한 체인의 발급(이전) 인증서만큼 강력해야 합니다. 즉, RSA_2048 CA는 RSA_2048 리프 인증서를 보호하는 데만 사용할 수 있으며 ECC 인증서는 동등한 강도의 다른 ECC 인증서로 보호해야 합니다. ECC P384 인증서는 P384 또는 P521 CA에서만 발급할 수 있습니다. 모든 인증서는 가져올 때 만료되지 않아야 합니다.
RSA 퍼블릭 키 가져오기
AWS Payment Cryptography는 퍼블릭 RSA 키를 X.509 인증서로 가져오는 것을 지원합니다. 인증서를 가져오려면 먼저 루트 인증서를 가져옵니다. 모든 인증서는 가져올 때 만료되지 않아야 합니다. 인증서는 PEM 형식이어야 하며 base64로 인코딩되어야 합니다.
-
루트 인증서를 AWS Payment Cryptography로 가져오기
루트 인증서를 가져오려면 다음 명령을 사용합니다.
$
aws payment-cryptography import-key \
--key-material
='{"RootCertificatePublicKey
": { \ "KeyAttributes
": { \ "KeyAlgorithm
": "RSA_2048", \ "KeyClass
": "PUBLIC_KEY", \ "KeyModesOfUse
": { \ "Verify
": true}, \ "KeyUsage
": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \ "PublicKeyCertificate
": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURKVENDQWcyZ0F3SUJBZ0lCWkRBTkJna3Foa2lHOXcwQkFR..."} \ }'{ "Key": { "CreateTimestamp": "2023-08-08T18:52:01.023000+00:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl", "KeyAttributes": { "KeyAlgorithm": "RSA_2048", "KeyClass": "PUBLIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE" }, "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2023-08-08T18:52:01.023000+00:00" } }
-
퍼블릭 키 인증서를 AWS Payment Cryptography로 가져오기
이제 퍼블릭 키를 가져올 수 있습니다. TR-34와 ECDH는 런타임에 리프 인증서를 전달하는 데 의존하므로이 옵션은 다른 시스템의 퍼블릭 키를 사용하여 데이터를 암호화할 때만 사용됩니다. KeyUsage는 TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION으로 설정됩니다.
$
aws payment-cryptography import-key \
--key-material
='{"Tr31KeyBlock
": { \ "WrappingKeyIdentifier
": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza", \ "WrappedKeyBlock
": "D0112B0AX00E00002E0A3D58252CB67564853373D1EBCC1E23B2ADE7B15E967CC27B85D5999EF58E11662991FF5EB1381E987D744334B99D"} \ }'{ "Key": { "CreateTimestamp": "2023-08-08T18:55:46.815000+00:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/4kd6xud22e64wcbk", "KeyAttributes": { "KeyAlgorithm": "RSA_4096", "KeyClass": "PUBLIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE" }, "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2023-08-08T18:55:46.815000+00:00" } }
ECC 퍼블릭 키 가져오기
AWS Payment Cryptography는 퍼블릭 ECC 키를 X.509 인증서로 가져오는 것을 지원합니다. 인증서를 가져오려면 먼저 루트 CA 인증서와 중간 인증서를 가져옵니다. 모든 인증서는 가져올 때 만료되지 않아야 합니다. 인증서는 PEM 형식이어야 하며 base64로 인코딩되어야 합니다.
-
AWS Payment Cryptography로 ECC 루트 인증서 가져오기
루트 인증서를 가져오려면 다음 명령을 사용합니다.
$
aws payment-cryptography import-key \
--key-material
='{"RootCertificatePublicKey
": { \ "KeyAttributes
": { \ "KeyAlgorithm
": "ECC_NIST_P521", \ "KeyClass
": "PUBLIC_KEY", \ "KeyModesOfUse
": { \ "Verify
": true}, \ "KeyUsage
": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \ "PublicKeyCertificate
": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNQekNDQWFDZ0F3SUJBZ0lDSjNVd0NnWUlLb1pJemowRUF3UXdNakVlTUJ3R0ExVUVDd3dWVTJWc1psTnAKWjI1bFpFTmxjblJwWm1sallYUmxNUkF3RGdZRFZRUUREQWRMUkVnZ1EwRXhNQjRYRFRJMU1ETXlPREF3TURBdwpNRm9YRFRJMk1ETXlPREF3TURBd01Gb3dNakVlTUJ3R0ExVUVDd3dWVTJWc1psTnBaMjVsWkVObGNuUnBabWxqCllYUmxNUkF3RGdZRFZRUUREQWRMUkVnZ1EwRXhNSUdiTUJBR0J5cUdTTTQ5QWdFR0JTdUJCQUFqQTRHR0FBUUEKRDVEUXc5RW1Tb1lJVkRnbUpmRm1wL1pzMXp1M0ZobThrdUdkYlA4NWgwNTdydkhHZ3VISW03V3N1aTlpdXNvNApFWEZnV3ZUdy85amhZcVJrMi9yY1RHb0JrS2NpV3Q2UHMxVmpSUVZhVEZmbmxPdjRNTURQUEFEUWthVU45cVNNCkF5MTF0RklKNlFGWDR0aGx3RzBaZkFwd0NMV1ZyMzFrRU45RDJhVUh6Mjg5WlM2all6QmhNQjhHQTFVZEl3UVkKTUJhQUZFMjhnay9QZnZ3NklsNm9yQzNwRmJtK280emxNQjBHQTFVZERnUVdCQlJOdklKUHozNzhPaUplcUt3dAo2Ulc1dnFPTTVUQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BNEdBMVVkRHdFQi93UUVBd0lDeERBS0JnZ3Foa2pPClBRUURCQU9CakFBd2dZZ0NRZ0ZRRit5VUVSYTZoQ0RwSDVHeVhlaVFYYU0wc25Fd3o2TmlmOHlSTlF1dzJ5MUoKdTNoKzZYa2N6Y3lVT01NSzhaRnhBVDhFOERMVUtpdjM1VmdzSkFDN09RSkNBSWMzdEVNV01tZTVCV3ZXTFVxSQpnV3h5U3UxWDdRSTJrR2dUK1FqRGlhQ2E4b091NVlJTmZscW4reUswR29yNGJzMTBZaUh4SHhpV2t0UVRSdVp4CkhIU3UKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="} \ }'{ "Key": { "CreateTimestamp": "2023-08-08T18:52:01.023000+00:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wv4gb6h3xcqjk6sm", "KeyAttributes": { "KeyAlgorithm": "ECC_NIST_P521", "KeyClass": "PUBLIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE" }, "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2025-03-08T18:52:01.023000+00:00" } }
-
중간 인증서를 AWS Payment Cryptography로 가져오기
다음 명령을 사용하여 중간 인증서를 가져옵니다.
$
aws payment-cryptography import-key \
--key-material
='{"TrustedCertificatePublicKey
": { \--certificate-authority-public-key-identifier
='"arn:aws:payment-cryptography:us-east-2:111122223333:key/wv4gb6h3xcqjk6sm
" \ "KeyAttributes
": { \ "KeyAlgorithm
": "ECC_NIST_P521", \ "KeyClass
": "PUBLIC_KEY", \ "KeyModesOfUse
": { \ "Verify
": true}, \ "KeyUsage
": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \ "PublicKeyCertificate
": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLekNDQVkyZ0F3SUJBZ0lDVDAwd0NnWUlLb1pJemowRUF3UXdNakVlTUJ3R0ExVUVDd3dWVTJWc1psTnAKWjI1bFpFTmxjblJwWm1sallYUmxNUkF3RGdZRFZRUUREQWRMUkVnZ1EwRXhNQjRYRFRJMU1ETXlPREF3TURBdwpNRm9YRFRJMk1ETXlPREF3TURBd01Gb3dNREVlTUJ3R0ExVUVBd3dWUzBSSUlFbHVkR1Z5YldWa2FXRjBaU0JEClFTQXhNUTR3REFZRFZRUUZFd1V4TURJd01UQ0JtekFRQmdjcWhrak9QUUlCQmdVcmdRUUFJd09CaGdBRUFPOGwKZFM4c09YQlNWQlVINWxmRWZkNTZxYVVIenExZVN3VGZKdnI5eEFmb2hRNTNWZ2hLUlZoNzhNR2tJTjVCNTBJTAozbmhaU1JnUnRoS20xNkxwc084NEFGa1Z0ZEpOaEJpYUlQZlRlYXltOHh6OU44KzFWZ3RMTDZBcTBtNkwwMUFwCkUvUmxzUUJ3NWxoakM4VHVOWU1QaUpMYUNPbjJrZVh6SU5SSm01SjJtR3Q1bzFJd1VEQWZCZ05WSFNNRUdEQVcKZ0JSbklBNi9Vc3RMYUpzTzlpYjg1Zm9DWEcwRk96QWRCZ05WSFE0RUZnUVVaeUFPdjFMTFMyaWJEdlltL09YNgpBbHh0QlRzd0RnWURWUjBQQVFIL0JBUURBZ2JBTUFvR0NDcUdTTTQ5QkFNRUE0R0xBRENCaHdKQ0FmTnJjdXBkClpQd3ZqTGdVeFZiN1NtSXNhY2Z6MVZrNWZFYXZHNlVzdU95Y1lGbHlQQTlJZGgyK0lOcW5jSVg4VEo2cDFJRWkKN3RCTHpPb1l0ZWd2Q1dsL0FrRkRzWHFsWkI5bU93WnNEQy9HZEpEcm5uQ0ZkR29hM1NwZytqbGdhOGdQTmxLbAo1dE9IU0lVZnZxcFhEcWYrdXV6SEc1Z3FjdUhnQU8wOUhuMloyNUc4eVE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="} \ }'{ "Key": { "CreateTimestamp": "2025-03-20T18:52:01.023000+00:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/swseahwtq2oj6zi5", "KeyAttributes": { "KeyAlgorithm": "ECC", "KeyClass": "PUBLIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE" }, "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2025-03-25T18:52:01.023000+00:00" } }
-
퍼블릭 키 인증서(Leaf)를 AWS Payment Cryptography로 가져오기
리프 ECC 인증서를 가져올 수 있지만 현재 스토리지 외에는 AWS Payment Cryptography에 정의된 함수가 없습니다. 이는 ECDH 함수를 사용할 때 리프 인증서가 런타임에 전달되기 때문입니다.