Exportar chaves - AWS Criptografia de pagamento

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.

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 de ROOT_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 deTR34_KEY_BLOCK. certificate-authority-public-key-identifierSerá a chave da importação ARN da CA raiz na etapa 3, WrappingKeyCertificate será o certificado preliminar da etapa 3 e export-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

Mesmo que a exportabilidade esteja definida como Não exportável neste exemplo, eles ainda KIFpoderão derivar chaves como a IPEK/IK usada em, DUKPT e essas chaves derivadas serão exportáveis para serem instaladas nos dispositivos. Isso é especificamente permitido pelos padrões.

$ 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...“ }