View a markdown version of this page

Chiavi di importazione - AWS Crittografia dei pagamenti

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Chiavi di importazione

Importante

Gli esempi richiedono la versione più recente di AWS CLI V2. Prima di iniziare, assicurati di aver effettuato l'aggiornamento alla versione più recente. https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html

Introduzione all'importazione delle chiavi

Nota

Quando si importano chiavi utilizzando X9.143 TR-31 o blocchi di TR-34 chiavi, AWS Payment Cryptography in genere conserva (ma non utilizza) le intestazioni opzionali. L'intestazione HM (HMAC hash type) viene utilizzata durante le operazioni crittografiche. L'intestazione KP (KCV o chiave di wrapping) è specifica per il processo di importazione e non viene conservata.

Quando si scambiano chiavi con una controparte, in genere si scambia prima una chiave di scambio di chiavi (KEK). Questa chiave verrà quindi utilizzata per proteggere le chiavi successive. Utilizzando formati elettronici, il KEK può essere scambiato utilizzando tecniche asimmetriche come ECDH o RSA TR-34 wrap. Le chiavi successive verranno scambiate utilizzando uno scambio di chiavi simmetrico come. TR-31 Questo KEK avrà una lunga durata e potrebbe essere aggiornato solo ogni pochi anni in base alla politica e al periodo crittografico definito.

Se vengono scambiate solo una o due chiavi, puoi anche scegliere di utilizzare tecniche asimmetriche per scambiare direttamente quella chiave, come un BDK. AWS La crittografia dei pagamenti supporta entrambi i metodi di scambio di chiavi.

Importazione di chiavi simmetriche

Importazione di chiavi utilizzando tecniche asimmetriche () TR-34

AWS Processo di importazione della chiave di crittografia dei pagamenti

TR-34 utilizza la crittografia asimmetrica RSA per crittografare e firmare chiavi simmetriche per lo scambio. Ciò garantisce sia la riservatezza (crittografia) che l'integrità (firma) della chiave racchiusa.

Per importare le tue chiavi, dai un'occhiata al progetto di esempio AWS di Payment Cryptography su. GitHub Per istruzioni su come ottenere le import/export chiavi da altre piattaforme, il codice di esempio è disponibile su GitHub o consulta la guida per l'utente di tali piattaforme.

  1. Chiamate il comando Initialize Import

    Chiama get-parameters-for-import per inizializzare il processo di importazione. Questa API genera una coppia di chiavi per l'importazione delle chiavi, firma la chiave e restituisce il certificato e la radice del certificato. Crittografa la chiave da esportare utilizzando questa chiave. Nella TR-34 terminologia, questo è noto come certificato KRD. Questi certificati sono codificati in base64, hanno una durata breve e sono destinati esclusivamente a questo scopo. Salva il valore. 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" }
  2. Installa il certificato pubblico sul sistema di origine delle chiavi

    Con la maggior parte degli HSM, è necessario installare, caricare o considerare attendibile il certificato pubblico generato nel passaggio 1 per esportare le chiavi utilizzandolo. Questo potrebbe includere l'intera catena di certificati o solo il certificato principale del passaggio 1, a seconda dell'HSM.

  3. Genera una coppia di chiavi sul sistema di origine e fornisci la catena di certificati a AWS Crittografia dei pagamenti

    Per garantire l'integrità del payload trasmesso, la parte mittente (Key Distribution Host o KDH) lo firma. Genera una chiave pubblica per questo scopo e crea un certificato a chiave pubblica (X509) da restituire a Payment Cryptography. AWS

    Quando trasferisci le chiavi da un HSM, crea una coppia di chiavi su quell'HSM. L'HSM, una terza parte o un servizio simile AWS Private CA può generare il certificato.

    Carica il certificato principale in AWS Payment Cryptography utilizzando il importKey comando con KeyMaterialType of RootCertificatePublicKey e KeyUsageType of. TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE

    Per i certificati intermedi, usa il importKey comando con KeyMaterialType of TrustedCertificatePublicKey e KeyUsageType of. TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE Ripetere questa procedura per più certificati intermedi. Utilizzate KeyArn l'ultimo certificato importato della catena come input per i successivi comandi di importazione.

    Nota

    Non importate il certificato Leaf. Forniscilo direttamente durante il comando di importazione.

  4. Chiave di esportazione dal sistema di origine

    Molti HSM e sistemi correlati supportano l'esportazione delle chiavi utilizzando la TR-34 norma. Specificate la chiave pubblica della fase 1 come certificato KRD (crittografia) e la chiave della fase 3 come certificato KDH (firma). Per importare in AWS Payment Cryptography, specificate come formato TR-34.2012 non CMS a due passaggi, che può anche essere indicato come formato Diebold. TR-34

  5. Chiama la chiave di importazione

    Chiama l'API ImportKey con un KeyMaterialType . TR34_KEY_BLOCK Usa il KeyArn dell'ultima CA importata nel passaggio 3 percertificate-authority-public-key-identifier, il materiale chiave avvolto dal passaggio 4 per key-material e il certificato leaf dal passaggio 3 per. signing-key-certificate Includi il token di importazione del passaggio 1.

    $ 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" } }
  6. Usa la chiave importata per le operazioni crittografiche o l'importazione successiva

    Se la chiave importata KeyUsage era TR31_K0_KEY_ENCRYPTION_KEY, è possibile utilizzare questa chiave per le successive importazioni di chiavi utilizzando. TR-31 Per altri tipi di chiave (come TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY), è possibile utilizzare la chiave direttamente per le operazioni crittografiche.

