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.
Clés d'exportation
Table des matières
Exporter des clés symétriques
Important
Assurez-vous de disposer de la dernière version de AWS CLI avant de commencer. Pour effectuer la mise à niveau, reportez-vous à la section Installation du AWS CLI.
Exportez 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. Le cryptage protège la confidentialité, tandis que la signature garantit l'intégrité. Lorsque vous exportez des clés, AWS Payment Cryptography fait office d'hôte de distribution de clés (KDH) et votre système cible devient le périphérique de réception de clés (KRD).
Note
Si votre HSM prend en charge TR-34 l'exportation mais pas l' TR-34 importation, nous vous recommandons d'établir d'abord un KEK partagé entre votre HSM et AWS Payment Cryptography à l'aide de. TR-34 Vous pouvez ensuite les utiliser TR-31 pour transférer les clés restantes.
-
Initialiser le processus d'exportation
Exécutez get-parameters-for-export pour générer une paire de clés pour les exportations de clés. Nous utilisons cette paire de clés pour signer la TR-34 charge utile. En TR-34 termes de terminologie, il s'agit du certificat de signature du KDH. Les certificats sont de courte durée et valables uniquement pour la durée spécifiée dans
ParametersValidUntilTimestamp.Note
Tous les certificats sont encodés en base64.
Exemple
$aws payment-cryptography get-parameters-for-export \--signing-key-algorithmRSA_2048 \--key-material-typeTR34_KEY_BLOCK{ "SigningKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJ...", "SigningKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS....", "SigningKeyAlgorithm": "RSA_2048", "ExportToken": "export-token-au7pvkbsq4mbup6i", "ParametersValidUntilTimestamp": "2023-06-13T15:40:24.036000-07:00" } -
Importez le AWS Certificat de cryptographie de paiement envoyé à votre système de réception
Importez la chaîne de certificats de l'étape 1 vers votre système de réception.
-
Configurez les certificats de votre système de réception
Pour protéger la charge utile transmise, l'expéditeur (KDH) la chiffre. Votre système de réception (généralement votre HSM ou celui de votre partenaire) doit générer une clé publique et créer un certificat de clé X.509 publique. Vous pouvez l'utiliser CA privée AWS pour générer des certificats, mais vous pouvez utiliser n'importe quelle autorité de certification.
Une fois que vous avez obtenu le certificat, importez le certificat racine dans AWS Payment Cryptography à l'aide de la ImportKey commande. Définissez
KeyMaterialTypesurRootCertificatePublicKeyetKeyUsageTypesurTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.Nous l'utilisons
TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATUREcomme cléKeyUsageTypecar il s'agit de la clé racine qui signe le certificat Leaf. Vous n'avez pas besoin d'importer des certificats Leaf dans AWS Payment Cryptography : vous pouvez les transmettre en ligne.Note
Si vous avez déjà importé le certificat racine, ignorez cette étape. Pour les certificats intermédiaires, utilisez
TrustedCertificatePublicKey. -
Exportez votre clé
Appelez l'ExportKeyAPI avec
KeyMaterialTypeset toTR34_KEY_BLOCK. Vous devez fournir :-
Le KeyArn de l'autorité de certification racine de l'étape 3 en tant que
CertificateAuthorityPublicKeyIdentifier -
Le certificat foliaire de l'étape 3 en tant que
WrappingKeyCertificate -
Le KeyArn (ou alias) de la clé que vous souhaitez exporter en tant que
--export-key-identifier -
Le jeton d'exportation de l'étape 1
Exemple
$aws payment-cryptography export-key \--export-key-identifier"example-export-key" \--key-material'{"Tr34KeyBlock": { \ "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/4kd6xud22e64wcbk", \ "ExportToken": "export-token-au7pvkbsq4mbup6i", \ "KeyBlockFormat": "X9_TR34_2012", \ "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFXZ0F3SUJBZ0lSQ..."} \ }'{ "WrappedKey": { "KeyMaterial": "308205A106092A864886F70D010702A08205923082058...", "WrappedKeyMaterialFormat": "TR34_KEY_BLOCK" } } -
Exportez 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, un BDK, une clé IPEK ou d'autres types de clés.
Lors de l'exportation, la cryptographie des AWS paiements est appelée Partie U (Initiateur) et le système récepteur est appelé Partie V (Répondeur).
Note
L'ECDH peut être utilisé pour échanger n'importe quel type de clé symétrique, mais c'est la seule approche qui peut être utilisée pour transférer des AES-256 clés si aucun KEK n'est déjà établi.
-
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 V)
Dans de nombreux HSM, vous devez installer, charger ou approuver le certificat public généré à l'étape 1 pour établir les clés. Cela peut inclure l'ensemble de la chaîne de certificats ou uniquement le certificat racine, selon le HSM. Consultez la documentation de votre HSM pour obtenir des instructions spécifiques.
-
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 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'exportation suivantes.Note
N'importez pas le certificat Leaf. Fournissez-le directement lors de la commande d'exportation.
-
Dériver la clé et exporter la clé depuis AWS Cryptographie des paiements
Lors de l'exportation, le service dérive une clé à l'aide de l'ECDH, puis l'utilise immédiatement comme KBPK pour encapsuler la clé à exporter. TR-31 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.
$aws payment-cryptography export-key \ --export-key-identifier arn:aws:payment-cryptography:us-west-2:529027455495:key/e3a65davqhbpjm4h \ --key-material='{ "DiffieHellmanTr31KeyBlock": { "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/swseahwtq2oj6zi5", "DerivationData": { "SharedInformation": "ADEF567890" }, "DeriveKeyAlgorithm": "AES_256", "KeyDerivationFunction": "NIST_SP800", "KeyDerivationHashAlgorithm": "SHA_256", "PrivateKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv", "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FUR..." } }'{ "WrappedKey": { "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK", "KeyMaterial": "D0112K1TB00E00007012724C0FAAF64DA50E2FF4F9A94DF50441143294E0E995DB2171554223EAA56D078C4CFCB1C112B33BBF05597EE700", "KeyCheckValue": "E421AD", "KeyCheckValueAlgorithm": "ANSI_X9_24" } } -
Dérivez une clé à usage unique à l'aide de l'ECDH sur le HSM Party V
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.
-
Importer la clé vers le système cible
Enfin, importez la clé depuis AWS Payment Cryptography à l'aide des TR-31 commandes standard. Spécifiez la clé dérivée ECDH en tant que KBPK et utilisez le bloc de TR-31 clé qui a été précédemment exporté depuis AWS Payment Cryptography.
Exportez des clés à l'aide de techniques asymétriques (RSA Wrap)
Lorsque TR-34 ce n'est pas disponible, vous pouvez utiliser RSA wrap/unwrap pour échanger des clés. Par exemple TR-34, cette méthode utilise la cryptographie asymétrique RSA pour chiffrer les clés symétriques. Cependant, l'enveloppe RSA n'inclut pas :
-
Signature de la charge utile par l'expéditeur
-
Blocs clés qui préservent l'intégrité des métadonnées clés pendant le transport
Note
Vous pouvez utiliser l'enveloppe RSA pour exporter des TDES et AES-128 des clés.
-
Créez une clé RSA et un certificat sur votre système de réception
Créez ou identifiez une clé RSA pour recevoir la clé encapsulée. Nous exigeons que les clés soient au format X.509 certificat. Assurez-vous que le certificat est signé par un certificat racine que vous pouvez importer dans AWS Payment Cryptography.
-
Importez le certificat public racine dans AWS Cryptographie des paiements
À utiliser import-key avec l'
--key-materialoption d'importation du certificat$aws payment-cryptography import-key \--key-material='{"RootCertificatePublicKey": { \ "KeyAttributes": { \ "KeyAlgorithm": "RSA_4096", \ "KeyClass": "PUBLIC_KEY", \ "KeyModesOfUse": {"Verify": true}, \ "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \ "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRV..."} \ }'{ "Key": { "CreateTimestamp": "2023-09-14T10:50:32.365000-07:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/nsq2i3mbg6sn775f", "KeyAttributes": { "KeyAlgorithm": "RSA_4096", "KeyClass": "PUBLIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE" }, "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2023-09-14T10:50:32.365000-07:00" } } -
Exportez votre clé
Dites à AWS Payment Cryptography d'exporter votre clé à l'aide de votre certificat Leaf. Vous devez spécifier :
-
L'ARN du certificat racine que vous avez importé à l'étape 2
-
Le certificat foliaire pour l'exportation
-
La clé symétrique à exporter
La sortie est une version encapsulée (cryptée) binaire codée en hexadécimal de votre clé symétrique.
Exemple Exemple — Exportation d'une clé
$cat export-key.json{ "ExportKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyMaterial": { "KeyCryptogram": { "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl", "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDEXAMPLE...", "WrappingSpec": "RSA_OAEP_SHA_256" } } }$aws payment-cryptography export-key \--cli-input-jsonfile://export-key.json{ "WrappedKey": { "KeyMaterial": "18874746731E9E1C4562E4116D1C2477063FCB08454D757D81854AEAEE0A52B1F9D303FA29C02DC82AE7785353816EFAC8B5F4F79CC29A1DDA80C65F34364373D8C74E5EC67E4CB55DEA7F091210DCACD3C46FE4A5DAA0F0D9CAA7C959CA7144A5E7052F34AAED93EF44C004AE7ABEBD616C955BBA10993C06FB905319F87B9B4E1B7A7C7D17AF15B6154E807B9C574387A43197C31C6E565554437A252EFF8AC81613305760D11F9B53B08A1BA79EC7E7C82C48083C4E2D0B6F86C34AB83647BDD7E85240AD1AF3C0F6CA8C5BF323BB2D3896457C554F978F4C9436513F494130A6FADBC038D51898AAD72E02A89FF256C524E7B5D85B813751B718C4933D9DC6031F2C5B2E13351A54B6021B2DB72AA0C7EA54727FBCD557E67E5E7CC2E165576E39DB4DA33510BA9A3C847313103A18EF3B23A3440471864D58C79C569D5CD2A653AC16043CA9A61E6878F74C18EE15F9AB23754C37A945B68C0437C19F0079F74B573D9B59DAC25A20781DBE8075C947C9EDC76177A1B0794288CBF89567A541E8401C74E85B8E1C3E501860AF702F641CAA04327018A84EF3A82932A2BCF37047AB40FE77E0A6F68D0904C7E60983CD6F871D5E0E27EEF425C97D39E9394E8927EEF5D2EA9388DF3C5C241F99378DF5DADE8D0F0CF453C803BA38BA702B9651685FAFA6DCB4B14333F8D3C57F2D93E0852AA94EEC3AF3217CAE5873EFD9", "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM" } } -
-
Importez la clé dans votre système de réception
De nombreux HSM et systèmes associés prennent en charge l'importation de clés à l'aide de RSA Unwrap (y compris la cryptographie des AWS paiements). Lors de l'importation, spécifiez :
-
La clé publique de l'étape 1 en tant que certificat de chiffrement
-
Le format en tant que RSA
-
Mode de remplissage en tant que PKCS #1 v2.2 OAEP (avec SHA 256)
Note
Nous sortons la clé encapsulée au format HexBinary. Vous devrez peut-être convertir le format si votre système nécessite une représentation binaire différente, telle que base64.
-
Exportez 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. Nous prenons en charge cet échange de clés à l'aide de la norme ANSI TR-31, qui est largement prise en charge par les fournisseurs de HSM.
-
Configurez votre clé de chiffrement par clé (KEK)
Assurez-vous d'avoir déjà échangé votre KEK et d'avoir le KeyArn (ou KeyAlias) disponible.
-
Créez votre clé sur AWS Cryptographie des paiements
Créez votre clé si elle n'existe pas déjà. Vous pouvez également créer la clé sur votre autre système et utiliser la commande d'importation.
-
Exportez votre clé depuis AWS Cryptographie des paiements
Lors de l'exportation au TR-31 format, spécifiez la clé que vous souhaitez exporter et la clé d'encapsulation à utiliser.
Exemple Exemple — Exportation d'une clé à l'aide du bloc de touches TR31
$aws payment-cryptography export-key \--key-material='{"Tr31KeyBlock": \ { "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza" }}' \--export-key-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "D0144K0AB00E0000A24D3ACF3005F30A6E31D533E07F2E1B17A2A003B338B1E79E5B3AD4FBF7850FACF9A3784489581A543C84816C8D3542AE888CE6D4EDDFD09C39957B131617BC", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } } -
Importez la clé dans votre système
Utilisez l'implémentation de clé d'importation de votre système pour importer la clé.
Exporter les clés initiales DUKPT () IPEK/IK
Lorsque vous utilisez DUKPT, vous pouvez générer une clé de dérivation de base (BDK) unique pour un parc de terminaux. Les terminaux n'ont pas d'accès direct au BDK. Au lieu de cela, chaque terminal reçoit une clé de terminal initiale unique, appelée IPEK ou Initial Key (IK). Chaque IPEK est dérivé du BDK à l'aide d'un numéro de série clé (KSN) unique.
La structure du KSN varie selon le type de cryptage :
-
Pour TDES : le KSN à 10 octets inclut :
-
24 bits pour l'identifiant du jeu de clés
-
19 bits pour l'ID du terminal
-
21 bits pour le compteur de transactions
-
-
Pour AES : le KSN à 12 octets inclut :
-
32 bits pour l'ID BDK
-
32 bits pour l'identifiant de dérivation (ID)
-
32 bits pour le compteur de transactions
-
Nous proposons un mécanisme pour générer et exporter ces clés initiales. Vous pouvez exporter les clés générées à l'aide des méthodes d'encapsulation TR-31 TR-34, ou RSA. Notez que les clés IPEK ne sont pas conservées et ne peuvent pas être utilisées pour des opérations ultérieures sur AWS Payment Cryptography.
Nous n'imposons pas la division entre les deux premières parties du KSN. Si vous souhaitez enregistrer l'identifiant de dérivation avec le BDK, vous pouvez utiliser AWS des balises.
Note
La partie compteur du KSN (32 bits pour AES DUKPT) n'est pas utilisée pour la dérivation. IPEK/IK Par exemple, les entrées 12345678901234560001 et 12345678901234569999 généreront le même IPEK.
$aws payment-cryptography export-key \--key-material='{"Tr31KeyBlock": { \ "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"}} ' \--export-key-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \--export-attributes'ExportDukptInitialKey={KeySerialNumber=12345678901234560001}'
{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "B0096B1TX00S000038A8A06588B9011F0D5EEF1CCAECFA6962647A89195B7A98BDA65DDE7C57FEA507559AF2A5D601D1", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }
Spécifier les en-têtes des blocs de touches pour l'exportation
Vous pouvez modifier ou ajouter des informations sur les blocs de touches lors de l'exportation au format ASC TR-31 ou TR-34 en format. Le tableau suivant décrit le format du bloc de TR-31 touches et les éléments que vous pouvez modifier lors de l'exportation.
| Attribut Key Block | Objectif | Pouvez-vous modifier pendant l'exportation ? | Remarques |
|---|---|---|---|
ID de version |
Définit la méthode utilisée pour protéger le matériau clé. La norme comprend :
|
Non |
Nous utilisons la version B pour les clés d'emballage TDES et la version D pour les clés d'emballage AES. Nous prenons en charge les versions A et C uniquement pour les opérations d'importation. |
Longueur du bloc-clé |
Spécifie la longueur du message restant |
Non |
Nous calculons cette valeur automatiquement. La longueur peut sembler incorrecte avant le déchiffrement de la charge utile, car nous pouvons ajouter un remplissage de touches selon les spécifications. |
Utilisation de la clé |
Définit les objectifs autorisés pour la clé, tels que :
|
Non |
|
Algorithm |
Spécifie l'algorithme de la clé sous-jacente. Nous soutenons :
|
Non |
Nous exportons cette valeur telle quelle. |
Utilisation de la clé |
Définit les opérations autorisées, telles que :
|
Oui* |
|
Version clé |
Indique le numéro de version de la clé replacement/rotation. La valeur par défaut est 00 si elle n'est pas spécifiée. |
Oui - Peut être ajouté |
|
Exportabilité clé |
Détermine si la clé peut être exportée :
|
Oui* |
|
Blocs de touches optionnels |
Oui - Peut être ajouté |
Les blocs de clés facultatifs sont des name/value paires liées cryptographiquement à la clé. Par exemple, KeySet ID pour les clés DUKPT. Nous calculons automatiquement le nombre de blocs, la longueur de chaque bloc et le bloc de remplissage (PB) en fonction de votre name/value paire saisie. |
*Lorsque vous modifiez des valeurs, votre nouvelle valeur doit être plus restrictive que la valeur actuelle dans AWS Payment Cryptography. Par exemple :
-
Si le mode d'utilisation actuel des touches est Generate=True, Verify=True, vous pouvez le changer en Generate=True, Verify=False
-
Si la clé est déjà définie sur Non exportable, vous ne pouvez pas la changer en Exportable
Lorsque vous exportez des clés, nous appliquons automatiquement les valeurs actuelles de la clé exportée. Toutefois, vous souhaiterez peut-être modifier ou ajouter ces valeurs avant de les envoyer au système récepteur. Voici quelques scénarios courants :
-
Lorsque vous exportez une clé vers un terminal de paiement, définissez son exportabilité sur
Not Exportablecar les terminaux n'importent généralement que des clés et ne devraient pas les exporter. -
Lorsque vous devez transmettre les métadonnées de clé associées au système récepteur, utilisez des en-têtes TR-31 facultatifs pour lier cryptographiquement les métadonnées à la clé au lieu de créer une charge utile personnalisée.
-
Définissez la version de la clé à l'aide du
KeyVersionchamp pour suivre la rotation des touches.
TR-31/X9.143 définit des en-têtes communs, mais vous pouvez utiliser d'autres en-têtes à condition qu'ils respectent les paramètres de cryptographie des AWS paiements et que votre système récepteur puisse les accepter. Pour plus d'informations sur les en-têtes de blocs de touches lors de l'exportation, consultez la section En-têtes de blocs de touches dans le guide de l'API.
Voici un exemple d'exportation d'une clé BDK (par exemple, vers un KIF) avec ces spécifications :
-
Version clé : 02
-
KeyExportability: NON EXPORTABLE
-
KeySetID : 00ABCDEFAB (00 indique la clé TDES, ABCDEFABCD est la clé initiale)
Comme nous ne spécifions pas les modes d'utilisation des clés, cette clé hérite du mode d'utilisation de arn:aws:payment-cryptography:us-east- 2:111122223333 : (= true). key/5rplquuwozodpwsp DeriveKey
Note
Même si vous définissez l'exportabilité sur Non exportable dans cet exemple, le KIF peut toujours :
-
Clés de dérivation telles que IPEK/IK celles utilisées dans DUKPT
-
Exportez ces clés dérivées pour les installer sur les appareils
Cela est spécifiquement autorisé par les normes.
$aws payment-cryptography export-key \--key-material='{"Tr31KeyBlock": { \ "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza", \ "KeyBlockHeaders": { \ "KeyModesOfUse": { \ "Derive": true}, \ "KeyExportability": "NON_EXPORTABLE", \ "KeyVersion": "02", \ "OptionalBlocks": { \ "BI": "00ABCDEFABCD"}}} \ }' \--export-key-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
{ "WrappedKey": { "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK", "KeyMaterial": "EXAMPLE_KEY_MATERIAL_TR31", "KeyCheckValue": "A4C9B3", "KeyCheckValueAlgorithm": "ANSI_X9_24" } }
En-têtes communs
X9.143 définit certains en-têtes pour les cas d'utilisation courants. À l'exception de l'en-tête HM (HMAC Hash), AWS Payment Cryptography n'analyse ni n'utilise ces en-têtes.
| Nom de l’en-tête | Objectif | Validation typique | Remarques |
|---|---|---|---|
BI |
Identifiant de clé de dérivation de base pour DUKPT |
2 caractères hexadécimaux (00 pour TDES, 11 pour AES) puis 10 caractères hexadécimaux pour TDES KSI ou 8 caractères hexadécimaux pour BDK ID (AES DUKPT). |
Contient le (ID BDK, pour AES DUKPT) ou l'identifiant du jeu de clés (KSI, pour TDES DUKPT). Peut être utilisé lors de l'échange du BDK ID ou du KSI, mais il n'est pas nécessaire d'échanger les autres données contenues dans les blocs IK et KS. Le BI est généralement utilisé lors de la transmission vers un KIF, tandis que IK ou KS sont utilisés lors de l'injection dans le terminal lui-même. |
HM |
Spécifie le type de hachage pour les opérations HMAC |
|
Le service renseigne automatiquement ce champ lors de l'exportation et l'analyse lors de l'importation. Les types de hachage non pris en charge par le service, tels que SHAKE128, peuvent être importés mais peuvent ne pas être utilisables pour les fonctions cryptographiques. |
cinématique inverse |
Numéro de série de la clé initiale pour AES DUKPT |
16 caractères hexadécimaux |
Cette valeur est utilisée pour instancier l'utilisation de la clé DUKPT initiale sur le périphérique récepteur et identifie la clé initiale dérivée d'un BDK. Ce champ contient généralement les données de dérivation mais aucun compteur. Utilisez KS pour TDES DUKPT. |
KS |
Numéro de série de la clé initiale pour TDES DUKPT |
20 caractères hexadécimaux |
Cette valeur est utilisée pour instancier l'utilisation de la clé DUKPT initiale sur le périphérique récepteur et identifie la clé initiale dérivée d'un BDK. Ce champ contient généralement les données de dérivation + une valeur de compteur mise à zéro. Utilisez OK pour AES DUKPT. |
KP |
Valeur de contrôle clé du KBPK |
2 caractères hexadécimaux représentent la méthode KCV (00 pour la X9.24 méthode et 01 pour la méthode CMAC). Suivi de la valeur KCV qui est généralement composée de 6 caractères hexadécimaux. Par exemple, 010FA329 représente le KCV de 0FA329 calculé à l'aide de la méthode 01 (CMAC). |
Calculé conformément à X9.24-1-2017 l'annexe A de l'ANSI ; le KCV est utilisé pour la validation des clés et non comme mécanisme d'intégrité. |
PB |
Bloc de rembourrage |
caractères ASCII imprimables aléatoires |
Le service renseigne automatiquement ce champ lors de l'exportation pour s'assurer que les en-têtes facultatifs sont des multiples de la longueur du bloc de chiffrement |
Exporter des clés asymétriques (RSA)
Pour exporter une clé publique sous forme de certificat, utilisez la get-public-key-certificate commande. Cette commande renvoie :
-
Le certificat
-
Le certificat racine
Les deux certificats sont codés en base64.
Note
Cette opération n'est pas idempotente : les appels suivants peuvent générer des certificats différents même en utilisant la même clé sous-jacente.
Exemple
$aws payment-cryptography get-public-key-certificate \--key-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb
{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }