View a markdown version of this page

Importer des clés - AWS Cryptographie des paiements

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Importer des clés

Important

Les exemples nécessitent la dernière version de l'AWS CLI V2. Avant de commencer, assurez-vous d'avoir effectué la mise à niveau vers la dernière version.

Présentation de l'importation de clés

Note

Lors de l'importation de clés à l'aide X9.143 de blocs de TR-34 clés, AWS Payment Cryptography conserve généralement (mais n'utilise pas) les en-têtes facultatifs. TR-31 L'en-tête HM (HMAC hash type) est utilisé lors des opérations cryptographiques. L'en-tête KP (KCV de la clé d'emballage) est spécifique au processus d'importation et n'est pas conservé.

Lors de l'échange de clés avec une contrepartie, il s'agit généralement d'échanger d'abord une clé d'échange de clés (KEK). Cette clé sera ensuite utilisée pour protéger les clés suivantes. À l'aide de formats électroniques, le KEK peut être échangé à l'aide de techniques asymétriques telles que TR-34 l'ECDH ou le RSA wrap. Les clés suivantes seront échangées à l'aide d'un échange de clés symétrique tel que TR-31. Ce KEK aura une longue durée de vie et ne pourra être mis à jour que toutes les quelques années en fonction de la politique et de sa période de cryptographie définie.

Si une ou deux clés seulement sont échangées, vous pouvez également choisir d'utiliser des techniques asymétriques pour échanger directement cette clé, comme un BDK. AWS La cryptographie des paiements prend en charge les deux méthodes d'échange de clés.

Importation de clés symétriques

Importez des clés à l'aide de techniques asymétriques () TR-34

AWS Processus d'importation des clés de chiffrement des paiements et des clés de chiffrement

TR-34 utilise la cryptographie asymétrique RSA pour chiffrer et signer les clés symétriques à échanger. Cela garantit à la fois la confidentialité (cryptage) et l'intégrité (signature) de la clé encapsulée.

Pour importer vos propres clés, consultez l'exemple de projet AWS de cryptographie des paiements sur GitHub. Pour obtenir des instructions sur la façon d' import/export utiliser des clés depuis d'autres plateformes, un exemple de code est disponible sur GitHub ou consultez le guide de l'utilisateur de ces plates-formes.

  1. Appelez la commande Initialize Import

    Appelez get-parameters-for-import pour initialiser le processus d'importation. Cette API génère une paire de clés pour les importations de clés, signe la clé et renvoie le certificat et la racine du certificat. Chiffrez la clé à exporter à l'aide de cette clé. En TR-34 terminologie, ce certificat est connu sous le nom de certificat KRD. Ces certificats sont codés en base64, ont une courte durée de vie et sont destinés uniquement à cette fin. Enregistrez la ImportToken valeur.

    $ 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. Installation du certificat public sur le système source clé

    Avec la plupart des HSM, vous devez installer, charger ou approuver le certificat public généré à l'étape 1 pour exporter les clés à l'aide de celui-ci. Cela peut inclure l'ensemble de la chaîne de certificats ou uniquement le certificat racine de l'étape 1, selon le HSM.

  3. Générez une paire de clés sur le système source et fournissez une chaîne de certificats à AWS Cryptographie des paiements

    Pour garantir l'intégrité de la charge utile transmise, l'expéditeur (Key Distribution Host ou KDH) la signe. Générez une clé publique à cette fin et créez un certificat de clé publique (X509) à fournir à AWS Payment Cryptography.

    Lorsque vous transférez des clés depuis un HSM, créez une paire de clés sur ce HSM. Le HSM, un tiers ou un service tel que celui qui CA privée AWS peut générer le certificat.

    Chargez le certificat racine dans AWS Payment Cryptography à l'aide de la importKey commande avec KeyMaterialType of RootCertificatePublicKey et KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.

    Pour les certificats intermédiaires, utilisez la importKey commande avec KeyMaterialType of TrustedCertificatePublicKey et KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE. Répétez cette procédure pour plusieurs certificats intermédiaires. Utilisez le dernier certificat importé KeyArn de la chaîne comme entrée pour les commandes d'importation suivantes.

    Note

    N'importez pas le certificat Leaf. Fournissez-le directement lors de la commande d'importation.

  4. Exporter la clé depuis le système source

    De nombreux HSM et systèmes associés prennent en charge l'exportation de clés en utilisant la TR-34 norme. Spécifiez la clé publique de l'étape 1 en tant que certificat KRD (cryptage) et la clé de l'étape 3 en tant que certificat KDH (signature). Pour importer dans AWS Payment Cryptography, spécifiez le format en tant que format à deux passes TR-34.2012 non CMS, également appelé format TR-34 Diebold.

  5. Clé d'importation des appels

    Appelez l'API ImportKey avec un KeyMaterialType de. TR34_KEY_BLOCK Utilisez le KeyArn de la dernière autorité de certification importée à l'étape 3 pourcertificate-authority-public-key-identifier, le matériel clé encapsulé de l'étape 4 pour key-material et le certificat feuille de l'étape 3 poursigning-key-certificate. Incluez le jeton d'importation de l'étape 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. Utiliser la clé importée pour les opérations cryptographiques ou l'importation ultérieure

    Si la clé importée KeyUsage était TR31_K0_KEY_ENCRYPTION_KEY, vous pouvez utiliser cette clé pour les importations de clés suivantes à l'aide de. TR-31 Pour les autres types de clés (tels que TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY), vous pouvez utiliser la clé directement pour les opérations cryptographiques.

