As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Exportar chaves
Exportar chaves simétricas
Importante
Os exemplos podem exigir a versão mais recente da AWS CLI V2. Antes de começar, verifique se você atualizou para a versão mais recente.
Tópicos
Exportar chaves usando técnicas assimétricas (TR-34)
Visão geral: O TR-34 utiliza criptografia RSA assimétrica para criptografar chaves simétricas para troca, além de garantir a origem dos dados (assinatura). Isso garante a confidencialidade (criptografia) e a integridade (assinatura) da chave encapsulada. Ao exportar, a criptografia AWS de pagamento se torna o host de distribuição de chaves (KDH) e o sistema de destino se torna o dispositivo receptor de chaves ()KRD.
- 1. Chamar o comando de inicialização de exportação
-
Chame
get-parameters-for-export
para inicializar o processo de exportação. Isso API gerará um par de chaves para fins de exportação de chaves, assinará a chave e retornará o certificado e a raiz do certificado. Em última análise, a chave privada gerada por este comando é usada para assinar a carga útil de exportação. Na terminologia TR-34, isso é conhecido como certificado de assinatura. KDH Observe que esses certificados têm vida curta e se destinam apenas a essa finalidade. O parâmetro ParametersValidUntilTimestamp especifica sua duração.NOTE: todos os certificados são retornados em um formato codificado em base64
$
aws payment-cryptography get-parameters-for-export \ --signing-key-algorithm RSA_2048 --key-material-type TR34_KEY_BLOCK
{ "SigningKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJBZ0lRZFAzSzNHNEFKT0I4WTNpTmUvYlF0akFOQmdrcWhraUc5dzBCQVEwRkFEQ0IKaVRFTE1Ba0dBMVVFQmhNQ1ZWTXhHVEFYQmdOVkJBb01FRUZYVXlCRGNubHdkRzluY21Gd2FIa3hJVEFmQmdOVgpCQXNNR0VGWFV5QlFZWGx0Wlc1MElFTnllWEIwYjJkeVlYQm9lVEVSTUE4R0ExVUVDQXdJVm1seVoybHVhV0V4CkZUQVRCZ05WQkFNTUREVXlPVEF5TnpRMU5UUTVOVEVTTUJBR0ExVUVCd3dKUVhKc2FXNW5kRzl1TUI0WERUSXoKTURZd05qSXhOREF5TVZvWERUSXpNRFl4TXpJeU5EQXlNRm93TERFVk1CTUdBMVVFQXd3TU5USTVNREkzTkRVMQpORGsxTVJNd0VRWURWUVFGRXdveE9ETTROemt5TWpNeU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBCk1JSUJDZ0tDQVFFQXNTLzZ0TkhPK29RaTczVFMvYXJFSE40aEhRSjdFVThaT3dXN0RuNVlTTlZmZmM0b1B6ZVUKNHQ5Q045djViamxrL3p5TTJORllVL0NsTHNueFk2Y3IvaWwwY2hROVFtM1hUMHZVWGZGNzdRSzFSWnZzNkVkdApicVFaWGlqVDZ4UkJGcUxUMjV0dGJYQTlXMjlUd1d1eXdVN1c4dDZDZEIxSVFoOFFhYlBGaHRhWmVpWmVVWjNPCnRSa2NZU1VtRDRncWJxTElEL2M2RlpmdGpkYS9HbkhkZ1dmMk5oUUFvVnkxOS9ZZXhlZzdmTlVOZXVzWmRYSWYKZkNpM0VNaFF4S3lYY3dUMC9TZ2g5alZNakQwSDdyZWpCMGF4Tit0RUNqeVFEcm5XS2ZvbVA2ZFdkMExCSUM2bgpNQ1VKcmVtSDV3emVzZjFrWnF1VjRMbjYwdzZSNDNhQzRRSURBUUFCbzN3d2VqQUpCZ05WSFJNRUFqQUFNQjhHCkExVWRJd1FZTUJhQUZDNklyYUZzYnRUMDFGL2JjQ0c3Z3RVR1phM1RNQjBHQTFVZERnUVdCQlRXbldEWXNsMXMKalhnVExRRmFCYm1DakFZcHNUQU9CZ05WSFE4QkFmOEVCQU1DQmFBd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSApBd0VHQ0NzR0FRVUZCd01DTUEwR0NTcUdTSWIzRFFFQkRRVUFBNElDQVFCdUJmVjJmVFBlM0VkSEhnODFoVnZECnRQZUJsQzAvRy8wQ25XNFhPVEt2NUJtNXNudDBpczg4Yzc1SlRRUXdvdm9ScEVUTzZLdXdxMUFuUFR1c3RyRDYKL0I1bDd0MGw3ZUh6Z3pPVGZSN29Wem9TZXlGamkvVEVwK2M0NXBHWDBpY0ovTDlMaE0ybUVOZHhqNmtzVUcxMApuZnJCbzJyejkwRUJQYTVFb1lhMlRYYW90VlU4NFRiSFVyMlUzaFhrRExDWmhpSTdLY2I5cWRwenVlV0dWRzRTCmFreGJQcW5LQjMrek9JSzFZYTl2aENHZjRaMDFtWFFtVmRjQlpnbGE5SWFyeEcvKy9xWXEvNzBKalFnYk5HOUUKcUd1UFFadE5QQ0lJckJXOFN4cVpmUjVJbmxtUDlkZEY0SStOR002aHNoRUNXeWJCWkdUZjhYVCtwYVRFZXA2ZQpZUHp2UXI2cWQ4TExDYk5wOEI3ZTNrcmRKc0VUV0tBaU93TzFoZ1BReld2ZTRWKzBNdVlQaDczNk0xUS9rUTJVCmN5VmhDVDNCWENmOFhXVjMwYzg2c2J2dlhIeGJ5cVl1dWs4anZvRHl6T3R0T0QxbVdlRDBNeXV6OU1Fb3JTanIKM3ZwUDhBWXowMVI0UWNBMUR5cVl1dVErQ1BFRHlqU3VPK2tTQ1JIYXFLRzFOVzY5aVMxWWQyWG9LZTdtRlVpaAp3REM0WTlISlZjNjk5bWNMQ0NXWmhyYlZmZUJrOUxDS1BlUzZWUFZDMGdpVnJRYUtxbFhkTnh5SGJ2ZzBsRlUvCjZkUm5nYmVPMTZQdUhhN1hjL2FCUUF6N3JNaWlvRFFjSVdrQVdyK0NIOHl0UVFXZXRjSFdHNWRMMmZiSFgzOU0KMWhIeXFraHAwdDhXc0dTdVhjbWJBQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=", "SigningKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUY0VENDQThtZ0F3SUJBZ0lSQUtlN2piaHFKZjJPd3FGUWI5c3VuOEV3RFFZSktvWklodmNOQVFFTkJRQXcKZ1lreEN6QUpCZ05WQkFZVEFsVlRNUmt3RndZRFZRUUtEQkJCVjFNZ1EzSjVjSFJ2WjNKaGNHaDVNU0V3SHdZRApWUVFMREJoQlYxTWdVR0Y1YldWdWRDQkRjbmx3ZEc5bmNtRndhSGt4RVRBUEJnTlZCQWdNQ0ZacGNtZHBibWxoCk1SVXdFd1lEVlFRRERBdzFNamt3TWpjME5UVTBPVFV4RWpBUUJnTlZCQWNNQ1VGeWJHbHVaM1J2YmpBZUZ3MHkKTXpBMk1EWXdNalEzTlRKYUZ3MHlPREEyTURZd016UTNOVEphTUlHSk1Rc3dDUVlEVlFRR0V3SlZVekVaTUJjRwpBMVVFQ2d3UVFWZFRJRU55ZVhCMGIyZHlZWEJvZVRFaE1COEdBMVVFQ3d3WVFWZFRJRkJoZVcxbGJuUWdRM0o1CmNIUnZaM0poY0doNU1SRXdEd1lEVlFRSURBaFdhWEpuYVc1cFlURVZNQk1HQTFVRUF3d01OVEk1TURJM05EVTEKTkRrMU1SSXdFQVlEVlFRSERBbEJjbXhwYm1kMGIyNHdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDRHdBdwpnZ0lLQW9JQ0FRQzJyMld2eGJxZjJSUHhOem1JUk5ZeWZRQ2labGxYUVBQSDQycnAyQ1VtTk1VMkc2ZzdFRUZBCm5TWnNvRlN6Z1NJaEhUSWU4UDdUd1l3ckpPL3VNcEtka3lac1ppTEhUNGo4M1l1VkNlT1dSVERjdnRWMFV0M1IKaCs5UWVyaHhRQnVrK2dnZkRkT0FFUkR3S1pWckZqM3diT1FFMXY2WnRYSmpVZytWTXZKcEphUTg0WkFvYnpyUgpuY2JaL0hnbFhDM09xampSSk1laGJFaE93ZFJCTU4yQ2dTNHlhWTB3YlBvazhMSlRORVp5ZnkxUEtkaTd1UmxxCm9qeEdjc3pCRHFvdCsvTURBNVdZUjd5NVhiOGdOdSt0alkrMWdQSGRkWHFhRTR2bXV2cEtsQUttcml2SDRYWXQKZk9sa1kzYnRJckVuWDEwQkp1UXVGN0dRNyt3ZjN6TDZ4NFNIcGpiQWxpMDQyUmdXTVpibmlscW15YnhuUkRrUwpjZXZ3aEx2L0tnT09WM05KZlplWlVzT1N6NWNzTmRLME4rM2FCUlZQcVc5b2k3dDJ2dTc5eCtvb1pIS2FibFdiCmJDMDJxR1VDaTE3cHhDQ0JJdUVDZWJiWDhSS3dLa3RwbTRSOUZWYjBXZGFqNUc1ekdudTBsUlRMUVNaZ0QyU1EKSjRmQjh2em9Bb3BYenpSSStMSjNBaC9NcThXSTNHTHFIakhzcm5vdVJzMmNzcjVBYnNMbXUyUTlvMFJmNTd1RApwK1R1cXpKTysrNFpUWDlsb0N3UXdzKzNEZWUyL1pUSmJCNkFCdy9xdnovQjhsL2duY29Wc3lHTFhkaXdleTV1CjJHNnl2NGgrN0FBQldvdjhwWVBPUlRMY1FkanhVdWNDdllRYjJiRXY4ZGh1anN6TWo2ZDBDUUlEQVFBQm8wSXcKUURBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRdWlLMmhiRzdVOU5SZjIzQWh1NExWQm1XdAowekFPQmdOVkhROEJBZjhFQkFNQ0FZWXdEUVlKS29aSWh2Y05BUUVOQlFBRGdnSUJBSS9Ta1NaS0pyMm1JakJ6ClJxQXQ3dmJ4eWNhQXhCU3VqbDlqVSttYkh1RDg4Qyt3TDh4TzNYRHJ1Vm9IZTdYanhrNXpaN0RWMjMza3haQlEKR3BET1hWaGNZdE5UNzk2YXd1K0VNU2kzK3RzTVJBMmMxODJ2ZVNDSE9HQmVseTlRS3FHWkJBZGU2ZGNzTkpMTwpiRE10NlB3NXpiRHNqalJnMGY5SGQrRFZheXV6QzBtdXVGWEZkT0txU0VWZVNmZWVNOUl5KzFMWDMzOFlVd05zCjdhS2ppaFVFSkg4ZkVFU1NEUGE5OGNOSEsyZ0t5UENrRUorMGlNZkJiTi9yUE1CYlhqTUtHYWpXSFFhWWtieDUKalVRUmdvd25ZbStycDRwRnNhalpSTFB0NE9mbkswNWYvRHdCUXVGWUUzUFJ2d2NQSWxJNHpkcWh0NE9ZSVY4RAo2MktleVEzb3R6eTdsVXIxamNrZldkSHpHc3NKVjYxc0xRTTBudVFNUnRTZjlHeEpYTEkyNjFaRWFMYVY5WFduCnY3YnByb090UTNiYk9RbjI0elJDVm5kZ0Z3aCtUVHMzVmFOQjhURmY2QjFoV1R5aTYzOCtoa1FTRnJTbXI1WTcKTXNGUXZXSVZVbjQ2cWNjVGNuNlc2Y2JIUlhyQkRiR0tlWUJiVjVXSkJwRUtSN0JuQ25HNnJCbmxGNjZ5eTUyLwpSbWZLRWZwWG1qbkh0WW94UnlQVlJZWDhPcnkzUFQrYSt0REtlMDBXY1MyM0U3MWl2QTBNdnVrODlwTzJIUVorCjNHUU9xdWJpQ3RMbVppdVFCZC9aN1NGWGlzcUxyTE5aOW52Q2VRSkxTckVDajRpZjV2dmJkWVhLdkozamhtSjkKeVZvc0xZVzA3SklzSFE0aDAwVWphSnhrVjdoWgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t", "SigningKeyAlgorithm": "RSA_2048", "ExportToken": "export-token-au7pvkbsq4mbup6i", "ParametersValidUntilTimestamp": "2023-06-13T15:40:24.036000-07:00" }
- 2. Importar certificado AWS de criptografia de pagamento para o sistema de recebimento
-
Importe a cadeia de certificados fornecida na etapa 1 para o sistema de recebimento, conforme necessário.
- 3. Gere um key pair, crie um certificado público e forneça a raiz do certificado para AWS Payment Cryptography
-
Para garantir a confidencialidade da carga transmitida, ela é criptografada pela parte remetente (conhecida como Key Distribution Host ouKDH). A parte receptora (normalmente sua HSM ou de seus parceirosHSM) desejará gerar uma chave pública para essa finalidade e, em seguida, criar um certificado de chave pública (x.509) que possa ser devolvido à AWS Payment Cryptography. AWS Private CA é uma opção para gerar certificados, mas não há restrições quanto à autoridade de certificação usada.
Depois de ter o certificado, você desejará carregar o certificado raiz na Criptografia AWS de Pagamento usando o
ImportKey
comando e KeyMaterialType deROOT_PUBLIC_KEY_CERTIFICATE
e KeyUsageType deTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE
.A chave KeyUsageType deste certificado é TR31 _S0_ _ ASYMMETRIC _ KEY _ FOR DIGITAL _ SIGNATURE porque é a chave raiz e é usada para assinar o certificado folha. Os certificados Leaf para importação/exportação não são importados para a Criptografia AWS de Pagamento, mas são passados em linha.
nota
Se o certificado raiz tiver sido importado anteriormente, essa etapa poderá ser ignorada.
- 4. Chamar a chave de exportação
-
Como última etapa, você ligará para o ExportKey API com um KeyMaterialType de
TR34_KEY_BLOCK
.certificate-authority-public-key-identifier
Será a chave da importação ARN da CA raiz na etapa 3,WrappingKeyCertificate
será o certificado preliminar da etapa 3 eexport-key-identifier
é a chave ARN (ou alias) a ser exportada. Você também precisará fornecer o token de exportação da etapa 1.
Exporte chaves usando técnicas assimétricas (Wrap) RSA
Visão geral: a criptografia AWS de pagamento suporta RSA embrulhar/desembrulhar para troca de chaves quando o TR-34 não é uma opção disponível pela contraparte. Semelhante ao TR-34, essa técnica utiliza criptografia RSA assimétrica para criptografar chaves simétricas para troca. No entanto, diferentemente do TR-34, esse método não tem a carga assinada pela parte remetente. Além disso, essa técnica de RSA encapsulamento não inclui blocos de chaves que são usados para manter a integridade dos metadados da chave durante o transporte.
nota
RSAwrap pode ser usado para exportar TDES e AES -128 chaves.
- 1. Gere uma RSA chave e um certificado no sistema receptor
-
Crie (ou identifique) uma RSA chave que será usada para receber a chave embrulhada. AWS A criptografia de pagamento espera chaves no formato de certificado X.509. O certificado deve ser assinado por um certificado raiz que seja importado (ou possa ser importado) para a criptografia AWS de pagamento.
- 2. Instale o certificado público raiz na criptografia AWS de pagamento
-
$
aws payment-cryptography import-key --key-material='{"RootCertificatePublicKey":{"KeyAttributes":{"KeyAlgorithm":"RSA_4096","KeyClass":"PUBLIC_KEY","KeyModesOfUse":{"Verify": true},"KeyUsage":"TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"},"PublicKeyCertificate":"LS0tLS1CRUdJTiBDRV..."}}'
{ "Key": { "CreateTimestamp": "2023-09-14T10:50:32.365000-07:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/nsq2i3mbg6sn775f", "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-09-14T10:50:32.365000-07:00“ } }
- 3. Chave de exportação de chamadas
-
Em seguida, você deve instruir a AWS Payment Cryptography a exportar sua chave usando seu certificado de folha. Você especificará o ARN para o certificado raiz importado anteriormente, o certificado folha a ser usado para exportação e a chave simétrica a ser exportada. A saída será uma versão binária encapsulada (criptografada) com codificação hexadecimal da sua chave simétrica.
$
cat export-key.json
{ "ExportKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyMaterial": { "KeyCryptogram": { "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl", "WrappingKeyCertificate": "LS0tLS1CRUdJTiBD...", "WrappingSpec": "RSA_OAEP_SHA_256" } } }
$
aws payment-cryptography export-key --cli-input-json file://export-key.json
{ "WrappedKey": { "KeyMaterial": "18874746731E9E1C4562E4116D1C2477063FCB08454D757D81854AEAEE0A52B1F9D303FA29C02DC82AE7785353816EFAC8B5F4F79CC29A1DDA80C65F34364373D8C74E5EC67E4CB55DEA7F091210DCACD3C46FE4A5DAA0F0D9CAA7C959CA7144A5E7052F34AAED93EF44C004AE7ABEBD616C955BBA10993C06FB905319F87B9B4E1B7A7C7D17AF15B6154E807B9C574387A43197C31C6E565554437A252EFF8AC81613305760D11F9B53B08A1BA79EC7E7C82C48083C4E2D0B6F86C34AB83647BDD7E85240AD1AF3C0F6CA8C5BF323BB2D3896457C554F978F4C9436513F494130A6FADBC038D51898AAD72E02A89FF256C524E7B5D85B813751B718C4933D9DC6031F2C5B2E13351A54B6021B2DB72AA0C7EA54727FBCD557E67E5E7CC2E165576E39DB4DA33510BA9A3C847313103A18EF3B23A3440471864D58C79C569D5CD2A653AC16043CA9A61E6878F74C18EE15F9AB23754C37A945B68C0437C19F0079F74B573D9B59DAC25A20781DBE8075C947C9EDC76177A1B0794288CBF89567A541E8401C74E85B8E1C3E501860AF702F641CAA04327018A84EF3A82932A2BCF37047AB40FE77E0A6F68D0904C7E60983CD6F871D5E0E27EEF425C97D39E9394E8927EEF5D2EA9388DF3C5C241F99378DF5DADE8D0F0CF453C803BA38BA702B9651685FAFA6DCB4B14333F8D3C57F2D93E0852AA94EEC3AF3217CAE5873EFD9", "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM" } }
- 4. Importar chave para o sistema de recebimento
-
Muitos HSMs sistemas relacionados oferecem suporte à capacidade de importar chaves usando RSA unwrap (incluindo criptografia AWS de pagamento). Para fazer isso, especifique a chave pública da etapa 1 como o certificado (de criptografia) e o formato deve ser especificado como RSA Padding Mode = PKCS #1 v2.2 OAEP (com SHA 256). A terminologia exata pode variar de acordo com. HSM
nota
AWS A criptografia de pagamento gera a chave embrulhada. hexBinary Talvez seja necessário converter o formato antes de importar se o sistema exigir uma representação binária diferente, como base64.
Exportar chaves simétricas usando uma chave de troca de chaves preestabelecida (TR-31)
Quando os parceiros estão trocando várias chaves (ou para oferecer suporte à rotação de chaves), é comum trocar primeiro uma chave de criptografia de chave inicial (KEK) usando técnicas como componentes de chave em papel ou, no caso de criptografia de AWS pagamento, usando TR-34. Depois que a KEK for estabelecida, você poderá usar essa chave para transportar as chaves subsequentes (incluindo outrasKEK). AWS A criptografia de pagamento suporta esse tipo de troca de chaves usando o ANSI TR-31, que é amplamente utilizado e amplamente suportado pelos fornecedores. HSM
- 1. Chave de criptografia da chave do Exchange (KEK)
-
Supõe-se que você já tenha trocado a sua KEK e tenha a chave ARN (oukeyAlias) disponível para você.
- 2. Crie uma chave na criptografia AWS de pagamento
-
Se a chave ainda não existir, crie a chave. Por outro lado, você pode criar a chave no outro sistema e usar o comando importar em vez disso.
- 3. Exportar chave da criptografia AWS de pagamento
-
Na exportação, o formato será TR-31. Ao chamar oAPI, você especificará a chave a ser exportada e a chave de empacotamento a ser usada.
$
aws payment-cryptography export-key --key-material='{"Tr31KeyBlock": {"WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"}}' --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "D0144K0AB00E0000A24D3ACF3005F30A6E31D533E07F2E1B17A2A003B338B1E79E5B3AD4FBF7850FACF9A3784489581A543C84816C8D3542AE888CE6D4EDDFD09C39957B131617BC", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }
- 4. Importe para o seu sistema
-
Você ou seu parceiro usarão a implementação da chave de importação em seu sistema para importar a chave.
Exportar chaves DUKPT iniciais (IPEK/IK)
Ao usar DUKPT, uma única chave de derivação de base (BDK) pode ser gerada para uma frota de terminais. Os terminais, no entanto, nunca têm acesso ao original, BDK mas cada um é injetado com uma chave de terminal inicial exclusiva, conhecida como IPEK Chave Inicial (IK). Cada uma IPEK é uma chave derivada do BDK e deve ser exclusiva por terminal, mas é derivada da originalBDK. Os dados de derivação para esse cálculo são conhecidos como Número de Série da Chave (KSN). Por X9.24, TDES os 10 bytes KSN normalmente consistem em 24 bits para o ID do conjunto de chaves, 19 bits para o ID do terminal e 21 bits para o contador de transações. PoisAES, os 12 bytes KSN normalmente consistem em 32 bits para o BDK ID, 32 bits para o identificador de derivação (ID) e 32 bits para o contador da transação.
AWS A criptografia de pagamento fornece um mecanismo para gerar e exportar essas chaves iniciais. Depois de geradas, essas chaves podem ser exportadas usando os métodos TR-31, TR-34 e wrap. RSA IPEKas chaves não são mantidas e não podem ser usadas para operações subsequentes em criptografia AWS de pagamento
AWS A criptografia de pagamento não impõe a divisão entre as duas primeiras partes do. KSN Se você deseja armazenar o identificador de derivação junto com oBDK, você pode usar o recurso de AWS tags para essa finalidade.
nota
A parte do contador do KSN (32 bits para AESDUKPT) não é usada para derivação de IPEK /IK. Portanto, uma entrada de 12345678901234560001 e 12345678901234569999 produzirá o mesmo. IPEK
$
aws payment-cryptography export-key --key-material='{"Tr31KeyBlock": {"WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"}}' --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --export-attributes 'ExportDukptInitialKey={KeySerialNumber=12345678901234560001}'
{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "B0096B1TX00S000038A8A06588B9011F0D5EEF1CCAECFA6962647A89195B7A98BDA65DDE7C57FEA507559AF2A5D601D1", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }
Especificando cabeçalhos de blocos de teclas na exportação
AWS A criptografia de pagamento suporta a capacidade de modificar ou acrescentar informações de blocos de chaves ao exportar nos formatos TR-31 ou ASC TR-34. A tabela abaixo descreve o formato do bloco de chaves TR-31 e quais elementos podem ser modificados na exportação.
Atributo do bloco de chaves | Finalidade | Modificar ou acrescentar na exportação? | Observações |
---|---|---|---|
ID da versão |
Representa o método usado para proteger o material chave subjacente. O padrão define a versão A e a versão C (variante chave), a versão B (uso de derivaçãoTDES) e a versão D (uso AES de derivação de chave). |
Não modificável |
AWS A criptografia de pagamento usará a versão B quando a chave de embalagem estiver TDES e a versão D quando a chave de embalagem estiver. AES As versões A e C estão obsoletas e são suportadas somente para operações de importação. |
Comprimento do bloco de chaves |
Representa o tamanho da mensagem restante |
Não modificável |
Esse valor é calculado automaticamente pelo serviço. Observe que o serviço pode empregar o preenchimento de teclas conforme exigido pela especificação, portanto, o comprimento pode não parecer correto antes de descriptografar a carga útil. |
Uso da chave |
Representa as finalidades permitidas da chave, como C0 (verificação do cartão) ou B0 (chave de derivação básica) |
Não modificável |
|
Algoritmo |
Representa o algoritmo da chave subjacente. O padrão oferece suporte a vários tipos de chaves, como T (TDES), A (AES) e E (ECC). AWS Atualmente, a criptografia de pagamento suporta valores de T, H e A. |
Não modificável |
Isso é exportado da criptografia de AWS pagamento no estado em que se encontra. |
Uso da chave |
Representa os tipos de operações para as quais ele pode ser usado. Os exemplos incluem Generate and Verify (C) e Encrypt/Decrypt/Wrap/Unwrap (B) |
Modificar* |
|
Versão chave |
Representa o número da versão da chave se a chave for substituída/girada. Esse é um valor numérico e o padrão é 00 se não for especificado. |
Anexar |
|
Importabilidade de exportação |
Representa se a chave pode ser exportada. N significa Sem Exportabilidade, E significa exportação de acordo com X9.24 (blocos de chave), S significa exportação em formatos de bloco de chaves ou blocos sem chave. |
Modificar* |
|
Blocos de teclas opcionais |
Anexar |
Os blocos de chaves opcionais são uma série de pares de nome/valor que podem ser vinculados enigmaticamente à chave. Um exemplo comum é o KeySet ID DUKPT das chaves. O formato real inclui o número de blocos opcionais, o comprimento de cada um e um bloco de preenchimento (PB), mas a criptografia de AWS pagamento os calculará automaticamente com base na entrada do par nome/valor. |
*Ao modificar, o novo valor deve ser mais restritivo do que o valor atual na Criptografia de Pagamento. AWS Por exemplo, se o modo de uso da chave atual for Generate=True, Verify=True, ao exportar, você poderá alterá-lo para Generate=True, Verify=False. Da mesma forma, se a chave já estiver definida como não exportável, você não poderá alterá-la para exportável.
Ao exportar chaves, a criptografia AWS de pagamento aplica automaticamente os valores atuais da chave que está sendo exportada sem modificação. No entanto, em alguns casos, você pode querer modificar ou acrescentar esses valores antes de enviar para o sistema de recebimento, mesmo que isso seja permitido pela Criptografia de AWS Pagamento. Um exemplo é que, ao exportar uma chave para um terminal de pagamento, é comum restringir sua exportabilidade, Not Exportable
pois os terminais normalmente servem apenas para importar chaves e, portanto, não devem exportar chaves posteriormente.
Outro exemplo é quando você deseja passar os metadados da chave associada para o sistema receptor. Antes do TR-31, a prática comum era criar uma carga personalizada para enviar essas informações, mas usando o TR-31 você pode vinculá-la criptograficamente à chave em um formato específico. A versão da chave pode ser definida usando o KeyVersion
campo. O TR-31/X9.143 especifica certos cabeçalhos comuns, mas não há restrições ao uso de outros, desde que se encaixem nos parâmetros de criptografia de AWS pagamento e que o sistema de recebimento seja capaz de aceitá-los. Para obter mais informações sobre como especificar blocos de teclas durante a exportação, consulte os cabeçalhos de blocos de teclas no API Guia.
Neste exemplo, estamos exportando uma BDK chave (por exemplo, para aKIF). Estamos especificando a versão da chave como 02, definindo como NON _ EXPORTABLE e fornecendo um valor opcional para o KeySet ID de 00, o ABCDEFAB que significa que é uma TDES chave (00) e a chave inicial éABCDEFABCD. KeyExportability Como os principais modos de uso não são especificados, essa chave herdará o modo de uso de arn:aws:payment-cryptography:us-east- 2:111122223333:key/5rplquuwozodpwsp que é DeriveKey = true
nota
$
aws payment-cryptography --key-material='{"Tr31KeyBlock": {"WrappingKeyIdentifier":"arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza","KeyBlockHeaders":{"KeyModesOfUse":{"Derive":true},"KeyExportability":"NON_EXPORTABLE","KeyVersion":"02","OptionalBlocks":{"BI":"00ABCDEFABCD"}}}} --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
{ "WrappedKey": { "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK", "KeyMaterial": "D0128B0TX02N0100BI1000ABCDEFABCD1A2C0EADE244321640E94FE3A3C9D33800D47CE64238D9327DDBFE25B902352B29511AED4EF9BF65AF1E812BE665210F", "KeyCheckValue": "A4C9B3", "KeyCheckValueAlgorithm": "ANSI_X9_24" } }
Exportação de chaves assimétricas () RSA
Chame get-public-key-certificate
para exportar uma chave pública em formato de certificado. Isso API exportará o certificado, bem como seu certificado raiz codificado no formato base64.
NOTE: Isso não API é idempotente - chamadas subsequentes podem resultar em certificados diferentes, mesmo que a chave subjacente seja a mesma.
$
aws payment-cryptography get-public-key-certificate \ —key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb
{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT...“ }