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.
Table des matières
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
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
-
Appelez la commande Initialize Import
Appelez
get-parameters-for-importpour 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 laImportTokenvaleur.$aws payment-cryptography get-parameters-for-import \--key-material-typeTR34_KEY_BLOCK \--wrapping-key-algorithmRSA_2048{ "ImportToken": "import-token-bwxli6ocftypneu5", "ParametersValidUntilTimestamp": 1698245002.065, "WrappingKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0....", "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0....", "WrappingKeyAlgorithm": "RSA_2048" } -
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.
-
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
importKeycommande avec KeyMaterialType ofRootCertificatePublicKeyet KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.Pour les certificats intermédiaires, utilisez la
importKeycommande avec KeyMaterialType ofTrustedCertificatePublicKeyet KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE. Répétez cette procédure pour plusieurs certificats intermédiaires. Utilisez le dernier certificat importéKeyArnde 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.
-
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.
-
Clé d'importation des appels
Appelez l'API ImportKey avec un KeyMaterialType de.
TR34_KEY_BLOCKUtilisez 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 pourkey-materialet 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" } } -
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)
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é.
-
Générer une paire de clés ECC
Appelez
create-keypour 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" } } -
Obtenir un certificat de clé publique
Appelez
get-public-key-certificatepour 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-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." } -
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.
-
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
importKeycommande avec KeyMaterialType ofRootCertificatePublicKeyet KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.Pour les certificats intermédiaires, utilisez la
importKeycommande avec KeyMaterialType ofTrustedCertificatePublicKeyet KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE. Répétez cette procédure pour plusieurs certificats intermédiaires. Utilisez le dernier certificat importéKeyArnde 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.
-
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.
-
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.
-
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 pourkey-materialet 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" } } -
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.
-
Appelez la commande Initialize Import
Appelez get-parameters-for-import pour initialiser le processus d'importation avec un «
KeyMaterialTypeofKEY_CRYPTOGRAM». À utiliserWrappingKeyAlgorithmlorsRSA_2048de l'échange de clés TDES. À utiliserRSA_3072ouRSA_4096lors 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-typeKEY_CRYPTOGRAM \--wrapping-key-algorithmRSA_4096{ "ImportToken": "import-token-bwxli6ocftypneu5", "ParametersValidUntilTimestamp": 1698245002.065, "WrappingKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0....", "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0....", "WrappingKeyAlgorithm": "RSA_4096" } -
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.
-
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 formulaireWrappingKeyCertificateChainde 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). -
Appelez clé d'importation
Appelez l'import-keyAPI avec un
KeyMaterialTypedeKeyMaterial. Vous avez besoin du contenuImportTokende l'étape 1 et dukey-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-jsonfile://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" } } -
Utiliser la clé importée pour les opérations cryptographiques ou l'importation ultérieure
Si la clé importée
KeyUsageétaitTR31_K0_KEY_ENCRYPTION_KEYouTR31_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
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.
-
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.
-
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.
-
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.
-
Importer dans AWS Cryptographie des paiements
Lorsque vous appelez la import-key commande, utilisez le KeyArn (ou alias) de votre clé de chiffrement pour
WrappingKeyIdentifier. 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.
-
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" } } -
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.
-
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" } } -
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" } } -
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.