Importez des clés à l'aide de techniques asymétriques (ECDH)

AWS Processus d'importation de clés de chiffrement de la clé de chiffrement des paiements à l'aide de l'ECDH

Elliptic Curve Diffie-Hellman (ECDH) utilise la cryptographie asymétrique ECC pour établir une clé partagée entre deux parties sans nécessiter de clés pré-échangées. Les clés ECDH sont éphémères, c'est pourquoi AWS Payment Cryptography ne les stocke pas. Dans ce processus, une valeur unique KBPK/KEK est dérivée à l'aide de l'ECDH. Cette clé dérivée est immédiatement utilisée pour encapsuler la clé que vous souhaitez transférer, qui peut être un autre KBPK, une clé IPEK ou un autre type de clé.

Lors de l'importation, le système d'envoi est communément appelé Partie U (Initiateur) et la cryptographie des AWS paiements est connue sous le nom de Partie V (Répondeur).

Note

Bien que l'ECDH puisse être utilisé pour échanger n'importe quel type de clé symétrique, c'est la seule approche qui permet de transférer AES-256 des clés en toute sécurité.

  1. Générer une paire de clés ECC

    Appelez create-key pour créer une paire de clés ECC pour ce processus. Cette API génère une paire de clés pour les importations ou les exportations de clés. Lors de la création, spécifiez quel type de clé peut être dérivé à l'aide de cette clé ECC. Lorsque vous utilisez ECDH pour échanger (encapsuler) d'autres clés, utilisez une valeur deTR31_K1_KEY_BLOCK_PROTECTION_KEY.

    Note

    Bien que l'ECDH de bas niveau génère une clé dérivée qui peut être utilisée à toutes fins, la cryptographie des AWS paiements limite la réutilisation accidentelle d'une clé à des fins multiples en autorisant l'utilisation d'une clé uniquement pour un seul type de clé dérivée.

    $ 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. Obtenir un certificat de clé publique

    Appelez get-public-key-certificate pour recevoir la clé publique sous forme de X.509 certificat signé par l'autorité de certification de votre compte et spécifique à la cryptographie des AWS paiements dans une région spécifique.

    Exemple
    $ aws payment-cryptography get-public-key-certificate \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv
    { "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }
  3. Installer un certificat public sur le système de contrepartie (Partie U)

    Dans de nombreux HSM, vous devez installer, charger ou approuver le certificat public généré à l'étape 1 pour exporter les clés à l'aide de celui-ci. Cela peut inclure l'ensemble de la chaîne de certificats ou uniquement le certificat racine de l'étape 1, selon le HSM. Consultez la documentation de votre HSM pour plus d'informations.

  4. Générez une paire de clés ECC sur le système source et fournissez une chaîne de certificats à AWS Cryptographie des paiements

    Dans ECDH, chaque partie génère une paire de clés et convient d'une clé commune. Pour que AWS Payment Cryptography puisse dériver la clé, elle a besoin de la clé publique de la contrepartie au format clé X.509 publique.

    Lorsque vous transférez des clés depuis un HSM, créez une paire de clés sur ce HSM. Pour les HSM qui prennent en charge les blocs de touches, l'en-tête de clé sera similaire àD0144K3EX00E0000. Lors de la création du certificat, vous générez généralement un CSR sur le HSM, puis le HSM, un tiers ou un service tel que celui qui CA privée AWS peut générer le certificat.

    Chargez le certificat racine dans AWS Payment Cryptography à l'aide de la importKey commande avec KeyMaterialType of RootCertificatePublicKey et KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.

    Pour les certificats intermédiaires, utilisez la importKey commande avec KeyMaterialType of TrustedCertificatePublicKey et KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE. Répétez cette procédure pour plusieurs certificats intermédiaires. Utilisez le dernier certificat importé KeyArn de la chaîne comme entrée pour les commandes d'importation suivantes.

    Note

    N'importez pas le certificat Leaf. Fournissez-le directement lors de la commande d'importation.

  5. Générez une clé à usage unique à l'aide de l'ECDH sur le HSM Party U

    De nombreux HSM et systèmes associés prennent en charge l'établissement de clés à l'aide de l'ECDH. Spécifiez la clé publique de l'étape 1 comme clé publique et la clé de l'étape 3 comme clé privée. Pour les options autorisées, telles que les méthodes de dérivation, consultez le guide de l'API.

    Note

    Les paramètres de dérivation tels que le type de hachage doivent correspondre exactement des deux côtés. Dans le cas contraire, vous allez générer une clé différente.

  6. Exporter la clé depuis le système source

    Enfin, exportez la clé que vous souhaitez transporter vers AWS Payment Cryptography à l'aide des TR-31 commandes standard. Spécifiez la clé dérivée ECDH en tant que KBPK. La clé à exporter peut être n'importe quelle clé TDES ou AES soumise à des combinaisons TR-31 valides, à condition que la clé d'encapsulation soit au moins aussi forte que la clé à exporter.

  7. Clé d'importation des appels

    Appelez l'import-keyAPI avec un KeyMaterialType deDiffieHellmanTr31KeyBlock. Utilisez le KeyArn de la dernière autorité de certification importée à l'étape 3 pourcertificate-authority-public-key-identifier, le matériel clé encapsulé de l'étape 4 pour key-material et le certificat feuille de l'étape 3 pourpublic-key-certificate. Incluez l'ARN de clé privée de l'étape 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. Utiliser la clé importée pour les opérations cryptographiques ou l'importation ultérieure

    Si la clé importée KeyUsage était TR31_K0_KEY_ENCRYPTION_KEY, vous pouvez utiliser cette clé pour les importations de clés suivantes à l'aide de. TR-31 Pour les autres types de clés (tels que TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY), vous pouvez utiliser la clé directement pour les opérations cryptographiques.

Importez des clés à l'aide de techniques asymétriques (RSA Unwrap)

Aperçu : La cryptographie des AWS paiements prend en charge le RSA wrap/unwrap pour l'échange de clés lorsque cela TR-34 n'est pas possible. Par exemple TR-34, cette technique utilise la cryptographie asymétrique RSA pour chiffrer les clés symétriques à échanger. Cependant TR-34, contrairement à cette méthode, l'expéditeur ne signe pas la charge utile. De plus, cette technique d'encapsulation RSA ne préserve pas l'intégrité des métadonnées clés pendant le transfert car elle n'inclut pas de blocs de clés.

Note

Vous pouvez utiliser RSA wrap pour importer ou exporter des TDES et AES-128 des clés.

  1. Appelez la commande Initialize Import

    Appelez get-parameters-for-import pour initialiser le processus d'importation avec un « KeyMaterialType of KEY_CRYPTOGRAM ». À utiliser WrappingKeyAlgorithm lors RSA_2048 de l'échange de clés TDES. À utiliser RSA_3072 ou RSA_4096 lors de l'échange de TDES ou de AES-128 clés. Cette API génère une paire de clés pour les importations de clés, signe la clé à l'aide d'une racine de certificat et renvoie à la fois le certificat et la racine du certificat. Chiffrez la clé à exporter à l'aide de cette clé. Ces certificats sont de courte durée et ne sont destinés qu'à cette fin.

    $ 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. Installation du certificat public sur le système source clé

    Avec de nombreux HSM, vous devez installer, charger ou approuver le certificat public (and/orsa racine) généré à l'étape 1 pour exporter les clés à l'aide de celui-ci.

  3. Exporter la clé depuis le système source

    De nombreux HSM et systèmes associés prennent en charge l'exportation de clés à l'aide de RSA wrap. Spécifiez la clé publique de l'étape 1 en tant que certificat de chiffrement (WrappingKeyCertificate). Si vous avez besoin de la chaîne de confiance, utilisez le formulaire WrappingKeyCertificateChain de l'étape 1. Lorsque vous exportez la clé depuis votre HSM, spécifiez le format RSA, avec Padding Mode = PKCS #1 v2.2 OAEP (avec SHA 256 ou SHA 512).

  4. Appelez clé d'importation

    Appelez l'import-keyAPI avec un KeyMaterialType deKeyMaterial. Vous avez besoin du contenu ImportToken de l'étape 1 et du key-material (matériel clé enveloppé) de l'étape 3. Fournissez les paramètres clés (tels que l'utilisation des clés) car RSA wrap n'utilise pas de blocs de touches.

    $ 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. Utiliser la clé importée pour les opérations cryptographiques ou l'importation ultérieure

    Si la clé importée KeyUsage était TR31_K0_KEY_ENCRYPTION_KEY ouTR31_K1_KEY_BLOCK_PROTECTION_KEY, vous pouvez utiliser cette clé pour les importations de clés suivantes à l'aide de TR-31. Si le type de clé était d'un autre type (tel queTR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY), vous pouvez l'utiliser directement pour les opérations cryptographiques.

Importez des clés symétriques à l'aide d'une clé d'échange de clés préétablie () TR-31

AWS Processus d'importation de clés symétriques de cryptographie des paiements

Lors de l'échange de plusieurs clés ou de la prise en charge de la rotation des clés, les partenaires échangent généralement d'abord une clé de chiffrement à clé initiale (KEK). Vous pouvez échanger des KEK avec la cryptographie des AWS paiements, en utilisant des techniques telles TR-34 que ou. Échange de clés physiques

Après avoir établi un KEK, vous pouvez l'utiliser pour transporter les clés suivantes (y compris les autres KEK). AWS La cryptographie des paiements prend en charge cet échange de clés en utilisant la norme ANSI TR-31, largement utilisée et prise en charge par les fournisseurs de HSM.

  1. Clé de chiffrement de la clé d'importation (KEK)

    Assurez-vous que vous avez déjà importé votre KEK et que le KeyArn (ou KeyAlias) est disponible.

  2. Créer une clé sur la plateforme source

    Si la clé n'existe pas, créez-la sur la plateforme source. Vous pouvez également créer la clé dans AWS Payment Cryptography et utiliser la export commande.

  3. Exporter la clé depuis la plateforme source

    Lors de l'exportation, spécifiez le format d'exportation comme TR-31. La plateforme source demandera la clé à exporter et la clé de chiffrement à utiliser.

  4. Importer dans AWS Cryptographie des paiements

    Lorsque vous appelez la import-key commande, utilisez le KeyArn (ou alias) de votre clé de chiffrement pourWrappingKeyIdentifier. Utilisez la sortie de la plate-forme source pourWrappedKeyBlock.

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

Importation de clés publiques asymétriques (RSA, ECC)

Tous les certificats importés doivent être au moins aussi solides que leur certificat émetteur (prédécesseur) dans la chaîne. Cela signifie qu'un RSA_2048 CA ne peut être utilisé que pour protéger un certificat feuille RSA_2048 et qu'un certificat ECC doit être protégé par un autre certificat ECC de résistance équivalente. Un certificat ECC P384 ne peut être délivré que par une autorité de certification P384 ou P521. Tous les certificats ne doivent pas avoir expiré au moment de l'importation.

Importation de clés publiques RSA

AWS La cryptographie des paiements prend en charge l'importation de clés RSA publiques sous forme X.509 de certificats. Pour importer un certificat, importez d'abord son certificat racine. Tous les certificats ne doivent pas avoir expiré au moment de l'importation. Le certificat doit être au format PEM et codé en base64.

  1. Importer le certificat racine dans AWS Cryptographie des paiements

    Utilisez la commande suivante pour importer le certificat racine :

    Exemple
    $ 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. Importer un certificat de clé publique dans AWS Cryptographie des paiements

    Vous pouvez désormais importer une clé publique. Comme TR-34 l'ECDH repose sur la transmission du certificat feuille au moment de l'exécution, cette option n'est utilisée que lors du chiffrement de données à l'aide d'une clé publique provenant d'un autre système. KeyUsage sera défini sur TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION.

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

Importation de clés publiques ECC

AWS La cryptographie des paiements permet d'importer des clés ECC publiques sous forme X.509 de certificats. Pour importer un certificat, importez d'abord son certificat CA racine et tous les certificats intermédiaires. Tous les certificats ne doivent pas avoir expiré au moment de l'importation. Le certificat doit être au format PEM et codé en base64.

  1. Importez le certificat racine ECC dans AWS Cryptographie des paiements

    Utilisez la commande suivante pour importer le certificat racine :

    Exemple
    $ 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. Importer un certificat intermédiaire dans AWS Cryptographie des paiements

    Utilisez la commande suivante pour importer un certificat intermédiaire :

    Exemple
    $ 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. Importer un certificat de clé publique (feuille) dans AWS Cryptographie des paiements

    Bien que vous puissiez importer un certificat ECC Leaf, aucune fonction n'est actuellement définie dans AWS Payment Cryptography à part le stockage. En effet, lors de l'utilisation des fonctions ECDH, le certificat leaf est transmis lors de l'exécution.