Importa le chiavi utilizzando tecniche asimmetriche (ECDH)

AWS Processo di importazione della chiave di crittografia dei pagamenti tramite ECDH

Elliptic Curve Diffie-Hellman (ECDH) utilizza la crittografia asimmetrica ECC per stabilire una chiave condivisa tra due parti senza richiedere chiavi prescambiate. Le chiavi ECDH sono effimere, quindi Payment Cryptography non le memorizza. AWS In questo processo, viene derivata una singola volta KBPK/KEK utilizzando l'ECDH. Tale chiave derivata viene immediatamente utilizzata per racchiudere la chiave effettiva che si desidera trasferire, che potrebbe essere un'altra chiave KBPK, una chiave IPEK o altri tipi di chiave.

Durante l'importazione, il sistema di invio è comunemente noto come Party U (Initiator) e AWS Payment Cryptography è nota come Party V (Responder).

Nota

Sebbene l'ECDH possa essere utilizzato per scambiare qualsiasi tipo di chiave simmetrica, è l'unico approccio in grado di trasferire le chiavi in modo sicuro. AES-256

  1. Genera una coppia di chiavi ECC

    Chiama create-key per creare una coppia di chiavi ECC per questo processo. Questa API genera una coppia di chiavi per le importazioni o le esportazioni di chiavi. Al momento della creazione, specifica il tipo di chiavi che possono essere derivate utilizzando questa chiave ECC. Quando si utilizza ECDH per scambiare (avvolgere) altre chiavi, utilizzare un valore di. TR31_K1_KEY_BLOCK_PROTECTION_KEY

    Nota

    Sebbene l'ECDH di basso livello generi una chiave derivata che può essere utilizzata per qualsiasi scopo, AWS Payment Cryptography limita il riutilizzo accidentale di una chiave per più scopi consentendo di utilizzare una chiave solo per un singolo tipo di chiave derivata.

    $ 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" } }
  2. Ottieni il certificato a chiave pubblica

    Chiama get-public-key-certificate per ricevere la chiave pubblica come X.509 certificato firmato dalla CA del tuo account, specifico per la crittografia dei AWS pagamenti in una regione specifica.

    Esempio
    $ aws payment-cryptography get-public-key-certificate \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv
    { "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }
  3. Installa il certificato pubblico sul sistema della controparte (Parte U)

    Con molti HSM, è necessario installare, caricare o considerare attendibile il certificato pubblico generato nel passaggio 1 per esportare le chiavi utilizzandolo. Questo potrebbe includere l'intera catena di certificati o solo il certificato principale del passaggio 1, a seconda dell'HSM. Consulta la documentazione HSM per ulteriori informazioni.

  4. Genera una coppia di chiavi ECC sul sistema di origine e fornisci una catena di certificati a AWS Crittografia dei pagamenti

    In ECDH, ciascuna parte genera una coppia di chiavi e concorda una chiave comune. AWS Affinché Payment Cryptography possa derivare la chiave, è necessaria la chiave pubblica della controparte in formato chiave pubblica. X.509

    Quando trasferisci le chiavi da un HSM, crea una coppia di chiavi su quell'HSM. Per gli HSM che supportano i blocchi di chiavi, l'intestazione della chiave sarà simile a. D0144K3EX00E0000 Quando si crea il certificato, in genere si genera un CSR sull'HSM e poi l'HSM, una terza parte o un servizio in grado di generare il AWS Private CA certificato.

    Carica il certificato principale in AWS Payment Cryptography utilizzando il importKey comando con KeyMaterialType of e of. RootCertificatePublicKey KeyUsageType TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE

    Per i certificati intermedi, usa il importKey comando con KeyMaterialType of TrustedCertificatePublicKey e KeyUsageType of. TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE Ripetere questa procedura per più certificati intermedi. Utilizzate KeyArn l'ultimo certificato importato della catena come input per i successivi comandi di importazione.

    Nota

    Non importate il certificato Leaf. Forniscilo direttamente durante il comando di importazione.

  5. Ricava una chiave monouso utilizzando ECDH su Party U HSM

    Molti HSM e sistemi correlati supportano la creazione di chiavi tramite ECDH. Specifica la chiave pubblica della fase 1 come chiave pubblica e la chiave della fase 3 come chiave privata. Per le opzioni consentite, come i metodi di derivazione, consulta la guida API.

    Nota

    I parametri di derivazione, come il tipo di hash, devono corrispondere esattamente su entrambi i lati. Altrimenti, genererai una chiave diversa.

  6. Esporta la chiave dal sistema di origine

    Infine, esporta la chiave che desideri trasportare in AWS Payment Cryptography utilizzando TR-31 i comandi standard. Specifica la chiave derivata da ECDH come KBPK. La chiave da esportare può essere qualsiasi chiave TDES o AES soggetta a combinazioni TR-31 valide, a condizione che la chiave di composizione sia almeno altrettanto forte della chiave da esportare.

  7. Chiama la chiave di importazione

    Chiama l'import-keyAPI con KeyMaterialType unDiffieHellmanTr31KeyBlock. Usa il KeyArn dell'ultima CA importata nel passaggio 3 percertificate-authority-public-key-identifier, il materiale chiave racchiuso nel passaggio 4 per key-material e il certificato leaf del passaggio 3 per. public-key-certificate Includi la chiave privata ARN del passaggio 1.

    $ 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" } }
  8. Usa la chiave importata per le operazioni crittografiche o l'importazione successiva

    Se la chiave importata KeyUsage era TR31_K0_KEY_ENCRYPTION_KEY, è possibile utilizzare questa chiave per le successive importazioni di chiavi utilizzando. TR-31 Per altri tipi di chiave (come TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY), è possibile utilizzare la chiave direttamente per le operazioni crittografiche.

Importa le chiavi utilizzando tecniche asimmetriche (RSA Unwrap)

Panoramica: AWS Payment Cryptography supporta RSA wrap/unwrap per lo scambio di chiavi quando non è possibile. TR-34 Ad esempio TR-34, questa tecnica utilizza la crittografia asimmetrica RSA per crittografare le chiavi simmetriche per lo scambio. Tuttavia, a differenza di questo metodo TR-34, non è il mittente a firmare il payload. Inoltre, questa tecnica RSA wrap non mantiene l'integrità dei metadati chiave durante il trasferimento perché non include blocchi chiave.

Nota

È possibile utilizzare RSA wrap per importare o esportare TDES e chiavi. AES-128

  1. Chiama il comando Initialize Import

    Chiama get-parameters-for-import per inizializzare il processo di importazione con un KeyMaterialType of. KEY_CRYPTOGRAM Usare RSA_2048 per WrappingKeyAlgorithm lo scambio di chiavi TDES. Usare RSA_3072 o per RSA_4096 scambiare TDES o chiavi. AES-128 Questa API genera una coppia di chiavi per l'importazione delle chiavi, firma la chiave utilizzando una radice del certificato e restituisce sia il certificato che la radice del certificato. Crittografa la chiave da esportare utilizzando questa chiave. Questi certificati sono di breve durata e sono destinati esclusivamente a questo scopo.

    $ 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" }
  2. Installa il certificato pubblico sul sistema di origine chiave

    Con molti HSM, è necessario installare, caricare o considerare attendibile il certificato pubblico (and/orla radice) generato nel passaggio 1 per esportare le chiavi utilizzandolo.

  3. Esporta la chiave dal sistema di origine

    Molti HSM e sistemi correlati supportano l'esportazione delle chiavi tramite RSA wrap. Specificate la chiave pubblica del passaggio 1 come certificato di crittografia (). WrappingKeyCertificate Se hai bisogno della catena di fiducia, usa quella del WrappingKeyCertificateChain passaggio 1. Quando esportate la chiave dal vostro HSM, specificate il formato RSA, con Padding Mode = PKCS #1 v2.2 OAEP (con SHA 256 o SHA 512).

  4. Esegui una chiamata a chiave di importazione

    Chiama l'import-keyAPI con un KeyMaterialType off. KeyMaterial È necessario il codice ImportToken del passaggio 1 e il key-material (materiale chiave confezionato) del passaggio 3. Fornisci i parametri chiave (ad esempio Key Usage) perché RSA wrap non utilizza blocchi chiave.

    $ 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" } }
  5. Utilizza la chiave importata per le operazioni crittografiche o l'importazione successiva

    Se la chiave importata KeyUsage era TR31_K0_KEY_ENCRYPTION_KEY oTR31_K1_KEY_BLOCK_PROTECTION_KEY, è possibile utilizzare questa chiave per le successive importazioni di chiavi utilizzando TR-31. Se il tipo di chiave era di qualsiasi altro tipo (ad esempioTR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY), è possibile utilizzare la chiave direttamente per le operazioni crittografiche.

Importa chiavi simmetriche utilizzando una chiave di scambio di chiavi prestabilita () TR-31

AWS Processo di importazione di chiavi simmetriche con crittografia di pagamento

Quando si scambiano più chiavi o si supporta la rotazione delle chiavi, in genere i partner si scambiano prima una chiave di crittografia a chiave iniziale (KEK). È possibile scambiare KEK con AWS Payment Cryptography, utilizzando tecniche come o. TR-34 Scambio di chiavi fisiche

Dopo aver stabilito un KEK, puoi utilizzarlo per trasportare le chiavi successive (inclusi altri KEK). AWS La crittografia dei pagamenti supporta questo scambio di chiavi tramite ANSI TR-31, ampiamente utilizzato e supportato dai fornitori di HSM.

  1. Import Key Encryption Key (KEK)

    Assicurati di aver già importato il tuo KEK e di avere KeyArn (o KeyAlias) disponibile.

  2. Crea la chiave sulla piattaforma di origine

    Se la chiave non esiste, creala sulla piattaforma di origine. In alternativa, puoi creare la chiave su AWS Payment Cryptography e utilizzare il export comando.

  3. Esporta la chiave dalla piattaforma di origine

    Durante l'esportazione, specifica il formato di esportazione come TR-31. La piattaforma di origine chiederà la chiave da esportare e la chiave di crittografia da utilizzare.

  4. Importa in AWS Crittografia dei pagamenti

    Quando chiami il import-key comando, usa il keyArn (o alias) della tua chiave di crittografia per. WrappingKeyIdentifier Usa l'output della piattaforma sorgente per. WrappedKeyBlock

    Esempio
    $ 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" } }

Importazione di chiavi pubbliche asimmetriche (RSA, ECC)

Tutti i certificati importati devono avere una validità almeno pari a quella del certificato di emissione (predecessore) nella catena. Ciò significa che una CA RSA_2048 può essere utilizzata solo per proteggere un certificato leaf RSA_2048 e un certificato ECC deve essere protetto da un altro certificato ECC di livello equivalente. Un certificato ECC P384 può essere rilasciato solo da una CA P384 o P521. Tutti i certificati non devono essere scaduti al momento dell'importazione.

Importazione di chiavi pubbliche RSA

AWS La crittografia dei pagamenti supporta l'importazione di chiavi RSA pubbliche come certificati. X.509 Per importare un certificato, importate prima il relativo certificato principale. Tutti i certificati non devono essere scaduti al momento dell'importazione. Il certificato deve essere in formato PEM e codificato in base 64.

  1. Importa il certificato principale in AWS Crittografia dei pagamenti

    Usa il seguente comando per importare il certificato principale:

    Esempio
    $ 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" } }
  2. Importa il certificato a chiave pubblica in AWS Crittografia dei pagamenti

    Ora puoi importare una chiave pubblica. Poiché TR-34 ECDH si basa sul passaggio del certificato leaf in fase di esecuzione, questa opzione viene utilizzata solo quando si crittografano i dati utilizzando una chiave pubblica di un altro sistema. KeyUsage sarà impostato su TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION.

    Esempio
    $ 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" } }

Importazione di chiavi pubbliche ECC

AWS La crittografia dei pagamenti supporta l'importazione di chiavi ECC pubbliche come certificati. X.509 Per importare un certificato, importate innanzitutto il relativo certificato CA principale e tutti i certificati intermedi. Tutti i certificati non devono essere scaduti al momento dell'importazione. Il certificato deve essere in formato PEM e codificato in base 64.

  1. Importa il certificato radice ECC in AWS Crittografia dei pagamenti

    Usa il seguente comando per importare il certificato principale:

    Esempio
    $ 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" } }
  2. Importa certificato intermedio in AWS Crittografia dei pagamenti

    Usa il seguente comando per importare un certificato intermedio:

    Esempio
    $ 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" } }
  3. Importa il certificato a chiave pubblica (Leaf) in AWS Crittografia dei pagamenti

    Sebbene sia possibile importare un certificato LEAF ECC, attualmente nella crittografia dei AWS pagamenti non sono definite altre funzioni oltre all'archiviazione. Questo perché quando si utilizzano le funzioni ECDH, il certificato leaf viene passato in fase di esecuzione.