View a markdown version of this page

Schlüssel exportieren - AWS Kryptografie im Zahlungsverkehr

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schlüssel exportieren

Exportiert symmetrische Schlüssel

Wichtig

Stellen Sie sicher, dass Sie die neueste Version von haben, AWS CLI bevor Sie beginnen. Informationen zum Upgrade finden Sie unter Installation von AWS CLI.

Exportieren Sie Schlüssel mithilfe asymmetrischer Techniken () TR-34

TR-34 verwendet asymmetrische RSA-Kryptografie, um symmetrische Schlüssel für den Austausch zu verschlüsseln und zu signieren. Die Verschlüsselung schützt die Vertraulichkeit, während die Signatur die Integrität gewährleistet. Wenn Sie Schlüssel exportieren, fungiert AWS Payment Cryptography als Key Distribution Host (KDH), und Ihr Zielsystem wird zum Schlüsselempfangsgerät (KRD).

Anmerkung

Wenn Ihr HSM zwar den TR-34 Export, aber keinen TR-34 Import unterstützt, empfehlen wir Ihnen, zunächst einen gemeinsamen KEK zwischen Ihrem HSM und Payment Cryptography einzurichten. AWS TR-34 Sie können ihn dann verwenden TR-31, um Ihre verbleibenden Schlüssel zu übertragen.

  1. Initialisieren Sie den Exportvorgang

    Ausführenget-parameters-for-export, um ein Schlüsselpaar für Schlüsselexporte zu generieren. Wir verwenden dieses Schlüsselpaar, um die TR-34 Payload zu signieren. In der TR-34 Terminologie ist dies das KDH-Signaturzertifikat. Die Zertifikate sind kurzlebig und nur für die unter angegebene Dauer gültig. ParametersValidUntilTimestamp

    Anmerkung

    Alle Zertifikate sind in Base64-Kodierung.

    Beispiel
    $ aws payment-cryptography get-parameters-for-export \ --signing-key-algorithm RSA_2048 \ --key-material-type TR34_KEY_BLOCK
    { "SigningKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJ...", "SigningKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS....", "SigningKeyAlgorithm": "RSA_2048", "ExportToken": "export-token-au7pvkbsq4mbup6i", "ParametersValidUntilTimestamp": "2023-06-13T15:40:24.036000-07:00" }
  2. Importieren Sie die AWS Kryptografie-Zertifikat für Zahlungen in Ihr Empfangssystem

    Importieren Sie die Zertifikatskette aus Schritt 1 in Ihr Empfangssystem.

  3. Richten Sie die Zertifikate Ihres Empfangssystems ein

    Um die übertragene Nutzlast zu schützen, verschlüsselt die sendende Partei (KDH) sie. Ihr Empfangssystem (in der Regel Ihr HSM oder das HSM Ihres Partners) muss einen öffentlichen Schlüssel generieren und ein Zertifikat für öffentliche Schlüssel erstellen. X.509 Sie können AWS Private CA es verwenden, um Zertifikate zu generieren, aber Sie können jede beliebige Zertifizierungsstelle verwenden.

    Nachdem Sie das Zertifikat erhalten haben, importieren Sie das Stammzertifikat mithilfe des ImportKey Befehls in AWS Payment Cryptography. Setzen Sie KeyMaterialType auf RootCertificatePublicKey und KeyUsageType auf TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.

    Wir verwenden TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE als, KeyUsageType weil dies der Stammschlüssel ist, der das Leaf-Zertifikat signiert. Sie müssen keine Leaf-Zertifikate in AWS Payment Cryptography importieren — Sie können sie direkt weitergeben.

    Anmerkung

    Wenn Sie das Stammzertifikat zuvor importiert haben, überspringen Sie diesen Schritt. Verwenden Sie für ZwischenzertifikateTrustedCertificatePublicKey.

  4. Exportieren Sie Ihren Schlüssel

    Rufen Sie die ExportKey API mit KeyMaterialType set to auf auf auf aufTR34_KEY_BLOCK. Sie müssen Folgendes angeben:

    • Der KeyArn der Root-CA aus Schritt 3 als CertificateAuthorityPublicKeyIdentifier

    • Das Blattzertifikat aus Schritt 3 als WrappingKeyCertificate

    • Der KeyArn (oder Alias) des Schlüssels, den Sie exportieren möchten --export-key-identifier

    • Das Export-Token aus Schritt 1

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

Exportieren Sie Schlüssel mit asymmetrischen Techniken (ECDH)

AWS Verschlüsselungsschlüssel für Zahlungen, Kryptografieschlüssel, Importvorgang mithilfe von ECDH

Elliptic Curve Diffie-Hellman (ECDH) verwendet die asymmetrische ECC-Kryptografie, um einen gemeinsamen Schlüssel zwischen zwei Parteien zu erstellen, ohne dass zuvor Schlüssel ausgetauscht werden müssen. ECDH-Schlüssel sind kurzlebig, weshalb Payment Cryptography sie nicht speichert. AWS Bei diesem Prozess wird mithilfe von ECDH ein einmaliges Passwort KBPK/KEK abgeleitet. Dieser abgeleitete Schlüssel wird sofort zum Umschließen des Schlüssels verwendet, den Sie übertragen möchten. Dabei kann es sich um einen anderen KBPK-, BDK-, IPEK-Schlüssel oder andere Schlüsseltypen handeln.

Beim Export wird AWS Payment Cryptography als Partei U (Initiator) und das Empfangssystem als Partei V (Responder) bezeichnet.

Anmerkung

ECDH kann verwendet werden, um jeden symmetrischen Schlüsseltyp auszutauschen, aber es ist der einzige Ansatz, der für die Übertragung von AES-256 Schlüsseln verwendet werden kann, wenn noch kein KEK eingerichtet ist.

  1. Generieren Sie ein ECC-Schlüsselpaar

    Rufen Sie create-key auf, um ein ECC-Schlüsselpaar für diesen Prozess zu erstellen. Diese API generiert ein Schlüsselpaar für Schlüsselimporte oder -exporte. Geben Sie bei der Erstellung an, welche Art von Schlüsseln mit diesem ECC-Schlüssel abgeleitet werden können. Wenn Sie ECDH zum Austauschen (Umschließen) anderer Schlüssel verwenden, verwenden Sie den Wert. TR31_K1_KEY_BLOCK_PROTECTION_KEY

    Anmerkung

    Obwohl Low-Level-ECDH einen abgeleiteten Schlüssel generiert, der für jeden Zweck verwendet werden kann, begrenzt AWS Payment Cryptography die versehentliche Wiederverwendung eines Schlüssels für mehrere Zwecke, indem ein Schlüssel nur für einen einzigen abgeleiteten Schlüsseltyp verwendet werden kann.

    $ 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. Holen Sie sich das Zertifikat für einen öffentlichen Schlüssel

    Rufen Sie anget-public-key-certificate, um den öffentlichen Schlüssel als X.509 Zertifikat zu erhalten, das von der CA Ihres Kontos signiert wurde und spezifisch für AWS Zahlungskryptografie in einer bestimmten Region ist.

    Beispiel
    $ aws payment-cryptography get-public-key-certificate \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv
    { "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }
  3. Installieren Sie das öffentliche Zertifikat auf dem System der Gegenpartei (Partei V)

    Bei vielen HSMs müssen Sie das in Schritt 1 generierte öffentliche Zertifikat installieren, laden oder als vertrauenswürdig einstufen, um Schlüssel zu erstellen. Dies kann je nach HSM die gesamte Zertifikatskette oder nur das Stammzertifikat umfassen. Spezifische Anweisungen finden Sie in Ihrer HSM-Dokumentation.

  4. Generieren Sie das ECC-Schlüsselpaar auf dem Quellsystem und stellen Sie die Zertifikatskette bereit für AWS Kryptografie im Zahlungsverkehr

    Bei ECDH generiert jede Partei ein Schlüsselpaar und einigt sich auf einen gemeinsamen Schlüssel. Damit AWS Payment Cryptography den Schlüssel ableiten kann, benötigt es den öffentlichen Schlüssel der Gegenpartei im X.509 öffentlichen Schlüsselformat.

    Wenn Sie Schlüssel von einem HSM übertragen, erstellen Sie ein Schlüsselpaar auf diesem HSM. Bei HSMs, die Schlüsselblöcke unterstützen, sieht der Schlüsselheader ähnlich aus wie. D0144K3EX00E0000 Beim Erstellen des Zertifikats generieren Sie in der Regel eine CSR auf dem HSM, und dann AWS Private CA kann das HSM, ein Drittanbieter oder ein Dienst wie dieser das Zertifikat generieren.

    Laden Sie das Stammzertifikat mithilfe des importKey Befehls mit KeyMaterialType of und of in AWS Payment Cryptography. RootCertificatePublicKey KeyUsageType TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE

    Verwenden Sie für Zwischenzertifikate den importKey Befehl mit KeyMaterialType of TrustedCertificatePublicKey und KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE. Wiederholen Sie diesen Vorgang für mehrere Zwischenzertifikate. Verwenden Sie das Zertifikat KeyArn des letzten importierten Zertifikats in der Kette als Eingabe für nachfolgende Exportbefehle.

    Anmerkung

    Importieren Sie das Leaf-Zertifikat nicht. Geben Sie es direkt während des Exportbefehls an.

  5. Schlüssel und Exportschlüssel ableiten von AWS Kryptografie im Zahlungsverkehr

    Beim Exportieren leitet der Dienst mithilfe von ECDH einen Schlüssel ab und verwendet ihn dann sofort als KBPK, um den zu exportierenden Schlüssel zu umschließen. TR-31 Bei dem zu exportierenden Schlüssel kann es sich um einen beliebigen TDES- oder AES-Schlüssel handeln, sofern es sich um TR-31 gültige Kombinationen handelt, sofern der umschließende Schlüssel mindestens so stark ist wie der zu exportierende Schlüssel.

    $ 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" } }
  6. Leiten Sie mithilfe von ECDH auf Party V-HSM einen einmaligen Schlüssel ab

    Viele HSMs und verwandte Systeme unterstützen die Erstellung von Schlüsseln mithilfe von ECDH. Geben Sie den öffentlichen Schlüssel aus Schritt 1 als öffentlichen Schlüssel und den Schlüssel aus Schritt 3 als privaten Schlüssel an. Zulässige Optionen, z. B. Ableitungsmethoden, finden Sie im API-Leitfaden.

    Anmerkung

    Die Ableitungsparameter wie der Hash-Typ müssen auf beiden Seiten exakt übereinstimmen. Andernfalls generieren Sie einen anderen Schlüssel.

  7. Schlüssel in das Zielsystem importieren

    Importieren Sie abschließend den Schlüssel aus AWS Payment Cryptography mithilfe von TR-31 Standardbefehlen. Geben Sie den von ECDH abgeleiteten Schlüssel als KBPK an und verwenden Sie den TR-31 Schlüsselblock, der zuvor aus AWS Payment Cryptography exportiert wurde.

Exportieren Sie Schlüssel mithilfe asymmetrischer Techniken (RSA Wrap)

Wenn RSA nicht TR-34 verfügbar ist, können Sie RSA wrap/unwrap für den Schlüsselaustausch verwenden. Ebenso TR-34 verwendet diese Methode asymmetrische RSA-Kryptografie, um symmetrische Schlüssel zu verschlüsseln. RSA Wrap beinhaltet jedoch nicht:

  • Signierung der Nutzdaten durch den Absender

  • Schlüsselblöcke, die die Integrität der wichtigsten Metadaten während des Transports aufrechterhalten

Anmerkung

Sie können RSA Wrap verwenden, um TDES und AES-128 Schlüssel zu exportieren.

  1. Erstellen Sie einen RSA-Schlüssel und ein Zertifikat auf Ihrem Empfangssystem

    Erstellen oder identifizieren Sie einen RSA-Schlüssel für den Empfang des verpackten Schlüssels. Die Schlüssel müssen im X.509 Zertifikatsformat vorliegen. Stellen Sie sicher, dass das Zertifikat von einem Stammzertifikat signiert ist, das Sie in AWS Payment Cryptography importieren können.

  2. Importieren Sie das öffentliche Stammzertifikat in AWS Kryptografie im Zahlungsverkehr

    Verwenden Sie es import-key mit der --key-material Option, das Zertifikat zu importieren

    $ aws payment-cryptography import-key \ --key-material='{"RootCertificatePublicKey": { \ "KeyAttributes": { \ "KeyAlgorithm": "RSA_4096", \ "KeyClass": "PUBLIC_KEY", \ "KeyModesOfUse": {"Verify": true}, \ "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \ "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRV..."} \ }'
    { "Key": { "CreateTimestamp": "2023-09-14T10:50:32.365000-07:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/nsq2i3mbg6sn775f", "KeyAttributes": { "KeyAlgorithm": "RSA_4096", "KeyClass": "PUBLIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE" }, "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2023-09-14T10:50:32.365000-07:00" } }
  3. Exportieren Sie Ihren Schlüssel

    Weisen Sie AWS Payment Cryptography an, Ihren Schlüssel mithilfe Ihres Leaf-Zertifikats zu exportieren. Sie müssen Folgendes angeben:

    • Der ARN für das Stammzertifikat, das Sie in Schritt 2 importiert haben

    • Das Blattzertifikat für den Export

    • Der symmetrische Schlüssel zum Exportieren

    Die Ausgabe ist eine hexadezimale, binär verpackte (verschlüsselte) Version Ihres symmetrischen Schlüssels.

    Beispiel Beispiel — Exportieren eines Schlüssels
    $ 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-json file://export-key.json
    { "WrappedKey": { "KeyMaterial": "18874746731E9E1C4562E4116D1C2477063FCB08454D757D81854AEAEE0A52B1F9D303FA29C02DC82AE7785353816EFAC8B5F4F79CC29A1DDA80C65F34364373D8C74E5EC67E4CB55DEA7F091210DCACD3C46FE4A5DAA0F0D9CAA7C959CA7144A5E7052F34AAED93EF44C004AE7ABEBD616C955BBA10993C06FB905319F87B9B4E1B7A7C7D17AF15B6154E807B9C574387A43197C31C6E565554437A252EFF8AC81613305760D11F9B53B08A1BA79EC7E7C82C48083C4E2D0B6F86C34AB83647BDD7E85240AD1AF3C0F6CA8C5BF323BB2D3896457C554F978F4C9436513F494130A6FADBC038D51898AAD72E02A89FF256C524E7B5D85B813751B718C4933D9DC6031F2C5B2E13351A54B6021B2DB72AA0C7EA54727FBCD557E67E5E7CC2E165576E39DB4DA33510BA9A3C847313103A18EF3B23A3440471864D58C79C569D5CD2A653AC16043CA9A61E6878F74C18EE15F9AB23754C37A945B68C0437C19F0079F74B573D9B59DAC25A20781DBE8075C947C9EDC76177A1B0794288CBF89567A541E8401C74E85B8E1C3E501860AF702F641CAA04327018A84EF3A82932A2BCF37047AB40FE77E0A6F68D0904C7E60983CD6F871D5E0E27EEF425C97D39E9394E8927EEF5D2EA9388DF3C5C241F99378DF5DADE8D0F0CF453C803BA38BA702B9651685FAFA6DCB4B14333F8D3C57F2D93E0852AA94EEC3AF3217CAE5873EFD9", "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM" } }
  4. Importieren Sie den Schlüssel in Ihr Empfangssystem

    Viele HSMs und verwandte Systeme unterstützen den Import von Schlüsseln mithilfe von RSA Unwrap (einschließlich AWS Payment Cryptography). Geben Sie beim Import Folgendes an:

    • Der öffentliche Schlüssel aus Schritt 1 als Verschlüsselungszertifikat

    • Das Format als RSA

    • Padding-Modus als PKCS #1 v2.2 OAEP (mit SHA 256)

    Anmerkung

    Wir geben den verpackten Schlüssel im HexBinary-Format aus. Möglicherweise müssen Sie das Format konvertieren, wenn Ihr System eine andere Binärdarstellung benötigt, z. B. base64.

Exportieren Sie symmetrische Schlüssel mithilfe eines vorab festgelegten Schlüsselaustauschschlüssels () TR-31

Beim Austausch mehrerer Schlüssel oder bei der Unterstützung der Schlüsselrotation tauschen die Partner in der Regel zuerst einen anfänglichen Schlüsselverschlüsselungsschlüssel (KEK) aus. Sie können KEK gegen AWS Payment Cryptography austauschen, indem Sie Techniken wie TR-34 oder Physischer Schlüsselaustausch verwenden. Nachdem Sie einen KEK eingerichtet haben, können Sie ihn verwenden, um nachfolgende Schlüssel, einschließlich anderer KEKs, zu transportieren. Wir unterstützen diesen Schlüsselaustausch mithilfe von ANSI TR-31, das von HSM-Anbietern weithin unterstützt wird.

  1. Richten Sie Ihren Key Encryption Key (KEK) ein

    Stellen Sie sicher, dass Sie Ihren KEK bereits ausgetauscht haben und den KeyArn (oder KeyAlias) verfügbar haben.

  2. Erstellen Sie Ihren Schlüssel auf AWS Kryptografie im Zahlungsverkehr

    Erstellen Sie Ihren Schlüssel, falls er noch nicht existiert. Alternativ können Sie den Schlüssel auf Ihrem anderen System erstellen und den Exportieren Sie symmetrische Schlüssel mithilfe eines vorab festgelegten Schlüsselaustauschschlüssels () TR-31 Import-Befehl verwenden.

  3. Exportieren Sie Ihren Schlüssel von AWS Kryptografie im Zahlungsverkehr

    Geben Sie beim Exportieren im TR-31 Format den Schlüssel an, den Sie exportieren möchten, und den zu verwendenden Wrapping-Schlüssel.

    Beispiel Beispiel — Exportieren eines Schlüssels mit dem TR31-Schlüsselblock
    $ aws payment-cryptography export-key \ --key-material='{"Tr31KeyBlock": \ { "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza" }}' \ --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
    { "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "D0144K0AB00E0000A24D3ACF3005F30A6E31D533E07F2E1B17A2A003B338B1E79E5B3AD4FBF7850FACF9A3784489581A543C84816C8D3542AE888CE6D4EDDFD09C39957B131617BC", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }
  4. Importieren Sie den Schlüssel in Ihr System

    Verwenden Sie die Importschlüsselimplementierung Ihres Systems, um den Schlüssel zu importieren.

Exportieren Sie die DUPT-Anfangsschlüssel () IPEK/IK

Wenn Sie DUKPT verwenden, können Sie einen einzelnen Basisableitungsschlüssel (BDK) für eine Flotte von Terminals generieren. Die Terminals haben keinen direkten Zugang zum BDK. Stattdessen erhält jedes Terminal einen eindeutigen ersten Terminalschlüssel, der als IPEK oder Initial Key (IK) bezeichnet wird. Jedes IPEK wird mithilfe einer eindeutigen Schlüsselseriennummer (KSN) vom BDK abgeleitet.

Die KSN-Struktur variiert je nach Verschlüsselungstyp:

  • Für TDES: Das 10-Byte-KSN beinhaltet:

    • 24 Bit für die Schlüsselsatz-ID

    • 19 Bit für die Terminal-ID

    • 21 Bit für den Transaktionszähler

  • Für AES: Das 12-Byte-KSN beinhaltet:

    • 32 Bit für die BDK-ID

    • 32 Bit für den Ableitungsbezeichner (ID)

    • 32 Bit für den Transaktionszähler

Wir bieten einen Mechanismus zum Generieren und Exportieren dieser Anfangsschlüssel. Sie können die generierten Schlüssel mithilfe der Methoden TR-31, TR-34, oder RSA Wrap exportieren. Beachten Sie, dass IPEK-Schlüssel nicht persistent sind und nicht für nachfolgende Operationen mit Payment Cryptography verwendet werden können. AWS

Wir erzwingen die Aufteilung zwischen den ersten beiden Teilen des KSN nicht. Wenn Sie die Ableitungs-ID zusammen mit dem BDK speichern möchten, können Sie Tags verwenden. AWS

Anmerkung

Der Zählerteil des KSN (32 Bit für AES DUKPT) wird nicht für die Ableitung verwendet. IPEK/IK Beispielsweise erzeugen Eingaben von 12345678901234560001 und 12345678901234569999 dasselbe IPEK.

$ aws payment-cryptography export-key \ --key-material='{"Tr31KeyBlock": { \ "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"}} ' \ --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --export-attributes 'ExportDukptInitialKey={KeySerialNumber=12345678901234560001}'
{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "B0096B1TX00S000038A8A06588B9011F0D5EEF1CCAECFA6962647A89195B7A98BDA65DDE7C57FEA507559AF2A5D601D1", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }

Geben Sie die Schlüsselblock-Header für den Export an

Sie können Schlüsselblockinformationen ändern oder anhängen, wenn Sie in ASC TR-31 oder Formaten exportieren. TR-34 In der folgenden Tabelle werden das TR-31 Schlüsselblockformat und die Elemente beschrieben, die Sie beim Export ändern können.

Schlüsselblock-Attribut Zweck Können Sie während des Exports Änderungen vornehmen? Hinweise

Versions-ID

Definiert die Methode, die zum Schutz des Schlüsselmaterials verwendet wird. Der Standard beinhaltet:

  • Version A und C (wichtige Variante — veraltet)

  • Version B (Ableitung mit TDES)

  • Version D (Schlüsselableitung mit AES)

Nein

Wir verwenden Version B für TDES-Wrapping Keys und Version D für AES-Wrapping Keys. Wir unterstützen die Versionen A und C nur für Importvorgänge.

Länge des Schlüsselblocks

Gibt die Länge der verbleibenden Nachricht an

Nein

Wir berechnen diesen Wert automatisch. Die Länge erscheint möglicherweise falsch, bevor die Nutzlast entschlüsselt wird, da wir möglicherweise das in der Spezifikation vorgeschriebene Schlüsselpadding hinzufügen.

Schlüsselverwendung

Definiert die zulässigen Zwecke für den Schlüssel, z. B.:

  • C0 (Kartenverifizierung)

  • B0 (Basisableitungsschlüssel)

Nein

Algorithmus

Gibt den Algorithmus des zugrunde liegenden Schlüssels an. Wir unterstützen:

  • (TDES)

  • (HMAC)

  • (AES)

Nein

Wir exportieren diesen Wert unverändert.

Schlüsselverwendung

Definiert zulässige Operationen, wie zum Beispiel:

  • Generieren und verifizieren (C)

  • Encrypt/Decrypt/Wrap/Unwrap (B)

Ja*

Schlüsselversion

Gibt die Versionsnummer für den Schlüssel an replacement/rotation. Der Standardwert ist 00, wenn nicht angegeben.

Ja — Kann anhängen

Wichtige Exportfähigkeit

Steuert, ob der Schlüssel exportiert werden kann:

  • N — Keine Exportfähigkeit

  • E - Export gemäß X9.24 (Schlüsselblöcke)

  • S — Export im Schlüsselblock- oder Nichtschlüsselblockformat

Ja*

Optionale Tastenblöcke

Ja — Kann anhängen

Optionale Schlüsselblöcke sind name/value Paare, die kryptografisch an den Schlüssel gebunden sind. Zum Beispiel KeySet ID für DUKPT-Schlüssel. Wir berechnen automatisch die Anzahl der Blöcke, die Länge jedes Blocks und den Füllblock (PB) auf der Grundlage Ihrer name/value Paareingabe.

*Wenn Sie Werte ändern, muss Ihr neuer Wert restriktiver sein als der aktuelle Wert in AWS Payment Cryptography. Beispiel:

  • Wenn der aktuelle Tastenverwendungsmodus Generate=True, Verify=True ist, können Sie ihn in Generate=True, Verify=False ändern

  • Wenn der Schlüssel bereits auf „Nicht exportierbar“ gesetzt ist, können Sie ihn nicht in „exportierbar“ ändern

Wenn Sie Schlüssel exportieren, wenden wir automatisch die aktuellen Werte des exportierten Schlüssels an. Möglicherweise möchten Sie diese Werte jedoch ändern oder anhängen, bevor Sie sie an das empfangende System senden. Hier sind einige gängige Szenarien:

  • Wenn Sie einen Schlüssel in ein Zahlungsterminal exportieren, stellen Sie die Exportfähigkeit auf ein, Not Exportable da Terminals normalerweise nur Schlüssel importieren und diese nicht exportieren sollten.

  • Wenn Sie zugehörige Schlüsselmetadaten an das Empfangssystem weitergeben müssen, verwenden Sie TR-31 optionale Header, um die Metadaten kryptografisch an den Schlüssel zu binden, anstatt eine benutzerdefinierte Nutzlast zu erstellen.

  • Stellen Sie die Schlüsselversion mithilfe des KeyVersion Felds ein, um die Schlüsselrotation zu verfolgen.

TR-31/X9.143 definiert allgemeine Header, Sie können jedoch auch andere Header verwenden, sofern sie den AWS Payment Cryptography-Parametern entsprechen und Ihr Empfangssystem sie akzeptiert. Weitere Informationen zu Schlüsselblock-Headern beim Export finden Sie im API-Handbuch unter Schlüsselblock-Header.

Hier ist ein Beispiel für den Export eines BDK-Schlüssels (z. B. in ein KIF) mit diesen Spezifikationen:

  • Schlüsselversion: 02

  • KeyExportability: NICHT EXPORTIERBAR

  • KeySetID: 00ABCDEFAB (00 gibt den TDES-Schlüssel an, ABCDEFABCD ist der Anfangsschlüssel)

Da wir keine Hauptverwendungsmodi angeben, erbt dieser Schlüssel den Verwendungsmodus von arn:aws:payment-cryptography:us-east- 2:111122223333: (= true). key/5rplquuwozodpwsp DeriveKey

Anmerkung

Selbst wenn Sie in diesem Beispiel die Exportfähigkeit auf Nicht exportierbar setzen, kann das KIF immer noch: KIF

  • Schlüssel ableiten, wie sie beispielsweise in DUKPT verwendet werden IPEK/IK

  • Exportieren Sie diese abgeleiteten Schlüssel, um sie auf Geräten zu installieren

Dies ist in den Standards ausdrücklich zulässig.

$ 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-identifier arn: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" } }

Allgemeine Header

X9.143 definiert bestimmte Header für häufige Anwendungsfälle. Mit Ausnahme des HM-Headers (HMAC Hash) analysiert oder verwendet AWS Payment Cryptography diese Header nicht.

Header-Name Zweck Typische Validierung Hinweise

BI

Schlüssel-ID für die Basisableitung für DUKPT

2 Hex-Zeichen (00 für TDES, 11 für AES), dann 10 Hex-Zeichen für TDES KSI oder 8 Hex-Zeichen für BDK-ID (AES DUKPT).

Enthält die (BDK-ID, für AES DUKPT) oder den Key Set Identifier (KSI, für TDES DUKPT). Kann beim Austausch der BDK-ID oder des KSI verwendet werden, muss aber nicht die anderen in den IK- und KS-Blöcken enthaltenen Daten austauschen. In der Regel wird BI für die Übertragung an ein KIF verwendet, während IK oder KS für die Übertragung in das Terminal selbst verwendet werden.

HM

Gibt den Hashtyp für HMAC-Operationen an

  • 10 — SHA-1

  • 20 — SHA-224

  • 21 — SHA-256

  • 22 — SHA-384

  • 23 — SHA-512

  • 24 — SHA-512/224

  • 25 — SHA-512/256

  • 30 — SHA3-224

  • 31 — SHA3-256

  • 32 — SHA3-384

  • 33 — SHA3-512

  • 40 — SCHÜTTELN (128)

  • 41 — SCHÜTTELN 256

Der Dienst füllt dieses Feld beim Export automatisch aus und analysiert es beim Import. Hashtypen, die vom Dienst nicht unterstützt werden, wie SHAKE128, können importiert werden, sind aber möglicherweise nicht für kryptografische Funktionen nutzbar.

IK

Seriennummer des Anfangsschlüssels für AES DUKPT

16 Hex-Zeichen

Dieser Wert wird verwendet, um die Verwendung des Initial-DUKPT-Schlüssels auf dem Empfangsgerät zu instanziieren, und er identifiziert den von einem BDK abgeleiteten Initialschlüssel. Dieses Feld enthält normalerweise die Ableitungsdaten, aber keinen Zähler. Verwenden Sie KS für TDES DUKPT.

IST

Anfangsschlüssel-Seriennummer für TDES DUKPT

20 Hex-Zeichen

Dieser Wert wird verwendet, um die Verwendung des Initial DUKPT-Schlüssels auf dem Empfangsgerät zu instanziieren, und er identifiziert den Initial Key, der von einem BDK abgeleitet wurde. Dieses Feld enthält in der Regel die Ableitungsdaten plus einen auf Null gesetzten Zählerwert. Verwenden Sie IK für AES DUKPT.

KP

Schlüsselprüfwert des KBPK KBPK

2 Hex-Zeichen stehen für die KCV-Methode (00 für die X9.24 Methode und 01 für die CMAC-Methode). Gefolgt vom KCV-Wert, der normalerweise aus 6 Hex-Zeichen besteht. Zum Beispiel steht 010FA329 für den KCV von 0FA329, berechnet mit der 01 (CMAC) -Methode.

Berechnet gemäß ANSI X9.24-1-2017 Anhang A; der KCV wird für die Schlüsselvalidierung verwendet, nicht als Integritätsmechanismus.

PB

Polsterblock

zufällige druckbare ASCII-Zeichen

Der Dienst füllt dieses Feld beim Export automatisch aus, um sicherzustellen, dass optionale Header ein Vielfaches der Verschlüsselungsblocklänge sind

Exportiert asymmetrische (RSA) Schlüssel

Verwenden Sie den Befehl, um einen öffentlichen Schlüssel in Zertifikatsform zu exportieren. get-public-key-certificate Dieser Befehl gibt Folgendes zurück:

  • Das Zertifikat

  • Das Stammzertifikat

Beide Zertifikate sind Base64-kodiert.

Anmerkung

Dieser Vorgang ist nicht impotent — nachfolgende Aufrufe können unterschiedliche Zertifikate generieren, selbst wenn derselbe zugrunde liegende Schlüssel verwendet wird.

Beispiel
$ aws payment-cryptography get-public-key-certificate \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb
{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }