

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 importieren
<a name="keys-import"></a>

**Wichtig**  
 Beispiele erfordern die neueste Version von AWS CLI V2. Bevor Sie beginnen, stellen Sie sicher, dass Sie auf die [neueste Version](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) aktualisiert haben. 

**Contents**
+ [Einführung in das Importieren von Schlüsseln](#keys-import-introduction)
+ [Symmetrische Schlüssel importieren](#keys-import-symmetric)
  + [Schlüssel mithilfe asymmetrischer Techniken importieren (TR-34)](#keys-import-tr34)
  + [Importieren Sie Schlüssel mithilfe asymmetrischer Techniken (ECDH)](#keys-import-ecdh)
  + [Importieren Sie Schlüssel mithilfe asymmetrischer Techniken (RSA Unwrap)](#keys-import-rsaunwrap)
  + [Importieren Sie symmetrische Schlüssel mithilfe eines vorab festgelegten Schlüsselaustauschschlüssels (TR-31)](#keys-import-tr31)
+ [Import asymmetrischer (RSA, ECC) öffentlicher Schlüssel](#keys-import-asymmetric)
  + [Öffentliche RSA-Schlüssel werden importiert](#keys-import-rsapublickey)
  + [Öffentliche ECC-Schlüssel werden importiert](#keys-import-eccpublickey)

## Einführung in das Importieren von Schlüsseln
<a name="keys-import-introduction"></a>

**Anmerkung**  
Beim Import von Schlüsseln mit X9.143-, TR-31- oder TR-34-Schlüsselblöcken behält AWS Payment Cryptography in der Regel optionale Header bei (verwendet sie jedoch nicht). Der HM-Header (HMAC Hash Type) wird bei kryptografischen Vorgängen verwendet. Der KP-Header (KCV oder Wrapping Key) ist spezifisch für den Importvorgang und wird nicht beibehalten. 

Beim Schlüsselaustausch mit einer Gegenpartei erfolgt in der Regel zunächst der Austausch eines Schlüsselaustauschschlüssels (KEK). Dieser Schlüssel wird dann verwendet, um nachfolgende Schlüssel zu schützen. Unter Verwendung elektronischer Formate kann der KEK mithilfe asymmetrischer Techniken wie TR-34, ECDH oder RSA Wrap ausgetauscht werden. Nachfolgende Schlüssel werden über einen symmetrischen Schlüsselaustausch wie TR-31 ausgetauscht. Dieser KEK wird langlebig sein und möglicherweise nur alle paar Jahre aktualisiert, je nach den Richtlinien und der festgelegten Kryptoperiode. 

Wenn nur ein oder zwei Schlüssel ausgetauscht werden, können Sie auch asymmetrische Techniken verwenden, um diesen Schlüssel direkt auszutauschen, z. B. einen BDK. AWS Die Zahlungskryptografie unterstützt beide Methoden des Schlüsselaustauschs.

## Symmetrische Schlüssel importieren
<a name="keys-import-symmetric"></a>

### Schlüssel mithilfe asymmetrischer Techniken importieren (TR-34)
<a name="keys-import-tr34"></a>

![\[AWS Prozess zum Importieren von Verschlüsselungsschlüsseln für Zahlungen\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/images/keyimport-process-kek-import.png)


 TR-34 verwendet asymmetrische RSA-Kryptografie, um symmetrische Schlüssel für den Austausch zu verschlüsseln und zu signieren. Dadurch wird sowohl die Vertraulichkeit (Verschlüsselung) als auch die Integrität (Signatur) des verpackten Schlüssels gewährleistet. 

 Um Ihre eigenen Schlüssel zu importieren, schauen Sie sich das Beispielprojekt AWS Payment Cryptography auf an [GitHub](https://github.com/aws-samples/samples-for-payment-cryptography-service/tree/main/key-import-export). Anweisungen zum Verwenden von import/export Schlüsseln von anderen Plattformen finden Sie im Beispielcode [GitHub](https://github.com/aws-samples/samples-for-payment-cryptography-service/tree/main/key-import-export)oder im Benutzerhandbuch für diese Plattformen. 

1. 

****Rufen Sie den Befehl Import initialisieren auf****  
Rufen Sie `get-parameters-for-import` auf, um den Importvorgang zu initialisieren. Diese API generiert ein key pair für Schlüsselimporte, signiert den Schlüssel und gibt das Zertifikat und den Zertifikatsstamm zurück. Verschlüsseln Sie den zu exportierenden Schlüssel mit diesem Schlüssel. In der TR-34-Terminologie wird dies als KRD-Zertifikat bezeichnet. Diese Zertifikate sind Base64-kodiert, kurzlebig und nur für diesen Zweck bestimmt. Speichern Sie den Wert. `ImportToken` 

   ```
   $ aws payment-cryptography get-parameters-for-import \
       --key-material-type TR34_KEY_BLOCK \
       --wrapping-key-algorithm RSA_2048
   ```

   ```
   {
       "ImportToken": "import-token-bwxli6ocftypneu5",
       "ParametersValidUntilTimestamp": 1698245002.065,
       "WrappingKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0....",
       "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0....",
       "WrappingKeyAlgorithm": "RSA_2048"
   }
   ```

1. 

****Installieren Sie das öffentliche Zertifikat auf dem Schlüsselquellsystem****  
In den meisten HSMs Fällen müssen Sie das in Schritt 1 generierte öffentliche Zertifikat installieren, laden oder als vertrauenswürdig einstufen, um damit Schlüssel exportieren zu können. Dies kann je nach HSM die gesamte Zertifikatskette oder nur das Stammzertifikat aus Schritt 1 umfassen. 

1. 

****Generieren Sie ein key pair auf dem Quellsystem und stellen Sie die Zertifikatskette für die AWS Zahlungskryptografie bereit****  
Um die Integrität der übertragenen Nutzdaten zu gewährleisten, signiert die sendende Partei (Key Distribution Host oder KDH) sie. Generieren Sie zu diesem Zweck einen öffentlichen Schlüssel und erstellen Sie ein Public-Key-Zertifikat (X509), das Sie der Zahlungskryptografie zur Verfügung stellen können AWS . 

    Wenn Sie Schlüssel von einem HSM übertragen, erstellen Sie ein key pair auf diesem HSM. Das HSM, ein Drittanbieter oder ein Dienst, der das Zertifikat generieren AWS Private CA kann. 

   Laden Sie das Stammzertifikat mithilfe der `importKey` Befehle mit KeyMaterialType of `RootCertificatePublicKey` und KeyUsageType of in AWS Payment Cryptography. `TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE` 

   Verwenden Sie für Zwischenzertifikate den `importKey` Befehl mit KeyMaterialType of `TrustedCertificatePublicKey` und KeyUsageType of`TR31_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 Importbefehle. 
**Anmerkung**  
Importieren Sie das Leaf-Zertifikat nicht. Geben Sie es direkt während des Importbefehls an.

1. 

****Schlüssel aus dem Quellsystem exportieren****  
Viele HSMs und verwandte Systeme unterstützen den Export von Schlüsseln gemäß der TR-34-Norm. Geben Sie den öffentlichen Schlüssel aus Schritt 1 als KRD-Zertifikat (Verschlüsselung) und den Schlüssel aus Schritt 3 als KDH-Zertifikat (Signierzertifikat) an. Geben Sie für den Import in AWS Payment Cryptography das Format TR-34.2012 ohne CMS Two-Pass-Format an, das auch als TR-34 Diebold-Format bezeichnet werden kann. 

1. 

****Rufen Sie Import Key auf****  
Rufen Sie die ImportKey-API mit einem KeyMaterialType von auf. `TR34_KEY_BLOCK` Verwenden Sie den KeyARN der letzten in Schritt 3 importierten CA für`certificate-authority-public-key-identifier`, das verpackte Schlüsselmaterial aus Schritt 4 für `key-material` und das Leaf-Zertifikat aus Schritt 3 für. `signing-key-certificate` Fügen Sie das Import-Token aus Schritt 1 hinzu. 

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

1. 

****Verwenden Sie den importierten Schlüssel für kryptografische Operationen oder nachfolgenden Import****  
Wenn der importierte Schlüssel TR31 \$1K0\$1KEY\$1ENCRYPTION\$1KEY KeyUsage war, können Sie diesen Schlüssel für nachfolgende Schlüsselimporte mit TR-31 verwenden. Bei anderen Schlüsseltypen (wie TR31 \$1D0\$1SYMMETRIC\$1DATA\$1ENCRYPTION\$1KEY) können Sie den Schlüssel direkt für kryptografische Operationen verwenden. 

### Importieren Sie Schlüssel mithilfe asymmetrischer Techniken (ECDH)
<a name="keys-import-ecdh"></a>

![\[AWS Verfahren zum Importieren von Verschlüsselungsschlüsseln für Zahlungen mithilfe von ECDH\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/images/keyimport-ecdh-import.png)


Elliptic Curve Diffie-Hellman (ECDH) verwendet asymmetrische ECC-Kryptografie, um einen gemeinsamen Schlüssel zwischen zwei Parteien einzurichten, ohne dass zuvor ausgetauschte Schlüssel erforderlich sind. ECDH-Schlüssel sind kurzlebig und werden daher von Payment Cryptography nicht gespeichert. AWS Bei diesem Prozess wird mithilfe von ECDH ein einmaliges [KBPK/KEK abgeleitet](terminology.md#terms.kbpk). Dieser abgeleitete Schlüssel wird sofort verwendet, um den eigentlichen Schlüssel zu umschließen, den Sie übertragen möchten. Dabei kann es sich um einen anderen KBPK-, IPEK-Schlüssel oder andere Schlüsseltypen handeln. 

Beim Import wird das sendende System allgemein als Party U (Initiator) und die AWS Zahlungskryptografie als Party V (Responder) bezeichnet. 

**Anmerkung**  
 ECDH kann zwar für den Austausch aller symmetrischen Schlüsseltypen verwendet werden, ist jedoch die einzige Methode, mit der AES-256-Schlüssel sicher übertragen werden können. 

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 key pair 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**  
 ECDH auf niedriger Ebene generiert zwar einen abgeleiteten Schlüssel, der für jeden Zweck verwendet werden kann, aber die AWS Zahlungskryptografie begrenzt 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"
                     }
                 }
   ```

1. 

****Holen Sie sich ein Public-Key-Zertifikat****  
Rufen Sie an`get-public-key-certificate`, um den öffentlichen Schlüssel als X.509-Zertifikat zu erhalten, das von der Zertifizierungsstelle Ihres Kontos signiert wurde und für die AWS Zahlungskryptografie in einer bestimmten Region spezifisch ist.  
**Example**  

   ```
   $ aws payment-cryptography get-public-key-certificate \
                    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv
   ```

   ```
   {
               "KeyCertificate": "LS0tLS1CRUdJTi...",
               "KeyCertificateChain": "LS0tLS1CRUdJT..."
         }
   ```

1. 

****Installieren Sie das öffentliche Zertifikat auf dem System der Gegenpartei (Partei U)****  
Bei vielen HSMs müssen Sie das in Schritt 1 generierte öffentliche Zertifikat installieren, laden oder als vertrauenswürdig einstufen, um damit Schlüssel exportieren zu können. Dies kann je nach HSM die gesamte Zertifikatskette oder nur das Stammzertifikat aus Schritt 1 umfassen. Weitere Informationen finden Sie in Ihrer HSM-Dokumentation.

1. 

****Generieren Sie ein ECC-Schlüsselpaar auf dem Quellsystem und stellen Sie die Zertifikatskette für die AWS Zahlungskryptografie bereit****  
In ECDH generiert jede Partei ein key pair und einigt sich auf einen gemeinsamen Schlüssel. Damit AWS Payment Cryptography den Schlüssel ableiten kann, benötigt sie den öffentlichen Schlüssel der Gegenpartei im öffentlichen X.509-Schlüsselformat.

   Wenn Sie Schlüssel von einem HSM übertragen, erstellen Sie ein key pair auf diesem HSM. Für HSMs die Unterstützung von Schlüsselblöcken sieht der Schlüsselheader ähnlich aus wie. `D0144K3EX00E0000` Bei der Erstellung des Zertifikats generieren Sie in der Regel eine CSR auf dem HSM und dann das HSM, ein Drittanbieter oder ein Dienst, der das Zertifikat generieren AWS Private CA kann.

   Laden Sie das Stammzertifikat mithilfe der `importKey` Befehle 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 of`TR31_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 Importbefehle.
**Anmerkung**  
Importieren Sie das Leaf-Zertifikat nicht. Geben Sie es direkt während des Importbefehls an.

1. 

****Leiten Sie einen Einmalschlüssel mithilfe von ECDH auf Party U HSM ab****  
Viele HSMs und verwandte Systeme unterstützen die Einrichtung 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, wie z. B. Ableitungsmethoden, finden Sie im [API-Leitfaden](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportDiffieHellmanTr31KeyBlock.html). 
**Anmerkung**  
 Die Ableitungsparameter wie der Hashtyp müssen auf beiden Seiten exakt übereinstimmen. Andernfalls generieren Sie einen anderen Schlüssel. 

1. 

****Schlüssel aus dem Quellsystem exportieren****  
Exportieren Sie abschließend den Schlüssel, den Sie mit den AWS TR-31-Standardbefehlen nach Payment Cryptography transportieren möchten. Geben Sie den von ECDH abgeleiteten Schlüssel als KBPK an. Der zu exportierende Schlüssel kann ein beliebiger TDES- oder AES-Schlüssel sein, der TR-31-gültigen Kombinationen unterliegt, sofern der Wrapping-Schlüssel mindestens so stark ist wie der zu exportierende Schlüssel. 

1. 

****Rufen Sie Import Key auf****  
Rufen Sie die `import-key` API mit einem KeyMaterialType von auf auf auf`DiffieHellmanTr31KeyBlock`. Verwenden Sie den KeyARN der letzten in Schritt 3 importierten CA für`certificate-authority-public-key-identifier`, das verpackte Schlüsselmaterial aus Schritt 4 für `key-material` und das Leaf-Zertifikat aus Schritt 3 für`public-key-certificate`. Fügen Sie den privaten Schlüssel ARN aus Schritt 1 hinzu.

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

1. 

****Verwenden Sie den importierten Schlüssel für kryptografische Operationen oder nachfolgenden Import****  
Wenn der importierte Schlüssel TR31 \$1K0\$1KEY\$1ENCRYPTION\$1KEY KeyUsage war, können Sie diesen Schlüssel für nachfolgende Schlüsselimporte mit TR-31 verwenden. Bei anderen Schlüsseltypen (wie TR31 \$1D0\$1SYMMETRIC\$1DATA\$1ENCRYPTION\$1KEY) können Sie den Schlüssel direkt für kryptografische Operationen verwenden.

### Importieren Sie Schlüssel mithilfe asymmetrischer Techniken (RSA Unwrap)
<a name="keys-import-rsaunwrap"></a>

 Überblick: AWS Payment Cryptography unterstützt RSA wrap/unwrap für den Schlüsselaustausch, wenn TR-34 nicht möglich ist. Wie TR-34 verwendet diese Technik asymmetrische RSA-Kryptografie, um symmetrische Schlüssel für den Austausch zu verschlüsseln. Im Gegensatz zu TR-34 muss bei dieser Methode die sendende Partei die Nutzdaten jedoch nicht signieren. Außerdem gewährleistet diese RSA-Wrap-Technik nicht die Integrität der wichtigsten Metadaten während der Übertragung, da sie keine Schlüsselblöcke enthält. 

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

1. 

****Rufen Sie den Befehl Import initialisieren auf****  
Rufen Sie **get-parameters-for-import** auf, um den Importvorgang mit einem `KeyMaterialType` von zu initialisieren. `KEY_CRYPTOGRAM` Wird `RSA_2048` für `WrappingKeyAlgorithm` beim Austausch von TDES-Schlüsseln verwendet. Verwenden Sie `RSA_3072` oder `RSA_4096` beim Austausch von TDES- oder AES-128-Schlüsseln. Diese API generiert ein key pair für Schlüsselimporte, signiert den Schlüssel mit einem Zertifikatsstamm und gibt sowohl das Zertifikat als auch den Zertifikatsstamm zurück. Verschlüsseln Sie den zu exportierenden Schlüssel mit diesem Schlüssel. Diese Zertifikate sind kurzlebig und nur für diesen Zweck bestimmt. 

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

1. 

****Installieren Sie das öffentliche Zertifikat auf dem Schlüsselquellsystem****  
Bei vielen HSMs müssen Sie das in Schritt 1 generierte öffentliche Zertifikat (und/oder sein Stammzertifikat) installieren, laden oder als vertrauenswürdig einstufen, um damit Schlüssel exportieren zu können. 

1. 

****Schlüssel aus dem Quellsystem exportieren****  
Viele HSMs und verwandte Systeme unterstützen den Export von Schlüsseln mithilfe von RSA Wrap. Geben Sie den öffentlichen Schlüssel aus Schritt 1 als Verschlüsselungszertifikat () `WrappingKeyCertificate` an. Wenn Sie die Vertrauenskette benötigen, verwenden Sie die `WrappingKeyCertificateChain` aus Schritt 1. Wenn Sie den Schlüssel aus Ihrem HSM exportieren, geben Sie als Format RSA mit Padding Mode = PKCS \$11 v2.2 OAEP (mit SHA 256 oder SHA 512) an. 

1. 

****Rufen Sie an **import-key******  
Rufen Sie die **import-key** API mit einem `KeyMaterialType` von auf auf auf auf`KeyMaterial`. Sie benötigen das `ImportToken` aus Schritt 1 und das `key-material` (verpackte Schlüsselmaterial) aus Schritt 3. Geben Sie die wichtigsten Parameter an (z. B. die Schlüsselverwendung), da RSA Wrap keine Schlüsselblöcke verwendet. 

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

1. 

****Verwenden Sie den importierten Schlüssel für kryptografische Operationen oder nachfolgenden Import****  
Wenn der importierte Schlüssel `TR31_K0_KEY_ENCRYPTION_KEY` oder `KeyUsage` war`TR31_K1_KEY_BLOCK_PROTECTION_KEY`, können Sie diesen Schlüssel für nachfolgende Schlüsselimporte mit TR-31 verwenden. Wenn es sich bei dem Schlüsseltyp um einen anderen Typ handelt (z. B.`TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`), können Sie den Schlüssel direkt für kryptografische Operationen verwenden. 

### Importieren Sie symmetrische Schlüssel mithilfe eines vorab festgelegten Schlüsselaustauschschlüssels (TR-31)
<a name="keys-import-tr31"></a>

![\[AWS Importprozess für symmetrische Schlüssel im Zahlungskryptografiebereich\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/images/keyimport-process-wk-import.png)


Beim Austausch mehrerer Schlüssel oder bei der Unterstützung der Schlüsselrotation tauschen die Partner in der Regel zunächst einen Initial Key Encryption Key (KEK) aus. Sie können dies mithilfe von Techniken wie Schlüsselkomponenten auf paper oder, für AWS Zahlungskryptografie, mit [TR-34](#keys-import-tr34) tun.

 Nachdem Sie einen KEK eingerichtet haben, können Sie ihn verwenden, um nachfolgende Schlüssel (einschließlich anderer) zu transportieren. KEKs AWS Die Zahlungskryptografie unterstützt diesen Schlüsselaustausch mithilfe von ANSI TR-31, das von HSM-Anbietern häufig verwendet und unterstützt wird. 

1. 

****Schlüsselverschlüsselungsschlüssel (KEK) importieren****  
Stellen Sie sicher, dass Sie Ihren KEK bereits importiert haben und dass der KeyARN (oder KeyAlias) verfügbar ist.

1. 

****Schlüssel auf der Quellplattform erstellen****  
Wenn der Schlüssel nicht existiert, erstellen Sie ihn auf der Quellplattform. Alternativ können Sie den Schlüssel in AWS Payment Cryptography erstellen und den **export** Befehl verwenden. 

1. 

****Schlüssel von der Quellplattform exportieren****  
Geben Sie beim Exportieren das Exportformat als TR-31 an. Die Quellplattform fragt nach dem zu exportierenden Schlüssel und dem zu verwendenden Verschlüsselungsschlüssel. 

1. 

****In AWS Payment Cryptography importieren****  
Verwenden Sie beim Aufrufen des **import-key** Befehls den KeyARN (oder Alias) Ihres Schlüssels für. `WrappingKeyIdentifier` Verwenden Sie die Ausgabe der Quellplattform für`WrappedKeyBlock`.   
**Example**  

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

## Import asymmetrischer (RSA, ECC) öffentlicher Schlüssel
<a name="keys-import-asymmetric"></a>

Alle importierten Zertifikate müssen mindestens so stark sein wie ihr ausstellendes (Vorgänger-) Zertifikat in der Kette. Das bedeutet, dass eine RSA\$12048-CA nur zum Schutz eines RSA\$12048-Blattzertifikats verwendet werden kann und dass ein ECC-Zertifikat durch ein anderes ECC-Zertifikat gleicher Stärke geschützt werden muss. Ein ECC P384-Zertifikat kann nur von einer P384- oder P521-CA ausgestellt werden. Alle Zertifikate dürfen zum Zeitpunkt des Imports noch nicht abgelaufen sein. 

### Öffentliche RSA-Schlüssel werden importiert
<a name="keys-import-rsapublickey"></a>

AWS Payment Cryptography unterstützt den Import von öffentlichen RSA-Schlüsseln als X.509-Zertifikate. Um ein Zertifikat zu importieren, importieren Sie zunächst das Stammzertifikat. Alle Zertifikate dürfen zum Zeitpunkt des Imports noch nicht abgelaufen sein. Das Zertifikat sollte im PEM-Format vorliegen und Base64-kodiert sein. 

1. 

****Importieren Sie das Stammzertifikat in Payment Cryptography AWS****  
Verwenden Sie den folgenden Befehl, um das Stammzertifikat zu importieren:  
**Example**  

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

1. 

****Importieren Sie das Public-Key-Zertifikat in die AWS Zahlungskryptografie****  
Sie können jetzt einen öffentlichen Schlüssel importieren. Da TR-34 und ECDH darauf angewiesen sind, das Leaf-Zertifikat zur Laufzeit zu übergeben, wird diese Option nur verwendet, wenn Daten mit einem öffentlichen Schlüssel aus einem anderen System verschlüsselt werden. KeyUsage wird auf \$1D1\$1ASYMMETRIC\$1KEY\$1FOR\$1DATA\$1ENCRYPTION gesetzt. TR31  
**Example**  

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

### Öffentliche ECC-Schlüssel werden importiert
<a name="keys-import-eccpublickey"></a>

AWS Payment Cryptography unterstützt den Import von öffentlichen ECC-Schlüsseln als X.509-Zertifikate. Um ein Zertifikat zu importieren, importieren Sie zunächst das Root-CA-Zertifikat und alle Zwischenzertifikate. Alle Zertifikate dürfen zum Zeitpunkt des Imports noch nicht abgelaufen sein. Das Zertifikat sollte im PEM-Format vorliegen und Base64-kodiert sein.

1. 

****Importieren Sie das ECC-Root-Zertifikat in Payment Cryptography AWS****  
Verwenden Sie den folgenden Befehl, um das Stammzertifikat zu importieren:  
**Example**  

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

1. 

****Zwischenzertifikat in AWS Payment Cryptography importieren****  
Verwenden Sie den folgenden Befehl, um ein Zwischenzertifikat zu importieren:  
**Example**  

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

1. 

****Importieren Sie das Public-Key-Zertifikat (Leaf) in die AWS Zahlungskryptografie****  
 Obwohl Sie ein Leaf-ECC-Zertifikat importieren können, gibt es in AWS Payment Cryptography derzeit außer der Speicherung keine definierten Funktionen dafür. Das liegt daran, dass bei der Verwendung von ECDH-Funktionen das Leaf-Zertifikat zur Laufzeit übergeben wird. 